논문/road-network

[논문 리뷰] Framework for constructing multimodal transport networks and routing using a graph database:A case study in London

하기싫지만어떡해해야지 2024. 12. 25. 18:48
논문 정보
제목
Framework for constructing multimodal transport networks and routing using a graph database:
A case study in London
저자
소속
SpaceTimeLab, Department of Civil, Environmental & Geomatic Engineering, University College London, London, UK
저널 Wiley
주제 Transactions in GIS
논문제출일 2023.01.04
인용수 6회 (2024.12.23 기준)

 

도로 네트워크 모델링에 관한 논문을 찾다가

현재 우리 연구실에서 진행하고있는 프로젝트와

결이 비슷한 논문이라고 생각하여 한 번 읽어보기로 하였다

 

내가 궁금했던건

기존 여러 데이터를 바탕으로

어떻게 도로 네트워크를 그래프 형태로 모델링하는지였는데

아주 비슷한 연구는 아니지만

훨씬 더 복잡한 교통 네트워크를 graph database를 활용하여

모델링하고 그 성능을 측정한 연구였다

 

내가 연구주제를 찾는데에 도움을 받을 수 있을 것 같아서

리뷰해보고자한다

 

지금까지 논문 리뷰는 논문의 기본 구조를 따라

그냥 나름대로의 정리식이었는데

이번 논문 리뷰는 논문의 기본 구조에서 벗어나서

조금 이해하기 쉬운 방식으로 정리해보려한다


 

논문 제목에서부터 나와있지만

본 논문은 multimodal transport network 구축에 관한 논문이다

 

그렇다면 multimodal transport network란 무엇인가?

 

우리가 흔히 지도를 통해 경로를 찾을 때

대중교통, 운전, 자전거 경로 등

다양한 교통수단의 경로를 찾을 수 있다

 

multimodal transport routing는 이러한 교통수단을

다양하게 이용하여 경로를 찾는 것을 뜻한다

이는 사용자의 개인화된 요구사항(예, 시간 절약, 비용 최소화 등)을

반영하면서 여러 교통수단 간 환승과 연결을 고려하며 경로를 찾는다

 

예를 들어

경복궁에서 출발하여 서울역까지 가는 경로를 찾을 때

버스 + 지하철 + 도보 등을 모두 합하여

최적의 경로를 찾는 것을 말한다

 

따라서 multimodal transport network는

이렇게 다양한 교통수단을 이용하여

routing을 할 수 있도록 데이터를 모델링하는 것인데

 

본 논문의 introduction에 따르면

실제 상용되는 네비게이션 시스템들이

정확히 어떤 방식으로 데이터를 구축하고있는지 공개하지는 않지만

대부분 일반적으로 관계형데이터베이스(RDBMS)를 사용한다고한다

 

하지만 이런 네트워크 모델을 관계형데이터베이스를 이용하여 저장하면

비정형적 정보를 데이터베이스 모델에 통합하기 어렵고

유연하지 못한 스키마 때문에

데이터의 유연한 확장에 어려움을 겪는다

 

또한, 이전에 제안된 multimodal routing을 위해 제안된

multilayer-network에서는 독립적으로 layer를 구축하고

layer간 상호 연결은 동일한 정거장(정류장, 장소 등)을

공통 node로 지정하였다

하지만 이러한 방식은 각 교통수단간의

완벽한 환승을 설명할 수 없다

 

이에 따라, multimodal routing을 위한 network 모델링은

layer 분리, 쿼리 성능을 고려한 entitiy labeling,

layer간 상호 연결 방식을 포함하여

모든 지역에 대해 확장 가능하도록 세부 구조를 제공해야한다

 

따라서, 본 논문에서는

관계형데이터베이스와 이전 multimodal network 연구의 한계점을 극복하고자

Graph Database(neo4j)와 여러 문제를 해결할 수 있는

개념적 데이터 모델을 설계하기 위한 framework를 개발하는 것을 목적으로 하였다

 

기존 공간 교통 네트워크 데이터를 기반으로

graph database를 효율적으로 구축하기 위한 접근법이 제안되었으며

이를 검증하기 위해 런던을 사례로 실제 구축하였다

또한, graph 구축, projection 및 여러 조건에서

유용성을 평가하였다

 

 

MULTIMODAL TRANSPORT GRAPH DATABASE

Conceptual model for multimodal transport in graphs

보통 일정 크기 이상의 도시에서는

개인 이동 수단(eg,. 자동차, 자전거, 도보)과

대중교통 수단(eg,. 지하철, 버스)을 포함하여

이들간의 조합을 활용하여 도시 내에서 이동한다

 

각 교통 수단의 특징을 조금 살펴보자면

버스나 지하철과 같은 대중교통은

정해진 노선과 방향에 따라 운행되고

특정 정류장 혹은 역을 정해진 순서대로 이동한다

 

따라서 이러한 대중교통은

정류정 혹은 역을 node로 나타내고

각 노드 간의 연결은 미리 정해져있는

노선/라인으로 표현한다

 

철도(eg., 지하철)의 경우는

각 역(node)간의 이동 시간이 정해져있기때문에

역 간 이동시간을 relationship의 속성으로 사용하면 되지만

버스의 정류장과 정류장 간 이동 시간은

교통상황에 따라 달라지기 때문에

정류장 간 네트워크 거리를 바탕으로 비용을 계산하여

relationship 속성으로 나타내야한다

 

이와 반대로, 개인 교통수단(eg., 도보, 자차, 자전거)은

고정된 노드 순서에 따라 이동하지 않는다

 

따라서 이러한 개인 교통수단을 

도로 네트워크를 그래프로 모델링해야하는데

일반적인 구조로는

교차로는 node로, 교차로를 연결하는 도로 구간은 realtionship으로 구축된다

각 node간의 거리와 이동 시간은 relationship 속성으로 설정된다

 

각 mode의 layer는 label을 이용하여 식별할 수 있으며

개인 교통수단은 중복되는 경우가 많으므로

독립적인 레이어로 구성되지 않고

n:Road:Walk:Cycle과 같이 구성하였다

 

또한, 이전 연구와 같이 환승을 위해서 중복노드(환승 노드)를 포함하지 않으며

보통은 대중교통을 이용한 후는 최소한의 도보 노드를 포함하기 때문에

다양한 교통수단 연결을 위해 도보 레이어와 연결하였다

 

도보 layer는 보통 양방향으로 이동할 수 있으므로 양방향으로

자전거와 자가용경로는 단방향으로 구성하였다

 

또한, 교통수단의 시간표 정보를 반영할수있도록

시간 layer를 구성하여 대중교통 수단의 entity를

시간과 연결하였다

 

이전의 연구에서는 개별 entity property로

대중교통의 시간정보가 설정되었지만

이는 시간 정보가 바뀔 경우 모든 대중교통의 시간정보를

변경해야한다는 어려움이 있었기에

시간 정보를 담는 time entity를 따로 생성하여

해당 대중교통과 연결하여 시간 정보를 반영하였다

 

또한, 여기서 time layer를 구성할때는

시간 트리 개념을 참조하여 모델링하였으며,

연도에서 밀리초까지의 시간 indexing을 지원하는

계층적 시간 인덱스 구조로 구성된다

 

국가의 교통시스템은 다른 요금을 적용하기위해

구역(zone) 구분이 사용될 수 있으며

이를 위해 zone layer를 따로 생성하여

요금을 관리하였다

 

아래 figure1은 지금까지 설명한 데이터의

conceptual model(개념적 모델)을 나타낸 것이다

  

 

 

 

Entity

총 Entity의 집합 E는

Road, Walk, Cycle, Station, BusStop, Time, Zone

총 7개의 entity의 합집합으로 구성되어있다

 

1. Road: 도로 네트워크 교차로와 교차로의 끝점

Walkways, Cycleways가 포함되어 여러 레이블이 생길 수 있다

 

2. Walk: 보행자 네트워크의 교차로와 교차로의 끝점

 

3. Station: 지하철 혹은 기차역

공통된 Station label을 공유하며 두개 이상의 노선이 지나가는

역에서는 노드가 복제되고, 노선 이름이 label로 지정된다

예: (n1:Station:Northern {name: ‘Warren Street’}), (n2:Station:Victoria {name: ‘Warren Street’})

 

4. BusStop: 버스 정류장

공통된 BusStop이라는 label을 가지지만

각 버스 노선에 따라 노드가 복제되고

노선 번호 조합을 사용하여 별도의 label이 할당된다

예: (n:BusStop:R18 {code: ‘36542’})

 

5. Time: Hour과 Minute로 구성

hour은 0-23까지 24개의 node가 생성되고

minute은 0-59까지 60개의 node가 생성된다

 

6. zone: 요금정보를 위한 구역을 나타낸다

 

 

 

relationship

relationship을 정의할 때 몇 가지 규칙을 정하고

그에 맞게 구현하였다

 

본 논문에서 나온 규칙은 총 9가지였지만

그 중 중요한 부분만 정리해보겠다

 

자차, 보행로, 자전거 entity는 네트워크를 따라

자차, 보행로, 자전거 entity들과 relationship을 갖는다

 

또한 자차 도로와 자전거 도로는 이동 방향에 따라

단방향으로 생성되고, 양방향으로 이동할 수 있는 도로는

단일 선으로 표현되며 양방향으로 모델링된다

 

BusStop간의 relationship은 노선 번호로 정의된다

예: (n1:BusStop)-[:BUS30]->(n2:BusStop)

 

Station 간의 relationship도 노선 이름으로 정의된다

예: (n1:Northern {name: 'Warren Street'})-[:Northern]->(n2:Northern {name: 'Euston'})

 

BusStop과 Station은 CONNECTS relationship을 통해

가장 짧은 거리로 Walk entity와 연결된다

 

다른 line을 가진 동일한 station은

TRANSFER 관계로 연결된다

 

BusStop과 Station은 운행 시간표에 따라

DAY_RUN relationship을 통해 Time entity와 연결된다

 

구역 entitiy에서 요금이 달라지는 구간은 FARE 유형 관계의

속성으로 저장된다

 

 

 

 

Implementation

neo4j graph database를 사용하여 구축되었으며

데이터는 미리 구축된 데이터셋을 사용하였다

또한 대량의 node와 relationship을 생성하기 위해서

단일 트랜잭션으로 효율적으로 처리하기위해

neo4j csv importer를 사용하여 csv 파일을 이용하여 생성하였다

 

아래 Figure 2는 단방향과 양방향 도로에 대한

relationship 구현 예시이다

 

 

 

 

Evaluation

이전 연구를 참고하여 본 데이터 모델링에 대한 평가는

graph creation(그래프 생성)

graph loading(그래프 로딩)

graph query(그래프 쿼리)

 

이를 위하여

1. 제안된 모델 구조에 따라 graph database를 구축하는 동안

그래프 생성 시간을 측정하고

2. 각 모드에 대한 graph를 projection하는 동안

projection time을 측정하였고

3. routing 성능 측정을 위해 routing query 시간을 측정하였다

 

 

 

 

Data and test area

본 논문은 런던 지역을 테스트 지역으로 삼았다

런던 관련 공공 교통 정보를 참조하여

796개의 버스 노선과 28개의 지하철 및 기차 노선을

database에 포함시켰다

 

아래 Table은 데이터의 출처를 나타낸다

 

 

또한 테스트 지역의

그래프 기반 multimodal database를 구축한 모습은

아래와 같다

 

 

 

 

 

Graph database construction using prebuilt dataset

버스 및 철도 레이어는 일반적으로

정류장 및 정거장의 순서를 기준으로 구축되었다

 

철도의 경우 양방향 LINE 관계가 생성되었고

서로 다른 라벨을 가진 동일한 정거장 노드는

TRANSFER 관계로 연결되었다

 

런던에서는 요금이 시간대에 따라 다르기 때문에

6개의 Zone 노드(1~6)가 생성되었고

그 Zone 는 PEAKFARE와 OFFPEAKFARE 2가지의 관계로 연결되어

요금을 속성으로 설정하였다

예: (n:Zone {zone:1})-[:PEAKFARE {fare: 3.2}]-(m:Zone {zone:2})

 

 

버스의 경우는 정류장 간의 네트워크 거리를 계산하기 위해

복잡한 과정을 걸쳐서 구현되었다

 

1. 위치정보를 포함한 BusStop entity를 생성하고

2. R30과 같은 Route Label을 추가하였다

3. BusStop point를 bus network에 snapping하고

snapping된 정류장을 기준으로 bus network를 segment로 분할하였다

4. 매칭된 BusStop을 찾아 노선 정보에 따라 단방향 관계로 연결한다

4. segment 거리 속성을 사용하여

distance 및 travel time 속성을 설정한다

 

 

도로 및 경로 네트워크는 노드와 링크 레이어로 구성되며

OS(Ordnance Survey) 고속도로 헌정 데이터를 사용하여

각 노드를 DRIVE_WAY라는 단방향 관계로 연결하였다

 

 

multimodal routing을 위해서 가상의 버스 시간표를 구축하였으며

BusStop node가 Hour-Minute node와 DAY_RUN 관계로 연결되었다

이렇게 대중교통의 시간표를 제공하면

특정 출발 및 도착 시간에 적합한 필터링된 그래프를 형성하여

효율적으로 routing을 할 수 있다

 

또한, 버스, 자동차 도로, 도보, 자전거 도로의 경우

네트워크간 거리를 계산하여 distance 속성으로 저장하였고

이동속도를 이용하여 이동 시간을 계산하여 travel time 속성에 저장하였다

 

 

 

Results

런던의 모든 교통 노드를 포함하여

총 1,079,962개의 node가 생성되었고

구성은 아래와 같다

 

 

또한 Relationship(관계)는 아래와 같다

 

 

 

 

graph creation time

테스트 블록에 대한 전체 graph database는

21분(1242초) 안에 구축되었다

 

대부분(19분)은 버스 노드와 관계를 생성하는데 사용되었다

버스는 다양한 노선번호 라벨을 가지고 있어

다른 모드보다 생성 시간이 더 길었다

 

도로, 보행, 자전거 노드는 단일 라벨과

관계 타입을 사용하여 5.43초만에 동시 생성되었다

 

 

graph projection time

neo4j의 graph data science library를 사용하여

분석에 필요한 subgraph를 구성하였다

 

subgraph를 사용할 경우

압축된 형태로 저장할 수 있어 쿼리에 효율적이고

특정 노드와 관계만 포함된 subgraph로 routing query를 실행하면

query 속도를 높일 수 있다

 

아래 그래프는 각각 그래프 구축과

projection(투영)에 걸린 시간을 나타낸다

 

 

 

 

 

Multimodal routing results

런던 내의 test block에서는 node 8808개

relationship 52203개로 구성되었다

 

2가지 유형으로 routing을 진행했다

1. [출발지, 목적지, mode, 선호도]

2. multi-stop routing with multimode(다중 정차 다중 모드)

 

1번의 경우 임의로 선택한 두 지점 A와 B를 Origin-Destination(OD) 쌍으로 설정한 후

모든 교통수단을 사용하는 가장 빠른 경로를 도출하고,

이후 동일한 OD 쌍에 대해 도보 및 버스로만 routing을

마지막으로 모든 교통수단을 사용하되 최소 환승 조건을 적용하여 routing을 구성하였다

 

2번 다중 정차의 경우는,

임의로 5개의 정차 지점과 방문 순서를 설정한 후

3개의 중간 정차를 포함한 모든 교통수단을 사용하는

가장 빠른 경로를 도출하였다

 

neo4j graph data science(v.1.8.2)를 사용하여

routing query를 실행하였으며

평균 교통수단별 속도를 기반으로

이동 시간을 계산하였다

 

본 실험의 목적은 정확한 경로 추출이 목적이 아닌

제안된 모델을 기반으로 구축된 그래프 데이터베이스가

multimode routing 문제에 적용이 가능한지를 확인하는 것이다

 

따라서 경로 비용을 단순화하여 routing을 수행하였으며

성인의 평균 도보 속도는 1.3m/s

평균 자동차 속도를 9.5mph,

평균 버스 속도는 9.3mph,

두 역간의 이동 시간은 2분,

다른 철도 노선 간 환승 시간은 3분,

그리고 버스 정류장과 역 사이를 연결하는

CONNECTS 관계의 이동시간은 1분으로 설정하여

위 시간을 바탕으로 다익스트라 알고리즘으로

routing을 실행하였다

 

a에서 b까지의 모든 교통수단을 사용한 가장 빠른 route 결과이다

 

 

a에서 b까지 버스와 도보만을 사용한 가장 빠른 route 결과이다

 

 

a에서 b까지의 가장 빠른 driving route 결과이다

 

 

 

a에서 b까지의 최소 환승으로 최단 route 결과이다

 

 

 

a와 b까지 Google Map의 최단 경로 결과이다

본 실험에서 구축된 데이터베이스에서 반환된 경로가

Google Maps의 최적 경로 목록에 포함된 것을 확인하였다

 

반환된 경로의 시간이 Google Maps는 22분

본 실험은 28분으로 다르지만

이는 본 실험이 실제 이동 시간이 아닌

실험적 가정으로 이동 시간을 계산하였기 때문이다

 

a, b, c 각 쿼리의 쿼리 시간은

261ms, 224ms, 146ms으로 점차 줄어드는 것을 확인할 수 있는데

이는 모든 교통수단에서

도보-버스 -> 자동차로 filtering 되면서

그래프 projection으로 subgraph 내부에서 쿼리하면서

graph size가 줄어들고 이에 따라

쿼리 수행시간이 줄어드는 것으로 나타났다

 

 

 

 

다중 정차 routing test 결과를 나타낸다

 

결론적으로 구축된 그래프 데이터베이스를 활용하여

지하철(tube)와 버스를 포함한 다양한 교통 수단,

서로 다른 노선 간의 환승

정류장 및 역까지의 도보 이동 등을

효과적으로 탐색할 수 있음을 확인했다

 

 

 

쿼리 시간 측정을 위해

(a) 여러 개의 OD 쌍을 계속해서 늘려가며 쿼리 수행시간을 측정했고

(b) stop(경유지)의 개수의 늘려가며 쿼리 수행 시간을 측정하였다

 

(a)에서는 OD 쌍의 수를 10개에서 2000개까지 증가시켰고

쿼리 시간이 OD 쌍의 수에 증가하여

선형적으로 증가함이 확인되었는데,

이는 전체 반복 수와 상관없이 안정적인 쿼리 성능이

보장된다는 것을 뜻한다

 

또한, 위 쿼리 실행 test는

cold run(db를 재부팅하거나 cache를 flush한 직후 실행)

hot run(cold run이후 cache를 flush하지 않고 실행)

두 가지 환경에서 실행하였다

 

 

 

Timetables and fares

본 연구에서는 버스 및 대중교통의 시간표와

요금 정보도 새로운 레이어로 모델링하였다

 

 

Old Marylebone Town Hall 버스 정류장에서

Euston Square Station 버스 정류장까지의 경로를 쿼리한 결과이다

 

 

동일 노선에 대하여 월요일 오후 12시 30분 이전 출발을 가정한 결과이다

30번 노선 버스만 검색되었다

30번 버스 노선은 12시 25분에 탑승이 가능하다

 

 

동일 노선에 대하여 월요일 오후 12시 30분 이후 출발을

쿼리한 결과이다

이 때는 18번 노선의 버스만 검색되었고

이 버스는 12시 36분에 탑승이 가능하다

 

 

또한, PEAK 타임과 OFFPEAK 타임에 대한

요금 정보도 모델링하였다

 

 

Finchley Central(Zone 4) 역에서 Marble Arch(Zone 1) 역 까지의

PEAK FARE 결과이다

 

 

위와 동일한 경우에서

OFFPEAKFARE 쿼리 결과이다

 

 

 

 

Conclusion and Future work

그래프 데이터베이스는 데이터 통합, 확장 및 업데이트 측면에서

관계형 데이터베이스에 비해서 더 유연한 스키마를 기반으로

다중모드 네트워크를 효과적으로 관리할 수 있음을

본 논문에서 입증하였다

 

또한 향구 연구 방향으로는

3가지 측면을 고려하였다

 

1. 다른 data source에서 semantic information 통합

본 연구에서는 다중 교통수단 경로와

시간표, 요금 정보 같은 정보에 초점을 맞추었다

하지만 SNS나 기사와 같은 text data,

도로 임시 폐쇄 여부,

교통 수단 별 교통 흐름 등과 같은

추가적인 정보들도 graph database에 구축하여

routing 가중치로 활용할 수 있다

 

2. 정확한 비용값

본 연구에서는 이동 시간을 실제 시간이 아닌

계산을 통하여 가정한 비용 값을 사용했다

실제 상황에서 각 도로는 서로 다른 속도 제한을 가지며

교통량에 따라 평균 이동 속도가 달라진다

이러한 정보들을 활용하면

더욱 실용적이고 정확한 경로를 도출할 수 있다

 

3. 다양항 routing 확장

제안된 그래프 데이터베이스 모델로는

그저 여러 교통수단을 이용한 routing에 그칠뿐아니라

실외-실내간 경로 연결

시간 의존적 routing

개인화된 routing 등

다양한 응용 routing을 수행할 수 있다

 


 

나름대로 논문을 읽고 이해하면서

기존 논문의 구조를 벗어나

다른 방식으로 정리해보려했으나(..)

논문이라는게 사실 가장 논리적이고

가장 이해하기 쉬운 구조로 작성된 글이라

그 틀을 벗어나기 쉽지 않았던 것 같다

 

아무튼 본 논문은 road network에 대해서

처음 접해보는 나에게

이런 방식으로 데이터모델을 구성하는구나를

이해하게 해준 좋은 논문이었던 것 같다

 

그러나 아직 내가 다루기에는

조금 전문적이고 큰 주제라는 생각이 들어

본 논문에서 나온 과정 중에서

좀 더 작고 구체적인 과정들을 다룬 논문을 보며

좁은 연구주제를 선택해나가려고한다

 

아무튼 이번 논문리뷰 끝-!