説明

最適経路探索装置及び最適経路探索装置並びにプログラム

【課題】ネットワークにおける各リンクの通過時間が変化するような場合でも効率よく最適経路を計算することが可能な最適経路探索方法の提供。
【解決手段】ネットワーク内の2つのノードを起点ノードo,目的点ノードdに設定する。ネットワーク内の隣接する2つのノードi,jの各組に対して、該ノードiから該ノードjを通って目的点ノードdへ行くときの、目的点ノードdへの最小の移動時間であるQ値Q(i,j)=tij+min[Q(j,k)]を幅優先探索順に計算する。最後に、起点ノードoから開始して目的点ノードdに至るまで、各ノードを始点とするQ値が最小であるリンクを該ノードの次のリンクとし、該リンクの終点ノードを該ノードの次のノードとして順次選択してゆくことで、起点ノードoから目的点ノードdへの最適経路を選択する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、道路ネットワーク、コンピュータネットワーク等の複数のノードと各ノード間を結ぶ複数のリンクとから構成され各リンクに重みが与えられたネットワークにおいて、重みが最も小さい経路やn番目に小さい経路を探索する最適経路探索技術に関する。
【背景技術】
【0002】
近年、移動車輛において道路交通情報通信システム(Vehicle Information and Communication System:VICS)によりリアルタイムに交通情報を取得し、該交通情報に基づいて目的地への最適経路を得るカーナビゲーションシステムが開発されている。目的地への最適経路は、ドライバーの選択にも依るが、通常は、現在地から目的地までの旅行時間(traveling time)が最小の経路が「最適経路(optimal route)」とされる。
【0003】
また、インターネット等のコンピュータネットワークにおいては、ネットワーク上のあるコンピュータから別のコンピュータへ情報を送信するため、コンピュータネットワーク上での経路を見つけだすルーティングという処理が行われる。このルーティングにおいては、情報の転送時間を短縮するため、コンピュータ間の転送時間が最小となる「最適経路」の探索が行われる。
【0004】
このような、最適経路の探索には、従来からダイクストラ(Dijkstra)法が広く用いられている(非特許文献1,2,3参照)。
【0005】
上記道路ネットワークやコンピュータネットワークは、複数のノードと各ノード間を結ぶ複数のリンクとから構成され各リンクに重み(移動時間や転送時間等を)が与えられた重み付き有向グラフG=(N,E)として抽象化される。ダイクストラ法では、有向グラフG=(N,E)の各リンクの重みがすべて非負の場合に、起点ノードoから目的点ノードdに至るリンクの重みの和が最小となる最適経路を計算する。
【0006】
ネットワーク内のすべてのノードの集合をN、起点ノードoからの最終的な最短路重みが既に定まっているノードの集合をS、Sの補集合をT、ノードiからノードjへ向かうリンクをli,j、リンクli,jの重みをti,jとする。一般的なダイクストラ法では、次のようにして最適経路が演算される(例えば、非特許文献3参照)。
【0007】
まず初期設定として、
【0008】
【数1】

とし、更に、起点ノードo以外の各ノードi(∈T)に対して、
【0009】
【数2】

とする。次に、以下の操作を、Tが空集合となるまで反復演算する。
【0010】
【数3】

【0011】
以上の反復計算が終了すると、p(j)は起点ノードoからノードjへの最小重みになっている。また、点列{j,q(j),q(q(j)),…}は、その最短経路での経由点を逆順にしたものになっている。
【非特許文献1】E. Dijkstra, "A note on Two Problems in Connexion with Graphs", Numerische Malhematik 1 ,pp. 269-271, 1959.
【非特許文献2】B. Golden, "Shortest-Path Algorithms: A Companion'", Operations Research, Vol. 24, No.6. pp.1164-1168, 1976.
【非特許文献3】T.コルメン、他2名,「アルゴリズム・イントロダクション 第2巻 アルゴリズムの設計と解析手法」,近代科学社,1995年12月30日,pp.219-223.
【非特許文献4】R. Bellman, "The Theory of Dynamic Programming", Bull. Amer. Math. Soc. 60, pp.503-515. 1954.
【発明の開示】
【発明が解決しようとする課題】
【0012】
しかしながら、道路ネットワークやコンピュータネットワークでは、各リンクを通る際の旅行時間は、一定ではなく、時々刻々に動的に変化する。このように各リンクの旅行時間が動的な場合、上記ダイクストラ法では、リンクの旅行時間が変化する毎に、初期解を削除しスクラッチ((scratch)データを削除するかラベルをつけ直すかして新しいデータを書き込めるようにすること。)してから、すべてを再計算する必要が生じるため効率が悪い。
【0013】
また、上記ダイクストラ法では、起点ノードoから目的点ノードdまでの旅行時間が最小となる最適経路を求めることは可能であるが、旅行時間が2番目に小さくなる経路や、3番目に小さくなる経路のような次善経路を求めることができない。
【0014】
そこで、本発明の第1の目的は、ネットワークにおける各リンクの重みが変化するような場合でも効率よく最適経路を計算することが可能な最適経路探索装置及び最適経路探索方法を提供することにある。
【0015】
また、本発明の第2の目的は、起点ノードから目的点ノードまでの重みが最小となる最適経路以外に、重みがn番目(n=2,3,…)に小さくなる次善経路を求めることが可能な最適経路探索装置及び最適経路探索方法を提供することにある。
【課題を解決するための手段】
【0016】
本発明に係る最適経路探索装置の第1の構成は、複数のノード及び前記各ノード間を結ぶ複数のリンクとから構成されたネットワークにおいて、当該ネットワーク内の任意の2つのノードが起点ノードo及び目的点ノードdに設定されたとき、前記起点ノードoから前記目的点ノードdに至る経路のうち、重みが小さい経路を探索する最適経路探索装置であって、
前記ネットワークの各ノード及び各リンクの接続情報を、グラフ表現のデータとして記憶するネットワーク記憶手段と、
前記ネットワークの各リンクli,j(i,jは、それぞれ該リンクの始点ノード、終点ノードの添数)の重みti,jを記憶する重み記憶手段と、
前記ネットワーク内の隣接する2つのノードi,jの各組に対して、該ノードiから該ノードjを通って前記目的点ノードdへ行くときの、前記目的点ノードdへの最小の重みであるQ値Q(i,j)を記憶するQ値記憶手段と、
前記ネットワーク内の各ノードの中から前記起点ノードo及び前記目的点ノードdを設定する起終点対設定手段と、
前記ネットワーク内の隣接する2つのノードi,jを結ぶリンクli,jの該ノードiから該ノードjへの重みをti,jとしたとき、前記ネットワーク内の隣接する2つのノードi,jの各組に対して、ノードiが前記目的点ノードdの場合には前記Q値Q(i,j)を0に初期化し、ノードjが前記目的点ノードdの場合には前記Q値Q(i,j)をti,jに初期化し、それ以外の場合には前記Q値Q(i,j)を0に初期化するとともに、初期化した該Q値Q(i,j)を前記Q値記憶手段に保存するQ値初期化手段と、
前記起点ノードoから開始して、幅優先探索順に、前記ネットワークのすべてのリンクli,jを順次選択し、選択された該リンクli,jに対応する前記Q値Q(i,j)を、前記Q値記憶手段に保存された各Q値を用いて(数4)の演算により更新し、更新した前記Q値Q(i,j)を前記Q値記憶手段に保存するという更新演算処理を、すべての前記Q値の値が収束するまで反復実行するQ値更新手段と、
前記Q値更新手段により前記Q値記憶手段の前記各Q値が更新された後、前記起点ノードoから開始して前記目的点ノードdに至るまで、各ノードを始点とするQ値が最小であるリンクを該ノードの次のリンクとし、該リンクの終点ノードを該ノードの次のノードとして順次選択してゆくことで、前記起点ノードoから前記目的点ノードdへの最適経路を選択する最適経路選択手段と、
を備えたことを特徴とする。
【0017】
【数4】

【0018】
この構成によれば、最適化の原理(非特許文献4参照)により、起点ノードoから開始して目的点ノードdに至るまで、各ノードを始点とするQ値が最小であるリンクを該ノードの次のリンクとし、該リンクの終点ノードを該ノードの次のノードとして順次選択してゆくことで、最終的に起点ノードoから目的点ノードdまで選択されるノードとリンクの列が、重みが最小となる最適経路になる。
【0019】
また、ネットワーク内における一部のリンクの重みが変化した場合、既にQ値記憶手段に保存された計算済みのQ値を初期値として、Q値更新手段によって上記反復計算を行えば、重みが変化したリンクに関係するQ値のみが更新されるため、少ない反復回数で反復演算が収束する。そして、計算収束後に最適経路選択手段により最適経路の選択を行えば、最適経路の最計算結果を得ることができる。この場合、すべてのQ値を更新する必要がないため、従来のダイクストラ法に比べ、効率よく最適経路の再計算を行うことが可能となる。
【0020】
また、一度Q値を計算してQ値記憶手段に保存しておけば、起点ノードが変更された場合に於いても、最適経路選択手段によって、目的点ノードdまでの最小重みと最適経路を容易に計算することができる。
【0021】
ここで、「重み」とは、各リンクや経路に対して与えられる量であって、最適経路探索において最小化すべき量をいう。「重み」は、本発明を適用する対象によって様々なものが考えられる。例えば、道路ネットワークにおいて目的地までの最適経路の探索に本発明を適用する場合には、「重み」として、旅行時間、燃料コスト、運転の快適さの指標、その他交通に関する量(例えば、道幅、道路の勾配、通学路かどうかなどを総合した上で数値化して表現したもの)などが用いられる。
【0022】
本発明に係る最適経路探索装置の第2の構成は、前記第1の構成に於いて、前記最適経路選択手段により選択された前記最適経路内の目的点ノードdを除く各ノードi(iは最適経路内の各ノードの添数)に対して、前記Q値Q(i,j)がn番目(n≧2)に小さいQ値を抽出するとともに、抽出されたそれらの各Q値と対応する各ノードまでの重みの和について最小値を与えるQ値を選択する次善Q値選択手段と、
前記最適経路内のリンクの内、前記次善Q値選択手段により選択されたQ値に対応するリンクlp,qの始点ノードpの次のリンクを該リンクlp,qに置換するとともに、該リンクlp,qの終点ノードqから前記目的点ノードdまで、各ノードにおいてQ値が最小となるリンクを次のリンクとして選択してゆくことで、次善経路を選択する次善経路選択手段と、
を備えたことを特徴とする。
【0023】
この構成によれば、次善Q値選択手段及び次善経路選択手段によって、起点ノードから目的点ノードまでの重みが最小となる最適経路以外に、重みがn番目(n=2,3,…)に小さくなる次善経路を容易に求めることが可能となる。
【0024】
また、本発明に係る最適経路探索方法の第1の構成は、複数のノード及び前記各ノード間を結ぶ複数のリンクとから構成されたネットワークがグラフ表現のデータとして記憶されたネットワーク記憶手段、
前記ネットワークの各リンクli,j(i,jは、それぞれ該リンクの始点ノード、終点ノードの添数)の重みti,jを記憶する重み記憶手段、
及び前記ネットワーク内の隣接する2つのノードi,jの各組に対して、該ノードiから該ノードjを通って前記目的点ノードdへ行くときの、前記目的点ノードdへの最小の重みであるQ値Q(i,j)を記憶するQ値記憶手段を備えたコンピュータにおいて、
前記ネットワーク内の任意の2つのノードが起点ノードo及び目的点ノードdに設定されたとき、前記起点ノードoから前記目的点ノードdに至る経路のうち、重みが小さい経路を探索する最適経路探索方法であって、
ネットワーク記憶手段に記憶された前記ネットワークの各ノードの中から、2つのノードを選択して、前記起点ノードo及び前記目的点ノードdとして設定する起終点対設定ステップと、
前記ネットワーク内の隣接する2つのノードi,jを結ぶリンクli,jの該ノードiから該ノードjへの重みをti,jとしたとき、前記ネットワーク内の隣接する2つのノードi,jの各組に対して、ノードiが前記目的点ノードdの場合には前記Q値Q(i,j)を0に初期化し、ノードjが前記目的点ノードdの場合には前記Q値Q(i,j)をti,jに初期化し、それ以外の場合には前記Q値Q(i,j)を0に初期化するとともに、初期化した該Q値Q(i,j)を前記Q値記憶手段に保存するQ値初期化ステップと、
前記起点ノードoから開始して、幅優先探索順に、前記ネットワークのすべてのリンクli,jを順次選択し、選択された該リンクli,jに対応する前記Q値Q(i,j)を、前記Q値記憶手段に保存された各Q値を用いて(数4)の演算により更新し、更新した前記Q値Q(i,j)を前記Q値記憶手段に保存するという更新演算処理を、すべての前記Q値の値が収束するまで反復実行するQ値更新ステップと、
前記Q値更新手段により前記Q値記憶手段の前記各Q値が更新された後、前記起点ノードoから開始して前記目的点ノードdに至るまで、各ノードを始点とするQ値が最小であるリンクを該ノードの次のリンクとし、該リンクの終点ノードを該ノードの次のノードとして順次選択してゆくことで、前記起点ノードoから前記目的点ノードdへの最適経路を選択する最適経路選択ステップと、を有することを特徴とする。
【0025】
本発明に係る最適経路探索方法の第2の構成は、前記第1の構成に於いて、前記最適経路選択ステップにおいて選択された前記最適経路内の目的点ノードdを除く各ノードi(iは最適経路内の各ノードの添数)に対して、前記Q値Q(i,j)がn番目(n≧2)に小さいQ値を抽出するとともに、抽出されたそれらの各Q値のうち最小のQ値を選択する次善Q値選択ステップと、
前記最適経路内のリンクの内、前記次善Q値選択ステップにおいて選択されたQ値に対応するリンクlp,qの始点ノードpの次のリンクを該リンクlp,qに置換するとともに、該リンクlp,qの終点ノードqから前記目的点ノードdまで、各ノードにおいてQ値が最小となるリンクを次のリンクとして選択してゆくことで、次善経路を選択する次善経路選択ステップと、を備えたことを特徴とする。
【0026】
また、本発明に係るプログラムは、コンピュータに読み込ませて実行することによって、コンピュータを請求項1又は2に記載の最適経路探索装置として機能させることを特徴とする。
【発明の効果】
【0027】
以上のように、本発明によれば、ネットワーク内における一部のリンクの重みが変化した場合、既にQ値記憶手段に保存された計算済みのQ値を初期値として、Q値更新のための反復計算を行えば、Q値記憶手段に記憶されたQ値のうち重みが変化したリンクに関係するQ値のみが更新されるため、少ない反復回数で反復演算が収束する。従って、すべてのQ値を更新する必要がないため、従来のダイクストラ法に比べ、効率よく最適経路の再計算を行うことが可能となる。
【0028】
また、一度Q値を計算してQ値記憶手段に保存しておけば、起点ノードが変更された場合に於いても、最適経路選択手段によって、目的点ノードdまでの最小重みと最適経路を容易に計算することができる。
【0029】
また、次善Q値選択手段及び次善経路選択手段によって、起点ノードから目的点ノードまでの重みが最小となる最適経路以外に、重みがn番目(n=2,3,…)に小さくなる次善経路を容易に求めることが可能となる。
【発明を実施するための最良の形態】
【0030】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【実施例1】
【0031】
実施例1では、一例として、道路ネットワークにおいて、起点ノードoから目的点ノードdまでの重みが最小となる最適経路を演算する最適経路探索装置について説明する。
【0032】
図1は、道路ネットワークの一例を表す図である。一般に、道路ネットワークは、交差点をノードとし2つの交差点間を結ぶ道路をリンクとし、各リンクの重みをそのリンクの重みとする、重み付き有向グラフG=(N,E,t)で表すことができる。ここで、Nはすべてのノードの集合、Eはすべてのリンクの集合、tはすべてのリンクの重みの集合である。
【0033】
尚、この場合「重み」としては、旅行時間や燃料コストなどの交通に関する量が用いられる。
【0034】
今、道路ネットワーク内のノード(交差点)から、起終点対(Origin-Destination pair:OD対)を選び、その起点ノード(origin node)をo、目的点ノード(destination node)をdと記す。ノードiからノードjへのリンク(有向リンク)をli,jと記す。道路リンクli,jの重みをti,jと記す。また、重みが変化したとき、変化後の重みをt’i,jと記す。
【0035】
また、本明細書において、「Q値」を以下のように定義する。
【0036】
〔定義1〕
重み付き有向グラフG=(N,E,t)に於いて目的点ノードd(∈N)が与えられているとき、互いに隣接する任意のノードi,j(∈N)に対して、ノードiを起点ノードとしてノードjを通って目的点ノードdに行くときの、目的点ノードdへの最小重みを「Q値(Q value)」といい、Q(i,j)と記す。
〔定義終り〕
【0037】
図1において、「●」は起点ノード及び目的点ノードを表す。「○」は起点ノード及び目的点ノード以外のノードを表す。また、各ノード間を繋ぐ矢印はリンクを表す。
【0038】
図2は、実施例1に係る最適経路探索装置1のハードウェア構成を表す図である。最適経路探索装置1は、マイクロコントローラ2、入力装置3、記憶装置4、表示装置5、及びVICS受信装置6により構成される。
入力装置3には、キーボタンやタッチパネル等が使用される。記憶装置4は、ROM,RAMなどの内部記憶装置やハードディスク,DVD−ROMなどの外部記憶装置が使用される。表示装置5は、液晶ディスプレイ等が使用される。これらの構成は、一般のカーナビゲーション装置を構成するコンピュータと同様である。
【0039】
図3は、実施例1に係る最適経路探索装置1の機能構成を表した図である。
【0040】
最適経路探索装置1は、表示装置5、VICS受信装置6、ネットワーク記憶部10、重み記憶部11、Q値記憶部12、最適経路記憶部13、重み更新部14、起終点対設定部15、Q値初期化部16、Q値更新部17、最適経路選択部18、次善Q値選択部19、及び次善経路選択部20を備えている。
【0041】
尚、表示装置5及びVICS受信装置6は図2と同様である。ネットワーク記憶部10、重み記憶部11、及びQ値記憶部12は、記憶装置4によって実現される。また、重み更新部14、最適経路記憶部13、起終点対設定部15、Q値初期化部16、Q値更新部17、最適経路選択部18、次善Q値選択部19、及び次善経路選択部20は、マイクロコントローラ2、入力装置3、及び記憶装置4が協働することにより実現される。
【0042】
VICS受信装置6は、道路交通情報通信システムにより無線送信される交通情報(VICS情報)を受信する装置である。表示装置5は、地図情報や最適経路の情報を表示する装置であり、液晶ディスプレイ装置等によって構成される。
【0043】
ネットワーク記憶部10は、道路ネットワークの各ノード及び各リンクの接続情報を、グラフ表現のデータとして記憶する。グラフ表現のデータとは、例えば、図4(b)に示したようなデータをいう(非特許文献3,pp.163−165参照)。図4(b)は、図4(a)の道路ネットワークG=(N,E)の各ノード及び各リンクの接続情報を、隣接リスト表現によりリスト化したデータである。この場合、接続情報は、ノード集合Nの各ノードに対して1つずつ、全部で|N|個(|N|は集合Nの要素数)のリストAdjの配列からなる。各ノードi(∈N)に対して、隣接リストAdj[i]は、リンクli,j(∈E)が存在するすべてのノードjへのポインタを含んでいる。
【0044】
尚、グラフ表現のデータとしては、隣接リスト表現以外に隣接行列表現(非特許文献3,p.164参照)を用いてもよい。
【0045】
重み記憶部11は、ネットワーク記憶部10に記憶された道路ネットワークG=(N,E)の各リンクli,j(∈E)に対応して、そのリンクli,jの重みti,jが記憶される。
【0046】
Q値記憶部12は、道路ネットワークG=(N,E)内の隣接する2つのノードi,j(∈N)の各組に対して、該ノードiから該ノードjを通って目的点ノードdへ行くときの、目的点ノードdへの最小の重みであるQ値Q(i,j)を記憶する。
【0047】
最適経路記憶部13は、計算された起点ノードoから目的点ノードdまでの最適経路や次善最適経路を記憶する。
【0048】
重み更新部14は、道路ネットワークG=(N,E)内の各リンクli,j(∈E)に対して、重みti,jの初期値を設定し重み記憶部11に保存する。また、重み更新部14は、VICS受信装置6においてVICS情報が受信された場合に、そのVICS情報に含まれる情報から、該情報で指定される所定のリンクli,j(∈E)の重みti,jを変更し、重み記憶部11の記憶内容の更新を行う。
【0049】
起終点対設定部15は、道路ネットワーク内の各ノードの中から起点ノードo及び目的点ノードdを設定する。起点ノードの設定は、例えば、GPS受信装置(図示せず)により得られる現在位置に最も近いノードに設定したり、使用者が入力装置3により地図上で指定する地点に最も近いノードなどに設定される。また、目的点ノードdは、使用者が入力装置3により地図上で指定する地点に最も近いノードなどに設定される。
【0050】
Q値初期化部16は、道路ネットワーク内の隣接する2つのノードi,j(∈N)の各組に対して、ノードiが目的点ノードdの場合にはQ値Q(i,j)を0に初期化する。ノードjが目的点ノードdの場合にはQ値Q(i,j)をti,jに初期化する。また、それ以外の場合にはQ値Q(i,j)を0に初期化する。そして、初期化した該Q値Q(i,j)をQ値記憶部12に保存する。
【0051】
Q値更新部17は、起点ノードoから開始して、幅優先探索順に、ネットワークのすべてのリンクli,jを順次選択し、選択された該リンクli,jに対応するQ値Q(i,j)を、Q値記憶部12に保存された各Q値を用いて式(4a),(4b)の演算により更新し、更新したQ値Q(i,j)をQ値記憶部12に保存するという更新演算処理を、すべてのQ値の値が収束するまで反復実行する。
【0052】
最適経路選択部18は、Q値更新部17によりQ値記憶部12の各Q値が更新された後、起点ノードoから開始して目的点ノードdに至るまで、各ノードを始点とするQ値が最小であるリンクを該ノードの次のリンクとし、該リンクの終点ノードを該ノードの次のノードとして順次選択してゆくことで、起点ノードoから目的点ノードdへの最適経路を選択する。選択された最適経路のノード列の情報及び最短重み(最適経路を辿ったときの起点ノードoから目的点ノードdに至る経路の各リンクの重みの和)は、最適経路記憶部13に保存されるとともに、表示装置5に表示された地図上に表示される。
【0053】
次善Q値選択部19は、最適経路記憶部13に記憶された最適経路内の目的点ノードdを除く各ノードi(iは最適経路内の各ノードの添数)に対して、Q値Q(i,j)がn番目(n≧2)に小さいQ値を抽出するとともに、抽出されたそれらの各Q値のうち最小のQ値を選択する。
【0054】
次善経路選択部20は、最適経路内のリンクのうち、次善Q値選択部19により選択されたQ値に対応するリンクlp,qの始点ノードpの次のリンクを該リンクlp,qに置換するとともに、該リンクlp,qの終点ノードqから目的点ノードdまで、各ノードにおいてQ値が最小となるリンクを次のリンクとして選択してゆくことで、次善経路を選択する。選択された次善経路は、表示装置5に表示された地図上に表示される。
【0055】
尚、最適経路探索装置1のこれらの機能は、プログラムとして提供され、該プログラムを記憶装置4に読み込み、マイクロコントローラ2によって実行することによって実現される。
【0056】
以上のように構成された本実施例の最適経路探索装置1において、以下その動作を説明する。
【0057】
図5は、最適経路探索装置1による最適経路探索方法の流れを表すフローチャートである。
【0058】
まず、ステップS10において、重み更新部14は、ネットワーク記憶部10に記憶された道路ネットワークG=(N,E)の各リンクli,j(∈E)に対して、重みの初期値ti,jを設定し、Q値記憶部12に保存する。尚、重みの初期値ti,jは、予め記憶装置4に地図情報と共に記憶されているものが使用される。
【0059】
また、起終点対設定部15は、道路ネットワークG=(N,E)の各ノードの中から、起点ノードoと目的点ノードdを設定する。起点ノードoと目的点ノードdの設定は、上述したように、GPS受信装置(図示せず)により得られる現在位置に最も近いノードを設定したり、使用者が入力装置3により地図上で指定する地点に最も近いノードを設定する。
【0060】
次に、ステップS20において、Q値初期化部16は、Q値記憶部12のQ値の初期化を行う。いま、Q値Q(i,j)の初期値をQ(0)(i,j)で表す。尚、上付添字「(0)」は、Q値更新部17における反復処理のイタレーション(iteration)の回数を表している(初期状態では反復処理は行われていないので、イタレーションの回数は0である)。Q値初期化部16によるQ値初期化の初期化処理は、次式により表される。
【0061】
【数5】

【0062】
ここで、A(i)は、ノードiに接続するノードの添数の集合を表す。B(d)は、目的点ノードdへ直接移動することが可能なノードの添数の集合である。Nは、目的点ノードの交差点の添数の集合である。
【0063】
次に、ステップS30において、Q値更新部17は、起点ノードoから開始して、幅優先探索順に、前記ネットワークのすべてのリンクli,jを順次選択する。そして、選択された該リンクli,jに対応するQ値Q(i,j)を、Q値記憶部12に保存された各Q値を用いて式(4a),(4b)の演算により更新し、更新したQ値Q(i,j)をQ値記憶部12に保存する。この処理を「更新演算処理」と呼ぶ。尚、幅優先探索順とは、一般的な幅優先探索(breadth-first search)における探索順序をいう(非特許文献3,p.166−168参照)。
【0064】
次に、ステップS40において、Q値更新部17は、更新演算処理が収束したか否かを判定する。「更新演算処理が収束した」とは、ステップS30の更新演算処理において、すべてのQ値Q(i,j)が更新前の値と更新後の値の差が所定の判定閾値ε以下となったことをいう。すなわち、
【0065】
【数6】

のときに「更新演算処理が収束した」と判定される。ここで、判定閾値εは充分小さな正の数値に設定される。
【0066】
更新演算処理が収束していない場合には、再びステップS30に戻り、収束した場合には、次のステップS50に進む。
【0067】
ステップS50において、最適経路選択部18は、起点ノードoから開始して目的点ノードdに至るまで、各ノードを始点とするQ値が最小であるリンクを該ノードの次のリンクとし、該リンクの終点ノードを該ノードの次のノードとして順次選択してゆくことで、起点ノードoから目的点ノードdへの最適経路を選択する。これにより、最適経路として、ノードの配列(i(=o),i,i,…,i(=d))と、起点ノードoから目的点ノードdまでの最小重みtmin(o,d)が得られる。
【0068】
【数7】

【0069】
ここで、Q(i,j)は、上述のように、目的点ノードがdである場合に、ノードiにおいて次の移動先としてノードjを選んだときの、ノードiから目的点ノードdまでの最小重みを示している。従って、ノードiから移動するノードは、j(∈A(i))の中でQ(i,j)が最小となるノードとなる。同様にして、ノードjでは、ノードjから移動可能なノードk(∈A(j))の中でQ(i,j)が最小となるノードが選ばれる。このような原理によって、起点ノードoから目的点ノードdまでの最適経路が求まるのである。
【0070】
最適経路選択部18は、得られた最適経路(i(=o),i,i,…,i(=d))と最小重みtmin(o,d)を最適経路記憶部13に保存するとともに、表示装置5に表示した地図上に最適経路と最小重みを表示する。
【0071】
尚、本実施例の最適経路探索装置1では、Q(i,j)の定義から、起点ノードoのみならず、すべてのノードから目的点ノードdまでの最適経路を計算することが可能となる。従って、目的点ノードdがそのままで起点ノードoが変化した場合でも、即座に目的点ノードdまでの最適経路を再計算することができる。
【0072】
次に、一部のリンクの重みが変化した場合の動作について説明する。
【0073】
図6は、重みが変化した場合の最適経路探索装置1による最適経路探索方法の流れを表すフローチャートである。
【0074】
まず、ステップS60において、重み記憶部11に保存された重みのうちの一乃至複数が更新されて変化する。重みの更新は、VICS受信装置6がVICS情報を受信し、当該VICS情報の中に、渋滞や工事などにより一部のリンクの重みが変更される情報が含まれている場合、重み更新部14はそのVICS情報に従って、特定のリンクの重みti,jをt’i,jに更新し、重み記憶部11に保存する。
【0075】
次に、ステップS70において、Q値更新部17は、Q値記憶部12に既に保存されている各Q値を初期値として、重み記憶部11に更新・保存された重みを用いて、前述の更新演算処理を実行する。
【0076】
次に、ステップS80において、Q値更新部17は、更新演算処理が収束したか否かを判定する。更新演算処理が収束していない場合には、再びステップS70に戻り、収束した場合には、次のステップS90に進む。
【0077】
最後に、ステップS90において、最適経路選択部18は、起点ノードoから開始して目的点ノードdに至るまで、各ノードを始点とするQ値が最小であるリンクを該ノードの次のリンクとし、該リンクの終点ノードを該ノードの次のノードとして順次選択してゆくことで、起点ノードoから目的点ノードdへの最適経路を選択する。そして、得られた最適経路と最小重みを最適経路記憶部13に保存するとともに、表示装置5に表示した地図上に最適経路と最小重みを表示する。
【0078】
このように、Q値記憶部12に既に保存されている各Q値を初期値として、更新演算処理を実行することで、重みが変化したリンクに関係するQ値のみが更新され、それ以外のQ値は更新されないので、更新演算処理は速やかに収束し、短時間で新たな最適経路を算出することができる。
【0079】
最後に、最適経路以外の次善経路を探索する処理について説明する。
【0080】
図7は、最適経路探索装置1による次善経路探索の流れを表すフローチャートである。
【0081】
まず、ステップS100において、図5又は図6で説明した処理により、最適経路の探索が行われ、各Q値がQ値記憶部12に保存されるとともに、最適経路(i(=o),i,i,…,i(=d))が最適経路記憶部13に保存される。ここで、最適経路のパスの長さ(最適経路を構成するリンクの数)をnとする。
【0082】
次に、ステップS110において、入力装置3から使用者によりm番目の次善経路の探索指示が入力されると、次善Q値選択部19は、インデックスkを0に設定する。
【0083】
次に、ステップS120において、次善Q値選択部19は、最適経路上のk番目のノードiに対して、起点ノードoからk番目のノードiまでの重みの合計値と、当該ノードiを起点とするQ値のうちm番目に小さいQ値(以下「次善Q値」という。)の和を計算する。得られた重みの和を「候補次善重み」と呼びTtemp(i)と記す。
【0084】
例えば、ノードiを始点とするリンクが{lik,ip,lik,iq,lik,ir}であり、それぞれのリンクに対応するQ値がQ(i,i),Q(i,i),Q(i,i)(Q(i,i)<Q(i,i)<Q(i,i))とする。この場合、m=2であれば、次善Q値選択部19は、候補次善重みTtemp(i)を、
【0085】
【数8】

により算出する。
【0086】
次に、ステップS130において、次善Q値選択部19は、kがn−1以下であればkを1だけインクリメント(ステップS140)してステップS120に戻り、k>n−1となったときに、次のステップS150に移行する。これにより、n個の候補次善重みTtemp(i)が算出される。
【0087】
ステップS150において、次善Q値選択部19は、n個の候補次善重みTtemp(i)(k=0,1,…,n−1)のうち、m番目に小さい候補次善重みTtemp(i)(以下「次善重み」という。)に対応するノードiξを選出する。そして、次善経路選択部20は、ノードiξの次善Q値Q(iξ,jη)に対応するリンクliξ,jηの終点ノードjを最初のノードとして、ノードjηから目的点ノードdまで、各ノードにおいてQ値が最小となるリンクを次のリンクとして選択してゆくことで、最適経路を選択する。そして、既に求められている起点ノードoからノードiξまでの最適経路と、前記リンクliξ,jηと、ノードjηから目的点ノードdまでの最適経路とを結合して次善経路(i(=o),i,i,…,iξ,jη,…,i(=d))を生成する。最後に、次善経路選択部20は、生成された次善経路を、表示装置5に表示した地図上に最適経路と次善重みを表示する。
【0088】
以上の処理により、本実施例の最適経路探索装置1によれば、次善経路を容易に計算することができる。
【0089】
尚、本実施例では、本発明の最適経路探索装置を道路ネットワークにおける最適経路を演算する場合に適用した例について説明したが、本発明の最適経路探索装置は道路ネットワークに限らず、コンピュータネットワーク、その他、複数のノードと各ノード間を結ぶ複数のリンクとから構成され各リンクに重みが与えられたネットワークに対して同様に適用することが可能である。
【図面の簡単な説明】
【0090】
【図1】道路ネットワークの一例を表す図である。
【図2】実施例1に係る最適経路探索装置のハードウェア構成を表す図である。
【図3】実施例1に係る最適経路探索装置の機能構成を表す図である。
【図4】道路ネットワークのグラフ表現のデータの例を説明する図である。
【図5】最適経路探索装置1による最適経路探索方法の流れを表すフローチャートである。
【図6】重みが変化した場合の最適経路探索装置1による最適経路探索方法の流れを表すフローチャートである。
【図7】最適経路探索装置1による次善経路探索の流れを表すフローチャートである。
【符号の説明】
【0091】
1 最適経路探索装置
2 マイクロコントローラ
3 入力装置
4 記憶装置
5 表示装置
6 VICS受信装置
10 ネットワーク記憶部
11 重み記憶部
12 Q値記憶部
13 最適経路記憶部
14 重み更新部
15 起終点対設定部
16 Q値初期化部
17 Q値更新部
18 最適経路選択部
19 次善Q値選択部
20 次善経路選択部

【特許請求の範囲】
【請求項1】
複数のノード及び前記各ノード間を結ぶ複数のリンクとから構成されたネットワークにおいて、当該ネットワーク内の任意の2つのノードが起点ノードo及び目的点ノードdに設定されたとき、前記起点ノードoから前記目的点ノードdに至る経路のうち、重みが小さい経路を探索する最適経路探索装置であって、
前記ネットワークの各ノード及び各リンクの接続情報を、グラフ表現のデータとして記憶するネットワーク記憶手段と、
前記ネットワークの各リンクli,j(i,jは、それぞれ該リンクの始点及び終点の添数)の重みti,jを記憶する重み記憶手段と、
前記ネットワーク内の隣接する2つのノードi,jの各組に対して、該ノードiから該ノードjを通って前記目的点ノードdへ行くときの、前記目的点ノードdへの最小の重みであるQ値Q(i,j)を記憶するQ値記憶手段と、
前記ネットワーク内の各ノードの中から前記起点ノードo及び前記目的点ノードdを設定する起終点対設定手段と、
前記ネットワーク内の隣接する2つのノードi,jを結ぶリンクli,jの該ノードiから該ノードjへの重みをti,jとしたとき、前記ネットワーク内の隣接する2つのノードi,jの各組に対して、ノードiが前記目的点ノードdの場合には前記Q値Q(i,j)を0に初期化し、ノードjが前記目的点ノードdの場合には前記Q値Q(i,j)をti,jに初期化し、それ以外の場合には前記Q値Q(i,j)を0に初期化するとともに、初期化した該Q値Q(i,j)を前記Q値記憶手段に保存するQ値初期化手段と、
前記起点ノードoから開始して、幅優先探索順に、前記ネットワークのすべてのリンクli,jを順次選択し、選択された該リンクli,jに対応する前記Q値Q(i,j)を、前記Q値記憶手段に保存された各Q値を用いて(数1)の演算により更新し、更新した前記Q値Q(i,j)を前記Q値記憶手段に保存するという更新演算処理を、すべての前記Q値の値が収束するまで反復実行するQ値更新手段と、
前記Q値更新手段により前記Q値記憶手段の前記各Q値が更新された後、前記起点ノードoから開始して前記目的点ノードdに至るまで、各ノードを始点とするQ値が最小であるリンクを該ノードの次のリンクとし、該リンクの終点ノードを該ノードの次のノードとして順次選択してゆくことで、前記起点ノードoから前記目的点ノードdへの最適経路を選択する最適経路選択手段と、
を備えたことを特徴とする最適経路探索装置。
【数1】

【請求項2】
前記最適経路選択手段により選択された前記最適経路内の目的点ノードdを除く各ノードi(iは最適経路内の各ノードの添数)に対して、前記Q値Q(i,j)がn番目(n≧2)に小さいQ値を抽出するとともに、抽出されたそれらの各Q値と対応する各ノードまでの重みの和について最小値を与えるQ値を選択する次善Q値選択手段と、
前記最適経路内のリンクの内、前記次善Q値選択手段により選択されたQ値に対応するリンクlp,qの始点ノードpの次のリンクを該リンクlp,qに置換するとともに、該リンクlp,qの終点ノードqから前記目的点ノードdまで、各ノードにおいてQ値が最小となるリンクを次のリンクとして選択してゆくことで、次善経路を選択する次善経路選択手段と、
を備えたことを特徴とする請求項1記載の最適経路探索装置。
【請求項3】
複数のノード及び前記各ノード間を結ぶ複数のリンクとから構成されたネットワークがグラフ表現のデータとして記憶されたネットワーク記憶手段、
前記ネットワークの各リンクli,j(i,jは、それぞれ該リンクの始点ノード、終点ノードの添数)の重みti,jを記憶する重み記憶手段、
及び前記ネットワーク内の隣接する2つのノードi,jの各組に対して、該ノードiから該ノードjを通って前記目的点ノードdへ行くときの、前記目的点ノードdへの最小の重みであるQ値Q(i,j)を記憶するQ値記憶手段を備えたコンピュータにおいて、
前記ネットワーク内の任意の2つのノードが起点ノードo及び目的点ノードdに設定されたとき、前記起点ノードoから前記目的点ノードdに至る経路のうち、重みが小さい経路を探索する最適経路探索方法であって、
ネットワーク記憶手段に記憶された前記ネットワークの各ノードの中から、2つのノードを選択して、前記起点ノードo及び前記目的点ノードdとして設定する起終点対設定ステップと、
前記ネットワーク内の隣接する2つのノードi,jを結ぶリンクli,jの該ノードiから該ノードjへの重みをti,jとしたとき、前記ネットワーク内の隣接する2つのノードi,jの各組に対して、ノードiが前記目的点ノードdの場合には前記Q値Q(i,j)を0に初期化し、ノードjが前記目的点ノードdの場合には前記Q値Q(i,j)をti,jに初期化し、それ以外の場合には前記Q値Q(i,j)を0に初期化するとともに、初期化した該Q値Q(i,j)を前記Q値記憶手段に保存するQ値初期化ステップと、
前記起点ノードoから開始して、幅優先探索順に、前記ネットワークのすべてのリンクli,jを順次選択し、選択された該リンクli,jに対応する前記Q値Q(i,j)を、前記Q値記憶手段に保存された各Q値を用いて(数2)の演算により更新し、更新した前記Q値Q(i,j)を前記Q値記憶手段に保存するという更新演算処理を、すべての前記Q値の値が収束するまで反復実行するQ値更新ステップと、
前記Q値更新手段により前記Q値記憶手段の前記各Q値が更新された後、前記起点ノードoから開始して前記目的点ノードdに至るまで、各ノードを始点とするQ値が最小であるリンクを該ノードの次のリンクとし、該リンクの終点ノードを該ノードの次のノードとして順次選択してゆくことで、前記起点ノードoから前記目的点ノードdへの最適経路を選択する最適経路選択ステップと、
を有することを特徴とする最適経路探索方法。
【数2】

【請求項4】
前記最適経路選択ステップにおいて選択された前記最適経路内の目的点ノードdを除く各ノードi(iは最適経路内の各ノードの添数)に対して、前記Q値Q(i,j)がn番目(n≧2)に小さいQ値を抽出するとともに、抽出されたそれらの各Q値と対応する各ノードまでの重みの和について最小値を与えるQ値を選択する次善Q値選択ステップと、
前記最適経路内のリンクの内、前記次善Q値選択ステップにおいて選択されたQ値に対応するリンクlp,qの始点ノードpの次のリンクを該リンクlp,qに置換するとともに、該リンクlp,qの終点ノードqから前記目的点ノードdまで、各ノードにおいてQ値が最小となるリンクを次のリンクとして選択してゆくことで、次善経路を選択する次善経路選択ステップと、
を備えたことを特徴とする請求項3記載の最適経路探索方法。
【請求項5】
コンピュータに読み込ませて実行することによって、コンピュータを請求項1又は2に記載の最適経路探索装置として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−288118(P2009−288118A)
【公開日】平成21年12月10日(2009.12.10)
【国際特許分類】
【出願番号】特願2008−141901(P2008−141901)
【出願日】平成20年5月30日(2008.5.30)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 社団法人計測自動制御学会九州支部,第26回計測自動制御学会九州支部学術講演会予稿集,平成19年12月1日
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.VICS
【出願人】(899000068)学校法人早稲田大学 (602)
【Fターム(参考)】