(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-30
(45)【発行日】2022-12-08
(54)【発明の名称】ジョブ位置間の走行コストを用いたジョブスケジューリングのための方法、システム、およびコンピュータ可読媒体
(51)【国際特許分類】
G01C 21/34 20060101AFI20221201BHJP
G06Q 10/04 20120101ALI20221201BHJP
【FI】
G01C21/34
G06Q10/04 310
(21)【出願番号】P 2018535378
(86)(22)【出願日】2017-01-06
(86)【国際出願番号】 US2017012518
(87)【国際公開番号】W WO2017120458
(87)【国際公開日】2017-07-13
【審査請求日】2019-11-20
(32)【優先日】2016-01-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】バン・ウェストインデ,チャールズ・ピーター
【審査官】佐々木 佳祐
(56)【参考文献】
【文献】特開平7-066834(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 21/00-25/00
G08G 1/00-99/00
G06Q 10/04
(57)【特許請求の範囲】
【請求項1】
ジョブごとに、地理的な起点からそれぞれの地理的なジョブ位置までの走行に基づいて、複数のジョブのスケジューリングを行なうように構成された1つ以上のコンピュータと、
前記1つ以上のコンピュータ上で実現され、複数の動作を行なうように構成された経路サーチャーとを備え、
前記複数の動作は、
前記1つ以上のコンピュータのユーザから受信するアドレスから導出される、スケジューリングの対象となるジョブの場所として予め特定された地理的な位置に対応する複数のノードと前記地理的な位置間の走行コストによって重み付けされたノード間の複数のエッジとを含むグラフにおいて、前記地理的な起点に対応する起点ノードと前記地理的なジョブ位置に対応する複数の宛先ノードとを特定することを含み、前記グラフは複数のエッジを含み、各ノードは前記複数のエッジのうちの一つのエッジによって少なくとも1つの他のノードに結合されており、各前記エッジは実際の走行経路に対応し、前記複数の動作はさらに、
前記走行コストを用いて前記起点ノードと前記複数の宛先ノードとの間の複数の中間ノードを横断することによって、前記起点ノードから前記複数の宛先ノードまで前記グラフの各前記エッジに沿って経路を探索することを含み、前記横断することは、前記複数の中間ノードの少なくとも1つのサブセットの各中間ノードにおいて、前記中間ノードに対応する中間の地理的な位置と前記地理的なジョブ位置を最初に取り囲む境界線との間の地理的な距離に基づく走行コストを求めることを含み、前記地理的なジョブ位置を最初に取り囲む境界線は、前記起点ノードからの前記経路の探索の対象となる全ての宛先ノードを含む領域を規定し、前記複数の動作はさらに、
前記複数の宛先ノードのうちの前記起点ノードからの走行コストが最も安い1つの宛先ノードを特定し、前記複数の宛先ノードから前記1つの宛先ノードを除いた残りの宛先ノードの座標空間における位置データに基づいて、前記複数の宛先ノードから前記1つの宛先ノードを除く残りの宛先ノードを前記境界線が取り囲むように範囲を狭くし、前記複数の宛先ノードの全てを特定するまで前記探索と、前記範囲を狭くすることとを継続することを含む、システム。
【請求項2】
前記複数の動作は、前記中間の地理的な位置と前記範囲との間の最短の直線距離として、前記中間の地理的な位置と前記範囲との間の前記地理的な距離を求めることを含む、請求項1に記載のシステム。
【請求項3】
最初に前記地理的なジョブ位置を取り囲む前記範囲は矩形範囲を含み、前記複数の動作は、探索を開始する前に、前記位置データを用いて、4つの基本方向の各々について前記基本方向における前記地理的な起点から最も遠い地理的なジョブ位置を有するそれぞれの宛先ノードを含む一組の宛先ノードを求めることによって前記宛先ノードを含む範囲を求めることを含む、請求項1または2に記載のシステム。
【請求項4】
前記範囲を狭くすることは、前記宛先ノードのうちの1つの宛先ノードの特定に応じてのみ、前記範囲を狭くすることを含む、請求項3に記載のシステム。
【請求項5】
前記複数の中間ノードを横断することは、第1の中間ノードにおいて、前記第1の中間ノードの1つ以上の隣接ノードについて、前記第1の中間ノードまでの実際の走行コストと前記第1の中間ノードについての前記走行コストとに基づいて合計コスト推定値を求めることを含む、請求項1から4のいずれかに記載のシステム。
【請求項6】
前記複数の中間ノードを横断することは、最も低い合計コスト推定値を有する前記1つ以上の隣接ノードから第2の中間ノードを選択し、前記第2の中間ノードまで前記グラフを横断することを含む、請求項5に記載のシステム。
【請求項7】
前記グラフは道路網を表し、前記エッジは地理的な位置間の道路を表し、前記ノードは道路交差点を表し、前記走行コストは道路交差点間の道路に沿った推定走行時間を表す、請求項1から6のいずれか1項に記載のシステム。
【請求項8】
前記1つ以上のコンピュータは、前記経路サーチャーによって求められるような最も低い走行コストを有する第1のジョブのスケジューリングを最初に行ない、次に前記地理的な起点として前記第1のジョブの第1の地理的な位置を有する前記経路サーチャーを用いて探索を行ない、次に前記ジョブの全てのスケジューリングが行なわれるまで前記スケジューリングを繰り返し、前記スケジューリングに基づいてユーザにスケジュールを提供することによって、前記複数のジョブのスケジューリングを行なうように構成されている、請求項1から7のいずれか1項に記載のシステム。
【請求項9】
ジョブごとに地理的な起点からそれぞれの地理的なジョブ位置までの走行に基づいて複数のジョブのスケジューリングを行なうための方法であって、
1つ以上のコンピュータのユーザから受信するアドレスから導出される、スケジューリングの対象となるジョブの場所として予め特定された地理的な位置に対応する複数のノードと前記地理的な位置間の走行コストによって重み付けされたノード間の複数のエッジとを含むグラフにおいて、1つ以上の
コンピュータが、前記地理的な起点に対応する起点ノードと前記地理的なジョブ位置に対応する複数の宛先ノードとを特定することを備え、前記グラフは複数のエッジを含み、各ノードは前記複数のエッジのうちの一つのエッジによって少なくとも1つの他のノードに結合されており、各前記エッジは実際の走行経路に対応し、
前記1つ以上の
コンピュータが、走行コストを用いて前記起点ノードと前記複数の宛先ノードとの間の複数の中間ノードを横断することによって、前記起点ノードから前記複数の宛先ノードまで前記グラフの各前記エッジに沿って経路を探索することを備え、前記横断することは、前記複数の中間ノードの少なくとも1つのサブセットの各中間ノードにおいて、前記中間ノードに対応する中間の地理的な位置と前記地理的なジョブ位置を最初に取り囲む境界線との間の地理的な距離に基づく走行コストを求めることを含み、前記地理的なジョブ位置を最初に取り囲む境界線は、前記起点ノードからの前記経路の探索の対象となる全ての宛先ノードを含む領域を規定し、前記方法はさらに、
前記1つ以上のコンピュータが、前記複数の宛先ノードのうち前記起点ノードからの走行コストが最も安い1つの宛先ノードを特定し、前記複数の宛先ノードから前記1つの宛先ノードを除いた残りの宛先ノードの座標空間における位置データに基づいて、前記1つ以上の
コンピュータが、前記複数の宛先ノードから前記1つの宛先ノードを除く残りの宛先ノードを前記境界線が取り囲むように範囲を狭くし、前記複数の宛先ノードの全てを特定するまで前記探索と、前記範囲を狭くすることとを継続することを備える、方法。
【請求項10】
前記1つ以上のコンピュータが、前記中間の地理的な位置と前記範囲との間の最短の直線距離として、前記中間の地理的な位置と前記範囲との間の前記地理的な距離を求めることをさらに備える、請求項9に記載の方法。
【請求項11】
最初に前記地理的なジョブ位置を取り囲む前記範囲は矩形範囲を含み、前記方法は、
前記1つ以上のコンピュータが、探索を開始する前に、前記位置データを用いて、4つの基本方向の各々について前記基本方向における前記地理的な起点から最も遠い地理的なジョブ位置を有するそれぞれの宛先ノードを求めることによって、前記宛先ノードを含む範囲を求めることをさらに備える、請求項9または10に記載の方法。
【請求項12】
前記範囲を狭くすることは、前記宛先ノードのうちの1つの宛先ノードの特定に応じてのみ前記範囲を狭くすることを含む、請求項11に記載の方法。
【請求項13】
前記複数の中間ノードを横断することは、第1の中間ノードにおいて、前記第1の中間ノードの1つ以上の隣接ノードについて、前記第1の中間ノードまでの前記実際の走行コストと前記第1の中間ノードについての前記走行コストとに基づいて合計コスト推定値を求めることを含む、請求項9から12のいずれかに記載の方法。
【請求項14】
前記複数の中間ノードを横断することは、最も低い合計コスト推定値を有する前記1つ以上の隣接ノードから第2の中間ノードを選択し、前記第2の中間ノードまで前記グラフを横断することを含む、請求項13に記載の方法。
【請求項15】
前記グラフは道路網を表し、前記エッジは地理的な位置間の道路を表し、前記ノードは道路交差点を表し、前記走行コストは道路交差点間の道路に沿った推定走行時間を表す、請求項9から14のいずれか1項に記載の方法。
【請求項16】
前記1つ以上のコンピュータが、最も低い走行コストを有する第1のジョブのスケジューリングを最初に行ない、次に前記地理的な起点として前記第1のジョブの第1の地理的な位置を用いて前記探索を繰り返し、次に前記ジョブの全てのスケジューリングが行なわれるまで前記スケジューリングを繰り返し前記スケジューリングに基づいてユーザにスケジュールを提供することをさらに備える、請求項9から15のいずれか1項に記載の方法。
【請求項17】
1つ以上のコンピュータによって実行されると、請求項9から16のいずれか1項に記載の方法を前記1つ以上のコンピュータに実行させる1つ以上の命令を備えるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
本願は、2016年1月8日に出願された米国特許出願第14/991,557号の利益を主張し、その開示を本明細書に引用により援用する。
【0002】
技術分野
本明細書で説明される主題は、一般にジョブのスケジューリングに関する。より詳細に、本明細書で説明される主題は、ジョブ位置間の走行コストに基づく1対多数の最短経路探索を用いることによってジョブをスケジューリングするための方法、システム、およびコンピュータ可読媒体に関する。
【背景技術】
【0003】
背景
ロードマッピングプログラムは、街中の道路レベルまでの詳細な道路網を備えていることもあるデジタルマップを提供する。典型的には、ユーザが位置を入力可能であり、ロードマッピングプログラムは選択された位置の画面上の地図を表示する。ロードマッピングプログラムの中には、2つの位置間の「最適ルート」を計算する特徴を提供するものもある。これらのプログラムでは、ユーザは2つの位置を入力可能であり、ロードマッピングプログラムは出発位置から目的位置までの走行方向を計算する。これらの方向は、距離、走行時間、ならびに好ましい運転速度または高速道路および地方道路の間での選択などのユーザの特定の選択によって求めることができる。位置間の最適ルートを計算するには、多大な計算時間およびリソースが必要な場合がある。
【0004】
ロードマッピングプログラムの中には、ダイクストラ法(Dijkstra's method)の変種を使用して位置間の最適ルートを計算するものもある。各道路区分には、コストまたは道路区間の長さと関係することもあれば関係しないこともある重みを割り当てることが可能である。道路ごとにコストを計算する方法を変えることによって、最速、最短、または好ましいルートについて最適なルートを計算可能である。ロードマッピングプログラムの中には、ヒューリスティックな探索であるA*探索を含む、ダイクストラ法のヒューリスティックな変種を使用するものもある。A*探索を使用すると、正しい一般的な方向に最短経路の計算を導こうとする。そのようなヒューリスティックな変種は、中間位置と宛先との間の経路の重みの推定を含むことが一般的である。たとえば、ヒューリスティックな変種の中には、位置間の直線的なユークリッドの距離などの下限推定法を使用するものもある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ジョブスケジューリングプログラムへの入力のうちの1つは、プログラムによってスケジュールされるべき多数のジョブ間の走行時間もしくは距離、またはそれら双方に基づく走行コストであり得る。走行コストは、複数のジョブのうちの1つの位置を起点として、残りのジョブの位置を宛先として用いたダイクストラアルゴリズムまたはA*アルゴリズムを用いて、全てのジョブについてこの処理を繰り返すことによって求めることができる。多くのジョブのスケジューリングを行なわなければならない状況では、それらのジョブについて走行コストを求めるには多量の計算リソースが必要なことがあり、全計算時間が長くなりすぎることによって効果的なジョブスケジューリングが妨げられることがある。
【0006】
したがって、これらの問題を鑑みると、ジョブ位置間の走行コストに基づく1対多数の最短経路探索を用いることによってジョブをスケジューリングするための方法、システム、およびコンピュータ可読媒体が必要とされる。
【課題を解決するための手段】
【0007】
概要
本明細書で説明される主題は、ジョブ位置間の走行コストに基づく1対多数の最短経路探索を用いることによってジョブをスケジューリングするための方法、システム、およびコンピュータ可読媒体に関する。コンピュータシステムは、グラフ探索、たとえばA*探索を使用し、起点ノードから開始し、まだ到達していない宛先ノードを取り囲む境界までの距離をヒューリスティックな走行コストとして用いることによって、さまざまなジョブと関連する走行コストを算出するためにかかる時間を削減することができる。コンピュータシステムは、必要とされる計算リソース数の削減が可能であり、これによって、たとえば、スケジューラ初期設定時間および予約待ち時間を削減することができる。
【0008】
いくつかの例において、システムは、ジョブごとに地理的な起点からそれぞれの地理的なジョブ位置までの走行に基づいて、複数のジョブのスケジューリングを行なうように構成された1つ以上のコンピュータを備える。システムはさらに、1つ以上のコンピュータ上で実現される1対多数の経路サーチャーを備える。1対多数の経路サーチャーは、地理的な位置に対応する複数のノードと地理的な位置間の走行コストによって重み付けされたノード間の複数のエッジとのグラフにおいて、地理的な起点に対応する起点ノードと地理的なジョブ位置に対応する複数の宛先ノードとを特定するように構成される。1対多数の経路サーチャーは、走行コストを用いて起点ノードと宛先ノードとの間の複数の中間ノードを横断することによって、起点ノードから宛先ノードまでグラフのエッジに沿って経路を探索するように構成される。横断することは、複数の中間ノードの少なくとも1つのサブセットの各中間ノードにおいて、中間ノードに対応する中間の地理的な位置と地理的なジョブ位置を最初に取り囲む境界との間の地理的な距離に基づいてヒューリスティックな走行コストを求めることを含む。1対多数の経路サーチャーは、複数の宛先ノードのうちの1つの宛先ノードの発見に応じて、複数の宛先ノードのうちの当該1つの宛先ノードに対応する、発見された地理的な位置を除く地理的なジョブ位置を境界が取り囲むように境界を調節し、宛先ノードの全てを発見するまで探索および境界の調節を継続するように構成されている。
【0009】
いくつかの例において、1対多数の経路サーチャーは、中間の地理的な位置と境界との間の最短の直線距離として、中間の地理的な位置と境界との間の地理的な距離を求める。いくつかの例において、最初に地理的なジョブ位置を取り囲む境界は矩形を含み、1対多数の経路サーチャーは、探索を開始する前に、4つの基本方向の各々について基本方向における地理的な起点から最も遠い地理的なジョブ位置を有するそれぞれの境界エッジ宛先ノードを含む宛先ノードの組を求めることによって、境界を求める。境界を調節することは、境界エッジ宛先ノードのうちの1つの境界エッジ宛先ノードの発見に応じてのみ境界を調節することを含み得る。
【0010】
いくつかの例では、中間ノードを横断することは、各中間ノードにおいて、起点ノードから中間ノードまでグラフを横断する実際の走行コストを格納することを含む。いくつかの例では、中間ノードを横断することは、第1の中間ノードにおいて、第1の中間ノードの1つ以上の隣接ノードについて、第1の中間ノードまでの実際の走行コストと第1の中間ノードについてのヒューリスティックな走行コストとに基づいて合計コスト推定値を求めることを含む。いくつかの例では、中間ノードを横断することは、最も低い合計コスト推定値を有する1つ以上の隣接ノードから第2の中間ノードを選択し、第2の中間ノードまでグラフを横断することを含む。いくつかの例では、経路を探索することは、地理的な起点が境界の外側にある場合にのみ、中間ノードを横断している間にヒューリスティックな走行コストを求めることを含む。
【0011】
いくつかの例では、グラフは道路網を表し、エッジは地理的な位置間の道路を表し、ノードは道路交差点を表し、走行コストは道路交差点間の道路に沿った推定走行時間を表す。いくつかの例では、1つ以上のコンピュータは、1対多数の経路サーチャーによって求められるような最も低い走行コストを有する第1のジョブのスケジューリングを最初に行ない、次に地理的な起点として第1のジョブの第1の地理的な位置を有する1対多数の経路サーチャーを用いて探索を行ない、次にジョブの全てのスケジューリングが行なわれるまでスケジューリングを繰り返し、スケジューリングに基づいてユーザにスケジュールを提供することによって、複数のジョブのスケジューリングを行なうように構成される。
【0012】
本明細書で説明される主題は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せにおいて実現されてもよい。したがって、本明細書で用いられる「機能」、「ノード」、または「モジュール」という用語は、説明される特徴(単数または複数)を実現するためのハードウェア、ソフトウェア、および/またはファームウェアコンポーネントを指す。いくつかの例では、本明細書で説明される主題は、コンピュータの1つ以上のプロセッサによって実行されるとコンピュータに動作を行なわせる、コンピュータ実行可能な命令を格納した非一時的なコンピュータ可読媒体を用いて実現可能である。
【0013】
本明細書で説明される主題の実現に好適なコンピュータ可読媒体は、非一時的なコンピュータ可読媒体、たとえば、ディスク記憶装置、チップメモリデバイス、プログラマブル論理デバイス、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、光学読出し/書込み用メモリ、キャッシュメモリ、磁気読出し/書込み用メモリ、フラッシュメモリ、および特定用途向け集積回路を含む。さらに、本明細書で説明される主題を実現するコンピュータ可読媒体は、ただ1つのデバイスもしくはコンピュータプラットフォームに設けられてもよく、または、複数のデバイスもしくは複数のコンピュータプラットフォームにわたって分散されてもよい。
【図面の簡単な説明】
【0014】
【
図1】スケジューラコンピュータシステムの例を示すブロック図である。
【
図2】ジョブスケジューラの例を示すブロック図である。
【
図3】1対多数の経路サーチャーの例を示すブロック図である。
【
図4A】地理的ジョブ位置の3つの例までの経路探索シナリオの例を示す図である。
【
図4B】地理的ジョブ位置の3つの例までの経路探索シナリオの例を示す図である。
【
図4C】地理的ジョブ位置の3つの例までの経路探索シナリオの例を示す図である。
【
図4D】地理的ジョブ位置の3つの例までの経路探索シナリオの例を示す図である。
【
図5】グラフを横断中に中間ノードにおけるヒューリスティックな走行コストを求めるシナリオの例を示す図である。
【
図6】1対多数の経路サーチャーを用いた、地理的な起点から地理的ジョブ位置までの走行に基づいてジョブのスケジューリングを行なうための方法600の例を示すフローチャートである。
【発明を実施するための形態】
【0015】
詳細な説明
図1は、スケジューラコンピュータシステム102の例を示すブロック図である。スケジューラコンピュータシステム102は、データ通信網106、たとえばインターネットを利用して少なくとも1つのユーザデバイス104と通信する。スケジューラコンピュータシステム102は、1つ以上のプロセッサ108と、プロセッサ108によって実行されるとプロセッサ108に地理的な起点から地理的なジョブ位置までの走行に基づいてジョブのスケジューリングを行なわせる命令を格納するメモリ110とを含む。メモリ110は、ユーザインターフェース112と、ジョブスケジューラ114と、1対多数の経路サーチャー116とを含むプログラムモジュールを格納可能である。
【0016】
動作中、スケジューラコンピュータシステム102は、ジョブのスケジューリングを行ない、さまざまな他のソフトウェアサービス、たとえばスケジューリングおよびプランニングに関するビジネスサービスを提供可能である。いくつかの例では、スケジューラコンピュータシステム102は、ビジネス顧客が独特のビジネス要件を満たすコンポーネントを選択できるような、モジュール方式の構成可能な設計を特徴とする。その設定可能性により、スケジューラコンピュータシステム102は、宅配、現場サービス、および設備管理などの広範囲なサプライチェーン部門で採用可能である。
【0017】
たとえば、スケジューラコンピュータシステム102は、キャパシティ・プランニングから、自動車、技術者、および顧客スケジューリング、そして発送管理およびモバイル操作にわたるサービス提供ビジネスにおけるタスクについて使用可能である。スケジューラコンピュータシステム102は、業務効率および顧客満足度を高めるために、サービス提供ビジネスによって、たとえば以下の特徴を用いて使用可能である。
【0018】
・より好ましいプランニングツールならびに多数のフィールドおよびリソース通信タスクの自動化を通じて、業務および発送管理効率を高める特徴、
・作業負荷のより好ましい分散によってリソース効率を高めて、運転される走行距離を最小限にし、リアルタイムのアップデートに基づいて一日のうちでジョブを最適に再分配する特徴、および
・「ワンタッチ」スケジューリングおよびプロアクティブ例外管理を行なって、遅延および顧客通知を最小限にする特徴。
【0019】
スケジューラコンピュータシステム102は、ビジネスの目的に対応するように、たとえば、緊急ジョブの優先順位付け、顧客へのキャンセルの自動的な通知、およびサービス提供予約の効率的なリスケジューリングに対応するように用いることができる。いくつかの例では、スケジューラコンピュータシステム102は、顧客が電話中に予約サービスまたは配送予約について、どのモバイルリソースが現在利用可能であるか、およびそれらがどこに位置しているかについてリアルタイムの表示を提供する。いくつかの例では、スケジューラコンピュータシステム102は、走行時間を最小限にして燃料コストを節約し自動車の消耗を低減するように構成されている。スケジューラコンピュータシステム102は、特定のスキルおよび資格に従って現場の技術者をサービス依頼の電話に割り当てるように構成可能である。スケジューラコンピュータシステム102は、リアルタイムに配送状況およびサービス依頼の電話について報告するように構成可能であり、顧客に遅延やキャンセルを通知し続ける。
【0020】
スケジューラコンピュータシステム102は、サーバ、たとえば、クラウドコンピューティングサービスをユーザデバイス104に提供するサーバとして実現可能である。ユーザデバイス104は、ディスプレイおよびユーザ入力デバイスを含む任意の適切なコンピュータシステムでもよい。たとえば、ユーザデバイス104は、パーソナルコンピュータ、スマートフォン、またはタブレットでもよい。
【0021】
ユーザは、たとえば、ユーザデバイス104上で実行してユーザインターフェース112と対話可能なウェブブラウザを使用してもよい。ユーザは、スケジューラコンピュータシステム102によって提供されるウェブページについてユニフォームリソースロケータ(URL)を入力可能であり、スケジューラコンピュータシステム102は、ユーザインターフェース112をユーザデバイス104に提供してユーザと対話可能である。ユーザインターフェース112は、任意の適切なユーザインターフェース技術、たとえば、ハイパテキストマークアップランゲージ(HTML)または非同期Java(登録商標)およびXML(AJAX)を用いて実現可能である。
【0022】
ユーザは、ユーザインターフェース112を用いてジョブスケジューラ114に情報を提供する。提供される情報は、多数のジョブについて地理的なジョブ位置を特定するためにジョブスケジューラ114が使用可能な情報を含む。たとえば、ユーザは、アドレスの一覧を有するファイルの提供が可能である、または、ジョブスケジューラ114をアドレスの一覧もしくはジョブについての地理的なジョブ位置、たとえばビジネスネームを求めるために使用可能な他の情報を提供可能な他のサーバに導くことが可能である。提供される情報は、他の任意の情報、たとえば、ジョブをスケジューリングするために利用可能な時間または他のスケジューリング制限を特徴付ける情報を含み得る。ジョブスケジューラ114について、
図2を参照して以下でさらに説明する。
【0023】
ジョブスケジューラ114は、1対多数の経路サーチャー116を使用して、地理的な起点について地理的なジョブ位置の各々まで走行する走行コストを求める。地理的な起点は、複数のジョブのうちの1つについての地理的なジョブ位置であり得る。走行コストはたとえば、推定走行時間、走行距離、推定コスト、推定燃料消費量、またはこれらの要素の組合せでもよい。たとえば、走行コストは道路網にわたる車もしくはトラックの走行、または線路網にわたる鉄道の走行に基づいていてもよい。
【0024】
1対多数の経路サーチャー116は、地理的な位置に対応するノードと地理的な位置間の走行コストによって重み付けされたノード間のエッジとのグラフにおいて、地理的な起点に対応する起点ノードと地理的なジョブ位置に対応する宛先ノードとを特定するように構成されている。1対多数の経路サーチャー116は、走行コストを用いて起点ノードと宛先ノードとの間の中間ノードを横断することによって、起点ノードから宛先ノードまでグラフのエッジに沿って経路を探索するように構成されている。
【0025】
中間ノードを横断することは、中間ノードの少なくとも1つのサブセットの各中間ノードにおいて、中間ノードに対応する中間の地理的な位置と地理的なジョブ位置を最初に取り囲む境界との間の地理的な距離に基づいてヒューリスティックな走行コストを求めることを含む。1対多数の経路サーチャー116は、複数の宛先ノードのうちの1つの発見に応じて、複数の宛先ノードのうちの1つの宛先ノードに対応する、発見された地理的な位置を除く地理的なジョブ位置を境界が取り囲むように境界を調節するように構成されている。1対多数の経路サーチャー116は、宛先ノードの全てを発見するまで、探索および境界の調節を継続する。1対多数の経路サーチャー116について、
図3を参照して以下でさらに説明する。
【0026】
図2は、ジョブスケジューラ114の例を示すブロック図である。ジョブスケジューラ114は、情報コレクタ202と、ジョブソータ204と、スケジューラエクスポータ206とを含む。
【0027】
情報コレクタ202は、ジョブスケジューリングについて、たとえばユーザデバイス104から情報を受信するように構成されている。情報は、ジョブスケジューラ114が多数のジョブについて地理的なジョブ位置を特定するために使用可能な情報を含む。たとえば、情報コレクタ202はアドレスの一覧を有するファイルを受信可能である。情報コレクタ202は、アドレスの一覧またはジョブについて地理的なジョブ位置を求めるために使用可能な他の情報、たとえばビジネスネームを提供可能なサーバと通信可能である。
【0028】
たとえば、ユーザが多数の配送のスケジューリングを行なっていると仮定する。情報コレクタ202は、配送ごとに、アドレスを検索するために使用可能なビジネスのアドレスか名前のどちらかを受信可能である。いくつかの例では、情報コレクタ202は、ビジネスネームをアドレスに変換する、または、アドアレスを正確な位置データ、たとえば、緯度および経度データもしくは全地球測位システム(GPS)座標に変換する。
【0029】
提供される情報は、他の任意の情報、たとえば、ジョブのスケジューリングについて利用可能な時間または他のスケジューリング制限を特徴づける情報を含み得る。たとえば、情報コレクタ202は、カレンダファイルまたは通常のビジネス時間を指定するデータを受信可能である。他の例では、情報キャラクタライザは、たとえば地方道路での走行を選択すること、または推定走行時間ではなく距離に基づいたジョブの分類を好むことを示す選択情報を受信可能である。
【0030】
たとえば、ユーザが多数の配送のスケジューリングを行なっている例を考える。配送ドライバは、月曜日から木曜日の9~3時まで対応可能である。ユーザは、これらの日にちを有するカレンダファイルをアップロード可能である。または、ユーザは、ユーザインターフェース112において実現されるカレンダウィジェットを使用して、配送ジョブについて利用可能な配送時間を指定することが可能である。
【0031】
ジョブソータ204は、スケジューリングについてジョブを分類するように構成されている。ジョブソータ204は、1対多数の経路サーチャー116を使用して各ジョブと関連する走行コストを求める。それによって、ジョブソータ204は、走行コストに基づいて、たとえば最も低い走行コストから最も高い走行コストの順に、およびユーザのスケジュールでジョブについて利用可能な時間帯の順で、多数のジョブを分類可能である。
【0032】
たとえば、ユーザが多数の配送のスケジューリングを行なっている例を考える。ジョブソータ204は、1対多数の経路サーチャー116を使用して、第1の配送位置が配送起点、たとえば倉庫からの最も低い走行コストを有していると判断する。ジョブソータ204は、ユーザについて利用可能な最も早い時間帯に第1の配送位置のスケジューリングを行なう。
【0033】
ジョブソータ204はその後、スケーリングされるべき配送のリストから第1の配送位置を除去し、起点として第1の配送位置を有する1対多数の経路サーチャー116に残りの配送位置を提供する。ジョブソータ204は、1対多数の経路サーチャー116を使用して、第2の配送位置が最も低い走行コストを有していると判断し、第2の配送位置をユーザが利用可能な次の時間帯にスケジューリングする。ジョブソータ204は、全てのジョブがスケジューリングされるまで、または他の終了条件に到達するまで、このプロセスを繰り返す。
【0034】
スケジュールエクスポータ206は、ジョブソータ204の結果を出力する。たとえば、スケジュールエクスポータ206は、スケジューリングされたジョブのカレンダファイルをフォーマットし、カレンダファイルをユーザデバイス104に送信可能である。他の例では、スケジュールエクスポータ206は、ユーザインターフェース112によって実現されるカレンダウィジェットにおいて表示するためにスケジューリングされたジョブをフォーマットする。
【0035】
スケジュールエクスポータ206は、特定のビジネスニーズを満たすようにカスタマイズ可能である。たとえば、ユーザが多数の配送をスケジューリングしている例を考える。スケジュールエクスポータ206は、倉庫のコンピュータシステムおよび配送トラックのモバイルコンピュータにスケジュールを送信可能である。倉庫の従業者は、配送について商品の準備を開始することが可能になり、配送トラックは、スケジュールを用いてトラックのドライバについて方向をプロット可能である。
【0036】
図3は、1対多数の経路サーチャー116の例を示すブロック図である。1対多数の経路サーチャー116は、グラフサーチャー302と、走行コスト決定部304と、境界マネジャ306とを含む。1対多数の経路サーチャー116は、地図データ308と、訪れたノードのデータ310と、走行コストデータ312とを含む、経路の探索に使用されるさざまなデータを格納する。
【0037】
グラフサーチャー302は、グラフを使用して多数のジョブについて地理的な起点から地理的なジョブ位置までの経路を探索するように構成されている。グラフサーチャー302は、ノードおよびノード間のエッジを含むグラフを作成する、または受信する。ノードは、地理的な位置に対応する。エッジは、ノードに対応する地理的な位置間の走行コストによって重み付けられている。
【0038】
たとえば、1対多数の経路サーチャー116が道路網を運転するために配送トラックについての経路を探索していると仮定する。グラフは、道路網を表し得る。エッジは、地理的な位置間の道路を表す。ノードは、道路交差点を表す。走行コストは、道路交差点間の道路に沿った推定走行時間、または距離など他の走行コストを表し得る。グラフサーチャー302は、地図データ308を使用してグラフを作成可能である。
【0039】
グラフサーチャー302は、グラフにおいて、多数のジョブの地理的な起点に対応する1つの起点ノードと、地理的なジョブ位置に対応する複数の宛先ノードとを特定する。グラフサーチャー302は、走行コストを用いて起点ノードと宛先ノードとの間の中間ノードを横断することによって、起点ノードから宛先ノードまでグラフのエッジに沿って経路を探索するように構成されている。中間ノードを横断することは、現在のノードから隣接ノードを訪れることと、隣接ノードについて走行コストを求めることと、訪れたノードのデータベース310および走行コストデータベース312内の走行コストおよび訪れたノードをトラッキングすることとを含む。
【0040】
たとえば、グラフサーチャー302は、ダイクストラ法のアルゴリズムの要素、A*アルゴリズムの要素、または他のグラフ探索アルゴリズムの要素を使用して中間ノードを横断可能である。走行コスト決定部304は、各ノードにおいて走行コストを決定する。走行コストは、グラフの横断によって求められるような実際のコストと、中間ノードに対応する中間の地理的な位置と境界との間の地理的な距離に基づくヒューリスティックな走行コストとを含み得る。走行コスト決定部304は、中間の地理的な位置と境界との間の最短直線距離を求めることができる。
【0041】
グラフサーチャー302がグラフを横断すると、境界マネジャ306は境界の初期化および調節を行なう。境界は、最初(たとえば、グラフサーチャー302が中間ノードの横断を開始する前)は全ての地理的なジョブ位置を取り囲んでいる。地理的なジョブ位置のいくつかは、境界上に位置している場合もある。たとえば、本明細書で使用されるように、境界はそのようなエッジ位置を「取り囲む」。その後、グラフサーチャー302が宛先ノードを訪れると、境界マネジャ306は、境界が残りの訪れていない宛先ノードのみを取り囲むように、宛先ノードを訪れることに応じて境界を調節する。
【0042】
典型的には、グラフサーチャー302は、地理的な起点が境界の外側にある場合にのみ、境界を用いてヒューリスティックな走行コストを求める。地理的な起点が境界の内側にある場合、ヒューリスティックな走行コスの使用によって利点がもたらされ得る場合がある。なぜなら、地理的な起点から全ての方向において訪れていない宛先ノードが存在するからである。地理的な起点が境界の外側にある場合にのみ境界を用いてヒューリスティックな走行コストを求めることによって、計算リソースの節約が可能になり、1対多数の経路サーチャー116によって使用される時間の削減が可能になる。
【0043】
境界は、任意の適切な形状、たとえば、矩形状または楕円形状でもよい。いくつかの例では、境界マネジャ306は、境界エッジ宛先ノードの組を求めることによって、探索を開始する前に境界を決定する。境界エッジ宛先ノードの組は、4つの基本方向の各々について、基本方向における地理的な起点から最も遠い地理的なジョブ位置を有するそれぞれの境界エッジ宛先ノードを含む。
【0044】
たとえば、境界エッジ宛先ノードは、東、西、北、および南について最大で4つの境界エッジ宛先ノードを含み得る。境界マネジャ306はその後、地理的なジョブ位置のうちの最も遠い位置において4つの側辺を有する境界を初期化する。本明細書で説明するように、たとえ境界エッジ宛先ノードが境界のエッジ上になくても、境界は最初は境界エッジ宛先ノードを「取り囲んでいる」と記載される。
【0045】
いくつかの例では、境界マネジャ306は、境界エッジ宛先ノードのうちの1つを訪れることに応じて境界を調節する。これによって、宛先ノードを訪れるといつでも、境界の調節を避けることによって、境界の調節と関連する計算オーバーヘッドを削減することができる。境界エッジ上にない宛先ノードについて、境界の調節は必要ではない。なぜなら、境界は依然として境界エッジノードまで遠く拡張しなければならないからである。
【0046】
中間ノードを横断することは、各中間ノードにおいて、起点ノードから中間ノードまでグラフを横断する実際の走行コストを格納することを含む。たとえば、中間ノードの横断は、第1の中間ノードにおいて、第1の中間ノードの1つ以上の隣接ノードについて、第1の中間ノードまでの実際の走行コストと第1の中間ノードについてのヒューリスティックな走行コストとに基づく合計コスト推定値を含む。そうすると、中間ノードを横断することは、最も低い合計コスト推定値を有する1つ以上の隣接ノードから第2の中間ノードを選択することと、第2の中間ノードまでグラフを横断することとを含み得る。グラフの探索および中間ノードの横断について、
図4A~
図4Dおよび
図5を参照して以下でさらに説明する。
【0047】
図4A~
図4Dは、3つの地理的なジョブ位置の例までの経路探索シナリオの例を示す図である。
図4A~
図4Dは、XY座標空間における4つの地理的な位置A、B、C、およびOを表す。地理的な位置はグラフではノードによって表され、地理的な位置間のルートは、走行コストによって重み付けられるグラフにおいてノード間のエッジによって表される。1対多数の経路サーチャー116は、地理的な起点位置Oから地理的なジョブ位置A、B、およびCまでのコストが最も安いルートを探すように構成されている。
【0048】
図4Aでは、1対多数の経路サーチャー116は、地理的なジョブ位置A、B、およびCを取り囲む境界402を作成する。境界402は、コンピュータメモリにおいて作成されるものであり、実際の物理的な境界ではない。最初は、境界402は地理的な起点Oも取り囲んでいるため、1対多数の経路サーチャー116は、グラフの横断によってルートの探索を始める際は境界402を使用しない。
【0049】
1対多数の経路サーチャー116がグラフを横断する際は、基本的に地理的な起点から全ての方向において外向きに探索を行なう。1対多数の経路サーチャー116は地理的なジョブ位置に対応する宛先ノードを訪れると、境界402を調節し、残りのまだ訪れていない宛先ノードに向けて探索を集中するために境界402を使用して、探索において使用される探索時間および計算リソースを削減しようとする。
【0050】
図4Bでは、1対多数の経路サーチャー116は、地理的な起点Oと地理的なジョブ位置Bとの間のルート404を探す。1対多数の経路サーチャー116は、地理的なジョブ位置Bに対応するグラフにおいて宛先ノードを訪れる。1対多数の経路サーチャー116は、ルート404に基づいて、仮の実際の走行コストを地理的なジョブ位置Bに割り当てる。
【0051】
残りのまだ訪れていない地理的なジョブ位置までのヒューリスティックな走行コストを求めるために、1対多数の経路サーチャー116は、地理的なジョブ位置Bではなく地理的なジョブ位置AおよびCを取り囲むように境界402を調節する。地理的な起点Oは境界402の内側ではなくなっているため、1対多数の経路サーチャー116は、境界402を使用してヒューリスティックな走行コストを求めることができる。地理的なジョブ位置Bについてのヒューリスティックな走行コストを求めるために、1対多数の経路サーチャー116は、地理的なジョブ位置Bから境界402までの距離406を求める。
【0052】
たとえば、距離406は、境界402までの最短の直線距離であり得る。1対多数の経路サーチャー116は、最短の直線距離を求めるために任意の適切なアルゴリズムを使用可能である。たとえば、境界402は矩形でありBはAとCとの間であるため、1対多数の経路サーチャー116は、AとBとの間のY軸に沿った距離を求めることによって距離406を求めることができる。他の形状の境界については、1対多数の経路サーチャー116は、他の種類の距離算出アルゴリズムを使用してもよい。
【0053】
いくつかの例では、1対多数の経路サーチャー116は、距離をさらに処理することによってヒューリスティックな走行コストを求めることができる。たとえば、1対多数の経路サーチャー116が走行コストとして推定走行時間を使用していると仮定する。1対多数の経路サーチャー116は、距離406までの推定時間としてヒューリスティックな走行コストを求めることができる。推定時間は、たとえば、自動車の最高速度もしくは平均速度で走行中の自動車、または最も高速のタイプのルート、たとえば高速道路における最高速度もしくは平均速度で走行中の自動車に基づいて求めることができる。推定時間は、距離406を速度で除算することによって求めることができる。
【0054】
図4Cでは、1対多数の経路サーチャー116は、地理的な起点Oと地理的なジョブ位置Aとの間のルートを探す。このルートは、ルート408と中間位置Dを超えたルート410との2つのルートを横断することを含む。1対多数の経路サーチャー116は、ルート408および410に基づいて仮の実際の走行コストを地理的なジョブ位置Aに割り当てる。
【0055】
残りのまだ訪れていない地理的なジョブ位置までのヒューリスティックな走行コストを求めるために、1対多数の経路サーチャー116は、地理的なジョブ位置Cを取り囲むように境界402を調節する。Cは唯一の残りのまだ訪れていない地理的なジョブ位置であるため、境界402は地理的なジョブ位置Cにおけるただ1つの地点で閉じる。地理的なジョブ位置Aについてのヒューリスティックな走行コストを求めるために、1対多数の経路サーチャー116は、地理的なジョブ位置Aから地理的なジョブ位置Cまでの距離412を求める。
【0056】
図4Dにおいて、1対多数の経路サーチャー116は、地理的な起点Oと地理的なジョブ位置Cとの間のルートを探す。このルートは、ルート414と中間位置Eを超えたルート416との2つのルートを横断することを含む。1対多数の経路サーチャー116は、ルート414および416に基づいて仮の実際の走行コストを地理的なジョブ位置Cに割り当てる。1対多数の経路サーチャー116は、たとえば
図6を参照して以下でさらに説明するように、終了条件に到達するまで、地理的なジョブ位置までのより好ましいルートの探索を継続可能である。それによって、ジョブスケジューラ114は、地理的なジョブ位置までの実際の走行コストに基づいてジョブのスケジューリングを行なうことができる。
【0057】
図4A~
図4Dでは3つの地理的なジョブ位置のみ示しているが、1対多数の経路サーチャー116は、多くの可能性のある経路を有する広大な領域にわたって多数のジョブ位置の探索を行なわなければならない場合がある。そのような場合、1対多数の経路サーチャー116までのヒューリスティックな走行コストの使用によって、探索を完了するために必要な時間を大幅に削減することが可能になり、この探索を完了する際に使用される計算リソースを削減することが可能になる。
【0058】
図5は、グラフを横断する間に中間ノードにおけるヒューリスティックな走行コストを求めるシナリオの例を示す図である。このシナリオでは、1対多数の経路サーチャーは、地理的な起点Oについてのノードから中間の地理的な位置Aについてのノードまでグラフを横断している。1対多数の経路サーチャーは、4の仮の実際の走行コストをOからAまでのルートに基づいて当該ノードに割り当てる。
【0059】
Aについてのノードを訪れる際に、1対多数の経路サーチャー116は、Aについてのノードが地理的なジョブ位置BおよびCについての2つの隣接ノードを有すると判断する。1対多数の経路サーチャー116は、Aまでの仮の実際の走行コスト(4)とAからBまでの走行コスト(3)との合計に基づいて、7の仮の実際の走行コストをBに割り当てる。1対多数の経路サーチャー116は、Aまでの仮の実際の走行コスト(4)とAからCまでの走行コスト(2)との合計に基づいて、6の仮の実際の走行コストをCに割り当てる。
【0060】
その後、1対多数の経路サーチャー116は、残りの地理的なジョブ位置を取り囲む境界502までの距離504および506に基づいて、BおよびCについてノードにヒューリスティックな走行コストを割り当てる。1対多数の経路サーチャー116はその後、隣接ノードBおよびCの各々について、仮の実際の走行コストとヒューリスティックな走行コストとを合計して隣接ノードごとに仮の合計走行コストを求めることが可能である。1対多数の経路サーチャー116は、仮の合計走行コストに基づいて次に訪れるノードを判断可能である。たとえば、1対多数の経路サーチャー116は、最も低い仮の合計走行コストを有するノードを次に訪れることが可能である。
【0061】
たとえば、距離504が2の値を有すると仮定すると、ノードBは9の仮の合計走行コストを有することになる。さらに距離506が4の値を有すると仮定すると、Cについてのノードは10の仮の合計走行コストを有することになる。Bについてのノードはより低い仮の合計走行コストを有するため、1対多数の経路サーチャー116は、Cについてのノードを訪れる前にBについてのノードを訪れることが可能である。
【0062】
この例では、たとえCについてのノードがより低い仮の実際の走行コストを有していたとしても(Cについては6であるのに対し、Bについては7)、1対多数の経路サーチャー116は、Cについてのノードを訪れる前にBについてのノードを訪れることができる。ヒューリスティックな走行コストの使用によって、1対多数の経路サーチャー116は、境界502の内側の残りのジョブ位置により近い地理的な位置に向かって移動することによって、グラフを横断するように導かれる。1対多数の経路サーチャー116を境界502に向けて導くことによって、地理的な起点Oと地理的なジョブ位置との間の経路についてグラフを探索するために必要な合計時間を削減することが可能である。
【0063】
ヒューリスティックな走行コストの使用が探索時間の削減につながらない場合がある。たとえば、地理的な起点Oが多数の地理的なジョブ位置の中心または中心の近くにある場合に、これは起こり得る。この場合、境界を維持することに何も利点はない。そのため、ヒューリスティックな走行コストを使用しない類似の探索と比較して、探索時間が増加する場合がある。なぜなら、そのような類似の探索は、境界を維持する計算オーバーヘッドを避けるからである。
【0064】
探索およびデータセットのさまざまな例について1対多数の経路サーチャー116を試験することは、所与のシステムについてヒューリスティックな走行コストを使用するべきかどうかを判断するために便利であり得る。1対多数の経路サーチャー116は特定の状況においてのみ、たとえば、特定の地理的な領域内での探索または印のあるデータセットにおける探索の場合に、ヒューリスティックな走行コストを使用するように構成可能な場合がある。
【0065】
図6は、1対多数の経路サーチャーを用いて地理的な起点から地理的なジョブ位置までの走行に基づいてジョブのスケジューリングを行なうための方法600の例を示すフローチャートである。方法600は、1つ以上のコンピュータのシステムによって行なうことができる。例示のために、方法600は、方法600を行なうシステムについて説明される。
【0066】
システムは、地理的な起点および多数の地理的なジョブロケーショについて地理的な位置を収集する(602)。たとえば、システムは、
図2の情報コレクタ202を参照して、上述のように情報の収集が可能である。
【0067】
システムは、地理的なジョブ位置を取り囲む境界を初期化し、地理的な位置に対応するノードと地理的な位置間の走行コストによって重み付けられたノード間のエッジとのグラフにおいて、地理的な起点に対応する起点ノードを特定する(604)。グラフは、たとえば、道路網、または飛行機、列車もしくは他の乗物のルート網を表し得る。そうすると、ノードは、交差点、飛行場、または鉄道の駅を表し、エッジは、道路、飛行経路、または線路を表す。
【0068】
他のノードには最初に、たとえば∞の仮の走行コストをこれらのノードの各々に割り当てることによって、まだ訪れていないと印がつけられる。境界は、矩形状または任意の適切な形状であり得る。
【0069】
システムは、最初に地理的な起点についてのノードを訪れることによって、グラフの横断を開始する(606)。システムは、地理的な起点についてのノードの隣接ノードを特定し、次に隣接ノードの各々において仮の走行コストをアップデートする。各隣接ノードについて、システムは、仮の実際の走行コストを求める。地理的な起点が境界の内側にない場合、システムは、隣接ノードから境界までの距離に基づいてヒューリスティックな走行コストを求める。
【0070】
たとえば、システムは、隣接ノードから境界までの最短の直線距離を求めることができる。システムは、仮の実際の走行コストおよびヒューリスティックな走行コストに基づいて、隣接ノードについて仮の走行コストを求める。
【0071】
システムは後で隣接ノードまでのより好ましいルートを発見するため、この時点では、各ノードにおける走行コストは仮のものである。システムが後でより好ましいルートを発見する場合、システムは、ノードの仮の走行コストを後で発見されるより好ましいルートを使用する走行コストで置き換える。
【0072】
宛先ノードが発見されると、システムは境界を調節する(610)。システムは、残りのまだ訪れていない地理的なジョブ位置を取り囲むように境界を調節する。たとえば、システムは、
図3の境界マネジャ306を参照して上述のように境界を調節可能である。
【0073】
システムは、終了条件に到達したかどうかを判断することによって、グラフの横断を継続するかどうかを判断する(612)。典型的には、システムが地理的なジョブ位置の各々についてノードを訪れていた場合、および、さらなる探索によって地理的なジョブ位置のうちのいずれかまでのより好ましい経路がもたらされない場合、終了条件に到達する。終了条件が時間制限または探索を中止するための他の条件も含み得る例もある。
【0074】
システムは、地理的なジョブ位置までの走行の仮の合計コストを訪れたノードの各々までの走行の仮の合計コストと比較することによって、より好ましい経路をもたらす探索がないと判断する。訪れたいずれかのノードが地理的なジョブ位置のいずれかまでの走行の現在の合計コストよりも低い仮の合計走行コストを有する場合、終了条件に到達しておらず、システムはこれらのノードを訪れてより好ましい経路をもたらすかどうかを判断する。訪れたノードのうちでより好ましい経路をもたらす走行の仮の合計コストを有するノードがない場合、システムは探索を中止し得る。
【0075】
たとえば、システムは横断されるべきノードの優先待ち行列を維持し得る。仮の合計走行コストがより低いノードには、行列においてより高い優先順位が与えられる。システムはグラフを横断する際に、行列から最も低い合計走行コストを有するノードを除去でき、除去されたノードの隣接ノードを訪れることができ、これらの隣接ノードを行列に加えることができる。
【0076】
その後システムは、宛先ノードの全てが行列内のどのノードよりも低い合計走行コストを有するまで、または行列が空になるまで、探索を続けることができる。宛先ノードはより好ましい経路をもたらし得るため、合計走行コストがより低い他のノードが残っている場合、宛先ノードは複数回通過される場合がある。
【0077】
システムは探索を継続すると判断すると、次に訪れるノードを選択し(614)、当該ノードを訪れる(606に戻る)。たとえば、システムは、隣接ノードに割り当てられた仮の合計コストに基づいて隣接ノードのうちの1つを選択可能である。システムは、探索を継続しないと判断すると、地理的なジョブ位置までの経路を再構成することによって(616)、これらの地理的なジョブ位置のうちの1つ以上までの実際の経路を必要に応じて探す。
【0078】
たとえば、ジョブスケジューラ114が第1のジョブとして地理的なジョブ位置のうちの1つにおいてジョブのスケジューリングを行なうと、システムは、グラフとグラフを探索する間に求められる走行コストとを用いて、当該地理的なジョブ位置までの最適な経路を再構成可能である。いくつかの例では、探索中に経路上の各ノードがそのプロセッサのトラックを維持するようにシステムが構成される。その後、経路を速やかに再構成可能である。なぜなら、宛先ノードはその先行点を示し、グラフにわたってノードを逆方向に横断して経路を決定できるからである。これは、たとえば探索およびジョブスケジューリングの結果生じるスケジュールと共にユーザに指示を与えるために便利であり得る。
【0079】
システムは、ジョブの各々のスケジューリングが行なわれるまでスケジューリングおよび探索を継続し、その後、スケジュールに基づいてユーザに当該スケジュールを提供する。ユーザはその後、スケジュールによって指定された順番で、および可能であれば探索中に使用されるグラフに基づいて提供される方向に従って地理的なジョブ位置の各々まで走行することによって、または他の誰かを走行させることによって、スケジュールに追従可能である。
【0080】
したがって、方法、システム、およびコンピュータ可読媒体について特定の実施形態、特徴、および例示的な実施形態に関して説明を行なってきたが、主題の実用性はこのように制限されるわけではなく、むしろ、本明細書の開示に基づいて、本発明の主題の分野の当業者に示唆されるように、多数の他の変形、修正、および代替の実施形態を包含するように拡張されることが理解されるべきである。
【0081】
本明細書で説明された構造および特徴のさまざまな組合せまたは下位の組合せが考えられ、これらは本開示の知識を有する当業者にとっては明らかである。本明細書で開示されたさまざまな特徴および要素のいずれも、本明細書で逆に示されていない限り、1つ以上の他の開示の特徴および要素と組み合わせることが可能である。それに応じて、後の請求項に記載される主題は、請求項の範囲内で請求項の均等物を含む変形、修正、および代替実施形態の全てを含むと広く解釈され判断されるように意図されている。
【0082】
本明細書で説明された主題は、ロードマッピングサーバおよびジョブスケジューリングコンピュータシステムなどの特殊用途コンピュータになるように適切にプログラムされた汎用コンピュータにおいて実現可能であり、ジョブスケジューリングおよび地理的なジョブ位置間の1対多数の経路探索において使用される時間および計算リソースを削減することによって、そのようなコンピュータの機能を改善する。1対多数の経路探索で使用される時間を削減することによって、サーバの可用性を改善可能である、および/または、スケジューリングされたジョブまたは探索された経路の数の点でコンピュータの出力を増大可能である。
【0083】
現在開示されている主題のさまざまな詳細は、現在開示されている主題の範囲内で変更可能であることが理解される。さらに、前述の記載は、限定の目的のためではなく、単に例示のためのものである。