IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エアスペース テクノロジーズ, インコーポレイテッドの特許一覧

特表2024-532813代替経路発生のためのシステムおよび方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-10
(54)【発明の名称】代替経路発生のためのシステムおよび方法
(51)【国際特許分類】
   G06Q 10/083 20240101AFI20240903BHJP
【FI】
G06Q10/083
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024508807
(86)(22)【出願日】2022-08-11
(85)【翻訳文提出日】2024-03-29
(86)【国際出願番号】 US2022040055
(87)【国際公開番号】W WO2023018869
(87)【国際公開日】2023-02-16
(31)【優先権主張番号】17/400,420
(32)【優先日】2021-08-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】524055849
【氏名又は名称】エアスペース テクノロジーズ, インコーポレイテッド
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】オルテンホフ, ラジャ ソル
(72)【発明者】
【氏名】ラスナック, ライアン
【テーマコード(参考)】
5L010
【Fターム(参考)】
5L010AA16
(57)【要約】
代替経路発生のためのコンピューティングシステムが、開示される。側面では、コンピューティングシステムは、第1のグラフ上の目的地ノードへの最適経路を識別し、経路グラフを発生させ、経路グラフに基づいて、代替経路シーケンスを発生させることによって、代替経路を発生させるための方法を実装することができる。側面では、コンピューティングシステムはさらに、代替経路シーケンスを表示するための双方向グラフィカルユーザインターフェース(GUI)を発生させ、表示のためにディスプレイユニットに双方向GUIを伝送することができる。
【特許請求の範囲】
【請求項1】
代替経路発生のためのコンピュータ実装方法であって、前記方法は、
(a)1つまたはそれを上回るコンピューティングデバイスによって、第1のグラフ上の目的地ノードへの最適経路を識別することであって、前記決定することは、
1つまたはそれを上回る最適経路ノードを位置特定することと、
前記1つまたはそれを上回る最適経路ノードの間の接続を表す1つまたはそれを上回るツリーエッジを位置特定することと
を含む、ことと、
(b)前記1つまたはそれを上回るコンピューティングデバイスによって、経路グラフを発生させることであって、前記発生させることは、
(i)前記第1のグラフへのエントリ点として前記目的地ノードに接続されるダミーノードを発生させることと、
(ii)前記目的地ノードから前記ダミーノードへの接続を示す偽エッジを発生させることと、
(iii)前記経路グラフのルートノードとして前記ダミーノードを割り当てることと、
(iv)前記第1のグラフ上の代替経路ノードを位置特定することであって、前記代替経路ノードは、前記目的地ノードまたは前記1つまたはそれを上回る最適経路ノードのうちの1つに直接接続する、ことと、
(v)前記代替経路ノードから前記目的地ノードまたは前記1つまたはそれを上回る最適経路ノードのうちの1つへの接続を表す迂回路エッジを位置特定することと、
(vi)前記経路グラフのルートノードの子ノードとして前記識別された迂回路エッジを指定することと、
(vii)前記目的地ノードに到達するために前記迂回路エッジを横断することと関連付けられる迂回コストを識別することと、
(viii)前記経路グラフの変数として前記迂回コストを挿入することと、
(ix)前記第1のグラフ上のさらなる代替経路ノードを位置特定することであって、前記さらなる代替経路ノードは、前記代替経路ノードに直接接続する、ことと、
(x)前記さらなる代替経路ノードから前記代替経路ノードへのさらなる接続を表すさらなる迂回路エッジを位置特定することと、
(xi)前記子ノードのさらなる子ノードとして前記識別されたさらなる迂回路エッジを指定することと、
(xii)前記代替経路ノードに到達するために前記さらなる迂回路エッジを横断することと関連付けられるさらなる迂回コストを識別することと、
(xiii)前記経路グラフのさらなる変数として前記さらなる迂回コストを挿入することと、
(xiv)全ての代替経路ノード、さらなる代替経路ノード、迂回路エッジ、さらなる迂回路エッジ、迂回コスト、およびさらなる迂回コストが前記第1のグラフに関して決定されるまで、(iv)-(xiii)を連続して繰り返すことと
を含む、ことと、
(c)前記1つまたはそれを上回るコンピューティングデバイスによって、前記経路グラフに基づいて、代替経路シーケンスを発生させることであって、前記発生させることは、
(xv)前記経路グラフのルートノードから前記子ノードまで横断することと、
(xvi)前記子ノードと関連付けられる前記迂回路エッジを位置特定することと、
(xvii)前記目的地ノードから前記子ノードと関連付けられる前記位置特定された迂回路エッジまで前記第1のグラフを横断することと、
(xviii)前記迂回路エッジを位置特定することに基づいて、代替経路が見出されることを決定することと、
(xix)前記子ノードから前記さらなる子ノードまで横断することと、
(xx)前記さらなる子ノードと関連付けられる前記さらなる迂回路エッジを位置特定することと、
(xxi)前記さらなる子ノードと関連付けられる前記位置特定されたさらなる迂回路エッジが前記第1のグラフ上で位置特定されるまで、前記目的地ノードから前記第1のグラフを横断することと、
(xxii)前記さらなる迂回路エッジを位置特定することに基づいて、さらなる代替経路が見出されることを決定することと、
(xxiii)全ての代替経路およびさらなる代替経路が見出されることが決定されるまで、(xv)-(xxii)を連続して繰り返すことと
を含む、ことと、
(d)前記1つまたはそれを上回るコンピューティングデバイスによって、前記代替経路シーケンスを表示するための双方向グラフィカルユーザインターフェース(GUI)を発生させることと、
(e)前記1つまたはそれを上回るコンピューティングデバイスによって、表示のためにディスプレイユニットに前記双方向GUIを伝送することと
を含む、方法。
【請求項2】
(a)における前記目的地ノードへの前記最適経路を識別することは、ダイクストラアルゴリズムまたはAアルゴリズムのいずれかを適用することに基づく、請求項1に記載の方法。
【請求項3】
最大で所定の距離までダイクストラアルゴリズムまたはAアルゴリズムのいずれかを適用することをさらに含み、前記所定の距離は、前記ツリーエッジ、前記迂回路エッジ、および前記さらなる迂回路エッジの1つまたはそれを上回る加重が合計され得る最大数値を表す、請求項2に記載の方法。
【請求項4】
順序付けられたヒープデータ構造として前記経路グラフを記憶することをさらに含む、請求項1に記載の方法。
【請求項5】
前記目的地ノードに到達するために前記迂回路エッジを横断することと関連付けられる前記迂回コストを識別することは、
前記1つまたはそれを上回る最適経路ノードと前記目的地ノードとの間の接続を表す前記1つまたはそれを上回るツリーエッジと関連付けられる加重の第1のセットを集約することと、
前記目的地ノードに到達するために前記迂回路エッジをとることと関連付けられる加重の第2のセットを集約することと、
前記迂回コストを決定するために、前記集約された加重の第1のセットから前記集約された加重の第2のセットを減算することと
によって決定される、請求項1に記載の方法。
【請求項6】
前記代替経路ノードに到達するために前記さらなる迂回路エッジを横断することと関連付けられる前記さらなる迂回コストを識別することは、
前記1つまたはそれを上回る最適経路ノードと前記代替経路ノードとの間の接続を表す前記1つまたはそれを上回るツリーエッジと関連付けられる加重の第3のセットを集約することと、
前記代替経路ノードに到達するために前記さらなる迂回路エッジをとることと関連付けられる加重の第4のセットを集約することと、
前記さらなる迂回コストを決定するために、前記集約された加重の第4のセットから前記集約された加重の第3のセットを減算することと
によって決定される、請求項1に記載の方法。
【請求項7】
前記双方向GUIを介して、前記代替経路シーケンスから経路を選択するユーザ選択を受信することと、
前記1つまたはそれを上回るコンピューティングデバイスによって、人物または商品を輸送するための前記選択された経路に基づく輸送ルートを発生させることと
をさらに含む、請求項1に記載の方法。
【請求項8】
非一過性コンピュータ可読媒体であって、前記非一過性コンピュータ可読媒体は、命令を含み、前記命令は、プロセッサに、代替経路発生のための動作を実施させ、前記動作は、
(a)1つまたはそれを上回るコンピューティングデバイスによって、第1のグラフ上の目的地ノードへの最適経路を識別することであって、前記決定することは、
1つまたはそれを上回る最適経路ノードを位置特定することと、
前記1つまたはそれを上回る最適経路ノードの間の接続を表す1つまたはそれを上回るツリーエッジを位置特定することと
を含む、ことと、
(b)前記1つまたはそれを上回るコンピューティングデバイスによって、経路グラフを発生させることであって、前記発生させることは、
(i)前記第1のグラフへのエントリ点として前記目的地ノードに接続されるダミーノードを発生させることと、
(ii)前記目的地ノードから前記ダミーノードへの接続を示す偽エッジを発生させることと、
(iii)前記経路グラフのルートノードとして前記ダミーノードを割り当てることと、
(iv)前記第1のグラフ上の代替経路ノードを位置特定することであって、前記代替経路ノードは、前記目的地ノードまたは前記1つまたはそれを上回る最適経路ノードのうちの1つに直接接続する、ことと、
(v)前記代替経路ノードから前記目的地ノードまたは前記1つまたはそれを上回る最適経路ノードのうちの1つへの接続を表す迂回路エッジを位置特定することと、
(vi)前記経路グラフのルートノードの子ノードとして前記識別された迂回路エッジを指定することと、
(vii)前記目的地ノードに到達するために前記迂回路エッジを横断することと関連付けられる迂回コストを識別することと、
(viii)前記経路グラフの変数として前記迂回コストを挿入することと、
(ix)前記第1のグラフ上のさらなる代替経路ノードを位置特定することであって、前記さらなる代替経路ノードは、前記代替経路ノードに直接接続する、ことと、
(x)前記さらなる代替経路ノードから前記代替経路ノードへのさらなる接続を表すさらなる迂回路エッジを位置特定することと、
(xi)前記子ノードのさらなる子ノードとして前記識別されたさらなる迂回路エッジを指定することと、
(xii)前記代替経路ノードに到達するために前記さらなる迂回路エッジを横断することと関連付けられるさらなる迂回コストを識別することと、
(xiii)前記経路グラフのさらなる変数として前記さらなる迂回コストを挿入することと、
(xiv)全ての代替経路ノード、さらなる代替経路ノード、迂回路エッジ、さらなる迂回路エッジ、迂回コスト、およびさらなる迂回コストが前記第1のグラフに関して決定されるまで、(iv)-(xiii)を連続して繰り返すことと
を含む、ことと、
(c)前記1つまたはそれを上回るコンピューティングデバイスによって、前記経路グラフに基づいて、代替経路シーケンスを発生させることであって、前記発生させることは、
(xv)前記経路グラフのルートノードから前記子ノードまで横断することと、
(xvi)前記子ノードと関連付けられる前記迂回路エッジを位置特定することと、
(xvii)前記目的地ノードから前記子ノードと関連付けられる前記位置特定された迂回路エッジまで前記第1のグラフを横断することと、
(xviii)前記迂回路エッジを位置特定することに基づいて、代替経路が見出されることを決定することと、
(xix)前記子ノードから前記さらなる子ノードまで横断することと、
(xx)前記さらなる子ノードと関連付けられる前記さらなる迂回路エッジを位置特定することと、
(xxi)前記さらなる子ノードと関連付けられる前記位置特定されたさらなる迂回路エッジが前記第1のグラフ上で位置特定されるまで、前記目的地ノードから前記第1のグラフを横断することと、
(xxii)前記さらなる迂回路エッジを位置特定することに基づいて、さらなる代替経路が見出されることを決定することと、
(xxiii)全ての代替経路およびさらなる代替経路が見出されることが決定されるまで、(xv)-(xxii)を連続して繰り返すことと
を含む、ことと、
(d)前記1つまたはそれを上回るコンピューティングデバイスによって、前記代替経路シーケンスを表示するための双方向グラフィカルユーザインターフェース(GUI)を発生させることと、
(e)前記1つまたはそれを上回るコンピューティングデバイスによって、表示のためにディスプレイユニットに前記双方向GUIを伝送することと
を含む、非一過性コンピュータ可読媒体。
【請求項9】
前記動作はさらに、ダイクストラアルゴリズムまたはAアルゴリズムのいずれかを適用することに基づいて、(a)における前記目的地ノードへの前記最適経路を識別することを含む、請求項8に記載の非一過性コンピュータ可読媒体。
【請求項10】
前記動作はさらに、最大で所定の距離までダイクストラアルゴリズムまたはAアルゴリズムのいずれかを適用することを含み、前記所定の距離は、前記ツリーエッジ、前記迂回路エッジ、および前記さらなる迂回路エッジの1つまたはそれを上回る加重が合計され得る最大数値を表す、請求項9に記載の非一過性コンピュータ可読媒体。
【請求項11】
前記動作はさらに、順序付けられたヒープデータ構造として前記経路グラフを記憶することを含む、請求項8に記載の非一過性コンピュータ可読媒体。
【請求項12】
前記動作はさらに、前記目的地ノードに到達するために前記迂回路エッジを横断することと関連付けられる前記迂回コストを識別することが、
前記1つまたはそれを上回る最適経路ノードと前記目的地ノードとの間の接続を表す前記1つまたはそれを上回るツリーエッジと関連付けられる加重の第1のセットを集約することと、
前記目的地ノードに到達するために前記迂回路エッジをとることと関連付けられる加重の第2のセットを集約することと、
前記迂回コストを決定するために、前記集約された加重の第1のセットから前記集約された加重の第2のセットを減算することと
によって決定されることを含む、請求項8に記載の非一過性コンピュータ可読媒体。
【請求項13】
前記動作はさらに、前記代替経路ノードに到達するために前記さらなる迂回路エッジを横断することと関連付けられる前記さらなる迂回コストを識別することが、
前記1つまたはそれを上回る最適経路ノードと前記代替経路ノードとの間の接続を表す前記1つまたはそれを上回るツリーエッジと関連付けられる加重の第3のセットを集約することと、
前記代替経路ノードに到達するために前記さらなる迂回路エッジをとることと関連付けられる加重の第4のセットを集約することと、
前記さらなる迂回コストを決定するために、前記集約された加重の第4のセットから前記集約された加重の第3のセットを減算することと
によって決定されることを含む、請求項8に記載の非一過性コンピュータ可読媒体。
【請求項14】
前記動作はさらに、
前記双方向GUIを介して、前記代替経路シーケンスから経路を選択するユーザ選択を受信することと、
前記1つまたはそれを上回るコンピューティングデバイスによって、人物または商品を輸送するための前記選択された経路に基づく輸送ルートを発生させることと
を含む、請求項8に記載の非一過性コンピュータ可読媒体。
【請求項15】
代替経路発生のためのコンピューティングシステムであって、
命令を記憶するための記憶ユニットと、
前記記憶ユニットに結合された制御ユニットであって、前記制御ユニットは、前記記憶される命令を処理し、
(a)第1のグラフ上の目的地ノードへの最適経路を識別することであって、前記決定することは、
1つまたはそれを上回る最適経路ノードを位置特定することと、
前記1つまたはそれを上回る最適経路ノードの間の接続を表す、1つまたはそれを上回るツリーエッジを位置特定することと
を含む、ことと、
(b)経路グラフを発生させることであって、前記発生させることは、
(i)前記第1のグラフへのエントリ点として前記目的地ノードに接続されるダミーノードを発生させることと、
(ii)前記目的地ノードから前記ダミーノードへの接続を示す偽エッジを発生させることと、
(iii)前記経路グラフのルートノードとして前記ダミーノードを割り当てることと、
(iv)前記第1のグラフ上の代替経路ノードを位置特定することであって、前記代替経路ノードは、前記目的地ノードまたは前記1つまたはそれを上回る最適経路ノードのうちの1つに直接接続する、ことと、
(v)前記代替経路ノードから前記目的地ノードまたは前記1つまたはそれを上回る最適経路ノードのうちの1つへの接続を表す迂回路エッジを位置特定することと、
(vi)前記経路グラフのルートノードの子ノードとして前記識別された迂回路エッジを指定することと、
(vii)前記目的地ノードに到達するために前記迂回路エッジを横断することと関連付けられる迂回コストを識別することと、
(viii)前記経路グラフの変数として前記迂回コストを挿入することと、
(ix)前記第1のグラフ上のさらなる代替経路ノードを位置特定することであって、前記さらなる代替経路ノードは、前記代替経路ノードに直接接続する、ことと、
(x)前記さらなる代替経路ノードから前記代替経路ノードへのさらなる接続を表すさらなる迂回路エッジを位置特定することと、
(xi)前記子ノードのさらなる子ノードとして前記識別されたさらなる迂回路エッジを指定することと、
(xii)前記代替経路ノードに到達するために前記さらなる迂回路エッジを横断することと関連付けられるさらなる迂回コストを識別することと、
(xiii)前記経路グラフのさらなる変数として前記さらなる迂回コストを挿入することと、
(xiv)全ての代替経路ノード、さらなる代替経路ノード、迂回路エッジ、さらなる迂回路エッジ、迂回コスト、およびさらなる迂回コストが前記第1のグラフに関して決定されるまで、(iv)-(xiii)を連続して繰り返すことと
を含む、ことと、
(c)前記経路グラフに基づいて、代替経路シーケンスを発生させることであって、前記発生させることは、
(xv)前記経路グラフのルートノードから前記子ノードまで横断することと、
(xvi)前記子ノードと関連付けられる前記迂回路エッジを位置特定することと、
(xvii)前記目的地ノードから前記子ノードと関連付けられる前記位置特定された迂回路エッジまで前記第1のグラフを横断することと、
(xviii)前記迂回路エッジを位置特定することに基づいて、代替経路が見出されることを決定することと、
(xix)前記子ノードから前記さらなる子ノードまで横断することと、
(xx)前記さらなる子ノードと関連付けられる前記さらなる迂回路エッジを位置特定することと、
(xxi)前記さらなる子ノードと関連付けられる前記位置特定されたさらなる迂回路エッジが前記第1のグラフ上で位置特定されるまで、前記目的地ノードから前記第1のグラフを横断することと、
(xxii)前記さらなる迂回路エッジを位置特定することに基づいて、さらなる代替経路が見出されることを決定することと、
(xxiii)全ての代替経路およびさらなる代替経路が見出されることが決定されるまで、(xv)-(xxii)を連続して繰り返すことと
を含む、ことと、
(d)前記代替経路シーケンスを表示するための双方向グラフィカルユーザインターフェース(GUI)を発生させることと
を行うように構成される、制御ユニットと、
前記記憶ユニットに結合された通信ユニットであって、前記通信ユニットは、前記記憶される命令を処理し、
(e)表示のためにディスプレイユニットに前記双方向GUIを伝送することと、
(f)前記双方向GUIを介して、前記代替経路シーケンスから経路を選択するユーザ選択を受信することと
を行うように構成される通信ユニットと
を備え、
前記制御ユニットはさらに、(g)人物または商品を輸送するための前記選択された経路に基づく輸送ルートを発生させるように構成される、コンピューティングシステム。
【請求項16】
前記制御ユニットはさらに、ダイクストラアルゴリズムまたはAアルゴリズムのいずれかを適用することに基づいて、(a)において前記目的地ノードへの前記最適経路を識別するように構成される、請求項15に記載のコンピューティングシステム。
【請求項17】
前記制御ユニットはさらに、最大で所定の距離までダイクストラアルゴリズムまたはAアルゴリズムのいずれかを適用するように構成され、前記所定の距離は、前記ツリーエッジ、前記迂回路エッジ、および前記さらなる迂回路エッジの1つまたはそれを上回る加重が合計され得る最大数値を表す、請求項16に記載のコンピューティングシステム。
【請求項18】
前記制御ユニットはさらに、順序付けられたヒープデータ構造として前記経路グラフを発生させるように構成され、
前記記憶ユニットはさらに、前記順序付けられたヒープデータ構造として前記経路グラフを記憶するように構成される、
請求項15に記載のコンピューティングシステム。
【請求項19】
前記制御ユニットはさらに、前記目的地ノードに到達するために前記迂回路エッジを横断することと関連付けられる前記迂回コストを識別することが、
前記1つまたはそれを上回る最適経路ノードと前記目的地ノードとの間の接続を表す、前記1つまたはそれを上回るツリーエッジと関連付けられる加重の第1のセットを集約することと、
前記目的地ノードに到達するために前記迂回路エッジをとることと関連付けられる加重の第2のセットを集約することと、
前記迂回コストを決定するために、前記集約された加重の第1のセットから前記集約された加重の第2のセットを減算することと
によって決定されるように構成される、請求項15に記載のコンピューティングシステム。
【請求項20】
前記制御ユニットはさらに、前記代替経路ノードに到達するために前記さらなる迂回路エッジを横断することと関連付けられる前記さらなる迂回コストを識別することが、
前記1つまたはそれを上回る最適経路ノードと前記代替経路ノードとの間の接続を表す、前記1つまたはそれを上回るツリーエッジと関連付けられる加重の第3のセットを集約することと、
前記代替経路ノードに到達するために前記さらなる迂回路エッジをとることと関連付けられる加重の第4のセットを集約することと、
前記さらなる迂回コストを決定するために、前記集約された加重の第4のセットから前記集約された加重の第3のセットを減算することと、
によって決定されるように構成される、請求項15に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の側面は、概して、輸送およびロジスティクスにおける使用のための代替経路発生のためのコンピューティングシステムに関する。
【背景技術】
【0002】
輸送およびロジスティクスは、商業活動にとって極めて重要である。例えば、ある場所からある場所に商品および/または人員を効率的にスケジューリングし、輸送することが可能であることが、重要である。これは、多くの場合、輸送業者(例えば、航空会社、船、トラック等)と他の実体(例えば、倉庫、港、保管施設、工場、集荷場所等)との間の複雑なスケジューリングを伴う。しかしながら、多くの場合、輸送プロセスの間に、天候または他の自然災害の結果としての輸送ルートの中断、損傷または破損した航空船舶および/または車両に起因する商品および人員の出荷/派遣の遅延、注文のキャンセル等を含む、ある不測の事象が、生じる。したがって、これらの不測の事象が生じる場合、輸送およびロジスティクスの必要性を迅速かつ動的に修正するためのシステムおよび方法が、必要とされる。修正は、ある場所からある場所への商品および人員の円滑な輸送、資源、商品、または人員のルート変更等を確実にするための代替ルートを提供することを含み得る。技術的進歩にもかかわらず、現在の技術は、依然として、そのような修正を効率的に実施するための能力が欠如している。故に、前述の問題を解決するための改良された技法の必要性が、残っている。
【発明の概要】
【課題を解決するための手段】
【0003】
詳細な説明
代替経路/ルートを発生させるためのコンピューティングシステムおよび方法が、開示される。側面では、コンピューティングシステムは、輸送およびロジスティクス用途において使用され、目的地への、およびそこからの代替経路/ルートを位置特定し、および/または発生させることができる。本方法は、目的地を表し得る、カスタマイズされたデータ構造を使用することができる。側面では、本方法は、少なくとも以下のステップを実施することによって、代替経路/ルートを発生させることができる。側面では、目的地への最適経路が、識別されることができる。最適経路の識別はまた、1つまたはそれを上回る最適経路ノードを位置特定するステップと、1つまたはそれを上回る最適経路ノードの間の接続を表す、1つまたはそれを上回るツリーエッジを位置特定するステップとを含むことができる。
【0004】
いくつかの側面では、経路グラフもまた、代替経路/ルートを発生させるステップを促進するために、発生されることができる。側面では、経路グラフは、目的地ノードの間の種々の接続を表す、グラフへのエントリ点として目的地ノードに接続されるダミーノードを発生させることによって、発生されることができる。側面では、目的地ノードからダミーノードへの接続を示す、偽エッジが、発生されることができる。側面では、ダミーノードは、経路グラフのルートノードとして割り当てられることができる。側面では、グラフ上の代替経路ノードが、位置特定されることができる。代替経路ノードは、目的地ノードまたは1つまたはそれを上回る最適経路ノードのうちの1つに直接接続することができる。側面では、迂回路エッジが、位置特定されることができる。迂回路エッジは、代替経路ノードから目的地ノードまたは1つまたはそれを上回る最適経路ノードのうちの1つへの接続を表すことができる。識別された迂回路エッジは、経路グラフのルートノードの子ノードとして指定されることができる。側面では、目的地ノードに到達するために迂回路エッジを横断することと関連付けられる迂回コストが、識別されることができる。迂回コストは、経路グラフの変数として挿入されることができる。側面では、グラフ上のさらなる代替経路ノードが、位置特定されることができる。さらなる代替経路ノードは、代替経路ノードに直接接続することができる。側面では、さらなる代替経路ノードから代替経路ノードへのさらなる接続を表す、さらなる迂回路エッジが、位置特定されることができる。識別されたさらなる迂回路エッジは、子ノードのさらなる子ノードとして指定されることができる。側面では、代替経路ノードに到達するためにさらなる迂回路エッジを横断することと関連付けられるさらなる迂回コストが、識別されることができる。さらなる迂回コストは、経路グラフのさらなる変数として挿入されることができる。側面では、コンピューティングシステムは、全ての代替経路ノード、さらなる代替経路ノード、迂回路エッジ、さらなる迂回路エッジ、迂回コスト、およびさらなる迂回コストがグラフに関して決定されるまで、プロセスを連続して繰り返すことができる。
【0005】
側面では、コンピューティングシステムは、経路グラフに基づいて、代替経路シーケンスを発生させることができる。代替経路シーケンスは、経路グラフに基づいて識別された代替経路/ルートの順序付けられたリストを表すことができる。側面では、代替経路シーケンスは、経路グラフのルートノードから子ノードまで横断することによって、発生されることができる。横断に基づいて、子ノードと関連付けられる迂回路エッジが、位置特定されることができる。側面では、コンピューティングシステムは、迂回路エッジに関する情報を使用し、目的地ノードから子ノードと関連付けられる位置特定された迂回路エッジまでグラフをさらに横断することができる。側面では、迂回路エッジを位置特定するステップに基づいて、コンピューティングシステムは、代替経路が見出されることを決定することができる。側面では、コンピューティングシステムはさらに、子ノードからさらなる子ノードまでグラフを横断することができる。側面では、さらなる子ノードと関連付けられるさらなる迂回路エッジが、位置特定されることができる。側面では、コンピューティングシステムは、さらなる子ノードと関連付けられる位置特定されたさらなる迂回路エッジがグラフ上で位置特定されるまで、目的地ノードからグラフを横断することができる。さらなる迂回路エッジを位置特定するステップに基づいて、コンピューティングシステムは、さらなる代替経路が見出されることを決定することができる。側面では、コンピューティングシステムは、全ての代替経路およびさらなる代替経路が見出されることが決定されるまで、プロセスを連続して繰り返すことができる。側面では、コンピューティングシステムはさらに、代替経路シーケンスを表示するための双方向グラフィカルユーザインターフェース(GUI)を発生させることができる。側面では、コンピューティングシステムはさらに、表示のためにディスプレイユニットに双方向GUIを伝送することができる。
【図面の簡単な説明】
【0006】
本明細書に組み込まれ、本明細書の一部を形成する、付随の図面は、本開示の側面を図示し、説明とともに、さらに、本開示の原理を解説し、当業者が本開示を作製および使用することを可能にする役割を果たす。
【0007】
図1図1は、本開示の側面による、代替経路を発生させるためのコンピューティングシステムを示す。
【0008】
図2図2は、本開示の側面による、代替経路を発生させるためのコンピューティングシステムを動作させる方法を示す。
【0009】
図3A図3Aは、本開示の側面による、代替経路を発生させるステップを促進するために、目的地ノードへの最適経路を識別するようにコンピューティングシステムを動作させる方法を示す。
【0010】
図3B図3Bは、本開示の側面による、図3Aの方法が実施される方法のグラフ図示を示す。
【0011】
図4A図4Aおよび4Bは、本開示の側面による、代替経路を発生させるステップを促進するために、経路グラフを発生させるようにコンピューティングシステムを動作させる方法を示す。
図4B図4Aおよび4Bは、本開示の側面による、代替経路を発生させるステップを促進するために、経路グラフを発生させるようにコンピューティングシステムを動作させる方法を示す。
【0012】
図4C図4C-4Gは、本開示の側面による、図4Aおよび4Bの方法が実施される方法のグラフ図示を示す。
図4D図4C-4Gは、本開示の側面による、図4Aおよび4Bの方法が実施される方法のグラフ図示を示す。
図4E図4C-4Gは、本開示の側面による、図4Aおよび4Bの方法が実施される方法のグラフ図示を示す。
図4F図4C-4Gは、本開示の側面による、図4Aおよび4Bの方法が実施される方法のグラフ図示を示す。
図4G図4C-4Gは、本開示の側面による、図4Aおよび4Bの方法が実施される方法のグラフ図示を示す。
【0013】
図5A図5Aは、本開示の側面による、代替経路シーケンスを発生させるようにコンピューティングシステムを動作させる方法を示す。
【0014】
図5B図5B-5Eは、本開示の側面による、図5Aの方法が実施される方法のグラフ図示を示す。
図5C図5B-5Eは、本開示の側面による、図5Aの方法が実施される方法のグラフ図示を示す。
図5D図5B-5Eは、本開示の側面による、図5Aの方法が実施される方法のグラフ図示を示す。
図5E図5B-5Eは、本開示の側面による、図5Aの方法が実施される方法のグラフ図示を示す。
【0015】
図6図6は、本開示の側面による、コンピューティングシステムを実装するコンポーネントの例示的アーキテクチャである。
【0016】
図7図7-9は、本開示の側面による、代替経路シーケンスを表示し、ユーザがコンピューティングシステムとインターフェースをとることを可能にするためのグラフィカルユーザインターフェース(GUI)を示す。
図8図7-9は、本開示の側面による、代替経路シーケンスを表示し、ユーザがコンピューティングシステムとインターフェースをとることを可能にするためのグラフィカルユーザインターフェース(GUI)を示す。
図9図7-9は、本開示の側面による、代替経路シーケンスを表示し、ユーザがコンピューティングシステムとインターフェースをとることを可能にするためのグラフィカルユーザインターフェース(GUI)を示す。
【発明を実施するための形態】
【0017】
以下の側面は、当業者が本開示を作製および使用することを可能にするために十分に詳細に説明される。他の側面が、本開示に基づいて明白であり、システム、プロセス、または機械的変更が、本開示の側面の範囲から逸脱することなく、行われ得ることを理解されたい。
【0018】
以下の説明では、多数の具体的詳細が、本開示の徹底的な理解を提供するために与えられる。しかしながら、本開示が、これらの具体的詳細を伴わずに実践され得ることが明白となるであろう。本開示の側面を不明瞭にすることを回避するために、いくつかの周知の回路、システム構成、アーキテクチャ、およびプロセスステップは、詳細に開示されない。
【0019】
本システムの側面を示す図面は、半図式的であり、縮尺通りではない。寸法のうちのいくつかは、提示の明確化のためのものであり、図面の図に誇張して示される。同様に、図面における図は、容易な説明のためのものであり、概して、類似する配向を示すが、図における本描写は、大部分に関して恣意的である。概して、本開示は、任意の配向において動作されてもよい。
【0020】
本明細書に言及される用語「モジュール」または「ユニット」は、その用語が使用される文脈に従って、本開示の側面においてソフトウェア、ハードウェア、またはそれらの組み合わせを含んでもよい。例えば、ソフトウェアは、機械コード、ファームウェア、埋込コード、またはアプリケーションソフトウェアであってもよい。また、例えば、ハードウェアは、回路網、プロセッサ、特殊目的コンピュータ、集積回路、集積回路コア、またはそれらの組み合わせであってもよい。さらに、モジュールまたはユニットが、下記のシステムまたは装置請求項の節に記載される場合、モジュールまたはユニットは、システムまたは装置請求項の目的および範囲に関して、ハードウェア回路網を含むと見なされる。
【0021】
側面の以下の説明におけるモジュールまたはユニットは、説明されるように、または示されるように、相互に結合されてもよい。結合は、結合されるモジュールまたはユニットの間の介在するアイテムを伴わずに、または伴って、直接的または間接的であってもよい。結合は、物理的接触によるもの、またはモジュールまたはユニットの間の通信によるものであってもよい。
【0022】
システム概観および機能
図1は、本開示の側面による、代替経路を発生させるためのコンピューティングシステム100を示す。本開示全体を通して使用されるような代替経路を発生させるステップ(または代替経路発生)は、コンピューティングシステム100が実世界目的地への、およびそこからの種々の経路/ルートを決定する方法を指す。側面では、実世界目的地は、場所、建物、地理的エリア、港(例えば、空港、海港、バスターミナル)等であってもよい。側面では、これらの実世界目的地への、およびそこからの種々の経路/ルートを決定するために、コンピューティングシステム100は、カスタムコンピュータ実装データタイプおよび/またはデータ構造を使用して、実世界目的地を表すことができる。例えば、実世界目的地(例えば、都市、工場、港等)は、データ構造を使用して表されてもよい。好ましい側面では、データ構造は、各実世界目的地がグラフデータ構造内の頂点(ノードまたは点とも称される)を使用して表され得る、グラフデータ構造であってもよい。例えば、コンピューティングシステム100が輸送およびロジスティクス用途において使用される事例では、これが種々の実世界目的地に、およびそこから商品および/または人員を輸送するために利用可能である輸送ルートを決定するために使用されている場合、各実世界目的地は、グラフデータ構造の頂点(またはノード)として表されてもよい。さらに、経路/ルートはそれぞれ、リンク(エッジとも称される)として表されてもよく、各リンクは、ノードの対の間の接続(または経路/ルート)を表すことができる。本タイプのカスタムデータ構造および本開示の本明細書に説明される種々の方法を使用して、コンピューティングシステム100は、代替経路発生を実施し、ノードの間の利用可能な種々の経路/ルートを決定することができる。代替経路発生が実施される方法が、下記に詳細に説明されるであろう。
【0023】
側面では、コンピューティングシステム100は、サーバ等の第2のデバイス106に接続される、クライアントデバイス等の第1のデバイス102を含むことができる。側面では、第1のデバイス102および第2のデバイス106は、無線または有線ネットワーク等のネットワーク104を通して相互と通信することができる。
【0024】
ネットワーク104は、様々な電気通信ネットワークおよびネットワークトポロジに及び、それを表すことができる。例えば、ネットワーク104は、無線通信、有線通信、光通信、超音波通信、またはそれらの組み合わせを含むことができる。例えば、衛星通信、セルラー通信、Bluetooth(登録商標)、赤外線データ協会標準(IrDA)、無線フィデリティ(WiFi)、および世界規模相互運用マイクロ波アクセス(WiMAX)が、ネットワーク104内に含まれ得る無線通信の実施例である。ケーブル、イーサネット(登録商標)、デジタル加入者回線(DSL)、光ファイバ回線、ファイバトゥザホーム(FTTH)、および基本電話サービス(POTS)が、ネットワーク104内に含まれ得る有線通信の実施例である。さらに、ネットワーク104は、いくつかのネットワークトポロジおよび距離を横断することができる。例えば、ネットワーク104は、直接接続、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、またはそれらの組み合わせを含むことができる。
【0025】
側面では、第1のデバイス102は、スマートフォン、セルラー電話、携帯情報端末、タブレットコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、またはデスクトップコンピュータ等の任意の様々なデバイスであってもよい。側面では、第1のデバイス102は、第2のデバイス106と通信するために、直接または間接的のいずれかでネットワーク104に結合することができる、またはスタンドアロンデバイスであってもよい。
【0026】
側面では、第2のデバイス106は、任意の種々の一元化または分散化コンピューティングデバイスであってもよい。例えば、第2のデバイス106は、ラップトップコンピュータ、デスクトップコンピュータ、グリッドコンピューティングリソース、仮想化コンピューティングリソース、クラウドコンピューティングリソース、ルータ、スイッチ、ピアツーピア分散コンピューティングデバイス、サーバ、サーバファーム、またはそれらの組み合わせであってもよい。側面では、第2のデバイス106は、単一の部屋内に一元化される、異なる部屋を横断して分散される、異なる地理的場所を横断して分散される、またはネットワーク104内に埋込されてもよい。側面では、第2のデバイス106は、第1のデバイス102と通信するために、ネットワーク104と結合することができる、またはスタンドアロンデバイスであってもよい。
【0027】
例証的目的のために、コンピューティングシステム100は、ネットワーク104のエンドポイントとしての第1のデバイス102および第2のデバイス106とともに示されるが、コンピューティングシステム100が、第1のデバイス102と、第2のデバイス106と、ネットワーク104との間の異なるパーティションを有し得ることを理解されたい。例えば、第1のデバイス102および第2のデバイス106はまた、ネットワーク104の一部として機能することができる。
【0028】
図2は、本開示の側面による、代替経路を発生させるためのコンピューティングシステム100を動作させる方法200を示す。側面では、方法200は、第1のデバイス102または第2のデバイス106のいずれかの上で実施されてもよい。側面では、方法200の一部は、第1のデバイス102および/または第2のデバイス106上で実施されてもよい。図2に関する議論の目的のために、本開示の残り全体を通して、方法200のステップが、第2のデバイス106上で実施されると仮定される。側面では、方法200は、ソフトウェアモジュールを使用して実施されてもよい。側面では、第2のデバイス106上の非一過性コンピュータ可読媒体上に記憶される命令(例えば、ソースコード)が、プロセッサ等の第2のデバイス106の任意のハードウェアユニットに、記憶される命令を処理させ、ソフトウェアモジュールに、方法200の機能を実施させるように実行されてもよい。
【0029】
側面では、方法200は、以下のステップに基づいて実施されてもよい。ステップ202において、最適経路306(図3Bに示される)が、識別されてもよい。最適経路306は、目的地ノード308(図3Bに示される)への最速および/または最小コスト経路/ルートを表すことができる。側面では、「コスト」は、時間コスト、金銭的コスト、距離、またはそれらの組み合わせのいずれかを指し得、したがって、「最小コスト」は、目的地ノード308への経路/ルートをとるために要する最低の金銭的コストを指し、および/または「最小コスト」は、目的地ノード308への(時間の観点から)最も迅速な経路/ルートを指し得、および/または「最小コスト」は、目的地ノード308まで横断される最短距離を指し得る、またはそれらの組み合わせである。側面では、目的地ノード308は、開始ノード310(図3Bに示される)からの経路/ルートに関する終端点としての役割を果たし得る、実世界目的地を表すことができる。
【0030】
側面では、ステップ204に示されるように、目的地ノード308への最適経路306を決定するステップに基づいて、経路グラフ440(図4C-4Gに示されるような)が、発生されてもよい。経路グラフ440が発生される方法が、下記に図4A-4Gに関して説明されるであろう。側面では、経路グラフ440は、ヒープデータ構造として実装および記憶されてもよい。当業者(POSA)は、ヒープデータ構造が、特殊化コンピュータ実装ツリーベースのデータ構造を指すことを認識するであろう。側面では、ヒープデータ構造は、アレイとして実装されてもよく、アレイ内の各要素は、ヒープデータ構造のノードを表し、各要素の間の親/子関係は、アレイ内の要素のインデックスによって暗示的に定義される。側面では、経路グラフ440は、目的地ノード308への代替経路/ルートの決定を促進するために使用され得る、中間データ構造であってもよい。側面では、経路グラフ440はまた、代替経路/ルートをとるコストに関する情報を記憶することができる。経路グラフ440は、下記にさらに詳細に説明されるであろう。
【0031】
側面では、ステップ206に示されるように、代替経路シーケンス518(図5C-5Eに示されるような)が、経路グラフ440に基づいて発生されてもよい。側面では、代替経路シーケンス518は、経路グラフ440の代替経路/ルートの順序付けられたシーケンスを表すことができる。例えば、側面では、代替経路シーケンス518は、特定の順序における経路グラフ440の代替経路/ルートを表すことができる。側面では、特定の順序は、例えば、代替経路/ルートをとることと関連付けられる最短時間から最長時間を示すシーケンスであってもよい。側面では、特定の順序は、代替経路/ルートをとることと関連付けられる金銭的コスト(例えば、最小コストから最大コストの代替経路/ルート)を示すことができる。
【0032】
側面では、ステップ208に示されるように、コンピューティングシステム100はさらに、代替経路シーケンス518を表示するための双方向グラフィカルユーザインターフェース(GUI)(図7-9に示されるような)を発生させることができる。側面では、ステップ210に示されるように、コンピューティングシステム100は、さらなるデバイス上での表示のために双方向GUIを伝送することができる。例えば、側面では、伝送は、第1のデバイス102の画面、モニタ、または他のディスプレイユニット上での表示のために、第1のデバイス102に対してであってもよい。
【0033】
図3Aは、本開示の側面による、代替経路を発生させるステップを促進するために、目的地ノード308(図3Bに示される)への最適経路306(図3Bに示される)を識別するようにコンピューティングシステム100を動作させる方法300を示す。図3Bは、本開示の側面による、方法300が実施される方法のグラフ図示を示す。図3Aおよび3Bは、図2のステップ202が実施される方法のさらなる詳細を提供する。
【0034】
側面では、コンピューティングシステム100は、最初に、目的地ノード308を識別することによって、目的地ノード308への最適経路306を決定することができる。種々のノードおよびノードの対の間の接続を表すエッジを伴う、例示的グラフが、図3Bに示される。側面では、目的地ノード308は、グラフ上のノードのうちのいずれかであってもよい。図3Bの目的のために、目的地ノード308は、ノード6として示される。しかしながら、これは、例示的であり、任意の他のノードが、目的地ノード308として識別されてもよい。本開示全体を通した議論の目的のために、ノード6が、目的地ノード308であると仮定されるであろう。
【0035】
側面では、目的地ノード308の選択は、ユーザ入力に基づいてもよい。例えば、コンピューティングシステム100のユーザは、ユーザがそれへの全ての経路/ルートを把握することを所望する、実世界目的地を選択することができる。側面では、グラフ上のノードによって表されるような実世界目的地は、目的地ノード308として選択されてもよい。
【0036】
側面では、最適経路306は、目的地ノード308への最速(時間的)、最短距離、および/または最も安価な経路/ルートを表すことができる。例えば、側面では、最適経路306は、目的地ノード308に到着するために最も少ない時間量を要する経路/ルートを表すことができ、および/または目的地ノード308に到着するために最も少ない関連付けられる金銭的コストを伴う経路/ルートを表すことができる。側面では、経路/ルートと関連付けられる時間および/またはコストは、グラフの各エッジに沿った加重312または各加重312の集約された和として表されてもよい。図3Bでは、2つのノードを接続するエッジと関連付けられる各加重312は、グラフの各エッジに沿った数値として示される。例えば、ノード0からノード1に横断することと関連付けられる加重312は、「3」として示される。また、ノード0からノード2に横断することと関連付けられる加重312は、「5」として示される。また、ノード0→2→4→6を横断することと関連付けられる加重312は、ノード0、2、4、および6を接続する各エッジに沿った各加重312の集約された和である、「7」である。図3Bの各加重312は、正の整数として示されるが、これは、例示的である。側面では、他の値も、各加重312を表すために使用されてもよい。例えば、実数が、各加重312を表すために使用されてもよい。各加重312が決定される方法は、本開示の範囲を超えている。議論の目的のために、加重312が、ノードの対を接続するエッジ毎に存在すると仮定される。
【0037】
側面では、最適経路306を識別するために、コンピューティングシステム100は、1つまたはそれを上回る最適経路ノード314(図3Bに示される)および1つまたはそれを上回る最適経路ノード314の間の接続を表す、1つまたはそれを上回るツリーエッジ316(図3Bに示される)を位置特定しなければならない。これらのステップは、図3Aのステップ302および304として示される。側面では、1つまたはそれを上回る最適経路ノード314は、目的地ノード308への最適経路306に沿った各ノードを指す。実施例として、目的地ノード308が、ノード6である場合、図3Bに示される各加重312に基づいて、開始ノード310、例えば、ノード0からノード6への最適経路306は、ノード0→2→4→6から成る経路/ルートの横断を介したものである。側面では、これは、ノード0からノード6への各エッジに沿った各加重312を集約し、最低の数への集約された加重和を決定することによって、決定されてもよい。例えば、ノード0→2→4→6から成る経路/ルートは、「7」の集約された和をもたらす、各エッジに沿った各加重312の集約された和を有する。しかしながら、ノード0→2→3→5→6から成る経路/ルートが、使用される場合、その経路/ルートに沿った各加重312の合計の集約された和は、「28」である。代替として、ノード0→2→3→5→6から成る経路/ルートが、とられる場合、その経路/ルートに沿った各加重312の合計の集約された和は、「9」である。したがって、ノード0からノード6への全ての経路/ルートを横断し、経路/ルートのそれぞれに沿ったエッジ毎の加重の全ての集約された和を比較することに基づいて、ノード0→2→4→6から成る経路/ルートが、最低の合計加重312を有し、したがって、ノード6への最適経路306であることが決定され得る。側面では、前述のプロセスは、図3Bに示される任意のノードへの最適経路306を決定するために使用されてもよい。
【0038】
側面では、いったん最適経路306が決定および/または位置特定されると、1つまたはそれを上回るツリーエッジ316もまた、1つまたはそれを上回る最適経路ノード314の間の接続またはリンクを表すものとして決定されることができる。例えば、ノード6への最適経路306を表す経路/ルート0→2→4→6の実施例を挙げると、1つまたはそれを上回る最適経路ノード314は、ノード0、2、4、および6となるであろう。結果として、1つまたはそれを上回るツリーエッジ316もまた、ノード0→2、ノード2→4、およびノード4→6を接続する各エッジであることが決定されることができる。
【0039】
側面では、最適経路306は、様々な最適経路アルゴリズムのうちの1つを使用して識別されてもよい。例えば、側面では、ダイクストラアルゴリズムまたはAアルゴリズムのいずれかが、最適経路306を決定するために使用されてもよい。POSAは、最適経路306を決定するためにそのようなアルゴリズムを実装する方法を認識するであろう。
【0040】
側面では、いったん最適経路306、1つまたはそれを上回る最適経路ノード314、および1つまたはそれを上回るツリーエッジ316が識別および/または位置特定されると、コンピューティングシステム100は、制御および情報をさらなるモジュールに渡し、情報に基づいて、経路グラフ440(図4C-4Gに示される)を発生させることができる。側面では、経路グラフ440は、代替経路を発生させるステップを促進するために使用されてもよい。
【0041】
図4Aおよび4Bは、本開示の側面による、代替経路を発生させるステップを促進するために、経路グラフ440を発生させるようにコンピューティングシステム100を動作させる方法400および401を示す。図4C-4Gは、本開示の側面による、方法400および401が実施される方法のグラフ図示を示す。図4A-4Gは、図2のステップ204が実施される方法のさらなる詳細を提供する。
【0042】
側面では、コンピューティングシステム100は、図3Bに示される(図4C-4Gにも示される)例示的グラフを使用することによって、経路グラフ440を発生させ、目的地ノード308に行くために利用可能である代替経路/ルートを決定することができる。再び、図4A-4Gに関する議論の目的のために、目的地ノード308が、ノード6であると仮定される。側面では、コンピューティングシステム100はさらに、目的地ノード308への代替経路/ルートのそれぞれを横断することと関連付けられるコストを決定することができる。コストが決定される方法は、下記にさらに解説されるであろう。
【0043】
側面では、図4Aのステップ402に示されるように、コンピューティングシステム100は、最初に、グラフへのエントリ点として目的地ノード308に接続され得る、ダミーノード428(図4Cに示される)を発生させることによって、経路グラフ440を発生させるステップを開始してもよい。側面では、ダミーノード428は、実世界目的地の偽物または偽の表現を示すノードを指す。ダミーノード428を発生させる目的は、目的地ノード308への代替経路/ルートを決定するステップを開始するために、コンピューティングシステム100のための開始/エントリ点を設定することである。
【0044】
側面では、図4のステップ404に示されるように、目的地ノード308からダミーノード428への接続またはリンクを表す、偽エッジ430(図4Cに示される)が、発生されてもよい。このように、偽エッジ430は、目的地ノード308とダミーノード428との間の接続の偽物または偽の表現を表すことができる。再び、偽エッジ430を発生させる目的は、ダミーノード428を発生させることと同一であり、これは、目的地ノード308への代替経路/ルートを決定するステップを開始するために、コンピューティングシステム100のための開始/エントリ点を設定することである。
【0045】
側面では、図4Aのステップ406に示されるように、コンピューティングシステム100は、経路グラフ440のルートノード432(図4Cに示される)としてダミーノード428を割り当てることができる。側面では、ルートノード432は、経路グラフ440の予備または開始ノードを指す。側面では、ルートノード432は、ダミーノード428と目的地ノード308との間の接続(例えば、エッジ6→R)が経路グラフ440の予備または開始ノードであることを示し得る、関連付けられる情報を記憶することができる。
【0046】
側面では、図4Aのステップ408に示されるように、いったんルートノード432が割り当てられると、コンピューティングシステム100は、代替経路ノード434(図4Cに示されるような)を位置特定することができる。代替経路ノード434は、目的地ノード308または1つまたはそれを上回る最適経路ノード314(図3Bに示される)のうちの1つのいずれかに直接接続する、グラフ上のノードであってもよい。図4C-4Gに関して与えられる実施例では、位置特定される代替経路ノード434は、ノード1として示される。これは、ノード1が、目的地ノード308である、ノード6に直接接続する基準に合致するためである。代替経路ノード434を位置特定する目的は、目的地ノード308から逆方向に戻り、目的地ノード308に到着するために使用され得るグラフ上の全ての可能性として考えられる代替経路/ルートおよびノードを決定することによって、コンピューティングシステム100に経路グラフ440を発生させることである。
【0047】
側面では、図4Aのステップ410に示されるように、いったん代替経路ノード434が位置特定されると、迂回路エッジ436(図4Cに示される)が、位置特定されてもよい。側面では、迂回路エッジ436は、代替経路ノード434から目的地ノード308への接続または代替経路ノード434から1つまたはそれを上回る最適経路ノード314のうちの1つへの接続を表すことができる。図4C-4Gに関して、位置特定される迂回路エッジ436は、これが代替経路ノード434(ノード1)を目的地ノード308(ノード6)に接続するため、ノード1からノード6へのエッジであってもよい。迂回路エッジ436を位置特定することは、コンピューティングシステム100が目的地ノード308までとられ得る代替経路/ルートを決定するための方法を提供する。これはまた、目的地ノード308に到達するためにその迂回路エッジ436をとることと関連付けられるコストを決定するためのコンピューティングシステム100の能力を可能にする。側面では、目的地ノード308に到達するために迂回路エッジ436をとることと関連付けられるコストは、迂回コストと称され得る。迂回コストが識別される方法は、下記にさらに議論されるであろう。
【0048】
側面では、図4Aのステップ412に示されるように、いったん迂回路エッジ436が位置特定されると、コンピューティングシステム100はさらに、経路グラフ440のルートノード432の子ノード438(図4Dに示されるような)として識別された迂回路エッジ436を指定することによって、経路グラフ440を発生させることができる。子ノード438として識別された迂回路エッジ436を指定する目的は、経路グラフ440をさらに発生させ、目的地ノード308への代替経路/ルート接続を識別し、コンピューティングシステム100によって動作され得るデータ構造と同一のものを表すことである。
【0049】
側面では、図4Aのステップ414に示されるように、コンピューティングシステム100はさらに、目的地ノード308に到達するために迂回路エッジ436を横断することと関連付けられる迂回コストを識別することができる。側面では、迂回コストは、(i)迂回路エッジ436をとることによる開始ノード310から目的地ノード308への経路/ルートに沿った各加重312の集約と、(ii)最適経路306をとることによる開始ノード310から目的地ノード308への経路/ルートに沿った各加重312の集約との間の差をとることに基づいて識別されてもよい。実施例として、開始ノード310が、ノード0である場合、およびノード1および6を接続する迂回路エッジ436が、ノード6に到達するためにとられる場合、ノード0→1→6の経路/ルートに沿った各加重312の集約は、「10」である。前述で決定されるように、最適経路306に関する各加重312の集約は、「7」である。したがって、ノード1からノード6への迂回路エッジ436がとられる実施例では、迂回コストは、「10」と「7」との間の差であることが決定されてもよく、これは、「3」である。言い換えると、最適経路306の代わりにノード1からノード6への迂回路エッジ436をとる余分なコストは、「3」である。
【0050】
側面では、コンピューティングシステム100は、同一の様式において識別された任意の他の代替経路ノード434および迂回路エッジ436に関する迂回コストを決定し、経路グラフ440のルートノード432の子ノード438として識別された迂回路エッジ436を指定することができる。例えば、図4D-4Gに示される例示的グラフでは、ノード0からノード6に到達するために位置特定され得る、別の迂回路エッジ436は、ノード1からノード2へのエッジである(言い換えると、ノード0→1→2→4→6から成る代替経路/ルートが、とられてもよい)。側面では、図4D-4Gに示されるように、ノード1からノード2への迂回路エッジ436はまた、経路グラフ440のルートノード432の子ノード438として指定されることができる。側面では、ノード1からノード2への迂回路エッジ436をとることと関連付けられる迂回コストはまた、迂回コストを決定するための前述の方法に基づいて決定されることができる。例えば、図4D-4Gに示される各加重312に基づいて、目的地ノード308(すなわち、ノード6)までノード1からノード2への迂回路エッジ436をとるための迂回コストは、「2」であることが決定されてもよい。これは、ノード0→1→2→4→6から成る経路/ルート(すなわち、ノード6に到達するためにノード1からノード2への迂回路エッジ436がとられるルート)をとるときの各エッジに沿った各加重312の集約された和が、「9」であるためである。したがって、「9」と「7」(すなわち、最適経路306)との間の差をとることは、「2」となる。
【0051】
側面では、図4Aのステップ416に示されるように、いったん迂回コストが識別および/または決定されると、これは、経路グラフ440(図4Dに示されるような)の変数として挿入されてもよい。経路グラフ440の変数として迂回コストを挿入する目的は、各迂回路エッジ436をとる余分なコストを記憶し、示すことである。側面では、本情報は、識別された各代替経路/ルートの間のコストの観点からの相対的差を識別するために使用されてもよい。
【0052】
側面では、図4Bのステップ417に示されるように、いったん代替経路ノード434、迂回路エッジ436、および迂回コストが位置特定および/または識別されると、コンピューティングシステム100は、さらなる代替経路ノード442(図4Eに示される)を位置特定することができる。側面では、さらなる代替経路ノード442は、代替経路ノード434に直接接続し、代替経路ノード434までとられ得る、グラフのノードを表す。例えば、図4E-4Gに示される例示的グラフでは、さらなる代替経路ノード442は、ノード1に直接接続する、ノード4であることが識別されてもよい。さらなる代替経路ノード442の別の実施例は、ノード1に直接接続する、ノード2であってもよい。さらなる代替経路ノード442を位置特定する目的は、代替経路ノード434につながるさらなる経路/ルートが決定され得るように、代替経路ノード434に接続する、グラフ上の全てのノードを決定することである。このように、さらなる経路/ルートが、コンピューティングシステム100によって発見および/または位置特定されてもよい。コンピューティングシステム100が、これらの代替経路/ルートがある場所のいかなる事前の構想または知識も有しておらず、したがって、本明細書に説明される方法が、コンピューティングシステム100が、目的地ノード308から逆方向に戻ることによって、これらの代替経路/ルートを識別および/または発見することを可能にすることに留意されたい。
【0053】
実施例を継続すると、側面では、図4Bのステップ418に示されるように、いったんさらなる代替経路ノード442が位置特定されると、さらなる迂回路エッジ444(図4Eに示される)が、位置特定されてもよい。側面では、さらなる迂回路エッジ444は、さらなる代替経路ノード442から代替経路ノード434への接続を表すことができる。さらなる迂回路エッジ444を位置特定する目的は、迂回路エッジ436を位置特定する目的と同様に、最終的に目的地ノード308までとられ得る代替経路ノード434へのさらなる経路/ルートを識別および/または位置特定し、代替経路ノード434に到達するためにそのさらなる迂回路エッジ444をとることと関連付けられるコストを決定することである。代替経路ノード434に到達するためにさらなる迂回路エッジ444をとることと関連付けられるコストは、さらなる迂回コストと称されるであろう。さらなる迂回コストが識別および/または決定される方法は、下記にさらに議論されるであろう。
【0054】
側面では、図4Bのステップ420に示されるように、いったんさらなる迂回路エッジ444が位置特定されると、コンピューティングシステム100はさらに、子ノード438(図4Eに示される)のさらなる子ノード446として識別されたさらなる迂回路エッジ444を指定することによって、経路グラフ440を発生させることができる。さらなる子ノード446として識別されたさらなる迂回路エッジ444を指定する目的は、経路グラフ440をさらに発生させ、代替経路ノード434への代替経路/ルート接続を識別し、コンピューティングシステム100によって動作され得るデータ構造と同一のものを表すことである。
【0055】
側面では、図4Bのステップ422に示されるように、コンピューティングシステム100はさらに、代替経路ノード434に到達するためにさらなる迂回路エッジ444を横断することと関連付けられるさらなる迂回コストを識別することができる。側面では、さらなる迂回コストは、(i)さらなる迂回路エッジ444をとることによる開始ノード310から代替経路ノード434への経路/ルートに沿った各加重312の集約と、(ii)代替経路ノード434への最適経路306をとることによる開始ノード310から代替経路ノード434への経路/ルートに沿った各加重312の集約との間の差をとることに基づいて識別されてもよい。実施例として、図4E-4Gに示される例示的グラフを挙げると、開始ノード310が、ノード0である場合、およびノード4をノード1に接続するさらなる迂回路エッジ444が、ノード0からノード1(ノード1は、代替経路ノード434である)に到達するためにとられる場合、(ノード0→2→4→1であろう)経路/ルートに沿った各加重312の集約された和は、「7」に等しい。図4E-4Gに示される例示的グラフから、最適経路に沿った同一の開始点310(ノード0)からノード1への各加重312の集約された和が、(経路がノード0→1であろうため)「3」であることがさらに決定されることができる。したがって、「7」と「3」との間の差をとることによって、さらなる迂回コストは、「4」であることが決定されてもよい。言い換えると、ノード1への最適経路306の代わりにノード4からノード1へのさらなる迂回路エッジ444をとる余分なコストは、「4」である。
【0056】
側面では、コンピューティングシステム100は、説明されるものと同一の様式において識別された任意の他のさらなる代替経路ノード442およびさらなる迂回路エッジ444に関するさらなる迂回コストを決定し、経路グラフ440の子ノード438のさらなる子ノード446として識別されたさらなる迂回路エッジ444を指定することができる。例えば、図4E-4Gに示される例示的グラフでは、ノード0からノード1に到達するために位置特定され得る、別のさらなる迂回路エッジ444は、ノード2からノード1へのエッジである(すなわち、ノード0→2→1の代替経路/ルートが、とられてもよい)。側面では、図4E-4Gに示されるように、そのさらなる迂回路エッジ444はまた、経路グラフ440の子ノード438のさらなる子ノード446として指定されることができる。側面では、そのさらなる迂回路エッジ444をとることと関連付けられるさらなる迂回コストはまた、さらなる迂回コストを決定するための前述の方法に基づいて決定されることができる。例えば、図4E-4Gに示される各加重312に基づいて、ノード2からノード1へのさらなる迂回路エッジ444をとるためのさらなる迂回コストは、「6」であることが決定されてもよい。これは、ノード0→2→1の経路/ルートをとるときの各エッジに沿った各加重312の集約が、「6」であり、「6」と「3」(ノード1への最適経路306に関する加重の集約された和)との間の差をとることが、「3」となるためである。
【0057】
側面では、図4Bのステップ424に示されるように、いったんさらなる迂回コストが識別および/または決定されると、これは、経路グラフ440(図4Eに示されるような)の変数として挿入されてもよい。経路グラフ440の変数としてさらなる迂回コストを挿入する目的は、代替経路ノード434への各さらなる迂回路エッジ444をとるコストを記憶し、示すことである。側面では、本情報は、代替経路ノード434への識別された各代替経路/ルートの間のコストの観点からの相対的差を識別するために使用されてもよい。
【0058】
側面では、図4Bのステップ426に示されるように、コンピューティングシステム100は、全ての代替経路ノード、さらなる代替経路ノード、迂回路エッジ、さらなる迂回路エッジ、迂回コスト、およびさらなる迂回コストが決定されるまで、ステップ408、410、412、414、416、417、418、420、422、および424を連続して繰り返すことができる。このように、目的地ノード308への、およびそこからの全ての代替経路/ルートを示す、経路グラフ440が、発生されてもよい。側面では、いったんステップ426が完了すると、経路グラフ440は、完了する。図4C-4Gに示されるグラフに基づく、例示的な完全な経路グラフ440が、図4Gに示される。
【0059】
側面では、いったん完全な経路グラフ440が発生されると、コンピューティングシステム100は、経路グラフ440を利用し、代替経路シーケンス518(図5C-5Eに示されるような)を発生させることができる。示されるように、側面では、代替経路シーケンス518は、経路グラフ440の代替経路/ルートの順序付けられたシーケンスを表すことができる。側面では、代替経路シーケンス518は、目的地ノード308(例えば、ノード6)のために利用可能な代替経路/ルートを示す、順序付けられたリストとして発生され、表されてもよい。
【0060】
図5Aは、本開示の側面による、代替経路シーケンス518を発生させるようにコンピューティングシステム100を動作させる方法500を示す。図5B-5Eは、本開示の側面による、方法500が実施される方法のグラフ図示を示す。図5A-5Eは、図2のステップ206が実施される方法のさらなる詳細を提供する。
【0061】
側面では、コンピューティングシステム100は、以下のステップに基づいて、代替経路シーケンス518を発生させることができる。側面では、図5Aのステップ502に示されるように、コンピューティングシステム100は、ルートノード432(図5Bに示される)から子ノード438(図5Bに示される)まで経路グラフ440を横断することによって、代替経路シーケンス518を発生させるステップを開始してもよい。側面では、横断されている経路グラフ440のノードを考慮し続けるために、コンピューティングシステム100は、ヒープデータ構造520を発生させ、ヒープデータ構造520内にこれが横断する子ノードと関連付けられる情報を記憶することができる。
【0062】
側面では、ヒープデータ構造520は、子ノードに関連する情報を記憶することができる。例えば、ヒープデータ構造520は、そのアレイインデックスにおいて、各子ノード438に関する情報を記憶することができる。側面では、記憶される情報は、ノードが表すエッジ(例えば、子ノード438が表す迂回路エッジ436)、そのエッジをとることと関連付けられるコスト(例えば、迂回コスト)、およびノードの親ノードであるノード(例えば、子ノード438に到着するためにそこから横断された先行ノードである経路グラフ440上のノードが)に関連する情報を含むことができる。本情報は、これが経路グラフ440を発生させるステップの一部として決定されたため、ヒープデータ構造520内での記憶のために容易に利用可能であろう。ヒープデータ構造520内に情報を記憶する目的は、それらの親ノードに関連する子ノードの順序付けを保全することである。側面では、順序付けは、子ノードが、(それらの迂回コストの観点から)最小コストから最大コストへとヒープデータ構造520内に保存されるように行われてもよい。このように、コンピューティングシステム100は、代替経路シーケンス518を発生させ、代替経路シーケンス518を最小コストの代替経路/ルートから最大コストの代替経路/ルートに順序付けることができる。側面では、例えば、最大コストから最小コストへの他の順序付けも、行われてもよい。これは、後の表示のために代替経路/ルートをランク付けおよび/またはカテゴリ化するときに有益である。
【0063】
実施例として、図5Bに示される経路グラフ440を挙げると、ヒープデータ構造520は、最初に、2つのアレイインデックス520aおよび520bとともに発生されてもよい。インデックス520aは、ルートノード432から、ノード1からノード2への迂回路エッジ436を表す子ノード438への横断を表す。実施例では、インデックス520aは、ノード1からノード2への迂回路エッジ436と関連付けられる迂回コスト情報を記憶するものとして示される。例えば、図4A-4Gに関して前述で議論されたように、目的地ノード308(ノード6)に到着するためにノード1からノード2への迂回路エッジ436を横断する迂回コストは、「2」であることが識別された。インデックス520aはまた、子ノード438の親ノードに関する情報を記憶するものとして示される。図5Bに示される実施例では、親ノードは、ルートノード432である。
【0064】
同様に、インデックス520bは、ルートノード432から、ノード1からノード6への迂回路エッジ436を表す子ノード438への横断を表す。インデックス520bは、ノード1からノード6への迂回路エッジ436をとることと関連付けられる迂回コストを記憶するものとして示され、これは、図4A-4Gに関連する議論において前述で「3」であるものとして識別された。インデックス520bはまた、ルートノード432でもある、ノード1からノード6への迂回路エッジ436に関する子ノード438の親ノードに関する情報を記憶して示される。分かり得るように、図5Bに示されるヒープデータ構造520は、特定の順序を有する。側面では、本順序は、子ノードが表す迂回路エッジ436と関連付けられる増加する迂回コストに基づいて、子ノードを保存するためのものであってもよい。例えば、図5Bに与えられる実施例では、インデックス520aは、インデックス520bよりも低いその迂回路エッジ436と関連付けられる迂回コストを有するものとして見なされてもよい。したがって、より低い迂回コストを伴う迂回路エッジ436(この場合では、ノード1からノード2をとることと関連付けられる迂回路エッジ436)を表すノードは、最初に、ヒープデータ構造520内にインデックス位置の観点から保存されてもよい。
【0065】
側面では、図5Aのステップ504に示されるように、いったんコンピューティングシステム100が子ノード438を横断すると、コンピューティングシステム100は、子ノード438と関連付けられる迂回路エッジ436を識別することができる。例えば、図5Bに示される実施例を挙げると、子ノード438が、ノード1からノード2への迂回路エッジ436を表すノードである場合、コンピューティングシステム100は、ノード1からノード2に横断することと関連付けられるエッジであるものとして迂回路エッジ436を位置特定することができる。
【0066】
側面では、図5Aのステップ506に示されるように、いったん迂回路エッジ436が位置特定されると、コンピューティングシステム100は、コンピューティングシステム100が、迂回路エッジ436の終端ノードに到達することを決定するまで、目的地ノード308(ノード6)から逆に経路グラフ440に関する値を算出するために前述で使用されたグラフ(図5Cに示され、図3Bおよび4C-4Gと同一のグラフである)を横断することによって、代替経路シーケンス518を発生させることができる。側面では、コンピューティングシステム100は、コンピューティングシステム100が迂回路エッジ436の終端ノードに遭遇するまで、目的地ノード308から逆方向に1つまたはそれを上回るツリーエッジ316をとることによって、本横断を実施することができる。実施例として、子ノード438がノード1からノード2への迂回路エッジ436を表す実施例を挙げると、コンピューティングシステム100は、ノード2に到達するまで(ノード2は、これがノード1からノード2への迂回路エッジ436の目的地であるため、迂回路エッジ436の終端ノードである)、1つまたはそれを上回るツリーエッジ316に沿って目的地ノード308(ノード6)から逆方向に横断することができる。結果として、横断は、ノード6→4→2であろう。
【0067】
側面では、図5Aのステップ508に示されるように、いったん迂回路エッジ436の終端ノードが位置特定されると、コンピューティングシステム100は、これが代替経路/ルートを発見した、または見出したことを決定することができる。側面では、見出される代替経路/ルートは、目的地ノード308までその迂回路エッジ436をとることと関連付けられる経路/ルートであってもよい。ノード1からノード2への迂回路エッジ436の場合では、コンピューティングシステム100は、これが、ノード1からノード2への迂回路エッジ436を含む代替経路/ルートを発見したことを決定することができる。側面では、代替経路/ルートを完了するために、コンピューティングシステム100はさらに、これが開始ノード310(例えば、ノード0)に到達するまで、グラフを通して逆方向に移動し続けることができる。したがって、所与の実施例では、コンピューティングシステム100は、ノード2→1→0に進むことができる。側面では、いったんコンピューティングシステム100が開始ノード310に到達すると、コンピューティングシステム100は、これが横断した代替経路/ルートを成すノードおよびエッジを決定するために、これが横断した全てのノードを考慮することができる。側面では、横断された経路/ルートは、代替経路シーケンス518の代替経路/ルートとして挿入されてもよい。図5Cは、ノード0→1→2→4→6の経路/ルートである、前述の実施例に基づいて発見された代替経路/ルートを列挙する、代替経路シーケンス518を示す。
【0068】
側面では、コンピューティングシステム100は、説明されるものと類似する様式において全ての子ノードに関して経路グラフ440を横断し続け、それらの子ノードと関連付けられる迂回路エッジに関する全ての代替経路/ルートを位置特定することができる。例えば、図5Bに示される例示的経路グラフ440を挙げると、コンピューティングシステム100はさらに、(別の子ノード438と関連付けられる)ノード1からノード6への迂回路エッジ436を識別することができる。側面では、いったんコンピューティングシステム100が迂回路エッジ436を識別すると、これは、ノード1からノード2への迂回路エッジに関して前述で説明されたものと同様に、これがその迂回路エッジ436(ノード6)と関連付けられる終端ノードを位置特定するまで、図5Dに示されるグラフを横断することができる。側面では、いったんコンピューティングシステム100が迂回路エッジ436の終端ノード(この場合では、ノード6)を識別すると、ノード1からノード6への迂回路エッジ436を含む、代替経路/ルートが発見されたことが決定されることができる。図5Dに示されるように、ノード6はまた、目的地ノード308であるため、いかなる他の経路/ルートも、ノード6に到着するために横断される必要はなかった。したがって、代替経路/ルートは、ノード6→1のみであった。側面では、代替経路/ルートを完了するために、コンピューティングシステム100はさらに、これが開始ノード310(例えば、ノード0)に到達するまで、グラフを通して逆方向に移動し続けることができる。したがって、所与の実施例では、コンピューティングシステム100は、ノード1→0に進むことができる。側面では、いったん完全な代替経路/ルートが識別されると、代替経路/ルートは、代替経路シーケンス518の代替経路/ルートとして挿入されてもよい。図5Dは、0→1→6としての経路/ルートを列挙する、代替経路シーケンス518を示す。
【0069】
側面では、図5Aのステップ510に示されるように、コンピューティングシステム100はさらに、子ノード438からさらなる子ノード446まで経路グラフ440を横断し続けることによって、代替経路シーケンス518を発生させることができる。これらの付加的横断を実施する目的は、さらなる子ノード446と関連付けられるさらなる迂回路エッジ444を伴う代替経路/ルートをさらに位置特定することである。
【0070】
側面では、さらなる子ノード446に関連する情報が、ヒープデータ構造520内に記憶されてもよい。図5Bに示される実施例では、インデックス520c-520fは、ヒープデータ構造520内に記憶され得る、さらなる子ノード438に関連する情報の実施例を示す。実施例として、インデックス520cは、ノード2からノード1へのさらなる迂回路エッジ444と関連付けられるさらなる子ノード446に関連する情報を記憶して示される。側面では、さらなる子ノード446が表すエッジ(例えば、ノードが表すさらなる迂回路エッジ444)に関連する情報が、ヒープデータ構造520内に記憶されてもよい。側面では、ヒープデータ構造520内に記憶されるさらなる情報は、そのエッジをとることと関連付けられるコスト(例えば、迂回コストおよびそのさらなる迂回路エッジ444をとるためのさらなる迂回コスト)、およびさらなる子ノード446の親ノード(例えば、さらなる子ノード446に到着するためにそこから横断された先行ノードである経路グラフ440上のノード)に関連する情報を含むことができる。
【0071】
インデックス520cに関して、さらなる子ノード446の親ノードは、ノード1からノード2への迂回路エッジ436と関連付けられる子ノード438であるように示される。インデックス520cはまた、子ノード438を介してさらなる子ノード446をとることと関連付けられるコストが「5」であることを示す。これは、2である、ルートノード432(6→R)から子ノード438(1→2)をとることからのコスト(すなわち、迂回コスト)と、3である、子ノード438(1→2)からさらなる子ノード446(2→1)をとることからのコスト(すなわち、さらなる迂回コスト)とを集約することによって決定される。
【0072】
実施例を継続すると、側面では、図5Aのステップ512に示されるように、いったんコンピューティングシステム100が子ノード438からさらなる子ノード446まで横断すると、コンピューティングシステム100は、さらなる子ノード446と関連付けられるさらなる迂回路エッジ444を識別することができる。例えば、図5Bに関して、さらなる子ノード438が、ノード2からノード1へのさらなる迂回路エッジ444を表すノードである場合、コンピューティングシステム100は、ノード2からノード1に横断することと関連付けられるエッジであるものとしてさらなる迂回路エッジ444を位置特定することができる。
【0073】
側面では、図5Aのステップ514に示されるように、いったんさらなる迂回路エッジ444が位置特定されると、コンピューティングシステム100は、コンピューティングシステム100が、さらなる迂回路エッジ444の終端ノードに到達することを決定するまで、目的地ノード308(ノード6)から逆に図5Eに示されるグラフを横断することによって、代替経路シーケンス518を発生させることができる。側面では、コンピューティングシステム100は、コンピューティングシステム100がさらなる子ノード446の親ノード(すなわち、子ノード438)と関連付けられる迂回路エッジ436の終端ノードに遭遇するまで、目的地ノード308から逆方向に1つまたはそれを上回るツリーエッジ316をとることによって、本横断を実施することができる。図5Eに示される実施例では、終端ノードは、これがノード1からノード2への子ノード438と関連付けられる迂回路エッジ436の終端ノードであるため、ノード2である。側面では、いったん終端ノードが位置特定されると、コンピューティングシステム100は、これがさらなる迂回路エッジ444の終端ノードに到達するまで、逆方向にその迂回路エッジ436をとることができる。図5Eの実施例では、これは、ノード1である。いったんコンピューティングシステム100がさらなる迂回路エッジ444の終端ノードを位置特定すると、これは、これがさらなる代替経路/ルートを発見したことを決定することができ、これがその経路/ルートに沿って横断したノードを考慮することができる。図5Eに示される実施例では、その代替経路/ルートは、ノード6→4→2→1から成る。
【0074】
側面では、図5Aのステップ516に示されるように、いったんさらなる迂回路エッジ444の終端ノードが位置特定されると、コンピューティングシステム100は、これが代替経路/ルートを発見した、または見出したことを決定することができる。側面では、見出される代替経路/ルートは、目的地ノード308までそのさらなる迂回路エッジ444をとることと関連付けられる経路/ルートであってもよい。ノード2からノード1へのさらなる迂回路エッジ444の場合では、コンピューティングシステム100は、これが、ノード2からノード1へのさらなる迂回路エッジ444を含む代替経路/ルートを発見したことを決定することができる。代替経路/ルートを完了するために、コンピューティングシステム100はさらに、これが開始ノード310(例えば、ノード0)に到達するまで、グラフを通して逆方向に移動し続けることができる。したがって、所与の実施例では、コンピューティングシステム100は、ノード1→2→0に進むことができる。いったんコンピューティングシステム100が開始ノード310に到達すると、コンピューティングシステム100は、これが横断した代替経路/ルートを成すノードおよびエッジを決定するために、これが横断した全てのノードを考慮することができる。側面では、横断された経路/ルートは、代替経路シーケンス518の代替経路/ルートとして挿入されてもよい。図5Eは、ノード0→2→1→2→4→6の経路/ルートである、前述の実施例に基づいて発見された代替経路/ルートを列挙する、代替経路シーケンス518を示す。
【0075】
側面では、図5Aのステップ517に示されるように、コンピューティングシステム100は、説明されるものと類似する様式において全てのさらなる子ノードに関して連続して経路グラフ440を横断し続け、それらのさらなる子ノードと関連付けられる迂回路エッジに関する全ての代替経路/ルートを位置特定することができる。このように、全ての代替経路/ルートおよびさらなる代替経路/ルートが、決定され、および/または見出されてもよい。側面では、ステップ517を完了することに応じて、完全な代替経路シーケンス518が、発生される。
【0076】
側面では、代替経路シーケンス518の完了に応じて、コンピューティングシステム100は、代替経路シーケンス518を使用して、さらなる機能を実施することができる。例えば、側面では、図2のステップ208および210に関して前述で説明されるように、コンピューティングシステム100はさらに、代替経路シーケンス518を表示するための双方向グラフィカルユーザインターフェース(GUI)(図7-9に示されるような)を発生させることができる。側面では、ステップ210に示されるように、コンピューティングシステム100は、さらなるデバイス上での表示のために双方向GUIを伝送することができる。例えば、側面では、伝送は、第1のデバイス102の画面、モニタ、または他のディスプレイユニット上での表示のために、第1のデバイス102に対してであってもよい。
【0077】
側面では、上記に説明される方法に基づいて、コンピューティングシステム100は、コンピューティングシステム100が、代替経路を発見および/または位置特定することを試みながら、経路/ルートを無限に横断し得る状況に遭遇し得る。これは、特に、ある経路が円形に接続される場合に当てはまる。例えば、図5Eは、相互に円形に接続される、ノード1からノード2への、およびノード2からノード1への2つのエッジを示す。いくつかの事例では、これは、コンピューティングシステム100が、グラフ構造に応じて、無限ループにおいてノードを横断することにつながり得る。無限ループする状況を回避するために、コンピューティングシステム100が、最大反復回数にわたって(すなわち、最大である距離まで)エッジを横断することに限定され得、および/またはエッジ加重の集約に関する最大値が経路/ルートに関して達成されるまで、エッジを横断することに限定され得るように、安全機構が、コンピューティングシステム100のために実装されてもよい。例えば、側面では、ダイクストラアルゴリズムまたはAアルゴリズムのいずれかを適用するとき、コンピューティングシステム100が、最大で所定の距離にわたってのみそのように行うであろうルールが、コンピューティングシステム100のために設定されてもよく、所定の距離は、ツリーエッジ、迂回路エッジ、およびさらなる迂回路エッジの1つまたはそれを上回る加重が合計され得る最大数値を表す。側面では、類似するルールが、図2、3、4A、4B、または5Aに関して言及されるステップのうちのいずれかのために設定されてもよい。このように、コンピューティングシステム100の横断は、有意義な代替経路/ルートが決定および/または位置特定されるように、制御されてもよい。
【0078】
上記に説明されるコンピューティングシステム100が、これが実世界目的地を表すために使用され得るカスタムデータ構造(グラフデータ構造およびヒープデータ構造等)を使用して、代替経路/ルートを位置特定するための新規の方法を提供するため、従来のシステムからの技術状態を有意に改良することが発見されている。従来のシステムは、典型的には、目的地への最適経路306を返すように構成される。しかしながら、コンピューティングシステム100は、実世界目的地まで利用可能である経路/ルートを決定するとき、コンピューティングシステム100のユーザにより多くの選択肢を与えるために、これが目的地への多くの代替経路/ルートを動的に位置特定し得るという点で、より堅牢な能力を提供する。コンピューティングシステム100は、上記に説明される新規の方法およびプロシージャを通してこれを行い、これは、実施されると、コンピューティングシステム100が代替経路/ルートを位置特定するための高速かつ効率的な方法を提供する。
【0079】
コンピューティングシステム100はまた、代替経路/ルートを位置特定するとき、コンピュータの性能を有意に改良するために、説明されるカスタムデータ構造を活用する方法を提供する。例えば、ヒープデータ構造520の使用は、コンピューティングシステム100が、それらが位置特定される際に事前に順序付けられ得る代替経路/ルートの順序付けられたシーケンスを発生させることを可能にし、したがって、いったん代替経路/ルートが決定されると、最終ステップとして順序付けを実施するシステムと比較されるとき、データのより少ない処理を要求する。
【0080】
コンピューティングシステム100はまた、代替経路/ルートが変化する条件に基づいて動的に決定される必要がある、輸送およびロジスティクス等の産業を有意に改良するために使用されることができる。例えば、ある輸送経路/ルートが、不測の状況に起因して、もはや航行可能ではない状態になる場合、コンピューティングシステム100は、代替経路/ルートを迅速かつ効率的に位置特定するために使用されてもよい。このように、商業活動およびロジスティクスの混乱は、最小限にされ、したがって、企業、個人等の金銭および時間を節約し得る。
【0081】
上記に説明される方法200、300、400、401、および500は、プロセッサ、特殊目的コンピュータ、集積回路、集積回路コア、またはそれらの組み合わせ等の1つまたはそれを上回るコンピューティングデバイスによって実行されるように、非一過性コンピュータ可読媒体上に記憶される命令として実装されてもよい。非一過性コンピュータ可読媒体は、揮発性メモリ、不揮発性メモリ、内部メモリ、外部メモリ、またはそれらの組み合わせ等の任意の数のメモリユニットを用いて実装されてもよい。非一過性コンピュータ可読媒体は、コンピューティングシステム100の一部として統合される、またはコンピューティングシステム100の可撤性部分としてインストールされてもよい。非一過性コンピュータ可読媒体は、第1のデバイス102、第2のデバイス106、またはそれらの組み合わせの一部として統合されてもよい。
【0082】
本システムのコンポーネント
図6は、本開示の側面による、コンピューティングシステム100を実装するコンポーネントの例示的アーキテクチャ600である。側面では、コンポーネントは、コンピューティングシステム100のデバイス(例えば、第1のデバイス102または第2のデバイス106)のうちのいずれかの一部であってもよく、その上でコンピューティングシステム100の方法が実施されるハードウェアコンポーネントであってもよい。側面では、コンポーネントは、制御ユニット602と、記憶ユニット606と、通信ユニット616と、ユーザインターフェース612とを含むことができる。制御ユニット602は、制御インターフェース604を含んでもよい。制御ユニット602は、コンピューティングシステム100の知能の一部または全てを提供するために、ソフトウェア610を実行してもよい。制御ユニット602は、いくつかの異なる方法で実装されてもよい。例えば、制御ユニット602は、プロセッサ、特定用途向け集積回路(ASIC)、埋込プロセッサ、マイクロプロセッサ、ハードウェア制御論理、ハードウェア有限状態マシン(FSM)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、またはそれらの組み合わせであってもよい。
【0083】
制御インターフェース604は、制御ユニット602とコンピューティングシステム100の他の機能的ユニットまたはデバイスとの間の通信のために使用されてもよい。制御インターフェース604はまた、コンピューティングシステム100の機能的ユニットまたはデバイスの外部との通信のために使用されてもよい。制御インターフェース604は、コンピューティングシステム100の機能的ユニットまたはデバイスから、または遠隔デバイス620から情報を受信してもよく、情報をコンピューティングシステム100の機能的ユニットまたはデバイスに、または遠隔デバイス620に伝送してもよい。遠隔デバイス620は、コンピューティングシステム100の外部のユニットまたはデバイスを指す。
【0084】
制御インターフェース604は、異なる方法で実装されてもよく、制御ユニット602とインターフェースをとられているコンピューティングシステム100の機能的ユニットまたはデバイスまたは遠隔デバイス620に応じて、異なる実装を含んでもよい。例えば、制御インターフェース604は、光学回路網、導波管、無線回路網、バスに取り付けられるための有線回路網、アプリケーションプログラミングインターフェース、またはそれらの組み合わせを用いて実装されてもよい。制御インターフェース604は、コンピューティングシステム100の機能的ユニットまたはデバイスまたは遠隔デバイス620とインターフェースをとるために、バス等の通信インフラストラクチャ622に接続されてもよい。
【0085】
記憶ユニット606は、ソフトウェア610を記憶してもよい。例証的目的のために、記憶ユニット606は、単一の要素として示されるが、記憶ユニット606が、記憶要素の分散であり得ることを理解されたい。また、例証的目的のために、記憶ユニット606は、単一の階層記憶システムとして示されるが、記憶ユニット606が、異なる構成にあり得ることを理解されたい。例えば、記憶ユニット606は、異なるレベルのキャッシュ、主要メモリ、回転媒体、またはオフライン記憶装置を含む、メモリ階層システムを形成する、異なる記憶技術を用いて形成されてもよい。記憶ユニット606は、揮発性メモリ、不揮発性メモリ、内部メモリ、外部メモリ、またはそれらの組み合わせであってもよい。例えば、記憶ユニット606は、不揮発性ランダムアクセスメモリ(NVRAM)、フラッシュメモリ、ディスク記憶装置等の不揮発性記憶装置、またはスタティックランダムアクセスメモリ(NVRAM)またはダイナミックランダムアクセスメモリ(DRAM)等の揮発性記憶装置であってもよい。
【0086】
記憶ユニット606は、記憶インターフェース608を含んでもよい。記憶インターフェース608は、記憶ユニット606とコンピューティングシステム100の他の機能的ユニットまたはデバイスとの間の通信のために使用されてもよい。記憶インターフェース608はまた、コンピューティングシステム100の外部との通信のために使用されてもよい。記憶インターフェース608は、コンピューティングシステム100の他の機能的ユニットまたはデバイスから、または遠隔デバイス620から情報を受信してもよく、情報をコンピューティングシステム100の他の機能的ユニットまたはデバイスに、または遠隔デバイス620に伝送してもよい。記憶インターフェース608は、記憶ユニット606とインターフェースをとられているコンピューティングシステム100の機能的ユニットまたはデバイスまたは遠隔デバイス620に応じて、異なる実装を含んでもよい。記憶インターフェース608は、制御インターフェース604の実装に類似する技術および技法を用いて実装されてもよい。
【0087】
通信ユニット616は、コンピューティングシステム100のデバイス、コンポーネント、モジュール、またはユニットへの、または遠隔デバイス620への通信を可能にし得る。例えば、通信ユニット616は、コンピューティングシステム100が、そのコンポーネントまたはデバイス、例えば、第1のデバイス102と第2のデバイス106との間で通信することを可能にし得る。通信ユニット616はさらに、コンピューティングシステム100のデバイスが、ネットワーク104を通して、アタッチメント、周辺デバイス、またはそれらの組み合わせ等の遠隔デバイス620と通信することを可能にし得る。
【0088】
示されるように、ネットワーク104は、様々なネットワークおよびネットワークトポロジに及び、それを表してもよい。例えば、ネットワーク104は、ネットワークの一部であり、無線通信、有線通信、光通信、超音波通信、またはそれらの組み合わせを含んでもよい。例えば、衛星通信、セルラー通信、Bluetooth(登録商標)、赤外線データ協会標準(IrDA)、無線フィデリティ(WiFi)、および世界規模相互運用マイクロ波アクセス(WiMAX)が、ネットワーク104内に含まれ得る無線通信の実施例である。ケーブル、イーサネット(登録商標)、デジタル加入者回線(DSL)、光ファイバ回線、ファイバトゥザホーム(FTTH)、および基本電話サービス(POTS)が、ネットワーク104内に含まれ得る有線通信の実施例である。さらに、ネットワーク104は、いくつかのネットワークトポロジおよび距離を横断してもよい。例えば、ネットワーク104は、直接接続、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、またはそれらの組み合わせを含んでもよい。
【0089】
通信ユニット616はまた、コンピューティングシステム100のデバイスが、ネットワーク104の一部として機能し、ネットワーク104へのエンドポイントまたは端末ユニットであるように限定されないことを可能にする、通信ハブとして機能してもよい。通信ユニット616は、ネットワーク104との相互作用のために、マイクロエレクトロニクスまたはアンテナ等の能動的および受動的コンポーネントを含んでもよい。
【0090】
通信ユニット616は、通信インターフェース618を含んでもよい。通信インターフェース618は、通信ユニット616とコンピューティングシステム100の他の機能的ユニットまたはデバイスとの間の、または遠隔デバイス620への通信のために使用されてもよい。通信インターフェース618は、コンピューティングシステム100の他の機能的ユニットまたはデバイスから、または遠隔デバイス620から情報を受信してもよく、情報をシステム100の他の機能的ユニットまたはデバイスに、または遠隔デバイス620に伝送してもよい。通信インターフェース618は、通信ユニット616とインターフェースをとられている機能的ユニットまたはデバイスに応じて、異なる実装を含んでもよい。通信インターフェース618は、制御インターフェース604の実装に類似する技術および技法を用いて実装されてもよい。
【0091】
ユーザインターフェース612は、コンピューティングシステム100によって発生される情報を提示してもよい。側面では、ユーザインターフェース612は、コンピューティングシステム100のユーザが、コンピューティングシステム100のデバイスまたは遠隔デバイス620とインターフェースをとることを可能にする。ユーザインターフェース612は、入力デバイスと、出力デバイスとを含んでもよい。ユーザインターフェース612の入力デバイスの実施例は、データおよび通信入力を提供するためのキーパッド、ボタン、スイッチ、タッチパッド、ソフトキー、キーボード、マウス、またはそれらの任意の組み合わせを含んでもよい。出力デバイスの実施例は、ディスプレイインターフェース614を含んでもよい。側面では、(図5C-5Eの)代替経路シーケンス518は、ディスプレイインターフェース614上に表示されてもよい。制御ユニット602は、コンピューティングシステム100によって発生される情報を提示するようにユーザインターフェース612を動作させてもよい。制御ユニット602はまた、コンピューティングシステム100によって発生される情報を提示するために、またはコンピューティングシステム100の他の機能的ユニットを制御するために、ソフトウェア610を実行してもよい。ディスプレイインターフェース614は、ディスプレイ、プロジェクタ、ビデオスクリーン、またはそれらの任意の組み合わせ等の任意のグラフィカルユーザインターフェースであってもよい。
【0092】
本システムの双方向GUI
図7-9は、本開示の側面による、代替経路シーケンス518(図5C-5Eに示される)を表示し、ユーザがコンピューティングシステム100とインターフェースをとることを可能にするためのグラフィカルユーザインターフェース(GUI)を示す。図7に関して、双方向インターフェース702が、示される。側面では、双方向インターフェース702は、コンピューティングシステム100によって発生され、ディスプレイユニット上での表示のためにコンピューティングシステム100のデバイスに伝送されてもよい。側面では、ディスプレイユニットは、図6のディスプレイインターフェース614であってもよい。側面では、双方向インターフェース702は、コンピューティングシステム100のデバイスのうちの1つの上にインストールされたアプリケーションソフトウェアまたはウェブブラウザを介してアクセスされてもよい。例えば、側面では、双方向インターフェース702は、第1のデバイス102または第2のデバイス106上にインストールされたアプリケーションソフトウェアまたはウェブブラウザを介してアクセスされてもよい。
【0093】
側面では、双方向インターフェース702は、コンピューティングシステム100のユーザが、コンピューティングシステム100と相互作用し、および/またはインターフェースをとることを可能にすることができる。側面では、相互作用は、例えば、コンピューティングシステム100が、それへの、およびそこからの代替経路/ルートを見出し得る、実世界目的地を選択することを含むことができる。側面では、選択に基づいて、コンピューティングシステム100は、上記に説明される方法200、300、400、401、および500に基づいて、代替経路/ルートを発生させ、双方向インターフェース702を介してユーザに代替経路/ルートを提示することができる。
【0094】
側面では、双方向インターフェース702はさらに、位置特定され得る代替経路/ルートに基づく基準を使用してフィルタリングし、および/またはそれを選択するための能力をユーザに提供することによって、ユーザがコンピューティングシステム100と相互作用することを可能にすることができる。例えば、側面では、ユーザは、ユーザが使用することを好む、特定の輸送業者を選択することができる。図7に示される実施例では、710は、ユーザによって選択され得る航空会社のドロップダウンリストを示す。側面では、ユーザ選択に基づいて、選択された輸送業者に関する経路/ルートのみが、コンピューティングシステム100によってフィルタリングおよび表示されてもよい。
【0095】
側面では、さらなるフィルタリングおよび/または選択基準が、コンピューティングシステム100によって位置特定される経路/ルートをさらに精緻化および/またはフィルタリングするために、ユーザによって提供されてもよい。例えば、側面では、ユーザはさらに、ボタン708を介してアクセスされ得るドロップダウンリストを使用して、到着港を選択することができる。実施例では、到着港は、目的地であり得る、特定の空港、海港、バスターミナル等であってもよい。側面では、図7に示されるように、さらなるトグルボタン706が、閾値距離または運行時間内の経路/ルートのみが位置特定および/または表示され得るように、経路/ルートに沿った運行時間を最小限にすること等の基準に基づいて、コンピューティングシステム100によって発生および/または位置特定される経路/ルートをさらに精緻化するために使用されてもよい。乗継時間を最小限にすること、最速ルートを提供すること、ある金銭的コスト以内の経路/ルートを提供すること、要求される到着および出発日付等の他の基準もまた、フィルタリング基準として使用されることができる。
【0096】
側面では、双方向インターフェース702は、ユーザ提供されたフィルタリング基準に基づいて、コンピューティングシステム100によって位置特定された代替経路/ルートを表示することができる。図7では、704a-704gは、ユーザ提供されたフィルタリング基準に基づいて、コンピューティングシステム100によって位置特定された代替経路/ルートの実施例を示す。側面では、704a-704gは、各代替経路/ルートに関連するさらなる情報を表示することができる。側面では、本情報は、経路/ルートと関連付けられる日付および時間、その経路/ルートを運航する輸送業者、輸送業者および/または航空船舶に関する情報、および他の経路/ルートに対する経路/ルートに関するさらなる情報(例えば、経路/ルートが金銭的コストの観点から最安ルートであるかどうか、経路/ルートが目的地に到着するための最速ルートであるかどうか、経路/ルートを運航する輸送業者および/または航空船舶が貨物に優しい航空船舶を提供するかどうか等)を含むことができる。側面では、本情報は、本情報を記憶するデータベースまたはリポジトリから取得されてもよい。側面では、本情報は、コンピューティングシステム100が代替経路/ルートを位置特定する際、データベースまたはリポジトリから動的に取得および/または決定されてもよい。
【0097】
実施例として、704bは、2021年7月9日の関連付けられる出発日付を伴う経路/ルートを表示する。704bはまた、14:30 PDT~22:24 EDTである、経路/ルートと関連付けられる推定される移動時間を示す。輸送業者(例えば、United Airlines)が、表示されてもよく、その輸送業者に関連する情報もまた、表示されることができる(例えば、フライト番号は、UA 2612であり、使用されるべき航空船舶は、Boeing 737-900航空機である)。704bはまた、目的地港における推定される到着時間(例えば、11:20 PDT)を表示することができる。704bはさらに、経路/ルートに関するさらなる情報を示すリボンまたはアイコンを表示することができる。図7に示される実施例では、704bに関して示されるアイコンは、その経路/ルートが他の経路/ルートと比較して金銭的コストの観点から最安であり、また、貨物に優しい(例えば、ある閾値質量、サイズ、または重量を上回る商品または人員もまた、その経路/ルートを使用して輸送され得ることを意味する)ことを示す。
【0098】
側面では、双方向インターフェース702上に表示される情報に基づいて、コンピューティングシステム100のユーザは、ユーザの特定の輸送の必要性に最適である代替経路/ルートを決定し、その経路/ルートを選定することができる。側面では、これは、ボタンまたはアイコンを介して、または所望される特定の経路/ルート上をクリックすることによって行われてもよい。
【0099】
図8に関して、第2の双方向インターフェース802が、示される。側面では、第2の双方向インターフェース802は、ユーザに推奨される経路/ルート804を表示することができる。側面では、推奨される経路/ルート804は、ユーザによって入力される種々のフィルタリング基準に基づいてもよく、および/またはコンピューティングシステム100によって代替経路/ルートを発生させるための方法の一部として実装される予測アルゴリズムに基づいてもよい。例えば、側面では、ユーザが、経路/ルートを位置特定するためのあるフィルタリング基準を入力する場合、コンピューティングシステム100は、その基準を使用し、その基準を満たす経路/ルートを発生させ、および/または位置特定し、さらに、その基準に基づいて、経路/ルートを推奨することができる。側面では、あるタイブレーク基準および/またはルールもまた、推奨を精緻化および/または最適化するために実装されることができる。例えば、フィルタリング基準に合致する、複数の経路/ルートが、位置特定される場合、コンピューティングシステム100はさらに、推奨される経路/ルートとして、金銭的コストの観点から最安であること、目的地への最速ルート、最短の乗継を伴う経路等のさらなる基準を満たす経路/ルートを選定することによって、複数の経路/ルートの中から推奨される経路/ルートを選定することができる。
【0100】
側面では、コンピューティングシステム100はさらに、予測アルゴリズムを使用し、ユーザへの推奨を行うことができる。予測アルゴリズムは、ある時間周期にわたって経路/ルート、目的地、輸送業者等についてのパターンを学習するために、コンピューティングシステム100によって実装され得る、アルゴリズムまたはアルゴリズムのセットを指す。側面では、学習されたパターンに基づいて、コンピューティングシステム100は、ユーザにとって最良の経路/ルートである可能性が高い経路/ルートについての予測を行うことができる。側面では、予測アルゴリズムはまた、推奨を提供するとき、ユーザのフィルタリング基準を考慮することができる。例えば、ユーザが、ユーザが使用することを所望する特定の輸送業者を有する場合、予測アルゴリズムは、その特定の輸送業者についての学習された情報に基づいて予測を行い、その特定の輸送業者に関する推奨のみを行うことができる。側面では、予測アルゴリズムは、経路/ルート、目的地、輸送業者等についてのパターンを学習するように、TensorFlowTM等のツールを使用して、機械学習および/または人工知能技法を使用して訓練されてもよい。
【0101】
側面では、予測アルゴリズムは、例えば、特定の実世界目的地に関するパターンを学習するように訓練されてもよい。側面では、学習されるパターンは、例えば、特定の目的地への経路/ルートが最も混雑する時間および日付、該当する場合、特定の目的地への経路/ルートが頻繁な遅延を有する時期、特定の目的地への、およびそこからの輸送が中断される、または頻繁にルート変更される必要性があるように、特定の目的地において不都合な天候パターンを有する日および/または月等に関連してもよい。同様に、予測アルゴリズムは、特定の輸送業者についてのパターンを学習するように訓練されてもよい。例えば、予測アルゴリズムは、それらの推定される到着時間を一貫して満たす輸送業者、頻繁な遅延を有する輸送業者、頻繁に破損または損傷した航空船舶を有する輸送業者、経路/ルートに関する特定の輸送業者と関連付けられる金銭的コスト等を学習するように訓練されてもよい。前述は、予測アルゴリズムによって学習され得るパターンの実施例である。POSAは、前述の実施例と一貫する他のパターンもまた、予測アルゴリズムを使用して学習され得ることを認識するであろう。
【0102】
側面では、いったん訓練されると、予測アルゴリズムは、ユーザの必要性に最良に適合する経路/ルートに関する推奨を行うために使用されてもよい。このように、コンピューティングシステム100は、ユーザに最良の可能性として考えられる経路/ルートを提供することができる。また、予測アルゴリズムは、コンピューティングシステム100が、ユーザの必要性に最良に適合し得る経路/ルートについてのパターンを連続的に学習し、ユーザへの推奨を最適化することを可能にする。そのように行うための能力は、コンピューティングシステム100に、商品および人員を輸送するために最も信頼性があることが決定される経路/ルートを推奨するための能力を提供することができる。側面では、最も信頼性のある経路/ルートは、ユーザが天候、遅延、信頼性のない輸送業者等に起因して出荷をルート変更しなければならない機会が少なくなる可能性がより高いであろうため、これは、ユーザが、推奨される経路/ルートをとることによって、金銭および時間を節約する結果をもたらすことができる。
【0103】
図9に関して、第3の双方向インターフェース902が、示される。側面では、第3の双方向インターフェース902は、デスクトップアプリケーションを介して、またはブラウザを介してアクセスされ得る、輸送および/またはロジスティクス用途ソフトウェアの表示の一部であってもよい。側面では、第3の双方向インターフェース902は、第3の双方向インターフェース902のユーザが、目的地への推奨される経路/ルートをユーザに示させ、商品または人員の出荷/派遣を計画するときにその経路/ルートを選択するための能力を有し得るように、第3の双方向インターフェース902の一部として統合された第2の双方向インターフェース802を有することができる。
【0104】
側面では、推奨は、第3の双方向インターフェース902を介してユーザによって提供される種々の入力に基づき、および/または第3の双方向インターフェース902の種々のボックスおよびウィンドウ内に示されるような出荷に関して記憶される情報に基づいてもよい。側面では、表示および/または記憶される情報は、代替経路/ルートおよび/または推奨される経路/ルートを発生させ、および/または位置特定するためにコンピューティングシステム100によって使用される、情報およびフィルタリング基準を提供することができる。
【0105】
開示されるコンピューティングシステム100の上記の詳細な説明および側面は、網羅的であること、または開示されるコンピューティングシステム100を上記に開示される精密な形態に限定することを意図していない。コンピューティングシステム100に関する具体的実施例が、例証的目的のために上記に説明されるが、当業者が認識するであろうように、種々の同等の修正が、開示されるコンピューティングシステム100の範囲内で可能性として考えられる。例えば、プロセスおよび方法は、所与の順序において提示されるが、代替実装は、異なる順序において、ステップを有するルーチンを実施し、またはプロセスもしくは方法を有するシステムを採用してもよく、いくつかのプロセスまたは方法は、代替または副次的組み合わせを提供するために、削除される、移動される、追加される、細分化される、組み合わせられる、または修正されてもよい。これらのプロセスまたは方法はそれぞれ、様々な異なる方法で実装されてもよい。また、プロセスまたは方法は、随時、連続的に実施されるものとして示されるが、これらのプロセスまたはブロックは、代わりに、並行して実施または実装されてもよい、または異なる時間に実施されてもよい。
【0106】
上記に説明される結果として生じる方法200、300、400、401、および500、ならびにコンピューティングシステム100は、コスト効果が高く、非常に多用途であり、正確であり、迅速、効率的、かつ経済的な製造、適用、および利用のためにコンポーネントを適合させることによって実装されてもよい。本開示の側面の別の重要な側面は、これが、コストを削減し、システムを簡略化し、および/または性能を増加させる歴史的傾向を有益に支援およびサービス提供することである。
【0107】
本開示の側面のこれらおよび他の有益な側面は、その結果、技術状態を少なくとも次のレベルまで進める。開示される側面は、コンピューティングシステム100を実装する最良モードとして説明されているが、多くの代替、修正、および変形例が、本明細書の説明に照らして、当業者に明白となるであろうことを理解されたい。故に、含まれる請求項の範囲内に該当する全てのそのような代替、修正、および変形例を包含することを意図している。本明細書に記載される、または付随の図面に示される全ての事項は、例証的かつ非限定的意味で解釈されるものである。故に、本開示の範囲は、例証される側面によってではなく、添付される請求項およびそれらの均等物によって決定されるべきである。
図1
図2
図3A
図3B
図4A
図4B
図4C
図4D
図4E
図4F
図4G
図5A
図5B
図5C
図5D
図5E
図6
図7
図8
図9
【国際調査報告】