説明

ネットワーク経路探索装置、方法及びプログラム

【課題】経路探索時の処理負荷の小さいネットワーク表現のためのデータ構造と、それを用いた経路探索手法を提供する。
【解決手段】ネットワークの各リンクのリンク番号に対して、リンクの片方のノードのノード番号と、そのノードに接続された他のリンクのリンク番号である片方のノードの接続先リンク番号と、リンクのもう一方のノードのノード番号と、そのノードに接続された他のリンクのリンク番号であるもう一方のノードの接続先リンク番号と、を格納したリンク接続先テーブルにより、相互に接続されたリンクを辿ることで経路探索を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク経路探索装置、方法及びプログラムに関し、特にネットワークを表現する新規なデータ構造に基づくネットワーク経路探索装置、方法及びプログラム、さらにはネットワークを表現する新規なデータ構造を作成する手法に関する。
【背景技術】
【0002】
道路網、通信網、あるいは配管ネットワーク等の物理的ネットワークを論理的なネットワークで表現し、コンピュータ上で最適経路を求めたり配送コストを計算したりすることが行われている。そのようなネットワーク関連の技術を適用した車両走行案内装置が下記特許文献1に開示されている。
従来の論理的ネットワーク(以下、単にネットワークという。)は、特許文献1の表1及び表2に記載されているように、ネットワーク要素としてノードとノード間を接続するリンクのそれぞれが定義されているとみることができる。そして、ノードとリンクの属性に関するデータによりネットワークが表現され、そのネットワーク表現に基づいて、経路探索等が行われている。
【0003】
図1は、ネットワーク構成例とそれを表現する従来のデータ構造を説明する図である。図1の(a)に示すのは、道路網をモデル化したノード10(N1〜N6)と各ノード間を接続するリンク12(L1〜L8)からなるネットワークの構成例である。ノードの符号10は、ノードN1にのみ付され、他は省略している。リンクの符号12についても、リンクL5にのみ付され、他は省略している。図に示すように、リンクL1はノードN1とノードN2を接続し、リンクL2はノードN2とノードN3を、リンクL3はノードN2とノードN4を接続している。リンクL4はノードN3とノードN4を接続し、リンクL5はノードN3とノードN5を接続している。また、リンクL6はノードN4とノードN5を、リンクL7はノードN4とノードN6を、リンクL8はノードN5とノードN6を接続している。
【0004】
図1の(b)に示すのは、図1の(a)に示すネットワークを表現する従来のデータ構造の例であり、交差点テーブル111、リンクテーブル121及びノードテーブル131を備えている。
交差点テーブル111は、交差点であるノードとそれに接続された道路であるリンクを関係づけたものであり、ノードのノード番号112に対応してノードに接続されたリンクのリンク番号114が格納されている。図の例では、ノード番号N1に対してリンク番号L1が、ノード番号N2に対してリンク番号L1、L2、L3が、記載されている。以下同様に、N3に対してL2、L4、L5が、N4に対してL3、L4、L6、L7が、N5に対してL5、L6、L7が、N6に対してL7、L8が格納されている。なお、メモリ上に存在するのはN1の行からN6の行にかけての部分であることは当然である。以下で説明する他のテーブルについても同様である。
【0005】
リンクテーブル121は、リンクとその両端のノードを関係づけたものであり、リンク番号122に対して該リンク番号122のリンクに接続された片方のノードのノード番号123ともう一方のノードのノード番号124が格納されている。図の例では、リンク番号L1に対してノード番号N1とノード番号N2が、リンク番号L2に対してノード番号N2とノード番号N3が片方のノード番号123ともう一方のノード番号124として格納されている。以下同様に、L3に対してN2とN4が、L4に対してN3とN4が、L5に対してN3とN5が、L6に対してN4とN5が、L7に対してN4とN6が、L8に対してN5とN6が格納されている。
【0006】
ノードテーブル131は、ノード番号132とノード情報133の項目からなり、各ノードのノード番号N1〜N6毎に各ノードの位置等のノード情報を格納したものである。なお、ノード情報の具体例については省略されている。

【特許文献1】特開平7−146155号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
従来のネットワーク表現においては、ノードとリンクの双方をネットワークの構成要素とし、複数のテーブルを備えており、経路探索を行うとき、これらの複数のテーブルを順次参照することが必要となるため、経路探索を行うときの処理コストが高いという欠点を有する。
【0008】
そこで本発明が解決しようとする課題は、経路探索時の処理負荷の小さいネットワーク表現のためのデータ構造と、それを用いた経路探索手法を提供することである。
【課題を解決するための手段】
【0009】
本発明によれば、ネットワークの各リンクのリンク番号に対して、リンクの片方のノード(以下、A端のノードということがある。)のノード番号と、そのノードに接続された他のリンクのリンク番号である片方のノードの接続先リンク番号と、リンクのもう一方のノード(以下、B端のノードということがある。)のノード番号と、そのノードに接続された他のリンクのリンク番号であるもう一方のノードの接続先リンク番号と、を格納したリンク接続先テーブルを、ネットワークを表現するデータ構造として提供する。
【0010】
リンク接続先テーブルは、さらに各リンクのA端のノードからB端のノードへのコスト及びB端のノードからA端のノードへのコスト、すなわちリンクのコストを備える。さらに、本発明の好適な実施の形態によれば、リンク接続先テーブルは、各リンクからA端及びB端のノードの接続先リンク番号に格納されたリンク番号のリンクに接続するコストを格納することができる。リンク接続先テーブルに格納されたリンクとその接続先リンクをたどることにより始点から終点への経路を探索し、各経路のコストを計算して最適経路探索を行う。
【0011】
すなわち、始点側のノードをA端のノードとすると、経路探索は、始点側のノードに係るリンクからスタートし、そのリンク番号の行に格納されたリンク接続先テーブルのB端のノードの接続先リンク番号のリンクに分岐し、さらにリンク接続先テーブルの、それらの分岐したリンクのリンク番号の行に格納されたB端のノードの接続先リンク番号のリンクに分岐することを終点のノードをB端のノードとするリンクまで、コストを計算しながら繰り返すことで行う。そして、始点から終点までの経路のうち、最適な経路を探索結果として出力する。
【発明の効果】
【0012】
本発明のネットワーク表現のためのデータ構造によれば、リンク接続先テーブルを用いるだけであり、経路探索における経路の分岐はリンク番号のみを参照して行うことができるので、処理コストを小さくすることができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態を、図面を参照しながら説明する。
図2Aは、本発明の一実施の形態におけるネットワーク表現用のデータ構造を作成するための機能ブロックを説明する図である。図1に示す従来のデータ構造を有するデータをデータ構造読取手段201で読み取り、リンク接続先テーブル生成手段202がそのデータに基づきリンク接続先テーブルを生成する。
【0014】
図2Bは、本発明の一実施の形態におけるネットワークの経路探索のための機能ブロックを説明する図である。ネットワークの経路探索要求に基づき、経路条件設定手段205が経路探索要求されたネットワークに対応するリンク接続先テーブル、始点ノード、終点ノード等の経路条件を設定する。経路探索手段206は、経路条件設定手段で設定された条件に基づいて経路を探索するとともに、それらの経路のコストを計算する。最適経路出力手段207は、経路探索手段206で探索された経路のうち、最適なコストの経路を探索結果として出力する。
【0015】
図3は、本発明の一実施の形態におけるハードウェア構成例を説明する図である。
本発明のネットワーク経路探索装置による経路探索処理及びネットワーク表現用のデータ構造生成処理は中央処理装置302及びキャッシュメモリ303を少なくとも備えたデータ処理装置301によりデータ格納装置308を用いて実施される。リンク接続テーブル309を有するデータ格納装置308は、主記憶装置305または外部記憶装置306で実現することができ、あるいは通信装置307を介して接続された遠方に配置された装置を用いることも可能である。
【0016】
図2A及び図2Bを参照して説明したデータ構造取出手段201等の各機能ブロックは、図3に例示するハードウェアと後に説明するステップを備えたソフトウェアにより実現可能である。
【0017】
図3の例示では、主記憶装置305、外部記憶装置306及び通信装置307が一本のバス304によりデータ処理装置301に接続されているが、接続方法はこれに限るものではない。また、主記憶装置305をデータ処理装置301内のものとすることもできる。
また、特に図示されてはいないが、処理の途中で得られた各種の値を後の処理で用いるためにそれぞれの処理に応じた一時記憶領域が用いられることは当然である。以下の説明では、一時記憶領域に格納されたあるいは設定された値を一時記憶領域の名前で呼ぶことがある。
【0018】
図4Aは、本発明の一実施の形態におけるネットワークを表現するデータ構造を説明する図である。コストについては省略している。図に示すように、リンク接続先テーブル309aは、リンク番号232、片方のノードのノード番号234、片方のノードの接続先リンク番号235、もう一方のノードのノード番号237及びもう一方のノードの接続先リンク番号238の項目を有している。
【0019】
各項目の値は、図1の(a)に示すネットワーク構成例に対応するものである。リンク番号232のL1に対応して、片方のノードのノード番号234にN1、もう一方のノードのノード番号237にN2、もう一方のノードの接続先リンク番号238にL2とL3が格納され、片方のノードの接続先リンク番号235には何も格納されていない。
【0020】
リンク番号232のL2に対応しては、片方のノードのノード番号234にN2、片方のノードの接続先リンク番号235にL1とL3、もう一方のノードのノード番号237にN3、もう一方のノードの接続先リンク番号238にL4とL5が格納されている。
【0021】
以下同様に、各リンク番号232のL3、L4、L5、L6、L7、L8にそれぞれ対応して、片方のノードのノード番号234にN2、N3、N3、N4、N4、N5が、片方のノードの接続先リンク番号235にL1とL2、L2とL5、L2とL4、L3とL4とL7、L3とL4とL6、L5とL6が、もう一方のノードのノード番号237にN4、N4、N5、N5、N6、N6が、もう一方のノードの接続先リンク番号238にL4とL6とL7、L3とL6とL7、L6とL8、L5とL8、L8、L7が、格納されている。
【0022】
図4Bは、従来のネットワーク表現データから本発明の一実施形態におけるネットワーク表現データを生成する概念を説明する図である。図に示す従来のデータ構造100は、図1の(b)に示すリンクテーブル121と交差点テーブル111の関連する一部の行を取り出して示している。図4Bに示す例では、矢印403で示すリンク番号122がL2である行をリンクテーブル121から取り出している。
【0023】
本発明の一実施の形態におけるデータ構造200は、図4Aに示すリンク接続テーブル309aのリンク番号232がL2の行である。従来のデータ構造100のリンク番号122からの点線の矢印(A)で示すように、従来のデータ構造100のリンク番号122と同じリンク番号が、本発明の一実施の形態におけるデータ構造200のリンク番号232に設定される。
【0024】
矢印404で示すように、従来のデータ構造100の片方のノード番号123のN2の行が交差点テーブル111から読み出され、点線の矢印(B)で示すように、ノード番号112aのN2、点線の矢印(D)で示すようにリンク番号114aのうちリンク番号122と同一でないL1とL3が、それぞれ本発明の一実施の形態におけるデータ構造200の片方のノード番号234と片方のノードの接続先リンク番号235に設定される。
【0025】
同様に、矢印405で示すように、従来のデータ構造100のもう一方のノード番号124のN3の行が交差点テーブル111から読み出され、点線の矢印(C)で示すように、ノード番号112bのN3、点線の矢印(E)で示すようにリンク番号114bのうちリンク番号122と同一でないL4とL5が、それぞれ本発明の一実施の形態におけるデータ構造200のもう一方のノード番号237ともう一方のノードの接続先リンク番号238に設定される。
【0026】
図5は、本発明の一実施の形態におけるネットワーク表現のためのデータ構造を作成する処理フローを説明する図である。以下において、図1、図4A及び図4Bの例示を参照しながら説明する。
【0027】
まず、ステップS501でリンク接続先テーブル書込位置に、リンク接続先テーブルの先頭位置を設定する。図4Aの例示では、リンク接続先テーブル309aのリンク番号232がL1の行の先頭位置が設定される。ここでリンク接続先テーブル書込位置は、先に述べた「処理の途中で得られた各種の値を後の処理で用いるためにそれぞれの処理に応じた一時記憶領域」の1つであり、リンク接続先テーブルの書込位置を設定する図示しない一時記憶領域である。以下の説明において、上述のリンク接続先テーブル書込位置と同様に、図示しない一時記憶領域をそこに格納されあるいは設定されるデータの内容により呼ぶことがある。
【0028】
次にステップS502で、リンクテーブル読出位置に、リンクテーブルの先頭位置を設定する。図1の例示では、リンクテーブル121のリンク番号122がL1の行の先頭位置が設定される。
【0029】
次にステップS503に進み、リンクテーブル読出位置の指すリンクテーブルよりリンク番号を取り出し、一時記憶領域であるリンク番号(以下、図5の説明に限り、Aという。)に設定する。図4Bの例示では、矢印403で示すようにリンクテーブル読出位置のリンク番号122はL2であり、AにはL2が設定される。
【0030】
次にステップS504に進み、リンクテーブル読出位置の指すリンクテーブルより片方のノード番号を読み出し、一時記憶領域である片方のノード番号(以下、図5の説明に限り、Bという。)に設定する。図4Bの例示では、リンクテーブル読出位置の片方のノード番号123はN2であり、BにはN2が設定される。
【0031】
次にステップS505に進み、リンクテーブル読出位置の指すリンクテーブルよりもう一方のノード番号を読み出し、一時記憶領域であるもう一方のノード番号(以下、図5の説明に限り、Cという。)に設定する。図4Bの例示では、リンクテーブル読出位置のもう一方のノード番号124はN3であり、CにはN3が設定される。
【0032】
次にステップS506に進み、Bの指す交差点テーブルよりAを除いたリンク番号を読み出し、一時記憶領域である片方のノードの接続リンク番号(以下、図5の説明に限り、Dという。)に設定する。図4Bの例示では、矢印404で示すように、Bに設定されたN2の指す交差点テーブルのリンク番号はL1、L2、L3であり、Aに設定されたL2を除くL1とL3がDに設定される。
【0033】
次にステップS507に進み、Cの指す交差点テーブルよりAを除いたリンク番号を読み出し、一時記憶領域であるもう一方のノードの接続リンク番号(以下、図5の説明に限り、Eという。)に設定する。図4Bの例示では、矢印405で示すように、Cに設定されたN3の指す交差点テーブルのリンク番号はL2、L4、L5であり、Aに設定されたL2を除くL4とL5がEに設定される。
【0034】
次にステップS508において、リンク接続先テーブル書込位置の指すリンク接続先テーブルの、リンク番号にAを、片方のノード番号にBを、もう一方のノード番号にCを、片方のノードの接続先リンク番号にDを、もう一方のノードの接続リンク先番号にEを、それぞれ設定する。図4Bの例示では、矢印403と対応するリンク接続先テーブル書込位置のリンク番号232にAに設定されたL2が、片方のノード番号234にBに設定されたN2が、片方のノードの接続先リンク番号235にDに設定されたL1とL3が、もう一方のノード番号237にCに設定されたN3が、もう一方のノードの接続リンク先番号238にEに設定されたL4とL5が、それぞれ設定されている。
【0035】
次にステップS509において、リンクテーブル読出位置はリンクテーブルの末尾の位置か判定する。末尾の位置でなければ、ステップS510でリンク接続先テーブル書込位置に次の書込位置を設定し、ステップS511でリンクテーブル読出位置に次の読出位置を設定してステップS503に戻ってステップS503〜ステップS509の処理を繰り返す。
【0036】
一方、ステップS509で、リンクテーブル読出位置はリンクテーブルの末尾の位置であると判定されると、リンク接続先テーブルは完成しているので処理を終了する。上述の処理フローのうち、ステップS502〜ステップS511を図2Aに示すデータ構造読取手段201により実行し、ステップS501とステップS508をリンク接続先テーブル生成手段202により実行するもととすることができる。なお、上述の処理フローと各ステップの実行手段の対応は単なる一例であり、種々の変更が可能なことは明らかである。
【0037】
以上の処理でリンク接続先テーブルが生成されるので、リンク接続先テーブルの生成に用いたデータは消去することも可能であるが、次に説明するネットワーク探索処理において、経路探索の始点に接続されたリンクを探す処理の便宜のために、交差点テーブルを残しておくことが好適である。
【0038】
図6は、本発明の一実施の形態におけるネットワーク探索におけるコスト設定例を説明する図である。図6の(a)に示すのは、図1の(a)に示すネットワーク構成例のうち、ノードN2とN3及びそれらに接続されるリンクL1、L2、L3、L4、L5に関係する本発明の一実施の形態におけるコストの概念である。
【0039】
図に示すように、リンク接続先テーブルのリンク番号232がL2であるとすると、片方のノード(A端のノード)のノード番号234はN2、もう一方のノード(B端のノード)のノード番号237はN3である。このとき、リンクL2に対して、ノードN2からノードN3へのもう一方のノードへのコスト[234a]と、ノードN3からノードN2への片方のノードへのコスト[237a]が定義される。これらのコストを区間コストという。
【0040】
本発明の一実施の形態においては、上述の区間コストに加えて、リンクのA端側とB端側のリンクへの接続コストを定義する。以下の実施の形態の説明では、接続コストが定義されるものとして説明する。図に示すように、A端側において、リンク番号232がL2のリンクから、片方のノードの接続先リンク番号235aがL1の接続先リンクへの接続コスト[236a]と片方のノードの接続先リンク番号235bがL3の接続先リンクへの接続コスト[236b]が定義される。同様に、B端側において、もう一方のノードの接続先リンク番号238aがL4の接続先リンクへの接続コスト[239a]ともう一方のノードの接続先リンク番号238bがL5の接続先リンクへの接続コスト[239b]が定義される。
【0041】
図6の(b)に示すのは、図4Aに例示したリンク接続先テーブル309aに上述の区間コストと接続コストを付加したリンク接続先テーブル309bである。リンク番号232がL1〜L8のリンクに対して、B端へのコスト234aの例として1、2、3、1、2、2、3、1が設定され、A端へのコスト237aの例として2、1、2、3、1、2、2、3が設定されている。
【0042】
また、A端のノードの接続先リンク情報として、リンク235aへの接続コスト236a、リンク235bへの接続コスト236b及びリンク235cへの接続コスト236cが設定されている。同様に、B端のノードの接続先リンク情報として、リンク238aへの接続コスト239a、リンク238bへの接続コスト239b及びリンク238cへの接続コスト239cが設定されている。
【0043】
ただし、リンクL1のA端のノードであるN1はネットワーク上の片接続の端点であるので、図4Aに示すリンク接続先テーブル309aのリンクL1についての片方のノードの接続先リンク番号235には何も設定されておらず、したがって、リンク接続先テーブル309bのリンク番号L1に対応するA端のノードの接続先リンク情報は設定されていない。リンクL1のB端のノードの接続先リンク情報については、リンクL2への接続コストに1、リンクL3への接続コストに1が設定されている。
【0044】
リンクL2については、A端のノードの接続先リンク情報としてリンクL1への接続コストに2、リンクL3への接続コストに1が設定され、B端のノードの接続先リンク情報としてリンクL4への接続コストに1、リンクL5への接続コストに1が設定されている。
【0045】
リンクL3については、A端のノードの接続先リンク情報としてリンクL1への接続コストに3、リンクL2への接続コストに2が設定され、B端のノードの接続先リンク情報としてリンクL4への接続コストに2、リンクL6への接続コストに2、リンクL7への接続コストに2が設定されている。
【0046】
リンクL4については、A端のノードの接続先リンク情報としてリンクL2への接続コストに1、リンクL5への接続コストに1が設定され、B端のノードの接続先リンク情報としてリンクL3への接続コストに2、リンクL6への接続コストに3、リンクL7への接続コストに3が設定されている。
【0047】
リンクL5については、A端のノードの接続先リンク情報としてリンクL2への接続コストに2、リンクL4への接続コストに2が設定され、B端のノードの接続先リンク情報としてリンクL6への接続コストに1、リンクL8への接続コストに2が設定されている。
【0048】
リンクL6については、A端のノードの接続先リンク情報としてリンクL3への接続コストに2、リンクL4への接続コストに3、リンクL7への接続コストに2が設定され、B端のノードの接続先リンク情報としてリンクL5への接続コストに2、リンクL8への接続コストに3が設定されている。
【0049】
リンクL7については、A端のノードの接続先リンク情報としてリンクL3への接続コストに3、リンクL4への接続コストに4、リンクL6への接続コストに1が設定され、B端のノードの接続先リンク情報としてリンクL8への接続コストに1が設定されている。
【0050】
リンクL8については、A端のノードの接続先リンク情報としてリンクL5への接続コストに2、リンクL6への接続コストに2が設定され、B端のノードの接続先リンク情報としてリンクL7への接続コストに2が設定されている。
【0051】
上述のように、コストを区間コストと接続コストに分離して設定可能とすることにより、よりきめ細かく現実の物理ネットワークを模擬することができる。例えば道路網をモデル化する場合、道幅や速度制限等の比較的道路に固有の条件を区間コストに反映し、右折禁止や右折信号の有無など、道路と道路の間の通行条件を接続コストに反映することなどができる。
【0052】
図7は、本発明の一実施の形態におけるネットワークの経路探索の概念を説明する図である。図7の(a)に示すのは、図1の(a)に例示するネットワークのノードN1を始点とし、ノードN6を終点とする経路探索において展開されるすべての経路であり、図7の(b)に示すのは、上述の経路探索において作成される経路情報テーブルである。
始点ノードから終点ノードまでの経路は、その間を接続するリンク列で表現できることから、経路展開は、最初のリンクL1をルートとし、その接続先リンクを下位のノードとするツリーの形状で表すことができる。このツリーを経路展開ツリーと呼ぶことにすると、図7の(a)に示すものは、経路中のリンクに対して、A端のノード番号234、リンク番号232、B端へのコスト234a及びB端のノード番号237を備えるノード(経路展開ノードということがある。)と下位の経路展開ノードに含まれるリンクへの接続コストを備えたブランチ(経路展開ブランチということがある。)を備えた経路展開ツリーである。したがって、ネットワークの経路探索は、経路展開ツリーを生成し、生成された経路から最適経路を探すことに相当する。
【0053】
図に示すように、始点241としてノードN1が指定され、リンク接続先テーブル309bから、ノード番号N1を片方のノード(A端のノード)のノード番号234とするリンク番号232としてL1が選ばれ、リンク番号L1の指すリンク接続先テーブル309bからB端へのコスト234aとして1が取り出され、さらにB端のノードのノード番号237としてN2が読み出され、経路展開ツリーのルートノードが生成される。B端のノードN2には、N2までの経路コスト242a[接続数、累積コスト]として「0、1」が計算されて付随している。
【0054】
次にリンク番号L1の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報の先頭から、リンクL2への接続コスト239aとしての1が読み出され、実線の矢印で示すように接続コストL2[1]が付随した経路展開ブランチが生成される。そして、リンク番号L2の指すリンク接続先テーブル309bからA端のノード番号234としてのN2とB端へのコスト234aとして2が読み出され、さらにB端のノードのノード番号237としてN3が読み出され、N3までの経路コスト242bとして[1、4]が計算され、リンクL2に対応する経路展開ノードが生成される。ここで累積コスト4は、ノードN2までの累積コスト1にリンクL1からリンクL2への接続コスト1とリンク2の区間コスト2を加えたものである。
【0055】
また同じく、リンク番号L1の指すリンク接続先テーブル309bからB端のノードの次の接続先リンク情報として、リンクL3への接続コスト239bとしての1が読み出され、さらにリンク番号L3の指すリンク接続先テーブル309bからB端へのコスト234aとして3が取り出され、さらにB端のノードのノード番号237としてN4が読み出され、N4までの経路コスト242cとして[1、5]が計算される。
【0056】
リンクL2側の経路では、リンク番号L2の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL4への接続コスト239aとしての1が読み出され、さらにリンク番号L4の指すリンク接続先テーブル309bからB端へのコスト234aとして1が取り出され、さらにB端のノードのノード番号237としてN4が読み出され、N4までの経路コスト242dとして[2、6]が計算される。
【0057】
また同じくリンクL2側の経路では、リンク番号L2の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL5への接続コスト239bとしての1が読み出され、さらにリンク番号L5の指すリンク接続先テーブル309bからB端へのコスト234aとして2が取り出され、さらにB端のノードのノード番号237としてN5が読み出され、N5までの経路コスト242eとして[2、7]が計算される。
【0058】
一方リンクL3側の経路では、リンク番号L3の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL4への接続コスト239aとしての2が読み出され、さらにリンク番号L4の指すリンク接続先テーブル309bからB端へのコスト234aとして1が取り出され、さらにB端のノードのノード番号237としてN4が読み出される。
【0059】
このリンクL4への接続については、経路展開なし244aの点線の矢印で示しているように、リンク番号L4の指すリンク接続先テーブル309bのB端のノード番号237に設定されているノード番号がN4であって、接続元のリンクL3のB端のノードN4に戻るので、最小コスト計算に不要な経路であることは自明であるから、ここでは経路展開を打ち切る。なお、接続先のリンクのA端のノードかB端のノードのどちらか一方は接続元もリンクのB端のノードと一致し、同一のリンクのA端のノードとB端のノードが一致することはないから、経路展開の打ち切りの判定は、接続先のリンクのA端のノードが接続元のリンクのB端のノードと一致するかにより行うことができる。
【0060】
同じくリンクL3側の経路では、リンク番号L3の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL6への接続コスト239bとしての2が読み出され、さらにリンク番号L6の指すリンク接続先テーブル309bからB端へのコスト234aとして2が取り出され、さらにB端のノードのノード番号237としてN5が読み出され、N5までの経路コスト242fとして[2、9]が計算される。
【0061】
さらに同じくリンクL3側の経路では、リンク番号L3の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL7への接続コスト239cとしての2が読み出され、さらにリンク番号L7の指すリンク接続先テーブル309bからB端へのコスト234aとして3が取り出され、さらにB端のノードのノード番号237としてN6が読み出され、N6までの経路コスト242gとして[2、10]が計算される。図に示すように、ノードN6はリンクL1、L3、L7の経路による終点247gである。
【0062】
また、リンクL2、L4の経路では、リンク番号L4の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL3への接続コスト239aとしての2が読み出され、さらにリンク番号L3の指すリンク接続先テーブル309bからB端へのコスト234aとして3が取り出され、さらにB端のノードのノード番号237としてN4が読み出される。したがって、リンクL4のB端のノードN4に戻るので、経路コストの計算は行わず、経路の展開も打ち切る。
【0063】
同じくリンクL2、L4の経路では、リンク番号L4の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL6への接続コスト239bとしての3が読み出され、さらにリンク番号L6の指すリンク接続先テーブル309bからB端へのコスト234aとして2が取り出され、さらにB端のノードのノード番号237としてN5が読み出され、N5までの経路コスト242hとして[3、11]が計算される。
【0064】
さらに同じくリンクL2、L4の経路では、リンク番号L4の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL7への接続コスト239cとしての3が読み出され、さらにリンク番号L7の指すリンク接続先テーブル309bからB端へのコスト234aとして3が取り出され、さらにB端のノードのノード番号237としてN6が読み出され、N6までの経路コスト242iとして[3、12]が計算される。図に示すように、ノードN6はリンクL1、L2、L4、L7の経路による終点247iである。
【0065】
また、リンクL2、L5の経路では、リンク番号L5の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL6への接続コスト239aとしての1が読み出され、さらにリンク番号L6の指すリンク接続先テーブル309bからB端へのコスト234aとして2が取り出され、さらにB端のノードのノード番号237としてN5が読み出される。したがって、リンクL5のB端のノードN5に戻るので、経路コストの計算は行わず、経路の展開も打ち切る。
【0066】
同じくリンクL2、L5の経路では、リンク番号L5の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL8への接続コスト239bとしての2が読み出され、さらにリンク番号L8の指すリンク接続先テーブル309bからB端へのコスト234aとして1が取り出され、さらにB端のノードのノード番号237としてN6が読み出され、N6までの経路コスト242jとして[3、10]が計算される。図に示すように、ノードN6はリンクL1、L2、L5、L8の経路による終点247jである。
【0067】
また、リンクL3、L6の経路では、リンク番号L6の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL5への接続コスト239aとしての2が読み出され、さらにリンク番号L5の指すリンク接続先テーブル309bからB端へのコスト234aとして2が取り出され、さらにB端のノードのノード番号237としてN5が読み出される。したがって、リンクL6のB端のノードN5に戻るので、経路コストの計算は行わず、経路の展開も打ち切る。
【0068】
同じくリンクL3、L6の経路では、リンク番号L8の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL8への接続コスト239bとしての3が読み出され、さらにリンク番号L8の指すリンク接続先テーブル309bからB端へのコスト234aとして1が取り出され、さらにB端のノードのノード番号237としてN6が読み出され、N6までの経路コスト242kとして[3、13]が計算される。図に示すように、ノードN6はリンクL1、L3、L6、L8の経路による終点247kである。
【0069】
また、リンクL2、L4、L6の経路では、リンク番号L6の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL5への接続コスト239aとしての2が読み出され、さらにリンク番号L5の指すリンク接続先テーブル309bからB端へのコスト234aとして2が取り出され、さらにB端のノードのノード番号237としてN5が読み出される。したがって、リンクL6のB端のノードN5に戻るので、経路コストの計算は行わず、経路の展開も打ち切る。
【0070】
同じくリンクL2、L4、L6の経路では、リンク番号L6の指すリンク接続先テーブル309bからB端のノードの接続先リンク情報として、リンクL8への接続コスト239bとしての3が読み出され、さらにリンク番号L8の指すリンク接続先テーブル309bからB端へのコスト234aとして1が取り出され、さらにB端のノードのノード番号237としてN6が読み出され、N6までの経路コスト242mとして[4、15]が計算される。図に示すように、ノードN6はリンクL1、L2、L4、L6、L8の経路による終点247mである。
【0071】
以上により、ノードN1からノードN6への経路がすべて展開され、その接続数と累積コスト、及び経路リストを格納したものが、図7の(b)に示す経路情報テーブル281である。経路情報テーブルは図7の(a)に示す終点247m、247i、247j、247k、247gに対応して、接続数として4、3、3、3、2が、累積コストとして15、12、10、13、10が格納されている。また、A端のノードのノード番号とリンク番号を組み合わせた経路リストには、図7の(a)に展開された経路に対応するものが格納されている。
なお、上述の経路展開の説明では、経路展開ツリーを上位の階層から説明したが、経路展開ツリーはリンク接続先テーブル309bに格納されたB端のノードの接続先リンク情報の位置(経路展開ツリー上では上側(右側))を優先させて生成させることができる。図7の(b)に示す経路情報テーブルに格納された経路情報は、この順番で生成された経路展開ツリーによるものである。
【0072】
以下、図8A〜図8Cを参照して本発明の一実施の形態におけるネットワークの最適経路を探索する処理を説明する。この説明においては、経路展開ツリーの右側を優先させて生成するものとする。
図8Aは、本発明の一実施の形態におけるネットワークの最適経路を探索する処理の概略フローを説明する図である。以下において、図1の(a)に示すネットワーク構成例、図6の(b)に示すリンク接続先テーブル309b、図7の(b)に示す経路情報テーブル281等の具体例を適宜参照しながら説明する。その際、「具体例では、・・・」等の表記をすることがある。
【0073】
まず、ステップS801において、リンク接続先テーブル、経路探索の始点ノード番号と始点リンク番号、及び終点ノード番号を設定する。リンク接続先テーブルの設定では、例えばリンク接続先テーブルの名称をシステム外部から指定することによりその先頭アドレスとサイズを設定する。また始点リンク番号の設定では、先に述べたように交差点テーブルから始点ノードに接続されたリンクのリンク番号を設定してもよい。
具体例では、始点ノード番号にN1、始点リンク番号にL1、終点ノード番号にN6、リンク接続先テーブルにリンク接続先テーブル309bが設定される。
【0074】
次にステップS802において、経路情報の接続数に値“−1”を、累積コストに値“0”を設定し、ステップS803で次のノード番号に、始点ノード番号を設定する。
さらにステップS804で、接続先リンク番号に始点リンク番号を設定するとともに、接続コストに値“0”を設定し、ステップS804aでリンク情報の読出位置を初期化してステップS805に進む。具体例では、次のノード番号にN1が、接続先リンク番号にL1が設定される。
【0075】
ステップS805では、接続先リンク番号の指すリンク接続先テーブルを基に経路を探索し、ステップS806に進む。ステップS805の処理の詳細は、後に図8Bを参照して説明する。
ステップS806では、ステップS805で求めた探索結果より最適経路を出力し、処理を終了する。ステップS806の処理の詳細は、後に図8Cを参照して説明する。
なお、始点ノードに接続されたリンクが複数ある場合は、上述の処理によりそれぞれのリンクを始点リンクとした最適経路を求め、それらの最適経路からさらに最適経路を求めることができることは、当業者に明らかである。
【0076】
図8Bは、図8Aに示すステップS805の詳細な処理フローを示すものであり、本発明の一実施の形態におけるネットワークの経路探索の処理フローを説明する図である。
図に示すように、ステップS810において、スタックに、経路情報及びリンク情報をプッシュする。ここで経路情報とは、接続数、累積コスト、経路リスト及びその書込位置であり、リンク情報とは、次のノード番号、接続先リンク番号、接続コスト、接続先リンク番号の指すリンク接続先テーブルの内容及びリンク接続先テーブルのリンク情報の読出位置である。ステップS810の最初の処理では、図8Aに示すステップS801〜ステップS804aで設定された内容がスタックにプッシュされる。
【0077】
次にステップS811で、接続先リンク番号の指すリンク接続先テーブルの内容を読み出す。具体例における最初の処理では、図8Aに示すステップS804において、接続先リンク番号に始点リンク番号であるL1が設定されているので、リンク接続先テーブル309bの先頭の行であるリンク番号232がL1の行の内容が読み出される。
【0078】
次にステップS812において、次のノード番号はステップS811で読み出したリンク接続先テーブルのA端のノード番号と一致するか判定する。一致すればステップS813に進み、一致しなければ、ステップS821へ分岐する。具体例における最初の処理では、A端のノード番号234はN1であり、次のノード番号には図8Aに示すステップS803で始点ノード番号であるN1が設定されているので、一致すると判定され、ステップS813に進む。一致しないと判定されるのは、図7の(a)に示す経路展開のうち、点線の矢印で示す経路展開なしとなる場合である。
【0079】
ステップS813では、経路情報の接続数に1を加え、累積コストに接続コストとステップS811で読み出したリンク接続先テーブルのB端へのコストを加えると共に、経路情報の経路リストの書込位置に次のノード番号と接続先リンク番号を書き込み、書込位置を更新する。ここで接続コストは、図8Aに示すステップS804で初期設定されているか、あるいは後記ステップS818で設定されたものである。また、経路情報は、図7の(b)に示す経路情報テーブル281の1行分の項目を持つ一次記憶領域である。具体例における最初の処理では、経路情報の接続数と累積コストには、図8Aに示すステップS802で値“−1”と“0”がそれぞれ初期設定されており、リンク接続先テーブルの初期化されたリンク情報の読出位置のB端へのコスト234aには1が格納されているので、経路情報の接続数と累積コストは、それぞれ0と1になる。また、経路情報の経路リストの先頭位置に、図8Aに示すステップS802とステップS803で初期設定されている次のノード番号N1と接続先リンク番号L1が書き込まれる。
【0080】
次にステップS814に進み、ステップS811で読み出したリンク接続先テーブルのB端のノード番号が終点ノード番号と一致するか判定し、B端のノード番号は終点ノード番号と一致しないと判定されると、ステップS815に分岐する。ステップS815では、B端のノードの接続先リンク情報は存在するか判定する。この判定を行うのは、経路に行き止まりのリンクがあるとそのB端のノードの接続先リンク情報は存在しないことから、前に述べたように経路の展開ができないので、その場合には後記ステップS821に分岐するためである。
【0081】
一方、ステップS815で接続先リンク情報が存在すると判定されるとステップS816に進み、次のノード番号にB端のノード番号を設定し、ステップS817において、リンク情報の読出位置に、リンク接続先テーブルのB端のノードの接続先リンク情報の先頭位置を設定する。このリンク情報の読出位置の設定により、経路探索の優先順位が決定され、具体例の経路探索ツリーについて説明したように、ツリーの右側優先で経路が探索される。
ステップS817に続いてステップS818で、リンク情報の読出位置の指すステップS811で読み出したリンク接続先テーブルのB端のノードの接続先リンク情報より、接続先リンク番号と接続コストを取り出して設定する。具体例における最初の処理では、B端のノードの接続先リンク情報からリンク238aとコスト239aとして格納されているL2と1が取り出され、接続先リンク番号と接続先コストに設定され、ステップS810に戻る。
【0082】
以上のステップS810〜ステップS818のループ処理を、ステップS812での判定結果が次のノード番号はA端のノード番号と一致しない(以下、枝刈り判定ということがある。)となるか、ステップS814での判定結果が終点ノード番号はB端のノード番号と一致する(以下、終点判定ということがある。)となる、あるいはステップS818での判定結果が接続先リンク情報は存在しない(以下、行き止まり判定ということがある。)となるまで繰り返す。
【0083】
ステップS814での判定結果が終点判定であるとステップS820に進み、経路情報の経路リストの書込位置に終点ノード番号を書き込むと共に、経路情報テーブルに経路情報を順次書き込み、ステップS821に進む。ここで経路情報テーブルに経路情報を順次書き込むとは、終点ノードまでの経路情報を、終点毎に順次行を変えながら経路情報テーブルに書き込むことである。
【0084】
ステップS821では、スタックから、経路情報及びリンク情報をポップしてステップS822に進む。スタックには、ステップS810〜ステップS818のループ処理において、ステップS810で、スタックに経路情報及びリンク情報をプッシュしている。つまり、経路展開ツリーの経路展開ノードを生成する毎に生成された経路展開ノードについての経路情報とリンク情報をスタックにプッシュしている。
【0085】
そして、上述のループ処理のうちステップS811以降では、経路情報とリンク情報をスタックにプッシュした経路展開ノードの下位の経路展開ノードについての処理を行っており、枝刈り判定、終点判定あるいは行き止まり判定も下位の経路展開ノードについて行っているので、上記ループ処理から分岐して実行されるステップS821の処理でポップされる経路情報及びリンク情報は、枝刈り判定、終点判定あるいは行き止まり判定が行われた経路展開ノードの上位の経路展開ノードについてのものである。
【0086】
ステップS822では、スタックが空であるか判定し、スタックが空であれば経路展開は完了しているので処理を終了し、空でなければステップS823に進む。ステップS822でスタックが空と判定されるのは、図7の(a)の例示では、経路が終点247gまで展開されたときである。
【0087】
ステップS823では、ステップS821でポップされたリンク接続先テーブルのB端のノードの接続先リンク情報は全て処理済みか判定する。全て処理済みであればステップS821に戻りさらにスタックから、もう一段上位の経路展開ノードについての経路情報及びリンク情報をポップする。全て処理済みでなければステップS824に進み、リンク情報の読出位置に次の読出位置を設定してステップS818に進み、上述のループ処理に合流する。
【0088】
以上の処理により、始点ノードから終点ノードへの全ての経路が展開され、終点ノードに至る経路情報が生成される。
なお、上述の説明は、始点ノードをリンク接続先テーブルのA端のノードのノード番号のものとしたが、始点ノードをB端のノードのノード番号のものとする場合には、上述の説明のA端をB端と、B端をA端と読み替えればよいことは明らかである。
また、経路展開中の経路情報及びリンク情報をスタックにより保持するとして説明したが、経路展開中の経路情報及びリンク情報をどの段階のものであるか識別可能な形式で記憶するものであれば、経路展開中の経路情報及びリンク情報の保持はスタックに限るものではない。
【0089】
図8Cは、本発明の一実施の形態における最適経路を決定する処理フローを説明する図である。図7の(b)に例示した経路情報テーブル281を適宜参照しつつ説明する。
図に示すように、ステップS831で最小接続数と最小累積コストの値にそれぞれ最大値(ビット値でいえばオール1)を設定する。またステップS832で経路情報テーブルの先頭位置を経路情報の読出位置に設定する。次にステップS833で、経路情報テーブルの先頭位置を最適経路情報の読出位置に設定する。図7の(b)の例示では、終点247mに対応する経路情報の位置が経路情報の読出位置と最適経路情報の読出位置に初期設定される。
【0090】
次にステップS834に進み、経路情報テーブルは全て処理済みか判定する。処理済みでなければ、ステップS835において、経路情報の読出位置の指す経路情報テーブルより、接続数と累積コストを読み出す。次にステップS836で、読み出した累積コストと最小累積コストとの大小関係を判定し、累積コストが最小累積コストより小さければステップS837に分岐して、最小累積コストにステップS835で読み出した累積コストを設定する。ステップS836の最初の判定処理においては、最小累積コストにはステップS831において最大値が設定されていることからステップS837に分岐し、最小累積コストに経路情報テーブルの先頭位置の累積コストを設定し、ステップS840に進む。
【0091】
一方、累積コストが最小累積コストと等しければステップS836からステップS838に進み、さらに接続数は最小接続数より小さいか判定する。ステップS838での判定結果が「はい」であれば、ステップS839で最小接続数に接続数を設定してステップS840に進む。
ステップS840では、最適経路情報の読出位置に、経路情報の読出位置を設定してステップS841に進む。
ステップS838での判定結果が「いいえ」であれば、ステップS841に進む。
また、ステップS836で、累積コストが最小累積コストより大きいと判定されるとステップS841に進む。
ステップS841では、経路情報の読出位置を、次の読出位置に設定してステップS834に戻る。
【0092】
上述のステップS834で、経路情報テーブルは全て処理済みと判定されるとステップS842において、最適経路情報の読出位置の指す経路情報テーブルを読み出し、最適経路情報として出力して処理を終了する。
【0093】
以上本発明を実施するための最良の形態について詳細に説明したが、本発明の実施の形態はそれに限ることなく種々の変形が可能であることは当業者に明らかである。
また、本発明のネットワーク経路探索装置が、リンク接続先テーブルを格納する記憶手段と図8A〜図8Cに示した処理をコンピュータに実行させるプログラムによりコンピュータ上に構築可能なことは明らかである。
【0094】
さらに、図5に示した経路探索のためのデータ構造を作成する処理とその均等物をコンピュータに実行させるプログラムにより、本発明のデータ構造作成方法が実現可能であることも明らかである。そして、それらのプログラムにより、本発明のデータ構造を作成する手段等がコンピュータ上に実現される。
したがって、上記プログラム、及びプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の実施の形態に含まれる。さらに、本発明の経路探索のためのデータ構造及びそのデータ構造を有するデータを記録したコンピュータ読み取り可能な記録媒体も、本発明の実施の形態に含まれる。
以上詳細に説明した本発明が提供する新しいデータ構造であるリンク接続先テーブルを用いることにより、効率的にネットワークの経路探索を行うことが可能となる。
本発明は、それに限るわけではないが、カーナビゲーション装置のような小型のコンピュータを搭載した装置の最適経路探索に適用すると効果が大きいものである。
【図面の簡単な説明】
【0095】
【図1】ネットワーク構成例とそれを表現する従来のデータ構造を説明する図である。
【図2A】本発明の一実施の形態におけるネットワーク表現用のデータ構造を作成するための機能ブロックを説明する図である。
【図2B】本発明の一実施の形態におけるネットワークの経路探索のための機能ブロックを説明する図である。
【図3】本発明の一実施の形態におけるハードウェア構成例を説明する図である。
【図4A】本発明の一実施の形態におけるネットワークを表現するデータ構造を説明する図である。
【図4B】従来のネットワーク表現データから本発明の一実施形態におけるネットワーク表現データを生成する概念を説明する図である。
【図5】本発明の一実施の形態におけるネットワーク表現のためのデータ構造を作成する処理フローを説明する図である。
【図6】本発明の一実施の形態におけるネットワーク探索におけるコスト設定例を説明する図である。
【図7】本発明の一実施の形態におけるネットワークの経路探索の概念を説明する図である。
【図8A】本発明の一実施の形態におけるネットワークの最適経路を探索する処理の概略フローを説明する図である。
【図8B】本発明の一実施の形態におけるネットワーク経路探索の処理フローを説明する図である。
【図8C】本発明の一実施の形態における最適経路を決定する処理フローを説明する図である。
【符号の説明】
【0096】
10 ノード
12 リンク
111 交差点テーブル
121 リンクテーブル
131 ノードテーブル
201 データ構造読取手段
202 リンク接続先テーブル生成手段
205 経路条件設定手段
206 経路探索手段
207 最適経路出力手段
301 データ処理装置
302 中央処理装置
303 キャッシュメモリ
304 バス
305 主記憶装置
306 外部記憶装置
307 通信装置
308 データ格納装置
309 リンク接続先テーブル

【特許請求の範囲】
【請求項1】
ノードとノード間を結ぶリンクからなるネットワークの経路を探索し最適経路を出力するネットワーク経路探索装置において、
ネットワークの各リンクを識別するリンク番号に対して、該各リンクの片方のノードを識別する片方のノード番号と、該片方のノードに接続された全ての他のリンクを識別するリンク番号である片方のノードの接続先リンク番号と、前記各リンクのもう一方のノードを識別するもう一方のノード番号と、該もう一方のノードに接続された全ての他のリンクを識別するリンク番号であるもう一方のノードの接続先リンク番号と、前記各リンクの片方のノードから前記各リンクのもう一方のノードへのコスト及び前記各リンクのもう一方のノードから前記各リンクの片方のノードへのコストであるそれぞれの区間コストを格納するリンク接続先テーブルと、
経路探索の始点となる始点ノードを識別する始点ノード番号と始点リンクを識別する始点リンク番号及び経路探索の終点となる終点ノードを識別する終点ノード番号を設定する経路条件設定手段と、
前記始点リンク番号により前記リンク接続先テーブルを参照して該始点リンクの前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出し、該読み出されたもう一方のノードの接続先リンク番号によりさらに前記リンク接続先テーブルを参照して前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出すことを、該もう一方のノード番号が前記終点ノード番号と一致するまで、前記区間コストを累積しながら繰り返し、さらに該繰り返しを、前記もう一方のノードの接続先リンク番号の読み出しを前記リンク接続先テーブルに格納されたすべてのもう一方のノードの接続先リンク番号について行うことで前記始点ノードから前記終点ノードまでの全ての経路を展開し、該全ての経路のコストを計算する経路探索手段と、
前記経路探索手段が展開した全ての経路から前記経路のコストに基づいて最適経路を選択して出力する最適経路出力手段と、
を備えることを特徴とするネットワーク経路探索装置。
【請求項2】
請求項1に記載のネットワーク経路探索装置において、
前記リンク接続先テーブルは、前記片方のノードの接続先リンク番号と前記もう一方のノードの接続先リンク番号のそれぞれに対応して前記ネットワークの各リンクから前記片方のノードの接続先リンク番号のリンクあるいは前記もう一方のノードの接続先リンク番号のリンクに接続するコストである接続コストを格納するものであり、
前記経路探索手段は、経路のコストの計算において前記区間コストに加えて該経路の接続コストを累積することを特徴とするネットワーク経路探索装置。
【請求項3】
請求項2に記載のネットワーク経路探索装置において、
前記経路探索手段は、前記経路の展開において、前記始点リンクに接続されるリンク数である接続数を累積し、
前記最適経路出力手段は最適経路として同一のコストの経路が複数展開された場合には、該複数展開された経路から前記接続数に基づいて最適経路を選択して出力することを特徴とするネットワーク経路探索装置。
【請求項4】
請求項2に記載のネットワーク経路探索装置において、
経路探索手段は、前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出し、該読み出されたもう一方のノードの接続先リンク番号によりさらに前記リンク接続先テーブルを参照してさらに前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出すことに加えて片方のノード番号を読み出すものであり、該片方のノード番号が先に読み出した前記もう一方のノード番号と一致しないときには、前記さらに読み出されたもう一方のノードの接続先リンク番号による経路展開は行わないことを特徴とするネットワーク経路探索装置。
【請求項5】
請求項4に記載のネットワーク経路探索装置において、
前記接続先リンク番号により参照したリンク接続先テーブルに前記もう一方のノードの接続先リンク番号が存在しないとき、該接続先リンク番号による経路展開は行わないことを特徴とするネットワーク経路探索装置。
【請求項6】
請求項2に記載のネットワーク経路探索装置において、
前記ネットワークは道路網をモデル化したものであることを特徴とするネットワーク経路探索装置。
【請求項7】
請求項6記載のネットワーク経路探索装置を備えたことを特徴とするカーナビゲーション装置。
【請求項8】
請求項7記載のカーナビゲーション装置を備えたことを特徴とする車両。
【請求項9】
ノードとノード間を結ぶリンクからなるネットワークの経路を探索し最適経路を出力するネットワーク経路探索装置であって、ネットワークの各リンクを識別するリンク番号に対して、該各リンクの片方のノードを識別する片方のノード番号と、該片方のノードに接続された全ての他のリンクを識別するリンク番号である片方のノードの接続先リンク番号と、前記各リンクのもう一方のノードを識別するもう一方のノード番号と、該もう一方のノードに接続された全ての他のリンクを識別するリンク番号であるもう一方のノードの接続先リンク番号と、前記各リンクの片方のノードから前記各リンクのもう一方のノードへのコスト及び前記各リンクのもう一方のノードから前記各リンクの片方のノードへのコストであるそれぞれの区間コストを格納するリンク接続先テーブルを備えたネットワーク経路探索装置によるネットワーク経路探索方法おいて、
経路探索の始点となる始点ノードを識別する始点ノード番号と始点リンクを識別する始点リンク番号及び経路探索の終点となる終点ノードを識別する終点ノード番号を設定する経路条件設定ステップと、
前記始点リンク番号により前記リンク接続先テーブルを参照して該始点リンクの前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出し、該読み出されたもう一方のノードの接続先リンク番号によりさらに前記リンク接続先テーブルを参照して前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出すことを、該もう一方のノード番号が前記終点ノード番号と一致するまで、前記区間コストを累積しながら繰り返し、さらに該繰り返しを、前記もう一方のノードの接続先リンク番号の読み出しを前記リンク接続先テーブルに格納されたすべてのもう一方のノードの接続先リンク番号について行うことで前記始点ノードから前記終点ノードまでの全ての経路を展開し、該全ての経路のコストを計算する経路探索ステップと、
前記経路探索ステップで展開した全ての経路から前記経路のコストに基づいて最適経路を選択して出力する最適経路出力ステップと、
を備えることを特徴とするネットワーク経路探索方法。
【請求項10】
請求項9に記載のネットワーク経路探索方法において、
前記リンク接続先テーブルは、前記片方のノードの接続先リンク番号と前記もう一方のノードの接続先リンク番号のそれぞれに対応して前記ネットワークの各リンクから前記片方のノードの接続先リンク番号のリンクあるいは前記もう一方のノードの接続先リンク番号のリンクに接続するコストである接続コストを格納するものであり、
前記経路探索ステップは、経路のコストの計算において前記区間コストに加えて該経路の接続コストを累積することを特徴とするネットワーク経路探索方法。
【請求項11】
ノードとノード間を結ぶリンクからなるネットワークの経路を探索し最適経路を出力するネットワーク経路探索装置であって、ネットワークの各リンクを識別するリンク番号に対して、該各リンクの片方のノードを識別する片方のノード番号と、該片方のノードに接続された全ての他のリンクを識別するリンク番号である片方のノードの接続先リンク番号と、前記各リンクのもう一方のノードを識別するもう一方のノード番号と、該もう一方のノードに接続された全ての他のリンクを識別するリンク番号であるもう一方のノードの接続先リンク番号と、前記各リンクの片方のノードから前記各リンクのもう一方のノードへのコスト及び前記各リンクのもう一方のノードから前記各リンクの片方のノードへのコストであるそれぞれの区間コストを格納するリンク接続先テーブルを備えたネットワーク経路探索装置の機能をコンピュータに実現させるネットワーク経路探索プログラムにおいて、
コンピュータに
経路探索の始点となる始点ノードを識別する始点ノード番号と始点リンクを識別する始点リンク番号及び経路探索の終点となる終点ノードを識別する終点ノード番号を設定する経路条件設定機能、
前記始点リンク番号により前記リンク接続先テーブルを参照して該始点リンクの前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出し、該読み出されたもう一方のノードの接続先リンク番号によりさらに前記リンク接続先テーブルを参照して前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出すことを、該もう一方のノード番号が前記終点ノード番号と一致するまで、前記区間コストを累積しながら繰り返し、さらに該繰り返しを、前記もう一方のノードの接続先リンク番号の読み出しを前記リンク接続先テーブルに格納されたすべてのもう一方のノードの接続先リンク番号について行うことで前記始点ノードから前記終点ノードまでの全ての経路を展開し、該全ての経路のコストを計算する経路探索機能、
前記経路探索機能が展開した全ての経路から前記経路のコストに基づいて最適経路を選択して出力する最適経路出力機能、
を実現させるためのネットワーク経路探索プログラム。
【請求項12】
請求項11に記載のネットワーク経路探索プログラムにおいて、
前記リンク接続先テーブルは、前記片方のノードの接続先リンク番号と前記もう一方のノードの接続先リンク番号のそれぞれに対応して前記ネットワークの各リンクから前記片方のノードの接続先リンク番号のリンクあるいは前記もう一方のノードの接続先リンク番号のリンクに接続するコストである接続コストを格納するものであり、
前記経路探索機能は、経路のコストの計算において前記区間コストに加えて該経路の接続コストを累積することを特徴とするネットワーク経路探索プログラム。
【請求項13】
請求項11又は12に記載のネットワーク経路探索プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項14】
ノードとノード間を結ぶリンクからなるネットワークを表現するリンク接続先テーブルのデータ構造において、
前記リンク接続先テーブルは、
ネットワークの各リンクを識別するリンク番号に対して、
該各リンクの片方のノードを識別する片方のノード番号と、
該片方のノードに接続された全ての他のリンクを識別するリンク番号である片方のノードの接続先リンク番号と、
前記各リンクのもう一方のノードを識別するもう一方のノード番号と、
該もう一方のノードに接続された全ての他のリンクを識別するリンク番号であるもう一方のノードの接続先リンク番号と、
前記各リンクの片方のノードから前記各リンクのもう一方のノードへのコスト及び前記各リンクのもう一方のノードから前記各リンクの片方のノードへのコストであるそれぞれの区間コストと
を格納するものであり、
経路探索の始点となる始点ノードを識別する始点ノード番号と始点リンクを識別する始点リンク番号及び経路探索の終点となる終点ノードを識別する終点ノード番号が設定されると、
前記始点リンク番号により前記リンク接続先テーブルを参照して該始点リンクの前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出し、該読み出されたもう一方のノードの接続先リンク番号によりさらに前記リンク接続先テーブルを参照して前記もう一方のノード番号と前記もう一方のノードの接続先リンク番号のうちの1つを読み出すことを、該もう一方のノード番号が前記終点ノード番号と一致するまで、前記区間コストを累積しながら繰り返し、さらに該繰り返しを、前記もう一方のノードの接続先リンク番号の読み出しを前記リンク接続先テーブルに格納されたすべてのもう一方のノードの接続先リンク番号について行うことで前記始点ノードから前記終点ノードまでの全ての経路を展開し、該全ての経路のコストを計算する経路探索の実行を可能とするリンク接続先テーブルのデータ構造。
【請求項15】
請求項14に記載のリンク接続先テーブルのデータ構造において、
前記リンク接続先テーブルは、前記片方のノードの接続先リンク番号と前記もう一方のノードの接続先リンク番号のそれぞれに対応して前記ネットワークの各リンクから前記片方のノードの接続先リンク番号のリンクあるいは前記もう一方のノードの接続先リンク番号のリンクに接続するコストである接続コストを格納するものであり、
前記経路のコストの計算において前記区間コストに加えて該経路の接続コストの累積を可能とすることを特徴とするリンク接続先テーブルのデータ構造。
【請求項16】
ノードとノード間を結ぶリンクからなるネットワークを表現するデータ構造を有するリンク接続先テーブル作成装置において、
ネットワークの各リンクを識別するリンク番号に対して、該各リンクの片方のノードを識別する片方のノード番号と該各リンクのもう一方のノードを識別するもう一方のノード番号を格納したリンクテーブルと、
ネットワークの各ノードを識別するノード番号に対して、該各ノードに接続されるすべてのリンクを識別するリンク番号を格納した交差点テーブルと、
前記リンクテーブル及び前記交差点テーブルからデータを読み取るデータ構造読取手段と、
前記データ構造読取手段で読み取った前記リンクテーブルに格納された各リンク番号に対応して、前記片方のノード番号と前記もう一方のノード番号を格納すると共に、該片方のノードの接続先リンク番号として、交差点テーブルから読み取られた該片方のノード番号のノードに接続されるリンクのリンク番号から自リンクのリンク番号を除いたリンク番号を格納し、さらに、該もう一方のノードの接続先リンク番号として、交差点テーブルから読み取られた該もう一方のノード番号のノードに接続されるリンクのリンク番号から自リンクのリンク番号を除いたリンク番号を格納することにより、リンク番号、片方のノードのノード番号、片方のノードの接続先リンク番号、もう一方のノード番号、もう一方のノードの接続先リンク番号の項目からなるリンク接続先テーブル生成手段と、
を備えることを特徴とするリンク接続先テーブル作成装置。
【請求項17】
ノードとノード間を結ぶリンクからなるネットワークを表現するデータ構造を有するリンク接続先テーブル作成装置であって、ネットワークの各リンクを識別するリンク番号に対して、該各リンクの片方のノードを識別する片方のノード番号と該各リンクのもう一方のノードを識別するもう一方のノード番号を格納したリンクテーブルと、ネットワークの各ノードを識別するノード番号に対して、該各ノードに接続されるすべてのリンクを識別するリンク番号を格納した交差点テーブルを備えたリンク接続先テーブル作成装置によるンク接続先テーブル作成方法において、
前記リンクテーブル及び前記交差点テーブルからデータを読み取るデータ構造読取ステップと、
前記データ構造読取ステップで読み取った前記リンクテーブルに格納された各リンク番号に対応して、前記片方のノード番号と前記もう一方のノード番号を格納すると共に、該片方のノードの接続先リンク番号として、交差点テーブルから読み取られた該片方のノード番号のノードに接続されるリンクのリンク番号から自リンクのリンク番号を除いたリンク番号を格納し、さらに、該もう一方のノードの接続先リンク番号として、交差点テーブルから読み取られた該もう一方のノード番号のノードに接続されるリンクのリンク番号から自リンクのリンク番号を除いたリンク番号を格納することにより、リンク番号、片方のノードのノード番号、片方のノードの接続先リンク番号、もう一方のノード番号、もう一方のノードの接続先リンク番号の項目からなるリンク接続先テーブル生成ステップと、
を備えることを特徴とするリンク接続先テーブル作成方法。
【請求項18】
ノードとノード間を結ぶリンクからなるネットワークを表現するデータ構造を有するリンク接続先テーブル作成装置であって、ネットワークの各リンクを識別するリンク番号に対して、該各リンクの片方のノードを識別する片方のノード番号と該各リンクのもう一方のノードを識別するもう一方のノード番号を格納したリンクテーブルと、ネットワークの各ノードを識別するノード番号に対して、該各ノードに接続されるすべてのリンクを識別するリンク番号を格納した交差点テーブルを備えたリンク接続先テーブル作成装置の機能をコンピュータに実現させるリンク接続先テーブル作成プログラムにおいて、
コンピュータに、
前記リンクテーブル及び前記交差点テーブルからデータを読み取るデータ構造読取機能、
前記データ構造読取機能で読み取った前記リンクテーブルに格納された各リンク番号に対応して、前記片方のノード番号と前記もう一方のノード番号を格納すると共に、該片方のノードの接続先リンク番号として、交差点テーブルから読み取られた該片方のノード番号のノードに接続されるリンクのリンク番号から自リンクのリンク番号を除いたリンク番号を格納し、さらに、該もう一方のノードの接続先リンク番号として、交差点テーブルから読み取られた該もう一方のノード番号のノードに接続されるリンクのリンク番号から自リンクのリンク番号を除いたリンク番号を格納することにより、リンク番号、片方のノードのノード番号、片方のノードの接続先リンク番号、もう一方のノード番号、もう一方のノードの接続先リンク番号の項目からなるリンク接続先テーブルを生成する機能、
を実現させるためのリンク接続先テーブル作成プログラム。
【請求項19】
請求項18に記載のリンク接続先テーブル作成プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。


【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図8C】
image rotate


【公開番号】特開2010−71767(P2010−71767A)
【公開日】平成22年4月2日(2010.4.2)
【国際特許分類】
【出願番号】特願2008−238539(P2008−238539)
【出願日】平成20年9月17日(2008.9.17)
【出願人】(503002167)株式会社高速屋 (4)
【Fターム(参考)】