説明

最短経路探索方法

【課題】 幾何学的な構造を用いた前処理を行い、探索を速め、スケーラビリティとグラフの疎化に優れた最短経路探索方法を提供する。
【解決手段】 最短経路探索方法において、第1の外部記憶装置から地図情報を主記憶装置に読み込み、前記地図情報に基づきメッシュの形状、各メッシュを含む領域である外領域の設定を行い、前記メッシュの疎化ネットワークの構築を行い、第2の外部記憶装置に記憶し、始点と終点の位置情報を入力し、前記始点と前記終点の両者を外領域に含まないメッシュを集め、このメッシュの中で、他のものに含まれない極大なメッシュのみを残し、残りのメッシュを捨て、前記残った極大なメッシュの境界をまたぐ利用枝を探索し、この探索した利用枝で前記メッシュをつなぎ、前記第2の外部記憶装置に記憶された前記メッシュの疎化ネットワークを読み出して、求解用疎化ネットワークを構築し、この求解用疎化ネットワーク内での始点から終点への最短経路を求めて、この最短経路を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人・車による道路上の移動や電車の経路を求める、最短経路探索方法に関するものであり、特に、カーナビゲーションやWebでの最短経路探索方法に関するものである。
【背景技術】
【0002】
従来、2点間を結ぶ最短の経路を求める問題は、古来より人間の行動に深く関わってきた最適化問題である。特に、人や車による道路上の移動や電車の経路を求める問題は、ネットワーク上の問題としてモデル化でき、ダイクストラ(Dijkstra)法を始めとする多くのアルゴリズムが提案されてきた。
【0003】
近年情報技術(IT)の発達により、大規模な地図情報をコンパクトにコンピュータ上に格納することが可能となり、最短経路問題を解くソフトをつけた上で、ナビゲーションシステムという形で自動車に搭載できるようになってきた。
【0004】
上記ダイクストラ法は、計算量理論の意味からするとほぼ最適なアルゴリズムである。しかし、現実問題に適用する場合には、遠い点を結ぶ最短経路を求めるときに、地図情報(地図データ)の多くの部分にアクセスする必要があり、現実的な時間で解くことができない。
【0005】
この問題を解決するために、いくつかのアプローチが取られてきた。
【0006】
一つは、最適性を犠牲にして、発見的な手法を導入する方法である。例えば、ある離れた地域間を移動する際には、ある種の決まったルートを通るという仮定をおき、途中の探索を省くというものである。また、道路を高速道路・主要道といった遠距離の移動に使う道からなるネットワークと、それ以外の道からなるネットワークに階層を分け、まず現在地・目的地から最寄りの主要道までの最短経路を求めた後に、主要道上での最短経路問題を解くという、階層化を行うアプローチもある。
【0007】
他に、最適性を犠牲にしないアプローチもある。ダイクストラ法を始点終点両方から行い探索範囲を狭める方法、目的地までの距離の直線距離が短くなる方向を優先して探索するA* アルゴリズムなどである。
【0008】
近年、地図情報(地図データ)にある種の前処理を行い、後で最短経路を求める場合に短時間で解けるようにする、というアプローチがとられ始めている。これには、計算機技術の進歩により、大規模な地図情報に対しても、ある程度複雑な前処理が現実的な時間内にできるようになってきたという理由もあると考えられる。この手法は、比較的成功を収めており、大規模な地図情報上でも短時間で最短経路を求めることに成功している。
【0009】
前処理を行うアルゴリズムにもいくつかのバリエーションがある。
【0010】
一つはビットベクトル法と呼ばれるもので、地図をいくつかのエリアに分割し、各頂点とエリアの組に対して、その頂点に接続する枝の中で、その頂点からエリア内の頂点への最短経路が使う利用枝を選び出しておく手法である。最短経路探索時には、各頂点から探索を行う際に、目的地を含むエリアに向かう最短経路が使用する利用枝の方向のみへ、探索の腕を伸ばすことで探索を省略する。直感的には、目的地に向かわない方向の枝への探索は全て省略されるため、探索の範囲を大幅に減らすことができる。しかし、前処理では基本的に全点間の最短経路問題を解かなければいけないため、高速化を行っても非常に長い時間がかかるという欠点がある。また、各枝について、エリアの数だけのビットが保存領域として必要となる。
【0011】
もう一つはハイウェイ階層法と呼ばれるもので、遠距離の移動の中間で使われる利用枝のみからなるネットワークを構築しておき、遠い点を結ぶ最短経路を求める場合には、近距離移動用の枝を無視することで高速化を行う手法である。閾値kを用いて、遠距離の移動を2k+1本以上の枝を使う移動と定義し、最短経路が2k+1本以上の枝を含むような場合に、始点からも終点からもk歩以上離れている最短経路上の枝を遠距離移動用の枝と定義する。逆にいえば、遠距離移動用の枝とは、最短経路がその枝を通過するような、最短経路上でk歩以上離れた始点終点の組が存在するような枝のことである。遠距離移動用の枝のみを集めたハイウェイネットワークを構築し、始点終点からk歩のところまでは通常のネットワークを、それ以後はハイウェイネットワークを移動することで、高速化を行う。現実のネットワークでは遠距離移動用の枝の数はそれほど多くないため、階層的・再帰的にハイウェイネットワークを構築することで探索すべき枝の数を少なくすることができる。この手法の利点は、各点から2k+1歩以内にある点に対してのみ最短経路を求めることで前処理が終わることであり、それゆえに前処理時間が他の手法と比べて短いことである。
【0012】
また、この分野の先行技術としては、以下に示すような提案がなされている。
【0013】
(1)全ての道路を複数の不定形の地域に分割して記憶すると共に、地域間の接続関係も別に記憶しておき、出発地と目的地が属する二つの地域間を結ぶ地域を選定した後に、選定した地域に属する道路について経路探索を行う経路探索方法(下記特許文献1参照)。
【0014】
(2)高速道路、国道及び主要地方道といったように、道路を複数の階層に分類し、各階層は交差点情報、道路情報を備えており、それに基づいて経路探索を行う経路探索方法(下記特許文献2参照)。
【0015】
(3)道路地図情報を、主要道路を対象とする主要道路レイヤと、主要道路と主要でない道路とを共に対象とする一般道路レイヤとに分け、かつ、複数のメッシュに区分して記憶すると共に、各メッシュの道路の接続情報も記憶するようにした経路計算方法(下記特許文献3参照)。
【特許文献1】特許第3244517号公報
【特許文献2】特許第3186794号公報
【特許文献3】特許第3085054号公報
【発明の開示】
【発明が解決しようとする課題】
【0016】
しかしながら、上記した経路探索方法では、膨大な地図情報を必要とするので、処理時間が長くなり、経路探索時間が長くなるといった問題があった。
【0017】
本発明は、上記問題点を除去し、幾何学的な構造を用いた前処理を行い、探索を速め、スケーラビリティとグラフの疎化に優れた最短経路探索方法を提供することを目的とする。
【課題を解決するための手段】
【0018】
本発明は、上記目的を達成するために、
〔1〕最短経路探索方法において、第1の外部記憶装置から地図情報を主記憶装置に読み込み、前記地図情報に基づきメッシュの形状、各メッシュを含む領域である外領域の設定を行い、前記メッシュの疎化ネットワークの構築を行い、第2の外部記憶装置に記憶し、始点と終点の位置情報を入力し、前記始点と前記終点の両者を外領域に含まないメッシュを集め、このメッシュの中で、他のものに含まれない極大なメッシュのみを残し、残りのメッシュを捨て、前記残った極大なメッシュの境界をまたぐ利用枝を探索し、この探索した利用枝で前記メッシュをつなぎ、前記第2の外部記憶装置に記憶された前記メッシュの疎化ネットワークを読み出して、求解用疎化ネットワークを構築し、この求解用疎化ネットワーク内での始点から終点への最短経路を求めて、該最短経路を出力することを特徴とする。
【0019】
〔2〕上記〔1〕記載の最短経路探索方法において、前記メッシュの疎化ネットワークの構築は、前記メッシュM内にある交差点に接続する道路を全て探索して、前記メッシュに関するネットワークを構築し、前記メッシュからある程度の距離にある領域を外領域とし、該外領域の境界上にある道路を全て探索し、この探索した道路のそれぞれに対して、接続する交差点を1つ選定し、この選定された交差点の各ペアについて、その点間の最短経路を求め、前記メッシュに関するネットワークで、前記最短経路のいずれにも含まれないものを消去することを特徴とする。
【0020】
〔3〕上記〔1〕記載の最短経路探索方法において、前記始点の周辺及び前記終点の周辺に対しても外行き疎化ネットワークと内行き疎化ネットワークを用いることを特徴とする。
【発明の効果】
【0021】
本発明によれば、次のような効果を奏することができる。
【0022】
地図情報に基づいてメッシュの大きさを設定し、各最小メッシュを含む大きな外領域を設定し、その外領域の外側の2点を結ぶ最短経路に含まれるメッシュの枝を利用枝とし、この利用枝を全てのメッシュについて求める。2点間の最短経路を求めるときは、2点の両方から遠い部分では利用枝のみを探索することで高速化を行う。また、複数の階層的な大きさのメッシュに対して、利用枝を用意し、始点と終点の両方から遠い領域ほど、より大きなメッシュを使えるようにする。利用枝が作るネットワークは、次数2の頂点を多く含み、このような頂点を縮約すると、メッシュの大きさによらず、利用枝の本数は同程度となるので、階層的にメッシュを用意することにより、始点と終点間が遠くてもネットワークの枝数は多くならずに最短経路を検索することができる。
【発明を実施するための最良の形態】
【0023】
本発明の最短経路探索方法は、第1の外部記憶装置から地図情報を主記憶装置に読み込み、前記地図情報に基づきメッシュの形状、該メッシュを含む領域である外領域の設定を行い、前記メッシュの疎化ネットワークの構築を行い、第2の外部記憶装置に記憶し、始点と終点の位置情報を入力し、前記始点と前記終点の両者を外領域に含まないメッシュを集め、このメッシュの中で、他のものに含まれない極大なメッシュのみを残し、残りのメッシュを捨て、前記残った極大なメッシュの境界をまたぐ利用枝を探索し、この探索した利用枝で前記メッシュをつなぎ、前記第2の外部記憶装置に記憶された前記メッシュの疎化ネットワークを読み出して、求解用疎化ネットワークを構築し、この求解用疎化ネットワーク内での始点から終点への最短経路を求めて、該最短経路を出力する。
【実施例】
【0024】
以下、本発明の実施の形態について詳細に説明する。
【0025】
本発明の階層メッシュ疎化法(Level−wise Mesh Sparsification)は、従来技術で説明した従来の手法とは異なる新しい手法である。従来の手法を使って言い表すならば、ハイウェイ階層法を幾何学的な構造の上に落としたものだと言える。
【0026】
まず、平面上の地図情報に対し、それをある大きさのメッシュに分割する。そして、そのメッシュを含む一回り大きな外領域を考え、外領域の外側の2点を結ぶ最短経路に含まれるメッシュの枝を、利用枝と定義する。外領域が十分大きければ、メッシュの中で利用枝となる枝の数は少なくなる。この利用枝を全てのメッシュに対して求め、2点間の最短経路を求めるときには、2点両方から遠い部分では利用枝のみを探索することで高速化を行う。さらに、複数の大きさのメッシュに対して利用枝ネットワークを作っておくことで、始点と終点の両方から遠い領域ほど、より大きなメッシュを使えるようにする。実験的には、利用枝が作るネットワークは、次数2の頂点を多く含み、このような頂点を縮約した後では、メッシュの大きさによらず利用枝の本数は同程度となる。そのため、階層的にメッシュを用意することで、地図の規模が大きくなっても、始点と終点の両方から遠い部分のネットワークはそれほど枝数が大きくならず、地図の大きさに対して安定的なアルゴリズムが実現できる。
【0027】
従来のハイウェイ階層法では、このような次数2の頂点を縮約することによる効率化の恩恵にあずかることは難しい。なぜならハイウェイ階層法では、階層間の接続が全ての場所で行われているため、ハイウェイネットワーク上で次数2の頂点を消去してしまうと、その点に接続していた通常のネットワークの枝からハイウェイネットワークへの移動ができなくなってしまうからである。
【0028】
その反面、本発明の階層メッシュ疎化法では、階層の違うネットワークの接続部分はメッシュの縁の部分だけであるので、内側に関しては頂点の縮約を行える。これは階層メッシュ疎化法の大きな利点である。実験の結果、階層メッシュ疎化法を用いて構築したネットワークは、もとのネットワークに比べてはるかに少ない数の枝しか含まないことがわかった。しかも、ほぼすべての枝は始点と終点付近に集中しており、これは他の手法でも網羅的に探索が行われる領域である。その結果、通常のダイクストラ法を用いただけで、既存の最速のアルゴリズムとほぼ同等の性能を出すことに成功した。そのうえ、本発明の階層メッシュ疎化法は、ビットベクトル法やA* アルゴリズムとも併用できるため、これらの手法を用いることでより一層の高速化が行える。
【0029】
以下、階層メッシュ疎化法について説明する。
【0030】
まず、〔1〕で用語の定義を行い、〔2〕で階層メッシュ疎化法の基礎となる疎化ネットワークとその性質を説明する。また、〔3〕で疎化ネットワークを始点終点に近いエリアに適用する外行き・内行きの疎化ネットワークの説明を行い、〔4〕では前処理を高速に行う手法を説明する。
〔1〕定義
G=(V, A)を頂点集合V、枝集合Aからなる有向ネットワークとし、d:A→Rを枝の距離関数とする。特に本発明では、地図情報を仮定するため、距離関数は正、つまり、d:A→R+ であるとする。頂点集合Vの各点は2次元ユークリッド空間上に置かれているものとし、頂点vのx座標、y座標をそれぞれx(v), y(v)と表記する。一般性を失うことなく、あるMに対して0≦x(v), y(v)<Mが成り立つとし、0≦x, y<Mである領域を地図領域と呼ぶ。また、始点vと終点uに対して、〔v,(v,w1),w1,(w1,w2),…,wk,(wk,u),u)〕となっている頂点と枝の列をパスと呼ぶ。パスは、頂点の列あるいは枝の列から一意的に導かれるため、隣接する頂点の列、あるいは隣接する枝の列もパスと呼ぶ。v, uはこのパスの端点と呼ばれる。パスの長さは、パスに含まれる枝の距離和で定義する。u, vを結ぶパスの中で最も長さの短いものをu, vを結ぶ最短経路と呼び、その長さをdu (v)と表記する。最短経路は唯一的であるとは限らないが、ここでは摂動を加えることで唯一的になると仮定しておく。頂点rに対して、頂点rを根とする木で、頂点rから木の各頂点uへのパスが、頂点rから木の各頂点uへの最短経路となっているようなものを頂点rの最短経路木と呼ぶ。通常、最短経路木は全ての頂点を含む全張木で定義するが、ここでは、一部の頂点のみを含むものもよしとする。頂点集合Uと始点rに対して、頂点集合Uの頂点を全て含むrの最短経路木の中で極小なものをTr (U)と表記する。Tr (U)は、頂点rから頂点集合Uの各頂点への最短経路の和集合である。頂点rと枝e=(u, v)に対して、dr (v)−dr (u)をeの縮退コストと呼び、cr (e)で定義する。このcr (e)は負にはならず、cr (e)が0となるとき、またそのときに限り枝eは最短経路木に含まれる。
【0031】
メッシュ粒度kに対して、kレベルのメッシュを、ある整数0≦i,j≦kに対してiM/k≦x<(i+1)M/k,jM/k≦y<(j+1)M/kとなるような領域で定義し、iM/k,(i+1)M/k,jM/k,(j+1)M/kをこのメッシュの左、右、上、下と呼ぶ。地図領域は、kレベルのメッシュk2 個によって分割される。連結な領域Sに対して、端点の1つがSに含まれる枝をSに含まれる枝と呼び、E(S)と表記する。また、端点の1つがSに含まれ、もう1つがSに含まれないような枝を、Sの境界枝と呼び、その集合をC(S)と表記する。このC(S)の枝の端点でSに含まれない点を、Sの境界頂点と呼び、その集合をB(S)と表記する。
【0032】
〔2〕階層メッシュ疎化法
ここで、階層メッシュ疎化法の基礎となる疎化ネットワークとその性質について説明する。
【0033】
kレベルのメッシュmに対して、メッシュmの外領域Sを、メッシュmを完全に含むような連結な領域で定義する。このとき、メッシュmの外領域Sの境界頂点rに対してTr 〔B(S)〕の枝でE(m)に含まれるものを、全ての境界頂点rに対して求めて和をとった枝集合をSE(m)と表記する。さらに、SE(m)の枝が導くグラフRに対して以下の縮約操作を行って得られるグラフを、mの疎化ネットワークと呼び、SG(m)と表記する。疎化ネットワークはメッシュmの外領域Sにより変化することを注意しておく。
アルゴリズム縮約操作(領域R):
(1)グラフRに次数2の頂点vが含まれるならば、頂点vに隣接する頂点u,wに対して、u,w間に枝がなければ枝(u,w)で結び、そのコストをd(u,v)+d(v,w)とし、枝(u,w)が存在するならば、そのコストをd(u,w)とd(u,v)+d(v,w)の小さい方にする。そして、頂点vと枝(u,v),(v,w)を除去する。
【0034】
(2)グラフRに次数1の頂点が含まれ、それに隣接する頂点がB(m)に含まれないならば、その次数1の頂点と接続する枝を除去する。
【0035】
(3)上記(1),(2)の条件が成り立たなくなるまで、上記(1),(2)を繰り返す。
【0036】
この操作は、O(|SE(m)|)時間で実行できることを注意しておく。
【0037】
M上に頂点集合を持つネットワークG=(V,A)と、Gから得られたmの疎化ネットワークSG(m)=(V’⊆V,A’)に対して、Gからm上に端点を持つ枝を取り除き、A’を枝集合に加えてできるネットワークG’をGに埋め込んだネットワークと呼ぶ。
【0038】
疎化ネットワークに対しては、以下の補助定理1が成り立つ。
【0039】
補助定理1:
u,vをmの外領域に含まれないGの頂点とする。このとき、Gでの頂点u,v間の最短経路長とSG(m)をGに埋め込んだネットワークでの頂点u,v間の最短経路長は等しい。特にGでの最短経路は、埋め込んだネットワークでの最短経路の、縮約された枝を元に戻すことにより得られる。
【0040】
ここで、メッシュmの外領域を、メッシュmを中心とし、x径がh倍、y径がh倍であるような四角い領域とする。つまり、メッシュmがiM/k≦x<(i+1)M/k,jM/k≦y<(j+1)M/kとなる領域であれば、外領域は(i−(h−1)/2)M/k≦x<(i+(h+1)/2)M/k,(j−(h−1)/2)M/k≦y<(j+(h+1)/2)M/kであるようなx、yからなる領域となる。このとき、hを外領域の倍率と呼ぶ。
【0041】
今、1,2,4,8,…,2g レベルのメッシュの集合をZとし、Zの各メッシュの外領域の倍率をhとする。地図領域上のネットワークGの2点u,vに対して、Zのメッシュの中で、u,v両点が外領域の外側にあるメッシュをアクティブなメッシュと呼び、アクティブなメッシュの中で、他のZのアクティブなメッシュに含まれないものを極大アクティブメッシュと呼ぶ。レベルが2のべき乗で与えられていることから、極大なアクティブメッシュは互いに共通部分を持たず、u,vの周り以外の領域を完全に覆う。今、Gに対して、各極大アクティブメッシュの疎化ネットワークを逐次的に埋め込んで得られるネットワークを、u,vの疎化ネットワークと呼ぶ。このとき、補助定理1より以下の定理が成り立つ。
【0042】
その定理は、「任意のg、hと地図領域上に定義されたネットワークGの任意の2点u,vに対して、Gでのu,v間の最短経路長とu,vの疎化ネットワークでのu,v間の最短経路長は等しい。特にネットワークGでの最短経路は、疎化ネットワークでの最短経路の、縮約された枝を元に戻すことにより得られる。」ということである。
【0043】
上記定理より、各メッシュに対して疎化ネットワークを構築する、という前処置を行っておけば、u,v間の最短経路を求める際に、まずu,vの疎化ネットワークを構築し、そのうえで最短経路を解く、というアプローチが行える。
【0044】
通常、遠距離を移動するために使う枝は限られており、縮約操作によってネットワークを縮小できると予想される。この効果については、後述の説明を参照されたいが、基本的に大きなメッシュほど疎化ネットワークが小さくなる傾向がある。極大アクティブメッシュの数は、ネットワークの大きさに対してあまり大きくならない。例えば、h=3とした場合、最大でも27個である。そのため、たとえ地図領域が2倍になり、gを一つ大きくして、最小のメッシュの大きさを揃えたとしても、2つの頂点に対する極大アクティブメッシュの総数の最大値は、たかだか27しか大きくならないのである。
【0045】
疎化ネットワークが疎であることは、メモリ使用量の少なさにも貢献する。メッシュの数は、レベルの減少に従って指数的に少なくなるので、レベル毎の疎化ネットワーク保存にかかるメモリも指数的に小さくなる。そのため、全ての疎化ネットワークをメモリに保存しても、元のネットワークの定数倍程度のメモリしか使用しない。
【0046】
また、ネットワークが変化した時に、前処理を行うタイプのアルゴリズムは前処理をし直さなければならないが、階層メッシュ疎化法はその時間が少なくてすむという長所がある。ある枝が追加・削除されたとき、あるいは枝の距離が変わったときに、作り直さなければいけない疎化ネットワークは、外領域がその枝を含むようなメッシュだけである。これは、例えば外領域の倍率hが3であるとき、各レベルで9個までである。
〔3〕外行き疎化ネットワーク
上記により定義した疎化ネットワークでは、始点と終点の周りに関してはネットワークの疎化が行われなかった。これは疎化ネットワークの発想の基本が、遠距離移動を行う際の中間部分の探索を高速化しようという発想に基づいているからで、ある意味で当然である。しかし、似たようなアイデアを用いると、始点終点の周りに関しても、ある種の疎なネットワークを構築することができる。ここでは、疎化ネットワークを始点や終点に近いエリアに適用する外行き及び内行きの疎化ネットワークについて説明する。
【0047】
kレベルのメッシュmに対して、メッシュmに含まれる各頂点rからメッシュmの外領域の境界頂点B(S)への最短経路木Tr 〔B(S)〕の枝を集めて得られるネットワークを考える。メッシュmに含まれる任意の頂点rから、メッシュmの外領域Sに含まれない頂点への最短経路のmに含まれる部分は、必ずこのネットワークに含まれる。そこで、このネットワークに上述した縮約操作を行って得られるネットワークをmの外行き疎化ネットワークと定義すれば、以下の補助定理2が成り立つ。
【0048】
補助定理2:
uをメッシュmの外領域に含まれない頂点、vをメッシュmに含まれる頂点とする。このとき、Gでのu,v間の最短経路長と、メッシュmの外行き疎化ネットワークをGに埋め込んだネットワークでのu,v間の最短経路長は等しい。
【0049】
外行き疎化ネットワークは、メッシュの中の全ての端点を始点とする最短経路木の和集合であるので、あまり疎になるとは考えられない。メッシュmの内部での袋小路的な構造、あるいは通過速度の遅い道からなる部分に関しては、そこから出て行く枝が外行き疎化ネットワークに含まれることはあっても、そこに入る枝が含まれることは考えにくい。そうなると、メッシュmに含まれる頂点rに対して、メッシュmの中で枝を順向きにたどって頂点rから到達可能な頂点・枝は、非常に少ないと考えられる。
【0050】
同様に、終点に対しても内行き疎化ネットワークを定義することができ、以下の補助定理3が成り立つ。
【0051】
補助定理3:
uをメッシュmの外領域に含まれない頂点、vをメッシュmに含まれる頂点とする。このとき、Gでのu,v間の最短経路長と、メッシュmの内行き疎化ネットワークをGに埋め込んだネットワークでのu,v間の最短経路長は等しい。
【0052】
外行き・内行き疎化ネットワークは、通常の疎化ネットワークと異なりあまり疎にはならない。そのため、全てのレベルについて外行き疎化ネットワークを求めメモリに保存すると、メモリ使用量が元のネットワークが使用するメモリに対して、レベル数gの値だけ倍化されてしまう。そのため実用上は、ある程度以上大きな定数個のレベルに対してのみ、外行き・内行き疎化ネットワークを求める、という手法が望ましい。
〔4〕疎化ネットワークの再帰的な利用による前処理の高速化
疎化ネットワークを求めるためには、基本的に外領域の境界頂点の全対に対して最短経路を求める必要がある。これは時間のかかる作業である。メッシュが大きくなるにつれ、メッシュの数自体は減るが、ネットワーク規模が大きくなるため、計算時間はそれほど短縮されず、逆に増加する可能性もある。ここでは、疎化ネットワークを求める高速アルゴリズムについて説明する。
【0053】
高速化手法の一つ目は、疎化ネットワークを求める際に疎化ネットワークを用いるという手法である。これは、疎化ネットワークをレベルの大きなメッシュから順に求めていき、あるレベルのメッシュの疎化ネットワークを求める際に、それより大きなレベルの疎化ネットワークを用いて最短経路を求めるというものである。メッシュmとその外領域Sに対して、B(S)のどの頂点も外領域に含まれないメッシュをアクティブなメッシュと呼び、メッシュm以外の他のアクティブなメッシュに含まれないメッシュを極大アクティブメッシュと呼ぶ。前述での議論同様、極大アクティブメッシュは非交差的であり、外領域S上のネットワークに全ての極大アクティブメッシュを逐次的に埋め込んだネットワークでは、最短経路の長さは保存され、メッシュmの疎化ネットワークを求める際に利用できるのである。これにより、最短経路問題を解く時間は大幅に短くなる。同様に、外行き疎化ネットワーク、内行き疎化ネットワークを用いることもできる。まず、外領域Sの境界頂点を含むメッシュに対し、その中の1つメッシュm’の外行き疎化ネットワークを埋め込み、メッシュm’が外領域Sの外側にあるメッシュの内行き疎化ネットワークを埋め込む。このネットワークでは、メッシュm’内の頂点rを始点とする最短経路の長さが保存されるため、頂点rの最短経路木Tr 〔B(S)〕を求める際に利用できる。
【0054】
このように本発明によれば、幾何学的な構造を用いた前処理を行うことで最短経路問題を効率的に解く、階層メッシュ疎化法を提供することができる。
【0055】
本発明の階層メッシュ疎化法の基本的なアイデアは、各メッシュ内で遠距離の移動の中間で使われる枝のみを選別し、縮約操作でネットワークを疎化・単純化するものである。同時に、始点の周辺・終点の周辺に対しても外行き疎化ネットワークと内行き疎化ネットワークを提供するようにした。両者ともに、計算実験の結果、ネットワークのサイズの縮小に大きく貢献することがわかった。また、前処理に再帰的に階層メッシュ疎化法を用いることで高速化を行う方法を提供することができる。
【0056】
図1は本発明の最短経路探索方法を実施する全体システムの構成図である。
【0057】
この図において、1は最短経路演算手段であり、この最短経路演算手段1はメッシュ設定手段2と、メッシュ疎化ネットワーク構築手段3と、始点と終点の設定手段4と、極大なメッシュの設定手段5と、その境界をまたぐ利用枝を探索し、その探索した利用枝でメッシュをつなぐ手段6と、メッシュ疎化ネットワーク構築手段3からのデータを利用した求解用疎化ネットワーク構築手段7と、最短経路探索手段8とを備えている。また、11は最短経路演算手段1に取り込まれる地図情報、12は最短経路演算手段1に情報を入力する入力手段、13は最短経路演算手段1からの最短経路出力が提供される出力手段(表示・記憶・プリントアウトなどの報知手段)である。
【0058】
まず、階層メッシュ疎化法を概観する。
【0059】
図2は本発明の最短経路探索の基本的説明図(その1)である。
【0060】
この図において、21はメッシュ、22はその外領域、23はその外領域の境界、24は始点、25は終点であり、ここでは、外領域22の外側に始点24と終点25がある。ここで、始点24と終点25の最短経路を求める場合には、メッシュ21内の疎化ネットワークは、外領域22の外側の任意の2点を結ぶ最短経路の枝を含んでいるため、疎化ネットワークの線26のみを使っても最短経路を求めることができる。つまり、最短経路計算で使われる情報(データ)が少なくなる。
【0061】
図3は本発明の最短経路探索の基本的説明図(その2)である。
【0062】
この図に示すように、位置をずらしたメッシュ21′の疎化ネットワークも合わせて使用すると、最短経路計算で使われる情報(データ)がさらに少なくなる。ここで、22′はメッシュ21′の外領域、23′は外領域22′の境界である。また、24′は始点、25′は終点である。
【0063】
図4は本発明の最短経路探索の基本的説明図(その3)であり、上記した個別のものがまとめられている。
【0064】
いろいろな大きさのメッシュ31,32で、遠いところ同士の最短経路で使われる道を覚え、始点33と終点34が指定されたら、なるべく道数の少ないネットワークを構成し(大きいメッシュ32を優先的に使う)、最短経路を計算する。
【0065】
図5は本発明の始点と終点が与えられたときの極大なメッシュの例を示す図である。
【0066】
この図において、始点42と終点43が与えられたときの極大なメッシュ41が示されている。
【0067】
West Virginia州の道路ネットワークに対する適用例を用いて説明する。
【0068】
図6はWest Virginiaの地図情報(データ)を示す図であり、300146ノード、657716枝を有している。Dijkstra法とbinary heap法ではデータをメモリにした格納後、計算に約1秒かかる。なお、Dijkstra法の計算時間は枝数にほぼ比例する。
【0069】
図7は図6における階層メッシュ疎化法で用意するネットワークの一部を示す図である。
【0070】
図8は図6における始点と終点が指定された場合の極大なメッシュの疎化ネットワークを組み合わせてできるネットワークとその上での最短経路探索例を示す図(その1)である。
【0071】
この図8において、51が最短経路(白線)であり、枝の数は約10000(元のグラフの約1/60)、計算時間は約15ミリ秒であり、約60倍の高速化を図ることができる。
【0072】
図9は図6における始点と終点が指定された場合の最短経路探索例を示す図(その2)である。
【0073】
この図において、52が最短経路(白線)である。
【0074】
図8と対比すると明らかなように、指定される始点と終点が異なれば、計算に使われるネットワークも異なることが分かる。
【0075】
以下、より具体的に説明する。
【0076】
図10は本発明の疎化ネットワーク構築システムの構成図である。
【0077】
この図において、61は第1の外部記憶装置であり、メモリドライブ61Aに地図情報記憶装置61Bが装着されることにより地図情報を主記憶装置62に読み込むことができる。この主記憶装置62に読み込まれた情報を用いて領域設定手段63で領域が設定される。その領域設定が行われるとメッシュ設定手段64でメッシュが設定される。各メッシュに基づいて疎化ネットワーク構築手段65によって疎化ネットワークが構築される。そこで、構築されたメッシュの疎化ネットワークを第2の外部記憶装置66に記憶する。
【0078】
図11は本発明のデータ縮小法である疎化ネットワーク作成フローチャート、図12は図11のステップS4のサブフローチャートを示す図である。
【0079】
図11に示すように、データ縮小法のフローチャートは、以下のようである。
(1)まず、第1の外部記憶装置61から地図情報を主記憶装置62に読み込む(ステップS1)。
(2)次に、その地図情報に基づいて領域設定を行う(ステップS2)。
(3)次に、領域設定に基づいて各メッシュの設定を行う(ステップS3)。
(4)次に、各メッシュの疎化ネットワークの構築を行う(ステップS4)。
(5)最後に、そのメッシュの疎化ネットワークを第2の外部記憶装置66に記憶する(ステップS5)。
【0080】
上記(3)においては、不要に細かすぎるメッシュまで生成しないよう決定する。
【0081】
ここで、上記(4)の各メッシュの疎化ネットワークにおいては、図12に示すように、各レベルの各メッシュに対して以下の操作を行い、メッシュの疎化ネットワークを構築する。
【0082】
(4−1)メッシュ内にある交差点に接続する道路を全て探索して、メッシュに関するネットワークを構築する(ステップS11)。
【0083】
(4−2)メッシュからある程度の距離にある領域を外領域とし、その境界上にある道路を全て探索する(ステップS12)。
【0084】
(4−3)探索した全ての道路それぞれに対して、接続する交差点を1つ選定する(ステップS13)。
【0085】
(4−4)選定された交差点の各ペアについて、その点間の最短経路を求める(ステップS14)。
【0086】
(4−5)メッシュに関するネットワークで、上記(4−4)で得られた最短経路いずれにも含まれないものを消去する(ステップS15)。
【0087】
なお、上記(4)においては、地図をある方向にスキャンしながら順にメッシュを調べることで、メッシュに関するネットワークの構築にかかるための時間を減らしても良い。
【0088】
上記(4−3)においては、地図をスキャンし、各交差点を得てもよい。
【0089】
また、上記(4−4)においては、外領域上に制限した地図情報上において、各点から必要な点への1対多最短経路や、全点間の最短経路を求めることで、各交差点ペアの最短経路を求めても良い。
【0090】
上記(5)においては、上記(4−5)にて各疎化ネットワークを構築するごとに第2の外部記憶装置66に書き込むことで、主記憶装置62の節約を行っても良い。
【0091】
図13は地図情報から構築した道路ネットワークデータと、メッシュ(実線の四角)とそのメッシュの外領域(破線の四角)を示す図である。
【0092】
以下、アルゴリズムの動作を具体的に説明する。
【0093】
上記(4−1)で構築されたネットワークは、例えば、図13のような、交差点を頂点とし、交差点を接続する道路を枝とするようなネットワークとなり、各枝に、その道路の区間距離、あるいはその道路を通過するのにかかる所要時間のデータがある。
【0094】
上記(4−2)で探索する道は、図13の破線の四角と交わりを持つ道(ネットワークの枝)である。
【0095】
上記(4−3)で選定する交差点は、例えば、図13に示される黒丸で示したものになる。
【0096】
上記(4−4)では、図13に示される黒丸で示した交差点の全てのペアについて、両者を結ぶ最短経路を求める。例えば、図13では、黒丸aから残りの黒丸b,c,…,hへの最短経路の例を、図14では、黒丸gから残りの黒丸a,b,…,hへの最短経路の例を示した。枝の距離と図中の枝を示す線分の距離は対応しないため、見かけ上最短である経路が選定されていないことに留意しておく。
【0097】
上記(4−5)では、上記(4−4)で得られた最短経路全てを重ね合わせたネットワークを求め、メッシュに含まれる部分のみを取り出す。上記の例では、図15のようになる。
【0098】
図15はa,b,…,hの全対間の最短経路を重ね合わせた図である。
【0099】
この中の、実線の四角内のネットワークが、対応するメッシュの疎化ネットワークになる。
【0100】
メッシュの大きさ・形状の決定は、例えば以下のように行う。
【0101】
まず、レベル0のメッシュを地図の領域全てとし、レベル1のメッシュを、レベル0のメッシュを4分割して得られるものとする。以下、レベルkのメッシュは、レベルk−1のメッシュを4分割して得るものとする。各レベルのメッシュは、地図領域全体を分割したものになっている。
【0102】
メッシュMの外領域は、たとえば、Mに隣接するメッシュを全て集めて、Mを包含する大きな四角い領域を作ることで作成する。
【0103】
実際に2点a,b間の最短経路を求める際には、疎化ネットワークを組合せて、最短経路求解用のネットワークを構築する。2点a,bの両点を外領域の外側とするようなメッシュを集め、その中で極大なもの、つまり、他の、そのようなメッシュに含まれないもののみを集める。図16にその例を示した。
【0104】
図16はa,b点間の最短経路を求めるためのネットワークを示す図である。
【0105】
図16に示される四角は、2点a,bを含むもの以外が上記で述べたメッシュに対応し、それらは、外領域に2点a,bを含まない。
【0106】
最短経路を求める際には、これらのメッシュのネットワークを接続して、最短経路求解用疎化ネットワークを構築し、最短経路アルゴリズムを実行する。
【0107】
以下に、最短経路を求める際に構築する疎化ネットワークの構築方法を、図17を参照しながら説明する。
【0108】
(1)始点(現在地)と終点(目的地)の位置情報を入力する(ステップS21)。これは、図16に示した2点a,bを入力することに対応する。
【0109】
(2)始点(現在地)と終点(目的地)の両者を外領域に含まないメッシュを集める(ステップS22)。これは、図16に示される2点a,bを含まない四角、およびそれらに含まれる四角を集めることに相当する。
【0110】
(3)上記(2)で集めたメッシュの中で、他のものに含まれない極大なもののみを残し、残りを捨てる(ステップS23)。図16では、この作業は、上記(2)で集めたメッシュの中で極大なもの、つまり、図16の四角い領域で2点a,bを含まないものの中で、そのような他のメッシュに含まれないものを集めることに等しい。
【0111】
(4)残ったメッシュの境界をまたぐ枝を調べ上げる(ステップS24)。これは、図16でのメッシュ、および2点a,bを含む四角い領域をつなげるために使う枝を調べ上げている。
【0112】
(5)探索した枝でメッシュをつなぎ、求解用疎化ネットワークを構築する(ステップS25)。
【0113】
(6)求解用疎化ネットワーク内での始点(現在地)から終点(目的地)への最短経路を求める(ステップS26)。
【0114】
(7)求めた最短経路を出力する(ステップS27)。
【0115】
本発明は、地図情報を有するカーナビゲーションやWebでの最短経路探索方法に限られるものではなく、地図情報を有する鉄道経路や航路での最短経路探索方法にも適用することができる。
【0116】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づいて種々の変形が可能であり、これらを本発明の範囲から排除するものではない。
【産業上の利用可能性】
【0117】
本発明の最短経路探索方法は、地図情報を有するカーナビゲーションやWebでの最短経路探索方法として利用可能である。
【図面の簡単な説明】
【0118】
【図1】本発明の最短経路探索方法を実施する全体システムの構成図である。
【図2】本発明の最短経路探索の基本的説明図(その1)である。
【図3】本発明の最短経路探索の基本的説明図(その2)である。
【図4】本発明の最短経路探索の基本的説明図(その3)である。
【図5】本発明の始点と終点が与えられたときの極大なメッシュの例を示す図である。
【図6】West Virginiaの地図情報(データ)を示す図である。
【図7】図6における階層メッシュ疎化法で用意するネットワークの一部を示す図である。
【図8】図6における始点と終点が指定された場合の最短経路探索例を示す図(その1)である。
【図9】図8における始点と終点が指定された場合の最短経路探索例を示す図(その2)である。
【図10】本発明の疎化ネットワーク構築システムの構成図である。
【図11】本発明の本発明のデータ縮小法である疎化ネットワーク作成フローチャートである。
【図12】図11のステップS4のサブフローチャートを示す図である。
【図13】本発明にかかる黒丸aから残りの黒丸b,c,…,hへの最短経路の例を示す図である。
【図14】本発明にかかる黒丸gから残りの黒丸a,b,…,hへの最短経路の例を示す図である。
【図15】本発明にかかるa,b,…,hの全対間の最短経路を重ね合わせた図である。
【図16】本発明にかかるa,b点間の最短経路を求めるためのネットワークを示す図である。
【図17】本発明にかかる最短経路探索方法のフローチャートである。
【符号の説明】
【0119】
1 最短経路演算手段
2,64 最小のメッシュ設定手段
3,65 メッシュ疎化ネットワーク構築手段
4 始点と終点の設定手段
5 極大なメッシュの設定手段
6 探索した利用枝でメッシュをつなぐ手段
7 求解用疎化ネットワーク構築手段
8 最短経路検索手段
11 地図情報
12 入力手段
13 出力手段
21,21′,31,41 最小のメッシュ
22,22′ 外領域
23,23′ 外領域の境界
24,24′,33,42 始点
25,25′,33,34,43 終点
26 最小のメッシュ内で覚えた線
32 大きなメッシュ
41 始点と終点が与えられたときの極大なメッシュ
51,52 最短経路
61 第1の外部記憶装置
61A メモリドライブ
61B 地図情報記憶装置
62 主記憶装置
63 領域設定手段
66 第2の外部記憶装置

【特許請求の範囲】
【請求項1】
(a)第1の外部記憶装置から地図情報を主記憶装置に読み込み、
(b)前記地図情報に基づきメッシュの形状、該メッシュを含む領域である外領域の設定を行い、
(c)各メッシュの疎化ネットワークの構築を行い、
(d)第2の外部記憶装置に記憶し、
(e)始点と終点の位置情報を入力し、
(f)前記始点と前記終点の両者を外領域に含まないメッシュを集め、
(g)該メッシュの中で、他のものに含まれない極大なメッシュのみを残し、残りのメッシュを捨て、
(h)前記残った極大なメッシュの境界をまたぐ利用枝を探索し、
(i)該探索した利用枝で前記メッシュをつなぎ、前記第2の外部記憶装置に記憶された前記メッシュの疎化ネットワークを読み出して、求解用疎化ネットワークを構築し、
(j)該求解用疎化ネットワーク内での始点から終点への最短経路を求めて、該最短経路を出力することを特徴とする最短経路探索方法。
【請求項2】
請求項1記載の最短経路探索方法において、前記メッシュの疎化ネットワークの構築は、(a)前記メッシュM内にある交差点に接続する道路を全て探索して、前記メッシュに関するネットワークを構築し、(b)前記メッシュからある程度の距離にある領域を外領域とし、該外領域の境界上にある道路を全て探索し、(c)該探索した道路のそれぞれに対して、接続する交差点を1つ選定し、(d)該選定された交差点の各ペアについて、その点間の最短経路を求め、(e)前記メッシュに関するネットワークで、前記最短経路のいずれにも含まれないものを消去することを特徴とする最短経路探索方法。
【請求項3】
請求項1記載の最短経路探索方法において、前記始点の周辺及び前記終点の周辺に対しても外行き疎化ネットワークと内行き疎化ネットワークを用いることを特徴とする最短経路探索方法。

【図1】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2008−309665(P2008−309665A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2007−158176(P2007−158176)
【出願日】平成19年6月15日(2007.6.15)
【出願人】(504196300)国立大学法人東京海洋大学 (83)
【Fターム(参考)】