KR100716981B1 - 대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기 - Google Patents

대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기 Download PDF

Info

Publication number
KR100716981B1
KR100716981B1 KR1020040077727A KR20040077727A KR100716981B1 KR 100716981 B1 KR100716981 B1 KR 100716981B1 KR 1020040077727 A KR1020040077727 A KR 1020040077727A KR 20040077727 A KR20040077727 A KR 20040077727A KR 100716981 B1 KR100716981 B1 KR 100716981B1
Authority
KR
South Korea
Prior art keywords
node
heap
station
extracted
route
Prior art date
Application number
KR1020040077727A
Other languages
English (en)
Other versions
KR20060028851A (ko
Inventor
이양주
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040077727A priority Critical patent/KR100716981B1/ko
Publication of KR20060028851A publication Critical patent/KR20060028851A/ko
Application granted granted Critical
Publication of KR100716981B1 publication Critical patent/KR100716981B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry

Landscapes

  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Navigation (AREA)

Abstract

교통정보를 이용하여 출발지로부터 목적지까지 가장 짧은 시간에 도달할 수 있는 최적경로를 제공하는 대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기가 개시된다.
본 발명에 따른 대중교통의 최적경로 검색방법은 출발지와 도착지를 입력하는 단계; 상기 출발지와 연결된 하나 이상의 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 출발지로부터 최소 소요시간을 갖는 노드를 힙에서 추출하고, 상기 추출된 노드가 도착지일 때까지 상기 추출된 노드에 연결된 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 추출된 노드로부터 최소 소요시간을 갖는 노드를 힙에서 추출하여 상기 추출된 노드와 그 부모노드의 관계를 배열로 저장하여, 상기 출발지와 도착지를 연결하는 최적경로 트리를 구성하는 단계; 및 상기 최적경로 트리를 이용하여, 상기 출발지로부터 도착지까지의 최적경로를 검색하는 단계를 포함한다.
본 발명에 의하면, 대중교통의 정류장 또는 역 사이의 소요시간 및 환승시간을 고려하여 출발지로부터 도착지까지 최단시간내에 이르는 경로를 확인할 수 있으며, 본 발명에 따른 최적경로 검색방법을 휴대용 단말기 등에 적용함으로써 언제든지 필요한 상황에서 대중교통의 최적경로를 검색하도록 할 수 있다.

Description

대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기{Method for searching optimal path of mass transportation and mobile apparatus therewith}
도 1은 본 발명에 따른 대중교통의 최적경로 검색방법이 적용되는 최적경로 검색시스템의 구성을 개략적으로 나타낸 블록도.
도 2는 본 발명에 따른 대중교통의 최적경로 검색방법을 나타낸 플로우 차트.
도 3은 본 발명에 따른 대중교통의 최적경로 검색방법에서 부모-자식 배열을 이용한 경로탐색 과정을 나타낸 플로우 차트.
도 4는 본 발명에 따른 대중교통의 최적경로 검색방법을 설명하기 위한 예로서, 역 사이의 구간시간 및 환승역에서의 환승시간을 나타낸 서울 지하철 노선도의 일부를 나타낸 도면.
도 5는 본 발명인 최적경로 검색방법에 의하여 힙에 노드를 추가하는 과정을 예시한 도면.
도 6은 본 발명인 최적경로 검색방법에 의하여 형성된 부모-자식 배열을 이용하여 형성된 최적경로 트리를 나타낸 도면.
본 발명은 대중교통의 경로를 검색하는 방법에 관한 것으로, 보다 상세히는 교통정보를 이용하여 출발지로부터 목적지까지 가장 짧은 시간에 도달할 수 있는 최적경로를 제공하는 대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기에 관한 것이다.
일반적으로, 운전자나 승객의 의사에 따라 자유롭게 경로를 선택할 수 있는 택시 등을 제외하고, 버스나 지하철과 같은 대중교통은 미리 정하여진 소정의 노선을 따라서 운행된다. 이렇게 노선이 정해진 대중교통을 이용할 때, 승객이 가고자 하는 목적지가 초행이거나 익숙하지 않을 경우를 대비하여, 승객이 출발지와 목적지를 입력하면 상기 목적지에 도착하기 위한 경로를 보여주는 경로검색 시스템이 제안된 바 있다.
종래의 경로검색 방법의 일 예로서 대한민국 공개특허공보 제2002-030636호에서는, 노선이 정해진 적어도 1이상의 대중교통수단에 대하여 출발지와 도착지 사이의 최적경로를 검색하기 위하여, 상기 시스템의 단말기에 출발지와 도착지를 입력하여 최적 경로를 검색을 요구하는 단계와, 상기 검색요구에 응답하여 시스템 서버에 구비된 데이터 베이스를 검색하여 각각 출발지를 경유하는 제 1노선과 도착지를 경유하는 제 2노선을 검색하는 단계와, 상기 제 1 및 제 2 노선을 대비하여 일치하는 노선이 존재하는지를 판단하는 단계로 이루어진 대중교통의 최적경로 검색방법이 제안된 바 있다.
그러나, 상기 종래의 경로 검색방법은 시스템 서버에서 검색요구에 응답하여 노선의 존재를 검색하고, 일치되는 노선이 존재하는 지를 판단하는 등의 처리를 하여야 하므로 상기 시스템 서버에 접속할 수 없는 경우에는 다른 대안을 제시하지 못하였다.
또한, 수많은 사용자가 상기 시스템 서버에 접속할 경우에는 상기 시스템 서버에 무리가 갈 수 있으며, 사용자의 요구에 응답하는 시간이 느려질 수 있다. 또한, 휴대용 단말기에서 무선 인터넷 등을 통하여 상기 시스템 서버에 접속하는 경우에는 접속시간이 길어질 수록 휴대용 단말기의 사용 요금이 증가하므로 사용자에게 부담이 된다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서정해진 노선을 따라 운행되는 대중교통 수단을 이용할 때, 승객이 최단 시간내에 목적지에 도착할 수 있는 경로를 선택할 수 있도록 하는 대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 단말기를 제공하는 데에 목적이 있다.
또한, 본 발명은 교통정보 서버에서 제공되는 실시간 데이터를 이용하여 교통상황에 따라 최적의 경로를 검색하는 방법 및 이를 이용한 휴대용 단말기를 제공하는 데에 목적이 있다.
상기한 바와 같은 목적을 달성하기 위하여 본 발명인 대중교통의 최적경로 검색방법은 정해진 노선을 따라 운행하는 대중교통의 경로검색 방법에 있어서, 출발지와 도착지를 입력하는 단계; 상기 출발지와 연결된 하나 이상의 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 출발지로부터 최소 소요시간을 갖는 노드를 힙에서 추출하고, 상기 추출된 노드가 도착지일 때까지 상기 추출된 노드에 연결된 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 추출된 노드로부터 최소 소요시간을 갖는 노드를 힙에서 추출하여 상기 추출된 노드와 그 부모노드의 관계를 배열로 저장하여, 상기 출발지와 도착지를 연결하는 최적경로 트리를 구성하는 단계; 및 상기 최적경로 트리를 이용하여, 상기 출발지로부터 도착지까지의 최적경로를 검색하는 단계를 포함한다.
상기 최적경로 트리를 구성하는 단계는, 상기 힙에 추가되는 노드가 적어도 두 개 이상의 노선이 교차되는 환승 노드에 해당되는 경우, 상기 환승 노드에 연결된 다음 노드까지를 추가하는 단계를 포함하는 것이 바람직하다.
상기 각 노드 사이의 소요시간은 교통정보 서버에서 제공되는 교통정보 데이터를 이용하여 계산되는 것이 바람직하다.
상기 최적경로를 검색하는 단계는, 상기 도착지부터 그에 연결된 부모노드를 거슬러 올라가는 방식으로 최적경로를 검색하는 단계를 포함하는 것이 바람직하다.
한편, 본 발명에 따른 대중교통의 최적경로 검색방법을 이용한 휴대용 기기는 출발지와 도착지를 입력받는 입력부; 상기 출발지와 연결된 하나 이상의 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 출발지로부터 최소 소요시간을 갖는 노드를 힙에서 추출하고, 상기 추출된 노드가 도착지일 때까지 상기 추출된 노드에 연결된 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 추출된 노드로부터 최소 소요시간을 갖는 노드를 힙에서 추출하여 상기 추출된 노드와 그 부모노드의 관계를 배열로 저장하여, 상기 출발지와 도착지를 연결하는 최적경로 트리를 구성하고, 상기 최적경로 트리를 이용하여 상기 출발지로부터 도착지까지의 최적경로를 검색하는 경로검색부를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.
본 발명을 설명하는데 있어서, 정해진 노선을 따라 운행되는 대중교통수단이 승객을 승하차시키기 위하여 정차하는 곳, 예를 들어 버스의 정거장 또는 지하철의 역 등을 노드(node)라고 정의한다. 또한, 적어도 2개 이상의 노선이 교차되어 승객이 다른 노선으로 갈아탈 수 있는 노드를 환승노드라고 정의한다.
도 1은 본 발명에 따른 대중교통의 최적경로 검색방법이 적용되는 최적경로 검색시스템의 구성을 개략적으로 나타낸 블록도이다.
도시된 바와 같이, 본 발명에 따른 대중교통의 최적경로 검색시스템은, 교통정보 서버(100)와, 상기 교통정보 서버(100)로부터 필요한 교통정보 데이터를 수신하여 사용자가 선택한 출발지와 목적지에 따른 최적경로를 검색하는 휴대용 단말기(200)를 포함한다. 여기서, 상기 휴대용 단말기(200)는 PDA(Personal Digital Assistant), 셀룰러폰, 스마트폰 등과 같이 개인이 휴대하여 지니고 다닐 수 있는 모든 휴대용 기기를 총칭한다.
상기 교통정보 서버(100)는 상기 휴대용 단말기(200)에서 최적경로를 검색하는데 필요한 교통정보 데이터를 제공하는 역할을 한다. 상기 교통정보 서버(100) 는 각 노드 사이를 이동하는데 걸리는 시간(이하, "구간시간" 이라 한다.) 및 상기 노드가 환승노드에 해당되는 경우에 다른 노선으로 갈아타는데 걸리는 시간(이하, "환승시간"이라 한다.)등에 관한 교통정보 데이터를 모아 놓은 교통정보 데이터베이스(102)를 포함한다. 상기 교통정보 서버(100)는 교통상황의 변화에 따라 상기 교통정보 데이터베이스(102)의 정보를 수시로 업데이트할 수 있다.
상기 휴대용 단말기(200)는 입력부(210), 경로검색부(220), 및 통신부(230)를 포함한다.
상기 입력부(210)는 사용자가 출발지와 도착지를 입력하는 부분으로서, 휴대용 단말기의 키패드, OSD(On Screen Display), 터치스크린에 노선을 표시한 후 출발지와 도착지를 선택하는 방식 등으로 다양하게 구성될 수 있다.
상기 경로검색부(220)는 입력된 출발지와 도착지에 관한 정보를 토대로, 후술하는 바와 같이, 힙에 출발지와 연결된 노드를 추가해가면서 노드 중 최소 소요시간을 갖는 노드를 추출하고, 상기 추출된 노드의 정보를 통해 부모-자식 배열을 형성한 후, 상기 부모-자식 배열을 통해 상기 도착지로부터 출발지까지 거슬러 올라가는 탐색방식을 통하여 최적경로를 검색한다.
상기 통신부(230)는, 상기 경로검색부(220)에서 최적경로 트리를 구성할 때 필요한 교통정보 데이터를 상기 교통정보 서버(100)로부터 수신하여 상기 경로검색부(220)에 전달한다. 여기서, 상기 교통정보 서버(100)와 상기 통신부(230) 사이의 접속은 유무선 접속방식 모두가 이용될 수 있다.
한편, 본 발명에 따른 대중교통의 최적경로 검색 시스템에서, 상기 휴대용 단말기(200)가 통신장애 등으로 인해 상기 교통정보 서버(100)에 접속될 수 없는 경우를 대비하여, 소정의 교통정보 데이터를 상기 휴대용 단말기(200)에 저장하고, 저장된 교통정보 데이터를 이용하도록 할 수 있다.
이하, 본 발명에 따른 대중교통의 최적경로 검색방법에 관하여 상세히 설명한다.
본 발명에 따른 대중교통의 최적경로 검색방법에 의하면, 출발지에 해당되는 노드로부터 시작하여 그 주변의 노드에 관한 데이터를 힙(heap)에 추가해 나간다.
여기서, 상기 힙에 추가되는 노드의 데이터는 상기 노드의 번호 및 소요시간이 될 수 있다. 상기 노드의 번호는 그 노드가 어떠한 버스의 정류장 또는 지하철 역을 나타내는지를 의미하는 것으로 미리 지정될 수 있다. 다만, 본 발명에서는 설명의 편의를 위하여, 상기 노드의 번호 대신에 상기 노드에 해당하는 구체적인 역명을 사용하기로 한다.
다음, 상기 힙에 저장된 노드 중에서 최소 소요시간을 갖는 노드를 추출하고, 상기 추출된 노드의 부모 노드에 관한 정보를 배열로 저장한 다음, 다시 상기 추출된 노드에 연결된 다음 노드를 힙에 추가하는 과정을 반복한다. 상기 과정은 상기 추출된 노드가 도착지 노드와 일치하거나 힙에 더이상 노드가 저장되지 않을 때까지 반복된다. 최소 소요시간을 갖는 노드를 추출하고 이를 배열로 저장하면, 상기 목적지로부터 도착지에 이르는 경로를 포함하는 최적경로 트리를 구성할 수 있다.
그리고, 상기 최적경로 트리, 즉, 부모-자식 관계를 나타낸 배열을 이용하 여, 출발지로부터 도착지까지의 최적경로를 탐색할 수 있게 된다.
도 2는 본 발명에 따른 대중교통의 최적경로 검색방법을 나타낸 플로우 차트이다.
도 2를 참조하여 본 발명에 따른 대중교통의 최적경로 검색방법에 관하여 구체적으로 설명한다.
먼저 사용자가 출발지와 도착지를 입력하면(300), 입력된 출발지에 해당되는 노드가 힙(heap)에 추가된다(310). 여기서, 상기 힙은 각 노드의 키 값이 그 자식의 키 값보다 크지 않은 최소힙(min heap)이 사용된다.
또한, 상기 힙에 노드가 추가되는 경우, 출발지로부터 상기 추가되는 노드에 이르는 소요시간이 키(key) 값으로 저장된다. 여기서, 상기 소요시간은 힙에 추가된 노드 중에서 최소값을 갖는 노드를 추출하는데에 사용되는 것으로 구간시간 및 환승시간을 포함하여 계산되는 값이다.
다음, 상기 힙에 저장되어 있는 노드가 존재하는지, 즉, 상기 힙이 비어있는지를 판단한다(320). 상기 판단 결과, 상기 힙이 비어있지 않은 동안에는 상기 힙에 저장된 노드 중에서 최소 소요시간을 갖는 노드, 즉, 상기 출발지로부터 그 노드에 이르기까지 구간시간 및 환승시간을 합한 소요시간이 최소인 노드를 추출한다(322).
그리고, 상기 추출된 노드가 도착지에 해당되는 노드인지를 판단한다(324). 상기 단계(324)의 판단 결과, 추출된 노드가 도착지에 해당되는 경우에는 힙에 노드를 추가하며 최소 소요시간을 갖는 노드를 추출하는 과정을 중단하고, 경로탐색 을 시작한다(340).
한편, 상기 추출된 노드가 도착지에 해당되는 노드가 아닌 경우에는, 상기 추출된 노드에 연결된 다음 노드가 존재하는지를 판단한다(326). 상기 추출된 노드에 연결된 다음 노드가 존재하지 않는 경우에는, 상기 경로탐색(340) 단계로 넘어가고, 다음 노드가 존재하는 경우에는 다시 상기 추출된 노드가 환승노드에 해당되는지를 판단한다(328).
상기 단계(328)의 판단 결과, 상기 추출된 노드에 연결된 다음 노드가 환승노드에 해당되는 경우에는 상기 교통정보 서버(100)에 연결하여, 상기 추출된 노드로부터 다음 노드까지의 구간시간 및 환승시간에 관한 정보를 수신하여, 상기 추출된 노드에 연결된 다음 노드의 키 값인 소요시간에 추가한다(332).
상기 단계(328)의 판단 결과, 상기 추출된 노드에 연결된 다음 노드가 환승노드가 아닌 경우에는, 상기 교통정보 서버(100)에 연결하여, 상기 추출된 노드로부터 다음 노드까지의 구간시간에 관한 정보를 수신하여, 상기 추출된 노드에 연결된 다음 노드의 키 값인 소요시간에 추가한다(330).
여기서, 통신 장애 등으로 인하여 상기 교통정보 서버(100)에 연결될 수 없는 경우 등을 대비하기 위해서, 각 노선의 구간시간 및 환승시간을 포함한 별도의 교통정보 데이터를 저장하고, 상기 교통정보 데이터에 포함된 구간시간 및 환승시간을 이용하여 상기 추출된 노드에 연결된 다음 노드의 키 값인 소요시간을 계산할 수도 있다.
다음, 상기 추출된 노드의 부모 노드에 관한 정보를 읽어들여와서, 상기 추 출된 노드와 그 부모 노드간의 관계를 배열(이하, "부모-자식 배열"이라 한다.)로 저장한다(334). 여기서, 부모 노드는 상기 추출된 노드에 해당되고, 상기 추출된 노드에 연결되어 힙에 추가되는 노드가 자식 노드에 해당되면, 상기 자식 노드들은 상기 부모 노드에 관한 정보를 갖고있게 된다.
상기 부모-자식 배열명을 m_iParent이라 하면, m_iParent[추출된 노드] = 상기 추출된 노드의 부모 노드, 와 같은 식으로 부모-자식 배열을 형성한다. 여기서, 상기 추출된 노드가 최상위 노드에 해당되어 부모 노드가 존재하지 않는 경우에는 -1 의 값을 저장하기로 한다.
다음, 상기 추출된 노드에 연결된 다음 노드를 힙에 추가한다(336). 여기서 상기한 바와 마찬가지로, 상기 힙에는 추가되는 상기 단계(330,332)에서 계산된 출발지로부터 상기 다음 노드에 이르기까지의 총 소요시간이 추가되어 저장된다.
그리고, 다시 상기 힙에 저장된 노드 중에서 최소 소요시간을 갖는 노드를 추출하는 과정(320)부터, 상기 추출된 노드의 다음 노드를 힙에 추가하는 과정(336)이 반복된다. 상기한 바와 같이, 상기 반복과정(320 내지 336)은 추출된 노드가 도착지에 해당되는 노드에 해당되거나 또는 힙에 더 이상 저장된 노드가 존재하지 않는 경우 또는 상기 추출된 노드에 연결된 다음 노드가 존재하지 않을 때까지 반복된다.
상기한 반복과정을 통해, 최소 소요시간을 갖는 노드와 상기 노드의 부모 노드관계를 나타내는 상기 부모-자식 배열 m_iParent 를 얻음으로써, 출발지와 도착지를 연결하는 최적의 경로를 포함하는 최적경로 트리를 구성할 수 있다.
다음, 상기 최적경로 트리, 즉, 부모-자식 배열인 m_iParent를 이용하여 출발지로부터 도착지에 최단시간에 도착할 수 있는 최적경로 탐색을 한다(340).
본 발명에 따른 대중교통의 최적경로 검색방법에서 부모-자식 배열을 이용한 경로탐색 과정을 나타낸 플로우 차트인 도 3을 참조하여 구체적으로 설명하면, 먼저, 상기 단계들(300 내지 336)을 통해 형성된 부모-자식 배열을 이용하여 도착지의 부모 노드를 검색한다(342).
다음, 검색된 부모노드가 출발지에 해당되는 노드인지를 판단하여(344), 상기 검색된 부모노드가 출발지에 해당되는 노드가 아닌 경우에는 현재 검색된 부모노드를 자식노드로 하는 부모노드를 검색하고, 현재 검색된 부모노드의 정보를 저장하는 과정(346)을 반복한다. 상기 과정은 검색된 부모노드가 출발지일 때까지 계속된다.
검색된 부모노드가 출발지에 해당되는 경우에는 상기 저장단계(346)에서 저장된 노드들을 연결하면, 바로 출발지로부터 도착지에 이르는 최적경로가 형성된다.
예를 들어, 전술한 최적 경로 트리 형성과정을 통해서 다음과 같은 부모-자식 배열이 형성되었다고 가정한다. 여기서, 출발지는 F, 도착지가 C라고 가정한다.
m_iParent[A]=E // 추출된 노드 A의 부모노드가 E 임을 의미.
m_iParent[B]=A // 추출된 노드 B의 부모노드가 A 임을 의미.
m_iParent[C]=A // 추출된 노드 C의 부모노드가 A 임을 의미.
m_iParent[D]=A // 추출된 노드 D의 부모노드가 A 임을 의미.
m_iParent[E]=F // 추출된 노드 E의 부모노드가 F 임을 의미.
m_iParent[F]=-1 // 추출된 노드 F가 최상위의 루트노드임을 의미.
상기 부모-자식 배열로부터 도착지 C의 부모노드가 A라는 것을 검색하고, 다시 A의 부모노드가 E, E의 부모노드는 F, F는 최상위 루트노드인 출발지에 해당된다는 것을 상기 배열관계를 검색하여 알수 있다. 즉, 도착지로부터 출발지에 이르는 최단시간의 경로인 C-A-E-F 를 검색할 수 있다.
이하에서는, 본 발명인 대중교통의 최적경로 검색방법의 예로서, 지하철 낙성대역으로부터 숭실대입구역까지 최단시간에 도달할 수 있는 경로를 검색하는 방법을 설명한다.
도 4는 역(노드) 사이의 구간시간 및 환승역에서의 환승시간을 나타낸 서울 지하철 노선도의 일부이고, 도 5는 본 발명인 최적경로 검색방법에 의하여 힙에 노드를 추가하는 과정을 예시한 도면이고, 도 6은 본 발명인 최적경로 검색방법에 의하여 형성된 부모-자식 배열을 이용하여 형성된 최적경로 트리를 나타낸 도면이다.
도 4에서 각 구간사이의 숫자는 그 구간을 통과하는데 걸리는 구간시간을 의미하고, 원문자형태로 나타낸 숫자는 환승역에서의 환승시간을 나타낸 것이다. 상기한 바와 같이, 구간시간 및 환승시간 등을 포함하는 교통정보 데이터는 상기 교통정보 서버로부터 필요에 따라 수신될 수도 있고, 미리 저장된 교통정보 데이터를 이용할 수도 있다.
도 5를 참조하면, 낙성대에서 출발하여 숭실대입구까지 이르는 최적경로, 즉 최단시간내에 도달할 수 있는 경로를 찾기 위하여, 출발지인 낙성대 역을 힙에 추가한다. 이때, 낙성대가 출발지이므로, 힙에 저장되는 소요시간은 0이 된다.
다음, 힙에 저장된 낙성대를 추출하고, 부모-자식 배열로 m_iParent[낙성대]=-1, 을 저장한다. 상기한 바와 같이, 부모-자식 배열에서 -1의 값은 그 노드(역)이 최상위 노드에 해당되는 것을 뜻한다.
다음, 상기 추출된 낙성대역에 연결된 다음 역을 힙에 추가한다. 도 4의 노선도에 도시된 바와 같이, 낙성대 역은 서울대입구역 및 사당역과 연결되어 있다. 따라서, 서울대입구역 및 사당역을 힙에 추가한다. 이때, 추가되는 사당역은 환승역에 해당하므로, 다시 상기 사당역에 연결된 방배역, 총신대입구, 및 남태령역을 힙에 추가한다. 상기 추가되는 역들은 추출된 낙성대역을 부모노드로 갖으며, 상기 힙에는 구간시간 및 환승시간을 통해 계산된 낙성대역으로부터의 소요시간이 저장된다.
다음, 상기 힙에 저장된 역들 중에서 최소 소요시간을 갖는 노드(역)를 추출한다. 그 결과, 낙성대로부터 2분이라는 최소 소요시간을 갖는 서울대입구역이 추출되고, 상기 서울대입구역과 그 부모노드인 낙성대역의 관계가 다시 상기 부모-자식 배열 m_iParent[서울대입구]=낙성대, 로 저장된다.
다음, 상기 추출된 서울대입구역과 연결된 다음 역인 봉천역이 힙에 추가된다. 상기 봉천역은 추출된 서울대입구역을 부모노드로 갖게된다.
그리고, 다시 힙에 저장된 역들 중에서 최소 소요시간을 갖는 노드를 추출한다. 이 경우, 사당역이 2.5분이라는 최소 소요시간을 갖으므로, 힙으로부터 사당 역이 추출된다.
다음, 추출된 사당역과 그 부모노드인 낙성대에 관한 정보가 상기 부모-자식 배열로 저장된다. 즉, m_iParent[사당]=낙성대, 이다.
그리고, 상기 사당역과 연결된 다음 역이 힙에 추가되는데, 추가되는 다음 역 중 총신대입구역이 환승역에 해당되므로, 다시 상기 총신대입구역에 연결된 내방, 남성, 및 동작역이 힙에 추가된다. 여기서, 상기 내방, 남성, 동작은 추출된 상기 사당역을 부모노드로 갖는다.
그리고, 다시 힙에 저장된 역들 중에서 최소 소요시간을 갖는 노드를 추출하는데, 이 경우에는 3.5분이라는 소요시간을 갖는 봉천역이 추출된다. 또한, 추출된 봉천역과 그 부모노드인 서울대입구에 관한 정보가 상기 부모-자식 배열에 저장된다. 즉, m_iParent[봉천]=서울대입구, 와 같이 저장되고, 상기 봉천역에 연결된 신림역이 힙에 추가된다.
이와 같은 과정은 최소 소요시간을 갖는 노드로서 도착지인 숭실대입구역이 추출될 때까지 반복된다. 상기 과정 이후에 진행되는 과정을 힙에 추가되는 노드 및 추출되는 노드, 추출된 노드로부터 도출되는 부모-자식 배열관계를 중심으로 간략히 설명하면 다음과 같다. 이하의 설명에서, 역명 다음의 괄호안의 숫자는 상기 소요시간에 해당된다.
a1) 힙에는 신림(5.5), 남태령(10.5), 방배(5.5), 총신대입구(10.5), 내방(19.5), 남성(19.5), 동작(13.5) 이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 신림역이 추출되고, 상기 신림역에 연결된 신대방역이 힙에 추가된다. 상기 과정에서 m_iParent[신림]=봉천, 이 저장된다.
a2) 다음, 힙에는 방배(5.5), 남태령(10.5), 신대방(8.0), 총신대입구(10.5), 내방(19.5), 남성(19.5), 동작(13.5) 이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 방배역이 추출되고, 상기 방배역에 연결된 서초역이 힙에 추가된다. 상기 과정에서 m_iParent[방배]=낙성대, 가 저장된다.
a3) 다음, 힙에는 서초(8.0), 남태령(10.5), 신대방(8.0), 총신대입구(10.5), 내방(19.5), 남성(19.5), 동작(13.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 서초역이 추출되고, 상기 서초역에 환승역인 교대역이 연결되어 있으므로, 힙에는 교대, 강남, 남부터미널, 고속터미널이 추가된다. 또한, 상기 과정에서 m_iParent[서초]=방배, 가 저장된다.
a4) 다음, 힙에는 신대방(8.0), 남태령(10.5), 교대(9.5), 총신대입구(10.5), 고속터미널(18.0), 남성(19.5), 동작(13.5), 강남(11.5), 남부터미널(17.5), 내방(19.5)이 저장된다. 상기 역들 중에서, 최소 소요시간을 갖는 신대방역이 추출되고, 상기 신대방역에 연결된 구로공단역이 힙에 추가된다. 또한, m_iParent[신대방]= 신림, 이 저장된다.
a5) 다음, 힙에는 교대(9.5), 구로공단(10.0), 동작(13.5), 총신대입구(10.5), 남태령(10.5), 남성(19.5), 내방(19.5), 강남(11.5), 남부터미널(17.5), 고속터미널(18.0)이 저장된다. 상기 역들 중에서, 최소 소요시간을 갖는 교대역이 추출되고, 추출된 교대역의 다음역 중 고속터미널이 환승역이므로 상기 고속터미널 역에 연결된 반포, 잠원역이 힙에 추가된다. 또한, m_iParent[교대]=서초, 가 저 장된다.
a6) 다음, 힙에는 구로공단(10.0), 총신대입구(10.5), 동작(13.5), 강남(11.5), 남태령(10.5), 남성(19.5), 내방(19.5), 고속터미널(18.0), 남부터미널(17.5), 반포(29.0), 잠원(20.0)이 저장된다. 상기 역들 중에서, 최소 소요시간을 갖는 구로공단역이 추출되고, 추출된 구로공단역에 연결된 대림역이 힙에 추가되고, 상기 대림역이 환승역이므로 상기 대림역에 연결된 신풍, 신도림, 남구로역이 추가된다. 또한, m_iParent[구로공단]=신대방, 이 저장된다.
a7) 다음, 힙에는 총신대입구(10.5), 남태령(10.5), 동작(13.5), 강남(11.5), 대림(12.0), 신도림(15.0), 내방(19.5), 고속터미널(18.0), 남부터미널(17.5), 반포(29.0), 잠원(20.0), 신풍(23.5), 남성(19.5), 남구로(23.0)가 저장된다. 상기 역들 중에서, 최소 소요시간을 갖는 총신대입구역이 추출된다. 여기서, 상기 총신대입구역은 환승역으로 그에 연결된 역은 이미 상기 과정에서 추가되었으므로 더 이상 추가되는 역은 없다. 또한, 상기 과정에서 m_iParent[총신대입구]=낙성대, 가 저장된다.
a8) 다음, 힙에는 남태령(10.5), 강남(11.5), 동작(13.5), 남부터미널(17.5), 대림(12.0), 신도림(15.0), 내방(19.5), 고속터미널(18.0), 남구로(23.0), 반포(29.0), 잠원(20.0), 신풍(23.5), 남성(19.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 남태령역이 추출되고, 상기 남태령역에 연결된 선바위역이 힙에 추가된다. 또한, 상기 과정에서, m_iParent[남태령]=낙성대, 가 저장된다.
a9) 다음, 힙에는 강남(11.5), 대림(12.0), 동작(13.5), 남부터미널(17.5), 남성(19.5), 선바위(14.0), 내방(19.5), 고속터미널(18.0), 남구로(23.0), 반포(29.0), 잠원(20.0), 신풍(23.5), 신도림(15.0)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 강남역이 추출되고, 상기 강남역에 연결된 역삼역이 힙에 추가된다. 또한, 상기 과정에서, m_iParent[강남]=서초, 가 저장된다.
a10) 다음, 힙에는 대림(12.0), 신도림(15.0), 역삼(13.0), 남부터미널(17.5), 남성(19.5), 동작(13.5), 내방(19.5), 고속터미널(18.0), 남구로(23.0), 반포(29.0), 잠원(20.0), 신풍(23.5), 선바위(14.0)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 대림역이 추출되고, 상기 대림역에 연결된 신림역이 환승역이므로 상기 신림역에 연결된 문래, 도림천, 구로역이 힙에 추가된다. 또한, 상기 과정에서, m_iParent[대림]=구로공단, 이 저장된다.
a11) 다음, 힙에는 역삼(13.0), 신도림(15.0), 동작(13.5), 남부터미널(17.5), 남성(19.5), 선바위(14.0), 문래(17.5), 고속터미널(18.0), 남구로(23.0), 반포(29.0), 잠원(20.0), 신풍(23.5), 영등포(23.5), 내방(19.5), 도림천(22.5), 구로(23.0)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 역삼역이 추출되고, 상기 역삼역에 연결된 선릉역이 환승역이므로, 상기 선릉역 이외에 한티, 삼성역이 추가된다. 또한, 상기 과정에서, m_iParent[역삼]=강남, 이 저장된다.
a12) 다음, 힙에는 동작(13.5), 선릉(15.0), 선바위(14.0), 신도림(15.0), 남성(19.5), 구로(23.0), 문래(17.5), 남부터미널(17.5), 삼성(17.5), 반포(29.0), 잠원(20.0), 신풍(23.5), 영등포(23.5), 내방(19.5), 도림천(22.5), 고속터미널(18.0), 한티(26.0), 남구로(23.0)가 저장된다. 상기 역들 중에서 최소 소요시간 을 갖는 동작역이 추출되고, 상기 동작역에 연결된 이촌역이 환승역이므로, 상기 이촌역 이외에 용산, 서빙고, 신용산역이 추가된다. 또한, 상기 과정에서, m_iParent[동작]=사당, 이 저장된다.
a13) 다음, 힙에는 선바위(14.0), 선릉(15.0), 문래(17.5), 신도림(15.0), 신용산(19.0), 구로(23.0), 내방(19.5), 남부터미널(17.5), 이촌(17.0), 남성(19.5), 잠원(20.0), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 고속터미널(18.0), 한티(26.0), 삼성(17.5), 용산(26.0), 반포(29.0), 서빙고(25.0)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 선바위역이 추출되고, 상기 선바위역에 연결된 경마공원이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[선바위]=남태령, 이 저장된다.
a14) 다음, 힙에는 선릉(15.0), 신도림(15.0), 문래(17.5), 이촌(17.0), 경마공원(16.0), 구로(23.0), 내방(19.5), 남부터미널(17.5), 삼성(17.5), 신용산(19.0), 잠원(20.0), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 고속터미널(18.0), 한티(26.0), 서빙고(25.0), 용산(26.0), 반포(29.0), 남성(19.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 선릉역이 추출되고, 상기 선릉역이 환승역이므로 그 이전단계에서 연결된 역들은 이미 힙에 추가되어 있으므로 더 이상 힙에 추가되는 역은 없다. 또한, 상기 과정에서 m_iParent[선릉]=역삼, 이 저장된다.
a15) 다음, 힙에는 신도림(15.0), 경마공원(16.0), 문래(17.5), 이촌(17.0), 신용산(19.0), 구로(23.0), 내방(19.5), 남부터미널(17.5), 삼성(17.5), 남성 (19.5), 잠원(20.0), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 고속터미널(18.0), 한티(26.0), 서빙고(25.0), 용산(26.0), 반포(29.0)가 저장된다. 상기 역들 중에서 최소 소욕시간을 갖는 신도림역이 추출되고, 상기 신도림역에 연결된 구일, 가리봉역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[신도림]=구로공단, 이 저장된다.
a16) 다음, 힙에는 경마공원(16.0), 이촌(17.0), 문래(17.5), 남부터미널(17.5), 신용산(19.0), 구로(23.0), 내방(19.5), 고속터미널(18.0), 삼성(17.5), 남성(19.5), 잠원(20.0), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 한티(26.0), 서빙고(25.0), 용산(26.0), 구일(25.5), 가리봉(27.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 경마공원이 추출되고, 상기 경마공원역에 연결된 대공원역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[경마공원]=선바위, 가 저장된다.
a17) 다음, 힙에는 이촌(17.0), 남부터미널(17.5), 문래(17.5), 삼성(17.5), 대공원(18.0), 구로(23.0), 내방(19.5), 고속터미널(18.0), 서빙고(25.0), 신용산(19.0), 잠원(20.0), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 한티(26.0), 가리봉(27.5), 용산(26.0), 구일(25.5), 남성(19.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 이촌역이 추출되고, 상기 이촌역에 연결된 용산역이 환승역이므로, 상기 용산역 이외에 남영, 노량진역이 추가된다. 또한, 상기 과정에서 m_iParent[이촌]=동작, 이 저장된다.
a18) 다음, 힙에는 남부터미널(17.5), 삼성(17.5), 문래(17.5), 고속터미널 (18.0), 대공원(18.0), 구로(23.0), 내방(19.5), 남성(19.5), 서빙고(25.0), 신용산(19.0), 잠원(20.0), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 한티(26.0), 가리봉(27.5), 용산(26.0), 구일(25.5), 남영(33.5), 노량진(34.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 남부터미널역이 추출되고, 상기 남부터미널에 연결된 양재역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[남부터미널]=서초, 가 저장된다.
a19) 다음, 힙에는 삼성(17.5), 고속터미널(18.0), 문래(17.5), 남성(19.5), 대공원(18.0), 구로(23.0), 내방(19.5), 한티(26.0), 서빙고(25.0), 신용산(19.0), 양재(20.0), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 구일(25.5), 남영(33.5), 잠원(20.0)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 삼성역이 추출되고, 상기 삼성역에 연결된 종합운동장역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[삼성]=역삼, 이 저장된다.
a20) 다음, 힙에는 문래(17.5), 고속터미널(18.0), 내방(19.5), 남성(19.5), 대공원(18.0), 구로(23.0), 잠원(20.0), 한티(26.0), 서빙고(25.0), 신용산(19.0), 종합운동장(19.5), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 구일(25.5), 남영(33.5), 양재(20.0)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 문래역이 추출되고, 상기 문래역에 연결된 영등포구청역이 환승역이므로, 상기 영등포구청역이외에 당산, 영등포시장, 양평역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[영등포 구청]=문래, 가 저장된다.
a21) 다음, 힙에는 고속터미널(18.0), 대공원(18.0), 내방(19.5), 남성(19.5), 영등포구청(19.0), 구로(23.0), 잠원(20.0), 한티(26.0), 서빙고(25.0), 양재(20.0), 신용산(19.0), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 구일(25.5), 남영(33.5), 종합운동장(19.5), 당산(21.0), 영등포시장(28.5), 양평(28.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 고속터미널역이 추출되고, 상기 고속터미널역에 연결된 역들은 이미 힙에 추가되어 있으므로 더이상 힙에 추가되는 역은 없다. 또한, 상기 과정에서 m_iParent[고속터미널]=서초, 가 저장된다.
a22) 다음, 힙에는 대공원(18.0), 영등포구청(19.0), 내방(19.5), 남성(19.5), 신용산(19.0), 구로(23.0), 잠원(20.0), 한티(26.0), 서빙고(25.0), 양재(20.0), 종합운동장(19.5), 신풍(23.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 구일(25.5), 남영(33.5), 양평(28.5), 당산(21.0), 영등포시장(28.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 대공원역이 추출되고, 상기 대공원역에 연결된 과천역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[과천]=대공원, 이 저장된다.
a23) 다음, 힙에는 영등포구청(19.0), 신용산(19.0), 내방(19.5), 남성(19.5), 종합운동장(19.5), 과천(20.0), 잠원(20.0), 한티(26.0), 서빙고(25.0), 양재(20.0), 당산(21.0), 구로(23.0), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 구일(25.5), 남영(33.5), 양평(28.5), 영등포시장(28.5), 신풍(23.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 영등포구청역이 추출되고, 상기 영등포구청역은 환승역으로 이미 연결된 역들이 힙에 추가되어 있다. 또한, 상기 과정에서 m_iParent[영등포구청]=문래, 가 저장된다.
a24) 다음, 힙에는 신용산(19.0), 남성(19.5), 내방(19.5), 신풍(23.5), 종합운동장(19.5), 과천(20.0), 잠원(20.0), 한티(26.0), 서빙고(25.0), 양재(20.0), 당산(21.0), 구로(23.0), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 구일(25.5), 남영(33.5), 양평(28.5), 영등포시장(28.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 신용산역이 추출되고, 상기 신용산역에 연결된 삼각지역이 환승역이므로, 상기 삼각지역에 연결된 녹사평, 숙대입구, 효창공원앞 역이 추가된다. 또한, 상기 과정에서, m_iParent[신용산]=동작, 이 저장된다.
a25) 다음, 힙에는 남성(19.5), 종합운동장(19.5), 내방(19.5), 신풍(23.5), 양재(20.0), 과천(20.0), 잠원(20.0), 한티(26.0), 서빙고(25.0), 구일(25.5), 삼각지(20.5), 숙대입구(22.5), 영등포(23.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 당산(21.0), 녹사평(31.5), 구로(23.0), 효창공원앞(31.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 남성역이 추출되고, 상기 남성역에 연결된 숭실대입구역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[남성]=사당, 이 저장된다.
a26) 다음, 힙에는 종합운동장(19.5), 양재(20.0), 내방(19.5), 신풍(23.5), 삼각지(20.5), 과천(20.0), 잠원(20.0), 한티(26.0), 서빙고(25.0), 구일(25.5), 당산(21.0), 숙대입구(22.5), 숭실대입구(22.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 구로(23.0), 영등포(23.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 종합운동장역이 추출되고, 상기 종합운동장역에 연결된 신천역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[종합운동장]=삼성, 이 저장된다.
a27) 다음, 힙에는 내방(19.5), 양재(20.0), 과천(20.0), 신풍(23.5), 삼각지(20.5), 신천(21.5), 잠원(20.0), 한티(26.0), 서빙고(25.0), 구일(25.5), 당산(21.0), 구로(23.0), 숙대입구(22.5), 남구로(23.0), 도림천(22.5), 반포(29.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 영등포(23.5), 숭실대입구(22.5)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 내방역이 추출되고, 상기 내방역에 연결된 반포역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[내방]=사당, 이 저장된다.
a28) 다음, 힙에는 양재(20.0), 삼각지(20.5), 과천(20.0), 신풍(23.5), 당산(21.0), 신천(21.5), 잠원(20.0), 반포(24.5), 서빙고(25.0), 구일(25.5), 숭실대입구(22.5), 구로(23.0), 숙대입구(22.5), 남구로(23.0), 도림천(22.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 영등포(23.5)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 양재역이 추출되고, 상기 양재역에 연결된 매봉역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[양재]=남부터미널, 이 저장된다.
a29) 다음, 힙에는 과천(20.0), 삼각지(20.5), 잠원(20.0), 신풍(23.5), 당산(21.0), 신천(21.5), 도림천(22.5), 반포(24.5), 서빙고(25.0), 구일(25.5), 숭실대입구(22.5), 매봉(22.5), 숙대입구(22.5), 남구로(23.0), 영등포(23.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 구로(23.0)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 과천역이 추출되고, 상기 과천역에 연결된 정부과천청사역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[과천]=대공원, 이 저장된다.
a30) 다음, 힙에는 잠원(20.0), 삼각지(20.5), 신천(21.5), 신풍(23.5), 당산(21.0), 정부과천청사(22.0), 도림천(22.5), 반포(24.5), 서빙고(25.0), 구일(25.5), 숭실대입구(22.5), 매봉(22.5), 숙대입구(22.5), 남구로(23.0), 영등포(23.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 구로(23.0)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 잠원역이 추출되고, 상기 잠원역에 연결된 신사역이 힙에 추가된다. 상기 과정에서 m_iParent[잠원]=교대, 가 저장된된다.
a31) 다음, 힙에는 삼각지(20.5), 당산(21.0), 신천(21.5), 신풍(23.5), 숭실대입구(22.5), 신사(22.0), 도림천(22.5), 반포(24.5), 서빙고(25.0), 구일(25.5), 구로(23.0), 정부과천청사(22.0), 숙대입구(22.5), 남구로(23.0), 영등포(23.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 매봉(22.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 삼각지역이 추출되고, 상기 삼각지역은 환승역으로 이전 단계에서 연결된 역이 이미 힙에 추가되어 있다. 또한, 상기 과정에서 m_iParent[삼각지]=신용산, 이 저장된다.
a32) 다음, 힙에는 당산(21.0), 매봉(22.5), 신천(21.5), 신풍(23.5), 숭실대입구(22.5), 신사(22.0), 도림천(22.5), 반포(24.5), 서빙고(25.0), 구일(25.5), 구로(23.0), 정부과천청사(22.0), 숙대입구(22.5), 남구로(23.0), 영등포(23.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 당산역이 추출되고, 상기 당산역에 연결된 합정역이 환승역이므로, 상기 합정역이외에 망원, 홍대입구, 상수역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[당산]=문래, 가 저장된다.
a33) 다음, 힙에는 신천(21.5), 매봉(22.5), 신사(22.0), 신풍(23.5), 숭실대입구(22.5), 정부과천청사(22.0), 도림천(22.5), 반포(24.5), 서빙고(25.0), 구일(25.5), 구로(23.0), 합정(24.5), 숙대입구(22.5), 남구로(23.0), 영등포(23.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영 (33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 망원(32.5), 홍대입구(26.5), 상수(32.0)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 신천역이 추출되고, 상기 신천역에 연결된 잠실역이 환승역이므로, 상기 잠실역 이외에 몽촌토성, 석촌, 성내역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[신천]=종합운동장, 이 저장된다.
a34) 다음, 힙에는 신사(22.0), 매봉(22.5), 정부과천청사(22.0), 신풍(23.5), 숭실대입구(22.5), 숙대입구(22.5), 도림천(22.5), 반포(24.5), 서빙고(25.0), 구일(25.5), 구로(23.0), 합정(24.5), 잠실(23.5), 남구로(23.0), 영등포(23.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 망원(32.5), 상수(32.0), 홍대입구(26.5), 몽촌토성(31.0), 석촌(32.0), 성내(25.5)가 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 신사역이 추출되고, 상기 신사역에 연결된 압구정역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[신사]=잠원, 이 저장된다.
a35) 다음, 힙에는 정부과천청사(22.0), 매봉(22.5), 숙대입구(22.5), 신풍(23.5), 숭실대입구(22.5), 잠실(23.5), 도림천(22.5), 반포(24.5), 서빙고(25.0), 구일(25.5), 구로(23.0), 합정(24.5), 성내(25.5), 남구로(23.0), 영등포(23.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 망원(32.5), 상수(32.0), 홍대입구(26.5), 몽촌토성(31.0), 석촌(32.0), 압구정(24.5)이 저장된다. 상기 역 들 중에서 최소 소요시간을 갖는 정부과천청사역이 추출되고, 상기 정부과천청사역에 연결된 인덕원역이 힙에 추가된다. 또한, 상기 과정에서 m_iParent[정부과천청사]=과천, 이 저장된다.
a36) 다음, 힙에는 매봉(22.5), 숭실대입구(22.5), 숙대입구(22.5), 신풍(23.5), 구로(23.0), 잠실(23.5), 도림천(22.5), 반포(24.5), 서빙고(25.0), 구일(25.5), 압구정(24.5), 합정(24.5), 성내(25.5), 남구로(23.0), 영등포(23.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 망원(32.5), 상수(32.0), 홍대입구(26.5), 몽촌토성(31.0), 석촌(32.0), 인덕원(26.0)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 매봉역이 추출되고, 상기 매봉역에 연결된 도곡역이 환승역이므로, 상기 도곡역에 연결된 대치, 구룡역도 힙에 추가된다. 또한, 상기 과정에서 m_iParent[매봉]=양재, 가 저장된다.
a37) 다음, 힙에는 숭실대입구(22.5), 구로(23.0), 숙대입구(22.5), 신풍(23.5), 압구정(24.5), 잠실(23.5), 도림천(22.5), 반포(24.5), 서빙고(25.0), 구일(25.5), 인덕원(26.0), 합정(24.5), 성내(25.5), 남구로(23.0), 영등포(23.5), 한티(26.0), 노량진(34.5), 가리봉(27.5), 용산(26.0), 영등포시장(28.5), 남영(33.5), 양평(28.5), 효창공원앞(31.5), 녹사평(31.5), 망원(32.5), 상수(32.0), 홍대입구(26.5), 몽촌토성(31.0), 석촌(32.0), 도곡(24.5), 대치(25.5), 구룡(37.5)이 저장된다. 상기 역들 중에서 최소 소요시간을 갖는 숭실대입구역이 추출된다. 상기 숭실대입구역은 도착지에 해당되므로, m_iParent[숭실대입구]=남성,을 저장하고 상기 반복 과정을 마치고, 다음 경로탐색을 시작하게 된다.
우선, 상기 예에서 추출된 노드로부터 형성된 부모-자식 배열을 정리하면 m_iParent[낙성대]=-1, m_iParent[서울대입구]=낙성대, m_iParent[사당]=낙성대, m_iParent[봉천]=서울대입구, m_iParent[신림]=봉천, m_iParent[방배]=낙성대, m_iParent[서초]=방배, m_iParent[신대방]=신림, m_iParent[교대]=서초, m_iParent[구로공단]=신대방, m_iParent[총신대입구]=낙성대, m_iParent[남태령]=낙성대, m_iParent[강남]=서초, m_iParent[대림]=구로공단, m_iParent[역삼]=강남, m_iParent[동작]=사당, m_iParent[선바위]= 남태령, m_iParent[선릉]=역삼, m_iParent[신도림]=구로공단, m_iParent[경마공원]=선바위, m_iParent[이촌]=동작, m_iParent[남부터미널]=서초, m_iParent[삼성]=역삼, m_iParent[문래]=대림, m_iParent[고속터미널]=서초, m_iParent[대공원]=경마공원, m_iParent[영등포구청]=문래, m_iParent[신용산]=동작, m_iParent[남성]= 사당, m_iParent[종합운동장]= 삼성, m_iParent[내방]=사당, m_iParent[양재]=남부터미널, m_iParent[과천]=대공원, m_iParent[잠원]=교대, m_iParent[삼각지]=신용산, m_iParent[당산]=문래, m_iParent[신천]=종합운동장, m_iParent[신사]=잠원, m_iParent[정부과천청사]=과천, m_iParent[매봉]=양재, m_iParent[숭실대입구]=남성, 이 된다.
상기 예에서의 부모-자식 배열관계를 기초로하여 최적경로트리를 구성한 도 6을 참조하여, 출발지로부터 도착지까지의 최적경로를 검색하여 본다.
상기 경로검색방법에서 설명한 바와 같이, 우선 도착지의 부모노드가 무엇인 지를 검사한다. 도 6에서 도착지인 숭실대입구의 부모노드는 남성인 것을 알 수 있다. 다음, 다시 상기 남성역의 부모노드인 사당역을 찾고, 다시 상기 사당역의 부모역인 낙성대역을 찾을 수 있다.
결국, 낙성대-사당-남성-숭실대입구로 이어지는 최적경로를 검색할 수 있다.
한편, 휴대용 단말기에 본 발명에 따른 최적경로 검색방법에 의하여 최적경로를 검색하는 경로검색부를 내장시킴으로써, 대중교통 이용시 필요한 상황에서 손쉽게 최적경로를 검색하게 할 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 즉, 본 발명의 실시예로서 언급한 지하철의 최적경로를 검색하는 방법에 국한되지 않고, 정해진 노선을 따라 운행되는 다른 대중교통수단에서 최적의 경로를 검색하기 위하여 본 발명에 따른 사상이 적용될 수 있다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 의하면, 대중교통의 정류장 또는 역 사이의 소요시간 및 환승시간을 고려하여 출발지로부터 도착지까지 최단시간내에 이르는 경로를 확인할 수 있다. 또한, 본 발명에 따른 최적경로 검색방법을 휴대용 단말기 등에 적용함으로써 언제든지 필요한 상황에서 대중교통의 최적경로를 검색하도록 할 수 있다.

Claims (5)

  1. 정해진 노선을 따라 운행하는 대중교통의 경로검색 방법에 있어서,
    출발지와 도착지를 입력하는 단계;
    상기 출발지와 연결된 하나 이상의 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 출발지로부터 최소 소요시간을 갖는 노드를 힙에서 추출하고, 상기 추출된 노드가 도착지일 때까지 상기 추출된 노드에 연결된 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 추출된 노드로부터 최소 소요시간을 갖는 노드를 힙에서 추출하여 상기 추출된 노드와 그 부모노드의 관계를 배열로 저장하여, 상기 출발지와 도착지를 연결하는 최적경로 트리를 구성하는 단계; 및
    상기 최적경로 트리를 이용하여, 상기 출발지로부터 도착지까지의 최적경로를 검색하는 단계를 포함하며,
    상기 각 노드 사이의 소요시간은 교통정보 서버에서 제공되는 교통정보 데이터를 이용하여 계산되는 것을 특징으로 하는 대중교통의 최적경로 검색방법.
  2. 제 1항에 있어서,
    상기 최적경로 트리를 구성하는 단계는,
    상기 힙에 추가되는 노드가 적어도 두 개 이상의 노선이 교차되는 환승 노드에 해당되는 경우, 상기 환승 노드에 연결된 다음 노드까지를 추가하는 단계를 포함하는 것을 특징으로 하는 대중교통의 최적경로 검색방법.
  3. 삭제
  4. 제 1항에 있어서,
    상기 최적경로를 검색하는 단계는, 상기 도착지부터 그에 연결된 부모노드를 거슬러 올라가는 방식으로 최적경로를 검색하는 단계를 포함하는 것을 특징으로 하는 대중교통의 최적경로 검색방법.
  5. 출발지와 도착지를 입력받는 입력부;
    상기 출발지와 연결된 하나 이상의 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 출발지로부터 최소 소요시간을 갖는 노드를 힙에서 추출하고, 상기 추출된 노드가 도착지일 때까지 상기 추출된 노드에 연결된 노드를 힙에 추가하여 저장하고, 상기 힙에 저장된 노드들 중에서 상기 추출된 노드로부터 최소 소요시간을 갖는 노드를 힙에서 추출하여 상기 추출된 노드와 그 부모노드의 관계를 배열로 저장하여, 상기 출발지와 도착지를 연결하는 최적경로 트리를 구성하고, 상기 최적경로 트리를 이용하여 상기 출발지로부터 도착지까지의 최적경로를 검색하는 경로검색부를 포함하며,
    상기 각 노드 사이의 소요시간은 교통정보 서버에서 제공되는 교통정보 데이터를 이용하여 계산되는 것을 특징으로 하는 휴대용 기기.
KR1020040077727A 2004-09-30 2004-09-30 대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기 KR100716981B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040077727A KR100716981B1 (ko) 2004-09-30 2004-09-30 대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040077727A KR100716981B1 (ko) 2004-09-30 2004-09-30 대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기

Publications (2)

Publication Number Publication Date
KR20060028851A KR20060028851A (ko) 2006-04-04
KR100716981B1 true KR100716981B1 (ko) 2007-05-10

Family

ID=37139380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040077727A KR100716981B1 (ko) 2004-09-30 2004-09-30 대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기

Country Status (1)

Country Link
KR (1) KR100716981B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101174343B1 (ko) * 2010-07-30 2012-08-16 (주)비전아레나 지피에스를 이용한 가상 운동 레이싱 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030014551A (ko) * 2001-08-11 2003-02-19 명지대학교 비콘 시스템을 이용한 동적 순환 최단 시간경로 탐색시스템 및 그 탐색 방법
KR20040077727A (ko) * 2002-01-21 2004-09-06 악조 노벨 엔.브이. 7α-메틸스테로이드의 제조방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030014551A (ko) * 2001-08-11 2003-02-19 명지대학교 비콘 시스템을 이용한 동적 순환 최단 시간경로 탐색시스템 및 그 탐색 방법
KR20040077727A (ko) * 2002-01-21 2004-09-06 악조 노벨 엔.브이. 7α-메틸스테로이드의 제조방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1020030014551
1020040077727 - 705326

Also Published As

Publication number Publication date
KR20060028851A (ko) 2006-04-04

Similar Documents

Publication Publication Date Title
US7864073B2 (en) Apparatus and method of providing schedule and route
CN102227611B (zh) 用于提供指示制图应用中上下文数据的光标的方法和装置
KR100877376B1 (ko) 네비게이션 시스템, 네비게이션 정보 제공 방법 및 컴퓨터 판독가능 저장 매체
US20070050128A1 (en) Method and system for off-board navigation with a portable device
CN112665601B (zh) 一种路径规划方法、装置、电子设备及可读存储介质
CN102918362A (zh) 用于经由导航系统上的无线消息传递服务接收和发送导航数据的方法和系统
CN105339935A (zh) 用于促进与数字地图相关的位置的搜索及显示的方法、装置及计算机软件
CN102265114A (zh) 用于存储和提供路线的系统和方法
CN105339762A (zh) 用于促进与数字地图相关的位置的搜索及显示的方法、装置及计算机软件
CN104156443B (zh) 地理兴趣点模糊改写系统
CN103148857B (zh) 一种提供信息的方法和系统
EP3332536A1 (en) Method and apparatus for syncing an embedded system with plurality of devices
CN103547887A (zh) 具有用于在短距离内作出多次转向的辅助的导航系统
CN105868229A (zh) 旅游导航的方法及装置
KR101108262B1 (ko) 사용자 관심 유씨씨를 제공하는 네비게이션시스템 및 그 운용방법
CA2956772C (en) Survey (bird's-eye)-type navigation system
JP2009037498A (ja) 情報配信システム、情報配信方法および情報配信サーバならびに端末装置
WO2008047870A1 (fr) Dispositif de communication de diffusion, dispositif de terminal de réseau, dispositif de relais de distribution, procédé de communication de diffusion, programme de communication de diffusion et support d'enregistrement
JP2017010038A (ja) サーベイ(眺望)型ナビゲーションシステム
KR100716981B1 (ko) 대중교통의 최적경로 검색방법 및 이를 이용한 휴대용 기기
JP6101129B2 (ja) 施設検索装置、施設検索方法および施設検索プログラム
WO2007007377A1 (ja) 位置情報提供装置及び位置情報利用端末装置
JP2019164350A (ja) サーベイ(眺望)型ナビゲーションシステム
Deidda et al. A tourist location based service (lbs) for the Cagliari city
JP6894709B2 (ja) 経路案内システムおよび経路案内デジタルサイネージ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee