이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 최단 경로 탐색 방법을 설명하기 위한 흐름도이다.
먼저, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 도로 네트워크 상의 질의 점으로부터 선정된 거리 내에 위치한 적어도 하나 이상의 정적 객체를 검색한다(단계 110).
이때, 상기 선정된 거리 내에 위치한 적어도 하나 이상의 정적 객체는 K개가 검색될 수 있다.
본 명세서에서는 K개의 정적 객체를 근사 인덱싱 방법으로 검색하는 예로써, 본 발명을 설명하나 K개의 정적 객체는 VN3 등 다양한 방법으로 검색될 수도 있음은 자명하다.
상기 근사 인덱싱 방법은 오프라인에서 도로 네트워크 상의 객체들을 유클리드 공간 상의 절대 좌표로 사상하여 인덱싱한 후 K-최근접 이웃 검색(또는 K-최근접 이웃 질의)을 처리하는 방법으로 해석될 수 있다.
다음으로, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 검색된 적어도 하나 이상의 정적 객체에 대응하는 적어도 하나 이상의 목적지 노드를 결정한다(단계 120).
일반적으로, 도로 네트워크 상 질의 점에서 정적 객체까지의 경로는 탐색되지 않는다. 따라서, 본 발명의 일실시예에 따른 최단 경로 탐색 방법에서는 목적지 노드를 이용하여, 정적 객체를 대체한다.
노드는 적어도 둘 이상의 도로가 연결되는 지점으로 해석될 수 있으며, 도로 네트워크 상에 표시되며, 정적 객체와 가장 가까운 노드가 목적지 노드로 해석될 수 있다.
단계 110에서는 적어도 하나 이상의 정적 객체가 검색되었으며, 단계 120에서는 상기 검색된 적어도 하나 이상의 정적 객체의 각각에 대응하는 적어도 하나 이상의 목적지 노드를 결정한다.
본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 결정된 적어도 하나 이상의 목적지 노드와 상기 질의 점 간의 적어도 하나 이상의 제1 거리정보를 산출한다(단계 130).
이때, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 적어도 하나 이상의 목적지 노드 중에서 상기 질의 점으로부터 가장 가까운 거리에 위치한 목적지 노드부터 차례로 상기 제1 거리정보를 산출할 수 있다.
본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 A* 알고리즘의 분기 한정 방법(brand-and-bound)을 이용하여 상기 제1 거리정보를 산출할 수 있다.
제1 거리정보를 산출하면, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 검색된 적어도 하나 이상의 정적 객체와, 상기 결정된 적어도 하나 이상의 목적지 노드 간의 적어도 하나 이상의 제2 거리정보를 산출한다(단계 140). K- 최 근접 이웃 검색의 질의를 위한 최단 경로를 탐색하기 위해서는 질의 점과 목적지 노드 간의 거리가 아닌, 질의 점과 정적 객체 간의 거리를 산출해야 한다.
다음으로, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 산출한 제1 거리정보와 상기 제2 거리정보를 이용하여, 상기 질의 점에서 상기 검색된 적어도 하나 이상의 정적 객체까지의 실제 거리정보를 산출한다(단계 150).
도로 네트워크 상에서 경로 탐색의 편의를 위해서, 대체된 상기 적어도 하나 이상의 목적지 노드와 상기 적어도 하나 이상의 정적 객체 간의 제2 거리정보를 산출하여, 상기 기산출된 제1 거리정보에 합산할 수 있다. 즉, 제1 거리정보 및 상기 제2 거리정보의 합이 실제로 상기 질의 점으로부터 상기 정적 객체까지의 거리정보이다.
본 발명의 일실시예에 따른 최단 경로 탐색 방법은 질의 점과 적어도 하나 이상의 정적 객체 간의 거리를 산출하는 과정에서, 방문한 각 노드까지의 거리 정보를 저장하였다가, 다음 번에 이용한다.
도 2는 중간 노드가 존재하는 경우, 본 발명의 일실시예에 따른 제1 거리정보를 산출하는 방법을 설명하기 위한 흐름도이다.
질의 점과 적어도 하나 이상의 목적지 노드 간에 최단 경로를 탐색하는 과정에서 방문한 중간 지점의 노드들은 중간 노드로 해석될 수 있으며, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 제1 거리정보를 산출하는 과정에서 적어도 하나 이상의 중간 노드를 경유할 수 있다.
도 2를 참조하면, 질의 점과 목적지 노드 간에 중간 노드가 존재하는 경우 라면, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 결정된 적어도 하나 이상의 목적지 노드와 상기 질의 점간의 적어도 하나 이상의 중간 노드를 확인하고(단계 210), 상기 적어도 하나 이상의 중간 노드와 상기 질의 점 간의 제3 거리정보를 산출하며(단계 220), 상기 적어도 하나 이상의 중간 노드와 상기 결정된 적어도 하나 이상의 목적지 노드 간의 제4 거리정보를 산출한다(단계 230).
본 발명의 일실시예에 따른 상기 제1 거리정보, 상기 제2 거리정보, 상기 제3 거리정보, 및 상기 제4 거리정보들은 이동거리정보와 이동방향정보를 포함하는 정보로 해석될 수 있다.
또한, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 산출된 제3 거리정보와 상기 산출된 제4 거리정보를 이용하여, 상기 제1 거리정보를 산출할 수 있다. 예를 들어, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 산출된 제3 거리정보 및 상기 산출된 제4 거리정보를 합산하여 상기 제1 거리정보를 산출할 수 있다.
상술한 바와 같이, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 방문한 각 노드까지의 거리 정보를 저장하였다가, 다음 번에 이용함으로써, 최단 경로를 탐색하는데 필요한 시간 및 비용을 현저하게 절감시킬 수 있다.
구체적으로, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 제3 거리정보 및 상기 제4 거리정보 중에서 적어도 어느 하나의 거리정보를 데이터베이스에 저장할 수 있다.
본 발명의 일실시예에 따른 최단 경로 탐색 방법은 가장 가까운 거리에 위 치한 정적 객체를 대체하는 목적지 노드부터 가까운 순서대로 질의 점과의 제1 거리정보를 산출한다. 만약, 앞선 제1 거리정보의 산출 시에 저장된 제3 거리정보 또는 제4 거리정보가 이후의 제1 거리정보의 산출 시에 또 사용될 수 있다.
예를 들어, 제1 목적지 노드와 제2 목적지 노드가, 동일한 중간 노드를 방문 하는 경우를 생각할 수 있다.
이 경우, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 질의 점으로부터 중간 노드까지의 제3 거리정보와 상기 중간 노드로부터 상기 제1 목적지 노드까지의 제4 거리정보를 산출해야만 제1 거리정보를 산출할 수 있다. 또한, 상기 제3 거리정보가 데이터베이스에 저장되기 때문에, 상기 질의 점으로부터 상기 제2 목적지 노드까지의 제1 거리정보를 산출할 때, 미리 산출된 상기 제3 거리정보를 연산에 이용할 수 있다. 따라서, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 이미 저장되어 있는 중간 노드에 대한 제3 거리정보 또는 제4 거리정보를 이용하여 보다 신속하게 상기 제2 목적지 노드에 대한 제1 거리정보를 산출할 수가 있다.
결론적으로, 본 발명의 일실시예에 따른 최단 경로 탐색 방법을 이용하면, 앞선 경로 탐색의 결과를 저장하여 불필요한 경로 탐색을 최소화하고, 이로 인해 여러 정적 객체에 대한 경로 탐색을 효율적으로 처리할 수 있으며, 중앙처리장치의 수행 시간 및 디스크 접근 시간을 현저하게 줄일 수 있다.
도 3은 본 발명의 일실시예에 따른 도로 네트워크를 설명하기 위한 도면이다.
도 3은 질의 점(q, 301)로부터 복수의 정적 객체들(o1(302), o2(303), o3(304))까지의 최단 경로 탐색을 수행하는 실시예를 설명한다.
먼저, 복수의 정적 객체들(o1(302), o2(303), o3(304))은 근사 인덱싱으로 검색된 정적 객체들이며, 각 정적 객체들(o1(302), o2(303), o3(304))로부터 가장 가까운 노드들은 순서대로 노드1(n1, 305), 노드3(n3, 306), 및 노드8(n8, 307)로 검색된다.
도로 네트워크 상에서는 질의 점(q, 301)이 주어졌을 때, o1(302), o2(303), 및 o3(304)의 위치 정보와 해당 정적 객체와 가장 가까운 목적지 노드 정보를 알 수 있다.
우선, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 질의 점(q, 301)으로부터 가장 가까운 정적 객체인 o1(302)부터 탐색할 수 있다.
이때, 정적 객체 o1(302)은 도로 네트워크 상에 존재하지 않을 가능성이 매우 크기 때문에 정적 객체 o1(302)을 대체할 수 있는 목적지 노드인 노드 1(n1, 305)와 질의 점(q, 301) 간의 제1 거리정보를 산출한다.
또한, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 질의 점(q, 301)으로부터 도로 세그먼트를 확장하여 노드 1(n1, 305)에 도착할 때까지 노드 3(n3, 306), 노드 4(n4, 308), 노드 7(n7, 309)을 탐색할 수 있다. 이렇게 탐색되는 질의 점(q, 301)과 탐색되는 노드 3(n3, 306), 노드 4(n4, 308), 및 노드 7(n7, 309)까지의 각각의 거리정보는 데이터베이스에 저장되어 다음 번 목적지 노드와의 거리정보의 산출 시에 이용될 수 있다.
연이어, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 질의 점(q, 301)으로부터 두 번째로 가까운 정적 객체인 o2(303)까지의 거리정보를 산출한다. 마찬가지로, o2(303)은 도로 네트워크 상에 존재하지 않을 가능성이 크기 때문에 o2(303)로 대체가 가능한 노드 3(n3, 306)과 질의 점(q, 301) 간의 제1 거리정보를 산출할 수 있다.
근사 인덱싱으로 검색된 모든 정적 객체들에 대응하는 모든 목적지 노드들과 질의 점 간의 제1 거리정보들이 산출되며, 연이어 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 상기 모든 목적지 노드들과, 상기 모든 목적지 노드들에 대응되는 상기 모든 정적 객체들 간의 제2 거리정보들을 산출한다.
이에, 상기 제1 거리정보들과 상기 제1 거리정보들에 각각에 대응되는 제2 거리정보들을 합산하여, 상기 질의 점(q, 301)으로부터 각 정적 객체들(o1(302), o2(303), o3(304))까지의 실제 거리정보들을 산출할 수 있다. 산출된 상기 실제 거리정보들을 이용하여, 각 정적 객체들이 재정렬될 수 있다.
본 발명의 일실시예에 따른 최단 경로 탐색 방법은 근사 인덱싱으로 검색되는 정적 객체를 K보다 큰 수를 이용하여 K-최근접 이웃 검색을 처리할 수 있다. 기존 근사 인덱싱 방법은 FastMap[12]으로 매핑하는 과정에서 정적 객체간 거리의 오차가 발생할 수 있다. 그러나, 그 오차의 정도가 미세하기 때문에 K보다 조금 큰 수로 검색하여 검색 결과의 정확도를 현저히 향상시킬 수 있다.
이에, 본 발명의 일실시예에 따른 최단 경로 탐색 방법은 검색된 정적 객체에 대해 경로를 반환한다. 이는 K개의 정적 객체에 대한 경로를 찾는 비용을 조금 희생하여 K+a개의 정적 객체의 경로를 탐색함으로써 적은 비용으로 착오 기각을 완 화시킬 수 있는 효과가 있다.
본 발명의 다른 일실시예에 따른 최단 경로 탐색 방법은 질의 점으로부터 임의의 정적 객체까지의 최단 경로를 탐색하기 위해서, A* 알고리즘을 이용할 수 있다. 그러나, 질의 점과 정적 객체는 노드에 위치하지 않을 가능성이 매우 크기 때문에, 질의 점에서 인접한 노드 u까지의 제1 거리정보를 산출하고, 상기 인접한 노드 u에서 정적 객체까지의 제2 거리정보를 산출하여 상기 제1 거리정보와 상기 제2 거리정보를 합산하여, 상기 질의 점으로부터 상기 정적 객체까지의 실제 거리정보를 산출하는 방법을 이용해야만 한다.
본 발명의 일실시예에 따른 최단 경로 탐색 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨 터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
도 4는 본 발명의 일실시예에 따른 최단 경로 탐색 장치(400)를 설명하기 위한 블록도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 최단 경로 탐색 장치(400)는 정적 객체 검색부(410), 노드 결정부(420), 및 거리정보 산출부(430)를 포함한다.
먼저, 정적 객체 검색부(410)는 도로 네트워크 상의 질의 점으로부터 선정된 거리 내에 위치한 적어도 하나 이상의 정적 객체를 검색한다. 본 발명의 일실시예에 따른 정적 객체 검색부(410)는 상기 정적 객체를 검색하기 위해서, 근사 인덱싱 방법으로 K개의 정적 객체를 검색할 수 있다.
다음으로, 노드 결정부(420)는 상기 검색된 적어도 하나 이상의 정적 객체에 대응하는 적어도 하나 이상의 목적지 노드를 결정한다.
실제로 도로 네트워크 상에는 정적 객체가 존재하지 않을 가능성이 매우 크다. 이 경우에 도로 네트워크 상에서 질의 점과 정적 객체를 대체할 수 있는 목적지 노드를 결정하여, 상기 질의 점과 상기 정적 객체 간의 대략적인 거리를 산출할 수 있다.
거리정보 산출부(430)는 상기 결정된 적어도 하나 이상의 목적지 노드와 상기 질의 점 간의 적어도 하나 이상의 제1 거리정보를 산출한다.
이때, 상기 제1 거리정보는 상기 정적 객체를 대체한 목적지 노드와 질의 점 간의 거리이기 때문에, 거리정보 산출부(430)는 상기 목적지 노드와 상기 정적 객체 간의 제2 거리정보를 산출하여, 상기 제1 거리정보에 반영할 수 있다.
즉, 거리정보 산출부(430)는 상기 검색된 적어도 하나 이상의 정적 객체와, 상기 결정된 적어도 하나 이상의 목적지 노드 간의 적어도 하나 이상의 제2 거리정보를 산출하고, 상기 산출한 제1 거리정보와 상기 제2 거리정보를 이용하여, 상기 질의 점에서 상기 검색된 적어도 하나 이상의 정적 객체까지의 실제 거리정보를 산출할 수 있다.
본 발명의 일실시예에 따른 최단 경로 탐색 장치(400)는 거리정보 산출부(430)는 상기 결정된 적어도 하나 이상의 목적지 노드와 상기 질의 점간의 적어도 하나 이상의 중간 노드를 확인하고, 상기 적어도 하나 이상의 중간 노드와 상기 질의 점 간의 제3 거리정보를 산출하며, 상기 적어도 하나 이상의 중간 노드와 상기 결정된 적어도 하나 이상의 목적지 노드 간의 제4 거리정보를 산출하고, 상기 제3 거리정보 및 상기 제4 거리정보를 이용하여, 상기 제1 거리정보를 산출할 수 있다.
즉, 경로 탐색 시에 질의 점과 목적지 노드 간에 중간 노드가 존재하는 경우, 본 발명의 일실시예에 따른 최단 경로 탐색 장치(400)는 경로 탐색을 최소화 하기 위해서, 제1 거리정보의 산출 과정에서 방문했던, 중간 노드와 질의 점 간의 정보를 저장하고, 거리정보를 산출하는데 참고할 수 있다.
구체적으로, 본 발명의 일실시예에 따른 최단 경로 탐색 장치(400)는 상기 제3 거리정보와 상기 제4 거리정보를 저장하는 저장부(440)를 더 포함하고, 거리정 보 산출부(430)는 저장부(440)를 확인하여 다음 번 제1 거리정보를 산출하는데 이전에 방문 했던 중간 노드에 대한 거리정보를 이용할 수 있다.
본 발명의 일실시예에 따른 최단 경로 탐색 장치를 이용하면, 방문한 각 노드까지의 거리 정보를 저장하였다가, 다음 번에 이용함으로써, 최단 경로를 탐색하는데 필요한 시간 및 비용을 현저하게 절감시킬 수 있다. 또한, 최단 경로를 탐색하는 과정에서 발생 가능한 중앙처리장치의 부하를 줄일 수 있으며, 디스크 접근 시간을 감소시켜 신속하게 최단 경로를 탐색할 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.