経路探索方法、経路探索システム及び経路探索サーバ装置
【課題】出発地から目的地までの探索距離の長さ、道路形状の複雑さに関係なく、細街路まで含めた詳細な探索を行うことができるナビゲーション装置等の経路探索方法を提供すること。
【解決手段】地図データを分割したエリア毎に経路探索サーバ装置を有する。経路探索サーバ装置は、探索開始地点側に隣接するエリアの経路探索サーバ装置から第1の探索情報を受信するステップと、第1の探索情報に基づいて、自エリア内の経路を探索するステップと、経路探索の探索結果に従って第1の探索情報を更新した第2の探索情報を探索終了地点側に隣接するエリアの経路探索サーバ装置に送信するステップとを備えることにより、出発地から目的地までの詳細な経路探索を行う。
【解決手段】地図データを分割したエリア毎に経路探索サーバ装置を有する。経路探索サーバ装置は、探索開始地点側に隣接するエリアの経路探索サーバ装置から第1の探索情報を受信するステップと、第1の探索情報に基づいて、自エリア内の経路を探索するステップと、経路探索の探索結果に従って第1の探索情報を更新した第2の探索情報を探索終了地点側に隣接するエリアの経路探索サーバ装置に送信するステップとを備えることにより、出発地から目的地までの詳細な経路探索を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、出発地から目的地までの経路を探索する経路探索方法、経路探索システム及び経路探索サーバ装置に関するものである。
【背景技術】
【0002】
従来のナビゲーション装置等の経路探索方法は、地図データを分割し、道路種別に従って階層化して、探索する経路数を減らすことにより、探索の効率化を図っている。この方法は、各階層の地図データをブロックに分割して、出発地と目的地とのブロックの位置関係に応じて、経路探索を行っている。すなわち、はじめに、出発地と目的地とを含む最詳細なブロックにおいて、そのブロック同士が隣接しない場合は、上位階層のブロックに連結する連結交差点までの経路を探索する。次に、上位階層のブロックに移行して、この連結交差点を出発点としてブロック内を探索する。この探索を繰り返すことにより、最終的に出発地側からの探索と目的地側からの探索とが、同一ブロック、又は隣接ブロックとなった時点で、両者の経路を連結させて経路探索を終了する。
【0003】
以上のように、地図データを階層構造にブロック分割し、出発地と目的地とを含むブロックの階層から上位階層のブロックに順次移行して探索を行うことで、探索時間が短縮され、効率のよい経路探索を行っている(例えば、特許文献1)。
【特許文献1】特開平2−56591号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の経路探索方法においては、出発地と目的地との探索距離が長くなるに伴って、主要幹線道路や高速道路等の上位階層の道路を通る経路探索が行われる。また、市街地等の複雑な道路形状の場合も同様に、上位階層の地図を用いた経路探索へ移行される。このため、細街路まで含めた詳細な経路探索を行うことが困難であった。
【0005】
本発明は、従来の問題を解決するためになされたもので、出発地から目的地までの探索距離の長さ、道路形状の複雑さに関係なく、細街路まで含めた詳細な経路探索を行うことができる経路探索方法、経路探索システム及び経路探索サーバ装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の経路探索方法は、地図データを分割したエリア毎に経路探索サーバ装置を有し、前記経路探索サーバ装置が、自エリアに隣接する第1のエリアの経路探索サーバ装置から第1の探索情報を受信する受信ステップと、前記第1の探索情報に基づいて、自エリア内の経路を探索するステップと、経路探索の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの経路探索サーバ装置に送信するステップとを備えた構成を有する。
【0007】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0008】
また、本発明の経路探索方法は、前記経路探索ステップが、前記第1の探索情報に含まれる探索開始地点の通過予定時刻が、自経路探索サーバ装置に登録されている前記探索開始地点の通過予定時刻より早いか否かを判定し、早いとの判定がなされたときに、自エリア内の経路を探索する構成を有する。
【0009】
この構成により、経路探索サーバ装置の経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0010】
また、本発明の経路探索方法は、前記送信ステップが、自エリアの探索終了地点、出発地から自エリアの探索終了地点までの経路及び探索終了地点の通過予定時刻を隣接するエリアの経路探索サーバ装置に送信する構成を有する。
【0011】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0012】
また、本発明の経路探索システムは、地図データを分割したエリア毎に経路探索サーバ装置を有し、前記経路探索サーバ装置は、自エリアに隣接する第1のエリアの経路探索サーバ装置から第1の探索情報を受信する受信手段と、前記第1の探索情報に基づいて、自エリア内の経路を探索する経路探索手段と、前記経路探索手段の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの経路探索サーバ装置に送信する送信手段とを備えた構成を有する。
【0013】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。さらに、詳細な経路探索をエリア毎の経路探索サーバ装置で協調分散して行うため、各経路探索サーバ装置の経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0014】
本発明の経路探索サーバ装置は、自エリアに隣接する第1のエリアの通信装置から第1の探索情報を受信する受信手段と、前記第1の探索情報に基づいて自エリア内の経路を探索する経路探索手段と、前記経路探索手段の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの通信装置に送信する送信手段とを備えた構成を有する。
【0015】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0016】
本発明の経路探索サーバ装置は、前記経路探索手段が、前記第1の探索情報に含まれる探索開始地点の通過予定時刻が、自経路探索サーバ装置に登録されている前記探索開始地点の通過予定時刻より早いか否かを判定し、早いとの判定がなされたときに、自エリア内の経路を探索する構成を有する。
【0017】
この構成により、経路探索サーバ装置の経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0018】
本発明の経路探索サーバ装置は、前記送信手段が、自エリアの探索終了地点、出発地から自エリアの探索終了地点までの経路及び探索終了地点の通過予定時刻を隣接するエリアの通信装置に送信する構成を有する。
【0019】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【発明の効果】
【0020】
本発明は、出発地から目的地までの探索距離の長さ、道路形状の複雑さに関係なく、細街路まで含めた詳細な経路探索を行うことができる経路探索方法、経路探索システム及び経路探索サーバ装置を提供することができるものである。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施の形態について、図面を用いて説明する。
【0022】
(実施の形態1)
図1は、本発明の実施の形態1の経路探索システムの構成を示すブロック図である。図2は、本発明の実施の形態1の経路探索システムにおける地図の分割例を説明する図である。
【0023】
図1に示すように、本実施の形態1の経路探索システムは、地図を複数に分割したエリア毎に、予め決められたエリア内を経路探索する経路探索サーバ装置(以下、サーバという)SV1、SV2、SV3を有している。
【0024】
サーバSV1は、図2に示す予め決められたエリアA1を担当し、エリアA1内の経路探索を行う経路探索手段12と、エリアA1に隣接するエリアA2、A3をそれぞれ担当するサーバSV2、SV3の各々の送信手段23、33から探索情報をそれぞれ受信する受信手段11と、サーバSV2、SV3の各々の受信手段21、31に探索情報をそれぞれ送信する送信手段13とを有している。
【0025】
サーバSV2は、前述のように、図2に示す予め決められたエリアA2を担当し、エリアA2内の経路探索を行う経路探索手段22と、エリアA2に隣接するエリアA1、A3をそれぞれ担当するサーバSV1、SV3の各々の送信手段13、33から探索情報をそれぞれ受信する受信手段21と、サーバSV1、SV3の各々の受信手段11、31に探索情報をそれぞれ送信する送信手段23とを有している。
【0026】
サーバSV3は、前述のように、図2に示す予め決められたエリアA3を担当し、エリアA3内の経路探索を行う経路探索手段32と、エリアA3と隣接するエリアA1、A2をそれぞれ担当するサーバSV1、SV2の各々の送信手段13、23から探索情報をそれぞれ受信する受信手段31と、サーバSV1、SV2に探索情報をそれぞれ送信する送信手段33とを有している。
【0027】
図2において、太い実線は道路、網点部の領域はエリアA1、斜線部の領域はエリアA2、格子部の領域はエリアA3を示す。各エリア内の四角形は、サーバSV1、SV2、SV3を示す。また、楕円は、エリアA1とエリアA2との境界、エリアA1とエリアA3との境界及びエリアA2とエリアA3との境界における道路の交差点であって、隣接点P1、P2、P3、P4、P5、P6、P7、P8、P9を示す。エリアA1の三角形は、経路探索を開始する出発地P0を示し、エリアA3の逆三角形は、経路探索を終了する目的地PNを示す。
【0028】
次に、図3(a)〜図3(c)及び図4(a)〜図4(c)を用いて、サーバSV1〜SV3に登録する情報テーブルについて説明する。
【0029】
図3(a)は、サーバSV1に事前登録されているエリアA1内の各隣接点P1〜P5と、これらの隣接点で隣接するエリアを担当するサーバとを予め関連付けた隣接点テーブルを示す。
【0030】
図3(b)は、前述のように、サーバSV2に事前登録されているエリアA2内の各隣接点P1、P2及びP5〜P9と、これらの隣接点で隣接するエリアを担当するサーバとを予め関連付けた隣接点テーブルを示す。
【0031】
図3(c)は、前述のように、サーバSV3に事前登録されているエリアA3内の各隣接点P3〜P9と、これらの隣接点で隣接するエリアを担当するサーバとを予め関連付けた隣接点テーブルを示す。
【0032】
図4(a)、図4(b)及び図4(c)は、経路探索を行う過程において、サーバSV1〜SV3に登録される、探索IDと、エリア内の探索開始地点(出発地又は隣接点)又は探索終了地点(隣接点又は目的地)と、その地点の出発時刻(出発地)、通過予定時刻(隣接点)又は到着予定時刻(目的地)とを関連付けた探索結果テーブルを示す。探索結果テーブルに登録する各情報については、後述の動作説明にて具体例を示し説明する。
【0033】
上記経路探索システムの動作について、図5及び図6に示すフローチャートを用いて説明する。
【0034】
図5において、サーバは、カーナビゲーション等の経路探索クライアント装置(図示せず)又は隣接するエリアを担当するサーバから送信された探索情報を受信手段にて受信することで処理を開始する(ステップS61)。
【0035】
サーバは、経路情報を受信すると、まず、受信した経路情報に含まれる検索IDと検索開始地点を取り出し、検索IDに関連付けられた、探索開始地点が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0036】
探索IDと関連付けられた、探索開始地点(隣接点)が探索結果テーブルに登録されていない場合(ステップS65、No)、その探索IDと、探索情報に含まれる探索開始地点(隣接点)と、探索情報に含まれている同点の通過予定時刻とを探索結果テーブルに新規登録し(ステップS63)、その探索開始地点(隣接点)から探索終了地点(自エリアの他の隣接点又は目的地)までの経路探索を経路探索手段にて開始する(ステップS64)。
【0037】
一方、探索IDと関連付けられた、探索開始地点(隣接点)が探索結果テーブルに登録されている場合(ステップS65、Yes)、サーバは、受信した探索情報に含まれている探索開始地点(隣接点)の通過予定時刻t2が、既に探索結果テーブルに登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS66)。これは、同一の探索開始地点(隣接点)を通過する通過予定時刻が早い経路についてのみ、同点から探索終了地点(自エリアの他の隣接点又は目的地)まで経路探索を行い、通過予定時刻が遅い経路については経路探索を行わないようにするためのものである。
【0038】
受信した探索情報に含まれる探索開始地点(隣接点)の通過予定時刻t2が、既に探索結果テーブルに登録されている同点の通過予定時刻t1より早い場合(ステップS66、Yes)、探索結果テーブルの通過予定時刻を通過予定時刻t2に更新し(ステップS63)、その探索開始地点(隣接点)から探索終了地点(自エリアの他の隣接点又は目的地)までの経路探索を経路探索手段にて開始する(ステップS64)。
【0039】
一方、受信した探索情報に含まれる探索開始地点(隣接点)の通過予定時刻t2が、既に探索テーブルに登録されている同点の通過予定時刻t1より遅い場合(ステップS66、No)、サーバは経路探索を行うことなく、処理を終了する。
【0040】
次に、図6において、サーバが経路探索を開始した後の動作について説明する。
【0041】
まず、経路探索を開始すると、サーバは、目的地が自エリア内に存在するか否かを判定する(ステップS67)。目的地が自エリア内に存在する場合(ステップS67、YES)、探索開始地点(出発地又は隣接点)から目的地までの経路を探索する(ステップS68)。
【0042】
さらに、ステップS68で経路の探索を行った結果、目的地の到着予定時刻t4が、探索結果テーブルに既に登録されている、探索情報に含まれている探索IDと同じ探索IDで関連付けられた目的地の到着予定時刻t3より早いか否かを判定する(ステップS69)。目的地の到着予定時刻t4が、探索結果テーブルに既に登録されている目的地の到着予定時刻t3より早い場合(ステップS69、YES)、探索結果テーブルの到着予定時刻を到着予定時刻t4に更新する(ステップS70)。なお、探索情報に含まれている探索IDと同じ探索IDで関連付けられた目的地の到着予定時刻が、探索結果テーブルに登録されていない場合は、探索IDと、探索終了地点(目的地)と、到着予定時刻t4とを探索結果テーブルに新規登録する(ステップS70)。
【0043】
一方、ステップS68で経路探索を行った結果、目的地の到着予定時刻t4が、探索結果テーブルに既に登録されている目的地の到着予定時刻t3より遅い場合(ステップS69、NO)、サーバは、探索結果テーブルに新規登録又は更新を行うことなく、処理を終了する。
【0044】
次に、目的地が自エリア外の場合(ステップS67、NO)、サーバは、隣接点テーブルから登録順に隣接点を一つ取り出し(ステップS71)、探索開始地点(出発地又は隣接点)から取り出した隣接点までの経路を探索する(ステップS72)。なお、隣接点を取り出す順番は隣接点テーブルの登録順に限定されるものではなく、目的地に距離が近い順番等でもよい。目的地に距離が近い順番に隣接点を取り出すことにより、探索順序をコントロールできるため、無駄な探索を行うことが少なくなり、効率的な探索を行うことができる。
【0045】
次に、サーバは、ステップS72で経路の探索を行った結果、その探索終了地点(隣接点)の通過予定時刻t2が、探索結果テーブルに既に登録されている、探索情報に含まれている探索IDと同じ探索IDで関連付けられた同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。通過予定時刻t2が通過予定時刻t1より早い場合(ステップS73、Yes)、探索結果テーブルの通過予定時刻を通過予定時刻t2に更新する(ステップS74)。なお、探索情報に含まれている探索IDと同じ探索IDで関連付けられた通過予定時刻が、探索結果テーブルに登録されていない場合は、探索IDと、探索終了地点(隣接点)と、同点の通過予定時刻t2とを探索結果テーブルに新規登録する(ステップS74)。
【0046】
さらに、サーバは、探索結果テーブルへ各情報の新規登録又は更新を行った後、隣接点テーブルから探索終了地点(隣接点)で隣接するエリアを担当する隣接エリアのサーバを特定する。そして、そのサーバに対して、探索ID、出発地、出発時刻、目的地、自エリアの探索終了地点(同点を担当する隣接エリアのサーバにとっては、探索開始地点となる)、出発地から自エリアの探索終了地点(隣接点)までの経路及び探索終了地点(隣接点)の通過予定時刻を送信手段にて送信する(ステップS75)。
【0047】
一方、通過予定時刻t2が通過予定時刻t1より遅い場合(ステップS73、No)、又はステップS75で探索情報を送信した後、自エリア内に経路の探索を行っていない隣接点が他にあるか否かを隣接点テーブルを用いて判定する(ステップS76)。
【0048】
隣接点テーブルに経路の探索を行っていない隣接点が他にある場合(ステップS76、Yes)、上述と同様に隣接点を一つ取り出し、ステップS72〜S76を繰り返す。これにより、探索開始地点(出発地又は隣接点)から自エリア内の全ての探索終了地点(隣接点)まで経路の探索を行い、各探索終了地点(隣接点)を担当する隣接エリアのサーバに対して、探索結果を順次引継いでいく。
【0049】
一方、隣接点テーブルに経路探索を行っていない隣接点がない場合(ステップS76、No)、サーバは、処理を終了する。
【0050】
次に、図2に示す出発地P0から目的地PNまでの経路探索を行う場合を例にとって、上述の動作を具体的に説明する。
【0051】
まず、サーバSV1は、カーナビゲーション等の経路探索クライアント装置(図示せず)から送信された、出発地P0、目的地PN及び出発時刻を含む探索情報を受信手段11にて受信することで処理を開始する(ステップS61)。
【0052】
サーバSV1は、経路情報を受信すると、まず、受信した経路情報に含まれる検索ID(この例では、1とする)と検索開始地点(出発地P0)を取り出し、検索ID(1)に関連付けられた、探索開始地点(出発地P0)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0053】
ここでは、探索ID(1)と関連付けられた、探索開始地点(出発地P0)が探索結果テーブルに登録されていないため(ステップS65、No)、図4(a)に示すように、その探索ID(1)と探索開始地点(出発地P0)と、受信した出発時刻(この例では、15:30:00とする)とを探索結果テーブルに新規登録し(ステップS63)、経路探索手段12にて経路探索を開始する(ステップS64)。
【0054】
次に、経路探索を開始すると、サーバSV1は、目的地PNが自エリアA1内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNが自エリアA1内に存在しないため(ステップS67、NO)、隣接点テーブルから登録されている順序で隣接点P1を取り出し(ステップS71)、探索開始地点(出発地P0)から探索終了地点(隣接点P1)までの経路を探索する(ステップS72)。
【0055】
サーバSV1は、探索開始地点(出発地P0)から探索終了地点(隣接点P1)までの経路探索の結果、探索終了地点(隣接点P1)の通過予定時刻t2が、探索結果テーブルに既に登録されている、探索情報に含まれている探索IDと同じ探索IDで関連付けられた同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、探索終了地点(隣接点P1)の通過予定時刻t1が、探索結果テーブルに登録されていないため、探索ID(1)と、探索終了地点(隣接点P1)と、同点の通過予定時刻(15:32:00)を図4(a)に示すように、探索結果テーブルに新規登録する(ステップS74)。
【0056】
さらに、サーバSV1は、探索終了地点(隣接点P1)で隣接するエリアを担当する隣接エリアのサーバSV2を隣接点テーブルにて特定する。そして、サーバSV1は、サーバSV2に対して、探索ID(1)、出発地P0、出発時刻(15:30:00)、目的地PN、自エリアの探索終了地点(隣接点P1)、出発地P0から自エリアの探索終了地点(隣接点P1)までの経路及び探索終了地点(隣接点P1)の通過予定時刻(15:32:00)を送信手段13から送信する(ステップS75)。
【0057】
次に、エリアA1内に経路探索を行っていない隣接点が他にあるか否かを隣接点テーブルを用いて判定する(ステップS76)。ここでは、経路探索を行っていない隣接点P2〜P5があるため、(ステップS76、Yes)、上述と同様に隣接点を一つずつ取り出し、ステップS72〜S76を繰り返す。これにより、図4(a)に示すように、探索開始地点(出発地P0)から探索終了地点(隣接点P1〜P5)までの探索結果を探索結果テーブルへ新規登録する。また、隣接点P1及びP2に関する探索情報は、サーバSV2に送信し、隣接点P3〜P4に関する探索情報は、サーバSV3に送信し、隣接点P5に関する探索情報は、サーバSV2およびサーバSV3の両方に送信する。
【0058】
サーバSV1は、全ての隣接点について経路探索を行った場合(ステップS76、No)、処理を終了する。
【0059】
次に、サーバSV1から探索情報を受信したサーバSV2の動作について説明する。
【0060】
まず、サーバSV2は、サーバSV1から送信された、隣接点P1に関する探索情報を受信手段21で受信することで処理を開始する(ステップS61)。
【0061】
サーバSV2は、経路情報を受信すると、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P1)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P1)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0062】
ここでは、探索ID(1)に関連付けられた、検索開始地点(隣接点P1)が探索結果テーブルに登録されていないため(ステップS65、No)、図4(b)に示すように、探索ID(1)と、探索情報に含まれる探索開始地点(隣接点P1)と、同点の通過予定時刻(15:32:00)とを探索結果テーブルに新規登録し(ステップS63)、経路探索手段22により経路探索を開始する(ステップS64)。
【0063】
次に、経路探索を開始すると、まず、サーバSV2は、目的地PNがエリアA2内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNがエリアA2内に存在しないため(ステップS67、No)、隣接点テーブルから登録されている順序で隣接点P2を取り出し(ステップS71)、探索開始地点(隣接点P1)から探索終了地点(隣接点P2)までの経路探索を行う(ステップS72)。ここで、サーバは、探索開始地点と探索終了地点が同一の場合の経路探索は行わないものとするため、隣接点テーブルから隣接点P1ではなく、隣接点P2を取り出す。
【0064】
次に、サーバSV2は、探索開始地点(隣接点P1)から探索終了地点(隣接点P2)までの経路探索の結果、探索終了地点(隣接点P2)の通過予定時刻t2が、探索結果テーブルに既に登録されている、探索情報に含まれている探索IDと同じ探索IDで関連付けられた同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、探索終了地点(隣接点P2)の通過予定時刻t1が探索結果テーブルに登録されていないため、探索ID(1)と、探索終了地点(隣接点P2)と、同点の通過予定時刻(15:34:00)を図4(b)に示すように、探索結果テーブルに新規登録する(ステップS74)。
【0065】
さらに、サーバSV2は、探索終了地点(隣接点P2)で隣接するエリアを担当する隣接エリアのサーバSV1を隣接点テーブルにて特定する。そして、サーバSV2は、サーバSV1に対して、探索ID(1)、出発地P0、出発時刻(15:30:00)、目的地PN、自エリアの探索終了地点(隣接点P2)、出発地P0から自エリアの探索終了地点(隣接点P2)までの経路及び探索終了地点(隣接点P2)の通過予定時刻(15:34:00)を送信手段23から送信する(ステップS75)。
【0066】
次に、自エリアA2内に経路探索を行っていない隣接点が他にあるか否かを隣接点テーブルを用いて判定する(ステップS76)。ここでは、経路探索を行っていない隣接点P5〜P9があるため(ステップS76、Yes)、上述と同様に隣接点P5を取り出し(ステップS71)、探索開始地点(隣接点P1)から探索終了地点(隣接点P5)までの経路を探索する(ステップS72)。
【0067】
探索開始地点(隣接点P1)から探索終了地点(隣接点P5)までの経路探索の結果、探索終了地点(隣接点P5)の通過予定時刻t2が、探索結果テーブルに既に登録されている、同じ探索IDで関連付けられた同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、通過予定時刻t1が探索結果テーブルに登録されていないため、探索ID(1)と、探索終了地点(隣接点P5)と、同点の通過予定時刻(15:36:00)を図4(b)に示すように、探索結果テーブルに新規登録する(ステップS74)。
【0068】
さらに、サーバSV2は、探索終了地点(隣接点P5)で隣接するエリアを担当する隣接エリアのサーバSV1とサーバSV3を隣接点テーブルにて特定する。そして、サーバSV2は、サーバSV1とサーバSV3に対して、探索ID(1)、出発地P0、出発時刻(15:30:00)、目的地PN、自エリアの探索終了地点(隣接点P5)、出発地P0から自エリアの探索終了地点(隣接点P5)までの経路及び探索終了地点(隣接点P5)の通過予定時刻(15:36:00)を送信手段23から送信する(ステップS75)。
【0069】
上述と同様に、探索開始地点(隣接点P1)から探索終了地点(隣接点P6〜P9)までの経路探索を行い、探索終了地点(隣接点P6〜P9)の通過予定時刻を図4(b)に示すように探索結果テーブルに新規登録し(ステップS74)、隣接点P6〜P9を担当するサーバSV3に対して、探索情報を送信手段23にて送信する(ステップS75)。サーバSV2は、全ての隣接点について経路の探索を行った後、処理を終了する。
【0070】
次に、サーバSV2は、サーバSV1から送信された、隣接点P2に関する探索情報を受信手段21で受信することで処理を開始する(ステップS61)。
【0071】
サーバSV2は、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P2)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P2)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0072】
ここでは、探索ID(1)と関連付けられた、探索開始地点(隣接点P2)が探索結果テーブルに登録されているため(ステップS65、Yes)、受信した探索情報に含まれている探索開始地点(隣接点)の通過予定時刻t2が、既に探索結果テーブルに登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS66)。ここでは、受信した探索情報に含まれる探索開始地点(隣接点P2)の通過予定時刻t2(15:33:00)が、既に探索結果テーブルに登録されている同点の通過予定時刻t1(15:34:00)より早いため(ステップS66、Yes)、図7に示すように探索開始地点(隣接点P2)の通過予定時刻を通過予定時刻t2(15:33:00)に更新し(ステップS63)、経路探索手段22により経路探索を開始する(ステップS64)。
【0073】
次に、経路探索を開始すると、サーバSV2は、目的地PNがエリアA2内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNがエリアA2内に存在しないため(ステップS67、No)、隣接点テーブルから登録されている順序で隣接点P1を取り出し(ステップS71)、探索開始地点(隣接点P2)から探索終了地点(隣接点P1)までの経路の探索を行う(ステップS72)。
【0074】
次に、サーバSV2は、探索開始地点(隣接点P2)から探索終了地点(隣接点P1)までの経路探索の結果、探索終了地点(隣接点P1)の通過予定時刻t2が、探索結果テーブルに既に登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、探索終了地点(隣接点P1)の通過予定時刻t2(15:35:00)が、探索結果テーブルに登録されている同点の通過予定時刻t1(15:32:00)より遅いため(ステップS73、No)、次に、自エリアA2内に経路探索を行っていない隣接点が他にあるか否かを隣接点テーブルを用いて判定する(ステップS76)。ここでは、経路探索を行っていない隣接点P5〜P9があるため、(ステップS76、Yes)、上述と同様に隣接点P5を取り出し(ステップS71)、探索開始地点(隣接点P2)から探索終了地点(隣接点P5)までの経路を探索する(ステップS72)。
【0075】
探索開始地点(隣接点P2)から探索終了地点(隣接点P5)までの経路探索の結果、探索終了地点(隣接点P5)の通過予定時刻t2が、探索結果テーブルに既に登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、探索終了地点(隣接点P5)の通過予定時刻t2(15:34:45)が、探索結果テーブルに既に登録されている同点の通過予定時刻t1(15:36:00)より早いため(ステップS73、Yes)、探索結果テーブルにおける探索終了地点(隣接点P5)の通過予定時刻を図7に示すように更新する(ステップS74)。
【0076】
さらに、サーバSV2は、探索終了地点(隣接点P5)で隣接するエリアを担当する隣接エリアのサーバSV1とサーバSV3を隣接点テーブルにて特定する。そして、サーバSV2は、サーバSV1とサーバSV3に対して、探索ID(1)、出発地P0、出発時刻(15:30:00)、目的地PN、自エリアの探索終了地点(隣接点P5)、出発地P0から自エリアの探索終了地点(隣接点P5)までの経路及び探索終了地点(隣接点P5)の通過予定時刻(15:34:45)を送信手段23にて送信する(ステップS75)。
【0077】
上述と同様に、探索開始地点(隣接点P2)から探索終了地点(隣接点P6〜P9)までの経路探索を行い、探索終了地点(隣接点P6〜P9)の通過予定時刻について、図7に示すように探索結果テーブルを更新し(ステップS74)、隣接点P6〜P9を担当するサーバSV3に探索情報を送信手段23にて送信する(ステップS75)。サーバSV2は、全ての隣接点について経路の探索を行った後、処理を終了する。
【0078】
次に、サーバSV1から探索情報を受信したサーバSV3の動作について説明する。
【0079】
サーバSV3は、サーバSV1から送信された、隣接点P3に関する探索情報を受信手段31で受信することで処理を開始する(ステップS61)。
【0080】
サーバSV3は、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P3)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P3)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0081】
ここでは、探索ID(1)が、探索結果テーブルに登録されていないため(ステップS65、No)、図4(c)に示すように、探索ID(1)と、受信した探索開始地点(隣接点P3)と、同点の通過予定時刻(15:35:00)とを探索テーブルに新規登録し(ステップS63)、経路探索手段32により経路探索を開始する(ステップS64)。
【0082】
次に、経路探索を開始すると、サーバSV3は、目的地PNがエリアA3内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNがエリアA3内に存在するため(ステップS67、Yes)、探索開始地点(隣接点P3)から探索終了地点(目的地PN)までの経路の探索を行う(ステップS68)。
【0083】
次に、サーバSV3は、探索開始地点(隣接点P3)から探索終了地点(目的地PN)までの経路探索の結果、探索終了地点(目的地PN)の到着予定時刻t4が、探索結果テーブルに既に登録されている同点の到着予定時刻t3より早いか否かを判定する(ステップS69)。ここでは、目的地PNの到着予定時刻t3が探索結果テーブルに登録されていないため、探索ID(1)と、探索終了地点(目的地PN)と、同点の到着予定時刻(15:48:00)とを探索結果テーブルに新規登録する(ステップS70)。そして、サーバSV3は処理を終了する。
【0084】
次に、サーバSV3は、サーバSV1から送信された、隣接点P4に関する探索情報を受信手段31で受信することで処理を開始する(ステップS61)。
【0085】
サーバSV3は、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P4)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P4)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0086】
探索ID(1)と関連付けられた、探索開始地点(隣接点P4)が探索テーブルに登録されていないため(ステップS65、No)、その探索ID(1)と、探索開始地点(隣接点P4)と、同点の通過予定時刻(15:33:00)とを図4(c)に示すように、探索結果テーブルに新規登録し(ステップS63)、経路探索手段32により経路探索を開始する(ステップS64)。
【0087】
次に、経路探索を開始すると、サーバSV3は、目的地PNが自エリアA3内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNが自エリアA3内に存在するため(ステップS67、Yes)、探索開始地点(隣接点P4)から探索終了地点(目的地PN)までの経路の探索を行う(ステップS68)。
【0088】
次に、サーバSV3は、探索開始地点(隣接点P4)から探索終了地点(目的地PN)までの経路探索の結果、探索終了地点(目的地PN)の到着予定時刻t4が、探索結果テーブルに既に登録されている同点の到着予定時刻t3より早いか否かを判定する(ステップS69)。ここでは、到着予定時刻t4(15:43:00)が到着予定時刻t3(15:48:00)より早いため(ステップS69、Yes)、探索結果テーブルの探索終了地点(目的地PN)の到着予定時刻を到着予定時刻t4(15:43:00)に更新する(ステップS70)。そして、サーバSV3は処理を終了する。
【0089】
上述と同様に、サーバSV3は、サーバSV1から送信された、隣接点P5に関する探索情報をもとに、探索結果テーブルの探索開始地点(隣接点P5)の通過予定時刻(15:35:00)を図4(c)に示すように、新規登録する(ステップS63)。また、探索開始地点(隣接点P5)から探索終了地点(目的地PN)までの経路探索を行い、図4(c)に示すように、探索終了地点(目的地PN)の到着予定時刻を到着予定時刻t4(15:42:00)に更新する(ステップS70)。そして、サーバSV3は処理を終了する。
【0090】
次に、サーバSV2から探索情報を受信したサーバSV3の動作について説明する。
【0091】
サーバSV3は、サーバSV2から送信された、隣接点P5に関する探索情報を受信手段31で受信することで処理を開始する(ステップS61)。
【0092】
サーバSV3は、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P5)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P5)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0093】
探索ID(1)と関連付けられた、探索開始地点(隣接点P5)が探索テーブルに登録されているため(ステップS65、Yes)、受信した探索情報に含まれる探索開始点(隣接点P5)の通過予定時刻t2が、探索テーブルに既に登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS66)。
【0094】
ここでは、通過予定時刻t2(15:34:45)が通過予定時刻t1(15:35:00)より早いため(ステップS66、Yes)、図8に示すように、探索結果テーブルの探索開始地点(隣接点P5)の通過予定時刻を15:34:45に更新し(ステップS63)、経路探索を開始する(ステップS64)。
【0095】
次に、経路探索を開始すると、サーバSV3は、目的地PNがエリアA3内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNがエリアA3内に存在するため(ステップS67、Yes)、探索開始地点(隣接点P5)から探索終了地点(目的地PN)までの経路の探索を行う(ステップS68)。
【0096】
次に、サーバSV3は、探索開始地点(隣接点P5)から探索終了地点(目的地PN)までの経路探索の結果、探索終了地点(目的地PN)の到着予定時刻t4が、探索結果テーブルに既に登録されている到着予定時刻t3より早いか否かを判定する(ステップS69)。ここでは、到着予定時刻t4(15:43:30)が到着予定時刻t3(15:43:00)より遅いため(ステップS69、No)、探索結果テーブルの更新を行うことなく、サーバSV3は処理を終了する。
【0097】
上述と同様に、サーバSV3は、サーバSV2から送信された、隣接点P6〜P9に関する探索情報を受信し、経路探索を行った結果に従って、図8に示すように探索結果テーブルを更新する(ステップS70)。サーバSV3は、目的地PNまでの経路探索を全て終了すると、経路探索クライアント装置に対して、出発地P0から目的地PNまでの最適な経路(この例では、出発地P0、隣接点P2、隣接点P8及び目的地PNの経路)と目的地PNの到着予定時刻(15:41:00)とを送信して、処理を終了する。経路探索が全て終了したか否かの判断は、ここでは例として、通信バッファに同じ探索IDの探索要求がなくなったことを条件に経路探索が全て終了したものと判断する。
【0098】
以上のように、本実施の形態1の経路探索システムによれば、出発地から目的地までのエリア毎にサーバを設け、受信した探索情報に基づいた探索結果を隣接するエリアを担当するサーバに順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0099】
また、詳細な経路探索をエリア毎のサーバで協調分散して行うため、各サーバの経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0100】
(実施の形態2)
本発明の実施の形態2は、地図データを分割したエリアが重複する場合を例として説明する。
【0101】
図9において、前述の図2と同様、太い実線は道路、網点部の領域はエリアA1、斜線部の領域はエリアA2、格子部の領域はエリアA3を示す。各エリア内の四角形は、サーバSV1、SV2、SV3を示す。また、楕円は、エリアA1とエリアA2との境界、エリアA1とエリアA3との境界及びエリアA2とエリアA3との境界における道路の交差点であって、隣接点P1、P2、P3、P4、P5、P6、P7、P8、P9を示す。エリアA1の三角形は、経路探索を開始する出発地P0を示し、エリアA3の逆三角形は、経路探索を終了する目的地PNを示す。また、隣接点P2、P5、P6、P7及びP8で囲まれた領域が、エリアA2とエリアA3が重複している箇所である。
【0102】
この場合、例として、エリアA2を担当するサーバSV2は、重複する隣接点P5〜P8を隣接点テーブルに登録し、エリアA3を担当するサーバSV3は、重複する隣接点P2とP8を隣接点テーブルに登録する。すなわち、サーバSV2とサーバSV3との間でエリアの領域調整を行う必要はなく、各サーバは道路形状に合わせてエリアを自由に設定することができる。
【0103】
前述の本実施の形態1と同様の経路探索システムによれば、図9に示すエリアが重複する場合でも、出発地から目的地までのエリア毎にサーバを設け、受信した探索情報に基づいた探索結果を隣接するエリアを担当するサーバに順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0104】
また、詳細な経路探索をエリア毎のサーバで協調分散して行うため、各サーバの経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0105】
さらに、目的地がエリア内にある場合でも、目的地までの探索終了後、隣接点までの探索を行い、その探索結果を隣接エリアを担当するサーバに送信することも可能である。例えば、エリアの境界が複雑に入り組んでいる場合や隣接エリアに目的地への近道がある場合にも対応が可能となり、エリア選択の自由度は更に増すこととなる。
【0106】
なお、上記本実施の形態では、隣接点の通過予定時刻を用いた経路探索システムについて説明を行ったが、隣接点までの経路距離等の単調増加の要素を使用することも可能である。
【0107】
また、上記本実施の形態では、目的地又は隣接点を取り出して、探索開始地点から目的地又は隣接点までの経路探索を順次行うように記載しているが、ダイクストラ法を用いれば、通過予定時刻の早い地点から順次経路を求めることができる。
【0108】
本実施の形態において、探索開始地点からダイクストラ法を用いる手順について、図10に示すフローチャートを用いて説明する。
【0109】
まず、図11に示す展開点リストに探索開始地点を追加する(ステップS81)。展開点リストには、展開点と、通過予定時刻と、展開済みか否かを示す展開済みフラグとが登録される。展開点リストに展開点を新規登録するときは、通過予定時刻を登録し、展開済みフラグは未展開として登録する。
【0110】
次に、展開済みフラグが未展開である点が、展開点リストにあるかどうかを判定する(ステップS82)。展開済みフラグが未展開である点が、展開点リストにない場合(ステップS82、No)、処理を終了する。
【0111】
一方、展開済みフラグが未展開である点が、展開点リストにある場合(ステップS82、Yes)、未展開の点のうち、通過予定時刻が一番早い点を取り出し(ステップS83)、展開済みにする(ステップS84)。
【0112】
次に、取り出した点が、目的地か否かを判定する(ステップS85)。取り出した点が、目的地の場合(ステップS85、Yes)、到着予定時刻t4が、既に探索結果テーブルに登録されている到着予定時刻t3より早いかどうかを判定する(ステップS86)。到着予定時刻t4が、既に探索結果テーブルに登録されている到着予定時刻t3より早い場合(ステップS86、Yes)、探索結果テーブルを更新し(ステップS87)し、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。一方、到着予定時刻t4が、既に探索結果テーブルに登録されている到着予定時刻t3より遅い場合(ステップS86、No)、探索結果テーブルを更新せずに、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。
【0113】
一方、取り出した点が、目的地ではない場合(ステップS85、Yes)、取り出した点が、隣接点か否かを判定する(ステップS88)。
【0114】
取り出した点が、隣接点である場合(ステップS88、Yes)、通過予定時刻t2が、既に探索結果テーブルに登録されている通過予定時刻t1よりも早いか否かを判定する(ステップS89)。通過予定時刻t2が、既に探索結果テーブルに登録されている通過予定時刻t1よりも早い場合(ステップS89、Yes)、探索結果テーブルを更新し(ステップS90)、探索情報を隣接サーバに送信する(ステップS91)。そして、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。一方、通過予定時刻t2が、既に探索結果テーブルに登録されている通過予定時刻t1よりも遅い場合(ステップS89、No)、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。
【0115】
一方、取り出した点が、隣接点ではない場合(ステップS88、No)、その点を展開する(ステップS92)。すなわち、その点の回りの点を取り出だす。ここで、回りの点とは、他の点を通らなくても行ける点のことをいう。図12に示す点P10の場合は、点P11〜P15が回りの点となる。次に、展開点リストを調べ、取り出した回りの点が、登録されていない場合は通過予定時刻とともに展開点リストに追加する。一方、取り出した回りの点が、登録されている場合、通過予定時刻が既に登録されている通過時刻より早いか否かを判定する。
【0116】
通過予定時刻が展開点リストに既に登録されている通過予定時刻より早い場合は、展開点リストの通過予定時刻を変更し、展開済みフラグを未展開にする。一方、通過予定時刻が展開点リストに既に登録されている通過予定時刻より遅い場合は何も処理を行わない。そして、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。
【0117】
この手順を用いることにより、同じ経路を隣接点毎に探索する必要がなく、効率的に経路探索を行うことができる。
【産業上の利用可能性】
【0118】
以上のように、本発明にかかる経路探索方法、経路探索システム及び経路探索サーバ装置は、出発地から目的地までの探索距離の長さ、道路形状の複雑さに関係なく、細街路まで含めた詳細な経路探索を行うことができるという効果を有し、ナビゲーション装置等の経路探索方法等として有用である。
【図面の簡単な説明】
【0119】
【図1】本発明の実施の形態1における経路探索システムの構成を示すブロック図
【図2】本発明の実施の形態1における経路探索システムの地図データの分割例を示す図
【図3】(a)本発明の実施の形態1における経路探索サーバ装置SV1の隣接点テーブルを示す図(b)本発明の実施の形態1における経路探索サーバ装置SV2の隣接点テーブルを示す図(c)本発明の実施の形態1における経路探索サーバ装置SV3の隣接点テーブルを示す図
【図4】(a)本発明の実施の形態1における経路探索サーバ装置SV1の探索結果テーブルを示す図(b)本発明の実施の形態1における経路探索サーバ装置SV2の探索結果テーブルを示す図(c)本発明の実施の形態1における経路探索サーバ装置SV3の探索結果テーブルを示す図
【図5】本発明の実施の形態1における経路探索サーバ装置の経路探索動作を示すフローチャート
【図6】本発明の実施の形態1における経路探索サーバ装置の経路探索動作を示すフローチャート
【図7】本発明の実施の形態1における経路探索サーバ装置SV2の更新後の探索結果テーブルを示す図
【図8】本発明の実施の形態1における経路探索サーバ装置SV3の更新後の探索結果テーブルを示す図
【図9】本発明の実施の形態2における経路探索システムの地図データの分割例を示す図
【図10】本発明の実施の形態における経路探索サーバ装置のダイクストラ法を用いた経路探索動作を示すフローチャート
【図11】本発明の実施の形態における経路探索サーバ装置の展開点の例を示す図
【図12】本発明の実施の形態における経路探索サーバ装置の展開点リストを示す図
【符号の説明】
【0120】
11、21、31 受信手段
12、22、32 経路探索手段
13、23、33 送信手段
A1、A2、A3 エリア
SV1、SV2、SV3 経路探索サーバ装置
P0 出発地
PN 目的地
P1、P2、P3、P4、P5、P6、P7、P8、P9 隣接点
P10、P11、P12、P13、P14 点
【技術分野】
【0001】
本発明は、出発地から目的地までの経路を探索する経路探索方法、経路探索システム及び経路探索サーバ装置に関するものである。
【背景技術】
【0002】
従来のナビゲーション装置等の経路探索方法は、地図データを分割し、道路種別に従って階層化して、探索する経路数を減らすことにより、探索の効率化を図っている。この方法は、各階層の地図データをブロックに分割して、出発地と目的地とのブロックの位置関係に応じて、経路探索を行っている。すなわち、はじめに、出発地と目的地とを含む最詳細なブロックにおいて、そのブロック同士が隣接しない場合は、上位階層のブロックに連結する連結交差点までの経路を探索する。次に、上位階層のブロックに移行して、この連結交差点を出発点としてブロック内を探索する。この探索を繰り返すことにより、最終的に出発地側からの探索と目的地側からの探索とが、同一ブロック、又は隣接ブロックとなった時点で、両者の経路を連結させて経路探索を終了する。
【0003】
以上のように、地図データを階層構造にブロック分割し、出発地と目的地とを含むブロックの階層から上位階層のブロックに順次移行して探索を行うことで、探索時間が短縮され、効率のよい経路探索を行っている(例えば、特許文献1)。
【特許文献1】特開平2−56591号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の経路探索方法においては、出発地と目的地との探索距離が長くなるに伴って、主要幹線道路や高速道路等の上位階層の道路を通る経路探索が行われる。また、市街地等の複雑な道路形状の場合も同様に、上位階層の地図を用いた経路探索へ移行される。このため、細街路まで含めた詳細な経路探索を行うことが困難であった。
【0005】
本発明は、従来の問題を解決するためになされたもので、出発地から目的地までの探索距離の長さ、道路形状の複雑さに関係なく、細街路まで含めた詳細な経路探索を行うことができる経路探索方法、経路探索システム及び経路探索サーバ装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の経路探索方法は、地図データを分割したエリア毎に経路探索サーバ装置を有し、前記経路探索サーバ装置が、自エリアに隣接する第1のエリアの経路探索サーバ装置から第1の探索情報を受信する受信ステップと、前記第1の探索情報に基づいて、自エリア内の経路を探索するステップと、経路探索の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの経路探索サーバ装置に送信するステップとを備えた構成を有する。
【0007】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0008】
また、本発明の経路探索方法は、前記経路探索ステップが、前記第1の探索情報に含まれる探索開始地点の通過予定時刻が、自経路探索サーバ装置に登録されている前記探索開始地点の通過予定時刻より早いか否かを判定し、早いとの判定がなされたときに、自エリア内の経路を探索する構成を有する。
【0009】
この構成により、経路探索サーバ装置の経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0010】
また、本発明の経路探索方法は、前記送信ステップが、自エリアの探索終了地点、出発地から自エリアの探索終了地点までの経路及び探索終了地点の通過予定時刻を隣接するエリアの経路探索サーバ装置に送信する構成を有する。
【0011】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0012】
また、本発明の経路探索システムは、地図データを分割したエリア毎に経路探索サーバ装置を有し、前記経路探索サーバ装置は、自エリアに隣接する第1のエリアの経路探索サーバ装置から第1の探索情報を受信する受信手段と、前記第1の探索情報に基づいて、自エリア内の経路を探索する経路探索手段と、前記経路探索手段の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの経路探索サーバ装置に送信する送信手段とを備えた構成を有する。
【0013】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。さらに、詳細な経路探索をエリア毎の経路探索サーバ装置で協調分散して行うため、各経路探索サーバ装置の経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0014】
本発明の経路探索サーバ装置は、自エリアに隣接する第1のエリアの通信装置から第1の探索情報を受信する受信手段と、前記第1の探索情報に基づいて自エリア内の経路を探索する経路探索手段と、前記経路探索手段の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの通信装置に送信する送信手段とを備えた構成を有する。
【0015】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0016】
本発明の経路探索サーバ装置は、前記経路探索手段が、前記第1の探索情報に含まれる探索開始地点の通過予定時刻が、自経路探索サーバ装置に登録されている前記探索開始地点の通過予定時刻より早いか否かを判定し、早いとの判定がなされたときに、自エリア内の経路を探索する構成を有する。
【0017】
この構成により、経路探索サーバ装置の経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0018】
本発明の経路探索サーバ装置は、前記送信手段が、自エリアの探索終了地点、出発地から自エリアの探索終了地点までの経路及び探索終了地点の通過予定時刻を隣接するエリアの通信装置に送信する構成を有する。
【0019】
この構成により、受信した探索情報に基づいた探索結果を隣接するエリアを担当する経路探索サーバ装置に順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【発明の効果】
【0020】
本発明は、出発地から目的地までの探索距離の長さ、道路形状の複雑さに関係なく、細街路まで含めた詳細な経路探索を行うことができる経路探索方法、経路探索システム及び経路探索サーバ装置を提供することができるものである。
【発明を実施するための最良の形態】
【0021】
以下、本発明の実施の形態について、図面を用いて説明する。
【0022】
(実施の形態1)
図1は、本発明の実施の形態1の経路探索システムの構成を示すブロック図である。図2は、本発明の実施の形態1の経路探索システムにおける地図の分割例を説明する図である。
【0023】
図1に示すように、本実施の形態1の経路探索システムは、地図を複数に分割したエリア毎に、予め決められたエリア内を経路探索する経路探索サーバ装置(以下、サーバという)SV1、SV2、SV3を有している。
【0024】
サーバSV1は、図2に示す予め決められたエリアA1を担当し、エリアA1内の経路探索を行う経路探索手段12と、エリアA1に隣接するエリアA2、A3をそれぞれ担当するサーバSV2、SV3の各々の送信手段23、33から探索情報をそれぞれ受信する受信手段11と、サーバSV2、SV3の各々の受信手段21、31に探索情報をそれぞれ送信する送信手段13とを有している。
【0025】
サーバSV2は、前述のように、図2に示す予め決められたエリアA2を担当し、エリアA2内の経路探索を行う経路探索手段22と、エリアA2に隣接するエリアA1、A3をそれぞれ担当するサーバSV1、SV3の各々の送信手段13、33から探索情報をそれぞれ受信する受信手段21と、サーバSV1、SV3の各々の受信手段11、31に探索情報をそれぞれ送信する送信手段23とを有している。
【0026】
サーバSV3は、前述のように、図2に示す予め決められたエリアA3を担当し、エリアA3内の経路探索を行う経路探索手段32と、エリアA3と隣接するエリアA1、A2をそれぞれ担当するサーバSV1、SV2の各々の送信手段13、23から探索情報をそれぞれ受信する受信手段31と、サーバSV1、SV2に探索情報をそれぞれ送信する送信手段33とを有している。
【0027】
図2において、太い実線は道路、網点部の領域はエリアA1、斜線部の領域はエリアA2、格子部の領域はエリアA3を示す。各エリア内の四角形は、サーバSV1、SV2、SV3を示す。また、楕円は、エリアA1とエリアA2との境界、エリアA1とエリアA3との境界及びエリアA2とエリアA3との境界における道路の交差点であって、隣接点P1、P2、P3、P4、P5、P6、P7、P8、P9を示す。エリアA1の三角形は、経路探索を開始する出発地P0を示し、エリアA3の逆三角形は、経路探索を終了する目的地PNを示す。
【0028】
次に、図3(a)〜図3(c)及び図4(a)〜図4(c)を用いて、サーバSV1〜SV3に登録する情報テーブルについて説明する。
【0029】
図3(a)は、サーバSV1に事前登録されているエリアA1内の各隣接点P1〜P5と、これらの隣接点で隣接するエリアを担当するサーバとを予め関連付けた隣接点テーブルを示す。
【0030】
図3(b)は、前述のように、サーバSV2に事前登録されているエリアA2内の各隣接点P1、P2及びP5〜P9と、これらの隣接点で隣接するエリアを担当するサーバとを予め関連付けた隣接点テーブルを示す。
【0031】
図3(c)は、前述のように、サーバSV3に事前登録されているエリアA3内の各隣接点P3〜P9と、これらの隣接点で隣接するエリアを担当するサーバとを予め関連付けた隣接点テーブルを示す。
【0032】
図4(a)、図4(b)及び図4(c)は、経路探索を行う過程において、サーバSV1〜SV3に登録される、探索IDと、エリア内の探索開始地点(出発地又は隣接点)又は探索終了地点(隣接点又は目的地)と、その地点の出発時刻(出発地)、通過予定時刻(隣接点)又は到着予定時刻(目的地)とを関連付けた探索結果テーブルを示す。探索結果テーブルに登録する各情報については、後述の動作説明にて具体例を示し説明する。
【0033】
上記経路探索システムの動作について、図5及び図6に示すフローチャートを用いて説明する。
【0034】
図5において、サーバは、カーナビゲーション等の経路探索クライアント装置(図示せず)又は隣接するエリアを担当するサーバから送信された探索情報を受信手段にて受信することで処理を開始する(ステップS61)。
【0035】
サーバは、経路情報を受信すると、まず、受信した経路情報に含まれる検索IDと検索開始地点を取り出し、検索IDに関連付けられた、探索開始地点が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0036】
探索IDと関連付けられた、探索開始地点(隣接点)が探索結果テーブルに登録されていない場合(ステップS65、No)、その探索IDと、探索情報に含まれる探索開始地点(隣接点)と、探索情報に含まれている同点の通過予定時刻とを探索結果テーブルに新規登録し(ステップS63)、その探索開始地点(隣接点)から探索終了地点(自エリアの他の隣接点又は目的地)までの経路探索を経路探索手段にて開始する(ステップS64)。
【0037】
一方、探索IDと関連付けられた、探索開始地点(隣接点)が探索結果テーブルに登録されている場合(ステップS65、Yes)、サーバは、受信した探索情報に含まれている探索開始地点(隣接点)の通過予定時刻t2が、既に探索結果テーブルに登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS66)。これは、同一の探索開始地点(隣接点)を通過する通過予定時刻が早い経路についてのみ、同点から探索終了地点(自エリアの他の隣接点又は目的地)まで経路探索を行い、通過予定時刻が遅い経路については経路探索を行わないようにするためのものである。
【0038】
受信した探索情報に含まれる探索開始地点(隣接点)の通過予定時刻t2が、既に探索結果テーブルに登録されている同点の通過予定時刻t1より早い場合(ステップS66、Yes)、探索結果テーブルの通過予定時刻を通過予定時刻t2に更新し(ステップS63)、その探索開始地点(隣接点)から探索終了地点(自エリアの他の隣接点又は目的地)までの経路探索を経路探索手段にて開始する(ステップS64)。
【0039】
一方、受信した探索情報に含まれる探索開始地点(隣接点)の通過予定時刻t2が、既に探索テーブルに登録されている同点の通過予定時刻t1より遅い場合(ステップS66、No)、サーバは経路探索を行うことなく、処理を終了する。
【0040】
次に、図6において、サーバが経路探索を開始した後の動作について説明する。
【0041】
まず、経路探索を開始すると、サーバは、目的地が自エリア内に存在するか否かを判定する(ステップS67)。目的地が自エリア内に存在する場合(ステップS67、YES)、探索開始地点(出発地又は隣接点)から目的地までの経路を探索する(ステップS68)。
【0042】
さらに、ステップS68で経路の探索を行った結果、目的地の到着予定時刻t4が、探索結果テーブルに既に登録されている、探索情報に含まれている探索IDと同じ探索IDで関連付けられた目的地の到着予定時刻t3より早いか否かを判定する(ステップS69)。目的地の到着予定時刻t4が、探索結果テーブルに既に登録されている目的地の到着予定時刻t3より早い場合(ステップS69、YES)、探索結果テーブルの到着予定時刻を到着予定時刻t4に更新する(ステップS70)。なお、探索情報に含まれている探索IDと同じ探索IDで関連付けられた目的地の到着予定時刻が、探索結果テーブルに登録されていない場合は、探索IDと、探索終了地点(目的地)と、到着予定時刻t4とを探索結果テーブルに新規登録する(ステップS70)。
【0043】
一方、ステップS68で経路探索を行った結果、目的地の到着予定時刻t4が、探索結果テーブルに既に登録されている目的地の到着予定時刻t3より遅い場合(ステップS69、NO)、サーバは、探索結果テーブルに新規登録又は更新を行うことなく、処理を終了する。
【0044】
次に、目的地が自エリア外の場合(ステップS67、NO)、サーバは、隣接点テーブルから登録順に隣接点を一つ取り出し(ステップS71)、探索開始地点(出発地又は隣接点)から取り出した隣接点までの経路を探索する(ステップS72)。なお、隣接点を取り出す順番は隣接点テーブルの登録順に限定されるものではなく、目的地に距離が近い順番等でもよい。目的地に距離が近い順番に隣接点を取り出すことにより、探索順序をコントロールできるため、無駄な探索を行うことが少なくなり、効率的な探索を行うことができる。
【0045】
次に、サーバは、ステップS72で経路の探索を行った結果、その探索終了地点(隣接点)の通過予定時刻t2が、探索結果テーブルに既に登録されている、探索情報に含まれている探索IDと同じ探索IDで関連付けられた同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。通過予定時刻t2が通過予定時刻t1より早い場合(ステップS73、Yes)、探索結果テーブルの通過予定時刻を通過予定時刻t2に更新する(ステップS74)。なお、探索情報に含まれている探索IDと同じ探索IDで関連付けられた通過予定時刻が、探索結果テーブルに登録されていない場合は、探索IDと、探索終了地点(隣接点)と、同点の通過予定時刻t2とを探索結果テーブルに新規登録する(ステップS74)。
【0046】
さらに、サーバは、探索結果テーブルへ各情報の新規登録又は更新を行った後、隣接点テーブルから探索終了地点(隣接点)で隣接するエリアを担当する隣接エリアのサーバを特定する。そして、そのサーバに対して、探索ID、出発地、出発時刻、目的地、自エリアの探索終了地点(同点を担当する隣接エリアのサーバにとっては、探索開始地点となる)、出発地から自エリアの探索終了地点(隣接点)までの経路及び探索終了地点(隣接点)の通過予定時刻を送信手段にて送信する(ステップS75)。
【0047】
一方、通過予定時刻t2が通過予定時刻t1より遅い場合(ステップS73、No)、又はステップS75で探索情報を送信した後、自エリア内に経路の探索を行っていない隣接点が他にあるか否かを隣接点テーブルを用いて判定する(ステップS76)。
【0048】
隣接点テーブルに経路の探索を行っていない隣接点が他にある場合(ステップS76、Yes)、上述と同様に隣接点を一つ取り出し、ステップS72〜S76を繰り返す。これにより、探索開始地点(出発地又は隣接点)から自エリア内の全ての探索終了地点(隣接点)まで経路の探索を行い、各探索終了地点(隣接点)を担当する隣接エリアのサーバに対して、探索結果を順次引継いでいく。
【0049】
一方、隣接点テーブルに経路探索を行っていない隣接点がない場合(ステップS76、No)、サーバは、処理を終了する。
【0050】
次に、図2に示す出発地P0から目的地PNまでの経路探索を行う場合を例にとって、上述の動作を具体的に説明する。
【0051】
まず、サーバSV1は、カーナビゲーション等の経路探索クライアント装置(図示せず)から送信された、出発地P0、目的地PN及び出発時刻を含む探索情報を受信手段11にて受信することで処理を開始する(ステップS61)。
【0052】
サーバSV1は、経路情報を受信すると、まず、受信した経路情報に含まれる検索ID(この例では、1とする)と検索開始地点(出発地P0)を取り出し、検索ID(1)に関連付けられた、探索開始地点(出発地P0)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0053】
ここでは、探索ID(1)と関連付けられた、探索開始地点(出発地P0)が探索結果テーブルに登録されていないため(ステップS65、No)、図4(a)に示すように、その探索ID(1)と探索開始地点(出発地P0)と、受信した出発時刻(この例では、15:30:00とする)とを探索結果テーブルに新規登録し(ステップS63)、経路探索手段12にて経路探索を開始する(ステップS64)。
【0054】
次に、経路探索を開始すると、サーバSV1は、目的地PNが自エリアA1内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNが自エリアA1内に存在しないため(ステップS67、NO)、隣接点テーブルから登録されている順序で隣接点P1を取り出し(ステップS71)、探索開始地点(出発地P0)から探索終了地点(隣接点P1)までの経路を探索する(ステップS72)。
【0055】
サーバSV1は、探索開始地点(出発地P0)から探索終了地点(隣接点P1)までの経路探索の結果、探索終了地点(隣接点P1)の通過予定時刻t2が、探索結果テーブルに既に登録されている、探索情報に含まれている探索IDと同じ探索IDで関連付けられた同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、探索終了地点(隣接点P1)の通過予定時刻t1が、探索結果テーブルに登録されていないため、探索ID(1)と、探索終了地点(隣接点P1)と、同点の通過予定時刻(15:32:00)を図4(a)に示すように、探索結果テーブルに新規登録する(ステップS74)。
【0056】
さらに、サーバSV1は、探索終了地点(隣接点P1)で隣接するエリアを担当する隣接エリアのサーバSV2を隣接点テーブルにて特定する。そして、サーバSV1は、サーバSV2に対して、探索ID(1)、出発地P0、出発時刻(15:30:00)、目的地PN、自エリアの探索終了地点(隣接点P1)、出発地P0から自エリアの探索終了地点(隣接点P1)までの経路及び探索終了地点(隣接点P1)の通過予定時刻(15:32:00)を送信手段13から送信する(ステップS75)。
【0057】
次に、エリアA1内に経路探索を行っていない隣接点が他にあるか否かを隣接点テーブルを用いて判定する(ステップS76)。ここでは、経路探索を行っていない隣接点P2〜P5があるため、(ステップS76、Yes)、上述と同様に隣接点を一つずつ取り出し、ステップS72〜S76を繰り返す。これにより、図4(a)に示すように、探索開始地点(出発地P0)から探索終了地点(隣接点P1〜P5)までの探索結果を探索結果テーブルへ新規登録する。また、隣接点P1及びP2に関する探索情報は、サーバSV2に送信し、隣接点P3〜P4に関する探索情報は、サーバSV3に送信し、隣接点P5に関する探索情報は、サーバSV2およびサーバSV3の両方に送信する。
【0058】
サーバSV1は、全ての隣接点について経路探索を行った場合(ステップS76、No)、処理を終了する。
【0059】
次に、サーバSV1から探索情報を受信したサーバSV2の動作について説明する。
【0060】
まず、サーバSV2は、サーバSV1から送信された、隣接点P1に関する探索情報を受信手段21で受信することで処理を開始する(ステップS61)。
【0061】
サーバSV2は、経路情報を受信すると、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P1)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P1)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0062】
ここでは、探索ID(1)に関連付けられた、検索開始地点(隣接点P1)が探索結果テーブルに登録されていないため(ステップS65、No)、図4(b)に示すように、探索ID(1)と、探索情報に含まれる探索開始地点(隣接点P1)と、同点の通過予定時刻(15:32:00)とを探索結果テーブルに新規登録し(ステップS63)、経路探索手段22により経路探索を開始する(ステップS64)。
【0063】
次に、経路探索を開始すると、まず、サーバSV2は、目的地PNがエリアA2内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNがエリアA2内に存在しないため(ステップS67、No)、隣接点テーブルから登録されている順序で隣接点P2を取り出し(ステップS71)、探索開始地点(隣接点P1)から探索終了地点(隣接点P2)までの経路探索を行う(ステップS72)。ここで、サーバは、探索開始地点と探索終了地点が同一の場合の経路探索は行わないものとするため、隣接点テーブルから隣接点P1ではなく、隣接点P2を取り出す。
【0064】
次に、サーバSV2は、探索開始地点(隣接点P1)から探索終了地点(隣接点P2)までの経路探索の結果、探索終了地点(隣接点P2)の通過予定時刻t2が、探索結果テーブルに既に登録されている、探索情報に含まれている探索IDと同じ探索IDで関連付けられた同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、探索終了地点(隣接点P2)の通過予定時刻t1が探索結果テーブルに登録されていないため、探索ID(1)と、探索終了地点(隣接点P2)と、同点の通過予定時刻(15:34:00)を図4(b)に示すように、探索結果テーブルに新規登録する(ステップS74)。
【0065】
さらに、サーバSV2は、探索終了地点(隣接点P2)で隣接するエリアを担当する隣接エリアのサーバSV1を隣接点テーブルにて特定する。そして、サーバSV2は、サーバSV1に対して、探索ID(1)、出発地P0、出発時刻(15:30:00)、目的地PN、自エリアの探索終了地点(隣接点P2)、出発地P0から自エリアの探索終了地点(隣接点P2)までの経路及び探索終了地点(隣接点P2)の通過予定時刻(15:34:00)を送信手段23から送信する(ステップS75)。
【0066】
次に、自エリアA2内に経路探索を行っていない隣接点が他にあるか否かを隣接点テーブルを用いて判定する(ステップS76)。ここでは、経路探索を行っていない隣接点P5〜P9があるため(ステップS76、Yes)、上述と同様に隣接点P5を取り出し(ステップS71)、探索開始地点(隣接点P1)から探索終了地点(隣接点P5)までの経路を探索する(ステップS72)。
【0067】
探索開始地点(隣接点P1)から探索終了地点(隣接点P5)までの経路探索の結果、探索終了地点(隣接点P5)の通過予定時刻t2が、探索結果テーブルに既に登録されている、同じ探索IDで関連付けられた同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、通過予定時刻t1が探索結果テーブルに登録されていないため、探索ID(1)と、探索終了地点(隣接点P5)と、同点の通過予定時刻(15:36:00)を図4(b)に示すように、探索結果テーブルに新規登録する(ステップS74)。
【0068】
さらに、サーバSV2は、探索終了地点(隣接点P5)で隣接するエリアを担当する隣接エリアのサーバSV1とサーバSV3を隣接点テーブルにて特定する。そして、サーバSV2は、サーバSV1とサーバSV3に対して、探索ID(1)、出発地P0、出発時刻(15:30:00)、目的地PN、自エリアの探索終了地点(隣接点P5)、出発地P0から自エリアの探索終了地点(隣接点P5)までの経路及び探索終了地点(隣接点P5)の通過予定時刻(15:36:00)を送信手段23から送信する(ステップS75)。
【0069】
上述と同様に、探索開始地点(隣接点P1)から探索終了地点(隣接点P6〜P9)までの経路探索を行い、探索終了地点(隣接点P6〜P9)の通過予定時刻を図4(b)に示すように探索結果テーブルに新規登録し(ステップS74)、隣接点P6〜P9を担当するサーバSV3に対して、探索情報を送信手段23にて送信する(ステップS75)。サーバSV2は、全ての隣接点について経路の探索を行った後、処理を終了する。
【0070】
次に、サーバSV2は、サーバSV1から送信された、隣接点P2に関する探索情報を受信手段21で受信することで処理を開始する(ステップS61)。
【0071】
サーバSV2は、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P2)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P2)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0072】
ここでは、探索ID(1)と関連付けられた、探索開始地点(隣接点P2)が探索結果テーブルに登録されているため(ステップS65、Yes)、受信した探索情報に含まれている探索開始地点(隣接点)の通過予定時刻t2が、既に探索結果テーブルに登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS66)。ここでは、受信した探索情報に含まれる探索開始地点(隣接点P2)の通過予定時刻t2(15:33:00)が、既に探索結果テーブルに登録されている同点の通過予定時刻t1(15:34:00)より早いため(ステップS66、Yes)、図7に示すように探索開始地点(隣接点P2)の通過予定時刻を通過予定時刻t2(15:33:00)に更新し(ステップS63)、経路探索手段22により経路探索を開始する(ステップS64)。
【0073】
次に、経路探索を開始すると、サーバSV2は、目的地PNがエリアA2内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNがエリアA2内に存在しないため(ステップS67、No)、隣接点テーブルから登録されている順序で隣接点P1を取り出し(ステップS71)、探索開始地点(隣接点P2)から探索終了地点(隣接点P1)までの経路の探索を行う(ステップS72)。
【0074】
次に、サーバSV2は、探索開始地点(隣接点P2)から探索終了地点(隣接点P1)までの経路探索の結果、探索終了地点(隣接点P1)の通過予定時刻t2が、探索結果テーブルに既に登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、探索終了地点(隣接点P1)の通過予定時刻t2(15:35:00)が、探索結果テーブルに登録されている同点の通過予定時刻t1(15:32:00)より遅いため(ステップS73、No)、次に、自エリアA2内に経路探索を行っていない隣接点が他にあるか否かを隣接点テーブルを用いて判定する(ステップS76)。ここでは、経路探索を行っていない隣接点P5〜P9があるため、(ステップS76、Yes)、上述と同様に隣接点P5を取り出し(ステップS71)、探索開始地点(隣接点P2)から探索終了地点(隣接点P5)までの経路を探索する(ステップS72)。
【0075】
探索開始地点(隣接点P2)から探索終了地点(隣接点P5)までの経路探索の結果、探索終了地点(隣接点P5)の通過予定時刻t2が、探索結果テーブルに既に登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS73)。ここでは、探索終了地点(隣接点P5)の通過予定時刻t2(15:34:45)が、探索結果テーブルに既に登録されている同点の通過予定時刻t1(15:36:00)より早いため(ステップS73、Yes)、探索結果テーブルにおける探索終了地点(隣接点P5)の通過予定時刻を図7に示すように更新する(ステップS74)。
【0076】
さらに、サーバSV2は、探索終了地点(隣接点P5)で隣接するエリアを担当する隣接エリアのサーバSV1とサーバSV3を隣接点テーブルにて特定する。そして、サーバSV2は、サーバSV1とサーバSV3に対して、探索ID(1)、出発地P0、出発時刻(15:30:00)、目的地PN、自エリアの探索終了地点(隣接点P5)、出発地P0から自エリアの探索終了地点(隣接点P5)までの経路及び探索終了地点(隣接点P5)の通過予定時刻(15:34:45)を送信手段23にて送信する(ステップS75)。
【0077】
上述と同様に、探索開始地点(隣接点P2)から探索終了地点(隣接点P6〜P9)までの経路探索を行い、探索終了地点(隣接点P6〜P9)の通過予定時刻について、図7に示すように探索結果テーブルを更新し(ステップS74)、隣接点P6〜P9を担当するサーバSV3に探索情報を送信手段23にて送信する(ステップS75)。サーバSV2は、全ての隣接点について経路の探索を行った後、処理を終了する。
【0078】
次に、サーバSV1から探索情報を受信したサーバSV3の動作について説明する。
【0079】
サーバSV3は、サーバSV1から送信された、隣接点P3に関する探索情報を受信手段31で受信することで処理を開始する(ステップS61)。
【0080】
サーバSV3は、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P3)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P3)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0081】
ここでは、探索ID(1)が、探索結果テーブルに登録されていないため(ステップS65、No)、図4(c)に示すように、探索ID(1)と、受信した探索開始地点(隣接点P3)と、同点の通過予定時刻(15:35:00)とを探索テーブルに新規登録し(ステップS63)、経路探索手段32により経路探索を開始する(ステップS64)。
【0082】
次に、経路探索を開始すると、サーバSV3は、目的地PNがエリアA3内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNがエリアA3内に存在するため(ステップS67、Yes)、探索開始地点(隣接点P3)から探索終了地点(目的地PN)までの経路の探索を行う(ステップS68)。
【0083】
次に、サーバSV3は、探索開始地点(隣接点P3)から探索終了地点(目的地PN)までの経路探索の結果、探索終了地点(目的地PN)の到着予定時刻t4が、探索結果テーブルに既に登録されている同点の到着予定時刻t3より早いか否かを判定する(ステップS69)。ここでは、目的地PNの到着予定時刻t3が探索結果テーブルに登録されていないため、探索ID(1)と、探索終了地点(目的地PN)と、同点の到着予定時刻(15:48:00)とを探索結果テーブルに新規登録する(ステップS70)。そして、サーバSV3は処理を終了する。
【0084】
次に、サーバSV3は、サーバSV1から送信された、隣接点P4に関する探索情報を受信手段31で受信することで処理を開始する(ステップS61)。
【0085】
サーバSV3は、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P4)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P4)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0086】
探索ID(1)と関連付けられた、探索開始地点(隣接点P4)が探索テーブルに登録されていないため(ステップS65、No)、その探索ID(1)と、探索開始地点(隣接点P4)と、同点の通過予定時刻(15:33:00)とを図4(c)に示すように、探索結果テーブルに新規登録し(ステップS63)、経路探索手段32により経路探索を開始する(ステップS64)。
【0087】
次に、経路探索を開始すると、サーバSV3は、目的地PNが自エリアA3内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNが自エリアA3内に存在するため(ステップS67、Yes)、探索開始地点(隣接点P4)から探索終了地点(目的地PN)までの経路の探索を行う(ステップS68)。
【0088】
次に、サーバSV3は、探索開始地点(隣接点P4)から探索終了地点(目的地PN)までの経路探索の結果、探索終了地点(目的地PN)の到着予定時刻t4が、探索結果テーブルに既に登録されている同点の到着予定時刻t3より早いか否かを判定する(ステップS69)。ここでは、到着予定時刻t4(15:43:00)が到着予定時刻t3(15:48:00)より早いため(ステップS69、Yes)、探索結果テーブルの探索終了地点(目的地PN)の到着予定時刻を到着予定時刻t4(15:43:00)に更新する(ステップS70)。そして、サーバSV3は処理を終了する。
【0089】
上述と同様に、サーバSV3は、サーバSV1から送信された、隣接点P5に関する探索情報をもとに、探索結果テーブルの探索開始地点(隣接点P5)の通過予定時刻(15:35:00)を図4(c)に示すように、新規登録する(ステップS63)。また、探索開始地点(隣接点P5)から探索終了地点(目的地PN)までの経路探索を行い、図4(c)に示すように、探索終了地点(目的地PN)の到着予定時刻を到着予定時刻t4(15:42:00)に更新する(ステップS70)。そして、サーバSV3は処理を終了する。
【0090】
次に、サーバSV2から探索情報を受信したサーバSV3の動作について説明する。
【0091】
サーバSV3は、サーバSV2から送信された、隣接点P5に関する探索情報を受信手段31で受信することで処理を開始する(ステップS61)。
【0092】
サーバSV3は、まず、受信した経路情報に含まれる検索ID(1)と検索開始地点(隣接点P5)を取り出し、検索ID(1)に関連付けられた、探索開始地点(隣接点P5)が結果テーブルに登録されているかどうかを確認する(ステップS65)。
【0093】
探索ID(1)と関連付けられた、探索開始地点(隣接点P5)が探索テーブルに登録されているため(ステップS65、Yes)、受信した探索情報に含まれる探索開始点(隣接点P5)の通過予定時刻t2が、探索テーブルに既に登録されている同点の通過予定時刻t1より早いか否かを判定する(ステップS66)。
【0094】
ここでは、通過予定時刻t2(15:34:45)が通過予定時刻t1(15:35:00)より早いため(ステップS66、Yes)、図8に示すように、探索結果テーブルの探索開始地点(隣接点P5)の通過予定時刻を15:34:45に更新し(ステップS63)、経路探索を開始する(ステップS64)。
【0095】
次に、経路探索を開始すると、サーバSV3は、目的地PNがエリアA3内に存在するか否かを判定する(ステップS67)。ここでは、目的地PNがエリアA3内に存在するため(ステップS67、Yes)、探索開始地点(隣接点P5)から探索終了地点(目的地PN)までの経路の探索を行う(ステップS68)。
【0096】
次に、サーバSV3は、探索開始地点(隣接点P5)から探索終了地点(目的地PN)までの経路探索の結果、探索終了地点(目的地PN)の到着予定時刻t4が、探索結果テーブルに既に登録されている到着予定時刻t3より早いか否かを判定する(ステップS69)。ここでは、到着予定時刻t4(15:43:30)が到着予定時刻t3(15:43:00)より遅いため(ステップS69、No)、探索結果テーブルの更新を行うことなく、サーバSV3は処理を終了する。
【0097】
上述と同様に、サーバSV3は、サーバSV2から送信された、隣接点P6〜P9に関する探索情報を受信し、経路探索を行った結果に従って、図8に示すように探索結果テーブルを更新する(ステップS70)。サーバSV3は、目的地PNまでの経路探索を全て終了すると、経路探索クライアント装置に対して、出発地P0から目的地PNまでの最適な経路(この例では、出発地P0、隣接点P2、隣接点P8及び目的地PNの経路)と目的地PNの到着予定時刻(15:41:00)とを送信して、処理を終了する。経路探索が全て終了したか否かの判断は、ここでは例として、通信バッファに同じ探索IDの探索要求がなくなったことを条件に経路探索が全て終了したものと判断する。
【0098】
以上のように、本実施の形態1の経路探索システムによれば、出発地から目的地までのエリア毎にサーバを設け、受信した探索情報に基づいた探索結果を隣接するエリアを担当するサーバに順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0099】
また、詳細な経路探索をエリア毎のサーバで協調分散して行うため、各サーバの経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0100】
(実施の形態2)
本発明の実施の形態2は、地図データを分割したエリアが重複する場合を例として説明する。
【0101】
図9において、前述の図2と同様、太い実線は道路、網点部の領域はエリアA1、斜線部の領域はエリアA2、格子部の領域はエリアA3を示す。各エリア内の四角形は、サーバSV1、SV2、SV3を示す。また、楕円は、エリアA1とエリアA2との境界、エリアA1とエリアA3との境界及びエリアA2とエリアA3との境界における道路の交差点であって、隣接点P1、P2、P3、P4、P5、P6、P7、P8、P9を示す。エリアA1の三角形は、経路探索を開始する出発地P0を示し、エリアA3の逆三角形は、経路探索を終了する目的地PNを示す。また、隣接点P2、P5、P6、P7及びP8で囲まれた領域が、エリアA2とエリアA3が重複している箇所である。
【0102】
この場合、例として、エリアA2を担当するサーバSV2は、重複する隣接点P5〜P8を隣接点テーブルに登録し、エリアA3を担当するサーバSV3は、重複する隣接点P2とP8を隣接点テーブルに登録する。すなわち、サーバSV2とサーバSV3との間でエリアの領域調整を行う必要はなく、各サーバは道路形状に合わせてエリアを自由に設定することができる。
【0103】
前述の本実施の形態1と同様の経路探索システムによれば、図9に示すエリアが重複する場合でも、出発地から目的地までのエリア毎にサーバを設け、受信した探索情報に基づいた探索結果を隣接するエリアを担当するサーバに順次引継ぐことにより、出発地から目的地までのエリアを連続して、詳細な経路探索を行うことができる。
【0104】
また、詳細な経路探索をエリア毎のサーバで協調分散して行うため、各サーバの経路探索に必要な記憶容量を削減することができ、且つ探索時間の短縮化を図ることができる。
【0105】
さらに、目的地がエリア内にある場合でも、目的地までの探索終了後、隣接点までの探索を行い、その探索結果を隣接エリアを担当するサーバに送信することも可能である。例えば、エリアの境界が複雑に入り組んでいる場合や隣接エリアに目的地への近道がある場合にも対応が可能となり、エリア選択の自由度は更に増すこととなる。
【0106】
なお、上記本実施の形態では、隣接点の通過予定時刻を用いた経路探索システムについて説明を行ったが、隣接点までの経路距離等の単調増加の要素を使用することも可能である。
【0107】
また、上記本実施の形態では、目的地又は隣接点を取り出して、探索開始地点から目的地又は隣接点までの経路探索を順次行うように記載しているが、ダイクストラ法を用いれば、通過予定時刻の早い地点から順次経路を求めることができる。
【0108】
本実施の形態において、探索開始地点からダイクストラ法を用いる手順について、図10に示すフローチャートを用いて説明する。
【0109】
まず、図11に示す展開点リストに探索開始地点を追加する(ステップS81)。展開点リストには、展開点と、通過予定時刻と、展開済みか否かを示す展開済みフラグとが登録される。展開点リストに展開点を新規登録するときは、通過予定時刻を登録し、展開済みフラグは未展開として登録する。
【0110】
次に、展開済みフラグが未展開である点が、展開点リストにあるかどうかを判定する(ステップS82)。展開済みフラグが未展開である点が、展開点リストにない場合(ステップS82、No)、処理を終了する。
【0111】
一方、展開済みフラグが未展開である点が、展開点リストにある場合(ステップS82、Yes)、未展開の点のうち、通過予定時刻が一番早い点を取り出し(ステップS83)、展開済みにする(ステップS84)。
【0112】
次に、取り出した点が、目的地か否かを判定する(ステップS85)。取り出した点が、目的地の場合(ステップS85、Yes)、到着予定時刻t4が、既に探索結果テーブルに登録されている到着予定時刻t3より早いかどうかを判定する(ステップS86)。到着予定時刻t4が、既に探索結果テーブルに登録されている到着予定時刻t3より早い場合(ステップS86、Yes)、探索結果テーブルを更新し(ステップS87)し、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。一方、到着予定時刻t4が、既に探索結果テーブルに登録されている到着予定時刻t3より遅い場合(ステップS86、No)、探索結果テーブルを更新せずに、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。
【0113】
一方、取り出した点が、目的地ではない場合(ステップS85、Yes)、取り出した点が、隣接点か否かを判定する(ステップS88)。
【0114】
取り出した点が、隣接点である場合(ステップS88、Yes)、通過予定時刻t2が、既に探索結果テーブルに登録されている通過予定時刻t1よりも早いか否かを判定する(ステップS89)。通過予定時刻t2が、既に探索結果テーブルに登録されている通過予定時刻t1よりも早い場合(ステップS89、Yes)、探索結果テーブルを更新し(ステップS90)、探索情報を隣接サーバに送信する(ステップS91)。そして、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。一方、通過予定時刻t2が、既に探索結果テーブルに登録されている通過予定時刻t1よりも遅い場合(ステップS89、No)、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。
【0115】
一方、取り出した点が、隣接点ではない場合(ステップS88、No)、その点を展開する(ステップS92)。すなわち、その点の回りの点を取り出だす。ここで、回りの点とは、他の点を通らなくても行ける点のことをいう。図12に示す点P10の場合は、点P11〜P15が回りの点となる。次に、展開点リストを調べ、取り出した回りの点が、登録されていない場合は通過予定時刻とともに展開点リストに追加する。一方、取り出した回りの点が、登録されている場合、通過予定時刻が既に登録されている通過時刻より早いか否かを判定する。
【0116】
通過予定時刻が展開点リストに既に登録されている通過予定時刻より早い場合は、展開点リストの通過予定時刻を変更し、展開済みフラグを未展開にする。一方、通過予定時刻が展開点リストに既に登録されている通過予定時刻より遅い場合は何も処理を行わない。そして、展開済みフラグが未展開である点が、展開点リストにあるかどうかを再度判定する(ステップS82)。
【0117】
この手順を用いることにより、同じ経路を隣接点毎に探索する必要がなく、効率的に経路探索を行うことができる。
【産業上の利用可能性】
【0118】
以上のように、本発明にかかる経路探索方法、経路探索システム及び経路探索サーバ装置は、出発地から目的地までの探索距離の長さ、道路形状の複雑さに関係なく、細街路まで含めた詳細な経路探索を行うことができるという効果を有し、ナビゲーション装置等の経路探索方法等として有用である。
【図面の簡単な説明】
【0119】
【図1】本発明の実施の形態1における経路探索システムの構成を示すブロック図
【図2】本発明の実施の形態1における経路探索システムの地図データの分割例を示す図
【図3】(a)本発明の実施の形態1における経路探索サーバ装置SV1の隣接点テーブルを示す図(b)本発明の実施の形態1における経路探索サーバ装置SV2の隣接点テーブルを示す図(c)本発明の実施の形態1における経路探索サーバ装置SV3の隣接点テーブルを示す図
【図4】(a)本発明の実施の形態1における経路探索サーバ装置SV1の探索結果テーブルを示す図(b)本発明の実施の形態1における経路探索サーバ装置SV2の探索結果テーブルを示す図(c)本発明の実施の形態1における経路探索サーバ装置SV3の探索結果テーブルを示す図
【図5】本発明の実施の形態1における経路探索サーバ装置の経路探索動作を示すフローチャート
【図6】本発明の実施の形態1における経路探索サーバ装置の経路探索動作を示すフローチャート
【図7】本発明の実施の形態1における経路探索サーバ装置SV2の更新後の探索結果テーブルを示す図
【図8】本発明の実施の形態1における経路探索サーバ装置SV3の更新後の探索結果テーブルを示す図
【図9】本発明の実施の形態2における経路探索システムの地図データの分割例を示す図
【図10】本発明の実施の形態における経路探索サーバ装置のダイクストラ法を用いた経路探索動作を示すフローチャート
【図11】本発明の実施の形態における経路探索サーバ装置の展開点の例を示す図
【図12】本発明の実施の形態における経路探索サーバ装置の展開点リストを示す図
【符号の説明】
【0120】
11、21、31 受信手段
12、22、32 経路探索手段
13、23、33 送信手段
A1、A2、A3 エリア
SV1、SV2、SV3 経路探索サーバ装置
P0 出発地
PN 目的地
P1、P2、P3、P4、P5、P6、P7、P8、P9 隣接点
P10、P11、P12、P13、P14 点
【特許請求の範囲】
【請求項1】
地図データを分割したエリア毎に経路探索サーバ装置を有し、
前記経路探索サーバ装置は、
自エリアに隣接する第1のエリアの経路探索サーバ装置から第1の探索情報を受信する受信ステップと、
前記第1の探索情報に基づいて、自エリア内の経路を探索する経路探索ステップと、
経路探索の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの経路探索サーバ装置に送信する送信ステップとを備えたことを特徴とする経路探索方法。
【請求項2】
前記経路探索ステップは、
前記第1の探索情報に含まれる探索開始地点の通過予定時刻が、自経路探索サーバ装置に登録されている前記探索開始地点の通過予定時刻より早いか否かを判定し、早いとの判定がなされたときに、自エリア内の経路を探索することを特徴とする請求項1記載の経路探索方法。
【請求項3】
前記送信ステップは、
自エリアの探索終了地点、出発地から自エリアの探索終了地点までの経路及び探索終了地点の通過予定時刻を隣接するエリアの経路探索サーバ装置に送信することを特徴とする請求項1又は2記載の経路探索方法。
【請求項4】
地図データを分割したエリア毎に経路探索サーバ装置を有し、
前記経路探索サーバ装置は、
自エリアに隣接する第1のエリアの経路探索サーバ装置から第1の探索情報を受信する受信手段と、
前記第1の探索情報に基づいて、自エリア内の経路を探索する経路探索手段と、
前記経路探索手段の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの経路探索サーバ装置に送信する送信手段とを備えたことを特徴とする経路探索システム。
【請求項5】
自エリアに隣接する第1のエリアの通信装置から第1の探索情報を受信する受信手段と、
前記第1の探索情報に基づいて自エリア内の経路を探索する経路探索手段と、
前記経路探索手段の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの通信装置に送信する送信手段とを備えたことを特徴とする経路探索サーバ装置。
【請求項6】
前記経路探索手段は、
前記第1の探索情報に含まれる探索開始地点の通過予定時刻が、自経路探索サーバ装置に登録されている前記探索開始地点の通過予定時刻より早いか否かを判定し、早いとの判定がなされたときに、自エリア内の経路を探索することを特徴とする請求項5記載の経路探索サーバ装置。
【請求項7】
前記送信手段は、
自エリアの探索終了地点、出発地から自エリアの探索終了地点までの経路及び探索終了地点の通過予定時刻を隣接するエリアの通信装置に送信することを特徴とする請求項5又は6記載の経路探索サーバ装置。
【請求項1】
地図データを分割したエリア毎に経路探索サーバ装置を有し、
前記経路探索サーバ装置は、
自エリアに隣接する第1のエリアの経路探索サーバ装置から第1の探索情報を受信する受信ステップと、
前記第1の探索情報に基づいて、自エリア内の経路を探索する経路探索ステップと、
経路探索の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの経路探索サーバ装置に送信する送信ステップとを備えたことを特徴とする経路探索方法。
【請求項2】
前記経路探索ステップは、
前記第1の探索情報に含まれる探索開始地点の通過予定時刻が、自経路探索サーバ装置に登録されている前記探索開始地点の通過予定時刻より早いか否かを判定し、早いとの判定がなされたときに、自エリア内の経路を探索することを特徴とする請求項1記載の経路探索方法。
【請求項3】
前記送信ステップは、
自エリアの探索終了地点、出発地から自エリアの探索終了地点までの経路及び探索終了地点の通過予定時刻を隣接するエリアの経路探索サーバ装置に送信することを特徴とする請求項1又は2記載の経路探索方法。
【請求項4】
地図データを分割したエリア毎に経路探索サーバ装置を有し、
前記経路探索サーバ装置は、
自エリアに隣接する第1のエリアの経路探索サーバ装置から第1の探索情報を受信する受信手段と、
前記第1の探索情報に基づいて、自エリア内の経路を探索する経路探索手段と、
前記経路探索手段の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの経路探索サーバ装置に送信する送信手段とを備えたことを特徴とする経路探索システム。
【請求項5】
自エリアに隣接する第1のエリアの通信装置から第1の探索情報を受信する受信手段と、
前記第1の探索情報に基づいて自エリア内の経路を探索する経路探索手段と、
前記経路探索手段の探索結果に従って前記第1の探索情報を更新した第2の探索情報を、自エリアに隣接する第2のエリアの通信装置に送信する送信手段とを備えたことを特徴とする経路探索サーバ装置。
【請求項6】
前記経路探索手段は、
前記第1の探索情報に含まれる探索開始地点の通過予定時刻が、自経路探索サーバ装置に登録されている前記探索開始地点の通過予定時刻より早いか否かを判定し、早いとの判定がなされたときに、自エリア内の経路を探索することを特徴とする請求項5記載の経路探索サーバ装置。
【請求項7】
前記送信手段は、
自エリアの探索終了地点、出発地から自エリアの探索終了地点までの経路及び探索終了地点の通過予定時刻を隣接するエリアの通信装置に送信することを特徴とする請求項5又は6記載の経路探索サーバ装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2006−292667(P2006−292667A)
【公開日】平成18年10月26日(2006.10.26)
【国際特許分類】
【出願番号】特願2005−116883(P2005−116883)
【出願日】平成17年4月14日(2005.4.14)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】
【公開日】平成18年10月26日(2006.10.26)
【国際特許分類】
【出願日】平成17年4月14日(2005.4.14)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】
[ Back to top ]