サーバベースのナビゲーションシステムは、ガイダンスアルゴリズムが、中央処理ユニット又はサーバに常駐するものである。エンドユーザは、携帯電話、コンピュータ、携帯ナビゲーションデバイス、組み込み自動車システム及びモバイルデータ端末(MDT)を含む様々なデバイスを用いてナビゲーションの目的地を入力する。エンドユーザの要求は、携帯電話ネットワーク、衛星ネットワーク、Wi−Fiネットワークのような、又は無線及び有線接続の両方を含む混成ネットワークを介して、無線でサーバへ送られる。無線リンクは、多数の周囲の状況(例えば、トンネル、主要な都市の中心部のコンクリートキャニオン、住人のいない地域、及び大量の無線使用の回数)で遮断されうる。システムがどのように構成されるかに応じて、送信される必要のあるデータ量は、無線リソースを圧迫する。携帯電話及びパーソナルナビゲーションも同様に制限される。
任意の地理的領域では、ナビゲーションデータベース情報自体のためのソースが少量しか存在しない。ナビゲーションデータベースは、道路の座標及び名称を提供すると共に、各道路の道のタイプ(例えば、住宅地、商業地、ハイウェイ、インターステイト等)を提供する。頻繁に、等データベースは、ポインツ・オブ・インタレスト(Points of Interest (“POIs”))も含んでおり、これは、ローカルビジネス、市民又は歴史的に重要な場所、学校、教会、及び公的に頻繁に出入りする他の場所である。米国では、米国勢調査局は、Topologically Integrated Geographic Encoding and Referencing system data (“TIGER data”)を提供している。TIGERデータは、米国のナビゲーション可能な道路の完全なセットを含まず、POIも提供しません。POI及びナビゲーション可能な道路のほぼ完全なセットを提供するナビゲーションデータベースの複数の商業プロバイダが存在します。米国での2つの最大手は、Navteq(登録商標)及びTele Atlas(登録商標)です。文章が明確に正反対でない限り、本願でのPOIの使用は、ポイント・オブ・インタレストの特定の、別々の集合ではなく、ポイント・オブ・インタレストの一般的な概念を意味している。大韓民国及び日本国では、ナビゲーションデータベースは、政府によって統制されている。他の管轄権は、政府所有のものからナビゲーションデータベースを提供するプライベートなサービスにまで及ぶ。Apple及びGoogleを含む別のナビゲーション及びナビゲーションデータベースの競業者は、急速に市場に参入してきている。また、クラウドソーシングのイノベーションは、マップデータベースに衝撃を与えている。例えば、MapBoxは、OpenStreetMapと呼ばれるオープンソースコラボレーション型のマップデータベースで動作する。通常、この点では、ほとんど全ての自動車及び携帯電話のナビゲーションは、1つのソースからのナビゲーションソフトウェア及び別のソースからの補足的なナビゲーションデータベースに依存している。ほとんどの場合、単一のエンティティは、完全なソリューションとしてナビゲーションコンポーネントをバンドルし、販売する。
その制限にもかかわらず、直近の20年間は、ナビゲーション向けの高度な電子機器の拡散がみられている。20年前、多くの自動車は、非常に少量しか電子部品を有しておらず、携帯電話又はモバイルフォンは、初期段階であった。今日、自動車及び無線電子機器の革新は、ナビゲーションユビキタスベースのグローバルポジショニングを行っている。しかし、消費者のためのオプションの拡散は、未だ、最適化された全体のソリューションを提示していない。多くのナビゲーションソリューションは、10年以上前のコンピュータによるコアに依存している。
全ての現在のナビゲーションアルゴリズムは、一次元の最適化に依存している。全ての道路は、長さ及び形状を変化するベクトルによって表される。根本的に、現在の方法が道路を表す2つの手法が存在する。第1には、全てのベクトルは、直線ベクトルである。曲線は、複数の直線セグメントに分解される。第2には、曲線及びスプラインの一形態又は別形態は、道路の自然な湾曲を再現するために用いられる。
ルートを探索するために、現在のアルゴリズムは、一次元にピースワイズ最適化する。多くの個々のアルゴリズムは、片側デシジョンツリー、両側デシジョンツリー、ゲートを有する片側デシジョンツリー、ゲートを有する両側デシジョンツリー、バケット及びリーキーバケットを含む、一次元のピースワイズナビゲーション最適化を行うために存在するが、これに限定されない。複数のルートセグメントは、現在地又は現在地及び目的地の両方のいずれかから形成される。ルートは、処理中に互いに比較され、単一又は複数の拒絶基準は、発散解を破棄するために確立される。最終的に、単一のルートは、中間地点(現在地と目的地の両方から形成するピースワイズソリューションの場合)又は目的地(目的地から形成するピースワイズソリューションの場合)のいずれかと交わる現在地と目的地との間に形成される。不思議なことに、プロセスが、解を真のピースワイズ最適化する場合、アルゴリズムが現在地又は目的地で開始するかどうかを目的とした計算には不適切である。多くのアルゴリズムでは、計算は、現在地及び目的地が逆の場合に、片側デシジョンでの異なるルートを選択する。いくつかのアルゴリズムは、両方のルートを計算し、より効率的な又は最適化されたルートをエンドユーザへ表示することにより、このことを補正する。
プロセスは、道路の重み付け(road weighting)によって促進される。本質的に、インターステイト及び他のハイウェイは、主要な地上の大通りよりも高く重み付けされる。主要な地上道路は、住宅地の道路よりも高く重み付けされる舗装された周辺道路よりも高く重み付けされる。重み付けは、現在地と目的地とのルートを選択するために、ピースワイズ、一次元最適化を組み合わせる。残念ながら、このような重み付けは、頻繁に“インターステイトバイアス”となる。ナビゲーションシステムの多くのユーザは、現在地と目的地との直線経路から大きく迂回する場合であっても、システムが、インターステイト又はハイウェイを好む傾向にあることに気付いている。
今日の技術について取り上げるための主な特徴は、ピースワイズ最適化及び重み付けを用いてルートを生成することである。現在のプロセッサ及びアルゴリズムが、明確な局所的な解を容易に可能にするにもかかわらず、相対的にローカルな地域であっても、これは明確な解を生成しない。ピースワイズ最適化及び重み付けは、インターステイト又はハイウェイでの移動に対するバイアスを生成する。このような旧式のコンピュータによるコアは、今日のナビゲーションシステムの性能に実質的に影響を与えるレガシーアーティファクトを生成する。これらのコアは、第1世代のRTOSプロセッサのような遅いプロセッサのために書かれている。これらのコアは、現在扱われうるもの(例えば、ペタバイトシステム)よりもデータの容量がかなり小さいと仮定する。これらのコアは、無線データ伝送が、現在可能であるものよりも実質的に速度が遅くなることを仮定する。
これは、企業が、過去20年間に亘ってそれらのソフトウェアを更新していないと言っているわけではない。その意味するところは、コアソフトウェアのピースが、初めに書かれたとき、多くの制限は、委託又は委託でないもののいずれかにより本質的に内蔵されており、最新式ものへの更新を困難にしている。また、それらのソフトウェアに再度直面したとき、それらが、レガシーコードを含む知識ベースから始まっているため、多くのソフトウェアチームは、何ができるのかについての公表されない(しばしば意識されない)先入観を有する。
旧式のナビゲーションのコアによって生じるレガシーアーティファクトは、正確でない到着予定時間(estimated−time−of−arrival (“ETA”))計算、学習の欠如、通常のナビゲーションに使用される同一のソフトウェアによる複数の自動車/複数の目的地の問題を扱うことができない、複数の自動車/複数の目的地の問題のための解を最適化できない、ユーザが、算出されたルートからほぼ到達したときに、合理的に評価することができない、及びデバイス間(例えば、車載ユニットと携帯電話)で行ったり来たりするナビゲーションを通過することができないことを含む。
多くのナビゲーションシステムは、10%又はそれ以下のETA、80−90%の時間を提供することができる。多くの消費者は、(1)消費者は、到着時間の推定としてのみでETA情報に依存していない、(2)ETA情報は、別のソースからのものよりは優れた情報である、及び/又は(3)エンドユーザは、利用可能なシステム性能レベルへの期待を常態化している、ために満足している。しかし、誤差が、厳格に許容できないユーザのカテゴリも存在する。例えば、商業自動車ドライバー、商業自動車オペレーター、厳しい期限にある人々、及び混雑した(現在の技術が期待するよりも満足に機能しない)地域に住む人々等である。
十分でないETAは、意義のある判断を学習するために現在のナビゲーションができないことに部分的に関連する。例えば、多くの人々は、月曜日の朝(祝日を除く)のロスアンゼルスのインターステイト405は、午前8:00に混雑することを知っている。現在のナビゲーションコアは、これを行うことができない。同様に、大都市デトロイトのI−696、シカゴのI−90/94、ボストンのI−95、及び主要都市の多くの他のインターステイトは、日常的に混雑している。これらの道路のラッシュアワー時の運行速度は、平均で、60m.p.h.から10m.p.hの間で変化する。変化の多くは、特定の時間、日及び条件が、金曜日の午後及び雨のような特に悪いこと等が十分に予測可能である。残念ながら、現在のナビゲーションソリューションは、推測的にこの状況を見積もることができない。
現在のシステムは、“動的なナビゲーション”を有するこの課題を取り除くことを試みている。動的なナビゲーションは、通常、混雑がある場合、ユーザに再度ルートを探索するために、“リアルタイム”交通データを用いて、ユーザに追加のコストを要求する。現実的に言えば、動的なナビゲーションについての動的は存在しない。多くの“リアルタイム”交通レポートは、20分又はそれ以上の遅れを有し、単一のソースからもたらされる。独占分野で性能を向上させるための動機付けがほとんどないことにより、動的なナビゲーションナビゲーションに与えられる交通データは、退化していっている。また、交通混雑に向かうルートを日常的に開始することは、ナビゲーションシステムの重み付け機能が、リアルタイム交通メッセージシステムからの使用可能なイベントを算出するときに、再度ルート探索されるのみであり、エンドユーザの時間、お金及び安定を浪費する大きな問題を生成する。
多くの人々は、彼らの家及び職場の近傍の好ましいルートを学習している。これらの好ましいルートは、ユーザに迅速及び/又はより便利なルートを提示する。ユーザが、連続的に好ましいルートを否認する場合、現在のナビゲーションコアは、意義のある手法でデータを組み込むことができない。
好ましいルートを“学習”することによってこの不正確さを取り除くことを試みているといういくつかのソリューションが市場に存在する。しかし、これらのシステムが機能する手法では、ユーザは、点Aと点Bとの間を進まなければならない。繰り返しにより、システムは、ユーザに点Aと点Bとの間を案内するための好ましいサブルートを学習する。しかし、システムは、エンドユーザに有益な手法でこの情報を一般化することができない。多くのユーザは、そのルートを3、4回取った後に、取るべきルートを伝えるシステムにおいて疑いのある値であると気付く。ユーザが望んでいることは、交通制御デバイスの回避、ビジネスパーク、ショッピングセンター及び住宅地のサブディヴィジョンへ入る又は出る特定の経路のような情報を取り、ユニットによって行われる全ての他のルートガイダンスへ情報を一般化するための手法である。
商業的に利用可能なナビゲーションソフトウェアコアは、合理的な再探索する人々が来た場合、全て問題を有する。多くのシステムでは、算出されたルートからの逸脱は、システムに解を再計算させ、これは、実質的にユーザを、初めに算出されたルートへ戻してしまう。これらの再計算は、通常、同じ道に引き返す、ジグザグに進む又はユーザを直ぐに元のルートへ戻す必要がある。提案されたルートからの少しの逸脱のために、シームレスに、ユーザを初めに提案したルートへ合理的な距離で再度導くことができる策が存在しない。
現在のナビゲーションシステムは、また、相互運用性が欠如している。エンドユーザは、彼らの車に1つ、彼らのラップトップに1つ、及び彼らの携帯電話に1つのシステムを有している。しかし、いくつかを除いて、少量のデータしか互いに伝えられない。また、携帯電話でナビゲーションを開始し、自動車に乗車し、携帯電話で算出されたナビゲーションを自動車のナビゲーションシステムで提供することができない。
多くのナビゲーションシステムと同様に、これは、ユーザインターフェイスを有する入出力装置、ジオロケーションのための方法(例えば、GPSアンテナ及びチップセット)、サーバベースのナビゲーションデータベース、エンドユーザプロセッサ及びメモリ、エンドユーザとサーバとを通信するための無線方法、及びナビゲーションソフトウェアコアを含む。
多くのシステムと同様に、ユーザは、POI、住所又はメモリを用いて目的地を入力する。出発点は、他の点が特定されない限り、ユーザの現在位置であると推定される。ユーザは、最短時間、最短距離、ユーザが定義したコスト関数(例えば、最小の燃料)、又は除外項目(例えば、インターステイトを使用しない又は有料道路を使用しない)を特定する。出発点から目的地を得るために、本発明は、ナビゲーション解を算出する。
地球の表面上又は地球の表面の一部を示す抽象化に、ユーザがナビゲーションデバイスの補助を求める任意の局部的な地域における境界地理的領域(bounded geographic regions (“BGRs”))を生成ることが可能である。各BGR内に複数の道路及びポイント・オブ・インタレスト(points of interest (“POIs”))が存在する。BGRの周辺では、BGRの境界と道路との交差を表すノードが存在する。
BGR内をナビゲートする時、以下の4つの可能性のみが存在する:(1)ユーザは、1つのノードでBGRに入り、別のノードを通じて出る;(2)ユーザは、BGR内のトリップを生じ、ノードを通じてBGRを出る;(3)ユーザは、ノードを通じてBGRに入り、目的地は、BGR内に存在する;又は(4)出発点及び目的地の両方は、BGR内に存在する。2番目の場合、出発点は、算出の目的のためのノードとして扱われる。3番目の場合、目的地は、算出の目的のためのノードとして扱われる。4番目の場合、出発点及び目的地の両方は、算出の目的のためのノードとして扱われる。したがって、各BGRでは、有限個のノードペアを識別することができ、BGRを横断するための取り得る解のセットの総数を提示する。また、BGRは、素早く、明確な解が、ノードペア毎に可能であるような大きさである。
本発明は、エンドユーザのためのいくつかのユーザが定義した従属変数を最適化する:(1)時間;(2)距離;(3)燃料;(4)コスト;又は(5)他の商業的に価値のある、ユーザが定義した従属変数。本発明は、各ノードペアに対する値を提供するために使用されうる推定関数を生成することによりこれを行う。推定関数は、各ノードペアに対する値を生成するために、ナビゲーションデータベースからの道路のタイプに基づいて、重み付け係数と共に履歴データを使用する。
ナビゲーションソフトウェアコアは、有限個のBGRを識別し、これは、解を算出するための出発点と目的地との十分な地理的近接である。各BGRについての各ノードペアに対する値を求めることにより、明確に最適解を解くことが可能になる。明確な解が可能であるのに十分小さいBGRを生成することにより、このシステム及び方法は、ルーティングのための二次元最適化を可能にする。
解がノードペアに対して算出されると、解は、ノードペアルックアップテーブル(Node Pair Look−Up Table (“NPLUT”))にセーブされる。NPLUTは、BGRによってソートされ、任意の与えられた時間で、最も局部的な解のみが処理ユニットに提示され、速度及び効率が向上する。ユニットは、実際の性能を、各ノードペアに対して算出された値と比較することができる。誤差関数を用いて、ユニットは、ノードペアに対して記憶された解を調整することができる。さらに、NPLUTは、変数及び属性(デジタルイベント又はフラグ)データの両方を記憶することができ、対象の従属変数の数に応じて、全ての要因に関するANOVA又はMANOVA算出を可能にする。NPLUTは、時刻、曜日、日付、ドライバー、ドライバーの年齢、ドライバーが運転を学んだ場所(ボストンのドライバーは常に早く運転する)、空間的なイベントの発生(例えば、近隣でフットボールの試合がある)、工事、降水量、温度等の要因を含みうるが、これに限定されない。
NPLUT内に各BGR及びノードペアは、独自の指示子又は名称を有する。多くのナンバーリングスキームは、両方とも可能である。BGRは、順次ナンバーリングスキーム、カージナルナンバーリングスキーム、英数字ナンバーリングスキーム(重要度有り又は無し)、又はBGRの緯度及び経度に基づく識別スキームにより順序付けられることができる。内部のナンバーリングスキームは、データベース及びコンピュータの効率に集中されるべきである。BGR順序付けスキームのための用いられる値は、エンドユーザに提示される必要はない。BGRのナンバーリング又は順序付けをエンドユーザに提示することが有益なイベントでは、指示子の参照が容易な(例えば、1、2、3等)エンドユーザBGRを示すために変形が生成されうる。これは、輸送用の自動車のような特定の自動車隊の用途にとって有益であり、ここで、現在、ゾーンは、自動車及び順序を分配するために用いられる。
各BGRの各ノードに対して、独自の指示子を割り当てることが必要である。ノードペア指示子は、両方のノードに対して独自の指示子になるとともに、関連するBGRに対する指示子になる。ノードペアを完全に記述するために、BGR及びノードペアの両方を識別する必要がある。ノードペア指示子のノード部分は、システムと交換可能である。実世界では、各ノードは、BGRの境界を通過するときに道路上の点を示す。したがって、ノードペア指示子は、2つの位置を与え、これは、同一の道路又は異なる道路のいずれかで、特定のBGRの境界上の両方である。
NPLUTでは、各ノードペアの参照は、各従属変数(例えば、時間、距離、燃料消費、表面道路ナビゲーション等)に対する値を有する。各ナビゲーションでのノードペアを横断することにより、実際の値は、測定又は推定される。実際の値は、ドライバーの年齢、ドライバーの性別、ドライバーの職業、自動車のタイプ、自動車の年数、時刻、曜日、日付、天気等のような旅に関連する独立変数と共にNPLUTに記憶される。各ナビゲーションの後、中間ANOVA及びMANOVA値(つまり、合計値、二乗和等)は、記憶され、ノートペアトリップと関連付けられる。このように、特定のユーザがナビゲートするとき、各ノードペアに対する調整された値は、提示されることができる。
各ノードペアに対して与えられた値を調整するために用いられるフィードバックは、簡素な最小二乗誤差算出、直近のイベントをより重く扱う誤差関数、又は他の一般的に使用される制御システム誤差補正方法でありうる。真の予測トラフィックは、対象の従属変数を正確に識別子、対象の独立変数をキャプチャすることにすぎない。データ及び数学が許す限り、システムが同じくらいの精度でトラフィックを予測することを行う。
BGR、ノードペア及び独立変数は、サーバベースのナビゲーションにより、現在使用できない手法で使用されることができる。例えば、天気がシカゴの交通に影響を与えることが開始する場合、通常、与えられた時間内にデトロイトに達する。簡素な補助的な処理は、システムに付属されることができ、これは、独立変数に基づいて、シカゴの天気とデトロイトの天気との待ち時間、及び例えば、シカゴからの天気の時間依存可能性が、デトロイトの交通に影響を与える天気になることを推定する。システムは、差し迫った天気又は他の予測可能な将来のイベントに基づいて将来の旅のためのETAを生成することができる。将来の旅のためのETAは、データの収集がより確かなものになるように周期的に更新されることができる。
以下の説明は、発明者に現在好ましい実施形態を示す。この説明は、本発明を限定するものではなく、その動作の一般原理を示すためのものである。実施例は、添付の図面によって図示される。
図7は、システムと関連付けられたソフトウェア方法のためのハイレベルなフローチャートを示す。いくつかの動作は、動作のセットアップでのみおこなわれ、初めの99の開始、26のマップデータベースのロード、63のサブルーチンを通じてBGRを生成、及び56のシステムイニシャライズである。マップデータベース26は、マップデータベースベンダーから購入される、又はクラウドソースのマップデータベースが使用されうる。システム初期化は、NPLUTを形成すること、利用可能なデータを有するNPLUTを追加すること、ユーザデータベースを生成すること、利用可能なデータを有するユーザデータベースを追加すること、及び同様のタスクのような管理上のルーチンを含む。システムが56で初期化され、BGRは、BGRサブ62により生成され、システムは、55でナビゲーション入力を取ることができる。
図13は、モザイク状のキューブ302に刻み込まれる地球301を示す。コンピュータ上で、仮想的な地球301は、対象となる地理的な陸塊が中心となるまで回転又は傾けられる。ほとんど全ての状況下で、地球301が、偏球であったとしても、対象の地理的領域は、刻み込まれるキューブ302の面とほぼ平行となる。キューブ302でのテッセレーションの大きさを適切に選択することにより、地球301に投影されるBGRのサイズに影響を与えることができる。地球301でのパターンは、技術的にテッセレーションではなく、全てのBGRは、同一形状及びサイズとはならないため、この方法は、バーチャルテッセレーション(Virtual Tessellation)と呼ばれる。
図8は、バーチャルテッセレーションを用いたBGRを生成する方法を示す。初めに、システムは、キューブ44に地球を描く。45において、キューブ面の中心は、対象の地理的領域において中心に置かれる。46において、キューブの面についてのテッセレーションサイズの開始が選択される。標準的な表面積(Standard Surface Area (“SSA”))は、BGRの対象となる表面積である。約1平方kmのBGRのSSAが理想的とみなされる。次に、64において、SSAの変化の限界が設定される。この数値は、小さい値(10%未満)であるべきである全てのBGRは、困惑するデータ(変化の分析時に非直交な独立した変数)の可能性を最小限にするために、SSAに非常に近い表面積を有するべきである。必要であれば、47において、描いたキューブのテッセレーション正方形の大きさが変化する。これは、コンピュータ的により困難であるが、SSAの変動を最小化する(最も内側のピースが正方形であり、各進んだ層は、さらに高いアスペクト比を有する四角形である)。キューブテッセレーションは、初期のBGRを生成するために地球48に投影される。全てのBGRのSSAは、49において、評価される。50において、SSA分析がOKである場合、BGRは、53において記憶され、59においてBGR処理が終了する。50において、SSA分析がOKではない場合、全てのBGRは、51において、消去される。次に、システムは、52において、開始するテッセレーションサイズを調整し、外側レイヤーテッセレーション比(テッセレーションされたキューブ面の外側レイヤーが、どのくらい早くさらに高いアスペクト比の四角形になるか)は、63において、調整され、64において、SSA変化限界を調整する。そして、全体の処理は、47で再び開始される。
図9は、BGRを生成するための別の実施形態のフローチャートを示す。58において、処理は、65において、対象の地理的領域の重心を探すことにより、開始される。単一のBGRは、66において、少なくとも4つの側面を有し、SSAと等しい表面積で形成される。SSA変化限界は、64において、設定される。BGRのレイヤーは、既存のBGRの周りに生成され、BGRの新たなレイヤーは、67において、その外周が最小化される。レイヤーのためのSSAは、49において、分析される。SSA分析がOKである限り、BGRの追加のレイヤーが加えられる。50において、SSAがOKではない場合、ちょうど最後のレイヤーのためのSSAは、69において、分析される。70において、最後のレイヤーが、対象の地理的領域の境界と重複するBGRを含み、それが許容できないSSAの唯一の原因である場合、BGRは、71において、記憶される。70において、エッジの地形ではない場合、BGRの最後のレイヤーは、51において消去される。許可できる最大外周は、68において、以前の反復から10%増加し、BGRの新たなレイヤーは、67において、生成される。処理は、72において、対象の全体地理的領域が、BGRで覆われるまで継続する。
図7では、62において、BGRルーチンが発生されると、61において、フリートセットアップ(図10)を発生する。図10では、各消費者又は自動車隊は、80において、フリートセットアップで登録される。これは、81での自動車、86でのドライバー及び91でのサービス提供についての情報を有するデータベースを追加することを含む。81での速い自動車について収集されたデータは、82での自動車の数、83での自動車のタイプ(燃料タイプを含む)、84での自動車のマイル距離、及び85での他のユーザが定義した自動車データ(独立変数又は属性データ)を含む。ドライバーについて収集されたデータは、87での名前、88でのドライバー番号又は識別子、89での雇用タイプ(会社員、独立請負業者、オーナー/オペレーター等)、及び90での他のユーザが定義したドライバーデータ(独立変数又は属性データ)を含む。フリートサービスについて収集されたデータは、92での消費者のタイプ、93でのサービス標準、94でのサービスエリア、及び95での他のユーザが定義したドライバーデータ(独立変数又は属性データ)を含む。データベースは、また、96でのユーザが定義した給油所も可能にする。データの全てが定義されると、97において、データベースにロードされ、ルーチンは98で終了する。
図7からは、32において、エンドユーザナビ入力要求は、無線手段を通じて受信される。図1は、無線通信及びジオロケーションの実施形態を示し、これは、ナビゲーションにとって必要である。エンドユーザは、自動車201にあり、これは、内蔵又は搭載された、リモート電子デバイス(“RED”)を有する。自動車201は、GPSチップセット、ジャイロ及び/又は衛星受信機を通じてジオロケートする。複数の衛星200は、自動車201のGPS受信機へGPS信号を提供する。自動車201は、無線ネットワーク202を用いて、その位置を中央サーバ203へ通信することができる。無線ネットワーク202は、携帯電話ネットワーク、無線周波数ネットワーク、又は他の無線手段であってもよい。送信は、無線インターネット接続(図示せず)を介してサーバへ要求をダウンロード及びアップロードするWiFiネットワークのような混合した手段のネットワークに亘ってなされうる。
図2は、通信及びジオロケーションシステムのための別の実施形態を示す。図2では、自動車201は、携帯電話、MDT又はRED204に置き換えられる。携帯電話、MDT又はRED204は、衛星ネットワーク200を通じてジオロケートする。携帯電話、MDT又はRED204は、無線ネットワーク202を通じて、サーバ203と通信する。
図3は、図2の通信及びジオロケーションシステムのための別の実施形態を示す。このシステムでは、無線ネットワーク202は、サーバによるジオロケーション及び通信の両方のために用いられる。携帯電話、MDT又はRED204は、その現在位置を識別するために、複数の携帯電話塔又はアンテナを使用することができる。このデータは、ナビゲーション要求と共に、リモートサーバ203へ送信されうる。
図4は、図2の通信及びジオロケーションシステムのための別の実施形態を示す。このシステムでは、衛星200は、ジオロケーション及び通信の両方のために用いられる。GPS衛星が、現在、通信のためのマルチタスクではないが、将来的には、ジオロケーション情報及び通信の両方が、同一の衛星200によって行われることが考えられる。しかし、このシステムは、現在の衛星のトレンドに基づいて設計されており、衛星200の1つのセットは、ジオロケーション情報を提供し、別の衛星200は、リモートサーバ203への通信のために用いられる。
図5は、図1の通信及びジオロケーションシステムのための別の実施形態を示す。このシステムでは、無線ネットワーク202は、サーバによるジオロケーション及び通信の両方のために用いられる。自動車201は、その現在位置を識別するために、複数の携帯電話塔又はアンテナを使用することができる。このデータは、ナビゲーション要求と共に、リモートサーバ203へ送信されうる。
図6は、図1の通信及びジオロケーションシステムのための別の実施形態を示す。このシステムでは、衛星200は、ジオロケーション及び通信の両方のために用いられる。衛星200の1つのセットは、ジオロケーション情報を提供し、別の衛星200は、リモートサーバ203への通信のために用いられる。
図7では、エンドユーザナビ要求32は、図1から図6の通信及びゲオロケーションシステムの1つを通じて通信される。自動車201又は携帯電話、MDT又はRED204のいずれかであっても、ユーザは、一般的には、ユーザアプリケーションと呼ばれるユーザソフトウェアを通じてシステムとやりとりする。図12では、101において、ユーザアプリケーションは、ユーザが102で登録されたことを確実することにより開始する。102において、ユーザが登録された場合、128において、目的地の入力が発生する。ユーザは、127及び128において、順番を特定する又はシステムに旅を順序付けることを可能にする複数の目的地を追加することができる。127において入力が完了すると、データは、129において、図1−6に示される手段を通じてリモートサーバへ送信される。この時点では、リモートサーバ203を、128での目的地入力で与えられたナビゲーションルートを生成するブラックボックスとして扱う。リモートサーバ203は、129において、エンドユーザにより受信されるルートを送信する。予め決定された間隔で、101でのエンドユーザのアプリケーションは、130において、126でのその位置の送信により、リモートサーバ203のピング(ping)を行う。リモートサーバ203は、ユーザの進捗を、リモートサーバが、ユーザの進捗であると予測したものと比較する。目的地へ向かう過程が、許容できる基準外である場合、リモートサーバ203は、101でのユーザのアプリケーションへ125での再ルート信号を送信する。エンドユーザのユニットは、再ルートをエンドユーザに通知する一方で、リモートサーバ203は、別のルートを提供する。新たなルートは、101でのエンドユーザのアプリケーションにより受信される。最終的には、再ルートしたかどうかに関わらず、エンドユーザは、124において、目的地に到着する。目的地に到着した後に、101でのエンドユーザのアプリケーションは、リモートサーバが、旅の完全な履歴を有するように、リモートサーバ203へ最後のピングを送信する。
101でのエンドユーザのアプリケーションが開始したとき、ユーザが登録されていない場合には、ユニットは、103でのアカウントを有効にすることにより登録されることができる。103でのアカウントを有効にすること後に、ユーザは、104でピング頻度を選択し、106でナビゲーションの優先度を選択し、105でナビゲーションの除外を選択する。ユーザは、彼ら自身又は彼らの自動車に関する独立変数を完了させなければならない。107において、ドライバー情報は、108での運転年数、109での運転記録、110での年間運転距離、111での年齢、112での配偶者の有無、113での住所114での運転するためのユーザ学習、115でのユーザの職業、116でのユーザの性別、及び117での他の会社又はグループが定義したデータを含む。118での自動車情報は、119での自動車の所有者、120での製造メーカ及びモデル、121でのモデル年度、及び122での自動車の走行距離を含む。質問に回答するそれらの精度が、どの程度システムがナビゲートできるのかということに直接関連しているとユーザが気付くため、独立変数データは、非常に高い質であるべきである。
図7は、32において、60でのガイダンスがエンドユーザ入力の後に生じることを示す。図11では、60でのガイダンスは、1でのナビ最適化要因を選択することにより開始する。BGRが生成されると、本発明が解を生成することが可能になる。図11は、単一の自動車ナビゲーション解を示す。ユーザは、1において、最適化要因又は従属変数、つまり、時間、距離、燃料、費用又はユーザが定義した従属変数を選択することにより開始する。次に、ユーザは、必要に応じて、2において、インターステイト、有料道路、橋又は他の潜在的なルートのような考慮事項から特定の解を排除する。ユーザは、3において、入力装置を用いて一又はそれ以上の目的地を入力する。1つ以上の目的地を入力する場合、ユーザは、6において、目的地を10での自動又は5での手動の順序で選択することができる。5での手動の順序を選択した場合、10での自動目的地順序付けモジュールは、手動入力を保留する。順序が付けられると、出発点及び次の目的地は、9において、識別される。7の開始時に単一の目的地しか存在しない場合、ナビゲーションコアは、9での出発点及び目的地の識別に直接移動する。
出発点及び目的地を算出するために、本発明は、出発点及び目的地間で直線的に存在し、それらをアクティブとして指定するBGRを識別する。これらのBGRは、Gen1と呼ばれる。出発点を含むBGRでは、出発点は、12での単独入口ノードに指定される。9における現在の目的地を含むBGRでは、現在の目的地は、単独出口ノードとして指定される。全ての他のBGRでは、ノードペアは、11での両側でBGRを有するこれらのノードを選択するのみにより、生成される。ナビゲーションコアは、16において、全てのアクティブなBGRのためのノードペアリストを生成する。マルチプロセッサシステムでは、ナビゲーションコアは、20での考慮下での全てのノードペアに対する一時的なBGRアレイを同時に生成し、17での考慮下での任意のノードペアに対して解が存在するのか確かめるために、14でのNPLUTを調査する。ノードペアの解がNPLUTに存在する場合、20において、一時的なBGRアレイに配置される。ノードペアの解がNPLUTに存在しない場合、各道路の分類に対して重み付け関数を用いて、本発明は、19において、各BGRの各ノードペアに対する従属変数演算を行い、各潜在的な解に対するルート情報をキャプチャする。本発明は、21において、潜在的な解のセットから除外項目を削除する。BGRの制限されたセットのみが、初期の演算に用いられるため、各BGRの全てのノードが、潜在的な入口及び/又は出口であるとは限らない。対象のノードから生成されたデータは、一時的なデータベースフォーマット又は20において素早くアクセス可能な任意の他のデータハンドリングフォーマットでアレイに記憶されうる。この一時的なデータは、ハードドライブのキャッシュストレージ、又は任意の他のタイプの適切なメモリ素子に記憶されうる。マルチコアプロセッサ環境では、各BGRが、独立に演算されうるため、このような演算は、迅速に行われる。
本発明は、出発点から目的地への初期の最小の解を探索し、出発点と目的地との間に直線的に存在するBGRを通じてのみ移動することにより初期のトライアルルートを生成する。初期ルート演算のための境界条件として、1つのBGRの出口ノードは、隣接するBGRの入口ノードである。取り得る解のマトリックスを生成することにより、本発明は、明確な解を生じる。
初期トライアルルートが識別されると、ソリューションエンジンは、Gen1及び18,23でのBGRに隣接する全てのBGRを追加し、上記の処理を主に繰り返す。新たなBGRは、Gen2と呼ばれる。Gen1BGRは、ここで、演算の全てのノードを使用する。全てのノードが、それらに関連付けられた隣接するBGRを有するとは限らないため、Gen2BGRは、ノードの減少されたセットを使用する。
Gen 2のトライアルルートを演算するために、Gen1の演算で算出された潜在的な解は、それらが、20での一時的なアレイで見いだされるため、除外される。本発明は、また、1つのBGRの出口ノードが、隣接するBGRの入口ノードである境界条件を適用する。(Gen1の解を除外した)取り得るユニークな解のマトリックスを生成することにより、本発明は、Gen2のトライアルルート22において、明確な解を生じる。
処理は、23,18でのGen2と同様に、Gen3のために繰り返される。Gen2BGRに隣接する全てのBGRは、演算に加えられる。全ての以前に考慮されたトライアル解は、潜在的な解のセットから除外される。Gen3のトライアルルートに対する明確な解は、算出される。
最適解をGen Aと呼ぶ。出口基準は、Cの生成が完了するように選択され、ここで、C=A+Bであり、Cは、生成の総数であり、Aは、最適な生成であり、Bは、最適解の後に算出された所望の発散解の数である。例えば、Gen1のトライアルルートが、Gen 2又はGen 3のトライアルルートに好ましく、演算を停止する場合、好ましいルートとしてGen1のトライアルルートをユーザに提示し、C=3, A=1及びB=2である。
実際には、Bは、23での出発点と目的地との距離に関連する。また、Bの選択は、簡素な誤差フィードバック機能を通じて最適化されることができ、ここで、誤差は、距離に関連する。Bの上限は、最大速度限界によって設定される。すなわち、処理は、現在利用可能な解ではなく従属変数へのより好ましい解を提示するために、自動車が、最大許容速度限界の周辺を超えたときに、終了する。