A.第1実施形態:
A−1.情報処理システムの構成:
図1は、本発明の第1実施形態における経路探索システム10の概略構成を示す説明図である。本実施形態の経路探索システム10は、サーバ100と自動車に搭載されたカーナビゲーションシステム(カーナビ)200とを備えている。図1には、カーナビ200を搭載した自動車を1台のみ示しているが、経路探索システム10には、複数のカーナビ200および携帯ゲーム機、PND(Personal Navigation Device)、PDA(Personal Digital Assistant)といった様々な携帯端末装置が含まれ得る。
カーナビ200は、GPS受信機201と、表示パネル202と、音声出力部203と、無線通信回路205と、操作部206と、主制御部210と、を備えている。
GPS受信機201は、GPS(Global Positioning System/全地球測位システム)を構成する人工衛星を用いて測定したカーナビ200の現在位置(緯度、経度)を特定する出発地点情報を電波によって受信する。
表示パネル202は、液晶ディスプレイとこれを駆動する駆動回路とを備えている。表示パネル202としては、液晶ディスプレイに限らず、有機ELディスプレイなど、種々の表示デバイスを採用することが可能である。音声出力部203は、音声を出力するためのスピーカや、これを駆動する駆動回路などから構成される。無線通信回路205は、基地局BSとの間でデータ通信もしくは音声通信を無線によって行なう。操作部206は、テンキーやカーソルキーやタッチパネルなどから構成される入力デバイスである。操作部206は、利用者による到着地点および到着地点に到着するまでに許容できる加算時刻の設定入力等を受け付ける。
主制御部210は、カーナビ200の各部を制御する。主制御部210は、CPU211と、RAM212と、ROM213と、を備えている。CPU211は、ROM213に記憶されたプログラムをRAM212にロードして実行することで、後述する種々の処理を実行するための機能を実現する。例えば、主制御部210は、表示パネル202を制御することで、地図画像や推奨経路、現在位置などを表示する。また、主制御部210は、無線通信回路205を制御することで、基地局BSを介して(より詳細には、送受信アンテナ、基地局BS、交換局を介して)、インターネットINT上の情報記憶部110および経路探索部120と通信する。また、主制御部210は、一定時間ごとにGPS受信機201を介してGPSを用いてカーナビ200の現在位置情報を測定して、出発地点情報を生成する。
サーバ100は、インターネットINTを介してカーナビ200との通信を行なう通信部102と、情報記憶部110と、経路探索部120と、を備えている。情報記憶部110は、CPU、RAM、ROM、により構成された制御部を有し、情報を記憶する記憶装置118を備えている。記憶装置118は、例えば、ハードディスク装置により構成されている。記憶装置118には、地図情報データベース(DB)114と、ノード別経路情報データベース(DB)115と、が構築されている。
地図情報DB114は、例えば、リンク情報およびノード情報、画像データとしての地図画像データを記憶している。リンク情報は、複数の層から構成される階層構造を有している。本実施形態では、リンク情報は、3つの層から構成されており、各リンクは、3つの層のいずれかに分類されて記憶されている。一番下の層であるレベル1には、市街地の道路に相当する複数のリンクが記憶され、真ん中の層であるレベル2には、国道に相当するリンクが記憶され、一番上の層であるレベル3には、高速道路に相当するリンクが記憶されている。なお、リンク情報の階層構造の分類方法は本実施形態の態様に限られず、種々変形可能である。他の実施形態において、例えば、レベル1をさらに二つのレベルに分けて、市街地の道路を車線数に応じて分類するなどしてもよいし、層の数は3つや4つ以外の数であってもよい。
ノード別経路情報DB115は、後述する出発地点から到着地点までの経路を探索する際に、経路探索の対象となる予め設定された経路探索範囲内に存在する任意に選択されたノードである特定のノードに付与されたラベルに含まれる情報を記憶する。特定のノードに付与されたラベルに含まれる情報は、出発地点から特定のノードに至る経路までリンクコストの累計値(以下、「コスト累計値」とも呼ぶ)と、当該経路における特定のノードに到着する1つ前の直前ノードに付与されたラベルである直前ラベルと、を含む情報である。特定のノードに付与された複数のラベルの内、最も小さいコスト累計値を有するラベルは、確定ラベルもしくは仮ラベルとして記憶される。特定のノードにおいて、確定ラベルもしくは仮ラベル以外のラベル情報は負けラベルとして記憶される。確定ラベルは、各ノードに記憶された全ての仮ラベルの中で、最小のコスト累計値の仮ラベルになった場合に、仮ラベルから変更されるラベルである。
経路探索部120は、CPU、RAM、ROM、により構成された制御部を有し、ラベル付与部122と、第1経路設定部121と、第2経路設定部125と、を備えている。経路探索部120は、カーナビ200に到着地点が設定され、カーナビ200から出発地点情報が送信されると、通信部102を介して出発地点情報および到着地点情報を受信する。ラベル付与部122は、出発地点および到着地点から順々にノードにラベルを付与する。なお、ノードにラベルを付与する処理の詳細については後述する。
第1経路設定部121は、最適経路設定部123と、類似経路設定部124とを有している。最適経路設定部123は、ノードに付与されたラベルに含まれる情報に基づいて、出発地点から到着地点に至る経路の内、コスト累計値が最も小さい経路を最適経路として設定する。類似経路設定部124は、ラベルに含まれる情報と最適経路とに基づいて、出発地点から到着地点に至る類似経路を設定する。類似経路の設定処理の詳細については後述する。第2経路設定部125は、後述する下位層探索処理によって、ノードに付与されたラベルと、最適経路および類似経路と、に基づいて第2の経路を設定する。経路探索部120は、最適経路および類似経路と、第2の経路と、を含む経路情報を通信部102を介してカーナビ200に送信する。なお、最適経路および類似経路は、請求項における第1の経路に相当する。
A−2.マルチラベルダイクストラ法:
図2は、マルチラベルダイクストラ法を用いた経路探索処理の流れを示す説明図である。経路探索処理では、初めに、経路探索部120は、出発地点および到着地点を設定する(ステップS11)。次に、経路探索部120は、出発地点STから到着地点GLへと移動するために許容される時間を表わす許容コストを、最適経路による移動時間に対する許容加算時刻に基づいて設定する(ステップS12)。本実施形態では、許容コストは、100に設定される。次に、ラベル付与部122は、各ノードにラベルを付与し、最適経路決定処理を行なう(ステップS13)。
図3は、出発地点STから到着地点GLまでの経路におけるノードとリンクとの一例を示す説明図である。図3には、リンクおよびノードの各名称と、各リンクにおけるリンクコストと、直進禁止表示NGRと、が示されている。マルチラベルダイクストラ法では、各リンクに、進行方向や進行方向の変更に基づいて設定された各種規制を踏まえて、ノードにラベルが付与される。図3に示す全てのリンクは、自動車が走行する道路であり、矢印の方向にしか進めない一方通行の道路であり、逆走やUターンができないように設定されている。例えば、リンクL03では、利用者は、ノードN51からノードN61へと進むことができるが、その逆のノードN61からノードN51へとは進むことができない。直進禁止表示NGRは、リンクL05からノードN61へと入った場合には、ノードN61からリンクL06へとは進めないことを示している。また、図3に示す各ノードにおいては、リンクコストに加えて、左折する場合にはさらに左折コストとして5が加算され、右折する場合にはさらに右折コストとして10が加算されるように設定されている。例えば、L01からノードN51へと入った場合、ノードN51からリンクL02へと進む場合には左折コストが加算され、ノードN51からリンクL04へと進む場合には右折コストが加算される。
図4から図6までに示す各図は、各ノードにおけるラベルの付与の概略を示す説明図である。マルチラベルダイクストラ法では、各ノードに付与されたラベルの内、最も小さいコスト累計値を含む仮ラベルに着目して、着目されたラベル(以降、「着目ラベル」とも呼ぶ)は確定ラベルとなり、着目ラベルから接続されていると共に通過できるリンクを介する隣接するノードに新たなラベルが付与される。新たに付与されるラベルの情報に含まれるコスト累計値が、同じノードに付与されたラベルであり、かつ、同じ直前ノードを持つラベルの情報に含まれるコスト累計値の内で最も小さい場合には、新たに付与されるラベルは、仮ラベルとして記憶される。一方、新たに付与されるラベルに含まれるコスト累計値が、同じノードに付与され、かつ、同じ直前ノードを持つラベルの情報に含まれるコスト累計値の内で最も小さくない場合には、新たに付与されるラベルは、負けラベルとして記憶される。
図4(a)に示すように、最初にラベルの付与を始めるときには、いずれのノードにもラベルが付与されていないため、ラベル付与部122は、出発地点STに仮ラベルであるラベルA0を付与する。ラベルA0には、出発地点STに入る直前ラベルと、コスト累計値と、が記憶されている。ラベルA0では、出発地点STが出発点であり、直前ラベルは存在しないため、直前ラベルは「NULL」と記憶され、コスト累計値は「0」と記憶される。
次に、出発地点STにおける仮ラベルはA0の1つしかないため、ラベルA0が出発地点STにおける確定ラベルとして記憶され、四角形で囲まれて確定ラベルとして表示される。次に、ラベルA0からリンクL01を通過してノードN51へと入る経路のラベルA1が仮ラベルとして記憶される。ラベルA1のコスト累計値には、リンクL01におけるリンクコストの10が加算されて記憶される。図4(a)でラベルA1は、出発地点STからノードN51へと入った方向(右向き)を頂点とした五角形で囲まれて仮ラベルとして表示される。
次に、図4(b)に示すように、ラベルA1は、この時点で各ノードに記憶された全ての仮ラベルの中で、最小のコスト累計値のラベルであるため、ノードN51における確定ラベルとして記憶される。次に、ラベルA1を基準として、ラベルA2、ラベルA3、ラベルA4、が仮ラベルとして記憶される。ラベルA2は、ノードN51からリンクL02を通過してノードN62へと入る経路のラベルである。ラベルA2は、直前ラベルがラベルA1である。ラベルA2のコスト累計値は、リンクL02におけるリンクコストの15と、ノードN51における左折コスト5と、がラベルA1のコスト累計値に加算された30として記憶される。ラベルA3は、ノードN51からリンクL03を通過してノードN61へと入る経路のラベルである。ラベルA3は、直前ラベルがラベルA1である。ラベルA3のコスト累計値は、リンクL03におけるリンクコストの10がラベルA1のコスト累計値に加算された20として記憶される。ラベルA4は、ノードN51からリンクL04を通過してノードN60へと入る経路のラベルである。ラベルA4は、直前ラベルがラベルA1である。ラベルA4のコスト累計値は、リンクL04におけるリンクコストの30と、ノードN51における右折コスト10と、がラベルA1のコスト累計値に加算された50として記憶される。
次に、この時点で各ノードに記憶された全ての仮ラベルの中で最小のコスト累計値であるラベルA3が確定ラベルとして記憶されると共に、図5(a)に示すように、ラベルA3を基準として、ラベルA5、ラベルA6、が仮ラベルとして記憶される。ラベルA5は、ノードN61からリンクL06を通過してノードN60へと入る経路のラベルである。ラベルA5は、直前ラベルがラベルA3である。ラベルA5のコスト累計値は、リンクL06におけるリンクコストの10と、ノードN61における右折コスト10と、がラベルA3のコスト累計値に加算された40として記憶される。マルチラベルダイクストラ法では、各ラベルに記憶された直前ラベルの情報に含まれる直前ノードを考慮に入れるため、特定のノードにおいて異なるノードから入った経路のラベルの場合、これらは同一のラベルとしてみなさないため、複数の確定ラベルや仮ラベルが存在する場合がある。そのため、ノードN60において、ラベルA4とラベルA5との2つの仮ラベルが存在している。ラベルA6は、ノードN61からリンクL07を通過してノードN71へと入る経路のラベルである。ラベルA6は、直前ラベルがラベルA3である。ラベルA6のコスト累計値は、リンクL07におけるリンクコストの10がラベルA3のコスト累計値に加算された30として記憶される。
次に、ラベルA2は、この時点で各ノードに記憶された全ての仮ラベルの中で最小のコスト累計値であるため、ノードN62における確定ラベルとして記憶されると共に、図5(b)に示すように、ラベルA2を基準として、ラベルA7が仮ラベルとして記憶される。ラベルA7は、ノードN62からリンクL05を通過してノードN61へと入る経路のラベルである。ラベルA7は、直前ラベルがラベルA2である。ラベルA7のコスト累計値は、リンクL05におけるリンクコストの5がラベルA2のコスト累計値に加算された35として記憶される。ノードN62は、交差点ではなく、道なり方向への通行であるため、ラベルA7のコスト累計値には、右折コストが加算されない。
次に、この時点で各ノードに記憶された全ての仮ラベルの中で最小のコスト累計値のラベルA6が確定ラベルとして記憶されると共に、図6(a)に示すように、ラベルA6を基準として、ラベルA8が仮ラベルとして記憶される。ラベルA8は、ノードN71からリンクL09を通過して到着地点GLへと入る経路のラベルである。ラベルA8は、直前ラベルがラベルA6である。ラベルA8のコスト累計値は、リンクL09におけるリンクコストの10がラベルA6のコスト累計値に加算された40として記憶される。
次に、この時点で各ノードに記憶された全ての仮ラベルの中で最小のコスト累計値のラベルA7が確定ラベルとして記憶されると共に、図6(b)に示すように、ラベルA7を基準として、ノードN61からリンクL07を通過してノードN71へと入る経路のラベルA9が付与される。ラベルA9は、直前ラベルがラベルA7である。ラベルA9のコスト累計値は、リンクL07におけるリンクコストの10と、ノードN61における左折コスト5と、がラベルA7のコスト累計値に加算された50として記憶される。ラベルA9は、ラベルA6と同様に、直前のノードがノードN61であり、ラベルA6のコスト累計値である30よりも大きいため、負けラベルとして記憶される。図6(b)に示すように、負けラベルは、楕円で囲まれて表示される。また、直進禁止表示NGRによって、リンクL05からリンクL06へとは進めないため、この経路に対応したラベルは付与されない。
次に、上述した各ノードにおけるラベルの付与と同じように、確定ラベルとして記憶されたラベルA5を基準としてラベルA10が仮ラベルとして記憶される。次に、ラベルA5とコスト累計値が同じラベルA8が確定ラベルとして記憶され、到着地点GLに確定ラベルが付与される。なお、到着地点GLで確定したラベルA8からは、これ以上どこにも進むことができないため、ラベルA8を基準として新たなラベルは付与されない。到着地点GLに確定ラベルが付与されたため、ラベルA8により最適経路が設定され、最適経路のコスト累計値は40であることが決定する。
次に、この時点で各ノードに記憶された全ての仮ラベルの中で最小のコスト累計値のラベルA4に着目すると、ラベルA4のコスト累計値は、50であり、最適経路のコスト累計値40に許容コストの100を加えたコストの140未満を満たす。そのため、ラベルA4が引き続き確定ラベルとして記憶され、ラベルA4を基準としてラベルA11が付与される。しかし、ノードN71に既に存在しているラベルA10は、ラベルA11と同じ直前のノードN60を持つラベルであり、かつ、ラベルA11のコスト累計値の80よりも小さなコスト累計値の65を持っているため、ラベルA11は負けラベルとして記憶される。次に、ノードN71において、ラベルA10が確定ラベルとして記憶され、ラベルA10を基準として、ラベルA12が付与される。これですべての仮ラベルがなくなったことから、ラベルの付与処理が終了する。
図6(c)には、出発地点STから到着地点GLまでの最適経路と、各ノードにおけるラベルと、が示されている。図6(c)では、最適経路として、出発地点STからリンクL01、ノードN51、リンクL03、ノードN61、リンクL07、ノードN71、リンクL09を通過して到着地点GLへと入った経路が、他のリンクよりも太く矢印で示されている。
次に、類似経路設定部124は、最適経路と、各ノードに付与されたラベルに含まれる情報と、に基づいて、コスト累計値が初めに設定した許容コスト100と、最適経路のコスト累計値40を加えたコストの140以下の経路を第2経路として設定する(図2のステップS14)。図7は、類似経路設定処理の流れを示す説明図である。類似経路設定部124は、到着地点GLに負けラベルが記憶されているかを判定する(ステップS21)。到着地点GLに負けラベルが記憶されていると判定された場合には(ステップS21:YES)、類似経路設定部124は、到着地点GLにおける経路別コスト差が許容コストの100以下であるか否かを判定する(ステップS22)。到着地点GLに負けラベルが記憶されていないと判定された場合には(ステップS21:NO)、類似経路設定部124は、到着地点GLにおける類似経路を設定しない。経路別コスト差とは、各ノードに付与された、確定ラベルに含まれるコスト累計値と負けラベルに含まれるコスト累計値との差である。ステップS22の処理において経路別コスト差が許容コスト以下であると判定された場合には(ステップS22:YES)、類似経路設定部124は、到着地点GLにおける類似経路として設定する(ステップS23)。ステップS22の処理において経路別コスト差が許容コストを超えると判定された場合には(ステップS22:NO)、類似経路設定部124は、到着地点GLにおける類似経路を設定しない。
次に、類似経路設定部124は、最適経路に含まれるノードである最適ノードにおいて、負けラベルの直前のノードが最適ノードである負けラベル(以下、「特定負けラベル」とも呼ぶ)があるか否かを判定する(ステップS24)。図6(c)に示すように、到着地点GLにおける確定ラベルのラベルA8と負けラベルのA12との経路別コスト差である45は、許容コストの100よりも小さいため、類似経路設定部124は、いずれかの最適ノードに特定負けラベルがあるか否かを判定する。特定負けラベルがないと判定された場合(図7のステップS24:NO)、類似経路設定部124は、類似経路設定処理を終了する。特定負けラベルがあると判定された場合(ステップS24:YES)、類似経路設定部124は、最適ノードにおける特定負けラベルと確定ラベルとの経路別コスト差が許容コスト以下であるかを判定する(ステップS25)。
図6(c)に示すように、到着地点GLにおけるラベルA12と、ノードN71におけるラベルA9およびラベルA11と、が最適ノードにおける負けラベルである。ラベルA12に含まれる直前ラベルは、ラベルA10であり、ラベルA10は最適ノードであるノードN71に付与されたラベルである。ラベルA9に含まれる直前ラベルは、ラベルA7であり、ラベルA7は最適ノードであるノードN61に付与されたラベルである。ラベルA11に含まれる直前ラベルは、ラベルA4であり、ラベルA4は最適ノードではないノードN60に付与されたラベルである。そのため、ラベルA12およびラベルA9は、特定負けラベルであり、ラベルA11は、特定負けラベルではない。
次に、類似経路設定部124は、最適ノードに付与された特定負けラベルであるラベルA9およびラベルA12における経路別コスト差のそれぞれが許容コスト以下であるか否かを判定する(ステップS25)。ステップS25の処理において特定負けラベルの経路別コスト差が許容コストを超える場合には(ステップS25:NO)、類似経路設定部124は、類似経路設定処理を終了する。到着地点GLにおいて、ラベルA12のコスト累計値は85であり、ラベルA12の最適経路のラベルA8に対する経路別コスト差は45である。ノードN71において、ラベルA9のコスト累計値は50であり、ラベルA9の最適経路を構成するラベルA6に対するラベルA9の経路別コスト差は20である。そのため、これら2つの特定負けラベルの経路別コスト差は、許容コストの100以下であるため(ステップS25:YES)、類似経路設定部124は、ラベルA12に基づいて特定される経路と、ラベルA9に基づいて特定される経路およびリンクL09とを組み合わせた経路と、を類似経路として決定する(ステップS26)。
図8は、最適ノードにおいて設定された類似経路の概略を示す説明図である。図8(a)には、設定された最適経路および類似経路と、最適経路および類似経路に関連する確定ラベルおよび負けラベルと、が示されている。図8(a)では、最適経路は実線で示され、最適経路と異なる類似経路は点線または一点鎖線で示されている。図8(b)には、各最適ノードにおける確定ラベルと、負けラベルと、経路別コスト差と、が示されている。図8(c)には、最適ノードと類似経路における経路別コスト差とのそれぞれの概略が示されている。
類似経路設定部124は、類似経路を設定すると(図7のステップS26)、次に、設定した類似経路に類似する準類似経路を設定する。類似経路設定部124は、類似経路に含まれるノードである類似ノードにおいて、負けラベルの直前のノードが類似ノードである負けラベル(以下、「準特定負けラベル」とも呼ぶ)があるか否かを判定する(ステップS27)。なお、最適経路と類似経路との関係によって、最適ノードかつ類似ノードとなるノードも存在する。準特定負けラベルがないと判定された場合には(ステップS27:NO)、類似経路設定部124は、類似経路設定処理を終了する。
図9は、最適ノードおよび類似ノードにおいて設定された最適経路および準類似経路の概略を示す説明図である。図9(a)には、設定された最適経路と類似経路と準類似経路と、各経路に関連する確定ラベルおよび負けラベルと、が示されている。最適経路は実線で示され、最適経路と異なる類似経路は点線または一点鎖線で示され、最適経路および類似経路と異なる準類似経路は一点鎖線および二点鎖線で示されている。図9(b)には、最適ノードおよび類似ノードにおける確定ラベル、負けラベル、経路別コスト差、経路加算コスト、が示されている。図9(c)には、準類似経路の経路別コスト差および経路加算コストの概略が示されている。
図9(a)に示すように、準特定負けラベルとなる類似ノードに付与された負けラベルは、ラベルA11である。ラベルA11の直前のノードは、ラベルA12を構成する類似経路に含まれる類似ノードであるため(図7のステップS27:YES)、類似経路設定部124は、差分許容コストが設定した許容コスト以下であるか否かを判定する(ステップS28)。差分許容コストとは、許容コストから、類似経路のリンクコストのコスト累計値から最適経路のリンクコストのコスト累計値を差し引いた値を、差し引いた値である。そのため、ラベルA11の差分許容コストは、類似経路のリンクコストの累計値である85から最適経路のリンクコストのコスト累計値である40を差し引いた45を、許容コストの100から差し引いた55である。ノードN71において、ラベルA12から特定される類似経路のラベルA10と、ラベルA11と、の経路別コスト差は、15であり、差分許容コストの55以下であるため(図7のステップS28:YES)、類似経路設定部124は、ラベルA11から特定される経路を準類似経路として設定する(ステップS29)。次に、類似経路設定部124は、準類似経路を類似経路として設定し(ステップS30)、新たに設定した類似経路に対して準類似経路が設定されなくなるまでステップS27からステップS30までの処理を繰り返す。ステップS28の処理において、該当する負けラベルがないと判定された場合には(ステップS28:NO)、類似経路設定部124は、準類似経路設定処理を終了する。
A−3.経路探索処理:
図10は、本実施形態における経路探索処理の流れを示す説明図である。経路探索処理では、カーナビ200の利用者の出発地点から到着地点に至る経路の内の最適経路および類似経路が探索される。
初めに、サーバ100の経路探索部120は、利用者による自動車のカーナビ200への入力に基づいて、出発地点と、到着地点と、出発地点から到着地点までの経路を移動するために許容される加算時間を表す許容コストと、を取得する(ステップS41)。利用者がカーナビ200に到着地点を入力すると、カーナビ200は、到着地点情報を生成する。また、GPS受信機201は、カーナビ200の現在位置から出発地点情報を生成する。また、利用者がカーナビ200に対し、最適経路での移動時間に対して遅れたとみなさない許容時間範囲を設定することで、経路探索部120は、この許容時間を許容コストとして保持する。なお、出発地点および到着地点のそれぞれは、請求項における第1地点および第2地点に相当する。
次に、経路探索部120は、階層的経路探索処理を行なう(ステップS42)。階層的経路探索処理では、出発地点STから到着地点GLに至る最適経路および類似経路が設定される。なお、階層的経路探索処理の詳細については後述する。次に、経路探索部120は、階層的経路探索処理において、所定の数以上の類似経路の存在有無を判定する(ステップS43)。所定の数以上の類似経路がないと判定された場合には(ステップS43:NO)、経路探索部120は、下位層追加探索処理を行なう(ステップS44)。なお、下位層追加探索処理の詳細については後述する。ステップS43の処理で所定の数以上の類似経路があると判定された場合(ステップS43:YES)、または、下位層追加探索処理が完了した場合には(ステップS44)、経路探索部120は、経路探索処理を終了する。
A−3−1.階層的経路探索処理:
図11は、階層的経路探索処理の流れを示す説明図である。階層的経路探索処理では、リンク情報に記憶されている層に含まれるレベル別のリンクごとに、経路探索を行なう条件を変更して、出発地点から到着地点に至る経路を探索する。
初めに、経路探索部120は、出発地点STと到着地点GLとに仮ラベルを付与する(ステップS51)。次に経路探索部120は、経路を探索する層である探索層のレベルを設定する(ステップS52)。本実施形態では、初期値としてレベル1を探索層として設定する。探索層がレベル1に設定されると、経路探索部120は、探索層と、探索層よりも上位の層であるレベル2およびレベル3と、に記憶されている複数のリンク(以下「レベル1リンク群」という。)を探索対象として経路探索を行なう。この場合、リンク情報に記憶された全てのリンクが探索対象となるが、例えば、レベル2が探索層として設定された場合には、レベル2とレベル3とに記憶されたリンク(以下「レベル2リンク群」という。)のみが探索対象となる。また、レベル3が探索層として設定された場合には、レベル3に記憶されたリンク(以下「レベル3リンク群」という。)のみが探索対象となる。以上のように、レベル1リンク群は、レベル2リンク群よりも詳細な詳細度の複数のリンクからなり、レベル2リンク群は、レベル3リンク群よりも詳細な詳細度の複数のリンクからなっている。なお、他の実施形態では、初期値についは種々変形可能である。
次に、経路探索部120は、探索対象の複数のリンクに接続するノードに対してラベルを付与するループ回数を設定する(ステップS53)。1回のループでは、1つの仮ラベルが付与されたノードに接続する進行可能であるリンクを介して、隣接する全てのノードにラベルが付与される。例えば、あるノードにおける仮ラベルに着目した場合、着目ラベルが付与されたノードが接続する進行可能なリンクが3つある場合には、1回のループによって隣接する各ノードのそれぞれに仮ラベルが付与され、合計として3つのラベルが付与される。経路探索部120は、探索層のレベルに対して予め設定されたループ回数だけノードにラベルを付与する。本実施形態では、レベル1におけるループ回数は、1000回に設定されているが、他の実施形態では異なる回数であってもよい。
次に、経路探索部120は、経路導出処理を行なう(ステップS54)。経路導出処理では、ノードにラベルを付与することによって、出発地点STから到着地点GLに至る最適経路を探索する。なお、経路導出処理の詳細については後述する。次に、経路探索部120は、経路導出処理によって、最適経路が設定されたか否かを判定する(ステップS55)。最適経路が設定されていないと判定された場合には(ステップS55:NO)、経路探索部120は、探索層のレベルを1つ上げて、探索層をレベル2に設定する(ステップS56)。その後、経路探索部120は、探索層がレベル2の場合のループ回数を、予め設定された500回に設定し(ステップS53)、ステップS54以降の処理を最適経路が設定されるまで繰り返す。ステップS55の処理において、最適経路が設定されたと判定された場合には(ステップS55:YES)、経路探索部120は、階層的経路探索処理を終了する。
A−3−2.経路導出処理:
図12は、経路導出処理の流れを示す説明図である。経路導出処理では、初めに、経路探索部120は、双方向探索において、順探索と逆探索とから一方を選択する(ステップS61)。経路導出処理では、マルチラベルダイクストラ法を用いて、出発地点STから順番にノードにラベルを付与して経路を探索する順探索と同時に、到着地点GLからも順番にノードにラベルを付与して経路を探索する逆探索を行なう双方向探索が行なわれる。経路探索部120は、順探索と逆探索とから一方を選択して、選択した経路探索において、ノードにラベルを付与する。例えば、順探索によって探索されたノードにラベルが付与された場合には、次のラベルの付与では、逆探索によって探索されたノードにラベルが付与される。経路導出処理を始めた初期では、経路探索部120は、初めに、順探索を選択する。
図13は、双方向探索の概略を示す説明図である。図13には、出発地点STおよび到着地点GLを含む一部の領域のノードとリンクとが示されている。図13に示すように、リンクL13、リンクL14、リンクL17、リンクL18には、進行方向に対して規制が設定されており、これらのリンクでは、利用者は、矢印の向きに沿って各リンクを通過できるが、逆方向に沿って各リンクを通過できない。例えば、リンクL13は、ノードN11からノードN13へと通過できるリンクであるが、ノードN13からノードN11へとは通過できないリンクである。逆探索では、到着地点GLからノードにラベルを付与する場合に、ラベル付与部122は、各リンクに設定された進行方向や右折コスト等の設定を変更してラベルを付与する。例えば、リンクL18は、ノードN18からノードN16へと通過できるリンクであるが、逆探索では、ノードN16からノードN18へと通過できるとリンクとして、ラベルが付与される。また、リンクL16からノードN16を介してリンクL18へと入る場合には、ラベルに含まれるコスト累計値には、左折コストではなく、右折コストが加算される。1回のループでは、出発地点STを出発して付与されたラベル、または、到着地点GLを出発して付与されたラベルのそれぞれの1つの確定ラベルに対して、ラベルの付与が行なわれる。
次に、ラベル付与部122は、順探索もしくは逆探索によって付与された仮ラベルがあるか否かを判定する(図12のステップS62)。まだ仮ラベルがある場合には(ステップS62:YES)、経路探索部120は、ノードにラベルを付与したループ回数が設定されたループ回数である1000回よりも大きいか否かを判定する(ステップS63)。最初の時点では、出発地点STおよび到着地点GLに隣接するノードのみにラベルが付与されているため、ラベル付与回数は1000回より小さい(ステップS63:NO)。その場合、経路探索部120は、順探索によって付与された複数の仮ラベルに含まれるコスト累計値の内の最も小さい最小順コストと、逆探索によって付与された複数の仮ラベルに含まれるコスト累計値の内の最も小さい最小逆コストと、を加えた値(以下、「合算コスト累計値」とも呼ぶ)が既に導出されている最適経路のコスト累計値(以下、「導出済最適経路コスト」とも呼ぶ)に許容コストを加えた値よりも大きいか否かを判定する(ステップS64)。なお、ステップS64の処理において、最適経路が設定されておらず、導出済最適経路コストが存在しない場合には、合算コスト累計値が導出済最適経路コストと許容コストとの和よりも小さいと判定される。
ステップS64の処理において、条件を満たさない場合には(ステップS64:NO)、ラベル付与部122は、ループ回数を1回増やす(ステップS65)。ラベル付与部122は、ラベルを付与するために、ノードに付与されたラベルに含まれるコスト累計値が最も少ない仮ラベルに着目する(ステップS66)。次に、ラベル付与部122は、着目した仮ラベルを確定ラベルに変更する(ステップS67)。
次に、経路探索部120は、順探索によって付与されたラベルと逆探索によって付与されたラベルとの順逆両方向のラベルが重複するノードが存在するか否かを判定する(ステップS68)。図14は、ラベルが重複するノードの一例を示す説明図である。図14には、双方向探索が行なわれた場合に、出発地点STから到着地点GLに至る経路に含まれるノードに付与された確定ラベルおよび仮ラベルが示されている。図14(a)には、順探索および逆探索のそれぞれに対してループ回数を増やし、順番にノードにラベルが付与された場合に、順探索によって付与されたラベルと、逆探索によって付与されたラベルと、が重複するノードが示されている。図14(a)において、「順確定」は、順探索によってノードに付与された確定ラベルを意味し、「順仮」は、順探索によってノードに付与された仮ラベルを意味する。また、「逆確定」は、逆探索によってノードに付与された確定ラベルを意味し、「逆仮」は、逆探索によってノードに付与された仮ラベルを意味する。図14(a)に示すように、順探索および逆探索のそれぞれによって順番にノードにラベルが付与されると、リンクL23のように、順探索および逆探索のそれぞれの確定ラベルから特定される経路に含まれるリンクが出現する。この場合に、ノードN22およびノードN23が重複するノードとしてみなされる。図14(b)には、順探索のみに基づいて探索された出発地点STから到着地点GLに至る経路が示されている。この場合に、到着地点GLが重複するノードとしてみなされる。マルチラベルダイクストラ法を用いた双方向探索では、図14(a)または図14(b)に示すようなラベルに基づいて出発地点STから到着地点GLに至る経路が探索される。
図12のステップS68の処理において、重複するノードが存在すると判定された場合には(ステップS68:YES)、経路探索部120は、経路接続後処理を行ない(ステップS69)、ステップS61以降の処理を行なう。経路接続後処理では、重複するノードに基づいて経路が設定される。なお、経路接続後処理の詳細については後述する。ステップS68の処理において、重複するノードが存在しないと判定された場合には(ステップS68:NO)、ラベル付与部122は、ラベル付与処理を行ない(ステップS70)、経路探索部120は、ステップS61以降の処理を行なう。ラベル付与処理では、マルチラベルダイクストラ法を用いて、ノードにラベルが付与される。なお、ラベル付与処理の詳細については後述する。
ステップS62の処理において仮ラベルがないと判定された場合と(ステップS62:NO)、ステップS63の処理においてループ回数が設定されたループ回数よりも多いと判定された場合と(ステップS63:YES)、合算コスト累計値が導出済最適経路コストと許容コストとの和よりも大きいと判定された場合とには(ステップS64:YES)、経路探索部120は、ノードに付与された負けラベルが存在するか否かを判定する(ステップS71)。ノードに付与された負けラベルが存在すると判定された場合には(ステップS71:YES)、類似経路設定部124は、負けラベルが付与されている確定ラベルと負けラベルとに含まれるコスト累計値の差に基づいて、最適経路のコスト累計値に許容コストを加えた値以下のコスト累計値となる類似経路を設定し(ステップS72)、経路探索部120は、経路導出処理を終了する。また、ステップS71の処理において、ノードに付与された負けラベルがないと判定された場合には(ステップS71:NO)、経路探索部120は、経路導出処理を終了する。
A−3−3.経路接続後処理:
図15は、経路接続後処理の流れを示す説明図である。経路接続後処理では、双方向探索によって、順探索および逆探索のそれぞれによって付与されたラベルが重複するノードがある場合に、重複するノードに付与された2つのラベルに基づいて経路が設定される。初めに、経路探索部120は、重複するノードに付与されたラベルに基づいて、出発地点STから到着地点GLに至る経路のコスト累計値を算出する(ステップS81)。
図16は、重複するノードに付与された確定ラベルに含まれるコスト累計値の一例を示す説明図である。図16に示すように、順探索と逆探索とによって、ノードN22およびノードN23が重複するノードに該当する。この場合に、経路探索部120は、出発地点STから到着地点GLに至る経路のコスト累計値を、ノードN23において順探索によって付与された確定ノードに含まれるコスト累計値の40と、ノードN22において逆探索によって付与された確定ノードに含まれるコスト累計値の60と、の和に、重複するリンクL23のリンクコストの10を差し引いた値として算出する。
確定した経路のコスト累計値が算出されると、経路探索部120は、算出したコスト累計値が導出済最適経路コストと許容コストとを加えた値以下であるか否かを判定する(図15のステップS82)。算出したコスト累計値がステップS82の処理における条件を満たさないと判定された場合には(ステップS82:NO)、経路探索部120は、経路接続後処理を終了する。算出したコスト累計値がステップS82の処理における条件を満たすと判定された場合には(ステップS82:YES)、経路探索部120は、確定した経路を、出発地点STから到着地点GLに至る候補経路として記憶する(ステップS83)。次に、経路探索部120は、新たに記憶した候補経路のコスト累計値が、既に記憶していた候補経路の内で、最小であるか否かを判定する(ステップS84)。新たに記憶した候補経路のコスト累計値が候補経路の内で最小ではないと判定された場合(ステップS84:NO)、経路探索部120は、経路接続後処理を終了する。新たに記憶した候補経路のコスト累計値が候補経路の内で最小であると判定された場合には(ステップS84:YES)、経路探索部120は、新たに記憶した候補経路を導出済最適経路に設定し、導出済最適経路コストを更新する(ステップS85)。次に、経路探索部120は、更新後の導出済最適経路コストに基づいて、候補経路を更新し(ステップS86)、経路接続後処理を終了する。
図17および図18は、候補経路および導出済最適経路の更新の概略を示す説明図である。図17には、新たに確定した経路が候補経路として記憶される前に、記憶されている複数の候補経路の一例が示されている。図17に示すように、候補経路として、経路R01、経路R02、経路R03が記憶されており、最小のコスト累計値の30を有する経路R01が導出済最適経路として記憶されている。許容コストが30に設定されているため、導出済最適経路コストと許容コストとの和は、60である。
図18には、新たに確定した経路R04が候補経路として記憶された後に、更新された候補経路の一例が示されている。図18(a)には、経路R04のコスト累計値が40の場合が示されており、図18(b)には、経路R04のコスト累計値が120の場合が示されており、図18(c)には、経路R04のコスト累計値が20の場合が示されている。図18(a)に示すように、経路R04のコスト累計値が40の場合には、経路R04が新たな候補経路として記憶され、経路R01,R02,R03も候補経路として記憶され続ける。図18(b)に示すように、経路R04のコスト累計値が120の場合には、経路R04は、図17に示す導出済最適経路コストと許容コストとの和である60以下でないため、候補経路として記憶されない。図18(c)に示すように、経路R04のコスト累計値が20の場合には、経路R04は、新たな候補経路として記憶されると共に、候補経路の内でコスト累計値が最も小さいため、導出済最適経路として記憶される。経路R04が導出済最適経路として記憶されると、導出済最適経路コストと許容コストとの和が50となり、コスト累計値が60である経路R02は、候補経路から除外される。
A−3−4.ラベル付与処理:
図19は、ラベル付与処理の流れを示す説明図である。ラベル付与処理では、マルチラベルダイクストラ法を用いて、ノードにラベルが付与される。初めに、ラベル付与部122は、確定ラベルへ変更された着目ラベルが付与されたノードからリンクを介して進行可能なノードを検出する(ステップS91)。ラベル付与部122は、検出したノードに既にラベルが付与されているか否かを判定する(ステップS92)。検出したノードにラベルが付与されていないと判定された場合には(ステップS92:NO)、ラベル付与部122は、検出したノードに新たなラベルを仮ラベルとして付与し(ステップS93)、ラベル付与処理を終了する。
ステップS92の処理において、検出したノードに既にラベルが付与されていると判定された場合には(ステップS92:YES)、ラベル付与部122は、既に付与されているラベルの中に確定ラベルが存在するか否かを判定する(ステップS94)。既に付与されているラベルの中に確定ラベルが存在しない場合は(ステップS94:NO)、既に付与されているラベルの中に仮ラベルが必ず存在するため、検出ノードに付与する新たなラベルに含まれるコスト累計値と、既に付与されている仮ラベルに含まれるコスト累計値と、を比較し(ステップS95)、新たなラベルに含まれるコスト累計値の方が小さい場合には(ステップS95:YES)、既に付与されている仮ラベルを負けラベルへ変更するとともに(ステップS96)、新たなラベルを仮ラベルとして付与する(ステップS93)。新たなラベルに含まれるコスト累計値の方が、既に付与されている仮ラベルに含まれるコスト累計値より大きい場合には(ステップS95:NO)、新たなラベルを負けラベルとして付与する(ステップS97)。既に付与されているラベルの中に確定ラベルが存在する場合は(ステップS94:YES)、検出ノードに付与する新たなラベルに含まれるコスト累計値から、既に付与されている確定ラベルに含まれるコスト累計値を差し引いた値が、導出済経路最適コストと許容コストと和未満か否かを判定する(ステップS98)。ステップS98の処理における条件を満たすと判定された場合には(ステップS98:YES)、ラベル付与部122は、検出したノードに新たなラベルを負けラベルとして付与し(ステップS97)、ラベル付与処理を終了する。ステップS98の処理における条件を満たさないと判定された場合には(ステップS98:NO)、ラベル付与部122は、検出ノードにラベルを付与しないでラベル付与処理を終了する。
A−3−5.下位層追加探索処理:
経路探索処理において、所定の数以上の類似経路がないと判定された場合には(図10のステップS43:NO)、経路探索部120は、下位層追加探索処理を行なう(ステップS44)。図20は、下位層追加探索処理の流れを示す説明図である。下位層追加探索処理では、出発地点STから到着地点GLに至る経路が少なくとも1つ設定された場合に、探索層のレベルを1つ下げてラベルが付与され、経路探索が行なわれる。初めに、経路探索部120は、経路探索を行なう探索層のレベルを1つ下げる。例えば、探索層がレベル2の場合に出発地点STから到着地点GLに至る経路が設定された場合には、探索層をレベル1に変更する。次に、ラベル付与部122は、仮ラベル追加処理を行なう(ステップS102)。
図21から図24までの各図は、仮ラベル追加処理においてノードに付与された仮ラベルの一例を示す説明図である。図21には、出発地点STから到着地点GLに至る最適経路R10、類似経路R11、類似経路R12と、第2の経路R13と、第2の経路R14と、各経路に含まれるリンクおよびノードと、各ノードに付与された確定ラベルおよび仮ラベルと、が示されている。図21では、各経路に含まれるリンクが分類されている層のレベルに基づいて、線種が変更されて示されている。図21に示すように、下位層追加探索処理以外のリンクについて、レベル1リンク群は実線、レベル2リンク群は点線、レベル3リンク群は一点鎖線で示されている。また、最適経路R10は、太線で示され、類似経路R11および類似経路R12は、最適経路R10よりも細い線で示されている。各ノードに付与された確定ラベルは、中が黒で塗りつぶされた五角形で示され、仮ラベルは中が白抜きの五角形で示されている。なお、順探索によって付与された確定ラベルおよび仮ラベルは、五角形の頂点が出発地点STから到着地点GLの方に向いており、逆探索によって付与された確定ラベルおよび仮ラベルは、五角形の頂点が到着地点GLから出発地点STへの方に向いている。下位層追加探索処理では、第2経路設定部125は、最適経路R10と、ノードに付与されたラベルと、に基づいて、第2の経路R13および第2の経路R14を設定する。
図21から図24までの各図に示す仮ラベル追加処理では、探索層がレベル3のときに最適経路が出現している。図21に示す仮ラベル処理では、ラベル付与部122は、最適経路R10に含まれるレベル2リンク群に接続するノードに仮ラベルを付与する。すなわち、下位層追加探索処理では、第2経路設定部125は、仮ラベルが付与された最適経路R10に含まれるレベル2リンク群に接続するノードを起点とするとともに、点線および一点鎖線の部分についてレベル2リンク群を経路導出処理(A−3−2)することにより、第2の経路R13および第2の経路R14を探索する。この場合、最適経路R10に含まれるレベル2リンク群に接続するノードを起点として当該経路導出処理をすることにより、階層的経路探索処理(図10のステップS42)のときにレベル3リンク群を探索した部分領域(以下「所定の部分領域」という。)について全てのリンクを探索するのではなく、探索するリンクを制限している。なお、本実施形態におけるレベル3リンク群は、請求項における第1のリンク群に相当し、本実施形態におけるレベル2リンク群は、請求項における第2のリンク群に相当する。
図22から図24までの各図に示す仮ラベル追加処理は、図21と比較して、仮ラベルを付与する条件が異なるため、第2経路設定部125が設定する第2の経路が異なり、他は、図21に示す仮ラベル追加処理と同じである。図22に示す仮ラベル追加処理では、ラベル付与部122は、図21に示す仮ラベル処理と同様に、最適経路R10に含まれるレベル2リンク群に接続するノードに仮ラベルを付与する。さらに、ラベル付与部122は、最適経路R10から分岐する経路であり、分岐するノードがレベル3の探索層よりも1つ下のレベル2リンク群と接続している類似経路R12に含まれるノードにも仮ラベルを付与する。そのため、図22に示すように、第2経路設定部125は、類似経路R12に含まれるノードに付与された仮ラベルに基づいて、さらに第2の経路R15を設定する。
図23に示す仮ラベル追加処理では、ラベル付与部122は、最適経路R10と、類似経路R11と、類似経路R12とに含まれるレベル2リンク群に接続する全てのノードに仮ラベルを付与する。そのため、図23に示す例では、図21に示す例と異なり、第2経路設定部125は、類似経路R11に含まれるノードに付与された仮ラベルに基づいて、さらに第2の経路R16を設定する。
図24に示す仮ラベル追加処理では、ラベル付与部122は、最適経路R10に含まれると共に、類似経路R11および類似経路R12には含まれないノードに仮ラベルを付与する。そのため、図24に示す例では、図21に示す例と異なり、第2経路設定部125は、第2の経路R13を設定せずに、第2の経路R14のみを設定する。
A−4.探索経路提示:
図25は、利用者に提示される出発地点STから到着地点GLに至る経路の一例を示す説明図である。図25には、経路探索処理によって設定された、最適経路R20と、最適経路とは異なる複数の経路である非最適経路R21,R22,R23,R24,R25と、が示されている。なお、非最適経路は、類似経路と第2の経路とを含む経路である。例えば、非最適経路R21は、出発地点STからノードN3までが最適経路R20と同じ経路で、ノードN3で最適経路R20からはずれてノードN10を通過し、ノードN4で最適経路R20に合流して、ノードN4から到着地点GLまでは最適経路R20と同じ経路である。なお、ノードN4とノードN5とを結ぶリンクに非最適経路R21が重複されて示されているのは、マルチラベルダイクストラ法を用いて非最適経路R21が設定されたためである。非最適経路R21と同じように、非最適経路R22および非最適経路R25では、ノードN6と到着地点GLとを結ぶリンクは、最適経路R20と重複している。また、非最適経路R23は、非最適経路R22に基づいて設定された非最適経路であるため、ノードN7とノードN8とを結ぶリンクは、非最適経路R22と非最適経路R23とで重複している。なお、非最適経路R24は、最適経路R20と異なるリンクを経由して到着地点GLへ直接合流しているため、合流地点で最適経路R20および他の非最適経路と重複するリンクを含んでいない。
経路探索部120は、予め定められた設定や使用者の操作によって、経路探索処理によって設定された経路情報をカーナビ200に送信する。例えば、最適経路R20に対するコスト累計値の差が小さい経路を提示する場合には、経路探索部120は、最適経路R20に対するコスト累計値の差が小さい順に、所定の数の非最適経路を提示する。また、最適経路R20に対して、できるだけ異なる経路、すなわち、最適経路R20に含まれるリンクと重複しない経路を提示する場合には、非最適経路R24、非最適経路R23およびノードN8とノードN6を結ぶリンクを含む経路、ノードN1とノードN9とを結ぶリンクおよび非最適経路R25を含む経路、を提示する。
以上説明したように、本実施形態におけるサーバ100では、図21に示すように、レベル2の層を探索層として経路探索を行ない、ラベル付与部122が探索結果に基づいて出発地点STから到着地点GLに至る最適経路R10を設定する。下位層追加探索処理によって、第2経路設定部125は、第2の経路R13,R14,R15,R16を探索する場合に、探索するリンクを制限し、最適経路R10または類似経路R11,R12と少なくとも一部のノードまたはリンクが異なる類似経路R11,R12を設定する。そのため、本実施形態におけるサーバ100では、最適経路R10および類似経路R11,R12の探索結果に基づいて第2の経路R13,R14,R15,R16が設定されるため、最適経路R10および類似経路R11,R12とは異なる経路が設定される場合に、出発地点STから到着地点GLに至る経路を再探索する必要がなく、第2の経路R13,R14,R15,R16が効率良く設定される。また、本実施形態のサーバ100では、下位層追加探索処理によって、第2経路設定部125は、最適経路R10および類似経路R11,R12が設定された際の探索層よりも下位の層に記憶されたリンクを用いた第2の経路を設定できる。つまり、所定の部分領域について、上位の層に記録されたリンクのみで探索した場合、探索される経路数が少ないが、その領域について、下位の層に記憶されたリンクを用いて探索しているので、探索する経路の選択肢をあまり限定されない。一方、下位の層に記憶されたリンクを探索する場合、探索するリンクがより詳細になるため探索に時間がかかることになるが、探索するリンクを制限することにより探索時間の増大を抑制することができる。
また、本実施形態におけるサーバ100では、図21に示すように、仮ラベル処理では、最適経路R10および類似経路R11,R12に含まれるレベル2リンク群のリンクに接続するノードにラベルが付与され、第2経路設定部125は、付与された仮ラベルに基づいて、第2の経路R13,R14,R15,R16を設定する。そのため、本実施形態におけるサーバ100では、最適経路R10および類似経路R11,R12に含まれるノードを起点として第2の経路R13,R14,R15,R16が探索されるので、第2の経路をより効率良く設定できる。
また、本実施形態におけるサーバ100では、所定の数以上の類似経路がないと判定された場合には(図10のステップS43:NO)、下位層追加探索処理が行なわれ(ステップS44)、類似経路設定部124は、類似経路を設定する(図12のステップS72)。そのため、本実施形態におけるサーバ100では、十分な数の類似経路が探索されて設定されている場合には、第2の経路が設定されないため、経路探索の処理を抑制でき、かつ、迅速に出発地点STから到着地点GLに至る経路を探索できる。
また、本実施形態におけるサーバ100では、出発地点STを起点とする順探索と、到着地点GLを起点とする逆探索と、を含む双方向探索が行なわれる。各リンクには、進行方向に対して規制が設定されており、逆探索では、各リンクに設定された進行方向や右折コスト等の設定が変更される。双方向探索によって、順探索および逆探索のそれぞれによって探索された経路に含まれる重複するノードがある場合に、最適経路設定部123および類似経路設定部124は、重複するノードを含み、順探索によって探索された経路と、逆探索によって探索された経路と、に基づいて最適経路や類似経路を設定する。そのため、本実施形態におけるサーバ100では、双方向探索によって出発地点STから到着地点GLに至る経路を探索するため、効率良く、かつ、迅速に出発地点STから到着地点GLに至る経路を探索できる。
また、本実施形態におけるサーバ100では、ラベル付与部122は、出発地点および到着地点から順々にノードに、出発地点から特定のノードに至る経路までコスト累計値と、当該経路における特定のノードに到着する1つ前の直前ノードに付与されたラベルである直前ラベルと、を含む情報ラベルを付与する。最適経路設定部123は、ノードに付与されたラベルに含まれる情報に基づいて、出発地点から到着地点に至る経路の内、コスト累計値が最も小さい経路を最適経路として設定する。類似経路設定部124は、ラベルに含まれる情報と、最適経路と、許容コストと、に基づいて出発地点STから到着地点GLに至る類似経路を設定する。そのため、本実施形態におけるサーバ100では、コスト累計値が最も小さい経路と、探索時に付与されたラベルと、に基づいて類似経路が設定されるため、1つの経路が設定された後に、再度、出発地点STから到着地点GLに至るノードへのラベルの付与が不要であり、コスト累計値が小さい経路を効率良く設定できる。
B.第2実施形態:
第2実施形態では、上記実施形態における探索経路提示(図25)によって提示された最適経路R20および複数の非最適経路に対して、さらに情報を付加した経路情報を利用者に提示する。図26は、利用者に提示される出発地点STから到着地点GLに至る経路一覧の一例を示す説明図である。図26には、出発地点STから到着地点GLに至る各経路に対して、分岐ノードと、合流ノードと、合流先と、構成ノードと、が一覧で示されている。分岐ノードは、最適経路R20から、最適経路R20とは異なるリンクを通過する場合に起点となるノードである。合流ノードは、最適経路R20とは異なるリンクを通過した後に、最適経路R20または他の非最適経路に合流するノードである。合流先は、合流ノードで合流した後に、同じノードおよびリンクを通過する最適経路R20または他の非最適経路である。構成ノードは、出発地点STから到着地点GLに至る経路において、通過する順番に沿って表示されたノードである。例えば、非最適経路R23は、ノードN1で最適経路R20から分岐して、ノードN7で非最適経路R22と合流する経路であり、出発地点ST、ノードN1、ノードN7、ノードN8、ノードN6、到着地点GLのノードを通過する。
図27は、第2実施形態における出発地点STから到着地点GLに至る経路の一例を示す説明図である。図27には、ノードN3とノードN4とを結ぶリンクと、ノードN9とノードN5とを結ぶリンクと、において、事故が起きて渋滞ax1,ax2が発生している状態が示されている。図28は、第2実施形態における出発地点STから到着地点GLに至る経路一覧の一例を示す説明図である。図28(a)には、利用者が乗車する自動車の現在位置がノードN1である場合の経路情報の一覧が示されている。渋滞ax1および渋滞ax2の発生は、構成ノードに表示される。最適経路R20に渋滞axが発生している場合に、サーバ100は、渋滞ax1を回避するための経路情報を提示する。図28(a)に示すように、非最適経路R24には渋滞ax2が発生しているため、サーバ100は、非最適経路R24を通行すると渋滞ax2に巻き込まれることを提示する。
図28(b)には、利用者が乗車する自動車の現在位置がノードN2である場合の経路情報の一覧が示されている。図28(a)に示す例と同じように、サーバ100は、非最適経路R24を通行すると渋滞ax2に巻き込まれることを提示する。また、図28(b)に示すように、自動車の現在位置がノードN2であるため、サーバ100は、ノードN1を分岐ノードとする非最適経路R23および非最適経路R25の経路を通行できないことを提示する。そのため、第2実施形態におけるサーバ100では、出発地点STから到着地点GLに至る経路に発生した渋滞ax1,ax2等に基づいて、利用者に提示する経路情報を変更するため、利用者の利便性が向上する。
C.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
C1.変形例1:
上記実施形態では、経路導出処理において、類似経路の設定が行なわれたが(図12のステップS72)、必ずしも類似経路の設定が行なわれなくてもよい。例えば、順探索と逆探索とによって、重複するノードが出現した場合に、重複するノードを含む出発地点STから到着地点GLに至る経路を設定し、設定された経路に基づいて下位層追加探索処理が行なわれて、第2の経路が設定されてもよい。また、上記実施形態では、仮ラベルが付与された最適経路(図21のR10)に含まれるレベル2リンク群に接続するノードを起点とするとともに、所定の部分領域について、レベル2リンク層を経路導出処理(A−3−2)する場合に探索するリンクを制限しているが、他の方法で探索するリンクを制限してもよい。例えば、下位層追加探索処理のときに、所定の部分領域のうち最適経路から所定の距離範囲の複数のリンクのみを探索することにより、探索するリンクを制限するようにしてもよい。
また、上記実施形態では、ラベル付与処理において、検出したノードに既に確定ラベルが付与されていると判定された場合には(図19のステップS94:YES)、ラベル付与部122は、ステップS98の処理を行なったが、必ずしもステップS98の処理が行なわれなくてもよい。例えば、単に、検出したノードに既に確定ラベルが付与されている場合には(ステップS94:YES)、検出したノードにラベルを付与しない態様であってもよい。
また、上記実施形態では、マルチラベルダイクストラ法を用いた双方向探索によって、出発地点STから到着地点GLに至る経路が探索されたが、必ずしも双方向探索によって、経路探索が行なわれなくてもよい。単純に、順探索のみのマルチラベルダイクストラ法によって、経路探索が行なわれてもよい。
C2.変形例2:
上記実施形態では、利用者がカーナビ200の操作部206を操作することにより、到着地点GLを設定したが、到着地点GLおよび各種設定の入力手段はこれに限られず、種々変形可能である。例えば、カーナビ200が利用者の音声入力を受け付ける音声入力部を備えており、音声によって到着地点GLの設定等、各種設定が行なわれてもよい。
また、上記実施形態では、図1に示すようにサーバ100が情報記憶部110および経路探索部120を備える態様としたが、情報記憶部110および経路探索部120を備える装置はこの態様に限られず、種々変形可能である。例えば、情報記憶部110と経路探索部120とは異なるサーバに備えられていてもよいし、経路探索部120がカーナビ200に搭載されていてもよい。また、経路探索部120におけるラベル付与部122と、第1経路設定部121と、第2経路設定部125とがそれぞれ異なるサーバ100に備えられていてもよい。また、地図情報DB114とノード別経路情報DB115とが同じデータベースに記憶されていてもよい。
本発明は、上記実施形態や変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、変形例中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行なうことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。