説明

経路発見計算のための複数のコストレベルの使用

【課題】電子地図もしくは他のネットワークの特定のカテゴリの要素を回避することができ、電子地図もしくは他のネットワークを使用して経路を計算できるシステムを提供する。
【解決手段】
処理装置で読取可能に表現したネットワークにおいて経路を計算するためのシステム。このシステムは認識されたコストを最小にできる。コストには時間、距離、支払った通行料、曲がり易さ、風景の質、処理時間、待ち時間等が含まれる。経路発見システムのユーザは、回避するための一つ以上の要素のカテゴリを選択できる。例えば、道路地図において有料道路を避けたいと望む可能性がある。回避する要素に関連するコストには少なくとも二つの表現のレベルが含まれる。二つの表現のレベルには第1レベルおよび第2レベルが含まれ、第2レベルが第1レベルよりも優先される。経路発見システムはコストを最小にする経路を決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は経路発見計算に複数のコストレベルを使用するシステムに関する。
関連出願への相互参照
本出願は下記の出願に関連する。
1996年11月25日出願のリチャード・エフ・ポッペンによる米国特許出願「ネットワーク内の領域の出口および入口を決定する方法」(米国特許出願No.08/756,258)。この関連出願を本出願の一部を構成するものとしてここに援用する。
【背景技術】
【0002】
発明の背景
発明の分野
関連技術
コンピュータは、システムの高度な研究および利用を可能にするためにそのシステムをモデル化するというアイデアに変革をもたらした。その一例は、システムをネットワークとしてモデル化する事である。最も一般的な意味では、ネットワークは相互接続および分岐のための多くの経路を含むものであると定義されている。判断を必要とする多くのシステムはネットワークとしてモデル化できる。例えば、製造工程もしくは医学療法を提供するシステムは、決定点および決定点間のアクションから成るネットワークとしてモデル化できる。このネットワークを電子的な形で表し、処理装置が読取可能な記憶媒体に記憶することができ、これにより、このネットワークモデルを用いてシステムを研究または使用するためのソフトウェアの開発を可能にする。
電子的な形で記憶できる有益なネットワークの一例として電子地図がある。これは、地理学的に参照される、物理的、社会的、もしくは経済的なシステムを量的に表した電子データを含む。電子地図に含まれる情報の範囲には制限が無く、例えば、要素間の距離、移動時間、割り当て番号(lot number)、税金情報、ツーリスト情報、処理時間、待ち時間などを含むことが出きる。更に、地図をコンピュータ上にファイルとして記憶することで、無制限のアプリケーションソフトによるそのデータの操作を可能にする。
電子地図の一利点は、地図の種々の部分に関連するコストを記憶および決定できることである。コストとは最小化もしくは最大化できる変数である。コストは必ずしも金銭的なコストであるとは限らない。コストとは最小化または最大化しなければならない何かである。通常、コストは整数で表される。コストは実数で表されることもある。コストの例として、時間、距離、支払った料金、曲がり易さ、風景の質などがある。
電子地図は、他のネットワークと同様に、経路発見に使用できる。経路発見とは始点と終点との間のルートを計算する方法である。いくつかのシステムは推奨ルートを計算し、地図表示装置上に推奨ルートを強調表示することによって、もしくは曲がりがあるたびに指示を出すことによって、またはその両方によって運転者を誘導する。
経路発見システムは、ある規定の基準に従って最も望ましいルートを発見することによって終点までの推奨ルートを計算する。これらの基準は運転者によって規定されるか、製造時にデフォルトとして設定される。システムは、多くの場合、あるコスト、例えば運転時間を最小化(または最大化)する経路を発見するために使用される。経路発見システムの使用者にとって有用である一特徴として、電子地図の特定の要素を回避する機能が挙げられる。使用者は特定の種類の道路、曲がり、交差点などを回避したいことがある。例えば、特定の地理領域において、非有料道路および有料道路が存在するとする。使用者は、たとえ運転時間が長くなったとしても有料道路を回避する経路を発見したいことがある。或いは、使用者は、フェリー、トンネル、もしくは橋などの使用も避けたいことがある。従来、この望みは、望ましくない道路(または地図中の他の要素)の単位距離当りのコストを極めて高くすることで実現していた。そのような方法では、望ましくない道路(または要素)は、その道路を避けることによりコストが非常に大きくなる場合にのみ使用される。
【0003】
【特許文献1】特開平8―292058号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
電子地図中の望ましくない要素のコストを大きくする手法は、望ましくない要素の使用を回避する手段として有効ではないことが分かった。第1に、道路線分のコストを大きくしても、可能な限り望ましくない道路が回避されることが保証されるわけではない。そのような特定の種類の道路は、更にコストが大きい他の道路上のルートを避けるために依然として選択されることがある。第2に、望ましくない道路を回避するための従来の技術は、経路が望ましくない道路上の移動を必要とする場合に、この望ましくない道路上の移動が最小にされることが保証されるわけではない。最後に、従来のように、高いコストを表すために極めて大きな整数を使用しようとすると、多くのコンピュータ内でオーバーフローを起こす可能性がある。同様に、大きな実数を使用すると、その意義が失われてしまうことがある。
従って、電子地図もしくは他のネットワークの特定のカテゴリの要素を回避することができ、電子地図もしくは他のネットワークを使用して経路を計算できるシステムが必要である。
【課題を解決するための手段】
【0005】
発明の要約
本発明は、大まかに説明すると、複数のコストレベルを使用してネットワークにおける経路を計算するシステムを提供する。どの要素を回避するべきかの判断が行われる。少なくとも一つの要素に関連するコストには二つ以上の表現のレベルが含まれる。二つ以上の表現のレベルには第1レベルおよび第2レベルが含まれる。その後、システムは経路発見探索を実行する。
一実施例においては、システムには、処理装置で読取可能に表現したネットワークにおける要素の第1集合を識別するステップと、要素の第1集合の第1の要素に関連した第1コストを作成するステップとが含まれる。第1コストには少なくとも二つの表現のレベルが含まれる。次いで、システムは、作成した第1コストを使用して経路発見探索を実行する。上記識別ステップは、経路発見システムの使用者からの入力を受け付けることであったり、経路発見システムにより自動的に行われたりすることができる。二つの表現のレベルには第1レベルおよび第2レベルが含まれ、第2レベルは第1レベルよりも優先される。他の例には、回避する要素の追加集合を識別すること、およびこれらの追加要素のための、三つの表現のレベルを含んだコストを作成することが含まれる。三つの表現のレベルには、第1レベル、第2レベルおよび第3レベルが含まれる。第3レベルは第1レベルおよび第2レベルよりも優先される。
一実施例においては、本発明は、始点から終点までの経路発見探索を実行するが、これには第1ノードから第2ノードまでの第1経路を発見するステップが含まれ、この第1経路には一以上のリンクの第1集合および一以上のコストの第2集合が含まれる。経路発見探索には更に、第1ノードから第2ノードまでの第2経路を発見することが含まれ、第2経路には一以上のリンクの第2集合および一以上のコストの第2集合が含まれる。コストの第2集合の内の少なくとも一つには二つの表現のレベルが含まれる。経路発見探索では、一つ以上のコストの第1集合の方が一つ以上のコストの第2集合よりも効率的なため、第2経路ではなく第1経路が選択される。
処理装置で読取可能に表現したネットワークは、ノードの識別、ノード間のリンクの識別、およびリンク上を移動するためのコストの識別によって作成することができる。ノード、リンク、およびコストを表すデータは処理装置で読取可能な記憶媒体上のデータベース内に記憶される。記憶されたコストの内の少なくとも一つには、二つの表現のレベルが含まれる。
本発明の、これらのおよび他の目的および利点は、図と共に実施例を示す以下の詳細な説明から明らかになるだろう。
【発明の効果】
【0006】
本発明のシステムによれば、電子地図もしくは他のネットワークの特定のカテゴリの要素を回避することができ、電子地図もしくは他のネットワークを使用して経路を計算できる。
【発明を実施するための最良の形態】
【0007】
詳細な説明
図1は、本発明の実施に使用可能なハードウェアアーキテクチャの一例を示すブロック図である。ハードウェアはCPU12を含む。このCPU12は、インテル80486互換CPU、ペンティアム(登録商標)プロセッサ、もしくはその他の適切なプロセッサであることができる。CPU12は、CPUバス14に接続されるアドレス、データ、およびコントロールバスラインを有する。また、CPUバス14は、いずれもシステム制御論理回路20によって制御されるキャッシュメモリ16および主記憶装置18に接続される。システム制御論理回路20はCPUバス14およびコントロール、アドレス、データバスラインから成るバス22に接続されている。システムBIOSの入ったROM24および周辺装置26がバス22に接続されている。周辺装置26はフロッピー(登録商標)、ハードディスクドライブ、CD−ROMドライブもしくはその他の周辺装置を含むことができる。キャッシュメモリ16、DRAMメモリ18、ROM24、CD−ROM、およびフロッピー(登録商標)ディスクはいずれも処理装置で読取可能な記憶装置(または媒体)である。本発明の種々の実施例は、様々な量のソフトウェアを使用して記載してある方法を実行する。このソフトウェアは、処理装置で読取可能な、任意の適切な記憶装置に存在することができる。図1には描かれていないが、このハードウェアは、表示装置およびキーボードもしくはポインティングデバイス等の入力装置を含む。図1のシステムは本発明に使用可能な一つのプラットフォームを示す。他の多くのプラットフォームであってもよく、例えば、アップルコンピュータ社から入手可能なマッキントッシュベースのプラットフォーム、異なるバス構造を有するプラットフォーム、ネットワーク型プラットフォーム、マルチプロセッサプラットフォーム、その他のパーソナルコンピュータ、ワークステーション、メインフレーム、ナビゲーションシステム等である。
電子地図は、地図を構成するのに必要なデータを含んだ一つ以上のコンピュータファイルに記憶される。このデータには、経度および緯度データ、住所、距離、方向転換の制限、運転時間、高速道路出口番号、土地の商用利用の説明等を含むことができる。上述の情報は電子地図中に見ることができるが、上述した情報の一部分のみもしくは他の情報を有する電子地図を作成することが可能である。電子地図を表すコンピュータファイルは処理装置で読取可能な記憶媒体に記憶される。
通常、経路発見に使用する電子地図にはグラフが含まれる。グラフはノードとエッジの集合である。ノードはプロパティを有するオブジェクトで、グラフ上の決定点を表わす。エッジは二つのノード間の接続である。グラフ中のノードAからノードBへの経路は、ノードのリストとして記載される。このリストは、リスト中の各ノードから次のノードへのエッジが存在するように記載される。有向グラフ(directed graph)とは、グラフ内の各エッジがそれに関連する単一の方向を有するグラフである。ある一組のノード間には、各方向に一つづつ、合計で二つのエッジがある場合もある。有向グラフ中では、エッジはリンクと呼ばれる。重み付きグラフとは、グラフ内の各リンク(またはエッジ)がそれに関連するコストを有するグラフである。他の方法には、コストをノード、またはノードおよびリンクと関連付けたり、コストをグラフの他の要素と関連付けたりすることが含まれる。非有向グラフ(undirected graph)とは、グラフ内の各リンクが双方向性であるグラフである。非有向グラフは、グラフ内の各リンクが、端点は同じであるが向きが異なる二つのリンクを表している有向グラフであると考えることができる。
【0008】
図2Aは有向グラフの一例を示す。このグラフは、東行きの一方通行路50および対面通行路52を示し、いずれの通行路も対面通行路54と交差している。道路50は交差点60で道路54と交差する。道路52は交差点70で道路54と交差する。交差点60には二つのノード62および64がある。ノードの頭は丸である。ノードの後部は直線尾部である。丸はノードがどこに位置するかを表し、尾部は移動者がどこから来てそのノードへたどり着くであろうかを表す。見やすくするため、ノード記号は実際の交差点からずらした位置にある。例えば、ノード62は、道路54上における、交差点60へ向かう北行きの移動を表す。ノード64は、道路50上における、交差点60へ向かう東行きの移動を表す。交差点60には西行きの移動を表すノードは無く、これは道路50が東行きの一方通行路であるからである。そのため、道路54上を北へ進む移動者は、交差点60に着くと右折することしかできない。ノード72は、道路54上を南へ移動することで交差点70に着くことを表す。ノード74は、道路52上を東へ移動することで交差点70に着くことを表す。ノード76は、道路52上を西へ移動することで交差点70に着くことを表す。
リンクはノード間における経路を表す。例えば、ノード64から、移動者は交差点60を右折することで道路54へ入ることができ、また、道路50上を直進することができる。リンク86は、道路50上を東を向いて交差点60から出発し、交差点60で右折して道路54上を南へ進む移動を表す。このようにして、リンク86はノード64とノード72とを接続する。リンク88は、ノード64を道路50上の次のノード(図2A上に示されていない)と接続し、道路50に沿って東に進み、交差点60を曲がらずに直進する移動を表す。リンク89は、道路54上を北を向いて交差点60から出発し、交差点60を右折して道路50上を東へ進む移動を表す。従って、リンク89はノード62と道路50上の次のノード(図2A上に示されていない)とを接続する。図2Aはノード62と64についてのリンクのみを示す。全てのノードに対するリンクを描くと、有向グラフが大変込み合い、判読が困難になる。そのため、この有向グラフを簡略化して、描き直したものが図2Bである。
【0009】
後述の説明を簡略化するため、図2Bでは同一の交差点におけるノードの全て一つのノードに統合してある。(実際に使用する場合、本発明は図2Aもしくは図2Bと同様のグラフを使用できる。)従って、ノード100はノード64およびノード62を表す。ノード102はノード72、74および76を表す。ノードの尾部が描かれていない。リンクは、移動可能な方向を示すのに使用される。リンク104は交差点70から交差点60への移動を示し、リンク106は交差点60から交差点70への移動を示す。方向転換の制限および一方通行路はリンクの有無で表す。
図2Bの有向グラフを、処理装置で読取可能な記憶媒体に記憶されたデータ構造を抽象的に理解するために使用する。処理装置で読取可能な記憶媒体は、実際に有向グラフのイメージを記憶するわけではなく、データ構造を記憶する。データ構造内の各項目はノードを表す。データ構造は、各ノードについて、ノードの位置(例えば緯度および経度)、隣接するノード(一つのリンクを経由して移動できるノード)のリスト、および隣接するノードへの移動に関連する種々のコストを記憶する。本発明は、前述したデータ構造とは異なる、多くの適切なデータ構造でもうまく実施できるものと考えられる。更に、本発明は有向グラフについての使用に限定されるものではない。本発明は地図データベース全体、もしくは他の適切な情報の部分集合(subset)に使用できる。更に、データ構造内の一つ以上の項目はデータのクラスタ内に集められることができる。データのクラスタとは関連データの集まりである。クラスタは性能を向上させるが、本発明はクラスタ無しで使用できる。
【0010】
図3は、ネットワークの一部分についての有向グラフを表す。この有向グラフには、5個のノード(Q、P、R、SおよびT)および6個のリンク(130、132、134、136、138および140)が含まれる。各リンクはそのリンクに隣接して数字が示されている。この数字はそのリンクに沿った移動のコストを表す。リンク130はノードQをノードPに接続し、そのコストは4である。リンク132はノードQをノードRに接続し、そのコストは1である。リンク134はノードQをノードTに接続し、そのコストは2である。リンク136はノードPをノードRに接続し、そのコストは2である。リンク138はノードRをノードSに接続し、そのコストは2である。リンク140はノードSをノードTに接続し、そのコストは2である。
ノードQからノードTへ移動するには三つの経路がある。第1経路にはリンク134に沿ってノードQからノードTへ直接移動することが含まれる。この経路はQTとして識別され、コストは2である。第2経路にはノードQからノードRとノードSを経由してノードTに至る移動が含まれる。第2経路はQRSTとして識別される。経路QRSTはリンク132、138、および140に沿っており、総コストは5である。総コストは、経路に沿って移動したときに通る各リンクのコストを合計することで計算される。第3経路には経路QPRSTが含まれ、総コストは10である。
コストを各リンクに別々に割り当てることができる。効率化のため、コストの割り当てには体系だった方法が使用される。例えば、電子地図は通常、道路の種類(または分類)についての比較的小さな集合および曲がりの種類についての比較的小さな集合を使用する。このシステムは、各種道路および各種方向転換に対して、単位長さ当りのコストを割り当てる。次いで、リンクの長さ(例えば距離)を発見し、この長さに道路の種別に対応する単位長さ当りのコストを乗じ、リンクに沿った曲がりのコストを加えることでリンクのコストが計算される。コストには、追加コスト(例えば通行料)もしくはコストの割り引(例えば風景の価値)も含まれることがある。実施される方法にもよるが、コストの計算および割り当ては、データファイルの構築時に行われる。或いは、動作時にコストが決定される。
【0011】
通常の経路発見システムはコストを整数もしくは実数として表す。しかしながら、本発明は複数のコストレベルを使用する。複数レベルのコストの使用は、コストは「非標準演算(nonstandard arithmetic)」と呼ばれる概念により数学的に正当化される。
経路発見計算において使用される通常(または標準)の演算は、整数の集合Zを使用する(または実数の集合R)(この型の注釈の繰り返しを避けるため、整数についてのみを述べる。しかし、実数についての解釈もまた正しい。)。「非標準演算」とは、*Zと呼ばれるより大きな数の集合、即ち「非標準整数(nonstandard integers)」についての演算である。非標準整数の集合は以下のような性質を有する。(1)*Zには標準整数が含まれる(Z⊂*Z)。(2)*Zには「無限整数(infinite integers)」が含まれる。つまり*Zには、Zの任意の要素nに対してz>nとなるような複数の要素zが含まれる。(3)*Zは、数学者の間で環(ring)と呼ばれる構造を成している。つまり、*Zにおいては、加算、減算および乗算の通常の特性が全て適用できる。(4)整数の集合Zは*Zの「部分環(subring)」である。つまり、Zにおける整数の加算、減算および乗算の結果は、*Zにおけるそれと同一である。
表記を容易にするため、特定の無限整数をωで表す。ωは、*Zの一要素であり、Zのいかなる要素nよりも大きい。
本発明は非標準コストをanω+an−1ωn−1+...+aω+a0として表す。二つの非標準整数の加算は以下のように行われる。
【0012】
【表1】

【0013】
同様に、非標準整数aω+a0に整数xを乗算した結果はxaω+xa0に等しい。非標準演算の下では、二つのコストA=anω+an−1ωn−1+...+aω+a0およびB=bnω+bn−1ωn−1+...+b1ω+b0を、aj≠bjとなるような最大のjを発見することにより比較する。そのようなjがあり、aj>bjである場合、A>Bである。aj<bjである場合、A<Bである。aj≠bjとなるようなjが無い場合、A=Bである。
一実施例においては、ある固定の最大値までのωのべき乗がコストとして使用される。例えば、全てのコストにはωおよびωのみが使用される。他のコストモデルには、より高次の、ωのべき乗が使用される。ωのべき乗の最大数値を固定して使用することにより、非標準値はコンピュータで整数の配列として表される。使用するωの最大値がωである場合、コストは(n+1)個の整数の配列(array)で表すことができる。配列[a[n],a[n−1],...,a[1],a[0]]が値a[n]ω+a[n−1]ωn−1+...+a[1]ω+a[0]]を表すようにすると、コンピュータでの使用が容易になる。当然のことながら、非標準数字を表す方式は他にも存在する。
このような非標準コストの表現による二つのコストは、対応する要素およびこれらの各配列を加えることによって加算される。即ち、二つのコストが[a[n],a[n−1],...,a[1],a[0]]および[b[n],b[n−1]1,...,b[1],b[0]]で表される場合、合計は配列[a[n]+b[n],a[n−1]+b[n−1],...,a[1]+b[1],a[0]+b[0]]で表される。同様に、二つの非標準コストの表現を比較するには、n番目の要素から0番目の要素に向かって、差異を発見するまで連続的に配列値が比較される。対応する二つの値の中で異なるものが無い場合、二つのコストは等しい。例えば、上述の二つの配列において、最初に、a[n]がb[n]と比較される。二つの値が異なる場合、より大きな値を有する配列が、より大きなコストになる。二つの値が等しい場合、続いてa[n−1]とb[n−1]とが比較される。配列Bがa[n]に対応する値を有さない場合、即ち、b[n]は存在しない、もしくはb[n]=0である場合、配列Aがより大きなコストになる。配列で表現された非標準整数を標準整数xで乗算する場合、乗算結果は配列[xa[n],xa[n−1],...,xa[1],xa[0]]で表される。
上記の原則を使用すると、経路発見手順のためのコストは複数の表現のレベルを有し、表現の各レベルは配列内の異なる要素となる。配列[a[n],a[n−1],...,a[1],a[0]]において、表現の第1レベルはa[0]であり、表現の第2レベルはa[1]であり、表現の第3レベルはa[2]であり、...表現の第(n+1)レベルはa[n]である。配列内のそれぞれの値は、コストの表現のレベルの大きさに対応する。即ち、配列要素a[n]は表現の(n+1)番目のレベルの大きさである。より上位の表現のレベルは、より下位の表現のレベルよりも優先される。例えば、表現の第2レベルに0でない最大の大きさを有するコストは、表現の第1レベルに0でないの最大の大きさを有するコストよりも常に大きい。数学的に見ると、集合Zのメンバであり、0でない、全てのaおよびbに対して、aω>bωn−1となる。
【0014】
図3のネットワークが電子地図であり、各リンクが電子地図内の道路を表すと仮定する。道路は種々の道路に分類されている。例えば、路地、住宅道路、幹線道路、高速道路、有料道路、およびフェリーなどに分類されている。ユーザが本当に必要な時以外は有料道路を回避したい場合、ユーザは、有料道路以外の全ての道路タイプが、表現の第1レベルに0以外の大きさを有し、他の全てのレベルに0の大きさを有するコストを含むようにコストモデルを作成できる。この場合、有料道路の表現の第2レベルは0以外の大きさを有するようにする。例えば、コストが運転時間であり、特定の有料道路(リンク)の線分が5運転時間単位の運転時間を有する場合、コストは5ω+0もしくは配列[5,0]で表される。ユーザが有料道路を回避するよりも更にフェリーを回避したい場合、コストモデルには、フェリーのコスト(フェリーによる横断時間を10とする)を10ω+0ω+0もしくは[10,0,0]で表したコストが含まれる。
図3において、リンク132および134は有料道路を表し、ユーザが有料道路を回避したいと望んでいると仮定する。コストモデルは、二つの表現レベルを用いて設定される。リンク132のコストは[1,0]となり、リンク134のコストは[2,0]となる。経路QTのコストは[2,0]となり、経路QRSTのコストは[1,4]であり、経路QPRSTのコストは[0,10]である。この例において、最小コストを有する経路はQPRSTである。QPRSTの総コストが最小であるため、この経路が最も効率的な経路であると定義される。
2番目の例では、ユーザが有料道路を回避したいと望み、また、有料道路を回避するよりも更にフェリーを回避したいと望むと仮定する。リンク134が有料道路を表し、リンク132がフェリーを表すと仮定する。コストモデルは三つの表現レベルにより設定される。リンク134のコストは[0,2,0]として表される。リンク132のコストは[1,0,0]として表される。経路QTに沿った移動のコストは[0,2,0]に等しく、QRSTに沿った移動のコストは[1,0,4]である。即ち、経路QRSTには横断リンク132、138および140が含まれる。これらのリンクのコストの合計は、[1,0,0]+[0,0,2]+[0,0,2]=[1,0,4]である。経路QPRSTに沿った移動のコストは[0,0,10]である。最短の経路は再びQPRSTとなる。
3番目の例においては、ユーザが有料道路の使用を避けたいと望み、リンク130、132および134は全て有料道路であると仮定する。コストモデルは二つの表現のレベルで設定される。経路QTに沿った移動のコストは[2,0]である。経路QRSTに沿った移動のコストは[1,4]である。経路QPRSTに沿った移動のコストは[4,6]に等しい。この場合、全ての経路には有料道路上の移動が含まれるため、有料道路の使用を最小限に抑えることが目標となる。この目標は三つのコストの全てを比較することで達成される。上述のように、三つのコストを比較するためには、まず始めに最も高次のωのべき乗もしくは配列内で最大の指数(index)を有する要素に注目する。本事例において、経路QRSTのコストの表現の第2レベルが1であるため、この経路のコストが最小である。経路QTについてのコストの表現の第2レベルの大きさは2であり、経路QPRSTについてのコストの表現の第2レベルの大きさは4である。
複数のコストレベルを使用することにより2次的な最小化を実行できる。例えば、一つのリンクが実際には他の多くのリンクの集合を表すことにより図を簡略化できる場合がある。この集合リンクを作成する場合、コストの合計を表現の第2レベルとして記憶できる。表現の第1レベルは集合における多数のリンクの合計を保持するのに使用される。従って、コストが2である二つのリンクを足し合わせた場合、この集合の合計結果は4ω+2即ち[4,2]となる。4ωは二つのコストの合計を表す。+2は足し合わせたリンクの個数を表す。このタイプのコストモデルを使用すると、経路発見システムは、計算された経路におけるリンクの総数を最小にすることにより、同一コストを有する複数の経路間のコストを最小化することができる。他の方法では、リンクの個数を実際のコストよりも上位の表現のレベルに置くことで、コストを最小化する前にリンクの個数を最小化できる。
他の方法には、コストのノルム(norm)を使用することが含まれる。コストの値がA=anω+an−1ωn−1+...+aω+a0である場合、ノルムはan+an−1+...+a+a0と定義される。あるリンクのコストのノルムがこのリンクの運転時間(または他のタイプのコスト)の見積もりを提供するようにコストを設定できる。しかし、それ自身の大きさは必ずしも運転時間と同じである必要はない。その結果、コストを最小化するために他の要因を使用することが可能となる。例えば、任意の地理的領域がいずれも運転時間が10である二つの高速道路リンクを有すると仮定する。片方の高速道路は景色が不快で、多くのくぼみがあり、もう一方の高速道路は滑らかな道路であり、美しい景色が見える。経路発見システムが良い方の高速道路の使用を促すことが望まれるだろう。両方のコストを[10,0]と表すのではなく、良い方の高速道路を2ω+8もしくは[2,8]として表し、不快な高速道路を7ω+3もしくは[7,3]と表す。
【0015】
図4は、複数のコストレベルを使用する経路発見の手順を記載するフローチャートを示す。ステップ150には、コストレベルが異なる要素を識別することが含まれる。これには一つ以上の、回避するべき要素(例えばリンクまたはノード等)の集合を特定することが含まれる。一実施例においては、経路発見システムのユーザは一つのコストレベルのみを含む標準の地図データベースを使用する。ユーザは起動時に、経路発見に先立って、どの要素が回避されるべきかを問われる。この問い合わせは自由に変更できユーザが任意の回避要素を選択できたり、特定のカテゴリの要素を回避するかどうかがユーザに問われるようにすることができる。カテゴリはネットワークデータベース固有の予め定義されたのカテゴリ(例えば、有料道路、幹線道路、住宅道路)もしくはユーザが定義した道路である。或いは、経路発見手順が回避するカテゴリを自動的に選択する。例えば、経路発見システムは、常に有料道路を回避するシステムとして販売されるであろう。或いは、異なるコストレベルを含むように地図データベースを作成し、これによって回避する要素を前もって選択するようにもできる。ステップ150には、一つのカテゴリの要素、または多くのカテゴリの要素を識別することを含むことができる。
【0016】
他の実施例には、好ましいリンクのカテゴリを選別することが含まれる。即ち、解析を反転できる。表現の第2レベルを有するコストの方が表現の第1レベルを有するコストよりも少ないとみなされるであろう。或いは、全ての好まくないコストは表現の第2レベルを含み、好ましいコストは表現の第1レベルのみを含むであろう。
ステップ152において、システムは新たなコストレベルを作成する。コスト構造がまだ設定されていない場合、コスト構造を設定する必要がある。ステップ150において識別された各カテゴリについて、コスト情報が表現の第1レベルよりも上位の表現のレベルに0以外の大きさを含むようにデータを配列内に挿入する。例えば、ステップ150において、ユーザが、有料道路を唯一の回避すべきカテゴリとして識別した場合、ステップ152において、有料道路についてのコストは表現の第2レベルに0以外の大きさを有するように設定される。ユーザが、ステップ150において、有料道路とフェリーを異なるレベルの要素として、即ちフェリーを有料道路よりも回避するように識別した場合、ステップ152において、有料道路は表現の第2レベルに0以外の大きさを有するように設定され、フェリーは表現の第3レベルに0以外の大きさを有するように設定される。ステップ152には上述の配列を作成しこれを埋めることが含まれる。システムが、一つの表現レベルのみを有するコストを既に含んでいる既存の地図データベースにより実行されている場合、これらのコストの内のいくつかは表現の第2レベルに0以外の大きさを有する新たなコストと置き換えられる。一つの方法では、新たなコストを含む新規の地図データベースを作成できる。新規の地図データベースは処理装置で読取可能な記憶媒体内に記憶される。別の方法では、元の地図データベースは未編集のまま残り、新たなコストは追加のデータ構造に記憶される。ステップ152の後、システムはステップ154において経路発見探索を実行する。
【0017】
図5は電子地図の一部分の有効グラフを表す。描かれた有効グラフには十個のノード(A,B,C,D,E,F,G,H,J,O)およびこれらノード間の種々のリンクが含まれる。リンクは、それぞれそのリンクに隣接して数字が示されている。この数字は、リンクに沿った移動のコストを表す。
図4中のステップ154を更に詳細に説明するために図5を図6と共に使用する。例えば、ユーザが、図4のステップ150において、有料道路を唯一の回避すべきリンクのカテゴリとして識別したと仮定する。この例で、ノードHからノードDを接続するリンク(反対方向の二つのリンク)が有料道路の一部分であり、残りのリンクが有料道路ではないと仮定する。元の地図データベースには図5に示すコストが含まれていたとする。ステップ152において、有料道路のコスト構造は二つの表現のレベルを含むように変換される。ノードHからノードDまで移動するためのリンクのコストは、4ω+0または[4,0]で表される。
【0018】
図6は経路発見計算(経路発見探索とも呼ばれる)を説明するフローチャートである。図6の経路発見計算は、Edsger W. Dijkstra による方法に少なくとも部分的に基づいており本発明に使用可能な多くの経路発見方法の内の一つにすぎない。Dijkstraの方法を論じている参考文献として、M.N.S. SwamyとK. Thulasiramanらによる「Graphs, Networks, and Algorithms, John Wiley & Soas (1981)」が挙げられる。システムは、ステップ202において経路発見計算を初期化する。即ち、システムは、経路の始点および終点を記憶し、二つのキュー、即ち始点優先キュー(origin priority queue)および終点優先キューを(destination priority queue)セットアップする。始点優先キューは、始点からの経路がわかっているノードを整列したリスト、および各ノードについてのキーから成る。このキューはキーに従ってソートされる。キーの決定には種々の異なる方法がある。一方法では、キーは、始点からノードまでの移動についての既知の最低コストである。もう別の方法におけるキーは、始点からノードまでの既知の最短距離にノードから終点までの移動に要する見積もりコストを加えたものである。本方法に適した、ノードから終点までの移動に要するコストを見積る方法には種々のものがある。その一例は、「烏が飛ぶであろう」("As-the-Crow-Flies")直線距離に単位距離当たりの見積もりコストを乗ずる方法である。即ち、ノードおよびリンクを無視して、ノードと終点との間の物理的な距離を測定し、その距離に単位距離当たりの見積もりコストを乗ずるのである。
終点優先キューは、終点までの経路が分かっているノードを整列したリスト、および各ノードについてのキーから成る。このキューはキーに従ってソートされる。終点キーの決定には多くの方法がある。一方法は、ノードから終点までの既知の最低コストの経路を使用することである。もう別の方法におけるキーは、ノードから終点までの既知の最低コストに、始点からノードまでの見積もりコストを加えた合計を使用する。本発明の範囲内であれば、他の方法でキーを計算してもよい。
更に、システムは始点訪問済みリスト(origin visited list)および終点訪問済みリスト(destination visited list)をセットアップする。始点訪問済みリストは、始点からの経路が分かっている全てのノードのリスト、始点からそのノードまでの移動の最低コスト、およびコストが最低の経路に沿った直前のノードを保持する。終点訪問済みリストは終点までの経路が分かっている各ノードの名前、そのノードから終点までの移動の既知の最低コスト、およびコストが最低の経路に沿った次のノードの識別情報を記憶する。ステップ202による初期化が完了すると、始点優先キューおよび始点訪問済みリストには始点が含まれ、終点優先キューおよび終点訪問済みリストには終点が含まれる。
システムが初期化されると、システムは所定のルールに従いステップ204においてキューを選択する。本発明に適したキュー選択ルールには多くのものが存在する。あるシステムにおいては、最小のキーを有する要素を含んだキューが選択され要素間の結びつきは任意に断たれる。別のルールのシステムにおいては、キューに含まれる要素の数が最も少ないキューが選択される。キュー選択ルールのその他の例としては、キューを交互に切り換え、ある期間は始点キューを選択し、別の期間は終点キューに切換え、更に別の期間は始点キューに再び切換えることが挙げられる。キューはキーによってソートされるので、最小のキーを有するノードがキューの先頭(キューの前部またはキューのトップとも言う)に来る。このノードを「ヘッドノード」と呼ぶ。後述の例では、キューが選択される方法としてキューを切換える方法を使用し、始点優先キューから開始される。
システムは、ステップ206において、選択したキューのヘッドノードに隣接する全てのノードを探索する。システムは開始したばかりなので、始点優先キュー中に存在する唯一のノードは始点である。隣接ノードとは、始点から、他ノードのノードも通過せずに移動できるノードである。始点Oの隣接ノードは、ノードA、B、GおよびHである。4個の隣接ノードがあるため、システムは任意に一つの隣接ノードを選択する。システムは、ステップ208において、選択した隣接ノードについて、より低いコストが訪問済みリストおよび優先キュー上に既に存在するかどうかを判断する。つまり、システムは隣接ノードとヘッドノードとの間の移動コストを判断する。この場合、選択された隣接ノードはノードAであり、始点からノードAまでの移動のコストは9である。経路発見計算は始まったばかりなので、ノードAは訪問済みリストおよび始点優先キュー上になく、ノードAについての他の既知のコストは存在しない。既知のコストが存在しないので、システムは、ステップ210において、訪問済みリストおよび優先キューにノードAおよびそのコストを追加して編集する。その後、ステップ206へ戻り、検討されていない隣接ノードが他にないかどうかを判断する。この場合、三個の隣接ノードB、GおよびHが未検討である。
システムはステップ208において、ノードBについて、より低い既知のコストが無いかどうかを判断する。始点からBまでの移動のコストは3であり、Bは優先キューおよび訪問済みリスト上に存在しない。ステップ210において、ノードBを優先キューおよび訪問済みリストに追加する。システムはステップ206へ戻って、ノードGについて検討する。始点OからGへと直接行く場合のコスト、即ち7よりも低い既知のコストは存在しないため、Gを優先キューおよび訪問済みリストに加える。システムはステップ206へ戻って、ノードHについて検討する。始点OからHへと直接行く場合のコスト、即ち2よりも低い既知のコストは存在しないため、Hをビジターリスト内の優先キュー加える。システムはステップ206へ戻って、これ以上隣接するノードが無いことを判断する。従って、ステップ212において、ヘッドノード、即ちこの時点では始点O、を優先キューから取り除く。表2は、経路発見計算におけるこの時点での始点優先キューおよび訪問済みリストの内容を表す。始点優先キューにはB、G、A、およびHの4個のノードがある。これらのキーは始点からそのノードまでの移動のコストを表す。訪問済みリストはノード、コスト、およびPrevの3つの欄を有する。ノード欄はノード識別情報を列記する。コスト欄は始点からそのノードまでの移動についての既知の最小コストを列記する。Prev欄は既知の最小コストを利用して経路に沿って移動した時の、始点からノードまでの経路に沿った直前のノードを列記する。訪問済みリストに列記されるノードの順番はリストの検索を容易にする任意の順番とすることができる。例えば、ノードをアルファベット順に列記できる。一実施例においては、ノードは数値コード名が付けられ、訪問済みリストはハッシュテーブルである。
【0019】
【表2】

【0020】
システムはステップ214において、停止条件が満たされたかどうかを判断する。本発明に適した停止条件には多くのものがある。例えば、あるノードが、始点優先キューおよび終点優先キューの何れにおいてもヘッドノードであるときに停止する。他の停止条件は、始点から始点優先キュー内のヘッドノードまでの移動のコストに終点キューのヘッドノードから終点までの移動のコストを加えたコストが最適コネクションノードの総コスト以上である場合に停止する。この停止条件が本実施例において使用する停止条件である。コネクションノードとは、終点訪問済みリストおよび始点訪問済みリストに現れるノードである。コネクションノードの総コストとは、始点からコネクションノードまでのコストにコネクションノードから終点までのコストを加えたコストである。最適コネクションノードとは、最小の総コストを有するコネクションノードである。本事例においてコネクションノードは存在せず、停止条件は満たされておらず、システムはステップ204においてキューを選択する。
【0021】
上述のように、本実施例における、優先キューを選択する方法は単純な切換え方式であるため、システムは終点キューを選択する。システムはステップ206において、終点Dに隣接するノードがあるかどうかを判断する。本実施例において、三個の隣接ノードC、F、およびHがある。システムはステップ208において、ノードCに着目し、より低い既知のコストがあるかどうかを判断する。そのようなコストは存在しないので、ステップ210において、終点優先キューおよび訪問済みリストにノードCおよびそのコストを追加して編集する。その後、ステップ206へ戻って、もう一つの隣接ノード、即ちノードFがあることを判断する。システムはステップ208において、Fについて、より低い既知のコストが無いことを判断する。ステップ210において、優先キューおよび訪問済みリストにノードFを追加して編集する。その後、ステップ206へ戻り、もう一つの隣接ノード、即ちノードHがあることを判断する。システムはステップ208において、HからDの移動について、より低い既知のコストが無いことを判断する。ステップ210において、終点優先キューおよび終点訪問済みリストにノードHおよびHからDまでの移動のコスト、即ち4ωもしくは[4,0]を追加して編集する。システムはステップ206において、ノードDに隣接するノードがこれ以上無いことを判断し、ステップ212において、ノードDを終点優先キューから取り除く。表3は、この時点での終点優先キューおよび訪問済みリストの状態を表す。
【0022】
【表3】

【0023】
システムはステップ214において、停止条件が満たされたかどうかを判断する。この時点では、コネクションノードが存在する。ノードHが両方の訪問済みリスト上に存在する。ノードHについての総コストは[4,2]もしくは4ω+2である。つまり、始点からノードHまでの移動のコストは[0,2]であり、ノードHから終点までの移動のコストは[4,0]である。始点から始点優先キューにおけるヘッドノード(H)までの移動のコストは[0,2]であり、また、終点優先キューにおけるヘッドノード(F)から終点までの移動のコストは[0,2]であるため、停止条件は満たされない。この二つのコストの合計は[0,4]であり、コネクションノードHの総コストよりも低いため、停止条件は満たされず、システムはステップ204において、始点優先キューを選択する。
始点優先キュー上のヘッドノードはノードHである。ノードDがノードHに隣接する唯一のノードである。システムはステップ208において、ノードDについて、より低い既知のコストが無いことを判断する。従って、ステップ210において、訪問済みリストおよび優先キューにノードHからノードDまでの移動のコスト、即ち[4,0]を含むように編集する。表4は、ノード4を優先キューから取り除いた(ステップ212)後の、始点優先キューおよび始点訪問済みリストの現在の状態を表す。
【0024】
【表4】

【0025】
システムはステップ214において、停止条件が満たされたかどうかを判断する。この時点では、2つのコネクションノード、ノードHおよびノードDが存在する。ノードHの総コストは[4,2]である。ノードDの総コストも[4,2]である。始点から始点優先キューのヘッドノードまでの移動のコストおよび終点キューのヘッドノードから終点までの移動のコストの合計は[0,7]に等しく、ノードHおよびノードDについてのコストの合計よりも少ないため、停止条件は満たされない。
システムはステップ206において、終点キュー上のヘッドノードに隣接するノードを探索する。ヘッドノードはノードFなので、ノードEが唯一の隣接ノードとなる。ノードDはFへ到達するために使用されるノードであるため、隣接ノードとして処理されない。EからFまでの移動のコストは[0,2]であるため、EからFを経由してDに至る移動のコストは[0,4]である。システムはステップ208において、EからDまでの移動について、より低い既知のコストが無いことを判断し、それに従って、訪問済みリストおよび優先キューを更新する。システムはステップ206において、他に隣接ノードが無いことを判断し、ステップ212においてFを優先キューから取り除く。表5は、本方法におけるこの時点での終点優先キューおよび訪問済みリストの状態を表す。
【0026】
【表5】

【0027】
ステップ214において、システムは停止条件が満たされたかどうかを判断する。この時点でもやはり、二つのコネクションノードHおよびDが存在する。始点から始点優先キュー内のヘッドノード(B)までの移動のコストは[0,3]で、終点優先キュー内のヘッドノード(C)から終点までの移動のコストは[0,5]であるため、停止条件は満たされない。二つのコストの合計は[0,8]であり、コネクションノードHもしくはDについての総コストよりも低い。
表4より、始点優先キュー上のヘッドノードはノードBであることがわかる。ノードBに隣接するノードはノードAおよびノードEである。ステップ208においてノードAを検討し、ノードAについて、より低い既知のコストは存在しないことを判断する。ノードAはコストが[0,9]であるとして訪問済みリストに現れないが、ノードBを経由した始点からノードAまでの移動のコストは「0,6]である。つまり、OからBまでの移動のコストは[0,3]であり、BからAまでの移動のコストは[0,3]である。即ち、OからBを経由してAに至る移動のコストは[6,0]であり、Oから直接Aに移動した場合のコストよりも低い。従って、ステップ210において、始点からノードAまでの移動のコスト、即ち[0,6]を訪問済みリストおよび優先キューに含めるように編集し、ノードAについての、訪問済みリストにおける直前ノードがBとなる。つまり、OからAにコスト[0,6]で着くためには、ノードBを通って移動しなくてはならない。システムはステップ206において、もう一つの隣接ノードであるEがあることを判断する。システムはステップ208において、Eについて、より低いコストが無いことを判断し、優先キューおよび訪問済みリストにEを含めるように編集する。表6は、ノードBを優先キューから取り除いた(ステップ212)後の始点優先キューおよびビジターリストの状態を表す。
【0028】
【表6】

【0029】
システムはステップ214において停止条件が満たされたかどうかを判断する。この時点では3つのコネクションノードE、H、Dが存在する。コネクションノードEの総コストは[0,9]であり、コネクションノードHの総コストは[4,2]であり、コネクションノードDの総コストは[4,2]である。ノードEが全てのコネクションノードの中でコストが最も低いので、ノードEが最適なコネクションノードをみなされる。起点から起点優先キュー上のヘッドノードまでの移動のコストは[0,6]である。終点優先キュー上のヘッドノードから終点までの移動のコストは[0,5]である。従って、ヘッドノードまでおよびヘッドノードからの移動のコストは[0,11]であり、最適なコネクションノードの総コストである[0、9]よりも大きい。その結果、停止条件が満たされ、システムはステップ216において、経路を構築する。
【0030】
経路を構築するステップは以下の通りである。ルールに従いあるコネクションノードを選択する。その様なルールの一つは、最適なコネクションノードを選択することである。始点訪問済みリストにおいて、選択されたコネクションノードKを探索し、始点からの経路上の直前のノードP1を発見する。P1が始点でなければ、訪問済みリストにおいてP1を探索し、始点からの経路上の直前のノードP2を発見する。始点に着くまでこの探索を繰り返す。始点に着いたと仮定し、この始点をノードPLとする。同様に、終点訪問済みリストにおいてKを探索し、終点までの経路上の次ノードN1を発見する。N1が終点でなければ、訪問済みリストにおいてN1を探索する。終点に着くまでこの探索を繰り返す。終点に着いたと仮定し、この終点をノードNMとする。この時点で始点から終点までの経路がわかる。その経路とは、PL(始点)からPL-1へ、PL-2へ、・・・、P2へ、P1へ、Kへ、N1へ、・・・NM-1へ、NM(終点)への経路である。
本実施例において、Eは最適なコネクションノードである。表6における訪問済みリストを参照し、始点からノードEまでの移動についての最適な既知のコストにはノードBからノードEまでの移動が含まれることを判断する。従って、構築される経路ではBからEへの移動が行われる。システムは、訪問済みリストにおいてノードBを発見し、ノードBまでの最適な経路は始点Oからの直接の経路であることを判断する。この時点で、構築された経路はOからBを経由してEに至る移動を含む。システムは始点に着くと、コネクションノードから終点までの経路を作る。表5における訪問済みリストを参照し、Eから終点までの最適な経路にはEからFまでの移動が含まれることを判断する。また、訪問済みリストは、FからDまでの最適な経路がFからDまで直接移動する経路であることを表す。従って、OBEFDの経路が構築される。この様に、経路発見計算はHからDへのリンクにより表される有料道路の使用を回避する。
いくつかのシステムにおいては、ヘッドノードが接続されている全てのノードを検討しないことで経路発見計算を速める。探索を特定の近隣のノードに限定する。このような方法の一つは、ノードを、それが存在する道路の重要度に従って分類し、始点から(または終点まで)の距離が増すにつれて近隣のノードを使用することを累進的に制限する。例えば、使用されるコスト測定値が見積もり運転時間である場合、始点もしくは終点から車で2分以上かかる住宅道路、および始点もしくは終点から車で10分以上かかる幹線道路等は、探索に使用されないだろう。
【0031】
本発明の一実施例においては、電子マップは分離したデータベースとして記憶され、経路発見装置には二つの主モジュールを有するソフトウェアが含まれる。第1モジュールは図4のステップ150および152を実行する。第2モジュールは経路発見機能を実行する。第1モジュールは、コストを記憶するために何個の表現のレベルを使用するかを表すコストモデルおよびコストの決定のためのインデックス(または定義)をセットアップする。インデックスには、各幹線道路に関してのコストはXにリンクの単位距離を乗じたものに等しく、各住宅道路に関してのコストはYにリンクの単位距離を乗じたもの等しい等のような情報が含まれる。コストモデルは経路発見機能に受け渡される。
他の実施例においては、本発明を、電子地図を使用する動的交通回避システムの一部分として使用できる。運転者が、ある特定の道路もしくは道路の集合に交通上の問題が発生していることを知ったとする。図4のステップ150において、運転者はシステムを使用して交通問題が発生している道路を特定する。交通問題が発生している道路のコストは、表現の第2レベルに0以外の大きさを有する(例えば、aω+a0ただし、a≠0)。ステップ154において、運転者を、交通問題が発生している道路を回避させて終点へ向かわせる経路が計算される。
本発明を記載するために既に使用した例は、道路から成る電子地図のためのものであるが、本発明を適切な、処理装置で読取可能に表現したネットワークにも適用できる。適切なネットワークには、製造工程のグラフ、共同一貫移動プラン(intermodal travel plan)(例えば、飛行機、電車、車、バス等を使用した地点間の移動を表すグラフ)、医学療法を提供するシステム等が含まれる。例えば、ネットワークが製造工程を表す場合、ノードは工程中の決定点を表すことができ(例えば、製造品をどのステーションへ移送するか、もしくはどの半導体プロセスを使用するかなど)、リンクは処理時間もしくは製造コストを表すことができる。
【0032】
以上の本発明の詳細な説明は、例示および説明を目的として提供するものである。本発明を完全に表したものではなく、また、開示された通りのものに限定されるものではない。また、上記の教示に鑑みて、多くの変形および変更を施すことが可能である。記載した実施例は、本発明の原理および実際的なアプリケーションを最もよく説明し、これにより、当業者が種々の実施形態でかつ予想される特定の使用に適した種々の変形を加えて本発明を最適に利用できるようにするために選択したものである。本発明の範囲は添付のクレームによって定義されるものである。
【0033】
なお、本発明の特徴点を下記列挙する。
1.処理装置で読取可能に表現したネットワークを使用して経路を発見する、コンピュータによって実施される方法であって、
前記ネットワークにおける一つ以上の要素の第1集合を識別するステップと、
前記要素の第1集合の第1要素に関連する第1コストを作成するステップであって、前記第1コストは少なくとも二つの表現のレベルについて0以外の大きさを含むステップと、
処理装置によって、前記第1コストを使用して経路発見探索を実行するステップと、
を含む方法。
2.上記1に記載の方法であって、前記要素の第1集合がリンクの集合である方法。
3.上記1に記載の方法であって、前記処理装置で読取可能に表現したネットワークが電子地図であり、前記要素の第1集合が複数の有料道路を表すリンクの集合である方法。
4.上記1に記載の方法であって、前記処理装置で読取可能に表現したネットワークが電子地図であり、前記要素の第1集合が一つの有料道路を表すリンクである方法。
5.上記1に記載の方法であって、前記識別するステップが、ユーザからの入力を受け取ることを含み、前記入力に基づき前記第1集合の要素を特定することを含む方法。
6.上記1に記載の方法であって、前記識別するステップが、ユーザの入力なしに、前記入力に基づいて前記第1集合の要素を自動的に特定することを含む方法。
7.上記1に記載の方法であって、前記作成するステップが、既存のコストを前記第1コストと置き換えることを含み、前記既存のコストには一つの表現のレベルについてのみ0以外の大きさが含まれる方法。
8.上記1に記載の方法であって、更に、
前記第1要素に加えて、前記第1集合の前記要素に関連する追加コストを作成するステップであって、前記追加コストは少なくとも二つの表現のレベルについて0以外の大きさを含むステップ
を含む方法。
9.上記1に記載の方法であって、前記二つの表現のレベルが第1レベルおよび第2レベルを含み、前記第2レベルが前記第1レベルよりも優先される方法。
10.上記1に記載の方法であって、更に、
前記電子地図において回避する一つ以上の要素の第2集合を識別するステップと、
前記第2集合の第1要素に関連する第2コストを作成するステップであって、前記第2コストが少なくとも三つの表現のレベルが0以外の大きさを含むステップと、
前記第2コストを使用する前記実行するステップと、
を含む方法。
11.上記10に記載の方法であって、前記第2コストは、前記第1コストの大きさおよび前記第2コストの大きさに関わらず前記第1コストよりも大きい方法。
12.上記1に記載の方法であって、前記第1コストは非標準型数字である方法。
13.上記1に記載の方法であって、前記第1コストは無限整数の0以外の倍数で表すことができる方法。
14.上記1に記載の方法であって、前記第1コストは複数要素のデータ構造内に記憶される方法。
15.上記1に記載の方法であって、前記第1コストは配列として記憶される方法。
16.上記1に記載の方法であって、更に、少なくとも二つの表現のレベルを含むコストモデルを作成するステップを含む方法。
17.上記1に記載の方法であって、前記処理装置で読取可能に表現したネットワークは電子地図である方法。
18.上記17に記載の方法であって、前記経路発見探索を実行するステップがDijkstraによる方法を使用することを含む方法。
19.上記17に記載の方法であって、前記実行するステップは、コストの最小化を試みる方法。
20.上記17に記載の方法であって、前記経路発見を実行するステップは、
優先キューおよび訪問済みリストをセットアップするステップであって、前記優先キューがノードの識別記号およびキーを記憶し、前記訪問済みリストがノード識別記号および始点からの移動のコストを記憶するステップと、
前記優先キューを初期化するステップと、
前記始点に隣接するノードの集合を発見するステップと、
前記始点から前記隣接ノードの各々までの移動のコストを決定するステップと、
前記隣接ノードをキーでソートされた前記優先キューに挿入するステップと、
前記ノードを前記訪問済みリストに挿入するステップと、
前記優先キューから前記始点を取り除くステップと、
前記キューの先頭のノードに隣接するノードの集合を発見するステップと、
前記キューの先頭のノードに隣接する前記ノードの各々への移動のコストを決定するステップと、
少なくとも前記キューの先頭のノードに隣接する前記ノードの部分集合を前記優先キューに挿入するステップと、
前記優先キューの先頭のノードに隣接する前記ノードが、より低いコストを有して前記訪問済みリスト中にまだ存在しない場合に、前記ノードを前記訪問済みリストに挿入するステップと
前記優先キューから前記キューの先頭のノードを取り除くステップと、
を含む方法。
21.上記17に記載の方法であって、
前記電子地図がリンクおよびノードを含み、前記要素の第1集合がリンクの集合であり、前記二つの表現のレベルが第1レベルおよび第2レベルを含み、前記第2レベルは前記第1レベルより優先され、前記第2レベルは無限整数の0以外でのべき乗の倍数である方法。
22.上記1に記載の方法であって、
前記第1要素がリンクの集合を表し、前記二つの表現のレベルが第1レベルおよび第2レベルを含み、前記第1レベルが前記集合における前記リンクの数を表している方法。
23.上記1に記載の方法であって、
前記二つの表現のレベルが第1レベルおよび第2レベルを含み、前記第1レベルの大きさおよび前記第2レベルの大きさの合計が、最小化される見積もり量である方法。
24.処理装置で読取可能に表現したネットワークを使用する、コンピュータによって実施される方法であって、
処理装置を使用して始点から終点までの経路発見を実行するステップを含み、前記経路発見を実行するステップは、
第1ノードから第2ノードまでの第1経路を発見するステップであって、前記第1経路が一つ以上のリンクの第1集合および一つ以上のコストの第1集合を含むステップと、
第1ノードから第2ノードまでの第2経路を発見するステップであって、前記第2経路が一つ以上のリンクの第2集合および一つ以上のコストの第2集合を含み、少なくとも前記コストの第2集合の内の一つが少なくとも二つの表現のレベルを含むステップと、
一つ以上のコストの第1集合が一つ以上のコストの第2集合よりも効率的である理由から前記第1経路を選択するステップと
を含む方法。
25.上記24に記載の方法であって、
前記二つの表現のレベルが第1レベルおよび第2レベルを含み、前記第2レベルは前記第1レベルよりも優先される方法。
26.上記25に記載の方法であって、
前記処理装置で読取可能に表現したネットワークが電子地図である方法。
27.上記26に記載の方法であって、
前記第2経路は有料道路を含み、前記第1経路は有料道路を含まず、前記コストの第2集合の内の一つが第2レベルについて0以外の大きさを有し、前記有料道路と関連付けられている方法。
28.上記26に記載の方法であって、
前記選択するステップが、前記第2レベルについて0以外の大きさを有するコストと前記第1レベルについて0以外の大きさを有するコストとを比較すること含む方法。
29.上記26に記載の方法であって、
前記コストの第2集合の内の少なくとも一つが三つの表現のレベルを有する方法。
30.上記29に記載の方法であって、
前記三つの表現のレベルが第1レベル、第2レベル、および第3レベルを含み、前記表現の第3レベルが前記第2レベルよりも優先される方法。
31.上記26に記載の方法であって、
前記選択するステップが前記コストの第1集合の合計と前記コストの第2集合の合計を比較することを含む方法。
32.上記26に記載の方法において、
前記比較するステップが無限数字の一乗の大きさの比較および無限数字の二乗の大きさの比較を含む方法。
33.上記26に記載の方法であって、
前記第1経路が前記始点と前記終点との間の最終経路の一部分である方法。
34.電子地図を作成する方法であって、
ノードを特定するステップと、
ノード間のリンクを特定するステップと、
前記リンクを移動するためのコストを特定するステップであって、前記コストの内の少なくとも一つが表現の第1レベルおよび表現の第2レベルを含み、前記表現の第2レベルは前記表現の第1レベルよりも優先されるステップと、
前記ノード、前記リンク、および前記コストを表すデータを地図データベース内に記憶するステップであって、前記地図データベースは処理装置で読取可能な記憶装置内にあるステップと、
を含む方法。
35.上記34に記載の方法であって、
前記記憶するステップが、前記コストを配列で表すデータを記憶することを含む方法。
36.上記34に記載の方法であって、前記第2レベルが無限整数の0以外でのべき乗の倍数を含んでいる方法。
37.電子地図が組み込まれている、処理装置で読取可能な記憶媒体であって、
前記電子地図は上記34の方法に従って作成され、前記電子地図は、表現の第1レベルおよび表現の第2レベルが含まれる前記コストの内の少なくとも一つを記憶し、前記表現の第2レベルは前記表現の第1レベルよりも優先される方法。
38.電子地図データベースの機能を高める方法であって、
前記地図データベースはノード、ノード間のリンク、およびリンクのコストを含み、
前記リンクを分類するステップと、
少なくとも一つのリンクの分類についてのコストの第2レベルを作成するステップと、
前記コストの第2レベルを処理装置で読取可能な記憶媒体に記憶するステップと、
を含む方法。
39.上記38に記載の方法であって、
前記記憶するステップが、前記コストの第2レベルを配列で表すデータを記憶することを含む方法。
40.上記38に記載の方法であって、前記分類するステップが、どのリンクが有料道路であってどのリンクが非有料道路であるかを特定することを含む方法。
41.上記38に記載の方法であって、前記作成するステップが、既存のコストを新しいコストと置き換えることを含み、前記新しいコストは前記既存のコストおよび無限数字の積である方法。
42.機能の高められた電子地図が組み込まれている、処理装置で読取可能な記憶媒体であって、前記前記機能の高められた電子地図は、ノード、ノード間を接続するリンク、およびリンクのためのコストを含み、前記電子地図は、上記38の方法によって機能が高められる方法。
43.処理装置で読取可能に表現したネットワークを使用する、経路を発見するための装置であって、
第1ノードから第2ノードまでの第1経路を発見する手段であって、第1経路が一つ以上のリンクの第1集合および一つ以上のコストの第1集合を含む手段と、
第1ノードから第2ノードまでの第2経路を発見する手段であって、第2経路が一つ以上のリンクの第2集合および一つ以上のコストの第2集合を含み、少なくとも前記コストの第2集合の内の一つが少なくとも二つの表現のレベルを含む手段と、
前記一つ以上のコストの第1集合が前記一つ以上のコストの第2集合よりも効率的であるとの理由に基づき前記第1経路を選択する手段と、
を含む装置。
44.上記43に記載の装置であって、
前記二つの表現のレベルが第1レベルおよび第2レベルを含み、前記第2レベルは前記第1レベルよりも優先される装置。
45.上記43に記載の装置であって、
前記処理装置で読取可能に表現したネットワークは電子地図である方法。
46.処理装置で読取可能なプログラムコードが組み込まれている、処理装置で読取可能な記憶媒体であって、前記処理装置で読取可能なプログラムコードは、処理装置で読取可能に表現したネットワークを使用して経路を発見するためのものであり、
第1ノードから第2ノードまでの経路を発見する第1プログラムコードであって、前記第1経路が一つ以上のリンクの第1集合および一つ以上のコストの第1集合を含んでいる第1プログラムコードと、
第1ノードから第2ノードまでの第2経路を発見する第2プログラムコードであって、前記第2経路が一つ以上のリンクの第2集合および一つ以上のコストの第2集合を含み、前記コストの第2集合の内の一つが少なくとも二つの表現のレベルを有している第2プログラムコードと、
前記一つ以上のコストの第1集合が前記一つ以上のコストの第2集合よりも効率的であるとの理由に基づき、前記第1経路を選択する第3プログラムコードと、
を含む処理装置で読取可能な記憶媒体。
47.上記46に記載の処理装置で読取可能な記憶媒体であって、
前記二つの表現のレベルが第1レベルおよび第2レベルを含み、前記第2レベルは前記第1レベルよりも優先される処理装置で読取可能な記憶媒体。
48. 上記47に記載の処理装置で読取可能な記憶媒体であって、
前記処理装置で読取可能に表現したネットワークが電子地図である処理装置で読取可能な記憶媒体。
49.上記48に記載の処理装置で読取可能な記憶媒体であって、
前記第3プログラムコードは前記コストの第1集合の第1合計および前記コストの第2集合の第2合計を決定し、前記第3プログラムコードは前記第1合計が前記第2合計よりも少ないことを判断する、処理装置で読取可能な記憶媒体。
50.上記49に記載の処理装置で読取可能な記憶媒体であって、前記第1合計および前記第2合計はコンピュータ記憶装置に配列として記憶される、処理装置で読取可能な記憶媒体。
51.上記47に記載の処理装置で読取可能な記憶媒体であって、更に、
前記ネットワークのためのコストモデルを作成する第4プログラムコードを含む、処理装置で読取可能な記憶媒体。
52.上記47に記載の処理装置で読取可能な記憶媒体であって、前記第3プログラムコードは、動的交通状況に少なくとも部分的に基づいて前記第1経路を選択する処理装置で読取可能な記憶媒体。
53.処理装置で読取可能なプログラムコードが組み込まれている、処理装置で読取可能な記憶媒体であって、前記処理装置で読取可能なプログラムコードは、処理装置で読取可能に表現したネットワークを使用して経路を発見し、前記処理装置で読取可能なプログラムコードは、
前記ネットワークにおける一つ以上の要素の第1集合を識別するのに使用される第1プログラムコードと、
前記要素の第1集合の第1要素に関連する第1コストを作成する第2プログラムコードであって、前記第1コストが少なくとも二つの表現のレベルを有している、第2プログラムコードと、
前記第1コストを使用して、経路発見探索を実行する第3プログラムコードと、
を含む処理装置で読取可能な記憶媒体。
54.上記53に記載の処理装置で読取可能な記憶媒体であって、
前記二つの表現のレベルが第1レベルおよび第2レベルを含み、前記第2レベルは前記第1レベルよりも優先される処理装置で読取可能な記憶媒体。
55.上記54に記載の処理装置で読取可能な記憶媒体であって、
前記処理装置で読取可能に表現したネットワークが電子地図である処理装置で読取可能な記憶媒体。
56.上記54に記載の処理装置で読取可能な記憶媒体であって、
前記第1プログラムコードは交通問題を特定するのに使用され、前記第3プログラムコードは前記交通問題を回避する経路を発見する、処理装置で読取可能な記憶媒体。
57.処理装置で読取可能に表現したネットワークを使用して経路を発見するための装置であって、
入力装置と、
処理装置で読取可能に表現したネットワークの少なくとも一部分を記憶することができる処理装置で読取可能な記憶装置と、
表示装置と、
入力装置、記憶装置、および表示装置と通じている処理装置と、
を含み、前記処理装置は、
ネットワークにおける一つ以上の要素の第1集合を識別し、
前記要素の第1集合の第1要素に関連するコストを作成し、前記第1コストが少なくとも二つの表現のレベルを含み、
前記第1コストを使用して経路発見探索を実行するようにプログラムされている装置。
58.上記57に記載の装置であって、
前記二つの表現のレベルが第1レベルおよび第2レベルを含み、前記第2レベルは前記第1レベルよりも優先される装置。
59.上記57に記載の装置であって、
前記処理装置で読取可能に表現したネットワークが電子地図である装置。
【図面の簡単な説明】
【0034】
【図1】図1は、本発明の実施に使用可能なハードウェアアーキテクチャの一例を示すブロック図である。
【図2A】図2Aは、電子地図の一部分を表す有向グラフ(directed graph)の一番目の例である。
【図2B】図2Bは、電子地図の一部分を表す有向グラフの二番目の例である。
【図3】図3は、ネットワークの一部分を表す有向グラフの三番目の例である。
【図4】図4は、複数のコストレベルを使用して経路を発見する手順を記載したフローチャートである。
【図5】図5は、ネットワークの一部分を表す有向グラフの四番目の例である。
【図6】図6は、図4の経路発見ステップを記載したフローチャートである。
【符号の説明】
【0035】
12:CPU、16:キャッシュメモリ、18:主メモリ、20:システムコントロール、24:ROM、26:周辺機器。

【特許請求の範囲】
【請求項1】
処理装置で読取可能に表現した電子地図を有するネットワークを使用して始点と終点の間の経路を発見する、コンピュータによって実施される方法であって、
前記ネットワークにおける1つ以上の要素の第1集合を識別するステップと、
前記要素の第1集合の第1要素に関連する第1コストを作成するステップであって、前記第1コストは配列として記憶され、少なくとも2つの表現のレベルを有し、該少なくとも2つの表現レベルは第1と第2のレベルを有し、該第2レベルは該第1レベルよりも優先される、ステップと、
0以外の大きさを有するコスト情報が、前記第1レベルより高位の表現レベルに挿入されるように、前記配列にデータを挿入するステップと、
前記第1コストを使用し、前記処理装置で読み取り可能に表現したネットワーク内で始点から終点への経路を決定するために、前記処理装置を使用するステップと、
を有するコンピュータによって実施される方法。
【請求項2】
請求項1に記載の方法であって、前記要素の第1集合がリンクの集合である方法。
【請求項3】
請求項1又は2に記載の方法であって、前記要素の第1集合が複数の有料道路を表すリンクの集合である方法。
【請求項4】
請求項1に記載の方法であって、前記要素の第1集合が一つの有料道路を表すリンクである方法。
【請求項5】
請求項1乃至4の中の1に記載の方法であって、前記識別するステップが、ユーザからの入力を受け取ることを含み、前記入力に基づき前記第1集合の要素を特定することを含む方法。
【請求項6】
請求項1乃至5の中の1に記載の方法であって、前記作成するステップが、既存のコストを前記第1コストと置き換えることを含み、前記既存のコストは第1の表現のレベルのみ含む、方法。
【請求項7】
請求項1乃至6の中の1に記載の方法であって、更に、
前記第1集合の前記要素に関連する追加コストを作成するステップであって、前記追加コストは少なくとも二つの表現のレベルを含むステップ、
を含む方法。
【請求項8】
請求項1乃至7の中の1に記載の方法であって、前記第2の表現レベルを有するコストは、前記第1の表現レベルを有するコストよりも常に大きい、方法。
【請求項9】
請求項1乃至8の中の1に記載の方法であって、更に
回避するために前記電子地図内の1以上の要素の第2のセットを識別するステップと、
前記要素の第2のセットの第1の要素に関連する第2のコストを作成するステップであって、前記第2のコストは少なくとも3つの表現のレベルを有する、ステップと、
前記第2のコストを使用するステップと、有する、
方法。
【請求項10】
請求項9に記載の方法であって、前記第2のコストは前記第1のコストよりも大きく、第3の表現のレベルを有するコストは常に第2の表現のレベルのみを有するコストよりも大きい、
方法。
【請求項11】
請求項1乃至10の中の1に記載の方法であって、前記第1コストは非標準型数字である方法。
【請求項12】
請求項1乃至11の中の1に記載の方法であって、前記第1コストは無限整数の0以外の倍数で表すことができる方法。
【請求項13】
請求項1乃至12の中の1に記載の方法であって、前記第1コストは複数要素のデータ構造内に記憶される方法。
【請求項14】
請求項1乃至13の中の1に記載の方法であって、前記経路は、コストの最小化を試みることにより決定される、方法。
【請求項15】
請求項14に記載の方法であって、経路を決定するために処理装置を使用することは、
優先キューおよび訪問済みリストをセットアップするステップであって、前記優先キューがノードの識別記号およびキーを記憶し、前記訪問済みリストがノード識別記号および始点からの移動のコストを記憶するステップと、
前記優先キューを初期化するステップと、
前記始点に隣接するノードの集合を発見するステップと、
前記始点から前記隣接ノードの各々までの移動のコストを決定するステップと、
前記隣接ノードをキーでソートされた前記優先キューに挿入するステップと、
前記隣接ノードを前記訪問済みリストに挿入するステップと、
前記優先キューから前記始点を取り除くステップと、
前記キューの先頭のノードに隣接するノードの集合を発見するステップと、
少なくとも前記キューの先頭のノードに隣接する前記ノードの部分集合を前記優先キューに挿入するステップと、
前記優先キューの先頭のノードに隣接する前記ノードが、より低いコストを有して前記訪問済みリスト中にまだ存在しない場合に、前記ノードを前記訪問済みリストに挿入するステップと
前記優先キューから前記キューの先頭のノードを取り除くステップと、
を含む方法。
【請求項16】
請求項1乃至15の中の1に記載の方法であって、
前記第1要素はリンクの集合を表し、前記第1レベルが前記集合における前記リンクの数を表している方法。
【請求項17】
請求項1乃至16の中の1に記載の方法であって、
前記第1レベルの大きさおよび前記第2レベルの大きさの合計が、最小化される見積もり量を含む、方法。
【請求項18】
請求項1乃至17の中の1に記載の方法であって、更に
前記経路を報告するステップを含む方法。
【請求項19】
請求項1乃至18の中の1に記載の方法であって、更に、
前記始点の表示を受け取るステップを含む方法。
【請求項20】
請求項1乃至19の中の1に記載の方法であって、更に、
前記終点の表示を受け取るステップを含む方法。
【請求項21】
処理装置で読取可能に表現した電子地図を含むネットワークを使用して始点と終点の間の経路を発見するための装置であって、
入力装置と、
前記処理装置で読取可能に表現したネットワークの少なくとも一部を記憶することが可能な処理装置で読取可能な記憶装置と、
表示装置と、
前記入力装置と前記記憶装置と前記表示装置と通じている処理装置と、を含み、該処理装置は、
前記要素の第1集合の第1要素に関連する第1コストを作成し、前記第1コストは配列として記憶され、少なくとも2つの表現のレベルを有し、該少なくとも2つの表現レベルは第1と第2のレベルを有し、該第2レベルは該第1レベルよりも優先され、
0以外の大きさを有するコスト情報が、前記第1レベルより高位の表現レベルに挿入されるように、前記配列にデータを挿入し、
前記第1コストを使用し、前記処理装置で読み取り可能に表現したネットワーク内で始点から終点への経路を決定するために、前記処理装置を使用する、
ようにプログラムされている、
経路を発見するための装置。
【請求項22】
請求項21に記載の装置であって、前記処理装置は、
前記始点の表示を受け取り、前記終点の表示を受け取り、前記経路を報告するようにプログラムされている装置。
【請求項23】
電子地図を作成する方法であって、
ノードを特定するステップと、
ノード間のリンクの集合を特定するステップと;
回避を試みるためにリンクの第1の部分集合を特定するステップと;
前記リンクの集合を移動するためのコストを割り当てるステップであって、1以上のコストのうち少なくとも第1の部分集合が表現の第1レベルおよび表現の第2レベルを含み、前記表現の第2レベルは前記表現の第1レベルよりも優先され、前記1以上のコストの第1の部分集合は前記リンクの第1の部分集合と関連するステップと;
前記ノード、前記リンク、および前記コストを表すデータを地図データベース内に記憶するステップであって、前記地図データベースは処理装置で読取可能な記憶装置内にあるステップと、
を含む方法。
【請求項24】
電子地図データベースの機能を高める方法であって、
前記地図データベースはノード、ノード間のリンク、およびリンクのコストを含み、
回避を試みるためのリンクの集合を特定する入力を受け取るステップと;
前記リンクの集合についてのコストの第2レベルの表示を作成するステップと;
前記コストの第2レベルの表示を処理装置で読取可能な記憶媒体に記憶するステップであって、前記記憶されたコストの第2レベルは前記電子地図データベースと関連しており、その結果前記電子地図データベースと前記コストの第2レベルは前記電子地図データベース内における始点から終点までの経路を決定するために使用可能となり、前記リンクの集合の回避を試みる、ステップと、
を含む方法。
【請求項25】
処理装置で読取可能なプログラムコードが組み込まれている、処理装置で読取可能な記憶媒体であって、前記処理装置で読取可能なコードは、処理装置で読取可能に表現したネットワークを使用して経路を発見するための方法を実行する処理装置をプログラミングするためのものであり、
第1ノードから第2ノードまでの第1の経路を発見する第1プログラムコードであって、前記第1経路が1以上のリンクの第1集合および1以上のコストの第1集合を含んでいる第1プログラムコードと、
前記第1ノードから前記第2ノードまでの第2経路を発見する第2プログラムコードであって、前記第2経路が1以上のリンクの第2集合および1以上のコストの第2集合を含み、前記コストの第2集合の内の少なくとも一つが少なくとも二つの表現のレベルを有している第2プログラムコードと、
前記1以上のコストの第1集合が前記1以上のコストの第2集合よりも効率的であるとの理由に基づき、前記第1経路を選択する第3プログラムコードと、
を含む処理装置で読取可能な記憶媒体。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2009−42243(P2009−42243A)
【公開日】平成21年2月26日(2009.2.26)
【国際特許分類】
【出願番号】特願2008−273779(P2008−273779)
【出願日】平成20年10月24日(2008.10.24)
【分割の表示】特願平10−524654の分割
【原出願日】平成9年10月29日(1997.10.29)
【出願人】(500379303)テレ アトラス ノース アメリカ インコーポレイテッド (3)
【Fターム(参考)】