説明

近道発見装置

【課題】電子地図のデータベースに近道を自動的に追加することができ、その追加される近道が使用可能で且つ効率的な近道であるようにするシステム。
【解決手段】電子地図(20)は、ノード及びリンクの集合として記憶される。地図の道路には、経路探索の目的で優先順位が指定される。ノードの優先順位は、最初、ノードに関連した道路の優先順位に対応する。電子地図は、地図(20)に近道を追加することによって使用可能度を増すことができる。近道発生装置(22)は、複合リンクを構築し及び/又はあるノードの優先順位を高めることにより近道を形成する。複合リンクとは、電子地図(20)の多数のリンクに沿った移動を表すリンクである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子地図から近道を発見する近道発見装置に係る。
【背景技術】
【0002】
コンピュータは、地図の考え方を、位置を静的に示す画像から、物理的、社会的又は経済的システムを定量化する地理的に参照される電子データより成る電子地図へと根本的に変えた。電子地図に含まれる情報の範囲は、無限である。例えば、道路の電子地図は、要素間の距離、移動時間、区画番号、税金情報、通行者情報、処理時間、待機時間等を含むことができる。更に、地図を1つ以上のインテリジェントデータファイルとしてコンピュータに記憶することにより、そのデータを如何なるソフトウェアプリケーションが操作することも許されるようになる。
【0003】
電子地図の1つの利点は、地図の種々の部分に関連したコストを記憶し、決定しそして利用できることである。コストは、最小又は最大にすることのできる変数である。コストとは、例えば、時間、距離、支払う通行料金、転換の容易さ、景色の良さ等を含む。通常、コストは、整数として表わされる。時々、コストは、実数値として表わすこともできる。コストに関する付加的な情報は、参考としてここに取り上げる1996年11月25日出願の「経路発見計算のために複数のコストレベルの使用(Using Multiple Levels Of Costs For A Pathfinding Computation)」と題する米国特許出願第08/756,263号に見ることができる。
【0004】
電子地図は、出発点と行き先との間のルートを計算する方法である経路発見に使用することができる。あるシステムは、推奨ルートを計算し、そして地図表示上にその推奨ルートをハイライト処理するか、又は曲がるたびに方向を指示する(紙、表示又は音声で)か、或いはその両方によって運転者を誘導する。経路発見システムが行き先への推奨ルートを計算するときには、ある特定の基準に基づいて最も望ましいルートを発見することによりそれを行う。これらの基準は、運転者によって指定されてもよいし、又は製造時に初期値として設定されてもよい。多くの場合に、システムは、あるコスト、例えば、運転時間を最小にする経路を発見するように使用される。
【0005】
経路発見に使用される電子地図は、道路網の接続に関する情報、即ち道路の断片が互いに接続するか又は接続しない態様に関する情報、例えば、通常の交差点があるか、高架道路があるか、転換が制限されているか等々の情報を保持しなければならない。非常に広い範囲では、これが膨大な情報となる。電子地図は、数十又は数百メガバイトのデータを含む。このような膨大な量のデータを経済的に保持すると共に、ユーザが更新されたコピーと容易に交換できるようにするために、現在の多数の経路発見装置(経路探査ソフトウェアを伴う汎用コンピュータ、自動車用ナビゲーションシステム又は他の地図アプリケーション装置を含む)は、CD−ROMを使用して電子地図データを記憶している。
【0006】
経路発見プロセスは多量のデータを分類しなければならないので、プロセスが低速となる。経路発見プロセスをスピードアップする1つの手段は、優先順位レベルを使用することである。優先順位レベルを使用すると、人間が経路発見プロセスを実行するのと同様のやり方で経路発見プロセスが経路を見つけることができ、最終的な経路は、人間が決定した経路と同様になる。経路を、人間が決定する経路と同様にすることで、経路は、より理解し易く且つユーザに馴染み易いものとなる。
【0007】
紙の地図上で経路を手動で見つけるときには、ユーザは、通常、出発点と行き先を識別する。ユーザは、居住地道路を経て集合又は幹線道路のような主要道路へ進むように航行する。次いで、ユーザは、主要道路を経てハイウェイを見つけるように航行する。行き先に最も近いハイウェイ出口が見つかるまで、ハイウェイ上で経路を決定し続ける。ハイウェイ出口が見つかると、ユーザは、主要道路を経て行き先のできるだけ近くまで航行する。最終的に、ユーザは、主要道路上のその最至近点から、居住地道路を用いて行き先へ至る経路を見つける。従って、ユーザは、本来的に、優先順位レベルを使用している。即ち、1つの優先順位レベルは、居住地道路であり、第2の優先順位レベルは、主要道路であり、そして第3の優先順位レベルは、ハイウェイである。経路発見プロセス中の第1の地域において、ユーザは、居住地道路を経て航行する。第2の地域において、ユーザは、主要道路及び/又はハイウェイのみを経て航行する。第3の地域において、ユーザは、ハイウェイのみを経て航行し、等々となる。このプロセスは、非常に効率的である。というのは、ユーザが常に全ての道路を経て探す場合に、考慮すべきデータが著しく多数あり、経路が最も効率的な経路となり難いからである。
【0008】
使用可能な経路を効率的に見つけるために、本願発明も、優先順位レベルを使用する。種々の経路発見システムは、異なる道路種別を異なるレベルに分割する。システムが3つのレベルを使用するか、4つのレベルを使用するか、5つのレベルを使用するか、6つのレベルを使用するか等は、ここでの説明にとって必ずしも重要ではない。テーブル1は、道路を6つの優先順位レベルに分割するシステムの一例を示す。
テーブル1
道路の種別 道路の種別に従う優先順位レベル
路地 0
居住地道路 1
集合道路 2
幹線道路 3
重要度の低いハイウェイ 4
重要なハイウェイ 5
このように、道路の種別に従って、時間的により高いコスト(換言すると、単位距離移動するのにより長い時間)をもたらす道路の種別に対して、より低い優先順位レベルが付けられる。道路の種別と最高制限速度とが関連していることは一般に知られていることである。
【0009】
明らかなように、テーブル1は、異なる道路を6つの道路種別、即ち路地、居住地道路、集合道路、幹線道路、重要度の低いハイウェイ及び重要なハイウェイに分割している。各道路の種別には優先順位レベルが指定される。1つの経路発見システムでは、システムが出発点から行き先への経路を決定するときに、システムは、優先順位レベル1及びそれより高い道路を探査し、出発点及び行き先から同時に経路探査を実行することにより処理を開始する。
本願発明では、この道路の種別に係る優先順位レベルを、道路の分岐点を意味するノード間の1方向の経路を意味するリンクのリンク優先順位レベルの初期値として使用する。
この経路探索は、促進基準が満足するまで続けられる。促進基準は、3組の基準を含む。第1基準は、促進閾値である。この促進閾値は、コストである。起点から現在考慮中の隣接ノードへ(又はノードから行先へ)移動するコストがこの促進閾値より高いときに、促進閾値が満足される。第2基準は、探査中に、低い優先順位(又はそれより高い)にあるノードの最小数に到達しなければならないことである。第3基準は、探査中に、高いリンク優先順位レベル(又はそれより高い)のリンクのノード数が最小数に到達しなければならないことである。例えば、リンク優先順位レベル1からレベル2へ促進するときには、リンク優先順位レベル1が低い優先順位であり、そしてリンク優先順位レベル2が高いリンク優先順位である。3つの基準全部が満足されたときに、促進基準が満足される。
【0010】
1組の促進閾値の一例がテーブル2に示されている。例えば、最初の行は、レベル0(及びそれ以上)からレベル1(及びそれ以上)へ探査を促進するための促進閾値を表わすコスト(ミリ秒)を表わしている。
テーブル2
促進のための 促進閾値
リンク優先順位レベル (コスト、ミリ秒)
0 0
0から1 10,000
1から2 10,000
2から3 120,000
3から4 300,000
4から5 600,000
第2及び第3の促進基準に対する1組の値は、テーブル3に例示する。
【0011】
テーブル3
低優先順位 高優先順位
促進のための (又はそれより高い) (又はそれより高い)
リンク優先順位レベル ノードの最小数 ノードの最小数
0から1 20 1
1から2 20 20
2から3 30 30
3から4 40 40
4から5 50 25
【0012】
優先順位レベル1以上における探査のための促進基準を満足した後に、システムは、優先順位レベル2以上の道路のみを考慮することにより第2促進基準を満足するまで経路探索プロセスを継続する。この第2促進基準に到達した後に、システムは、電子地図を探査し続けるが、第3促進基準に到達するまでリンク優先順位レベル3以上の道路しか考慮しない。第3促進基準を満足した後、システムは、第4促進基準に到達するまでリンク優先順位レベル4以上の道路のみを考慮して電子地図を通して探査し続ける。この第4促進基準を満足した後、システムは、リンク優先順位レベル5の道路のみを考慮して電子地図を探査し続ける。
【0013】
上述したリンク優先順位レベルを使用する幾つかの従来の経路発見システムに対してなされる1つの改善は、近道を含ませることであり、これは、経路発見プロセスをスピードアップし、良好な経路を形成する上で助けとなり、そして人間が紙の地図を使用して形成する経路により近い経路を形成する上で助けとなる。電子地図に近道を使用する幾つかの公知システムは、人間が電子地図のデータベースに手で近道を追加するものである。このプロセスは、低速で、冗長で且つ効率の悪いものである。
【0014】
他の従来のシステムは、コンピュータを使用して近道を自動的に発生する。しかしながら、これらシステムは、コンピュータにより発生される近道が顧客にとって使用可能でない経路を含む傾向があるために問題となっている。即ち、特定の方法の要求を満足する適切な近道が発生されるが、その発生された近道より更に使用可能な近道又は経路が存在する。多くのユーザは、非常に短い時間内に最短の経路を決定できることをシステムに望むために経路発見システムにアクセスする。ユーザは、ユーザに馴染みのある近所にいて、経路発見システムのユーザが知っている近道より距離の長い近道をシステムが決定したときに、システムの性能に失望する。
【発明の概要】
【発明が解決しようとする課題】
【0015】
それ故、電子地図のデータベースに近道を自動的に追加することができ、その追加される近道が使用可能で且つ効率的な近道であるようにするシステムが要望される。
【課題を解決するための手段】
【0016】
本発明は、電子地図データベースから近道を発見することのできる近道発見装置を提供する。ここに開示する近道発生装置は、電子地図データベースにおいて、或るノード優先順位レベルを高めることにより近道を発見することができる。ここで、ノード優先順位レベルとは、ノードに接続される複数のリンクのリンク優先順位レベルの内で最大の優先順位レベルである。
【0017】
本発明において、各リンクは、このリンクの道路の種別に応じたリンク優先順位レベルを有する。本発明は、出発点ノードから探査を開始する。この探査段階は、どのノードが使用可能でないか決定することを含む。探査中に探査されそして使用可能でないと決定されたノードで終端しないリンクのリンク優先順位レベルがより高いリンク優先順位レベルに切り替えられる。より高いリンク優先順位レベルに切り替えられるリンクが複数のリンクからなる複合リンクであってよい。
【0018】
1つの実施形態において、本発明は、ノードに対するノード優先順位レベルを電子地図に記憶することを含む。新たなリンク優先順位レベルを有する1つ以上のリンクにより接続されたノードに対して新たなノード優先順位レベルが形成される。新たなノード優先順位レベルは、電子地図に記憶される。
【0019】
1つの別の形態において、システムは、探査中に通過したUターンを含む経路に対して1つ以上のUターン指示を記憶する段階も含む。この実施形態では、新たなリンク優先順位レベルを付与する段階は、記憶されたUターン指示に関連したリンク又は経路を考慮しない。
【0020】
複合リンク及び新たなノード優先順位レベルを記憶するときには、新たなデータを既存の電子地図ファイルに記憶することができる。或いは又、新たなノード優先順位レベル及び複合リンクそして元のマップファイルからの適当なオリジナルデータを含む新たなファイルを発生することもできる
【0021】
本発明は、ソフトウェア、ハードウェア或いはソフトウェアとハードウェアの組合せを用いて実施することができる。本発明の一部分又は全部をソフトウェアで実施する場合には、そのソフトウェアは、プロセッサ読み取り可能な記憶媒体に存在し得る。適当なプロセッサ読み取り可能な記憶媒体は、例えば、フロッピー(登録商標)ディスク、ハードディスク、CD ROM、メモリIC等を含む。システムがハードウェアを含むときには、ハードウェアは、出力装置(例えば、モニタ、スピーカ又はプリンタ)と、入力装置(例えば、キーボード、ポインティングデバイス及び/又はマイクロフォン)と、出力装置と通信するプロセッサと、プロセッサと通信するプロセッサ読み取り可能な記憶媒体とを含む。プロセッサ読み取り可能な記憶媒体は、本発明を実施する段階を実行するようにプロセッサをプログラミングすることのできるコードを記憶する。本発明のプロセスは、インターネットのウェブページにおいて実施することもできるし、又は電話線を経てアクセスできるサーバーにおいて実施することもできる。
【0022】
以下に述べる動作段階の多くは、公知の近道発生装置に見られるものである。しかしながら、公知の近道発生装置は、以下に述べるように、ノード使用可能度を利用する手段を含んでいない。ここで、ノード使用可能度とは、複数ある前進リンクの内の最大のリンク使用可能度に変更されるパラメータであり、リンク使用可能度とは、リンクのコストの逆数と該リンク終端部のノード使用可能度との和である。
【0023】
本発明のこれら及び他の目的並びに効果は、添付図面を参照した本発明の好ましい実施形態の以下の説明から明らかとなろう。
【図面の簡単な説明】
【0024】
【図1】本発明の近道発生装置がどのように使用されるかを示すブロックダイヤグラム。
【図2】近道発生装置の出力がどのように使用されるかを示すブロックダイヤグラム。
【図3】電子地図の一部を表す有向グラフの例。
【図4】電子地図の一部を表す有向グラフの例。
【図5】電子地図の一部を表す有向グラフの例。
【図6】電子地図あるいは他のグラフにおける経路を発見するための例示的な方法を記載したフローチャート。
【図7】近道発生装置の動作を記述したフローチャート。
【図8A】図7の(現在の探査レベルでの動作)ステップ350を実行するための方法を記述したフローチャート。
【図8B】図7の(現在の探査レベルでの動作)ステップ350を実行するための方法を記述したフローチャート。
【図9】図8Aの(採択ノードから探査)ステップ406を実行する方法を記述したフローチャート。
【図10】図9の(使用可能度チェック)ステップ514を実行する方法を記述したフローチャート。
【図11】図8Aの(後戻り)ステップ416を実行する方法を記述したフローチャート。
【図12A】図8Bの(各採択されたノードの実際のノード優先順位レベルを決定する)ステップ420を実行する方法を記述したフローチャート。
【図12B】図12Aを説明する手助けするのに使用する、4つの前進リンクを有するノードを描写したもの。
【図12C】図12Aを説明する手助けするのに使用する、3つの前進リンクを有するノードを描写したもの。
【図13】近道発生装置および/又は経路発見システムを実行するために1つの例示的なハードウェアシステムのブロックダイヤグラムである。
【発明を実施するための形態】
【0025】
図1は、本発明の近道発生器の使用方法を示すブロック図である。図1は、入力を受けて出力を出す近道発生器22を示している。入力は、元の地図データ20を含み、出力は、増補地図データ24を含む。元の地図データ20は、地図データベースを形成する1つまたはそれ以上のファイルの集成である。地図データベースの詳細については後述する。元の地図データベース20は、モデム、電子メール、ファイル転送、ポインタ、ファンクションコール等を介して近道発生器22によって受信されうる。元の地図データ20は、プロセッサ読み取り可能な記憶媒体に記憶される。近道発生器22は、元の地図データ地図20を受け取り、後述するように、近道を加えて、増補地図データ24を生成する。増補地図データ24の生成は、新しい地図データ(すなわち、近道)を既存の元の地図データファイル20に加えることを含みうる。別の仕方として、増補地図データ24の生成は、近道発生器22によって生成された新しいデータおよび元の地図データ20からの古いデータのいくつかまたは全てを含む新しいファイルを生成することを含みうる。この結果として生ずる増補地図データ24は、近道発生器22によって生成される近道を含む1つまたはそれ以上のファイルに記憶される電子地図である。
【0026】
図2に示されるように、増補地図データ24は、経路発見システム30への入力として使用されうる。オペレーション中、経路発見システム30は、プロセッサ読み取り可能な記憶媒体に増補地図データ24を記憶する。経路発見システム30のユーザは、出発点および行き先を指定し、これらは経路発見システム30によってプロセッサ読み取り可能な記憶媒体に記憶される。経路発見システム30は、増補地図データ24を使用して指定された出発点から指定された行き先までの経路を見つけ出しうる。経路発見システム30の出力は、経路32である。経路32は、プロセッサ読み取り可能な記憶媒体に記憶され、経路発見システムのユーザへ報告される。
【0027】
近道発生器22がどのようにして増補地図データ24を生成するかについて説明する前に、電子地図の基本的な説明をする。一般的に、経路発見のために使用される電子地図は、グラフを含む。グラフは、ノードおよびリンクの集成である。ノードは、グラフ上で分岐点を意味する印である。例えば、ノードが十字路交差点の場合は、右折、左折、または直進するかの選択を行うべき場所を示す。リンクは、2つのノードの間の接続である。グラフにおけるノードAからノードBまでの経路は、ノードのリストに、このリスト中の各ノードから次のノードまでのリンクが存在する如くに記述されている。グラフにおいて、各リンクはそれに関連した単一の方向を有する。ノードの所定の対の間には、各方向において1つずつ、2つのリンクがありうる。
【0028】
図3のグラフは、プロセッサ読取り可能記憶媒体に記憶された電子地図データ構造を象徴的に理解するのに使用される。即ち、プロセッサ読取り可能記憶媒体は、前述のグラフの画像を実際には記憶しない。そうではなく、データ構造が記憶される。各ノードに付いて、データ構造は、ノードの位置(例えば、緯度と経度)と、隣接するノード(1つのリンク経由で行けるノード)のリストと、隣接するノードへ行くのに関連する色々のコストとを記憶する。本発明は、記述したのとは異なる多くの好適なデータ構造とともに使用することができる。更に、本発明は、グラフと共に使用する必要はない。本発明は、地図データベース全体、他のネットワーク、又は他の任意の好適な情報のサブセットと共に使用することができる。更に、データ構造の1つ又はそれ以上のエントリは、データのクラスタにグループ分けすることができる。データのクラスタは、関連データのグループ分けである。クラスタは性能を改善するが、本発明はクラスタなしでも使用することができる。クラスタに関するより多くの情報は、「Method of Clustering Multi-Dimensional Related Data In A Computer Database By Combining The Two Vertices of a Graph Connected by An Edge Having the Highest Score」という題の米国特許第5,706,503号に見出すことができ、この特許をここに参照する。
【0029】
図1に戻ると、近道発生器22は、元の地図データ20に作用し、増補地図データ24を生じる。第1に、近道発生器は、元の地図データ20に加える新しいリンクを作る。第2に、近道発生器は、元の地図データ20に現存するノードについて、新しい優先順位レベルを作る。新しいリンクと該新しいノード優先順位レベルは、増補地図データ24に記憶される。近道発生器22は、一般的に、電子地図内を移動するのに何のコストも変化させない。
【0030】
近道発生器22により作られる2種類のリンクがある。作られる第1の種類のリンクは、2つのより高いリンク優先順位レベルのリンク間を移動するのに使用可能なより低いリンク優先順位レベルの道路上の経路である。作られる第2の種類のリンクは、幾つかのより低いリンク優先順位レベルのリンクをスキップするより高いリンク優先順位レベルのリンクである。両方の種類のリンクを、図4と5を参照して説明する。
【0031】
図4は、電子地図の一部のグラフの例を示す。図4は、ノード210、212、214、216、218、220、222を示す。これらのノードを結合するのは、リンク230、232、234、236、238、240、242、244、246、248、250、252、254、256である。例示の目的として、リンク242、244、246は、リンク優先順位レベル5の第1のハイウェイであるとする。リンク234、236は、リンク優先順位レベル5の第2のハイウェイであるとする。更に、リンク230、232、238、240、250、252は、リンク優先順位レベル5の第3のハイウェイであるとする。最後に、リンク246、248は、リンク優先順位レベル3の幹線道路に沿った通路であるとする。例示の目的で、使用者がノード220から210へ移動したいとする。1つの従来のナビゲーションシステムは、ノード220から210へハイウェイに沿ってのみ移動する経路を決定するかもしれない。このような経路は、リンク254、242、236、232に沿った経路を含む。本発明の近道発生器は、使用者がリンク254、248、238、232に沿って移動するような近道を生じる。これを達成するため、近道発生器22は、近道リンク248を生じる。典型的には、近道248は、幹線道路に沿った2つ又はそれ以上のリンク上の移動を表す複合リンクである。リンク優先順位レベル3の2つ又はそれ以上のリンクは、リンク優先順位レベル5の近道リンク248で置きかえられる。従って、近道リンク248は、近道発生器22により生じるリンクの1つの例であり、2つのより高いレベルの道路の間を移動するのに使用可能なより低いレベルにおける道路上の経路を表す。即ち、車のドライバーは、リンク254、242、236、232上を移動するより、リンク254、248、238、232を移動することにより行き先210により速く到達する。
【0032】
図5は、複合リンクの例を示す。図5は、4つのノード270、272、274、276を示す。リンク280は、ノード270をノード272に接続する。リンク282は、ノード272をノード274に接続する。リンク284は、ノード272をノード274に接続する。この例では、リンク280、282、284は、全て同じリンク優先順位レベルの終端ノードを有する。リンクの終端ノードは、各リンクが終了するノードである。例えば、リンク284の終端ノードは、ノード276である。
【0033】
近道発生器22は、ノード270をノード276に結合する新しい複合リンク288を作っても良い。リンク288に関連付けられた終端ノードのリンク優先順位レベルは、リンク280と282の終端ノードのリンク優先順位レベルより高い。更に、ノード270と276のリンク優先順位レベルは、ノード272と274のリンク優先順位レベルより高い。リンク288は、近道発生器22により作られる複合リンクの例である。
【0034】
近道発生器22が近道をどう発見するかを説明する前に、例示の経路発見システム30が、出発点から行き先への経路をどのようにして求めるかを理解するのは有用である。
【0035】
図6は、出発点から行き先への経路を求める方法を説明するフローチャートである。図6の方法は、公知の多くの経路発見方法の1例である。本発明と共に経路を発見する他の方法を使用することもできる。ステップ302で、システムは、経路発見探査を初期化する。即ち、システムは、経路の出発点と行き先を記憶し、2つの待ち行列、出発点優先順位待ち行列と行き先優先順位待ち行列を設定する。出発点優先順位待ち行列は、ノードの整列したリスト(出発点からその各々への経路は分かっている)と、各ノードへのキーからなる。待ち行列はキーに従ってソートされる。キーを求めるのに色々の他の方法がある。1つの方法では、キーは、出発点からノードへ移動する際の既知の最低コストである。他のキーは、出発点からノードへの最低コストと、ノードから行き先へ移動する予測コストとの合計を含む。この方法に適したノードから行き先への移動コストを予測する方法は色々ある。1つの例は、直線距離に単位距離当たりの予測コストをかける方法である。即ち、ノードとリンクを無視し、ノードと行き先の間の物理的距離を求め、その距離に単位距離当たりの予測コストをかけることである。
【0036】
行き先優先順位待ち行列は、ノードを整列したリスト(その各々から行き先への経路は分かっている)と、各ノードへのキーからなる。待ち行列は、キーに従ってソートされる。行き先キーを求めるのに色々の他の方法がある。1つの方法では、ノードから行き先への分かっている最低コストの経路を使用する方法を含む。他のキーは、ノードから行き先へ移動する最低コストと、出発点からノードへの予測コストとの合計を含む。残りのコストを予測することを利用する出発点優先順位待ち行列について上述したキーは、出発点から行き先の方向へ偏った探査を生じる。同様に、行き先からの探査は、出発点の方向に偏っている。キーを計算する他の方法は、本発明の範囲内にある。
【0037】
さらに、システムは出発点探査済ノードリスト及び行き先探査済ノードリストを設定する。出発点探査済ノードリストは出発点からの経路が知られているすべてのノードのリスト、出発点から各ノードへ移動するための最低コスト、及び最低コストの経路に沿った以前のノードを維持する。行き先探査済ノードリストは行き先への経路が知られている各ノードの名前、各ノードから行き先へ移動するための既知の最低コスト、及びその最低コストで行き先へ経路に沿った次のノードの識別子を記憶する。初期化段階302が完了した後、出発点の優先順位待ち行列及び出発点探査済ノードリストは出発点を含み、行き先優先順位待ち行列及び行き先探査済ノードリストは行き先を含んでいる。
【0038】
一旦、システムが初期化されると、ステップ304において、システムは規則に従って待ち行列を選択する。本発明に適切な待ち行列を選ぶ多くの規則がある。1つのシステムでは、最小キーと関連する要素を含む待ち行列が選択される。この際、複数の待ち行列が選択されれば、いずれかを選ぶ任意の決定法が使用される。別のシステムでは、最小数の要素を含む待ち行列が選択される。待ち行列を選択するための規則の他の例は、出発点待ち行列と行き先待ち行列とを交替することを含む。即ち、一定回数の反復処理のために(又は一定期間中)出発点待ち行列を選択し、一定回数の反復処理のために行き先待ち行列に切換え、一定回数の反復処理のために出発点待ち行列に切換え戻すこと等を含んでいる。待ち行列はキーによりソートされるから、最小キーのノードは待ち行列の先頭にあるだろう。このノードは「先頭ノード」と呼ばれる。
【0039】
ステップ306では、システムは選択された待ち行列の先頭ノードに対して隣接ノードであるすべてのノードを探し、それらのノードの1つを選択する。システムはちょうど作動開始したところであるから、出発点優先待ち行列のノードだけが出発点である。隣接ノードは、他のノードを通ることなく先頭ノードへ移動又は先頭ノードから移動することができるノードである。ステップ308では、システムは、隣接ノードのための探査済ノードリスト又は選択された優先待ち行列に既知のより低いコストがあるか否かを決定する。すなわち、システムは隣接ノードと先頭ノード間の移動コストを決定し、先頭ノードのために既に知られているコストにそのコストを追加し、合計のコストを得る。そのとき探査済ノードリストに既知のより低いコストがない場合、ステップ310において、システムは探査済ノードリスト及び優先待ち行列を編集し、隣接ノード及び合計のコストを追加する。既知のより低いコストがある場合、その後、探査済ノードリストは編集されず、システムをステップ306にループバックする。ステップ310の後、その方法はステップ306にループバックし、追加の隣接ノードが探査されないか否かを決定する。隣接ノードのすべてが探査された場合、その後、その方法はステップ312に進み、先頭ノードは優先待ち行列から取り除かれる。
【0040】
ステップ314では、システムは停止状態が起こったか否かを決定する。本発明に適した多くの停止状態がある。適当な停止状態の1つの例は、同じノードが出発点優先待ち行列と行き先優先待ち行列の両方の先頭ノードであった時に停止することである。別の停止状態は、行き先優先待ち行列の先頭ノードから行き先への移動コストを加えた、出発点優先待ち行列の出発点から先頭ノードへ移動するコストが、最良の接続コストの全体コストより高いか又はそれに等しい時に停止することを含んでいる。接続ノードは行き先探査済ノードリスト及び出発点探査済ノードリストの両方に現れるノードである。接続ノードの全体コストは、接続ノードから行き先へのコストと出発点から接続ノードへのコストの和である。最良の接続ノードは最低の全体コストの接続ノードである。停止条件にまだ合致しない場合、システムはステップ304に進み、他の待ち行列を選択する。停止条件に合致した場合、システムはステップ316で経路を作る。ステップ318で、システムは経路を報告する。経路を報告することは、経路を示す地図を表示し、地図上で強調された経路の地図を表示し、方向指示を供給し、経路を説明する聴覚出力を供給し、経路を説明するデータのファイルを作り出すと共に渡し、経路を説明するデータにポインタを渡し、機能呼出しに応じて経路を説明するデータを渡すこと等を含んでいる。
【0041】
経路を構築するステップ(ステップ316)は以下の通りである。規則は幾つかの接続ノードを選択する。そのような規則の1つは最良の接続ノードを選択することである。選択された接続ノードKは出発点探査済ノードリストで調べられ、出発点からの経路上にある前のノードP1が見つけられる。P1が出発点でない場合には、その後、P1は探査済ノードリストで調べられ、前のノードP1が見つけられる。これは出発点に到着するまで続く。出発点がノードPLとして到着されたと仮定しよう。同様に、Kは行き先探査済ノードリストで調べられ、次のノードN1が見つけられる。もしN1が行き先でない場合には、その後、N1は探査済ノードリストで調べられる。これは行き先に到着するまで続く。行き先がノードNMとして到着されると仮定しよう。この点で、出発点から行き先への経路が分かった。それは、PL(出発点)からPL-1まで、PL-2まで、…、P2まで、P1まで、Kまで、N1まで、…、NM-1まで、NM(行き先)までの経路である。経路発見についてのさらなる情報は、1997年2月20日に出願された No.08/802,733の Richard Frederick Poppen、Rodney Jude Fernandez、及びJames Laurence Buxtonによる経路発見計算のためのキャッシング、及び1998年2月13日に出願された No.09/023,504の Koji Amakawa、及びEdward Joseph Suranyiによる経路発見のためのシステムで見出すことができる。
【0042】
上述したように、図6の処理は異なる優先順位レベルで行うことができる。例えば、道路は表1に示されているように異なる優先順位レベルに分割可能であり、経路発見処理は各レベル毎を使用可能である。
【0043】
図7は近道発生器22の動作を説明するフローチャートである。図7の第1ステップ348で初期化が行われる。この初期化のステップは出発点の地図データ20を読み出すと共に記憶することを含んでいる。記憶された地図データはノード、リンク、そして、幾つかの実施例では、ノード及び又はリンクのための優先順位レベルを含んでいる。ステップ350では、近道発生器22は各探査レベルで動作する。上述したように、道路網は、道路の種別に応じて、異なる優先順位レベルに分割される。近道発生器22の動作はレベル毎に行うことができる。最初、ステップ350が実行された時は、探査レベルはレベル1である。ある探査レベルで動作後、近道発生器22はより高い探査レベルがあるか否か、換言すると、現在の探査レベルが最高の探査レベル(例えば、レベル5)か否か、換言すると、現在の探査レベルが最高の探査レベル(例えば、レベル5)か否かを決定する(ステップ352)。より高い探査レベルがある場合には、その後、探査レベルはステップ354で次のレベルに変更される。したがって、ステップ350で、動作される現在の探査レベルがレベル1である場合には、その後、探査レベルはレベル2に変更され、システムはステップ350にループバックし、レベル2で動作する。レベル2での動作後、システムはステップ350〜354を通ってループし続け、レベル3、レベル4及びレベル5で動作する。(5レベルあると仮定すると)レベル5で動作後、ステップ352でシステムは動作するレベルがもうないと決定し、近道発生器22は発見された近道のリンク及び該リンクのリンク優先順位レベルを地図データに追加することを含むステップ356に進む。本質的に、ステップ356は増補地図データ24を作るステップを備えている。
【0044】
図8A及び図8Bは、図7のステップ350(ある探査レベルで動作)を記載するフローチャートを示す。すなわち、図8A及び図8Bの方法は、各々の探査レベルに対して実施される。したがって、もし、5つの探査レベルがあるならば、図8A及び図8Bの方法は5回実施される。図8A及び図8Bはステップ400−442を有する。図8A及び図8Bの方法は探査レベル0に対しては実施されない。探査レベル2−5に対して、本方法はステップ400で開始される。探査レベル1に対して、本方法はステップ422で開始される。
【0045】
ステップ400は現在の探査レベルにあるか、またはより高い、電子地図のデータベースにおける全てのノードを探すステップ及びこれらのノードをソートするステップを含む。これらのノードはソートされて、K−Dツリーを形成する。このソートは、地理的に近いノードはリストにおいて通常近くなるようにノードの直列的なリストを形成する。地図データベースにおける各々のリストとノードはリンク優先順位レベル及びノード優先順位レベルと呼ばれる属性を有している。リンク優先順位レベルは、どんな優先順位レベルのときにリンクが使用可能であるかを示している。図7の方法の開始のときに、各々に対するリンク優先順位レベルは、リンクと関連している道路の種別に基づく前述の優先順位レベルである。例外として、道路の種別が如何なる物であっても、リンクがUターン経路に関するものであり、元のノードに戻る場合には、該リンクに、0の初期のリンク優先順位レベルが付けられる。更に、ノードの初期のノード優先順位レベルはノードに接続するとリンクのリンク優先順位レベルと同じである。ステップ402において、近道発生器22は、処理すべきノードが更にあるか否かを判断する。もし、処理するノードが最早ないならば、本方法は、ステップ420(図8Bにある)へループする。もし、処理する更なるノードがあるなら、本方法はステップ404へループする。第1回目のステップ402がステップ400の後に実行される際、処理するための多くのノードがあり、したがって、近道発生器22がステップ404へ進められることが予期される。
【0046】
ステップ404において、近道発生器22は、ステップ400で見出されるノードの1つを取り上げる。ステップ406に於いて、近道発生器22は、ステップ404において取り上げられるノードから外へ向かって探査する。ステップ406における探査のステップは、図6の経路発見プロセスの変更バージョンである。幾つかの例外は、調査が現在の探査レベルと等しいか、現在の探査レベル以上か、または現在の探査レベルより1低いリンク優先順位レベルを伴うリンクに沿って探査することができるだけである。
【0047】
図9は、図8Aのステップ406(採択ノードから探査)を実現するための方法を説明するフローチャートである。図9のプロセスは、出発点から行き先までの経路を見つけ出さない。むしろ、図9の方法は、出発点から外へ向かって探査する。ステップ500において、プロセスが開始される。すなわち、出発点優先順位待ち行列および出発点探査済ノードリストが設定される。図9のプロセスにおいて、探査済ノードリストおよび優先順位待ち行列は3つの追加のフィールド、すなわち使用可能度フィールド、同じ道路を逆方向に移動して同じノードに戻ることを示すUターンフィールドおよび1つ前のノードが出発点か否かを示す先行フィールドを有する。もし、Uターンフィールドが設定されるなら(例えば、論理レベル1を格納する)、Uターンフィールドと関連するノードを含む経路はUターンを有する。もし、特定のノードに対するUターンフィールドが設定されないなら、そのノードを含む経路はUターンを含まない。
【0048】
先行フィールドは特定のノードへの最良の経路が出発点ノードからか、または他の先行ノードからであるかを信号として送るために用いられる。先行フィールドがゼロに等しいとき、特定ノードへの最良の経路は出発点ノードからである。先行フィールドが1に等しいとき(例えば、先行フィールドが設定される)、特定ノードへの最良の経路は他の先行ノードからである。先行ノードは3つの基準に合うノードである。第1の基準は、先行ノードから出発点ノードへの経路を示すリンクがあることである。第2の基準は、先行ノードから出発点ノード以外のノードへリンクがあることである。第3の基準は、出発点ノードへのリンク(第1の基準)および他のノードへのリンク(第2の基準)が現在の探査レベルか、現在の探査レベルより1つ低いか、現在の探査レベルより高いリンク優先順位レベルを持たなければならないことである。ステップ500は全ての先行ノードを優先順位待ち行列および探査済ノードリストに先行フィールドを伴って設置するステップを有する。出発点は先行フィールドを有していない。
【0049】
ステップ502において、各々のノードに対するノード使用可能度フィールドの値が最初に最大に設定される。ステップ502が完了したのち、図9のプロセスはステップ504へ進み、他の適切な隣接ノードがあるかを判断する。ステップ504は、適切な隣接ノードが、現在の探査レベルに等しいか、現在の探査レベルより1低いか、現在の探査レベルより上のリンク優先順位レベル有するリンクによって通過できる隣接ノードのみを含む点を除いてステップ306と同様である。もし、他の適切な隣接ノードがあるなら、プロセスはステップ506へ続き、そこで適切な隣接ノードの1つが取り上げられ、そして取り上げられた適切な隣接ノードが探査済ノードリストにあるか否かを判断する。もし、それが探査済ノードリストにあるなら、本方法は、ステップ510へ進みノードが探査済ノードリストにより高いコストを有するかを判断する。もし、それがより高いコストを有しているなら、本方法はステップ512へ進み、探査済ノードリストを編集し、新しいコストと新しい前のノードを探査済ノードリストへ加え、優先順位待ち行列がそれにより編集され、必要なら、Uターンフィールドが更新される。すなわち、もし、探査中の現在のノードへの移動がUターンを必要とするなら、UターンフィールドはUターンを示すために設定されなければならない。Uターンフィールドの使用が従来技術のシステムから改善を示す。ステップ512に於いて、もし、前のノード(探査済ノードリストにある)が1に設定された先行フィールドを有するなら、探査中の現在のノードに対する先行フィールドが1に設定される。ステップ512の後、プロセスはステップ514へ進む。もし、ステップ510において、探査済ノードリストにより高いコストがないことが判断されるなら、プロセスはステップ514を続ける。ステップ514において、近道発生器22は探査中の現在の隣接ノードのノード使用可能度をチェックする(図10を参照して以下に説明する)。ステップ514の後、プロセスはステップ504へ戻る。もし、ステップ506において、探査中の隣接ノードが探査済ノードリストになかったことが判断されたなら、本方法は、機能がステップ512と同じであるステップ508へ進む。このステップは、探査済ノードリストを編集し、優先順位待ち行列を編集し、もし必要なら、Uターンフィールドを更新し、そしてもし必要なら、先行フィールドを更新することを含む。ステップ508の後、本方法は、ステップ504へ戻る。
【0050】
適切なリンク優先順位レベルのリンクによって隣接ノードに進められるかを判断することに加えて、ステップ504はノードが出発点の閾値コスト内にあるかも判断する。現在の調査に対する出発点は、図8Aのステップ504において最も最近取り上げられたノードである。したがって、近道発生器22は出発点から現在考慮中の隣接ノードへいくコストを判断する。このコストが閾値より小さいと判断されると、現在考慮中の隣接ノードは、適切な隣接ノードとして考えられる。閾値はリンク優先順位レベルによって変わる。テーブル4は探査レベル2−5用の閾値の例を提供する。
【0051】
テーブル4
探査レベル 停止閾値
2 300秒
3 900秒
4 1/2時間
5 1時間

隣接ノードとみなされる現在考慮中の隣接ノードが閾値内にない場合には、その隣接ノードは適当な隣接ノードではない。従って、ステップ504のテストは、ノードが隣接ノードであるかどうか、そのノードに適当なリンク優先順位レベルのリンクが到達できるかどうか及び閾値内にあるかどうかである。
【0052】
ステップ504において適当な隣接ノードがそれ以上ない場合には、システムがステップ520に進む。ステップ520は、優先順位待ち行列から先頭のノードを除去することを含む。ステップ522において、近道発生器22は、優先順位待ち行列が空か否かを決定する。優先順位待ち行列が空でない場合には、図10の方法は、ステップ504にループバックして続行される。
【0053】
図10は、図9のステップ514(使用可能度のチェック)を実施する方法を記載するフローチャートである。図10の方法は、図9の探査時において探査中のノードが既に探査済ノードリストにある場合に実行される。ステップ550において、近道発生器22は、探査中のノードに対する2つの経路のどちらが使用不可能経路であるか否かを決定する。すなわち、ノードは既に探査済ノードリストにあるので、そのノードに到達する経路は2つある。第1の経路は、(ステップ512より前の)探査済ノードリストにより指示された経路を含む。第2の経路は、優先順位待ち行列の現在の先頭ノードを介して探査中の現在の隣接ノードに到達する経路を含む。より大きなコストを有する経路が使用不可能経路とされる。
【0054】
ステップ552において、近道発生器22は、使用不可能経路に沿って1リンクだけ、戻って、探査中の現在の隣接ノードより一つだけ前のノードへ戻る。ステップ554において、近道発生器22は、ステップ552で見つけられたノードを出る全ての前進リンクを考察する。前進リンクは、ノードを出る方向のリンクである。ステップ552で見つけられたノードからの前進リンクは、それが、より低コストを有する探査済ノードリストに既にあるノードに通じ、そのノードの前のノードがステップ552で見つけられたノード以外のノードである場合に、使用不可能であるとされる。探査中のノードからの前進リンクの少なくとも1つが使用不可能でない場合には、図10のプロセスは完了する。前進リンクが全て使用不可能である場合には、近道発生器22はステップ556に進み、ステップ552で見つけられたノードの使用可能度をゼロにリセットする。ステップ558において、近道発生器22は、その使用可能度がゼロにリセットされたばかりのノードから1リンクだけ前のノードに戻る。ステップ560において、近道発生器22は、ステップ558において戻ったノードを出る各前進リンクのリンク使用可能度を決定する。リンク使用可能度は、リンクのコストの逆数とリンクの標的ノードの使用可能度の和である。ステップ558において到達したノードの使用可能度フィールドは、複数ある前進リンクの内のリンク使用可能度に変更される。従って、移動できるリンクのいずれかが最大の使用可能度を有する場合には、ノードの使用可能度は最大にとどまる。ステップ558において戻されたノードが、その使用可能度がステップ562において変更された使用可能度を有する場合には、システムは、ステップ558にループバックし、ステップ558〜564を繰返す。これらのステップを設けた意味は、1つのノードだけが複数の使用不可能ノードに通じている場合には、そのノードもまた使用不可能であるためである。ステップ562においてノードの使用可能度が変更されなかった場合には、図10のプロセスは完了する。一般に、従来技術の近道発生器は、別の経路によってより速い方法で移動できる場所に通じているので使用可能でなかった近道又は合成リンクを発見した。従って、図10のステップは、より有効で且つより使用可能度のある近道を発見することにより従来技術に比べて大きな改良を提供する。
【0055】
図8Aのステップ406を完了した後、近道発生器22は、探査済ノードリストを記憶する。ステップ408において、探査済ノードリストの1つのノードが選択される。ステップ410において、そのノードのノード優先順位レベルが現在の探査レベルにあるか又はより高いか否かが決定される。そのノードのノード優先順位レベルが現在の探査レベルにない場合には、その方法はステップ418にループする。ノードが現在の探査レベルにあるか又はより高い場合には、ステップ412において、システムが、探査中のノードについて先行フィールド又はU−ターンフィールドが設定されているか否かを決定する。先行フィールド又はU−ターンフィールドのいずれかが設定されている場合には、その方法はステップ418にループする。先行フィールド又はU−ターンフィールドのいずれも設定されていない場合には、そのシステムはステップ414にループして、ノード使用可能度が閾値よりも低いか否かを決定する。ノード使用可能度が閾値よりも小さくない場合には、システムは後戻りステップ(ステップ416)を実行する。後戻りした後、システムは、探査済ノードリストにまだノードが残されているか否かを決定する。まだノードが残されている場合には、システムはステップ408にループバックして探査済ノードリストの別のノードを選択する。探査済ノードリストにもうノードがない場合には、システムは、ステップ402にループバックして、ステップ400において識別されたノードの組から探査するためのノードがまだあるか否かを決定する。ステップ414は、ステップ406の最新の繰り返しについて使用可能でないノードにおいて終端するリンクについての新しいリンク優先順位レベルの生成を防止する。
【0056】
図11は、図8Aのステップ416(後戻り)のプロセスを説明するフローチャートである。図11のプロセスは、ステップ408〜414において選択されているノードからスタートする。ステップ576において、近道発生器22は、該選択されているノードから1リンクだけ戻って探査する。すなわち、探査済ノードリストには、該選択されているノードに到達する経路に沿って前のノードを指示する前のフィールドがある。ステップ576は、その前のノードに戻って探査することを含む。ステップ578において、前のノードに到達するように探査されたリンクのコストが出発点又は行き先のリンク閾値内にあるか否かをテストする。それが出発点又は行き先のリンク閾値内にある場合には、図11の方法は、ステップ584にループする。リンクが出発点又は行き先のリンク閾値内にない場合には、方法は、ステップ580に進む。
【0057】
ステップ580において、近道発生器22は、前のノードに到達する探査リンクが現在の探査レベルよりも1レベル下のリンク優先順位レベルを有するか否かをテストする。有する場合には、そのリンクについて新しいリンク優先順位レベルが発生され古いリンク優先順位レベルと置き換えられる。ステップ582の後、システムはステップ576で探査されたノードが最新の探査の出発点であるか否かを決定する。出発点でない場合には、図12の方法は、ステップ576にループバックする。出発点である場合には、図12の方法は、完了する。ステップ580において、探査されたリンクが現在の探査レベルより1レベル下のリンク優先順位レベルでない場合には、その方法は、ステップ584にループする。図12の方法は、或るリンクを使用促進するプロセスと考えてもよい。
【0058】
図8Aに戻って、ステップ402において識別されたノードが全て探査されたことが決定された場合には、図8A〜8Bのプロセスはステップ420に進む。ステップ420において、近道発生器22は、ステップ400において選択された各ノードについてノード優先順位レベルを決定する。図12Aは、選択された各ノード(ステップ420)についてノード優先順位レベルを決定するプロセスを示すフローチャートである。図12Aのプロセスは、ステップ400において識別された各ノードについて実行される。
【0059】
ステップ600において、近道発生器22は、探査中の現在のノードについて全ての前進リンクを見る。図12Bは、5つの前進リンクを有するノード640を示す。図12Cは、3つの前進リンクを有するノード660を示す。各前進リンクに隣接する番号は、各リンクについてのリンク優先順位レベルを表す。ステップ602において、近道発生器22は、前進リンクが選択される最高のリンク優先順位レベルを決定する。ステップ602のために、与えられたリンク優先順位レベルにおけるリンクも、その与えられたリンク優先順位レベルより下の優先順位レベルのどれかであるとみなされてもよい。例えば、図12Bを見ると、一番上の前方レベルは、4のリンク優先順位レベルである。そのリンクもまたレベル3、レベル2又はレベル1とみなされてもよい。図12Bを見ると、レベル4における2つの前進リンクの選択があり、レベル3における2つの前進リンクの選択があり、レベル2における4つの前進リンクの選択があり、及び、レベル1における5つの前進リンクの選択がある。前進リンクの選択がある最高のリンク優先順位レベルは、レベル4である。
【0060】
図12Cを参照すると、リンク優先順位レベル1、2及び3の前進リンクがある。従って、リンク優先順位レベル1で3つ及びリンク優先順位レベル2で2つのリンクの選択がある。リンク優先順位レベル3のリンクは1つしかない。それゆえ、前進リンクの選択がある最高レベルは、リンク優先順位レベル2である。
【0061】
ステップ604において、探査中のノードが、ステップ602で決定されたリンク最高選択レベルに等しい「決定されたノード優先順位レベル」に割当てられる。ステップ606において、ステップ604で割当てられた「決定されたノード優先順位レベル」が、現在の探査レベル及び上記ノードに関連する道路のリンク優先順位レベルと比較される。ステップ604で割当てられた決定されたノード優先順位レベルが現在の探査レベルより低い場合、あるいは、上記決定されたノード優先順位レベルが上記ノードに関連する道路の優先順位レベルより高い場合、処理はステップ608に進み、そうでない場合には、処理はステップ610に進む。ステップ608において、該ノードに対する実際のノード優先順位レベルが、ステップ604において上記決定されたノード優先順位レベルに設定される。この実際のノード優先順位レベルは、プロセッサで読取り可能な記憶媒体の一時ファイルに記憶される。ステップ610において、最初にノードに関連する道路の優先順位レベルに等しく設定された該ノードの実際の優先順位レベルは、変更されない。この実際のノード優先順位レベルも、上記プロセッサ読取り可能な記憶媒体に記憶される。
【0062】
図8Bのステップ420の完了後、近道生成器22がステップ422を実行して、現在の探査レベル又はそれより高いレベルの全ノードを見つけて、ステップ400で行ったソートと同様にそれらのノードを再度ソートする。ステップ424において、近道生成器22は、ステップ422で識別されたノードの1つを選択する。ステップ426において、近道生成器22は、現在の探査レベル又はそれより高いレベルのリンク優先順位を持つリンクに到達できる、ステップ424で選択されたノードに隣接するノードの全てを見つける。ステップ428において、それら隣接するものの1つが選択される。ステップ430において、近道生成器22は、選択された上記隣接ノードからの前進リンクを探査して、現在の探査レベルまたはそれより高いレベルのリンクの選択が生じるまで更に前進リンクの探査を続ける。この選択に到達すると、複合リンクがステップ432で作られる。この複合リンクは、ステップ424で選択されたノードから始まり、リンクの選択がある場所(ステップ430参照)で終わる。
【0063】
ステップ434において、システムは、「進入ノード」について追加の複合リンクを生成する。近道生成器22は、ステップ432で作られた複合リンクの開始点である交差点に移動することを示すノードの全てを考察する。交差点に入るノードは、「進入ノード」と記される。この進入ノードから、ステップ432で作られた複合リンクの終点のノードへ至るリンクが追加される。この追加リンクは、ステップ434で作られた追加の複合リンクである。もし進入ノードの優先順位レベルがゼロであれば、ステップ434の新たな複合リンク生成を開始するために1リンクだけ後戻りする。
【0064】
ステップ436において、ステップ432及び434で作られた複合リンクは、プロセッサ読取り可能な記憶媒体に記憶される。1実施例では、ステップ436の複合リンクとステップ608の新たなノード優先順位レベルとは、一時ファイルに記憶され、且つ、ステップ356の増補地図データ24に永久的に(又は半永久的に)記憶される。別の実施例では、ステップ356を含まず、ステップ436と608とが、増補地図データ24に上記新たなリンク及びリンク優先順位レベルを記憶する処理を含んでいる。
【0065】
図8Bのステップ440において、近道生成器22は、更に探査すべき隣接ノード(ステップ426参照)があるか否かを決定する。もし、更に探査すべき隣接ノードがあるならば、プロセスはステップ428へループする。もし、更に探査すべき隣接ノードがそれ以上ないならば、プロセスはステップ442へループして、探査すべきノード(ステップ422で見つかったノードの中のノード)があるか否かを決定する。更に探査すべきノードがない場合、図8A及び8Bのプロセスは完了する。更に探査すべきノードがある場合、プロセスはステップ424へ戻るようにループする。
【0066】
理解されるように、近道生成器22は、各レベル毎のプロセスで作業する。近道生成器22は、レベル1の道路を使用して、レベル2での全ての近道を見つけ出す。次に、近道生成器22は、レベル3へ進行し、レベル2の道路(前のレベルを含む)を使用して、レベル3での全ての近道を見つける等。
【0067】
本発明の近道生成器は、ハードウェアで実施することもできるし、ソフトウェアで実施することもできるし、ハードウェアとソフトウェアとで実施することもできる。1つの実施態様では、システムは、本書に記述した機能を実行できるプロセッサ命令を含む専用のプロセッサで構成できる。本書に記述した機能を実行するように、回路を開発してもよい。1つの実施例では、本発明は、ナビゲーションシステムの一部となる。ナビゲーションシステムの例が、米国特許第4,796,151号明細書、米国特許第4,914,605号明細書、米国特許第5,311,195号明細書、米国特許出願第08/747,161号明細書に記載されており、これらの明細書に内容は、本願の参照文献として組入れられる。別の実施態様においては、本発明は、コンピュータシステムと一緒に使用するための命令を実行できる複数のプロセッサを含んでいる。コンピュータシステムにローディングする前に、ソフトウェアが、コンピュータで読取り可能な媒体(例えば、磁気フロッピー(登録商標)ディスクや磁気テープやCD−ROM)に存在する。
【0068】
図13は、近道発生装置および/または、経路発見システムを実行するのに使用することができるコンピュータシステムのハイレベルブロックダイヤグラムを図示したものである。図13のコンピュータシステムはプロセッサユニット712およびメインメモリ714を備えている。プロセッサユニット712は、単一のマイクロプロセッサを含むことができ、あるいは、多数のプロセッサシステムとしてのコンピュータシステムを形成するための複数のマイクロプロセッサを含むことができる。メインメモリ714は、プロセッサユニット712によって実行される命令およびデータを一部、格納する。本発明のシステムが、全体的にまたは、部分的にソフトウェアで実行される場合には、メインメモリ714は動作中に実行可能なコードを記憶する。メインメモリ714ダイナミックランダムアクセスメモリ(DRAM)および高速キャッシュメモリのバンクを備えることができる。
【0069】
図13のシステムは、さらに大容量記憶装置716、周辺機器718、入力装置720、可搬式記憶媒体ドライブ722、グラフィックサブシステム724および出力ディスプレイ726を備える。簡単化するために、図13に示される構成要素は、単一のバス728を介して接続されているように描かれている。しかし、構成物は、1つあるいはそれ以上の伝送手段を介して接続することができる。たとえば、プロセッサ712およびメインメモリ714はローカルマイクロプロセッサバスを介して接続することができる。そして、大容量記憶装置716、周辺機器718、可搬式記憶媒体ドライブ722およびグラフィックサブシステム724は、1つ以上の入出力(I/O)バスを介して接続することができる。大容量記憶装置716は、磁気ディスクドライブあるいは光学的ディスクドライブで実行することができるものであるが、プロセッサユニット712によって使用されるデータおよび命令を格納するための不揮発性記憶装置である。1つの実施例においては、大容量記憶装置716は、メインメモリ714へのローディングの目的で、本発明を実行するシステムソフトウェアを格納する。可搬式記憶媒体ドライブ722は、可搬式不揮発性記憶媒体、例えばフロッピー(登録商標)ディスク、に関連して動作するものであって、図13のコンピュータシステムに対してデータおよびコードの入出力を行う。一つの実施例では、本発明を実行するためのシステムソフトウェアは、そのような可搬式媒体に記憶されており、該可搬式記憶媒体ドライブ722を介してコンピュータシステムに入力される。周辺機器718は、任意の形式のコンピュータ支持装置、例えば、入出力(I/O)インターフェース、を備えることができ、該コンピュータシステムに付加的な機能を追加する。たとえば、周辺機器718は、ネットワーク、モデム、等に対してコンピュータシステムを介在させるためのネットワークインターフェースカードを備えることができる。 入力装置720は、ユーザーインターフェースの一部を与える。入力装置720は、英数字およびその他のキー情報を入力するための英数字キーパッド、あるいはマウス、トラックボール、スタイラス、あるいはカーソル方向キーといった、ポインティングデバイスを備えることができる。テクスチャおよびグラフィック情報を表示するために、図13のコンピュータシステムは、グラフィックサブシステム724および出力ディスプレイ726を備える。出力ディスプレイ726陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD)あるいはその他の適当なディスプレイ装置を備えることができる。グラフィックサブシステム724は、テクスチャおよびグラフィカル情報を受信し、ディスプレイ726に出力するための情報を処理する。出力装置726は、経路発見判断の結果を報告し、地図を表示し、方向を表し、情報確認を表示し、および/または、ユーザーインターフェースの一部であるその他の情報を表示するのに使用することができる。図13のシステムは、または、オーディオシステム728を備えており、このオーディオシステムは、マイクロフォンを備える。1つの実施例では、オーディオシステム728は、マイクロフォンからのオーディオ信号を受信するサウンドカードを備える。さらに、図13のシステムは、出力装置732を備えている。適当な出力装置の例は、スピーカー、プリンター等を含む。
【0070】
図13のコンピュータシステムに含まれる構成要素は、汎用コンピュータシステムで見られる通常のものであり、周知のコンピュータ構成要素の広いカテゴリを表すものである。このように、図13のコンピュータシステムはパソコン、ワークステーション、ミニコンピュータ、メインフレームコンピュータ等とすることができる。コンピュータはまた異なるバス形態、ネットワークプラットフォーム、マルチプロセッサプラットフォーム等を備えることができる。さまざまなオペレーティングシステムはユニックス(登録商標)、ウィンドウズ(登録商標)、マッキントッシュ(登録商標)OSおよび他の適当なオペレーティングシステムを含んで使用することができる。
【0071】
上記の本発明の詳細な記述は、説明および記述目的で提出されているものである。本発明を消尽し、あるいは開示された正確な形態に限定するつもりはなく、明らかに多くの修正および変形が上記の教示に照らして可能である。記載された説明は、本発明の原理を最も良く説明するために選択されたものであり、それによってその実質的な応用は、当業者がさまざまな実施形態で、考慮した特定の用途に適合するようにさまざまな修正を行って、最適に活用することを可能にするものである。本発明の範囲は添付の特許請求の範囲の記載によって画定されることを意図するものである。

【特許請求の範囲】
【請求項1】
電子地図に近道を追加する方法において、
上記電子地図のノード及びリンクの集合体を記憶し、該リンクにはリンク優先順位レベルが関連付けされ、
プロセッサを用いて上記ノードから外方に探査し、この探査段階は、どのノードが有用でないか決定することを含み、
上記探査中に通過されそして有用でないと決定されたノードで終了しない上記リンクの集合体に対して新たなリンク優先順位レベルを形成し、
上記新たなリンク優先順位レベルをもつ1つ以上のリンクを含む複合リンクを構築し、そして
上記複合リンクを上記電子地図に記憶し、上記複合リンクが上記近道を表わすことを特徴とする方法。
【請求項2】
上記ノードに対するノード優先順位レベルを上記電子地図に記憶し、
新たなリンク優先順位レベルを有する1つ以上の上記リンクにより接続された上記ノードの集合体に対して新たなノード優先順位レベルを形成し、そして
上記新たなノード優先順位レベルを上記電子地図に記憶する、
という段階を更に含む請求項1に記載の方法。
【請求項3】
上記探査中に通過したUターンを含む経路に対して1つ以上のUターン指示を記憶し、新たなリンク優先順位を形成する上記段階は、上記記憶されたUターン指示に関連した経路上のリンクを考慮しない請求項2に記載の方法。
【請求項4】
元の地図ファイルを受け取る段階を更に含み、この元の地図ファイルは、上記電子地図における上記ノードを含み、上記新たなノード優先順位レベルを記憶する上記段階及び上記複合リンクを記憶する上記段階は、新たなファイルを発生することを含み、そしてこの新たなファイルは、上記新たなノード優先順位レベル、上記複合リンク、及び上記元の地図ファイルからの上記電子地図の上記ノードを含む請求項2に記載の方法。
【請求項5】
複合リンクを構築する上記段階は、少なくとも探査レベルのリンクの選択まで次々のリンクに沿って通過しそしてその通過した次々のリンクに沿った移動を表す新たなリンクを構築することを含む請求項2に記載の方法。
【請求項6】
外方に探査する上記段階は、
探査の前にノードの集合体に対する使用可能度を無限大に設定し、
探査中に特定ノードへ通過するときにその特定ノードの使用可能度をチェックし、
上記特定ノードが使用可能でない場合には上記特定ノードの使用可能度を変更し、
上記特定ノードが使用可能でない場合には上記特定ノードの背後にある1つ以上のノードに対して使用可能度をチェックし、そして
上記特定ノードの背後にある上記1つ以上のノードの適当なノードが使用可能でない場合には、上記特定ノードの背後にある上記1つ以上のノードの適当なノードに対して上記使用可能度を変更する、
という段階を含む請求項2に記載の方法。
【請求項7】
新たなリンク優先順位を形成する上記段階は、
上記探査段階中に訪問されそして現在の探査レベル以上の優先順位レベルにある第1ノードグループを識別し、
経路に沿って上記第1ノードグループへと後方追跡し、そして
上記経路に沿って、優先順位が上記現在の探査レベルより1レベル低いものに等しい上記第1ノードグループへ至るリンクに対し、優先順位を現在の探査レベルに変更する、
という段階を含む請求項2に記載の方法。
【請求項8】
新たなノード優先順位を形成する上記段階は、
考慮中のノードに対して前方リンクを検査し、
上記検査段階に基づいて、選択される最大優先順位レベルを決定し、そして
上記決定された最大優先順位が現在の探査レベルより低い場合には、上記新たなノード優先順位を上記決定された最大優先順位に設定する、
という段階を含む請求項2に記載の方法。
【請求項9】
前方リンクを検査し、最大優先順位レベルを決定しそして上記新たなノード優先順位を設定する上記段階は、現在の探査レベルにある各ノードに対して実行される請求項8に記載の方法。
【請求項10】
上記外方に探査し、新たなリンク優先順位レベルを形成し、新たなノード優先順位レベルを形成し、そして複合リンクを構築する上記段階は、複数の探査レベルの各々において実行される請求項2に記載の方法。
【請求項11】
上記現在の探査レベルにおいて上記探査段階が実行される前に現在探査レベルにおいて各ノードを識別する段階を更に含み、上記探査段階は、この識別段階で識別された各ノードにおいて実行される請求項10に記載の方法。
【請求項12】
プロセッサ読み取り可能なコードが実施されたプロセッサ読み取り可能な記憶媒体において、上記プロセッサ読み取り可能なコードは、
電子地図のノード及びリンクの集合体を記憶し、該リンクにはリンク優先順位レベルが関連付けされ、
プロセッサを用いて上記ノードから外方に探査し、この探査段階は、どのノードが有用でないか決定することを含み、
上記探査中に通過されそして有用でないと決定されたノードで終了しない上記リンクの集合体に対して新たなリンク優先順位レベルを形成し、
上記新たなリンク優先順位レベルをもつ1つ以上のリンクを含む複合リンクを構築し、そして
上記複合リンクを上記電子地図に記憶し、上記複合リンクが近道を表わす、という段階を含む方法を実行するようにプロセッサをプログラミングするためのものであることを特徴とするプロセッサ読み取り可能な記憶媒体。
【請求項13】
入力デバイスと、
プロセッサ読み取り可能な記憶媒体と、
上記入力デバイス及び上記プロセッサ読み取り可能な記憶媒体と通信するプロセッサとを備え装置において、上記プロセッサ読み取り可能な記憶媒体は、
電子地図のノード及びリンクの集合体を記憶し、該リンクにはリンク優先順位が関連付けされ、
プロセッサを用いて上記ノードから外方に探査し、この探査段階は、どのノードが有用でないか決定することを含み、
上記探査中に通過されそして有用でないと決定されたノードで終了しない上記リンクの集合体に対して新たなリンク優先順位レベルを形成し、
上記新たなリンク優先順位をもつ1つ以上のリンクを含む複合リンクを構築し、そして
上記複合リンクを上記電子地図に記憶し、上記複合リンクが近道を表わす、という段階を含む方法を実行するように支援プロセッサをプログラミングするコードを記憶することを特徴とする装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図12C】
image rotate

【図13】
image rotate


【公開番号】特開2013−19910(P2013−19910A)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願番号】特願2012−232184(P2012−232184)
【出願日】平成24年10月19日(2012.10.19)
【分割の表示】特願2000−587265(P2000−587265)の分割
【原出願日】平成11年12月8日(1999.12.8)
【出願人】(501233617)テレ アトラス ノース アメリカ インコーポレイテッド (1)
【Fターム(参考)】