次に、本発明の実施形態を以下の順序で説明する。
A.第1実施形態:
A−1.経路探索システムの構成:
A−2.エリア間リンクの制限データ:
A−3.制限データの作成:
A−4.経路探索処理:
B.第2実施形態:
C.第3実施形態:
D.変形例:
A.第1実施形態:
A−1.経路探索システムの構成:
図1は、本発明の第1実施形態における経路探索システム10の概略構成を示す説明図である。本実施形態の経路探索システム10は、サーバ100と携帯端末装置としての携帯電話機200とを備えている。図1には、携帯電話機200を1台のみ示しているが、経路探索システム10には、複数の携帯電話機200および携帯ゲーム機、PND(Personal Navigation Device)、PDA(Personal Digital Assistant)といった様々な携帯端末装置が含まれ得る。
携帯電話機200は、主制御部210と、GPSユニット201と、表示パネル202と、音声出力部203と、無線通信回路205と、操作部206と、通話制御部220と、を備えている。
主制御部210は、携帯電話機200の各部を制御する。主制御部210は、CPU211と、RAM212と、ROM213とを備えている。CPU211は、ROM213に記憶されたプログラムをRAM212にロードして実行することで、後述する種々の処理を実行するために機能する。
GPSユニット201は、GPS(Global Positioning System/全地球測位システム)から人工衛星の位置を示す電波を受信する。主制御部210は、GPSユニット201が受信した人工衛星の位置を用いて、携帯電話機200の現在位置(緯度、経度)を特定し、一定時間ごとに特定した携帯電話機200の現在位置を示す位置情報を生成する。
表示パネル202は、液晶ディスプレイと液晶ディスプレイを駆動する駆動回路とを備えている。表示パネル202としては、液晶ディスプレイに限らず、有機ELディスプレイなど、種々の表示デバイスを採用できる。主制御部210は、表示パネル202を制御することで、例えば、地図画像や推奨経路、現在位置などを表示する。音声出力部203は、音声を出力するためのスピーカーや、スピーカーを駆動する駆動回路などから構成される。
無線通信回路205は、基地局BSとの間でデータ通信もしくは音声通信を無線によって行なう。主制御部210は、無線通信回路205を制御することで、基地局BSを介して(より詳細には、送受信アンテナ、基地局BS、交換局を介して)、インターネットINT上のサーバ100と通信する。
操作部206は、テンキー206aやカーソルキー206bやタッチパネルなどから構成される入力デバイスである。操作部206は、利用者による目的地の設定入力等を受け付ける。通話制御部220は、音声通話のための着信や呼出、音声信号と電気信号の変換などを行なう。
サーバ100は、インターネットINTを介して携帯電話機200との通信を行なう通信部102と、情報記憶部110と、経路探索部120と、を備えている。情報記憶部110は、CPUやRAM、ROMにより構成された制御部を有し、情報を記憶する記憶装置118と、を備えている。記憶装置118は、例えば、ハードディスク装置により構成されている。記憶装置118は、地図情報データベース(DB)114と、エリア情報データベース(DB)115と、制限情報データベース(DB)116と、を含んでいる。
地図情報DB114は、地図上のネットワークを構成するリンク情報およびノード情報であるネットワーク情報と、画像データとしての地図画像データと、を記憶している。エリア情報DB115は、地図情報DB114に記憶されたネットワーク情報内の2つ以上のノードと1つ以上のリンクとから構成される2つ以上のエリアを特定するエリアデータを記憶している。なお、エリアデータによって特定されるエリアとしては、例えば、観光地や商店街といったエリアがある。エリアデータの詳細については、後述する。制限情報DB116は、2つのエリアを結ぶエリア間リンクを、一部のリンクに制限する制限データを記憶している。本実施形態では、制限データは、特定された2つのエリアの組み合わせのそれぞれについて、エリア間を移動するために必要なコストと、移動コストの算出元となるリンクと、を対応付けたものである。なお、以下では、エリア間を移動するために必要なコストを「経路コスト」とも呼び、2つのエリア間の移動に要するコストを「移動コスト」と呼ぶ。なお、移動コストの詳細については後述する。制限データの詳細については、後述する。サーバ100は、請求項における経路探索装置に相当し、情報記憶部110は、請求項におけるデータ記憶部に相当する。また、地図情報DB114に記憶されたネットワーク情報は、請求項におけるネットワークデータに相当する。
経路探索部120は、CPUやRAM、ROMにより構成された制御部を有する。経路探索部120は、ユーザによって携帯電話機200に目的地と目的地に到着する到着時刻とが設定されると、到着時刻までに目的地に到着できる範囲で、携帯電話機200の現在位置と設定された目的地とを結ぶ経路を探索する。経路探索部120は、エリアも含めて、現在位置から目的地までの経路を探索する。経路探索の詳細については、後述する。
経路探索部120は、最適経路探索部123と、類似経路探索部124と、を備えている。最適経路探索部123は、地図情報DB114に記憶してあるネットワーク情報と受信した位置情報および目的地情報に基づいて、各リンクのリンクコストを足し合わせて、現在位置と目的地とを結ぶ経路の経路コストが最小である最適経路を探索する。類似経路探索部124は、ネットワーク情報と最適経路の経路コストとに基づいて、設定された許容コストを最適経路の経路コストに加算した経路コスト以下となる現在位置と目的地とを結ぶ類似経路を探索する。なお、許容コストとは、目的地に到着する到着時刻やユーザによって設定されるコストであり、いわゆる、現在位置から目的地まで移動するために許容される時間を表すコストである。経路探索部120は、通信部102を介して、携帯電話機200に現在位置と目的地とを結ぶ最適経路と類似経路と示す経路情報を送信する。最適経路と類似経路との探索の詳細については、後述する。
A−2.エリア間リンクの制限データ:
図2は、ネットワークを構成するリンク情報およびノード情報の一例を示す説明図である。図2には、地図情報DB114に記憶されたリンク情報とノード情報との一部が示されている。図2では、ノードのそれぞれが黒丸で示され、2つのノードを接続するリンクのそれぞれが直線で示されている。また、リンクのそれぞれには、リンクを通過するために要するリンクコストが四角で囲まれた数字で示されている。また、図2には、エリアとして、太線の四角で囲われた第1エリアA1と第2エリアA2とが示されている。なお、図2では、第1エリアA1および第2エリアA2の中に含まれる複数のノードおよび複数のリンクについては、図示を省略している。また、第1エリアA1や第2エリアA2といったエリアに含まれると共にリンクを介して同じエリアに含まれないノードと接続しているノードを、境界ノードとして特定する。なお、図2では、境界ノードのそれぞれは、黒丸のノードをさらに円で囲って示されている。例えば、第1エリアA1の境界ノードとしては、境界ノードN1から境界ノードN5までの5つのノードがあり、第2エリアA2の境界ノードとしては、境界ノードN6から境界ノードN13までの8つのノードがある。
エリア間リンクの制限データは、各エリアに含まれる境界ノードのそれぞれと、他のエリアに含まれる境界ノードのそれぞれと、を結ぶ最適経路探索および類似経路探索することで作成される。なお、制限データの作成方法の詳細については、後述する。
図3は、2つのエリア間に作成される制限データ300を示す説明図である。図3に示すように、制限データ300は、エリア情報と、移動コストと、リンクIDと、の項目別の情報を有している。エリア情報は、2つのエリアの組み合わせの情報である。リンクIDは、前記2エリア間の移動コストの算出元となるリンクの一覧である。
図3には、エリア間リンクの制限データが閾値コスト=20で作成された場合における、2つのエリアの組み合わせと、2つのエリアのエリア間移動コストと、移動コストの算出元となるリンクのリンクIDと、の組み合わせが示されている。具体的な制限データの作成方法については、後述する。なお、図3では、第1エリアA1および第2エリアA2のエリアの組み合わせについてのみ、リンクIDが記載され、その他のエリアの組み合わせのリンクIDについては記載が省略されている。
この制限データ300の活用方法として、例えば、第1エリアA1と第2エリアA2とを結ぶエリア間の移動コストを16以下に抑えたい場合、このデータを使えば第1エリアA1と第2エリアA2とのエリア間経路を探索するときに用いられる探索対象リンクを、移動コストが16以下である10と15とに対応付けられたリンクに絞り込むことができる。すなわち、この場合のエリア間経路の探索では、図3に示すように、10の移動コストに対応付けられたリンクL11、リンクL12、リンクL14、リンクL15、および、15の移動コストに対応付けられたリンクL13、リンクL17、リンクL20、リンクL21の8つのリンクが用いられることになる。一方、設定された移動コストの16よりも大きい18と20の移動コストに対応付けられたリンクは、エリア間経路が探索されるときのリンクである探索対象リンクにはならない。図3に存在しないリンクはエリア間の移動コストが20以内に収まらないリンクなので、前者と同様に探索対象リンクにしない。このように、エリア間経路を探索するときに、制限データ300を用いて探索対象リンクを制限することで、エリア間経路やエリア間経路を含む現在位置と目的地とを結ぶ経路の探索が迅速に行なわれる。
A−3.制限データの作成:
図4は、制限データ作成処理の流れを示す説明図である。本実施形態では、制限データ作成処理は、経路探索システム10に含まれていないコンピュータによって行なう。制限データ作成処理では、初めに、制限データとして保持する対象を絞り込むため、2つのエリア間の経路コストの上限である閾値コストを設定する(ステップS10)。本実施形態では、閾値コストを20に設定する。次に、エリア間リンクの制限データ300を作成する対象となる2つのエリアを選択する(ステップS12)。ここでは2つのエリアとして、図2に示す第1エリアA1と第2エリアA2とを選択する。次に、選択した第1エリアA1と第2エリアA2に対し、閾値コスト以下の経路コストとなる後述するエリア間の最適経路群の探索を行なう(ステップS20)。次に、エリア間の最適経路群の探索によって探索された1つ以上の最適経路のそれぞれに対して、閾値コスト以下の経路コストとなる後述するエリア間の類似経路群の探索の処理を行なう(ステップS60)。エリア間の最適経路群の探索および類似経路群の探索によって、選択された第1エリアA1と第2エリアA2とを結ぶ閾値コスト以下の経路の全てが抽出されると、抽出された経路を構成するリンクと経路コストとを対応付けた制限データ300を作成する(ステップS14)。
次に、選択された第1エリアA1と第2エリアA2との組み合わせ以外の全ての2つのエリアの組み合わせが選択されたか否かを判定する(ステップS16)。全ての2つのエリアの組み合わせが選択されていないと判定された場合には(ステップS16:NO)、選択されていない2つのエリアの他の組み合わせを選択して(ステップS12)、ステップS20以降の処理を行なう。ステップS16の処理において、全ての2つのエリアの組み合わせが選択されたと判定された場合には(ステップS16:YES)、制限データ作成処理を終了する。なお、ある2つのエリアにおいて、閾値コスト20以下の経路がない場合には、制限データ300は作成されない。
図5および図6は、エリア間の最適経路群の探索処理の流れを示す説明図である。エリア間の最適経路群の探索処理は、複数のノードに経路コストの情報を含む確定ラベルや負けラベルを付与し、付与したラベルに基づいて、エリア間の最適経路を見つける処理である。第1エリアA1と第2エリアA2とを結ぶエリア間の最適経路群は、一方のエリアである第1エリアA1の境界ノードのそれぞれと、もう一方エリアであるの第2エリアA2の境界ノードのそれぞれと、を結び、かつ、経路コストが閾値コストの20を超えない範囲で探索される。なお、エリア間の最適経路群の探索処理における最適経路とは、例えば、第1エリアA1の境界ノードを起点、第2エリアA2の境界ノードを終点として経路を探索する場合、各終点へ最小コストで到着する経路のことをいう。なお、後述するエリア間の類似経路群の探索処理では、最適経路に基づいて、最適経路とは異なると共に閾値コスト以下の経路コストである類似経路が探索される。
エリア間の最適経路群の探索処理では、初めに、2つのエリアの一方を出発エリアとし、全境界ノードに候補ラベルを付与する(図5のステップS21)。ここでは、第1エリアA1を出発エリアとする。よって、第1エリアA1の境界ノードN1から境界ノードN5までの各ノードに候補ラベルが付与される。候補ラベルは、経路コストの情報を有する。この場合、各ノードに付与される候補ラベルは、リンクを通過していないため、経路コスト0の情報を有している。
全境界ノードに候補ラベルが付与されると、ネットワーク上のいずれかのノードに候補ラベルが存在するか否かの判定が行なわれる(図5のステップS23)。図7は、エリア間の最適経路群の探索処理の途中経過を示す説明図である。図7に示すように、境界ノードN1から境界ノードN5までの各ノードに候補ラベルがあるため(ステップS23:YES)、次に、全ての候補ラベルの内、経路コストが最小である候補ラベルを確定ラベルに変更する(ステップS25)。図7に示すように、境界ノードN1から境界ノードN5までの各ノードの経路コストは、0であると共に最小の経路コストであるため、境界ノードN1から境界ノードN5までの各ノードに付与された候補ラベルが、確定ラベルに変更される。なお、図7に示された凡例では、新しいラベル、候補ラベル、確定ラベルの四角の中の数値は「0」と示されているが、この数値自体は、一例であるため、付与されたノードの経路コストの値によって変更される。
次に、変更された確定ラベルの経路コストが閾値コストの20よりも大きいか否かを判定する(ステップS27)。境界ノードN1から境界ノードN5までの各ノードに付与された確定ラベルの経路コストは、0であり、閾値コストよりも小さいため(ステップS27:NO)、次に、確定ラベルに変更されたノードが出発エリアとは異なるもう一方のエリアである目的エリアの境界ノードであるか否かを判定する(ステップS29)。ここでは、第1エリアA1を出発エリアとしているので、第2エリアA2が目的エリアとなり、確定ラベルに変更されたノードが第2エリアA2の境界ノードであるか否かが判定される。また、確定ラベルに変更されたノードが複数ある場合、いずれか1つのノードにおいて、目的エリアの境界ノードではないという判定がされれば、隣接ノードに新しいラベルを付与するステップに進む(ステップS29:NO)。図7に示すように、確定ラベルに変更された境界ノードN1から境界ノードN5までの各ノードは全て、第2エリアA2の境界ノードとは異なるため(ステップS29:NO)、確定ラベルに変更されたノードに接続するリンクを介して通行可能な隣接ノードの全てに新しいラベルが付与される(ステップS31)。例えば、境界ノードN1の確定ラベルに基づいて、境界ノードN1にリンクL6を介して接続するノードn11に新しいラベルが付与される。この場合に、ノードn11に付与された新しいラベルの経路コストは、通過したリンクL6のリンクコストの5である。同じように、境界ノードN2から境界ノードN5までの各ノードの隣接ノードに新しいラベルが付与される。確定ラベルに変更されたノードが複数あり、目的エリアの境界ノードであると判定されたノードがある場合、そのノードからは新しいラベルが付与されない(ステップS31)。なお、ステップS31でいう通行可能な隣接ノードとは、逆走となる隣接ノードを除いたノードのことをいう。例えば、図7に示すように、ノードn11に付与された候補ラベルが確定ラベルに変更された場合に、当該確定ラベルに基づいて、再度、リンクL6を介して境界ノードN1に新しいラベルを付与することは禁止する。また、同一エリア内のノードも通行不可能なノードとみなし、新しいラベルを付与することは禁止する。以降、図7の凡例に示すように、第1エリアA1における起点となる境界ノードに応じて、リンクに重ねて示す矢印の線種や線の太さを変えて示す。
次に、新しいラベルが付与された隣接ノードの内の1つを着目ノードとして選択する(図6のステップS33)。例えば、図7において、5つの隣接ノードの内のノードn11を着目ノードとして選択する。なお、新しいラベルが付与された隣接ノードが1つの場合には、当該隣接ノードが着目ノードとして選択される。次に、選択された着目ノードに確定ラベルが付与されているか否かを判定する(ステップS37)。図7では、着目ノードであるノードn11に確定ラベルが付与されていないため(ステップS37:NO)、続いて、着目ノードに付与された新しいラベルの内から、1つの新しいラベルを処理対象ラベルとして選択する(ステップS35)。なお、ノードn11に付与された新しいラベルは1つであるため、当該新しいラベルが処理対象ラベルとして選択される。次に、着目ノードのノードn11に候補ラベルが付与されているか否かを判定する(ステップS39)。ノードn11には候補ラベルが付与されていないため(ステップS39:NO)、着目ノードであるノードn11に付与された新しいラベルがノードn11の候補ラベルとして設定される(ステップS45)。
次に、着目ノードであるノードn11に、選択されていない新しいラベルがあるか否かの判定が行なわれる(図6のステップS49)。ノードn11には、選択されていない新しいラベルがないため(ステップS49:NO)、続いて、新しいラベルが付与された隣接ノードの内、着目ノードとして選択されていない隣接ノードがあるか否かの判定が行なわれる(ステップS51)。図7では、境界ノードN2から境界ノードN5までの各ノードについても、隣接するノードに新しいラベルが付与されており、これらのノードは着目ノードとして選択されていないため(ステップS51:YES)、次に、境界ノードN2に隣接すると共に新しいラベルが付与されたノードn21が着目ノードとして選択される(ステップS33)。以降、前記と同様の処理が行なわれる。
ここで、境界ノードN1から境界ノードN5までの各ノードの隣接ノードが着目ノードとして選択されて、新しいラベルがすべて候補ラベルに変更された状態を図7に示す。このとき、選択されていない隣接ノードがネットワーク上にないため(ステップS51:NO)、図5のステップS23へ進む。
図8は、エリア間の最適経路群の探索処理の途中経過を示す説明図である。図8には、図7に示した状態から、さらに図5および図6の探索処理が行い、経路コスト10の候補ラベルを確定ラベルに変更し、目的エリアの境界ノードでないノードn42から隣接ノードへ新しいラベルを付与する直前の状態(図5のステップS31)が示されている。このとき、第1エリアA1の境界ノードN2と第2エリアA2の境界ノードN9とを結ぶ経路と、第1エリアA1の境界ノードN3と第2エリアA2の境界ノードN10とを結ぶ経路と、が探索された状態である。また、図8には、各ノードに付与された確定ラベルの経路コストの値と後述する負けラベルの経路コストの値とが示されている。確定ラベルの経路コストの値は、四角で囲われて示されており、負けラベルの経路コストの値は、四角で囲われると共に四角の内部が斜線のハッチングによって示されている。また、境界ノード(N9、N10)に付与された確定ラベルの経路コストの値は、目的地到達ラベルとして、四角で囲われると共にドットのハッチングによって示されている。
ここで、図7から図8に至るまでの処理経過を詳細に説明する。図7は、ノードn11、ノードn21、ノードn31、ノードn41、ノードn51に候補ラベルが付与された状態である。ネットワーク上に候補ラベルがあり(図5のステップS23)、いずれのノードに付与された候補ラベルの経路コストも、ネットワーク内で最小の5であるため、これらの5つのノードに付与された候補ラベルが確定ラベルに変更される(ステップS25)。また、変更された確定ラベルの経路コストは、閾値コストの20よりも小さく(ステップS27:NO)、変更された確定ラベルが付与されている5つのノードはいずれも目的エリアの境界ノードでないため(ステップS29:NO)、5つのノードのそれぞれの隣接ノードに新しいラベルが付与される(ステップS31)。図8において、ノードn11の確定ラベルに基づいてノードn12に新しいラベルが付与される。また、同じように、ノードn21の確定ラベルに基づいて、ノードn12と境界ノードN9とノードn31の3つのノードに新しいラベルが付与される。同様に、ノードn31、ノードn41、ノードn51の確定ラベルに基づいて、それぞれの隣接ノードに新しいラベルが付与される。
次に、新しいラベルを付与した隣接ノードの中から着目ノードを選択する(図6のステップS33)。例えば、図8において、新しいラベルが付与されたノードn12を着目ノードとして選択する。ここで、ノードn12には、ノードn11の確定ラベルに基づく経路コスト13の新しいラベルと、ノードn21の確定ラベルに基づく経路コスト11の新しいラベルと、の2つの新しいラベルが付与されている。ノードn12には確定ラベルが付与されていないため(ステップS37:NO)、新しいラベルから処理対象ラベルを選択する(ステップS35)。まず、ノードn11に基づく新しいラベルを処理対象ラベルとして選択する。ノードn12には候補ラベルも付与されていないため(ステップS39:NO)、ノードn11に基づく新しいラベルをノードn12の候補ラベルに変更する(ステップS45)。また、ノードn12には選択されていない新しいラベルが残っているため(ステップS49:YES)、次に、ノードn21の確定ラベルに基づく新しいラベルを処理対象ラベルとして選択する(ステップS35)。
続いて、着目ノードであるノードn12には、ノードn11に基づく候補ラベルがあるため(ステップS39:YES)、候補ラベルの経路コストが選択された新しいラベルの経路コストよりも大きいか否かが判定される(ステップS41)。候補ラベルの経路コストは13であり、新しいラベルの経路コストである11よりも大きいため(ステップS41:YES)、候補ラベルを負けラベルに変更する(ステップS43)。その後、新しいラベルが候補ラベルに変更される(ステップS45)。以上で、着目ノードであるノードn12に付与された新しいラベルに対する処理は終了である(ステップS49:NO)。よって、次に、新しいラベルを付与した隣接ノードの中から選択されていないノードがあるか否かを判定する(ステップS51)。これまでに選択された隣接ノードはノードn12のみで、図8に示すように、ネットワーク上には未選択の隣接ノードが残っているため(ステップS51:YES)、複数の未選択の隣接ノードの中から、次の着目ノードとして、境界ノードN9を選択する(ステップS33)。同様に処理すると、ノードn21の確定ラベルに基づいて境界ノードN9に付与された新しいラベルは、候補ラベルとして設定される。ノードn31に付与された新しいラベルは、着目ノードであるノードn31に既に確定ラベルが存在するため(ステップS37:YES)、すべて負けラベルとして設定される(ステップS47)。その後、ノードn21、境界ノードN10、ノードn41、ノードn42、ノードn52に付与された新しいラベルのそれぞれについても処理が行なわれ、それぞれの新しいラベルは候補ラベルまたは負けラベルに変更される。
経路コスト5で確定ラベルに変更した複数のノードに基づくラベル変更処理が終了すると(ステップS51:NO)、次に処理すべき候補ラベルが残っているか否かを判定する(図5のステップS23)。このとき、ネットワーク上には経路コスト10、11、13の候補ラベルがあるため(ステップS23:YES)、経路コストが最小の10である境界ノードN9、境界ノードN10、ノードn42に付与された候補ラベルを確定ラベルに変更する(ステップS25)。確定ラベルの経路コストは、閾値コストの20よりも小さいので(ステップS27:NO)、確定ラベルに変更されたノードが目的エリアの境界ノードであるか否かが判定される(ステップS29)。ここで、境界ノードN9および境界ノードN10は目的エリアの境界ノードであるため、隣接ノードへの新しいラベルの付与は行なわれない(ステップS31)。一方、ノードn42は目的エリアの境界ノードでないため、ノードn42の隣接ノードである境界ノードN11とノードn43とノードn44に新しいラベルが付与される。
図9は、エリア間の最適経路群の探索処理において探索された経路の一例を示す説明図である。図9には、図5のステップS27において、確定ラベルの経路コストが閾値コストの20を超えるまで、経路探索された結果が示されている。図9において、経路コストが20を超えたラベルの経路コストの値は、閾値超ラベルとして、四角で囲われると共に横線のハッチングによって示されている。なお、他のラベルの経路コストの値等は、図7、図8と同じように示されている。
図10は、エリア間の最適経路群の探索処理によって抽出された最適経路の一覧を示す説明図である。図10には、第1エリアA1と第2エリアA2とを結び、閾値コストである20以下の経路コストとなる最適経路のそれぞれが、経路コストと通過するリンクIDとについて示されている。第1エリアA1と第2エリアA2とを結ぶ最適経路群に含まれる最適経路は、境界ノードN2と境界ノードN9とを結ぶ最適経路R1と、境界ノードN3と境界ノードN10とを結ぶ最適経路R2と、境界ノードN4と境界ノードN11とを結ぶ最適経路R3と、境界ノードN2と境界ノードN6とを結ぶ最適経路R4と、境界ノードN4と境界ノードN12とを結ぶ最適経路R5と、である。
図9および図10に示すように、第1エリアA1と第2エリアA2とを結ぶ最適経路の1つである最適経路R1は、リンクL11とノードn21(ノードは図10では省略。以下、同じ)とリンクL12とを通過する、経路コストが10の経路である。最適経路R2は、リンクL14とノードn31とリンクL15とを通過する、経路コストが10の経路である。最適経路R3は、リンクL20とノードn41とリンクL21とノードn42とリンクL17とを通過する、経路コストが15の経路である。最適経路R4は、リンクL11とノードn21とリンクL7とノードn12とリンクL3とノードn13とリンクL8とを通過する、経路コストが18の経路である。最適経路R5は、リンクL20とノードn41とリンクL21とノードn42とリンクL22とノードn43とリンクL18とを通過する、経路コストが18の経路である。
図4に示すように、エリア間の最適経路群の探索処理が行なわれると(ステップS20)、探索された最適経路のそれぞれに基づいて、エリア間の類似経路群の探索処理が行なわれる(ステップS60)。図11は、エリア間の類似経路群の探索処理の流れを示す説明図である。エリア間の類似経路群の探索処理では、経路コストが閾値コストの20を超えない範囲で類似経路を探索する。まず初めに、エリア間の最適経路群の内の1つの最適経路である最適経路R1(図9および図10)を選択する(図11のステップS61)。次に、閾値コストと最適経路R1の経路コストとの差から、許容コストを求める(ステップS62)。この場合、許容コストは10となる。そして、選択された最適経路に含まれるノードである最適ノードの中に、負けラベルが付与されているノードがあるか否かの判定が行なわれる(ステップS63)。負けラベルが付与されているノードがないと判定された場合には(ステップS63:NO)、後述するステップS73の処理が行なわれる。
図9に示すように、最適経路R1は負けラベルが付与されているノードを含むため(図11のステップS63:YES)、負けラベルが付与されているノードとしてノードn21を選択する(ステップS65)。次に、選択された最適ノードにおいて、負けラベルと確定ラベルとの経路コスト差が許容コスト以下か否かが判定される(ステップS67)。経路コスト差が許容コスト差より大きいと判定された場合には(ステップS67:NO)、後述するステップS71の処理が行なわれる。
ノードn21における負けラベルと確定ラベルとの経路コスト差は、負けラベルの経路コストの10から確定ラベルの経路コストの5を差し引いた5であり、ステップS62で求めた許容コスト10以下であるため(ステップS67:YES)、ノードn21の負けラベルに対応する経路と、ノードn21から境界ノードN9までの経路と、を合わせた経路が類似経路として抽出される(ステップS69)。すなわち、図9に示すように、境界ノードN3、リンクL14、ノードn31、リンクL13、ノードn21、リンクL12、境界ノードN9を通過する経路が類似経路として抽出される。次に、最適経路R1において負けラベルが付与されているノードのうち、選択されていないノードがあるか否かが判定される(図11のステップS71)。選択されていないノードがある場合には(ステップS71:YES)、該当するノードを選択し、ステップS67以降の処理を行なう。
ステップS71の処理において、最適経路R1には、ノードn21以外に負けラベルが付与されているノードがないため(ステップS71:NO)、次に、図4のステップS20で抽出した最適経路群に、最適経路R1以外の最適経路があるか否かが判定される(ステップS73)。図9に示すように、最適経路R2等の最適経路があるため(ステップS73:YES)、次に、最適経路R2が選択されて(ステップS61)、ステップS62以降の処理が行なわれる。ステップS73の処理において、全ての最適経路に対して、類似経路の探索処理が行なわれたと判定されると(ステップS73:NO)、類似経路群の探索処理が終了する。なお、本実施形態では、図11では省略したが、類似経路群の探索処理によって求められた類似経路を、準最適経路として設定し、最適経路に含まれないと共に準最適経路に含まれるノードに付与された負けラベルについて、更なる類似経路が探索される。
図12は、エリア間の類似経路群の探索処理によって抽出された類似経路の一覧を示す説明図である。図12には、第1エリアA1と第2エリアA2とを結び、閾値コストである20以下の経路コストとなる類似経路のそれぞれが、経路コストと通過するリンクIDと抽出トリガとなる負けラベルが付与されたノードとについて示されている。第1エリアA1と第2エリアA2とを結ぶ類似経路群は、境界ノードN2と境界ノードN10とを結ぶ類似経路R11と、境界ノードN3と境界ノードN9とを結ぶ類似経路R12と、境界ノードN4と境界ノードN10とを結ぶ類似経路R13と、境界ノードN1と境界ノードN6とを結ぶ類似経路R14と、である。
図9および図12に示すように、類似経路の1つである類似経路R11は、リンクL14とノードn31とリンクL13とノードn21とリンクL12とを通過する、経路コストが15の経路である。類似経路R12は、リンクL11とノードn21とリンクL13とノードn31とリンクL15とを通過する、経路コストが15の経路である。類似経路R13は、リンクL20とノードn41とリンクL16とノードn31とリンクL15とを通過する、経路コストが18の経路である。類似経路R14は、リンクL6とノードn11とリンクL2とノードn12とリンクL3とノードn13とリンクL8とを通過する、経路コストが20の経路である。
制限データ作成処理は、エリア間の最適経路群と類似経路群とを構成するリンクのそれぞれを経路コストに応じて分類することで、図3に示す制限データ300を作成する。図10に示すように、経路コストが最小の10となる経路を構成するリンクは、リンクL11、リンクL12、リンクL14、リンクL15である。そのため、制限データ300では、第1エリアA1と第2エリアA2の移動に要するコストが10のリンクとして、当該4つのリンクを保持する。次に、図10および図12に示すように、これら4つのリンクを除いたリンクの内で、次に経路コストが小さい15の経路を構成するリンクを、制限データ300における移動コストが15のリンクとして保持する。図3に示すように、リンクL13、リンクL17、リンクL20、リンクL21が保持される。同じように、経路コストが18と20との場合に対応するリンクが保持される。以上のように、制限データ300として、移動コストとリンクIDを対応付けたデータを作成する。
A−4.経路探索処理:
図13は、制限データ300を用いた経路探索処理の流れを示す説明図である。経路探索処理は、例えば、歩行者であるユーザによって携帯電話機200に目的地と目的地に到着したい目的地到着時刻とが入力されると、現在位置から目的地までのネットワークにおいて設定された種々のエリアも通過するような経路探索を行なう処理である。
経路探索処理では、初めに、ユーザによって携帯電話機200の操作部206が操作されることで、主制御部210は、目的地と目的地到着時刻とを設定する。また、主制御部210は、GPSユニット201を用いて、携帯電話機200を携帯しているユーザの現在位置を特定する。すなわち、主制御部210は、出発地と、目的地と、現在時刻から目的地到着時刻までの差分である持ち時間と、を設定する(ステップS100)。次に、主制御部210は、エリア内のリンクやノードを通過するために費やす時間と、エリア外のリンクやノードを通過するために費やすことを許容する時間の比率を設定する。比率が設定されると、持ち時間に基づき、エリア外通過コストの閾値が算出される(ステップS102)。
次に、インターネットINTを介して、携帯電話機200から持ち時間等の情報を取得した経路探索部120は、出発地と目的地とのそれぞれにおいて、最も近いエリアである最寄エリアを探索する(ステップS110)。なお、最寄エリアの探索処理の詳細については、後述するが、出発地の最寄エリアと目的地の最寄エリアとが同一の場合、異なる場合、さらには設定されない場合もある。次に、経路探索部120は、最寄エリアの探索処理によって設定された最寄エリアがあるか否かを判定する(ステップS104)。出発地と目的地のいずれか一方に最寄エリアがないと判定された場合には(ステップS104:NO)、経路探索部120は、エリアを経由する経路探索を行なわずに、ダイクストラ法等による出発地から目的地までの通常の経路探索を行なう(ステップS116)。
ステップS104の処理において、最寄エリアがあると判定された場合には(ステップS104:YES)、経路探索部120は、出発地と目的地とを結ぶ経路において、経由可能なエリアを特定したエリア遷移情報を抽出する(ステップS130)。エリア遷移情報の抽出処理の詳細については、後述する。次に、経路探索部120は、エリア遷移情報の抽出処理によって抽出されたエリア遷移情報があるか否かを判定する(ステップS106)。エリア遷移情報がないと判定された場合には(ステップS106:NO)、経路探索部120は、通常の経路探索を行なう(ステップS116)。
ステップS106の処理において、エリア遷移情報があると判定された場合には(ステップS106:YES)、次に、経路探索部120は、エリア遷移情報と制限情報DB116に記憶された制限データ300に基づいて、経路探索に用いる探索対象リンクの抽出を行なう(ステップS150)。探索対象リンクの抽出処理の詳細については、後述する。次に、探索対象として抽出されたリンク、および、抽出されたリンクを構成するノードを用いて、出発地と目的地を最小経路コストで通過可能な最適経路を探索する(ステップS108)。最適経路の探索は、経路探索部120の最適経路探索部123が、図5と図6に示す流れにより、各ノードに確定ラベルと負けラベルとを付与することで、行われる。ただし、このとき、図5のステップS21は「出発地に候補ラベルを付与する」に変更され、ステップS27およびステップS29は無視される。最適経路が探索されると、経路探索部120の類似経路探索部124は、最適経路と、各ノードに付与された確定ラベルおよび負けラベルと、の経路コストを用いて、最適経路に基づく1つ以上の類似経路である類似経路群を探索する(ステップS112)。類似経路の探索処理の流れは、図11に示す流れと同じである。次に、経路探索部120は、持ち時間の範囲で出発地と目的地とを結ぶと共に1つ以上のエリアを経由する経路を決定できたか否かを判定する(ステップS114)。エリアを経由する経路が決定できたと判定された場合には(ステップS114:YES)、経路探索部120は、当該経路を探索した経路として携帯電話機200を用いてユーザに提示し、経路探索処理を終了する。ステップS114の処理において、エリアを経由する経路が決定できなかったと判定された場合には(ステップS114:NO)、通常の経路探索を行なって(ステップS116)、探索された経路をユーザに提示し、経路探索処理を終了する。
図14は、最寄エリア探索処理の流れを示す説明図である。最寄エリア検索処理は、設定された出発地と目的地とのそれぞれに最も近いエリアを探索する処理である。最寄エリア探索処理では、初めに、経路探索部120は、出発地または目的地のノードがエリア外のノードか否かを判定する(ステップS111)。
図15は、経路探索処理において設定される出発地と目的地、および、ネットワークを示す説明図である。図15は、図2に対して、出発地Sおよび目的地Gと、第1エリアA1および第2エリアA2のそれぞれの内部のノードおよびリンクと、が追加されている点が異なり、他の点については同じである。本実施形態では、図15に示すように、出発地Sおよび目的地Gがエリア外のノードであるため(図14のステップS111:YES)、経路探索部120は、ダイクストラ法に従い、出発地Sと目的地Gのそれぞれの隣接ノードに新しいラベルを付与し(ステップS113)、隣接ノードが境界ノードであるか否かを判定する(ステップS115)。図15に示すように、出発地Sおよび目的地Gの隣接ノードは、いずれも境界ノードでないため(ステップS115:NO)、次に、経路探索部120は、付与された新しいラベルの経路コストがエリア外通過コストの閾値以下であるか否かを判定する(ステップS117)。本実施形態では、持ち時間を120分、エリア内に費やす時間とエリア外に費やすことを許容する時間の比率を2:1に設定する。このとき、携帯電話機200の主制御部210は、エリア外通過コストの閾値として、持ち時間の3分の1である40を設定する。なお、本実施形態では、サーバ100の記憶装置118は、リンクを通過する時間(分)をリンクコストとして特定できるネットワーク情報を記憶している。ステップS117の処理において、新しいラベルの経路コストは閾値の40以下であるため(ステップS117:YES)、経路探索部120は、隣接ノードを着目ノードとし、ステップS113以降の処理を実行する。
以上のように、経路探索部120がダイクストラ法に従い、ラベルの付与を続けると、図15に示すように、出発地Sからは、第1エリアA1の境界ノードN1に到達し、目的地Gからは、第2エリアA2の境界ノードN13に到達する(図14のステップS115:YES)。したがって、経路探索部120は、境界ノードN1を含む第1エリアA1を出発地Sの最寄エリアとして設定し、境界ノードN13を含む第2エリアA2を目的地Gの最寄エリアとして設定する(ステップS121)。経路探索部120は、出発地Sの最寄エリアを設定すると、出発地Sから境界ノードN1までの経路としてリンクL1とリンクL6、経路コストとしてリンクL1の2とリンクL6の5とを足した7を記憶する。また、経路探索部120は、目的地Gの最寄エリアを設定すると、目的地Gから境界ノードN13までの経路としてリンクL30、リンクL27、リンクL19、経路コストとしてリンクL30の5とリンクL27の5とリンクL19の5とを足した15を記憶し(ステップS123)、最寄エリア探索処理を終了する。
なお、最寄エリア探索処理のステップS111において、出発地Sや目的地Gのノードがエリアに含まれるノードである場合には(ステップS111:NO)、経路探索部120は、当該ノードを含むエリアを最寄エリアとして設定し(ステップS125)、いずれのリンクも通過していないため、経路はなし、経路コストは0として記憶する(ステップS123)。また、ステップS117の処理において、新しいラベルの経路コストが閾値の40を超えてしまった場合には(ステップS117:NO)、経路探索部120は、最寄エリアを設定せずに(ステップS119)、最寄エリア探索処理を終了する。
このようにして、出発地Sと目的地Gそれぞれの最寄エリアが設定されると(ステップS104:YES)、次に、経路探索部120は、エリア遷移情報を抽出する(ステップS130)。
図16は、エリア遷移情報の抽出処理の流れを示す説明図である。エリア遷移情報の抽出処理は、出発地Sと目的地Gとを結ぶ経路において、エリア外通過コストの閾値以下で経由可能なエリアの組み合わせおよび経由エリア間に作成された制限データ300を特定し、抽出する処理である。
エリア遷移情報の抽出処理では、初めに、経路探索部120は、出発地Sまたは目的地Gの最寄エリアに関する制限データ300を抽出する(ステップS131)。本実施形態では、経路探索部120は、出発地Sの最寄エリアである第1エリアA1に関する制限データ300として、図3に示すように、第1エリアA1と第2エリアA2との間に作成された制限データ300と、第1エリアA1と第3エリアA3との間に作成された制限データ300と、を抽出する。
経路探索部120は、抽出した制限データ300の中から1つのデータを選択する。ここではまず、第1エリアA1と第2エリアA2との間に作成されたデータを選択する(図16のステップS133)。次に、経路探索部120は、第1エリアA1と第2エリアA2との間に作成された制限データ300(図3)における最小の経路コストを用いて、第1エリアA1と第2エリアA2とを経由して出発地Sと目的地Gとを結ぶ経路のエリア外通過コストを算出する(図16のステップS135)。エリア外通過コストは、出発地Sと第1エリアA1とを結ぶ経路の経路コストの7と、第1エリアA1と第2エリアA2とのエリア間最小経路コストの10と(図3)、第2エリアA2と目的地Gとを結ぶ経路の経路コストの15と、を足した32である。
次に、経路探索部120は、算出したエリア外通過コストの32が閾値の40以下であるか否かを判定する(図16のステップS137)。エリア外通過コストは40以下であるため(ステップS137:YES)、経路探索部120は、選択したデータが目的地Gの最寄エリアに到達するデータか否かを判定する(ステップS139)。図15に示すように、第2エリアA2が目的地Gの最寄エリアであるため(ステップS139:YES)、経路探索部120は、経由可能なエリアの組み合わせとして第1エリアA1と第2エリアA2、および、第1エリアA1と第2エリアA2間に作成された制限データ300を、エリア遷移情報の1つとして記憶する(ステップS141)。
次に、経路探索部120は、抽出した制限データ300の中に選択されていないデータがあるか否かを判定する(ステップS147)。本実施形態では、第1エリアA1と第3エリアA3との間に作成されたデータが選択されていないため(ステップS147:YES)、経路探索部120は、このデータを選択する(ステップS133)。経路探索部120は、出発地Sから第1エリアA1と第3エリアA3とを経由して目的地Gへ向かう経路のエリア外通過コストを算出する(ステップS135)。当該エリア外通過コストは、出発地Sと第1エリアA1とを結ぶ経路の経路コストの7と、第1エリアA1と第3エリアA3とのエリア間最小経路コストの13と(図3)、第2エリアA2と目的地Gとを結ぶ経路の経路コストの15と、を足した35である。なお、この時点では、第3エリアA3から目的地Gの最寄エリアである第2エリアA2までの経路コストを考慮しない。エリア外通過コストの35は閾値の40以下であり(図16のステップS137:YES)、選択したデータは目的地Gの最寄エリアに到達するデータではないため(ステップS139:NO)、経路探索部120は、選択したデータにおける、データ抽出トリガではないエリアに関する制限データ300を抽出する(ステップS143)。ここでは、ステップS131にて出発地Sの最寄エリアである第1エリアA1に関するデータが抽出されているので、データ抽出トリガが第1エリアA1となり、第3エリアA3に関する制限データ300が新たに抽出されることになる。
次に、経路探索部120は、抽出した制限データ300の中から1つのデータを選択する。ここではまず、第2エリアA2と第3エリアA3との間に作成されたデータを選択する(ステップS133)。経路探索部120は、出発地Sから第1エリアA1、第3エリアA3、第2エリアA2とを経由して目的地Gへ向かう経路のエリア外通過コストを算出する(ステップS135)。当該経路のエリア外通過経路コストは、前項で算出した出発地Sから第1エリアA1と第3エリアA3とを経由して目的地Gへ向かう経路のエリア外通過コストである35に、第2エリアA2と第3エリアA3とのエリア間最小経路コストである18(図3)を加えた53である。当該エリア外通過コストは、閾値の40よりも大きいため(ステップS137:NO)、経路探索部120は、第1エリアA1、第3エリアA3、第2エリアA2とを経由する情報は、エリア遷移情報として記憶しない(ステップS145)。また、抽出した制限データ300として、他にも第1エリアA1と第3エリアA3との間に作成されたデータがある。これまでと同様に処理すると、エリア外通過コストが48になるため、これもエリア遷移情報として記憶しない。
図13のステップS130の処理において、エリア遷移情報が抽出されると、本実施形態では、第1エリアA1と第2エリアA2とを経由するエリア遷移情報があるため(ステップS106:YES)、経路探索部120は、探索対象リンクの抽出処理を行なう(ステップS150)。
図17は、探索対象リンクの抽出処理の流れを示す説明図である。探索対象リンクの抽出処理は、エリア遷移情報を用いて、エリア外通過コストが閾値以下となる範囲の経路コストに対応づけられたリンクを探索対象リンクとして抽出する処理である。
探索対象リンクの抽出処理では、初めに、経路探索部120は、抽出されたエリア遷移情報の中から1つのエリア遷移情報を選択する(ステップS151)。ここでは、第1エリアA1と第2エリアA2とを経由するエリア遷移情報を選択する(ステップS151)。次に、経路探索部120は、第1エリアA1と第2エリアA2間に作成された制限データ300を参照し、移動コスト毎のエリア外通過コストを算出する(ステップS153)。経路探索部120は、出発地Sと第1エリアA1とを結ぶ経路コストの7と、第2エリアA2と目的地Gとを結ぶ経路コストの15と、を足した22に、第1エリアA1と第2エリアA2とのエリア間最小コストである10を加えて(図3)、エリア外通過コストを32として算出する。同様に、経路探索部120は、第1エリアA1と第2エリアA2とのエリア間移動コスト毎に、37、40、42のエリア外通過コストを算出する。
次に、経路探索部120は、算出したエリア外通過コストのそれぞれが閾値の40以下であるか否かを判定する(図17のステップS155)。エリア外通過コストが32、37、40のときは閾値以下であるため(ステップS155:YES)、経路探索部120は、エリア外通過コストの算出元となる移動コストに対応づけられたリンクを探索対象リンクとして抽出する。図3に示すように、移動コスト10に対応付けられたリンクL11、リンクL12、リンクL14、リンクL15と、移動コスト15に対応付けられたリンクL13、リンクL17、リンクL20、リンクL21と、移動コスト20に対応付けられたリンクL3、リンクL7、リンクL8、リンクL16、リンクL18、リンクL22と、のリンクを探索対象リンクとして抽出する(図17のステップS157)。また、エリア外通過コストが42のときは閾値を超えるため(ステップS155:NO)、経路探索部120は、経路コスト20に対応付けられたリンクL2、リンクL6を探索対象リンクとして抽出しない(ステップS159)。
ステップS157およびステップS159の処理が終了すると、経路探索部120は、経由するエリア内のリンクを探索対象リンクとして抽出する(ステップS160)。続いて、抽出されたエリア遷移情報の中から選択されていないエリア遷移情報があるか否かを判定する(ステップS161)。選択されていないエリア遷移情報があると判定された場合には(ステップS161:YES)、経路探索部120は、新たに1つのエリア遷移情報を選択して(ステップS153)、ステップS155以降の処理を行なう。ステップS161の処理において、本実施形態では、第1エリアA1と第2エリアA2とを経由する以外のエリア遷移情報がないため(ステップS161:NO)、経路探索部120は、図14の最寄エリア探索処理におけるステップS123で記憶した経路を構成するリンクを抽出し(ステップS163)、探索対象リンクの抽出処理を終了する。
探索対象リンクの抽出処理が終了すると(図13のステップS150)、経路探索部120の最適経路探索部123は、探索対象として抽出されたリンク、および、リンクを構成するノードを用いて、最適経路を探索する(ステップS108)。最適経路探索部123は、各ノードに確定ラベルと負けラベルとを付与し、出発地Sから目的地Gに至る経路の経路コストが最小となる経路を、第1エリアA1と第2エリアA2とを経由して出発地Sと目的地Gとを結ぶ最適経路とする。次に、経路探索部120の類似経路探索部124は、最適経路と、確定ラベルおよび負けラベルと、を用いて、類似経路群を探索する(ステップS112)。以上の経路探索の結果、ユーザの持ち時間である120分以内に収まる経路が1つも決定されなかった場合には(ステップS114:NO)、経路探索部120は、エリアを経由することをやめ、出発地Sから目的地Gまでの通常の経路探索を行ない(ステップS116)、経路探索処理を終了する。ステップS114の処理において、ユーザの持ち時間である120分以内に収まる最適経路や類似経路群が決定された場合には(ステップS114:YES)、経路探索部120は、経路探索処理を終了する。
図18は、表示パネル202に表示される最適経路群と類似経路群との概略を示す説明図である。図18には、出発地Sと目的地Gとを結ぶ最小コストの経路である最適経路群R21、持ち時間以内で通過可能な類似経路群R22、R23が示されている。なお、図18には、経路探索で用いた探索対象リンクのみを示しているが、ユーザに提示する際は探索対象外のリンクを含めた全ネットワークを表示させてもよい。経路群R21、R22、R23のいずれも、エリア外通過コストは40以下であり、出発地Sから目的地Gまでの経路コストは、設定された持ち時間の120分以内である。携帯電話機200は、サーバ100から受信した経路を表示パネル202に表示させて、ユーザに出発地Sから目的地Gまでの経路を提示する。
以上で説明したように、第1実施形態におけるサーバ100の記憶装置118では、地図情報DB114がネットワーク情報を記憶し、エリア情報DB115がエリアデータを記憶し、制限情報DB116が第1エリアA1と第2エリアA2とを結ぶエリア間リンクを制限する制限データ300を記憶している。そのため、第1実施形態のサーバ100では、複数のエリアを結ぶ経路が探索されるときに、経路探索に用いられるリンクが予め一部のリンクに制限されているため、全てのリンクを探索対象リンクとして経路探索をしたときよりも、迅速に経路を探索できる。
また、第1実施形態におけるサーバ100では、制限データ300は、第1エリアA1に含まれる境界ノードと、第2エリアA2に含まれる境界ノードと、結ぶエリア間経路を構成するリンクとエリア間経路の経路コストとを対応付けたものである。ユーザが複数のエリアを経由し、経由するエリア内を散策したいとき、散策対象にないエリア間は、なるべく小さい経路コストで通過したいという需要が考えられる。その場合に、第1実施形態のサーバ100では、予め作成された制限データ300に基づき、エリア間を最小コストで移動できるリンクのみを用いて、経路探索を行なうため、散策対象でないエリア間には経路コストをかけず、散策対象であるエリア内でより多くのコストをかけた経路を探索することが可能になり、ユーザの利便性が向上する。
また、第1実施形態におけるサーバ100では、制限データ300は、移動コスト毎にリンク情報を保持している。そのため、第1実施形態のサーバ100では、現在時刻から目的地到着時刻までの差分である持ち時間とエリア外の通過に費やすことを許容する時間の比率に応じて探索対象リンクの数を増減させることが可能である。よって、ユーザがエリア間を通過する経路も複数パターン探索できるようになり、ユーザの経路の選択の自由度が向上する。
また、第1実施形態における経路探索システム10では、携帯電話機200によって設定された出発地Sと目的地Gとを結ぶ経路を探索するとき、経路探索部120は、2つ以上のエリアを経由して出発地Sと目的地Gとを結ぶ経路を探索する前に、予め作成された制限データ300によって探索対象リンクを制限する。そのため、エリア間経路および出発地Sから目的地Gまでの経路を迅速に探索できる。
また、第1実施形態における経路探索システム10では、経路探索部120は、出発地Sと出発地Sの最寄エリアの境界ノードとを結ぶ経路の経路コストと、目的地Gと目的地Gの最寄エリアの境界ノードとを結ぶ経路の経路コストと、2つの最寄エリアを結ぶエリア間経路の経路コストと、を足したエリア外通過コストが、出発地Sを出発してから目的地Gに到着するまでの全経路コストのうち、どの程度の割合を占めてよいかを設定できる。そのため、第1実施形態の経路探索システム10では、現在時刻から目的地到着時刻までの差分である持ち時間を、エリア内およびエリア外を通過するために使用する時間として自由に分配でき、また、それぞれの時間に応じて経路を探索できるため、ユーザの利便性がより向上する。
また、第1実施形態の経路探索システム10では、最適経路探索部123は、1つ以上のエリアを経由して出発地Sと目的地Gとを結ぶ経路の経路コストが最小である最適経路を探索する。類似経路探索部124は、現在時刻から目的地到着時刻までの差分である持ち時間に収まる範囲で、類似経路を探索する。そのため、第1実施形態の経路探索システム10では、最適経路だけではなく、持ち時間に収まる範囲内の類似経路をユーザに提示することで、持ち時間で行動可能な範囲がわかるため、ユーザの経路の選択の自由度が向上する。
また、第1実施形態の経路探索システム10では、最適経路探索部123は、ネットワーク上の複数のノードに、経路および経路コストの情報を有する確定ラベルと負けラベルを付与する。類似経路探索部124は、最適経路に含まれる最適ノードにおいて、2つのエリア間の経路コストの上限である閾値コスト、あるいは、持ち時間に対応するコストから最適経路の経路コストを差し引いた値である許容コストと、負けラベルの経路コストから確定ラベルの経路コストを差し引いたラベルコストとを比較し、ラベルコストが許容コスト以下の場合に、負けラベルの経路と、着目している最適ノードから目的地Gまでを結ぶ経路と、を合わせた経路を類似経路として設定する。また、類似経路探索部124は、ラベルコストが許容コストに収まっている間、繰り返し類似経路を探索する。そのため、第1実施形態の経路探索システム10では、最適経路から派生した類似経路を探索でき、出発地Sと目的地Gとを結ぶより多くの経路をユーザに提示することで、ユーザの経路の選択の自由度が向上する。
B.第2実施形態:
第2実施形態では、例えば、自動車に乗っているユーザが経路探索をする場合に用いられる制限データ300aが、第1実施形態の制限データ300と異なる。自動車の経路が探索された場合に、自動車が通過するリンクである道路では、例えば、右折禁止のように、同じノードであっても、当該ノードに進入する方向によって、次に通過できるリンクの選択肢が異なる場合がある。したがって、第2実施形態の制限データ300aでは、第1実施形態で説明したような移動コストとリンクを対応付けたデータではなく、経路情報として制限データを作成する。
図19および図20は、第2実施形態において作成する制限データ300aの作成過程を示す説明図である。図19には、第1実施形態と同じネットワーク(図2)の各ノードに付与されたラベルが示されている。図19では、第1実施形態(図9)と異なり、各ノードには、経路コストの数値ではなく、ラベル名が示されている。なお、図19では、図20に示された全てのノード名を記載せずに、一部のノード名のみを記載している。図20には、ラベル名のそれぞれに対して、出発ノードからラベル付与ノードまでの累計の経路コストと、ラベル付与ノード名と、ラベル付与ノードへの進入方向を示す前ラベル名と、ラベルの種別を示すフラグと、が示されている。図20に示すフラグは、例えば、各ラベルに対応付けられた経路コストが、2つのエリア間の経路コストの上限である閾値コスト20以上の場合には「−1」と示され、経路コストが閾値未満であると共に負けラベルの場合には「0」と示され、経路コストが閾値未満であると共に確定ラベルの場合には「1」と示され、経路コストが閾値未満であると共に目的エリアの境界ノードに到着している場合には「2」で示されている。ここで、ノードに対して右折禁止などの規制がある場合は、ノードへの進入方向と規制に従い、ラベルの種別を決定する。例えば、ラベルLB0は、経路コストが5であり、付与されたノードがノードn11であり、直前のラベルがLB100であり、確定ラベルとして設定されている。また、ラベルLB14は、経路コストが20であり、付与されたノードがノードn52であり、直前のラベルがラベルLB3であり、負けラベルとして設定されている。
図21および図22は、第2実施形態における制限データ300aを示す説明図である。図21には、第2実施形態の制限情報DB116aに記憶された制限データ300aの一覧が示されている。制限データ300aは、図20に示された全てのラベルの内、2つのエリア間の経路コストの上限である閾値コスト以下の経路コストで目的エリアに到達しているラベル、および、その直前のラベルが抽出されたものである。図21に示すラベルの番号は、図20に示すラベルから抽出されたラベルに対して、再度、ラベルの番号を更新しているため、図21と図20とに示すラベルの番号は必ずしも対応していない。図22には、制限データ300aとして記憶されるラベルがノードに付与された状態を示している。図22では、第1エリアA1における起点となる境界ノードに応じて、矢印の線種を変えて示している。
以上説明したように、第2実施形態におけるサーバ100aでは、制限データ300aは、経路情報としてノードに付与されたラベルの情報を保持している。ラベルのそれぞれは、経路コストと、ラベルが付与されたノード名と、進入前のノードに付与されていた確定ラベルの番号と、ラベルの種別を示すフラグを対応付けている。制限データ300aは、これらの経路情報に基づいて、経路探索に用いるリンクを一部のリンクに制限する。そのため、第2実施形態のサーバ100aでは、例えば、自動車が通過するリンクである道路のように、ノードに進入する方向によって、右折禁止等の制限がある場合であっても、通行可能なリンクが適切に選択され、ユーザの利便性が向上する。
C.第3実施形態:
第3実施形態では、第1実施形態に対して、最寄エリアが複数抽出される場合の、制限データ300を用いた経路探索方法について説明する。
C1.第1の第3実施形態:
図23は、第1の第3実施形態におけるネットワーク上の出発地Sと目的地Gとの位置関係を示す説明図である。なお、図23に示された第1の第3実施形態におけるノード、リンク、エリア、リンクコストは、第1実施形態のものと同じである(例えば、図3)。図23に示すように、第1の第3実施形態では、出発地Sは、第1エリアA1に含まれるノードであり、目的地Gは、エリア外のノードn31である。ノードn31の隣接ノードには、第1エリアA1の境界ノードN3および第2エリアA2の境界ノードN10がある。また、ノードn31に接続するリンクL14およびリンクL15のリンクコストは、同じ5である。そのため、経路探索処理における最寄エリア探索処理では(図14)、目的地Gの最寄エリアとして、第1エリアA1と第2エリアA2との2つのエリアを設定してもよい。この場合、目的地Gの最寄エリアが第1エリアA1である場合と、目的地Gの最寄エリアが第2エリアA2である場合と、の2つの場合に対して継続する経路探索処理が行なわれることで、種々のエリアを経由して出発地Sと目的地Gとを結ぶ経路が探索される。
C2.第2の第3実施形態:
図24は、第2の第3実施形態におけるネットワーク上の出発地Sと目的地Gとの位置関係を示す説明図である。なお、図24に示された第2の第3実施形態におけるノード等は、第1実施形態のものと同じである。図24に示すように、第2の第3実施形態では、出発地Sおよび目的地Gは、第1エリアA1と第2エリアA2とのいずれのエリアにも含まれないエリア外のノードである。出発地Sと目的地Gとの最寄エリアは、同じ第2エリアA2である。そのため、第1実施形態のエリア遷移情報抽出処理では、出発地Sおよび目的地Gの最寄エリアである第2エリアA2を2度経由するエリア遷移情報が抽出される。一方、第2の第3実施形態では、最寄エリア探索処理(図14)において、出発地Sおよび目的地Gの最寄エリアが第2エリアA2に設定された後も、最寄エリア検出のために新たに設定した閾値コストに達するまで、ラベルの付与を繰り返し行なう(ステップS113)。閾値コストに達するまでの間に、ラベルが付与された境界ノードを含むエリアをそれぞれ最寄エリアとして設定して、経路探索部120は、設定した最寄エリアのそれぞれに対してエリア遷移情報の抽出処理を行なう。これにより、第2の第3実施形態では、出発地Sと目的地Gとの最寄エリアが同じであっても、複数のエリアを経由して出発地Sと目的地Gとを結ぶ経路を探索でき、ユーザの利便性が向上する。
D.変形例:
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
D1.変形例1:
上記実施形態では、経路探索をするときに用いられる制限データ300は、経路コストに対応付けられたリンクを保持したが、制限データ300が保持するリンク等のデータについては、種々変形可能である。例えば、制限データ300として、エリア間の経路の組み合わせを保持してもよい。具体的には、制限データ300は、図3および図9において、第1エリアA1と第2エリアA2とを結ぶ経路コストが10の経路として、リンクL11とリンクL12との組み合わせと、リンクL14とリンクL15との組み合わせと、を保持してもよい。この変形例では、経路探索処理のときに、再度エリア間の経路探索をする必要がなく、制限データ300が保持している経路の組み合わせを選択できるため、迅速に経路探索処理が行なわれる。
上記実施形態では、制限データ300を作成するときに用いる経路コストの閾値やエリア外通過コストの閾値について具体的な数値を挙げて説明したが、これらの閾値の数値自体や閾値の設定方法については、種々変形可能である。例えば、制限データ300を作成するときのエリア間経路の経路コストの閾値は20に設定したが、20以外の数値であってもよい。また、第1実施形態の経路探索処理では、エリア外通過コストの閾値は、持ち時間120分の3分の1である40として設定したが、持ち時間の4分の1である30であってもよいし、持ち時間とは別に、設定されてもよい。また、エリア外通過コストの閾値は、第1エリアA1や第2エリアA2の大きさ(エリア面積、エリア内店舗数など)に応じて変化してもよい。
また、上記実施形態では、出発エリアと目的エリアの最適経路群を求めたあとに類似経路群を探索することで複数の経路を設定していたが、出発エリアと目的エリアの境界ノードの組み合わせに対し、それぞれ、ダイクストラ法によって最適経路を求め、エリア間経路の経路コストの閾値以内である経路を統合することで制限データが作成されてもよい。こうすることで、同一出発地、目的地間に作成される経路は必ず1つになり、よりデータの質が向上する。
上記実施形態では、リンクを通過する時間(分)とリンクコストとを対応付けていたが、リンクを通過する時間とリンクコストとの関係は、これに限らず、種々変形可能である。例えば、特定されたリンクコストに対して、携帯電話機200を介して設定されたユーザの移動手段に応じて、リンクコストを一律半減させてもよい。また、リンクコストは、分単位ではなく、リンクを通過する秒単位の時間であってもよい。
上記実施形態では、エリア情報DB115に記憶されたエリアデータは、2つ以上のノードと1つ以上のリンクとから構成されたが、エリアデータの態様については、これに限られず、種々変形可能である。例えば、ネットワーク情報に対して、エリアを形成するためのエリアの境界となるリンクやノードを特定することで、ネットワーク上のエリアの範囲が特定されてもよい。また、ネットワーク情報には、エリアに含まれるノードおよびリンクが特定されておらず、エリアを形成するノードおよびリンクを含むエリアデータとネットワーク情報とが合わさることで、全てのノードとリンクとを構成するデータが構築されてもよい。
D2.変形例2:
上記実施形態では、経路探索に用いられる制限データ300が作成されるときや、経路探索処理においてエリアを経由した出発地Sと目的地Gとを結ぶ経路が探索されるときに、各ノードに付与された確定ラベルおよび負けラベルによって、最適経路および類似経路が探索されたが、経路探索の方法については、種々変形可能である。例えば、出発地Sと目的地Gとを結ぶ経路について、ダイクストラ法によって最適経路が探索され、その後に、最適経路を構成するリンクの全てを除いたリンクを探索することで、最適経路の次に経路コストが最小となる経路が探索されてもよい。また、最適経路のみが探索されて、類似経路等が探索されなくてもよい。
また、最寄エリア探索処理において、ダイクストラ法により最寄エリアを設定する方法、および、最寄エリア検出のために新たに設定した閾値コスト以内で複数の最寄エリアを設定する方法について述べたが、最寄エリアの探索方法については、種々変形可能である。例えば、A*(エースター)探索を用いることで、出発地からは目的地方向に存在するエリアを、目的地からは出発地方向に存在するエリアを、最寄エリアとして設定できるようにしてもよい。
また、第1実施形態と第2実施形態とでは、ノードに付与されるラベルが持つ情報が異なったが、ノードに付与されて、経路探索に用いられるラベルについては、種々変形可能である。例えば、第1実施形態で用いられた確定ラベルと負けラベルとを付与すると共に、第2実施形態で用いた直前のノードを特定するラベルも各ノードに付与してもよい。この場合に、携帯電話機200によって設定されたユーザの移動手段が徒歩である場合には、第1実施形態のラベルを用いて経路が探索され、ユーザの移動手段が自動車である場合には、第2実施形態のラベルを用いて経路が探索されてもよい。
上記実施形態では、エリア内の経路探索の詳細については説明していないが、エリア内の経路探索については、種々の方法によって探索されてもよい。例えば、エリア間の経路とは別に、ダイクストラ法やエースター法によって探索されてもよい。また、経路内の経路データを特定するデータが予め用意されており、当該データを用いて、エリア内の経路が探索されてもよい。
D3.変形例3:
上記実施形態では、制限データ作成処理は、経路探索システム10に含まれていないコンピュータによって行なわれたが、制限データ300を作成するのは、コンピュータに限られず、種々変形可能である。例えば、サーバ100に構成された経路探索部120等とは異なる制限データ作成部が制限データ300を作成してもよい。
上記実施形態では、携帯電話機200のGPSユニット201によって出発地Sが設定され、ユーザに操作部206が操作されることで現在時刻から到着時刻までの持ち時間が設定されたが、経路探索処理の条件の設定の方法については、これらに限らず、種々変形可能である。例えば、出発地Sは、操作部206が操作されることによって設定されてもよい。また、待ち時間は、目的地Gに到着したい時刻ではなく、現在時刻から何分後に到着したいといった予定時間が設定されてもよい。また、携帯電話機200の通話制御部220による音声認識によって、出発地Sや目的地G等が設定されてもよい。
また、上記実施形態では、図1に示すようにサーバ100が情報記憶部110および経路探索部120を備える態様としたが、情報記憶部110および経路探索部120を備える装置はこの態様に限られず、種々変形可能である。例えば、情報記憶部110と経路探索部120とは異なるサーバに備えられていてもよいし、経路探索部120が携帯電話機200に搭載されていてもよい。
本発明は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現できる。例えば、発明の概要の欄に記載した技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行なうことができる。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除できる。