(57)【要約】【課題】駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークにおいて、キセルを含まない経路を求めることが可能な経路探索方法及び経路探索プログラムを提供する。【解決手段】駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークを作成し（Ｓ１０１）、検索条件を読み込み（Ｓ１０２）、検索に必要なデータを読み込む（Ｓ１０３）。次に、最短パス木の作成を行い（Ｓ１０４）、最短パス木をもとに複数の最短パスを探索する（Ｓ１０６）。その際、求められたそれぞれの最短パスの候補に対して、キセルが含まれているかどうか判定を行う（Ｓ１０５）。次に、複数の最短経路を求め（Ｓ１０７）、複数の最短経路に対して時間を割り当て（Ｓ１０８）、料金を計算する（Ｓ１０９）。そして、優先基準に基づき、上位複数の経路を選択して表示する（Ｓ１１０）。【選択図】　　　図１
2004061292.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶装置に保存されている、複数の地点をそれぞれノードで、隣り合う前記地点間の路線を複数のアークで表現し、前記ノードの一部がクリーク化され、前記複数のアークの一部に、並走する別路線の地点をスキップするアークであるスキップアークが設定されたネットワークを読み込むステップと、
入力された検索条件に基づき、前記ネットワーク上で出発地点から目的地点までの最短パスに関わる最短パス木の作成を行うステップと、
前記最短パス木をもとに前記出発地点から前記目的地点までの複数の最短パスの検索を行い、前記スキップアークを利用して、前記複数の最短パスそれぞれにキセルが含まれるか否か判定するステップ
とを含むことを特徴とする経路探索方法。
【請求項２】
折り返しが許されている部分経路を検索し、折り返しが許されている部分経路を折り返しを含む部分経路に置き換え、新たな経路とするステップを更に含むことを特徴とする請求項１に記載の経路探索方法。
【請求項３】
前記判定するステップは、
前記最短パス上に現れる前記スキップアークを第１アークとする段階と、
該第１アークの１つ前の路線アークを第２アークとする段階と、
該第２アークがスキップアークでない場合、前記第２アークの始点に相当する地点と前記第１アークが最初にスキップする地点が一致するときに、前記最短パスはキセルを含むと判定する段階
とを含むことを特徴とする請求項１又は２に記載の経路探索方法。
【請求項４】
前記判定するステップは、
前記最短パス上に現れる前記スキップアークを第１アークとする段階と、
該第１アークの１つ後の路線アークを第３アークとする段階と、
該第３アークがスキップアークの場合、前記第３アークが最初にスキップする地点を第１地点とする段階と
該第１地点と前記第１アークが最後にスキップする地点が一致するときに、前記最短パスはキセルを含むと判定する段階
とを含むことを特徴とする請求項１〜３のいずれか１項に記載の経路探索方法。
【請求項５】
前記判定するステップは、
前記最短パス上に現れる前記スキップアークを第１アークとする段階と、
該第１アークの１つ後の路線アークを第３アークとする段階と、
該第３アークがスキップアークでない場合、前記第３アークの終点に相当する地点を第１地点とする段階と、
該第１地点と前記第１アークが最後にスキップする地点が一致するときに、前記最短パスはキセルを含むと判定する段階
とを含むことを特徴とする請求項１〜４のいずれか１項に記載の経路探索方法。
【請求項６】
前記複数の最短パスに対して、路線変更アークの除去及び連続した同一路線名のアークの短縮を行い、複数の最短経路を求めるステップと、
優先基準に基づき、前記複数の最短経路の一部を選択して出力装置に出力するステップ
とを更に含むことを特徴とする請求項１〜５のいずれか１項に記載の経路探索方法。
【請求項７】
データ記憶装置に保存されている、複数の地点をそれぞれノードで、隣り合う前記地点間の路線を複数のアークで表現し、前記複数の地点の一部のノードがクリーク化され、前記複数のアークの一部に、並走する別路線の地点をスキップするアークであるスキップアークが設定されたネットワークを読み込む命令と、
入力された検索条件に基づき、前記ネットワーク上で出発地点から目的地点までの最短パスに関わる最短パス木の作成を行う命令と、
前記最短パス木をもとに前記出発地点から前記目的地点までの複数の最短パスの検索を行い、前記スキップアークを利用して、前記複数の最短パスそれぞれにキセルが含まれるか否か判定する命令
とを与えることを特徴とする経路探索プログラム。
【請求項８】
前記複数の最短パスに対して、路線変更アークの除去及び連続した同一路線名のアークの短縮を行い、複数の最短経路を求める命令と、
優先基準に基づき、前記複数の最短経路の一部を選択して出力装置に出力する命令
とを更に与えることを特徴とする請求項７に記載の経路探索プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータを用いて出発地と目的地間の経路を１つ又は複数検索できる経路探索方法及び経路探索プログラムに関する。
【０００２】
【従来の技術】
従来、コンピュータを用いて出発地、目的地、出発希望時刻等を入力すると、出発地から目的地に至る１つ又は複数の経路を表示（案内）するソフトウェアが存在する。例えば、列車の乗り換え案内の場合、表示される経路は、出発駅、乗換駅、目的駅、利用路線又は利用列車等からなり、更に、出発駅での発時刻、乗換駅での発／着時刻、目的駅での着時刻や、所要時間、料金等も表示されることが多い。このような検索サービスは、パッケージソフトあるいはサービス提供会社のＷｅｂページ上で行われている。
【０００３】
この経路探索は、通常、各ノード間をアークで接続し、各アークに重み（コスト）が割り振られたグラフであるネットワークをもとに考える。ネットワークにおいて、出発ノードｓから目的ノードｔへのパスを考えるとき、ｓからｔへの第ｉ番目に短いパスをｓからｔへの第ｉ最短パスと言う。第１最短パスがいわゆる最短パスである。最短パスは、良く知られているようにダイクストラ法によって高速に求められる。第２最短パス以降の最短パスを求めるアルゴリズムについても古くから研究され、種々の効率良いアルゴリズムが提案されている。
【０００４】
第１〜Ｋ最短パスを求めるアルゴリズムとしては、例えば、マーチンのアルゴリズム（「複数のループレスパスを短い順に列挙するためのアルゴリズム（Ａｎ　ａｌｇｏｒｉｔｈｍ　ｆｏｒ　ｒａｎｋｉｎｇ　ｌｏｏｐｌｅｓｓ　ｐａｔｈｓ）」，　イー・キュー・ブイ・マーチン他（Ｅ．Ｑ．Ｖ．Ｍａｒｔｉｎｓ　ｅｔ　ａｌ．，）、コインブラ大学研究レポート（Ｒｅｓｅａｒｃｈ　Ｒｅｐｏｒｔ，　Ｕｎｉｖ．　ｄｅ　Ｃｏｉｍｂｒａ）、１９９９など）が知られている。第１〜Ｋ最短パスを求める場合、ループ（閉路）を許す場合と許さない場合とがある。ループを許すというのは、同じノードを２度以上通るような冗長なパスも第ｉ最短パスとして採用しようというものである。ループを許した方が問題としては扱いやすいが、一般にはループを許さない場合の方が実用的である。マーチンのアルゴリズムは、ループを許さない場合のアルゴリズムの１つである。
【０００５】
各アークの重みが非負の連結なネットワークにおいて、各ノードから目的ノードｔへの最短パスは、同一のノードを２度通ることのないパスとなる。そして、全てのノードからｔへの最短パスはｔを根とする根付き木で表現できる。この根付き木を最短パス木という（「情報の構造（下）」、浅野孝夫著、日本評論社、ｐ．２４１参照）。　又、条件「根以外の各節点ｖに対して、親の要素の方が子の要素よりも小さいか等しい」を満すように、木の各節点ｖに順序集合Ｓの要素が割り当てられた根付き木をヒープという（「情報の構造（上）」、浅野孝夫著、日本評論社、ｐ．４５参照）。
【０００６】
マーチンのアルゴリズムにおいては、出発ノードｓから目的ノードｔへのパスがヒープの節点に相当し、パスのコスト（パス上のアークの重みの和）が順序集合Ｓの要素に相当する。マーチンのアルゴリズムの概要を説明すると、まずダイクストラ法で目的ノードｔを根に持つ最短パス木を作り、最短パスをヒープに蓄える。次に、ｋ＝０として次の処理（ｉ）、（ｉｉ）　を繰り返す。
【０００７】
（ｉ）　ヒープからコスト最小のパスｐを抜き出す。もしｐがループを含まないならば、ｐを第ｋ＋１最短パスとして登録し、ｋに１を加算する。ｋ＝Ｋなら終了。
【０００８】
（ｉｉ）ｐがループを含む／含まないに関わらず、ｐに対する派生パス（１歩横にそれて、そこから最短パス木上のアークを一気に進むパス）をｐ上の各ノードにつき高々１つずつ求め、ヒープに蓄える。（ｉ）　に戻る。
【０００９】
派生パスを作る際のアーク、つまり元のパスｐから１歩横にそれる際のアークの選び方がポイントである。
【００１０】
【発明が解決しようとする課題】
ところで、探索された経路に、同一路線あるいは同一会社の並走する別路線を利用することによって実質的な往復部分が生じる場合、それを「キセル」という。従来の第１〜Ｋ最短パスを求めるアルゴリズムは一般のネットワークに対して考案されたものであり、列車等におけるキセルは考慮されていない。同一路線で往復部分が生じるというケースはループに相当するため、マーチンのアルゴリズム等でも、同一路線で往復部分が生じないような経路を求めることは可能である。しかし、同一会社の停車駅の異なる並走する別路線を利用することによって実質的な往復部分が生じるようなケースは除外できない。例えば、図６において、乗車駅がＳ駅、下車駅がＶ駅の場合、「Ｓ駅；Ｆ路線；Ｗ駅；Ｇ路線；Ｖ駅」のようなパスが求まってしまうことがある。
【００１１】
よって、上記の問題を鑑み、本発明は、駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークにおいて、キセルを含まない経路を求めることが可能な経路探索方法及び経路探索プログラムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の特徴は、（イ）データ記憶装置に保存されている、複数の地点をそれぞれノードで、隣り合う地点間の路線を複数のアークで表現し、ノードの一部がクリーク化され、複数のアークの一部に、並走する別路線の地点をスキップするアークであるスキップアークが設定されたネットワークを読み込むステップと、（ロ）入力された検索条件に基づき、ネットワーク上で出発地点から目的地点までの最短パスに関わる最短パス木の作成を行うステップと、（ハ）最短パス木をもとに出発地点から目的地点までの複数の最短パスの検索を行い、スキップアークを利用して、複数の最短パスそれぞれにキセルが含まれるか否か判定するステップとを含む経路探索方法であることを要旨とする。ここで、「地点」とは、列車の駅、空港、バス停、あるいは道路などの特定の地点を指す。「クリーク化」とは、一つの地点を、その地点に接続する路線数に相当する複数のノードとして表し、それらのノード間に路線変更のためのアークを設けることである。それらのノード間に路線変更のためのアークを設けることである。この路線変更のためのアークを、「路線変更アーク」という。これに対して、路線を表現する通常のアークを「路線アーク」という。
【００１３】
第１の特徴に係る経路探索方法によると、駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークにおいて、キセルを含まない経路を求めることができる。
【００１４】
又、第１の特徴に係る経路探索方法は、（ニ）折り返しが許されている部分経路を検索し、折り返しが許されている部分経路を折り返しを含む部分経路に置き換え、新たな経路とするステップを更に含んでも良い。この経路探索方法によると、駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークにおいて、キセルを含まない経路を求めることができ、折り返しが許されている経路については、後処理としての特殊な置き換え操作によって対応することができる。
【００１５】
又、第１の特徴に係る経路探索方法の判定するステップは、最短パス上に現れるスキップアークを第１アークとする段階と、第１アークの１つ前の路線アークを第２アークとする段階と、第２アークがスキップアークでない場合、第２アークの始点に相当する地点と第１アークが最初にスキップする地点が一致するときに、最短パスはキセルを含むと判定する段階を含んでも良い。又、この判定するステップは、最短パス上に現れるスキップアークを第１アークとする段階と、第１アークの１つ後の路線アークを第３アークとする段階と、第３アークがスキップアークの場合、第３アークが最初にスキップする地点を第１地点とする段階と、第１地点と第１アークが最後にスキップする地点が一致するときに、最短パスはキセルを含むと判定する段階とを含んでも良い。又、この判定するステップは、最短パス上に現れるスキップアークを第１アークとする段階と、第１アークの１つ後の路線アークを第３アークとする段階と、第３アークがスキップアークでない場合、第３アークの終点に相当する地点を第１地点とする段階と、第１地点と第１アークが最後にスキップする地点が一致するときに、最短パスはキセルを含むと判定する段階とを含んでも良い。
【００１６】
又、第１の特徴に係る経路探索方法は、（ホ）複数の最短パスに対して、路線変更アークの除去及び連続した同一路線名のアークの短縮を行い、複数の最短経路を求めるステップと、（へ）優先基準に基づき、複数の最短経路の一部を選択して出力装置に出力するステップとを更に含んでいても良い。この経路探索方法によると、出発地点から目的地点への複数の最短経路を効率的に表示することができる。
【００１７】
本発明の第２の特徴は、（イ）データ記憶装置に保存されている、複数の地点をそれぞれノードで、隣り合う地点間の路線を複数のアークで表現し、複数の地点の一部のノードがクリーク化され、複数のアークの一部に、並走する別路線の地点をスキップするアークであるスキップアークが設定されたネットワークを読み込む命令と、（ロ）入力された検索条件に基づき、ネットワーク上で出発地点から目的地点までの最短パスに関わる最短パス木の作成を行う命令と、（ハ）最短パス木をもとに出発地点から目的地点までの複数の最短パスの検索を行い、スキップアークを利用して、複数の最短パスそれぞれにキセルが含まれるか否か判定する命令とを与える経路探索プログラムであることを要旨とする。第２の特徴に係る経路探索プログラムは、（ニ）複数の最短パスに対して、路線変更アークの除去及び連続した同一路線名のアークの短縮を行い、複数の最短経路を求める命令と、（ホ）優先基準に基づき、複数の最短経路の一部を選択して出力装置に出力する命令とを更に与えても良い。
【００１８】
上記の命令を実現させる経路探索プログラムは、経路探索装置の処理制御装置（ＣＰＵ）に接続されているプログラム記憶装置に保存される。本発明の第２の特徴に係る経路探索プログラムを読み出すことにより、経路探索装置に上記の命令を実現させることが可能となる。
【００１９】
【発明の実施の形態】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。但し、図面は模式的なものであることに留意すべきである。
【００２０】
本発明の実施の形態に係る経路探索方法として、まず、複数の「ノード」とノード間を接続する「アーク」からなるネットワークについて説明する。経路探索で用いるネットワークは、基本的には、駅を「ノード」とみなし、線路上で隣り合う駅間に「アーク」を設けて作成する。この例として、Ｘ駅とＹ駅のネットワークを図４に示す。ここでは、Ｘ駅、Ｙ駅がノードとなり、記号Ａ、Ｂ、Ｃ、Ｄ、Ｅを付した実線で示す両端矢印がアークを表す（上り／下りの２本のアークを１本にまとめて表している）。アークに付された記号Ａ、Ｂ、Ｃ、Ｄ、Ｅは路線名を表す。この他に、路線の各アークには、上り／下りのフラグ、平均所要時間等が付されている。又、図４では、Ｘ駅とＹ駅の間を破線のアークで示し、徒歩１３分の位置にあるとしている。
【００２１】
路線間の乗り換えには、同じ駅で乗り換える場合と、異なる駅間を移動して乗り換える場合とがある。同じ駅での乗り換えについては、駅をクリーク化する。「クリーク」とは、与えられたグラフに含まれる複数の点（ノード）からなる完全部分グラフのことである。「クリーク化」とは、一つの駅を、その駅に接続する路線数に相当するノードで表すことである。クリーク化された複数のノード間にはアークを張って乗り換え時間を付す。図５は、Ｘ駅、Ｙ駅をクリーク化した例である。Ｘ駅は、Ａ路線のＸ駅（Ａ）、Ｂ路線のＸ駅（Ｂ）、Ｃ路線のＸ駅（Ｃ）からなる３点完全グラフ（三角形）にクリーク化されており、ノード間の乗り換え時間はすべて３分となっている。又、Ｙ駅は、Ｄ路線のＹ駅（Ｄ）、Ｅ路線のＹ駅（Ｅ）からなる２点完全グラフにクリーク化されており、ノード間の乗り換え時間は２分となっている。クリーク内のノードを「クリーク駅」と呼び、クリーク駅間のアークを「路線変更アーク」と呼ぶ。異なる駅間での徒歩による乗り換えについては、新たに「徒歩アーク」を設ける。路線変更アークも徒歩アークも徒歩による移動であるが、便宜上、区別して用いる。図５において、太線は路線変更アークを、破線は徒歩アークを表す。徒歩アークは、Ｘ駅とＹ駅のクリーク駅のすべてのペアに対して張られる。徒歩アーク又は路線変更アークには、それを識別するためのフラグや、移動又は乗り換え時間等が付されている。
【００２２】
又、本来の駅とクリーク駅を区別するために、本来の駅を本来駅と呼ぶことにする。例えば、Ｘ駅やＹ駅は本来駅であり、Ｘ駅（Ａ）、Ｘ駅（Ｂ）、Ｘ駅（Ｃ）はクリーク駅である。Ｘ駅は複数のクリーク駅としてネットワークに残る。
【００２３】
（第１の実施の形態）
第１の実施の形態では、駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークにおいて、キセルを含まない経路を求めることが可能な経路探索方法について説明する。
【００２４】
本発明の第１の実施の形態に係る経路探索装置は、図３に示すように、処理制御装置（ＣＰＵ）５に入力装置１１、出力装置１２、データ記憶装置１３、一時記憶装置１４、プログラム記憶装置１５、最短パス木記憶装置２０、複数パス記憶装置２１、複数経路記憶装置２２が接続されている。ＣＰＵ５は、ネットワークを作成するネットワーク作成モジュール５ａ、検索条件及び検索に必要なデータを読み込むデータ読み込みモジュール５ｂ、最短パス木の作成を行う最短パス木作成モジュール５ｃ、最短パス木をもとに複数の最短パスを探索する複数パス探索モジュール５ｄ、複数の最短パスそれぞれに対してキセルが含まれているか否か判定するキセルチェックモジュール５ｅ、複数の最短パスに対して路線変更アークの除去及び連続した同一路線名のアークの短縮を行い、複数の最短経路を求めるパス短縮モジュール５ｆ、複数の最短経路に対して時間を割り当てる時間割当モジュール５ｇ、複数の最短経路に対して料金を計算する料金計算モジュール５ｈ、優先基準に基づき、上位複数の経路を選択して表示する表示モジュール５ｉを備える。以下の経路探索の説明においては、Ｋ通りの最短経路を求めることを前提とする。
【００２５】
ネットワーク作成モジュール５ａは、路線図や駅間の所要時間等のデータをもとに上述したクリーク化したネットワークを作成し、ネットワークをデータ記憶装置１３に保存する。このとき、作成するネットワークには、スキップアークが設定されている。「スキップアーク」とは、並走する別路線の駅を通過するような路線のアークを指す。スキップアークａに対して、ａが通過する本来駅をａの「スキップ駅」と呼ぶ。例えば、図６において、Ｔ駅のＦ路線のノードからＷ駅のＦ路線のノードへのアークはスキップアークであり、Ｕ駅とＶ駅がそのスキップ駅である。キセルが含まれているか否かの判定で使用するスキップ駅は、スキップアークに対する最初と最後のスキップ駅のみである。図６はスキップ駅がちょうど２つの例なので、Ｕ駅が最初のスキップ駅であり、Ｖ駅が最後のスキップ駅である。スキップ駅が１つの場合は、それ自体が最初のスキップ駅であり且つ最後のスキップ駅でもあるとみなす。ネットワーク上の各スキップアークには、その最初と最後のスキップ駅の本来駅の番号を持たせておく。
【００２６】
データ読み込みモジュール５ｂは、入力装置１１から入力された検索条件を読み込み、ネットワーク、時刻表データ、料金データ等の必要なデータをデータ記憶装置１３から読み込む。このとき、検索条件である乗車駅名と下車駅名に対して、それらの本来駅番号をそれぞれ求める。乗車駅あるいは下車駅がクリーク化されている場合は、クリーク駅の中の代表クリーク駅の番号を求める。クリーク内の他のクリーク駅の番号は、代表クリーク駅の番号に続く連番であるとする。乗車駅あるいは下車駅がクリーク化されていない場合は、本来駅を代表クリーク駅とみなす。
最短パス木作成モジュール５ｃは、ダイクストラ（Ｄｉｊｋｓｔｒａ）法等を用いて、最短パス木の作成を行う。そして、作成した最短パス木を最短パス木記憶装置２０に保存する。複数パス探索モジュール５ｄは、マーチンのアルゴリズム等を用いて、乗車駅の代表クリーク駅から下車駅の代表クリーク駅に至る第１〜Ｋ最短パスを求める。そして、探索した複数最短パスを複数パス記憶装置２１に保存する。
【００２７】
キセルチェックモジュール５ｅは、第１〜Ｋ最短パスそれぞれに対して、キセルが含まれているか否か判定する。詳細な判定方法については後述する。
【００２８】
パス短縮モジュール５ｆは、上記のようにして得られた第１〜Ｋ最短パスに対して、路線変更アークをすべて除去し、更に連続する同一路線名のアークをすべて短縮する。例えば、Ｊ駅からＮ駅までを検索した際、第ｉ最短パスとして、「Ｊ駅；Ｈ路線；Ｋ駅；Ｈ路線；Ｌ駅（乗り換え）；Ｉ路線；Ｍ駅；Ｉ路線；Ｎ駅」が検索されたとする。路線変更アークと連続する同一路線名のアークを短縮して、「Ｊ駅；Ｈ路線；Ｌ駅；Ｉ路線；Ｎ駅」が求められる。このように得られたパスを「経路」と呼ぶ。又、以下の説明において、第ｉ最短パスに対応するものを第ｉ経路と呼ぶ。求められた最短経路は、複数経路記憶装置２２に保存される。
時間割当モジュール５ｇは、求められた第１〜Ｋ経路に対して、時刻表データ等により、乗車駅、下車駅、乗換駅等における時間を割り当てる。料金計算モジュール５ｈは、求められた第１〜Ｋ経路に対して、料金データ等により、料金を計算する。表示モジュール５ｉは、時刻と料金が割り当てられた経路の中から、所要時間等の優先基準に基づき、上位複数の経路を選択して、出力装置１２あるいはインターネット上のＷｅｂページ等に表示する。
【００２９】
入力装置１１は、キーボード、マウス等の機器を指す。入力装置１１から入力操作が行われると対応するキー情報がＣＰＵ５に伝達される。出力装置１２は、モニタなどの画面を指し、液晶表示装置（ＬＣＤ）、発光ダイオード（ＬＥＤ）パネル、エレクトロルミネッセンス（ＥＬ）パネル等が使用可能である。データ記憶装置１３は、ネットワークや時刻表データ、料金データ等を保存する。一時記憶装置１４は、ＣＰＵ５における演算において、計算途中や解析途中のデータを一時的に保存する。プログラム記憶装置１５は、キセルのチェックや最短パスの作成、検索などをＣＰＵ５に実行させるためのプログラムを保存する。最短パス木記憶装置２０は、最短パス木作成モジュール５ｃが作成した最短パス木を保存する。複数パス記憶装置２１は、複数パス探索モジュール５ｄが探索した複数パスを保存する。複数経路記憶装置２２は、パス短縮モジュール５ｆが求めた複数経路を保存する。
【００３０】
次に、本発明の第１の実施の形態に係る経路探索方法について、図１及び図３を用いて説明する。
（イ）まず、経路探索を行う前提として、ステップＳ１０１において、複数の駅をそれぞれノードで、複数の駅間の接続を複数のアークで表現し、複数の駅の一部のノードがクリーク化されたネットワークの作成を行う。このネットワークのアークの一部にはスキップアークが設定されている。ネットワーク上の各スキップアークは、その最初と最後のスキップ駅の本来駅の番号を有している。作成されたネットワークはデータ記憶装置１３に保存される。ネットワークは、別の装置で予め作成され、データ記憶保存装置１３に保存されていても良い。次に、ステップＳ１０２において、入力装置１１等を用いて入力された乗車駅、下車駅、出発・到着時刻等の検索条件を読み込む。ステップＳ１０３において、ネットワークや時刻表データ、料金データ等の必要なデータをデータ記憶装置１３から読み込む。
【００３１】
（ロ）次に、ステップＳ１０４において、ダイクストラ法等を用いて、入力された検索条件に基づき、ネットワーク上で乗車駅から下車駅までの経路の最短パス木の作成を行う。作成された最短パス木は、最短パス木記憶装置２０に保存される。
【００３２】
（ハ）次に、ステップＳ１０５において、マーチンのアルゴリズム等を用いて、最短パス木記憶装置２０から読み出された最短パス木をもとに乗車駅の代表クリーク駅から下車駅の代表クリーク駅に至る第１〜Ｋ最短パスの検索を行う。そして、スキップアークを利用して、求められた第１〜Ｋ最短パスそれぞれにキセルが含まれるか否か判定する。この判定方法の詳細については後述する。このキセルチェックは、最短パスが求められるたびに行う。即ち、第ｉ最短パスの候補が求まったら、そのパスに対してキセルチェックを行い、もしキセルを含まなければそれを第ｉ最短パスとして採用する。そして、ステップＳ１０６において、結果的に第１〜Ｋ最短パスが求まる。得られた第１〜Ｋ最短パスは、複数パス記憶装置２１に保存される。
【００３３】
（ニ）次に、ステップＳ１０７において、第１〜Ｋ最短パスを短縮して第１〜Ｋ経路を得る。具体的には、第１〜Ｋ最短パスそれぞれに対して、路線変更アークをすべて除去し、更に連続する同一路線名のアークをすべて短縮する。求められた複数経路は、複数経路記憶装置２２に保存される。
【００３４】
（ホ）次に、ステップＳ１０８において、第１〜Ｋ経路それぞれに対して時刻表を照らしあわせながら時間割り当てを行い、ステップＳ１０９において、料金を計算する。時刻と料金が割り当てられた第１〜Ｋ経路の中から、所要時間等の優先基準に基づき、ステップＳ１１０において、上位複数の経路を選択して出力装置１２に出力（表示）する。
【００３５】
図１のステップＳ１０５に示すキセルチェックの詳細について、図２を参照して説明する。
（イ）まず、ステップＳ２０１において、パス上にスキップアークが存在するか判断する。存在しない場合は、ステップＳ２１３に進み、キセルを含まないと判定する。スキップアークが存在する場合は、ステップＳ２０２に進み、パス上に最初に現れるスキップアークを第１アークとする。
【００３６】
（ロ）次に、ステップＳ２０３において、第１アークの前にアークがあるか判断する。ない場合はステップＳ２０７へ進む。ある場合は、ステップＳ２０４に進み、第１アークの１つ前のアークを第２アークとする。
【００３７】
（ハ）次に、ステップＳ２０５において、第２アークがスキップアークであるか判断する。スキップアークである場合、ステップＳ２０７に進む。スキップアークでない場合、ステップＳ２０６に進み、第２アークの始点の本来駅と第１アークの最初のスキップ駅が一致するか判断する。一致する場合は、ステップＳ２１４に進み、キセルを含んでいると判定する。このときの状態を図７（ａ）に示す。第２アークの始点の本来駅はＢ駅であり、スキップアークである第１アークの最初のスキップ駅はＢ駅である。これらは一致するので、キセルを含んでいることが分かる。
【００３８】
（ニ）ステップＳ２０６において、一致しない場合は、ステップＳ２０７に進み、第１アークの後にアークがあるか判断する。ない場合は、ステップＳ２１３に進み、キセルを含まないと判定する。ある場合は、ステップＳ２０８に進み、第１アークの１つ後のアークを第３アークとする。
【００３９】
（ホ）次に、ステップＳ２０９において、第３アークがスキップアークの場合は、第３アークの最初のスキップ駅を、異なる場合は、第３アークの終点の本来駅を第１駅とする。そして、ステップＳ２１０において、第１駅と第１アークの最後のスキップ駅が一致するか判断する。一致する場合は、ステップＳ２１４に進み、キセルを含んでいると判定する。第３アークがスキップアークでキセルを含んでいると判定されるときの状態を図７（ｂ）に、第３アークがスキップアークでなく、キセルを含んでいると判定されるときの状態を図７（ｃ）に示す。図７（ｂ）では、スキップアークである第３アークの最初のスキップ駅はＣ駅（第１駅）であり、スキップアークである第１アークの最後のスキップ駅はＣ駅である。これらは一致するので、キセルを含んでいることが分かる。図７（ｃ）では、第３アークの終点の本来駅はＣ駅（第１駅）であり、スキップアークである第１アークの最後のスキップ駅はＣ駅である。これらは一致するので、キセルを含んでいることが分かる。
【００４０】
（へ）ステップＳ２１０において、一致しない場合は、ステップＳ２１１に進み、パス上で第１アークの次のアーク以降にスキップアークが存在するか判断する。存在する場合は、ステップＳ２１２に進み、そのスキップアークを新たな第１アークとし、ステップＳ２０３〜ステップＳ２１１の処理を繰り返す。存在しない場合は、ステップＳ２１３に進み、キセルを含まないと判定する。
【００４１】
第１の実施の経路探索方法によると、駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークにおいて、キセルを含まない経路を求めることができる。
【００４２】
（第２の実施の形態）
第２の実施の形態では、駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークにおいて、キセルを含まない経路を求めることができ、折り返しが許されている経路については、置き換え操作によって対応することができる経路探索方法について説明する。
【００４３】
本発明の第２の実施の形態に係る経路探索装置は、図８に示すように、処理制御装置（ＣＰＵ）５に入力装置１１、出力装置１２、データ記憶装置１３、一時記憶装置１４、プログラム記憶装置１５、最短パス木記憶装置２０、複数パス記憶装置２１、複数経路記憶装置２２が接続されている。ＣＰＵ５は、ネットワークを作成するネットワーク作成モジュール５ａ、検索条件及び検索に必要なデータを読み込むデータ読み込みモジュール５ｂ、最短パス木の作成を行う最短パス木作成モジュール５ｃ、最短パス木をもとに複数の最短パスを探索する複数パス探索モジュール５ｄ、複数の最短パスそれぞれに対してキセルが含まれているか判定するキセルチェックモジュール５ｅ、複数の最短パスに対して路線変更アークの除去及び連続した同一路線名のアークの短縮を行い、複数の最短経路を求めるパス短縮モジュール５ｆ、複数の最短経路に対して時間を割り当てる時間割当モジュール５ｇ、複数の最短経路に対して料金を計算する料金計算モジュール５ｈ、優先基準に基づき、上位複数の経路を選択して表示する表示モジュール５ｉ、折り返しが許されている経路については経路を置き換える経路置き換えモジュール５ｊを備える。以下の説明においては、Ｋ通りの最短経路を求めることとする。
【００４４】
全国の路線には、一部折り返しが許されている路線がある。例えば、図１０に示すように、Ｊ路線の急行や特急はＥ駅で停車しないため、Ｋ路線との間で乗り換えを行う場合は、Ｆ駅で乗り換えることになる。その場合、Ｅ駅とＦ駅間で折り返しが生じるが、この折り返しは認められている。
【００４５】
経路置き換えモジュール５ｊは、このような折り返しが許されている経路について、置き換え処理を行う。例えば、ある部分経路「路線１；Ｅ駅；路線２」について、路線１から路線２に乗り換えるとき、Ｆ駅で折り返しを許されているとする。このとき、パス短縮モジュール５ｆで得られた第１〜Ｋ経路のそれぞれに対して、折り返しが許されている部分経路「路線１；Ｅ駅；路線２」を検出し、その部分経路を、折り返しを含む部分経路「路線１；Ｆ駅；路線２」に置き換え、第Ｋ＋１経路として、元の経路群に追加する。置き換える経路が複数ある場合は、それぞれ第Ｋ＋２経路、第Ｋ＋３経路、…、として追加される。
【００４６】
例えば、図１０の例の場合は、以下の置き換えにより新たな経路が追加される。
（１）経路上に区間「Ｊ路線（下り）；Ｅ駅；Ｋ路線（下り）」があれば、それを区間「Ｊ路線（下り）；Ｆ駅；Ｋ路線（下り）」に置き換えた経路も追加する。
（２）経路上に区間「Ｋ路線（上り）；Ｅ駅；Ｊ路線（上り）」があれば、それを区間「Ｋ路線（上り）；Ｆ駅；Ｊ路線（上り）」に置き換えた経路に追加する。
【００４７】
ネットワーク作成モジュール５ａ、データ読み込みモジュール５ｂ、最短パス木作成モジュール５ｃ、複数パス探索モジュール５ｄ、キセルチェックモジュール５ｅ、パス短縮モジュール５ｆ、時間割当モジュール５ｇ、料金計算モジュール５ｈ、表示モジュール５ｉ、入力装置１１、出力装置１２、データ記憶装置１３、一時記憶装置１４、プログラム記憶装置１５、最短パス木記憶装置２０、複数パス記憶装置２１、複数経路記憶装置２２は第１の実施の形態と同様であるので、ここでは説明を省略する。
【００４８】
次に、本発明の第２の実施の形態に係る経路探索方法について、図９を用いて説明する。
（イ）まず、ステップＳ３０１〜Ｓ３０７は、図１のステップＳ１０１〜Ｓ１０７と同様であるのでここでは説明を省略する。
（ロ）次に、ステップＳ３０８において、折り返しが許されている最短経路を検索する。そして、折り返しが許されている経路を折り返しを含む経路に置き換える。折り返しを含む経路は、新たな経路として元の経路群に追加され、複数経路記憶装置２２に保存される。
（ハ）次に、ステップＳ３０９〜Ｓ３１１は、図１のステップＳ１０８〜Ｓ１１０と同様であるのでここでは説明を省略する。
【００４９】
第２の実施の経路探索方法によると、駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークにおいて、キセルを含まない経路を求めることができ、折り返しが許されている経路については、後処理としての特殊な置き換え操作によって対応することができる。
【００５０】
（その他の実施の形態）
本発明は上記の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００５１】
例えば、本発明の第１〜第２の実施の形態において、電車路線の駅を例として説明したが、これに限らず、空港やバス停を出発地、目的地として経路探索を行っても構わない。
【００５２】
又、本発明の第１〜第２の実施の形態において、入力装置１１等から入力された乗車駅、下車駅、出発・到着時刻等の検索条件を読み込むと説明したが、入力装置１１からの入力に限らず、本発明に係る経路探索装置をインターネットに接続し、インターネット利用者の端末装置から検索条件を入力しても構わない。同様に、求められた第１〜Ｋ経路の中から上位複数の経路を選択して経路探索装置の出力装置１２に出力すると説明したが、本発明に係る経路探索装置をインターネットに接続し、検索結果の経路をＷｅｂページ等に表示しても構わない。
【００５３】
又、図９において、経路の置き換え（Ｓ３０８）は、最短パスの短縮（Ｓ３０７）の後であると説明したが、複数最短パスの検索（Ｓ３０６）の後でも構わない。
【００５４】
又、本発明の第１〜第２の実施の形態に係る経路探索装置は、データ記憶装置１３、一時記憶装置１４、プログラム記憶装置１５、最短パス木記憶装置２０、複数パス記憶装置２１、複数経路記憶装置２２を分けて備えると記述したが、これらの記憶装置を一つの記憶装置で代用しても構わない。同様に、ＣＰＵ５内の各モジュールは、一つのＣＰＵ５内にあると記述したが、複数のＣＰＵ５に分けて備えられていても良い。その際、複数のＣＰＵ５間でデータのやりとりが行えるようにバスなどで装置間を接続する。
【００５５】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【００５６】
【発明の効果】
本発明によれば、駅をノードに持ち、駅間の路線及び徒歩乗り換えをアークで表現するネットワークにおいて、キセルを含まない経路を求めることが可能な経路探索方法及び経路探索プログラムを提供することができる。
【図面の簡単な説明】
【図１】第１の実施の形態に係る経路検索方法のフローチャートである。
【図２】第１〜第２の実施に形態に係るキセルチェック方法のフローチャートである。
【図３】第１の実施の形態に係る経路探索装置のブロック図である。
【図４】第１〜第２の実施の形態に係る経路探索方法のネットワークの一例である。
【図５】第１〜第２の実施の形態に係る経路探索方法のクリーク化されたネットワークの一例である。
【図６】第１〜第２の実施の形態に係るキセルの一例である。
【図７】図２のフローチャートにおけるキセルの状態図である。
【図８】第２の実施の形態に係る経路探索装置のブロック図である。
【図９】第２の実施の形態に係る経路探索方法のフローチャートである。
【図１０】第２の実施の形態に係る折り返しが許されている経路の一例である。
【符号の説明】
５　ＣＰＵ（処理制御装置）
５ａ　ネットワーク作成モジュール
５ｂ　データ読み込みモジュール
５ｃ　最短パス木作成モジュール
５ｄ　複数パス探索モジュール
５ｅ　キセルチェックモジュール
５ｆ　パス短縮モジュール
５ｇ　時間割当モジュール
５ｈ　料金計算モジュール
５ｉ　表示モジュール
５ｊ　経路置き換えモジュール
１１　入力装置
１２　出力装置
１３　データ記憶装置
１４　一時記憶装置
１５　プログラム記憶装置
２０　最短パス木記憶装置
２１　複数パス記憶装置
２２　複数経路記憶装置
【図１】
2004061292.tif 000003
【図２】
2004061292.tif 000004
【図３】
2004061292.tif 000005
【図４】
2004061292.tif 000006
【図５】
2004061292.tif 000007
【図６】
2004061292.tif 000008
【図７】
2004061292.tif 000009
【図８】
2004061292.tif 000010
【図９】
2004061292.tif 000011
【図１０】
2004061292.tif 000012