가중치 요소 정하기

서울시_지리공간_데이터_만들기OSRM_실행과정_일대기를 거쳐 OSRM을 도입했으니, 이제 비를 덜 맞는 대중교통 경로 탐색을 위해 가중치를 조절해야 했다. 가중치 조절 요소로 다음과 같은 것들이 떠올랐다.

가중치 요소 후보

1. 교통사고가 덜 일어난 도로

  • 교통사고 이력 데이터를 기반으로, 사고가 자주 발생하는 지역이나 도로를 피할 수 있다.
  • 사고가 적은 경로를 탐색하여 안전한 도로와 보행로를 우선 선택할 수 있다.

2. 큰길 우선

  • 우산으로 인해 시야 제한되면서 차량을 발견 못할 확률이 높다.
  • 골목길은 큰 길에 비해 도로 품질이 낮을 수 있으며 인도, 가로등이 없을 수 있다.
  • 큰길에 비해 골목길에서는 보행자와 차량 사이 거리가 가까워서 물이 튈 확률이 높다.

3. 경사로 낮은 길

  • 비가 올 때 경사가 있으면 도보 속도가 더 느려져 비에 더 많은 영향을 받는다.
  • 비가 올 때 경사도 있는 길은 미끄러워 위험하다.

4. 건널목이 적은 길

  • 횡단보도 대기 시간 때문에 비를 더 많이 맞을 수 있다.
  • 횡단보도 주변에서 교통사고가 많이 발생한다.

5. 비를 막아주는 구조물이 있는 길

  • 비를 완전히 막아주는 구조물이 있는 길
  • 비를 일부 막아주는 구조물이 있는 길

최종 가중치 요소

  • 가중치 요소 후보로 제시한 1, 3, 4 요소들은 '비' 보다 '안전'에 중점을 둔 것으로 판단했으며, 이 요소들로 가중치를 조절하여 보행자가 비에 덜 노출되더라도, 그 정도가 미미하다고 판단되어 탈락했다.
  • 비가 오는 날 실질적으로 도움이 되는 도로는 비를 막아주는 구조물이 있는 도로이다. 따라서 구조물을 가중치 요소로 설정했으며, 터널처럼 비를 완전히 막아주는 구조물과 지붕, 천막처럼 일부만 막아주는 구조물의 차단 정도가 다르기 때문에 가중치를 차등 적용하기로 했다. 또한, 비 오는 날 도로의 폭에 따라 비에영향받는 정도가 다르므로, 이들에 대해서도 가중치를 다르게 적용하기로 했다.
  • JOSM을 통해 서울시 지리공간 데이터의 태그들을 확인한 결과 비를 완전히 막아주는 터널(tunnel) 속성을 가진 보행자 도로는 697개, 비를 일부 막아주는 건물 통로, 지붕, 천막 등의 구조물로 표시된 covered 속성을 가진 보행자 도로는 592개가 있었다.

가중치 조절 과정

가중치 기준 정하기

OSRM에서 경로를 탐색할 때, 가중치로는 routability, duration, distance를 선택할 수 있다.(링크)

  • routability : 소요 시간을 기준으로 하되, 특정 도로를 선호하도록 가중치를 부여한 라우팅
  • duration : 특정 도로 접근에 대한 패널티 없이 가장 짧은 소요시간을 기준으로 한 라우팅
  • distance : 특정 도로 접근에 대한 패널티 없이 가장 짧은 거리를 기준으로 한 라우팅 routabilityOSRM에서 설정한 특정 도로의 선호도에 영향을 받기 때문에 이를 피하고자 제외했다. 가중치로 distance를 선택할 경우, 사용자에게 실제 거리를 안내해야 하는데 거리를 조정하는 과정에서 왜곡이 생길 수 있다고 판단했다. 물론 duration을 선택해도 소요 시간을 조정해야 해서 왜곡이 발생할 수 있지만, 소요시간은 소요시간 = 거리 / 속도로 간단히 계산할 수 있기 때문에 가중치로 duration을 선택했다. 또한, 도로별 속도를 직접 설정하여 특정 도로에 대한 선호도를 자체적으로 관리하기로 했다.

가중치 실험을 위한 테스트 케이스 정하기

  • tunnel

    • 숭실대학교 → 광장순복음교회
      • 광장순복음교회는 tunnel 속성을 가진 광장시장 주변에 위치하고 있다.
    • 숭실대학교 → 청년짬뽕국밥
      • 청년짬뽕국밥은 tunnel 속성을 가진 중부시장 주변에 위치하고 있다.
  • covered

    • 숭실대학교 → 클래직
      • 클래직은 covered 속성을 가진 세운상가 주변에 위치하고 있다.
    • 서울경찰청 → 서린정보기술 본사
      • 서린정보기술 본사는 covered 속성을 가진 피마길 주변에 위치하고 있다.

최적 경로

  • 숭실대 주변

  • tunnel 주변(분홍색으로 표시한 부분은 tunnel 속성이 있는 도로이다

  • covered 주변(분홍색으로 표시한 부분은 covered 속성이 있는 도로이다)

최적 경로는 구조물이 없는 도착지까지 좀 더 가까운 경로를 안내하고 있다.

1.

  • 가중치로 소요시간(duration)을 선택했고, 도로 폭 및 도로의 특성에 따라 가중치를 차등 부여하기로 했으므로, 다음과 같이 정의했다.
  • 은 도로의 폭에 따른 보정 계수를 나타내며 대로와 골목길(일반길)의 값을 다르게 설정하여 도로폭이 넓은 도로를 우선적으로 탐색하도록 한다.
  • 는 도로의 특성에 따른 보정 계수로, 터널이 있는 도로, covered 구조물이 있는 도로, 일반 도로에 따라 그 값을 다르게 설정하여 터널 → covered → 일반 도로 순으로 탐색하도록 한다.
  • 도로 폭(대로 우선 경로)

    • 두 요소를 동시에 조정하는 것은 복잡해서 를 1.0으로 고정하고, 의 적정 값을 찾기 위한 테스트를 진행했다.
    • 도로 폭에 따른 증감 비율을 적용해 테스트한 결과, 도로 폭에 따른 증감 비율이 커질수록 대로를 포함한 경로의 가중치가 지나치게 낮아져 더욱 비효율적인 경로가 안내되는 것을 확인할 수 있었다.
    • 테스트를 계속 진행한 결과, 도로 폭에 따른 은 대로에서 1.1배, 골목길(일반길)에서는 1.0으로 설정했다.
  • 도로 특성(tunnel → covered → 일반 도로 순으로 탐색하는 경로)

    • 이후, 도로 특성에 따라 가중치를 조정하기 위해 에 차등을 두어 테스트를 진행했다.600
    • 하지만 를 아무리 조정해도 기존 OSRM의 최적 경로와 비교하여 유의미한 차이가 없었다.

2.

  • 따라서 유의미한 결과를 내고자 가중치를 다음과 같이 일반 도로에 진입할 때 패널티를 부여하도록 정의했다.
  • 일반 도로 진입에 따른 패널티 값을 증가시키고 구조물이 있는 도로에서의 속도 증가, 일반 도로에서의 속도 감소로 가중치를 조절했으나, 최적 경로와 구조물이 있는 경로간에는 여전히 유의미한 차이가 없었다.
  • 오히려 구조물이 없는 일반 도로를 이용하는 경로가 매우 비효율적으로 바뀌었다.
    • 이는 동일한 거리임에도 불구하고 여러개의 way로 이루어진 불규칙한 도로에서 패널티가 여러번 부과되서 발생한 문제였다.
  • 일반 도로 진입에 패널티를 부과하면 비를 덜 맞는 경로가 아닌 직선 도로로 이루어진 경로를 탐색 하였다.

3.

  • 따라서 일반 도로 진입시 패널티를 부여하는 것이 아닌 구조물이 있는 도로에 진입시 어드밴티지를 부여하는 방식을 테스트해보기로 결정했다.
  • 시나리오 10에서 일반 도로를 이용하는 경로와 구조물이 있는 경로의 거리차가 크지 않을 때는 구조물이 있는 도보 경로가 탐색되었지만, 거리차가 큰 경우(50m 이상)에는 기존 최적 경로와 동일한 경로를 안내해줬다.
  • 최적 경로와 구조물이 있는 경로 간 거리차가 클때도 유의미한 경로 차이를 얻기 위해서는 속도를 극단적으로 변화시켜야 한다는 것을 시나리오 15를 통해 확인했다.
  • 하지만 속도를 극단적으로 변화시켜 계산할 경우 경로의 소요시간에 큰 왜곡이 발생했다.
    • 이를 해결하기 위해 경로의 소요시간은 거리를 기본 도보 속도(5km)로 나눈 값으로 별도로 계산하였다.
  • 이후 진행한 테스트에서 구조물이 있는 경로에 지나치게 큰 어드밴티지를 부여한 것으로 인해, 일반 경로와 구조물 경로간 거리가 지나치게 차이(500m)가 나더라도 무조건 구조물이 있는 경로를 탐색하는 문제가 발생했다.
  • 이를 해결하기 위해 어드밴티지를 줄여가며 최적의 값을 찾기 위한 테스트를 진행했고, 그 결과 일반 경로와 구조물이 있는 경로간의 차이가 200m 이내인 경우에만 구조물이 있는 경로를 안내해주는 적정 어드밴티지를 60으로 구할 수 있었다.
  • 따라서 최종 가중치()에서 은 대로인 경우 1.1, 골목길인 경우에는 1.0이며, 는 tunnel인 경우 12.0, covered인 경우 10.0, 그 외 일반 도로인 경우에는 0.1이고, 어드밴티지는 60이다.

뽀송 가중치 적용하여 탐색한 경로

  • tunnel 주변(분홍색으로 표시한 부분은 tunnel 속성이 있는 도로이다)

  • covered 주변(분홍색으로 표시한 부분은 covered 속성이 있는 도로이다)

최적 경로와 다르게 뽀송 가중치를 적용해 탐색한 경로는 거리가 조금 있더라도 그 거리가 200m 이내면 구조물이 있는 경로로 안내해준다.