(57)【特許請求の範囲】
【請求項１】
開始ノードに相当する探索開始駅から終了ノードに相当する探索終了駅までの間を鉄道で移動する推奨経路をダイクストラ法により探索する経路探索システムであって、
ダイクストラ法において前記探索開始駅から前記探索終了駅までの間に位置するノードに相当する中間駅及び前記探索終了駅に対して保存する前記探索開始駅からのコスト値の合計値を、前記中間駅及び前記探索終了駅の駅毎に複数保存し、
前記中間駅及び前記探索終了駅に対して複数保存される前記コスト値の合計値に、該コスト値の合計値がどの列車に乗車した経路に対する前記コスト値の合計値であるかを特定する配列データを夫々付加することを特徴とする経路探索システム。
【請求項２】
前記配列データは、前記探索開始駅からどの駅でどの出発時刻の列車に乗車した経路に対する前記コスト値の合計値であるかを特定するデータであることを特徴とする請求項１に記載の経路探索システム。
【請求項３】
前記中間駅及び前記探索終了駅に対して保存される前記コスト値の合計値は、駅毎に値が小さい順に所定数まで保存されることを特徴とする請求項１又は請求項２に記載の経路探索システム。
【請求項４】
同一の駅に対して保存対象となる前記コスト値の合計値が同値となる経路が複数ある場合には、前記探索開始駅の発車時刻が最も遅い経路のコスト値の合計値を保存し、その他の経路のコスト値の合計値は保存しないことを特徴とする請求項１乃至請求項３のいずれかに記載の経路探索システム。
【請求項５】
前記中間駅及び前記探索終了駅に対して保存される前記コスト値の合計値は、該駅への到着時刻により示され、
前記到着時刻が早い程、前記コスト値の合計値が小さいことを示すことを特徴とする請求項１乃至請求項４のいずれかに記載の経路探索システム。
【請求項６】
開始ノードに相当する探索開始駅から終了ノードに相当する探索終了駅までの間を鉄道で移動する推奨経路をダイクストラ法により探索する経路探索方法であって、
コスト値保存手段が、ダイクストラ法において前記探索開始駅から前記探索終了駅までの間に位置するノードに相当する中間駅及び前記探索終了駅に対して保存する前記探索開始駅からのコスト値の合計値を、前記中間駅及び前記探索終了駅の駅毎に複数保存するステップと、
データ付加手段が、前記中間駅及び前記探索終了駅に対して複数保存される前記コスト値の合計値に、該コスト値の合計値がどの列車に乗車した経路に対する前記コスト値の合計値であるかを特定する配列データを夫々付加するステップと、を有することを特徴とする経路探索方法。
【請求項７】
開始ノードに相当する探索開始駅から終了ノードに相当する探索終了駅までの間を鉄道で移動する推奨経路をダイクストラ法により探索させるコンピュータプログラムであって、
コンピュータを、
ダイクストラ法において前記探索開始駅から前記探索終了駅までの間に位置するノードに相当する中間駅及び前記探索終了駅に対して保存する前記探索開始駅からのコスト値の合計値を、前記中間駅及び前記探索終了駅の駅毎に複数保存するコスト値保存手段と、
前記中間駅及び前記探索終了駅に対して複数保存される前記コスト値の合計値に、該コスト値の合計値がどの列車に乗車した経路に対する前記コスト値の合計値であるかを特定する配列データを夫々付加するデータ付加手段と、
して機能させる為のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鉄道で移動する際の推奨経路を探索する経路探索システム、経路探索方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、車両の走行案内を行い、運転者が所望の目的地に容易に到着できるようにしたナビゲーション装置が車両に搭載されていることが多い。ここで、ナビゲーション装置とは、ＧＰＳ受信機などにより自車の現在位置を検出し、その現在位置に対応する地図データをＤＶＤ−ＲＯＭやＨＤＤなどの記録媒体またはネットワークを通じて取得して液晶モニタに表示することが可能な装置である。更に、かかるナビゲーション装置には、所望する目的地を入力すると、自車位置から目的地までの最適経路を探索する経路探索機能を備えており、探索された最適経路を案内経路として設定し、ディスプレイ画面に案内経路を表示するとともに、交差点に接近した場合等には音声による案内をすることによって、ユーザを所望の目的地まで確実に案内するようになっている。また、近年は携帯電話機、スマートフォン、タブレット型端末、パーソナルコンピュータ等においても上記ナビゲーション装置と同様の機能を有するものがある。
【０００３】
また、上記経路探索機能では、徒歩や車で移動する為の経路以外に、鉄道で移動する為の経路を探索することも行われていた（例えば特開２０１０−３３２３０号公報参照）。そして、鉄道で移動する為の経路を探索すると、例えば目的地の駅に希望時刻までに到着する為には、何時にどの駅からどの列車に乗車し、更にどの駅で乗り換えれば良いかを特定し、ユーザに案内することが可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−３３２３０号公報（第１４−１６頁、図７）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、上記特許文献１に記載された技術のように出発地から目的地までの経路を探索する手段としては、従来より一般的にダイクストラ法が用いられる。ダイクストラ法は、出発地側から（目的地側からでも良い）経路の探索が行われ、推奨経路を構成し得るノード毎に、出発地から累積されたコスト値の最小加算値を記憶し、目的地のノードにおいて最小加算値となる経路を推奨経路として選択するアルゴリズムである。
【０００６】
しかしながら、鉄道で移動する為の経路の探索は、徒歩や車で移動する為の経路の探索と異なり、同一路線を走行する列車の追い越しや通過待ちを考慮する必要がある。従って、同じ駅を先に出発した電車よりも後から出発した電車の方が早く目的地の駅に到着する（即ち、列車によって同じリンクでもリンクコストの値が異なる）場合があり、一般的なダイクストラ法によるアルゴリズムでは最適経路が探索できない虞があった。
【０００７】
本発明は前記従来における問題点を解消するためになされたものであり、鉄道で移動する為の経路を探索する場合において、列車の追い越しや通過待ちを考慮したより適切な経路を探索することを可能とした経路探索システム、経路探索方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記目的を達成するため本発明に係る経路探索システム（１）は、開始ノードに相当する探索開始駅から終了ノードに相当する探索終了駅までの間を鉄道で移動する推奨経路をダイクストラ法により探索する経路探索システムであって、ダイクストラ法において前記探索開始駅から前記探索終了駅までの間に位置するノードに相当する中間駅及び前記探索終了駅に対して保存する前記探索開始駅からのコスト値の合計値を、前記中間駅及び前記探索終了駅の駅毎に複数保存し、前記中間駅及び前記探索終了駅に対して複数保存される前記コスト値の合計値に、該コスト値の合計値がどの列車に乗車した経路に対する前記コスト値の合計値であるかを特定する配列データを夫々付加することを特徴とする。
尚、ダイクストラ法において出発地に指定した駅から探索を開始する場合には、探索開始駅は出発地に指定した駅となり、探索終了駅は目的地に指定した駅となる。一方、目的地に指定した駅から探索を開始する場合には、探索開始駅は目的地に指定した駅となり、探索終了駅は出発地に指定した駅となる。
【０００９】
また、本発明に係る経路探索方法は、開始ノードに相当する探索開始駅から終了ノードに相当する探索終了駅までの間を鉄道で移動する推奨経路をダイクストラ法により探索する経路探索方法である。具体的には、コスト値保存手段が、ダイクストラ法において前記探索開始駅から前記探索終了駅までの間に位置するノードに相当する中間駅及び前記探索終了駅に対して保存する前記探索開始駅からのコスト値の合計値を、前記中間駅及び前記探索終了駅の駅毎に複数保存するステップと、データ付加手段が、前記中間駅及び前記探索終了駅に対して複数保存される前記コスト値の合計値に、該コスト値の合計値がどの列車に乗車した経路に対する前記コスト値の合計値であるかを特定する配列データを夫々付加するステップと、を有することを特徴とする。
【００１０】
また、本発明に係るコンピュータプログラムは、開始ノードに相当する探索開始駅から終了ノードに相当する探索終了駅までの間を鉄道で移動する推奨経路をダイクストラ法により探索させるコンピュータプログラムである。具体的には、コンピュータを、ダイクストラ法において前記探索開始駅から前記探索終了駅までの間に位置するノードに相当する中間駅及び前記探索終了駅に対して保存する前記探索開始駅からのコスト値の合計値を、前記中間駅及び前記探索終了駅の駅毎に複数保存するコスト値保存手段と、前記中間駅及び前記探索終了駅に対して複数保存される前記コスト値の合計値に、該コスト値の合計値がどの列車に乗車した経路に対する前記コスト値の合計値であるかを特定する配列データを夫々付加するデータ付加手段と、して機能させることを特徴とする。
【発明の効果】
【００１１】
前記構成を有する本発明に係る経路探索システム、経路探索方法及びコンピュータプログラムによれば、ダイクストラ法により鉄道で移動する為の経路を探索する場合において、列車の追い越しや通過待ちを考慮したより適切な経路を探索することが可能となる。特に、中間駅や探索終了駅に対して複数保存されるコスト値の合計値毎に配列データを新たに付加することによって、コスト値を複数保存した場合であってもダイクストラ法のアルゴリズムを変えることなく最終的に最適な一の推奨経路を決定することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態に係る通信端末の構成を示したブロック図である。
【図２】経路探索時に作成されるコストテーブルを示した図である。
【図３】本実施形態に係る経路探索処理プログラムのフローチャートである。
【図４】本実施形態に係る経路探索処理プログラムのフローチャートである。
【図５】出発駅Ａ〜目的駅Ｆまでの経路探索時に作成されるコストテーブルを示した図である。
【図６】出発駅Ａ〜目的駅Ｆまでを走行する列車の時刻表について示した図である。
【図７】コストテーブルの情報更新手順について説明した図である。
【図８】コストテーブルの情報更新手順について説明した図である。
【図９】コストテーブルの情報更新手順について説明した図である。
【図１０】コストテーブルの情報更新手順について説明した図である。
【図１１】コストテーブルの情報更新手順について説明した図である。
【図１２】最終的に作成されるコストテーブルを示した図である。
【発明を実施するための形態】
【００１３】
以下、本発明に係る経路探索システムを通信端末に具体化した一実施形態に基づき図面を参照しつつ詳細に説明する。
【００１４】
ここで、通信端末１は、ＧＰＳ等の通信端末１の現在位置（即ちユーザの現在位置）を特定する為の機能やユーザの現在位置周辺の地図画像を表示する機能等のナビゲーション機能（以下、ナビ機能という）を備えた情報通信端末が用いられ、例えばナビゲーション装置、携帯電話機、ＰＤＡ、タブレット型端末、スマートフォン、パーソナルコンピュータ等が該当する。尚、ナビゲーション装置以外の通信端末１については特にナビゲーションアプリがインストールされている。ここで、ナビゲーションアプリは、通信端末１においてナビ機能を実行するアプリケーションである。ナビ機能としては、サーバから取得したりメモリに格納された地図情報や交通情報に基づいて通信端末１（ユーザ）の現在位置周辺の地図画像や交通情報を表示したり、表示された地図画像中において通信端末１（ユーザ）の現在位置を表示したり、設定された出発地から目的地までの経路の探索及び案内をしたり、経路周辺の施設や地名等の地点情報を案内する機能等がある。また、特に本実施形態では、出発地から目的地までの経路の探索を行う場合に、出発地に指定した駅から目的地に指定した駅までを鉄道で移動する為の推奨経路の探索についても行う。
尚、ナビゲーションアプリは、上記ナビ機能の全てを必ずしも備えている必要はない。
【００１５】
次に、通信端末１の概略構成について図１を用いて説明する。図１は本実施形態に係る通信端末１の制御系を模式的に示すブロック図である。以下の実施例では通信端末１として特にスマートフォンを用いた例について説明する。
【００１６】
図１に示すように通信端末１はデータバスＢＵＳに、ＣＰＵ１１と、通信端末１を所持するユーザに関するユーザ情報（ユーザＩＤ、氏名等）や地図情報等が記憶されたメモリ１２と、基地局との間で信号の送受信を行う送受信回路部（ＲＦ）１３と、送受信回路部１３において受信したＲＦ（Radio Frequency）信号をベースバンド信号に変換するとともにベースバンド信号をＲＦ信号に変換するベースバンド処理部１４と、マイクロホン１５及びスピーカ１６等とのインターフェイスである入出力部１７と、液晶表示パネル等で構成されたディスプレイ１８と、タッチパネルや文字入力キー等から構成される入力操作部１９と、ＧＰＳ２０とが接続されることにより構成されている。
【００１７】
ここで、通信端末１に内蔵されるＣＰＵ１１は、メモリ１２に格納されている動作プログラムに従って種々の動作を実行する通信端末１の制御手段であり、メモリ１２とともに通信端末ＥＣＵ２１を構成する。また、通信端末ＥＣＵ２１の各種処理内容は必要に応じてディスプレイ１８に表示される。尚、通信端末ＥＣＵ２１は、処理アルゴリズムとしての各種手段を構成する。例えば、コスト値保存手段は、ダイクストラ法において探索開始駅（例えば出発地に指定した駅）から探索終了駅（例えば目的地に指定した駅）までの間に位置するノードに相当する中間駅及び探索終了駅に対して保存する探索開始駅からのコスト値の合計値を、中間駅及び探索終了駅の駅毎に複数保存する。データ付加手段は、中間駅及び探索終了駅に対して複数保存されるコスト値の合計値に、該コスト値の合計値がどの列車に乗車した経路に対するコスト値の合計値であるかを特定する配列データを夫々付加する。
【００１８】
また、通信端末１は、送受信回路部１３を介して通信を行うことにより、通話以外に、インターネット通信や、交通情報センタ、例えば、ＶＩＣＳ（登録商標）センタやプローブセンタ等から送信された渋滞情報、規制情報、交通事故情報等の各情報から成る交通情報の受信についても可能である。
【００１９】
また、メモリ１２は、通信端末１を所持するユーザに関するユーザ情報（ユーザＩＤ、氏名等）や地図情報２２の他、インストールされたアプリケーションプログラム、経路探索時に作成されるコストテーブル２３、後述の経路探索処理プログラム（図３、図４）等が記憶された記憶媒体である。尚、地図情報２２やコストテーブル２３はメモリ１２に記憶せずに外部のサーバから通信により取得する構成としても良い。また、メモリ１２は、ハードディスク、メモリーカード、ＣＤやＤＶＤ等の光ディスク等により構成しても良い。
【００２０】
ここで、地図情報２２は、例えば、リンクに関するリンクデータ、ノード点に関するノードデータ、経路探索処理に用いられる探索データ、施設に関する施設データ、地図を表示するための地図表示データ、各交差点に関する交差点データ、地点を検索するための検索データ等が記憶された記憶手段である。また、本実施形態では鉄道で移動する経路についても探索対象とするので、鉄道で移動する経路を探索する為の各種情報（鉄道の線路、鉄道の時刻表等）についても記憶される。
【００２１】
尚、地図情報２２に含まれるリンクデータ及びノードデータは、車両や歩行者が移動する道路網に加えて、鉄道の路線網についても構成する。即ち、道路網では、交差点がノードとなり、交差点間の道路がリンクとなる。また、鉄道の路線網では、駅がノードとなり、駅間の線路がリンクとなる。
【００２２】
また、探索データとしては、後述のように出発地（例えば車両の現在位置）から設定された目的地までの経路を探索する経路探索処理に使用される各種データについて記録されている。具体的には、交差点や駅等のノードに対する経路として適正の程度を数値化したコスト（以下、ノードコストという）や道路や線路等を構成するリンクに対する経路として適正の程度を数値化したコスト（以下、リンクコストという）等の探索コストを算出する為に使用するコスト算出データが記憶されている。
【００２３】
ここで、ノードコストは、探索コストの算出対象となる経路に含まれる交差点や駅等に対応するノード毎に設定され、信号機の有無、交差点を通過する際の自車の走行経路（即ち直進、右折及び左折の種類）、駅での乗り換えの待ち時間等によってその値が算出される。
また、リンクコストは、探索コストの算出対象となる経路に含まれるリンク毎に設定され、リンク長を基本にして、該リンクの道路属性や道路種別、道路幅、車線数、線路を走行する列車種別（地下鉄、在来線、特急等）等を考慮して算出される。
尚、特に本実施形態では、鉄道で移動する経路を探索する場合には、後述のように出発時刻からの時間（目的地に指定した駅から探索を行う場合には到着時刻からの時間）、より具体的には経路を構成する各ノード（駅）への到着時刻によって探索コストを示す。そして、到着時刻が早いほどコスト値が低い、即ち推奨経路として選択され易くなる。
【００２４】
そして、本実施形態に係る通信端末１では、上記リンクデータ、ノードデータ、探索データ等を用いることによって、車両や徒歩以外に鉄道で移動する経路についても推奨経路の探索を行うことが可能である。
【００２５】
一方、コストテーブル２３は、後述のように経路探索処理を行う際に生成され、出発地に指定された駅（以下、出発駅という）から目的地に指定された駅（以下、目的駅という）まで至る推奨経路を構成し得る各リンクを接続する駅（出発駅と目的駅とその間にある中間駅を含む）のリストからなる。例えば、図２に示すように出発駅としてＡ駅と指定され、目的駅としてＮ駅が指定された場合には、Ａ駅〜Ｎ駅のＮ個の駅のリストからなる。また、コストテーブル２３では、リストアップされた駅毎に、出発駅から該駅までの探索コストの合計値を示す『コスト』と、その『コスト』を実現する場合に該駅まで乗車した列車を特定する『列車』と、その『コスト』を実現する場合に直前に出発した駅（通過した駅は除く）である『前駅』と、その『コスト』が前駅に対応付けて記憶されている複数の『コスト』の内、どの『コスト』に新たにコスト値を加算したものかを示す『配列』と、その『コスト』を実現する場合に最初に列車に乗車した駅を示す『乗車駅』と、『乗車駅』で列車に乗車した時刻を示す『乗車時刻』とが対応付けられている。
また、本実施形態では特に『コスト』を、リストアップされた駅毎に複数（例えば３個）保存する。ここで、特に『列車』や『前駅』や『配列』は、駅毎に複数のコスト値の合計値を保存する場合において、出発駅からどの駅でどの出発時刻の列車に乗車した経路に対するコスト値の合計値であるかを特定する為のデータとなる。
尚、コストテーブル２３を用いた経路探索の詳細については後述する。
【００２６】
また、ディスプレイ１８は、筐体の一面に配設されており、液晶ディスプレイや有機ＥＬディスプレイ等が用いられる。そして、通信端末１にインストールされている各種アプリケーションを実行する為のトップ画面や、実行されたアプリケーションに係る画面（インターネット画面、メール画面、ナビゲーション画面等）や、画像、動画等の各種情報が表示される。特に、ナビゲーションアプリを実行した場合に表示されるナビゲーション画面では、道路を含む地図画像、交通情報、出発地から目的地までの案内経路、案内経路に沿った案内情報等についても表示される。
【００２７】
また、入力操作部１９は、ディスプレイ１８の前面に設けられたタッチパネルによって構成されている。そして、通信端末ＥＣＵ２１は、タッチパネルの押下等により出力される電気信号に基づき、対応する各種の動作を実行すべく制御を行う。特に本実施形態では、トップ画面におけるアイコンの操作や、起動されたアプリケーションでの各種選択及び入力操作等に用いられる。尚、入力操作部１９は、番号／文字入力キー、表示された内容を選択するためのカーソルを動かすカーソルキー、選択を確定する決定キー等の各種キー等により構成することもできる。
【００２８】
また、ＧＰＳ２０は、人工衛星によって発生させられた電波を受信することにより、通信端末１（即ちユーザ）の現在位置及び現在時刻を検出可能とする。また、ＧＰＳ２０以外にも通信端末１の現在位置や方位を検出する為の他の装置（例えばジャイロセンサ等）を備える構成としても良い。
【００２９】
続いて、上記構成を有する本実施形態に係る通信端末１においてＣＰＵ１１が実行する経路探索処理プログラムについて図３及び図４に基づき説明する。図３及び図４は本実施形態に係る経路探索処理プログラムのフローチャートである。ここで、経路探索処理プログラムは通信端末１において鉄道で移動する経路探索を行う為の所定の操作（例えば、ナビアプリを起動させた状態での出発駅や目的駅の設定操作）を受け付けた際に実行され、出発駅から目的駅までを鉄道で移動する推奨経路を探索するプログラムである。尚、以下の図３及び図４にフローチャートで示されるプログラムは、通信端末１が備えているメモリ１２に記憶されており、ＣＰＵ１１により実行される。尚、通信端末１ではなく、通信端末１と通信可能に接続されたサーバが以下の処理を実行する構成としても良い。その場合には、最終的に探索された推奨経路をサーバから通信端末１へと送信し、通信端末１で案内するように構成する。
【００３０】
先ず、経路探索処理プログラムではステップ（以下、Ｓと略記する）１において、ＣＰＵ１１は、所定の初期化処理を行う。
【００３１】
次に、Ｓ２においてＣＰＵ１１は、出発駅、目的駅、出発時刻をそれぞれ取得する。尚、出発駅はユーザが現時点で駅に位置する場合にはユーザが現在位置する駅としても良いし、ユーザにより指定された任意の駅としても良い。また、目的駅はユーザにより指定された任意の駅とする。また、出発時刻については現在の時刻としても良いし、ユーザにより指定された任意の時刻としても良い。
【００３２】
続いて、Ｓ３においてＣＰＵ１１は、前記Ｓ２で取得した出発駅、目的駅及びメモリ１２に記憶された地図情報２２に基づいて、コストテーブル２３を作成し、作成されたコストテーブル２３をメモリ１２等の記憶媒体に記憶する。更に、作成されたコストテーブル２３の初期化についても行う。
【００３３】
ここで、コストテーブル２３は、上述したように出発駅から目的駅まで至る推奨経路の候補を接続する駅（出発駅と目的駅とその間にある中間駅を含む）のリストからなる（図２参照）。
【００３４】
以下の説明では、図５に示す出発駅Ａから目的駅Ｆまでの経路探索処理を行う場合を具体例に挙げて説明することとする。また、出発駅Ａから目的駅Ｆまでを走行する列車の時刻表について図６に示す。図６に示すように出発時刻の時間帯において出発駅Ａから目的駅Ｆの間は停車駅や発車時刻の異なる列車Ｘ〜Ｚの３本の列車が走行する。
【００３５】
そして、前記Ｓ３においてＣＰＵ１１は、図５に示す出発駅Ａから目的駅Ｆまでの経路探索処理を行う場合には、出発駅Ａから目的駅Ｆまでの間にあって推奨経路を構成し得る各リンクを接続する６つの駅Ａ〜Ｆがリストアップされたコストテーブルが作成される。また、本実施形態ではリストアップされた一の駅に対して保存される『コスト』の最大数は３個とする。
【００３６】
次に、Ｓ４においてＣＰＵ１１は、出発駅を最初の探索対象駅に選択する。そして、以降の処理では出発駅側から目的駅側へと順に探索対象駅を変更して出発駅からのコスト値の合計値を算出及び記憶し、ダイクストラ法による経路探索を行う。尚、目的駅側から経路探索を行う場合には、前記Ｓ４で目的駅が最初の探索対象駅に選択されることとなる。
【００３７】
続いて、Ｓ５においてＣＰＵ１１は、探索対象駅に対する初期化処理を行う。具体的には、図７に示すように前記Ｓ２で取得された出発時刻を、最初の探索対象駅、即ち出発駅に対応付けられた『コスト』としてコストテーブル２３に保存する。更に、前記Ｓ２で取得された出発時刻を“探索対象時刻”としてメモリ１２等に記憶する。
【００３８】
次に、Ｓ６においてＣＰＵ１１は、時刻表（図６）を参照して現在の探索対象駅を到着時刻（コスト）以降に最初に出発する列車を取得し、“対象列車”としてメモリ１２等に記憶する。但し、駅内の移動にかかる時間や乗り換えに必要な時間を考慮して、到着時刻（コスト）から所定時間（例えば５分）経過した後に最初に出発する列車を“対象列車”とするのが望ましい。尚、後述のようにコストテーブル２３において出発駅から探索対象駅までの探索コストの合計値を示す『コスト』は、探索対象駅への到着時刻（出発駅に関しては出発時刻）が記憶されることとなる。
【００３９】
従って、図７に示すように探索対象駅が出発駅Ａである場合には、出発駅Ａの到着時刻（コスト）である８：５０以降の９：００に出発駅Ａを出発する列車Ｘが先ず対象列車として特定される。
【００４０】
その後、Ｓ７においてＣＰＵ１１は、時刻表（図６）を参照して対象列車が探索対象駅の次に停車する駅（以下、次駅という）を取得する。
【００４１】
例えば、図７に示すように探索対象駅が出発駅Ａであって、対象列車が列車Ｘである場合には、次駅として中間駅Ｂが取得される。
【００４２】
次に、Ｓ８においてＣＰＵ１１は、次駅のコストテーブル２３に、対象列車と到着時刻（コスト）及び乗車駅が同じ列車の情報が記憶されているか否かを判定する。
【００４３】
そして、次駅のコストテーブル２３に、対象列車と到着時刻（コスト）及び乗車駅が同じ列車の情報が記憶されていると判定された場合（Ｓ８：ＹＥＳ）には、Ｓ１６へと移行する。それに対して、次駅のコストテーブル２３に、対象列車と到着時刻（コスト）及び乗車駅が同じ列車の情報が記憶されていないと判定された場合（Ｓ８：ＮＯ）には、Ｓ９へと移行する。
【００４４】
Ｓ９においてＣＰＵ１１は、次駅のコストテーブル２３に、到着時刻（コスト）が既に所定数記憶されているか否かを判定する。尚、前記Ｓ９において判定対象となる所定数は、リストアップされた一の駅に対して保存される『コスト』の最大数であり、本実施形態では３個とする。
【００４５】
そして、次駅のコストテーブル２３に、到着時刻（コスト）が既に所定数記憶されていると判定された場合（Ｓ９：ＹＥＳ）には、Ｓ１９へと移行する。それに対して、次駅のコストテーブル２３に、到着時刻（コスト）が所定数未満しか記憶されていないと判定された場合（Ｓ９：ＮＯ）には、Ｓ１０へと移行する。
【００４６】
Ｓ１０においてＣＰＵ１１は、次駅のコストテーブル２３に、対象列車の各種情報（『コスト』、『列車』、『前駅』、『配列』、『乗車駅』、『乗車時刻』）を記憶する。その後、Ｓ１１へと移行する。
【００４７】
従って、図８に示すように探索対象駅が出発駅Ａであって、対象列車が列車Ｘである場合には、次駅である中間駅Ｂのコストテーブル２３に、列車Ｘに関する各種情報が記憶される。具体的には、出発駅から該駅までの探索コストの合計値を示す『コスト』として、列車Ｘの中間駅Ｂへの到着である“９：１０”が記憶され、乗車した列車を特定する『列車』として“列車Ｘ”が記憶され、直前に出発した駅（通過した駅は除く）である『前駅』として“駅Ａ”が記憶され、前駅に対応付けて記憶されている複数の『コスト』の内、どの『コスト』に新たにコスト値を加算したものかを示す『配列』として『０』が記憶され、最初に列車に乗車した駅を示す『乗車駅』として“駅Ａ”が記憶され、『乗車駅』で列車に乗車した時刻を示す『乗車時刻』として“９：００”が記憶される。『配列』は、図８に示すように前駅の最も上段に記憶された『コスト』に新たにコスト値を加算したものである場合には“０”とし、前駅の２段目に記憶された『コスト』に新たにコスト値を加算したものである場合には“１”とし、前駅の３段目に記憶された『コスト』に新たにコスト値を加算したものである場合には“２”とする。
【００４８】
Ｓ１１においてＣＰＵ１１は、コストテーブル２３とは別にコストソートテーブルを作成し、コストソートテーブルに対象列車の情報を登録する。具体的には、直前に新たにコストテーブル２３に記憶された対象列車の情報が、コストテーブル２３の内、どの駅のどの『コスト』として記憶されたのかを特定する情報が登録される。尚、コストソートテーブルはメモリ１２等に記憶される。
【００４９】
従って、図８に示すように対象列車が列車Ｘであって、直前に中間駅Ｂの最も上段に対して対象列車である列車Ｘの情報が記憶された場合には、“駅Ｂ”と“配列０”の組み合わせを示す“Ｂ−０”がコストソートテーブルに登録される。
【００５０】
次に、Ｓ１２においてＣＰＵ１１は、時刻表（図６）を参照して現在の対象列車の次に探索対象駅を出発する列車を特定し、特定した列車を新たな“対象列車”としてメモリ１２等に記憶する。
【００５１】
その後、Ｓ１３においてＣＰＵ１１は、対象列車が特定できたか否か、即ち現在の対象列車の次に探索対象駅を出発する列車が存在するか否か判定する。
【００５２】
そして、対象列車が特定できた、即ち現在の対象列車の次に探索対象駅を出発する列車が存在すると判定された場合（Ｓ１３：ＹＥＳ）には、Ｓ７へと移行する。そして、新たに選択された対象列車を対象としてＳ７以降の処理を再度実行する。それに対して、対象列車が特定できない、即ち現在の対象列車の次に探索対象駅を出発する列車が存在しない（現在の対象列車が探索対象駅を出発する最終列車である）と判定された場合（Ｓ１３：ＮＯ）には、Ｓ１４へと移行する。
【００５３】
従って、探索対象駅が出発駅Ａであって、現在の対象列車が出発駅Ａを９：００に出発する列車Ｘである場合には、次の９：０５に出発駅Ａを出発する列車Ｙが新たな対象列車として特定される。そして、新たな対象列車である列車Ｙを対象としてＳ７以降の処理を再度実行する。その結果、図９に示すように次駅である中間駅Ｂのコストテーブル２３に、列車Ｙに関する各種情報が記憶される（Ｓ１０）。更に、中間駅Ｂの２段目に対して対象列車である列車Ｙの情報が記憶されることから、“駅Ｂ”と“配列１”の組み合わせを示す“Ｂ−１”がコストソートテーブルに登録される（Ｓ１１）。そして、出発駅Ａを出発する最終列車が対象列車となるまで上記Ｓ７以降の処理が繰り返し実行されることとなる。
【００５４】
一方、Ｓ１４においてＣＰＵ１１は、コストソートテーブルに情報が記憶されているか否か判定する。尚、コストソートテーブルは、前記Ｓ１１で直前に新たにコストテーブル２３に記憶された対象列車の情報が記憶され、その後、Ｓ１５において新たな探索対象駅や探索対象時刻を特定するのに用いられた情報はコストソートテーブルから削除される。
【００５５】
そして、コストソートテーブルに情報が記憶されていないと判定された場合（Ｓ１４：ＹＥＳ）には、Ｓ２１へと移行する。それに対して、コストソートテーブルに情報が記憶されていると判定された場合（Ｓ１４：ＮＯ）には、Ｓ１５へと移行する。
【００５６】
Ｓ１５においてＣＰＵ１１は、コストソートテーブルに記憶された情報の内、最も早い到着時刻（コスト）に関する情報を抽出し、抽出された情報の駅を新たな“探索対象駅”に選択する。また、抽出された情報の到着時刻（コスト）に所定の乗り換え時間（例えば５分）を加算した時刻を新たな“探索対象時刻”としてメモリ１２等に記憶する。更に、コストソートテーブルから抽出された情報については削除する。その後、Ｓ６へと戻り、新たに選択された探索対象駅を対象としてＳ６以降の処理を再度実行する。そして、コストソートテーブルに情報が記憶されなくなるまで、即ち、コストテーブル２３にリストアップされた全ての駅及び全ての列車を対象としたコストの算出処理が完了するまで、上記Ｓ６以降の処理が繰り返し実行されることとなる。
【００５７】
例えば、図１０に示すコストソートテーブルが記憶されている場合には、最も早い到着時刻（コスト）に関する情報である“Ｂ−０”が抽出される。従って、中間駅Ｂが新たな探索対象駅として選択され、更に抽出された情報の到着時刻（コスト）である９：１０に所定の乗り換え時間（例えば５分）を加算した時刻（例えば９：１５）を新たな探索対象時刻として記憶する。そして、中間駅Ｂを対象としてＳ６以降の処理を再度実行する。
【００５８】
一方、前記Ｓ８において次駅のコストテーブル２３に、対象列車と到着時刻（コスト）及び乗車駅が同じ列車の情報が記憶されていると判定された場合（Ｓ８：ＹＥＳ）に実行されるＳ１６では、ＣＰＵ１１は到着時刻（コスト）及び乗車駅が同じと判定された列車と対象列車との『乗車時刻（最初に列車に乗車した時刻）』を比較する。
【００５９】
そして、Ｓ１７においてＣＰＵ１１は、前記Ｓ１６の比較結果に基づいて、到着時刻（コスト）及び乗車駅が同じと判定された列車よりも対象列車の『乗車時刻』の方が遅いか否かを判定する。
【００６０】
そして、到着時刻（コスト）及び乗車駅が同じと判定された列車よりも対象列車の『乗車時刻』の方が遅いと判定された場合（Ｓ１７：ＹＥＳ）には、対象列車の方が適切な移動経路であると認定し、次駅のコストテーブル２３の内、到着時刻（コスト）及び乗車駅が同じと判定された列車の情報を、対象列車の情報へと更新する（書き換える）（Ｓ１８）。その結果、次駅のコストテーブル２３に、対象列車の各種情報（『コスト』、『列車』、『前駅』、『配列』、『乗車駅』、『乗車時刻』）が記憶される。その後、Ｓ１１へと移行する。
【００６１】
例えば、図１１に示すように次駅である中間駅Ｃのコストテーブル２３に、到着時刻（コスト）が９：３０で乗車駅が出発駅Ａである情報が記録されている状態で、同じく到着時刻（コスト）が９：３０で乗車駅が出発駅Ａである対象列車の情報が新たに取得された場合には、互いの情報の乗車時刻を比較することとなる。そして、予め記憶されている列車の乗車時刻が９：００で、新たに取得された対象列車の乗車時刻が９：０５であることから、対象列車の情報へと更新を行う。
【００６２】
一方、到着時刻（コスト）及び乗車駅が同じと判定された列車よりも対象列車の『乗車時刻』の方が早いと判定された場合（Ｓ１７：ＮＯ）には、既にコストテーブル２３に記憶されている到着時刻（コスト）及び乗車駅が同じと判定された列車の方が適切な移動経路であると認定し、対象列車の情報については記憶することなくＳ１２へと移行する。
【００６３】
また、前記Ｓ９において次駅のコストテーブル２３に、到着時刻（コスト）が既に所定数記憶されていると判定された場合（Ｓ９：ＹＥＳ）に実行されるＳ１９では、ＣＰＵ１１は、次駅のコストテーブル２３に記憶されている所定数の到着時刻（コスト）の内、到着時刻（コスト）が最も遅い到着時刻（コスト）よりも対象列車の次駅への到着時刻が早いか否か判定する。
【００６４】
そして、次駅のコストテーブル２３に保存されている最も遅い到着時刻（コスト）より対象列車の次駅への到着時刻が早いと判定された場合（Ｓ１９：ＹＥＳ）には、対象列車の方が適切な移動経路であると認定し、次駅のコストテーブル２３の内、到着時刻（コスト）が最も遅い列車の情報を、対象列車の情報へと更新する（書き換える）（Ｓ２０）。その結果、次駅のコストテーブル２３に、対象列車の各種情報（『コスト』、『列車』、『前駅』、『配列』、『乗車駅』、『乗車時刻』）が記憶される。その後、Ｓ１１へと移行する。
【００６５】
一方、次駅のコストテーブル２３に保存されている最も遅い到着時刻（コスト）より対象列車の次駅への到着時刻が遅いと判定された場合（Ｓ１９：ＮＯ）には、既にコストテーブル２３に記憶される列車の方が適切な移動経路であると認定し、対象列車の情報については記憶することなくＳ１２へと移行する。
【００６６】
そして、コストテーブル２３にリストアップされた全ての駅及び全ての列車を対象としたコストの算出処理が完了した後に実行されるＳ２１においてＣＰＵ１１は、最終的に作成されたコストテーブル２３に基づいて、最終的な出発駅から目的駅までの推奨経路を決定する。
【００６７】
その後、前記Ｓ２１で決定された推奨経路は、ディスプレイ１８等を介してユーザに案内される。そして、その後のユーザの操作に基づいて案内された推奨経路がナビ機能の案内経路として設定され、設定された案内経路に基づく移動案内及び列車の乗り換えの案内が行われる。
【００６８】
例えば、図１２は上述した経路探索処理プログラムによって最終的に作成されたコストテーブル２３を示した図である。
図１２に示すコストテーブル２３が作成された場合において推奨経路を決定する際には、先ず目的駅Ｆのコストテーブル２３に記憶されている到着時刻（コスト）の内、到着時刻（コスト）が最も早い到着時刻（コスト）に対応付けられた『前駅』と『配列』を参照する。その結果、参照された『前駅』と『配列』の組み合わせが『Ｄ−０』であることから、次は中間駅Ｄのコストテーブル２３に記憶されている到着時刻（コスト）の内、最も上段の到着時刻（コスト）に対応付けられた『前駅』と『配列』を参照する。その結果、参照された『前駅』と『配列』の組み合わせが『Ａ−０』であることから、次は出発駅Ａのコストテーブル２３に記憶されている到着時刻（コスト）の内、最も上段の到着時刻（コスト）に対応付けられた『前駅』と『配列』を参照する。ここで、出発駅Ａはユーザが最初に乗車する駅であることから、そこで推奨経路が決定することとなる。即ち、出発駅Ａにおいて９：２０に列車Ｚに乗車し、中間駅Ｄでは列車を乗り換えることなくそのまま列車Ｚに乗車し、目的駅Ｆに９：５５に到着する経路が推奨経路となる。
【００６９】
本実施形態では、ノードに相当する各駅に対してコスト値の合計値を複数記憶した場合であっても、記憶した各コスト値に対して『列車』や『前駅』や『配列』のような出発駅からどの駅でどの出発時刻の列車に乗車した経路に対するコスト値の合計値であるかを特定するデータが付加される。従って、前記Ｓ２１では、それらのデータを参照して目的駅側から出発駅側へと辿ることによって最終的に最適な一の推奨経路を決定することが可能となる。
【００７０】
以上詳細に説明した通り、本実施形態に係る通信端末１、通信端末１による経路探索方法及び通信端末１で実行されるコンピュータプログラムでは、鉄道で移動する推奨経路をダイクストラ法により探索する場合において、ダイクストラ法において探索開始駅（出発地側から探索を行う場合には出発駅）から探索終了駅（出発地側から探索を行う場合には目的駅）までの間に位置する各駅に対して保存する探索開始駅からのコスト値の合計値を、駅毎に複数保存し（Ｓ１０、Ｓ１８、Ｓ２０）、複数保存されるコスト値の合計値に、該コスト値の合計値がどの列車に乗車した経路に対するコスト値の合計値であるかを特定する配列データを夫々付加するので、ダイクストラ法により鉄道で移動する為の経路を探索する場合において、列車の追い越しや通過待ちを考慮したより適切な経路を探索することが可能となる。特に、各駅に対して複数保存されるコスト値の合計値毎に配列データを新たに付加することによって、コスト値を複数保存した場合であってもダイクストラ法のアルゴリズムを変えることなく最終的に最適な一の推奨経路を決定することが可能となる。
【００７１】
尚、本発明は前記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることは勿論である。
例えば、本実施形態では、出発地に指定された出発駅側から探索を行った場合の経路探索処理について説明しているが、目的地に指定された目的駅側、又は出発駅側と目的駅側の両方から探索を行っても良い。その場合であっても最終的には同一の推奨経路が探索されることとなる。尚、目的地駅側から探索を行う場合には、コストテーブル２３の内、『コスト』は出発時刻からの時間ではなく、到着時刻からの時間によって示す。また、『乗車駅』は、最初に列車に乗車した駅ではなく、最終的に降車する駅となり、『乗車時刻』は、『乗車駅』で列車に乗車した時刻ではなく、『乗車駅』で最終的に降車する時刻となる。更に、図３のＳ１７では、到着時刻（コスト）及び乗車駅が同じと判定された列車よりも対象列車の『乗車時刻』の方が早いか否かを判定し、早いと判定された場合にＳ１８へと移行するように構成する。
【００７２】
また、本実施形態では、コストテーブル２３においてコスト値の合計値を最大３個まで記憶する構成としているが、２個又は４個以上記憶する構成としても良い。但し、記憶させる数を多くすると経路探索処理の処理負担が大きくなり、一方で記憶させる数を少なくすると探索された経路の信頼性が低下するので、３〜５個程度が望ましい。
【００７３】
また、本発明は通信端末単体ではなく通信端末とサーバとから構成されるシステムに対しても適用することが可能となる。その場合には、上述した経路探索処理プログラム（図３、図４）の各ステップは、サーバと通信端末のいずれが実施する構成としても良い。尚、経路探索処理プログラムの全てをサーバが実行する場合には、出発駅、目的駅及び出発時刻に関する情報を通信端末から通信により取得し、図３、４に示す経路探索処理プログラムをサーバが実行した後に、最終的に探索された推奨経路を通信端末へと送信するように構成する。
【００７４】
また、本発明に係る経路探索システムを具体化した実施例について上記に説明したが、経路探索システムは以下の構成を有することも可能であり、その場合には以下の効果を奏する。
【００７５】
例えば、第１の構成は以下のとおりである。
開始ノードに相当する探索開始駅から終了ノードに相当する探索終了駅までの間を鉄道で移動する推奨経路をダイクストラ法により探索する経路探索システムであって、ダイクストラ法において前記探索開始駅から前記探索終了駅までの間に位置するノードに相当する中間駅及び前記探索終了駅に対して保存する前記探索開始駅からのコスト値の合計値を、前記中間駅及び前記探索終了駅の駅毎に複数保存し、前記中間駅及び前記探索終了駅に対して複数保存される前記コスト値の合計値に、該コスト値の合計値がどの列車に乗車した経路に対する前記コスト値の合計値であるかを特定する配列データを夫々付加することを特徴とする。
上記構成を有する経路探索システムによれば、ダイクストラ法により鉄道で移動する為の経路を探索する場合において、列車の追い越しや通過待ちを考慮したより適切な経路を探索することが可能となる。特に、中間駅や探索終了駅に対して複数保存されるコスト値の合計値毎に配列データを新たに付加することによって、コスト値を複数保存した場合であってもダイクストラ法のアルゴリズムを変えることなく最終的に最適な一の推奨経路を決定することが可能となる。
【００７６】
また、第２の構成は以下のとおりである。
前記配列データは、前記探索開始駅からどの駅でどの出発時刻の列車に乗車した経路に対する前記コスト値の合計値であるかを特定するデータであることを特徴とする
上記構成を有する経路探索システムによれば、中間駅や探索終了駅に対して複数保存されるコスト値の合計値毎に配列データを新たに付加することによって、コスト値を複数保存した場合であってもダイクストラ法のアルゴリズムを変えることなく最終的に最適な一の推奨経路を決定することが可能となる。特に、停車する駅や発車時刻の異なる複数の列車が同一路線を走行する場合であっても、最適な一の推奨経路を決定することが可能となる。
【００７７】
また、第３の構成は以下のとおりである。
前記中間駅及び前記探索終了駅に対して保存される前記コスト値の合計値は、駅毎に値が小さい順に所定数まで保存されることを特徴とする。
上記構成を有する経路探索システムによれば、推奨経路を構成し得る複数の候補がある場合であっても、より適切な候補を残してそれ以外の候補については除外できる。また、候補となる経路の数を所定数に制限することによって経路探索処理の処理負担が大きくなり過ぎることを防止できる。
【００７８】
また、第４の構成は以下のとおりである。
同一の駅に対して保存対象となる前記コスト値の合計値が同値となる経路が複数ある場合には、前記探索開始駅の発車時刻が最も遅い経路のコスト値の合計値を保存し、その他の経路のコスト値の合計値は保存しないことを特徴とする。
上記構成を有する経路探索システムによれば、推奨経路を構成し得る複数の候補がある場合であっても、出来る限り遅い出発時刻で出発できる候補を優先して残すので、ユーザにとってより適切な推奨経路を選択することが可能となる。また、候補となる経路の数を制限することによって経路探索処理の処理負担が大きくなり過ぎることを防止できる。
【００７９】
また、第５の構成は以下のとおりである。
前記中間駅及び前記探索終了駅に対して保存される前記コスト値の合計値は、該駅への到着時刻により示され、前記到着時刻が早い程、前記コスト値の合計値が小さいことを示すことを特徴とする。
上記構成を有する経路探索システムによれば、同じ駅に到着する経路であっても、より到着が早くなる列車に乗車する経路を優先して推奨経路に選択するので、ユーザにとってより適切な推奨経路を選択することが可能となる。
【符号の説明】
【００８０】
１              通信端末
１１            ＣＰＵ
１２            メモリ
２１            通信端末ＥＣＵ
２２            地図情報
２３            コストテーブル
【図１】
0006280472.tif 000002
【図２】
0006280472.tif 000003
【図３】
0006280472.tif 000004
【図４】
0006280472.tif 000005
【図５】
0006280472.tif 000006
【図６】
0006280472.tif 000007
【図７】
0006280472.tif 000008
【図８】
0006280472.tif 000009
【図９】
0006280472.tif 000010
【図１０】
0006280472.tif 000011
【図１１】
0006280472.tif 000012
【図１２】
0006280472.tif 000013