JP2020522063A - 車両スケジューリングのために車両相互依存性を解決するためのコンピュータ化されたシステムおよび方法 - Google Patents

車両スケジューリングのために車両相互依存性を解決するためのコンピュータ化されたシステムおよび方法 Download PDF

Info

Publication number
JP2020522063A
JP2020522063A JP2019565280A JP2019565280A JP2020522063A JP 2020522063 A JP2020522063 A JP 2020522063A JP 2019565280 A JP2019565280 A JP 2019565280A JP 2019565280 A JP2019565280 A JP 2019565280A JP 2020522063 A JP2020522063 A JP 2020522063A
Authority
JP
Japan
Prior art keywords
task
resource
candidate
schedule
dependency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019565280A
Other languages
English (en)
Other versions
JP7319196B2 (ja
JP2020522063A5 (ja
Inventor
バン・ウェストインデ,チャールズ・ピィ
ミズィーナ,スベトラーナ
ゾブチェンコ,マリナ
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2020522063A publication Critical patent/JP2020522063A/ja
Publication of JP2020522063A5 publication Critical patent/JP2020522063A5/ja
Application granted granted Critical
Publication of JP7319196B2 publication Critical patent/JP7319196B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063116Schedule adjustment for a person or group
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063118Staff planning in a project environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06314Calendaring for a resource
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

候補時間にリソースを使用して実行されるタスクを計算して割り当てることに関連付けられたシステム、方法および他の実施形態について説明する。一実施形態では、方法は、スケジューリングデータ構造にアクセスするステップと、1つ以上の他のリソースを使用して実行される、リソースが依存するタスクのためのデータレコードと、リソースを使用して実行される、他のリソースが依存するタスクのためのデータレコードとを分析するステップとを含む。さまざまなタスク間で判断される依存性に基づいて、リソースを使用してタスクを実行するための候補時間を計算し、タスクのための候補時間を使用して候補スケジュールを生成する。候補スケジュールが既存のスケジュールよりも大きなパフォーマンススコアを有すると判断される場合、候補スケジュールに基づいてスケジューリングデータ構造を修正および再生成する。

Description

背景
さまざまなサービスおよび製品を実現するためにコンピューティングデバイスが使用されている。コンピューティングデバイスは、車両を使用して実行されるタスクのスケジューリングなどのスケジューリングサービスを提供し得る。スケジューリングされたタスクは、分散ネットワーク環境(たとえば、クラウドサービス)のデータベースもしくは他の格納構造内、またはローカルコンピュータのデータベースもしくは他の格納構造内に格納されてもよい。ユーザは、コンピューティングデバイスと対話して、スケジューリングされたタスクに対して動作を実行し得る。たとえば、コンピューティングデバイスは、新規タスクの追加、既存のタスクの除去、または既存のタスクの修正に使用されてもよい。
スケジューリングサービスによって管理されるさまざまなタスクは、さまざまな車両を使用して実行されるようにスケジューリングされてもよく、そのため、第1の車両を使用して実行されるようにスケジューリングされるタスクもあれば、第2の車両を使用して実行されるようにスケジューリングされるタスクもある。第1の車両を使用して実行されるようにスケジューリングされる第1のタスクと第2の車両を使用して実行されるようにスケジューリングされる第2のタスクとの間には依存性があり得て、これは、既存のスケジュールを修正する試みを複雑にする可能性がある。
車両の有効性、タスクの正常終了率を向上させ、関連する利益を増大させ、および/または、車両によって配達されている在庫を移動させるために、新規タスクの時間を効率的に識別して割り当てることが望ましい。
残念ながら、一般的な既存の技術は、一部の時間を識別することに限定され、利用可能な他の時間は識別しない。したがって、スケジュールの生成は、時間割り当ての選択肢が限られることによって制限されてきた。
概要
一実施形態では、コンピューティングシステムが開示されており、上記コンピューティングシステムは、メモリに接続されたプロセッサと、非一時的なコンピュータ読取可能媒体に格納され、命令で構成されたスケジューリングモジュールとを備え、上記命令は、上記プロセッサによって実行されると、上記プロセッサに動作を実行させ、当該動作は、複数のタスクを含むスケジューリングデータ構造を修正する要求を受信したことに応答して、上記要求が、複数のリソースから第1のリソースを使用して実行される第1のタスクをスケジューリングすることに向けられていることを判断すること、および/または、ネットワーク通信を介してデータベースから上記スケジューリングデータ構造にアクセスすることを含み、上記スケジューリングデータ構造は、(i)1つ以上の他のリソースを使用して実行される、上記第1のリソースが依存する第1のタスクセットのためのデータレコードと、(ii)上記第1のリソースを使用して実行される、他のリソースが依存する第2のタスクセットのためのデータレコードとを含み、および/または、上記データレコードを分析して、上記1つ以上の他のリソースを使用して実行される上記第1のタスクセットと上記第1のリソースを使用して実行される上記第2のタスクセットとの間の依存性を判断すること、および/または、上記依存性に基づいて、上記第1のリソースを使用して上記第1のタスクを実行するための候補時間を計算すること、および/または、上記第1のリソースのための上記第1のタスクのための上記候補時間を使用して、上記第1のリソースを含む上記複数のリソースのための候補スケジュールを生成すること、および/または、上記候補スケジュールを評価して、候補スケジュールパフォーマンススコアを計算すること、および/または、上記候補スケジュールパフォーマンススコアが既存のスケジュールの既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、上記候補スケジュールに基づいて上記スケジューリングデータ構造を修正および再生成して、上記候補時間に上記第1のリソースを使用して実行される上記第1のタスクを割り当てることを含む。
上記コンピューティングシステムの別の実施形態では、上記命令は、上記プロセッサによって実行されると、上記プロセッサに動作を繰り返し実行させ、当該動作は、1つ以上の依存性に基づいて、上記複数のリソースから第2のリソースを使用して第2のタスクを実行するための第2の候補時間を計算すること、および/または、上記第2のリソースのための上記第2のタスクのための上記第2の候補時間を使用して、上記第2のリソースを含む上記複数のリソースのための第2の候補スケジュールを生成すること、および/または、上記第2の候補スケジュールを評価して、第2の候補スケジュールパフォーマンススコアを計算すること、および/または、上記第2の候補スケジュールパフォーマンススコアが第2の既存のスケジュールの第2の既存のスケジュールパフォーマンススコア以下であると判断したことに応答して、上記1つ以上の依存性に基づいて、上記複数のリソースから上記第2のリソースを使用して上記第2のタスクを実行するための第3の候補時間を計算すること、および/または、上記第2の候補スケジュールパフォーマンススコアが上記第2の既存のスケジュールの上記第2の既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、上記第2の候補スケジュールに基づいて上記スケジューリングデータ構造を修正および再生成して、上記第2の候補時間に上記第2のリソースを使用して実行される上記第2のタスクを割り当てることを含む。
上記コンピューティングシステムからの構成要素の任意の組み合わせの別の実施形態では、上記候補スケジュールを評価して上記候補スケジュールパフォーマンススコアを計算するための上記命令は、上記プロセッサによって実行されると、上記プロセッサに動作を実行させる命令をさらに含み、当該動作は、上記候補スケジュールを分析して、上記候補スケジュールにおける上記第1のタスクセットと上記第2のタスクセットとの間の依存性の複数の競合を判断することと、上記依存性の複数の競合に基づいて上記候補スケジュールパフォーマンススコアを生成することとを含む。
上記コンピューティングシステムからの構成要素の任意の組み合わせの別の実施形態では、上記依存性の競合は、(i)第2のリソースを使用して実行される第3のタスクの前の時間を有する、上記第1のリソースを使用して実行される第2のタスクに対応する競合、または(ii)上記第1のリソースを使用して実行される第5のタスクの前の時間を有する、上記第2のリソースを使用して実行される第4のタスクに対応する競合、のうちの少なくとも1つを備え、上記依存性は、上記第2のリソースを使用して実行される上記第3のタスクに対する、上記第1のリソースを使用して実行される上記第2のタスクの依存性を備え、上記依存性は、上記第1のリソースを使用して実行される上記第5のタスクに対する、上記第2のリソースを使用して実行される上記第4のタスクの依存性を備える。
上記コンピューティングシステムからの構成要素の任意の組み合わせの別の実施形態では、上記第1のリソースを使用して上記第1のタスクを実行するための上記候補時間を計算するために使用される上記依存性は、(i)第2のリソースを使用して実行される第2のタスクに対する、上記第1のリソースを使用して実行される上記第1のタスクの依存性、または(ii)上記第1のリソースを使用して実行される上記第1のタスクに対する、上記第2のリソースを使用して実行される第3のタスクの依存性、のうちの少なくとも1つを備え、および/または、上記依存性に基づいて、上記第1のリソースを使用して上記第1のタスクを実行するための上記候補時間を計算するための上記命令は、上記プロセッサによって実行されると、上記プロセッサに以下の動作のうちの少なくとも1つを実行させる命令をさらに含み、上記動作は、上記第2のリソースを使用して実行される上記第2のタスクに対する、上記第1のリソースを使用して実行される上記第1のタスクの上記依存性に基づいて、上記第2のタスクの時間の後であるように上記候補時間を計算すること、または、上記第1のリソースを使用して実行される上記第1のタスクに対する、上記第2のリソースを使用して実行される上記第3のタスクの上記依存性に基づいて、上記第3のタスクの時間の前であるように上記候補時間を計算することを含む。
上記コンピューティングシステムからの構成要素の任意の組み合わせの別の実施形態では、上記第1のリソースを使用して上記第1のタスクを実行するための上記候補時間を計算するために使用される上記依存性は、(i)第2のリソースのための第3のタスクに対する上記第1のリソースのための第2のタスクの依存性、または(ii)上記第1のリソースのための第5のタスクに対する上記第2のリソースのための第4のタスクの依存性、のうちの少なくとも1つを備え、および/または、上記命令は、上記プロセッサによって実行されると、上記プロセッサに、上記第2のリソースのための上記第3のタスクに対する上記第1のリソースのための上記第2のタスクの上記依存性に基づいて、上記第3のタスクの時間の後であるように上記第1のリソースのための上記第2のタスクのための第2の候補時間を計算すること、または上記第1のリソースのための上記第5のタスクに対する上記第2のリソースのための上記第4のタスクの上記依存性に基づいて、上記第4のタスクの時間の前であるように上記第1のリソースのための上記第5のタスクのための第3の候補時間を計算すること、のうちの少なくとも1つを実行させ、および/または、上記複数のリソースのための上記候補スケジュールを生成するための上記命令は、上記プロセッサによって実行されると、上記プロセッサに動作のうちの少なくとも1つを実行させる命令をさらに含み、当該動作は、上記候補スケジュールにおける上記第1のリソースのための上記第2のタスクのための上記第2の候補時間を使用すること、または、上記候補スケジュールにおける上記第1のリソースのための上記第5のタスクのための上記第3の候補時間を使用することを含む。
上記コンピューティングシステムからの構成要素の任意の組み合わせの別の実施形態では、上記第1のリソースは、第1の車両であり、上記第1のタスクセットは、1つ以上の他の車両を使用して実行され、上記第2のタスクセットは、上記第1の車両によって実行され、および/または、上記候補スケジュールパフォーマンススコアが上記既存のスケジュールの上記既存のスケジュールパフォーマンススコアよりも大きいと判断するための上記命令は、上記プロセッサによって実行されると、上記プロセッサに動作を実行させる命令をさらに含み、当該動作は、上記第1の車両と上記1つ以上の他の車両のうちの少なくとも1つとの間の依存性によってもたらされる上記既存のスケジュールにおける競合を上記候補スケジュールが解決すると判断することを含む。
別の実施形態では、プロセッサを備えるコンピューティングデバイスによって実行される、コンピュータによって実行される方法が開示されている。上記コンピュータによって実行される方法は、機能の1つ以上の組み合わせを備え、上記機能は、少なくとも上記プロセッサが、複数のタスクを含むスケジューリングデータ構造を修正する要求を受信するステップ、および/または、少なくとも上記プロセッサが、ネットワーク通信を介してデータベースから上記スケジューリングデータ構造にアクセスするステップを含み、上記スケジューリングデータ構造は、(i)1つ以上の他のリソースを使用して実行される、第1のリソースが依存する第1のタスクセットのためのデータレコード、および/または、(ii)上記第1のリソースを使用して実行される、他のリソースが依存する第2のタスクセットのためのデータレコードを含み、および/または、少なくとも上記プロセッサが、上記データレコードを分析して、上記1つ以上の他のリソースを使用して実行される上記第1のタスクセットと上記第1のリソースを使用して実行される上記第2のタスクセットとの間の依存性を判断するステップ、および/または、少なくとも上記プロセッサが、上記依存性に基づいて、上記第1のリソースを使用して第1のタスクを実行するための候補時間を計算するステップ、および/または、少なくとも上記プロセッサが、上記第1のリソースのための上記第1のタスクのための上記候補時間を使用して、上記第1のリソースを含む上記複数のリソースのための候補スケジュールを生成するステップ、および/または、少なくとも上記プロセッサが、上記候補スケジュールを評価して、候補スケジュールパフォーマンススコアを計算するステップ、および/または、少なくとも上記プロセッサが、上記候補スケジュールパフォーマンススコアが既存のスケジュールの既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、上記候補スケジュールに基づいて上記スケジューリングデータ構造を修正および再生成して、上記候補時間に上記第1のリソースを使用して実行される上記第1のタスクを割り当てるステップを含む。
別の実施形態では、上記方法は、上記コンピューティングシステムの一部として記載される機能の任意の組み合わせを含んでもよい。
別の実施形態では、非一時的なコンピュータ読取可能媒体が開示されており、上記非一時的なコンピュータ読取可能媒体は、コンピューティングデバイスのプロセッサによって実行されると、開示されている方法の機能の任意の組み合わせを実行する格納された命令を(たとえば、1つ以上のプログラムまたはアルゴリズムとして)備える。
明細書に組み入れられ、明細書の一部を構成する添付の図面には、さまざまなシステム、方法、および本開示の他の実施形態が示されている。図中に示されている要素境界(たとえば、枠、枠群、または他の形状)は、境界の一実施形態を示していることが理解されるであろう。いくつかの実施形態では、1つの要素は、複数の要素として実現されてもよく、またはこれらの複数の要素は、1つの要素として実現されてもよい。いくつかの実施形態では、別の要素の内部構成要素として示される要素は、外部構成要素として実現されてもよく、逆の場合も同様である。さらに、要素は一定の比率に応じて描かれているわけではない。
候補時間にリソースを使用して実行されるタスクを割り当てることに関連付けられたシステムの一実施形態を示す。 候補時間にリソースを使用して実行されるタスクを割り当てることに関連付けられた方法の一実施形態を示す。 スケジューリングデータ構造の一実施形態を示す。 エンティティコンピュータおよびグラフィカルユーザインターフェイスの一実施形態を示す。 スケジューリング命令を有するスケジュール実行部の一実施形態を示す。 モニタインターフェイスを有するスケジュール実行部の一実施形態を示す。 非一時的なコンピュータ読取可能媒体の一実施形態を示す。 開示されているシステムおよび/または方法の例で構成されたコンピューティングシステムの一実施形態を示す。
詳細な説明
車両、ローディングベイ、クルー/チームなどのリソースを使用して実行される配達などのタスクをスケジューリングするコンピュータ化されたスケジューリングシステムおよび方法が本明細書に記載されている。一実施形態では、電子スケジュールは、複数のタイムスロットで構成されたデータ構造である。電子スケジュールは、さまざまなタイムスロットにおけるさまざまな時間に実行されるようにスケジューリングされるさまざまなタスクを含み得る。しかし、1つ以上のタスクは、別のタスクとの依存関係を有し得る。たとえば、第1の車両による第1の配達は、第2の車両による別の配達に依存してもよい。したがって、第1の配達は、第2の車両による他の配達の実行/完了後に実行される必要があり得る。これらのタイプの依存性は、電子スケジュールにおいてタスクをどのようにスケジューリングするかに影響を及ぼし、および/または、制限する。
ユーザは、スケジューリングシステムによって新規タスクをスケジューリングしようとする場合、この新規タスクを実行するために使用されるリソース、新規タスクと別のタスクとの間の依存関係、および新規タスクを完了させる必要がある期限などの、新規タスクについての入力を提供してもよい。システムは、タスクがリソースに割り当てられない時間(電子スケジュールにおけるタイムスロット)を識別しようとし、この時間を新規タスクに対してディスプレイ画面上に表示する。しかし、来たるべき期限までに新規タスクを至急完了させる必要がある場合、新規タスクの期限前に電子スケジュールにはリソースのための空き時間がないかもしれない。代替的に、新規タスクが別の(たとえば、既存の)タスクに依存しており、(必要な)閾値時間内(たとえば、他のタスクの完了の3時間以内)に新規タスクを実行する必要がある場合、他のタスクの閾値時間内に空き時間がない(空いているタイムスロットがない)かもしれない。
したがって、期限前または他のタスクの閾値時間内に新規タスクを完了させるためには、1つ以上の既存のタスクを電子スケジュール内で移動させる必要があるだろう。残念ながら、一般的なスケジュールは、複雑な依存性によって関連付けられた多数のタスクを含み得るので、選り分けたり、アクセスしたり、修正したりするのが困難であることが多い。したがって、ユーザ自身が容易にまたは正確に既存のタスクをさまざまなタイムスロットに移動させて、時間競合を引き起こすことなく依存性に従って新規タスクのために時間を利用できるようにすることはできない。一実施形態において、このスケジューリングシステムは、この問題に対処するためにタスクのスケジュールを生成するように構成される。
図1を参照して、候補時間にリソースを使用して実行されるタスクを割り当てることに関連付けられたコンピュータ化されたシステム100の一実施形態を示す。システム100は、コンピュータ上で実行されるように構成され得るコントローラ105を含む。コントローラ105は、リソースを使用して実行されるようにスケジューリングされるタスクを要求している車両ベースの配達サービスのコンピュータなどのエンティティコンピュータ115からタスク要求110を受信したことに基づいて起動されてもよい。たとえば、タスクは、第1のパッケージをローディングベイに配達して第2のパッケージをローディングベイから引き取るアポイントメントであってもよい。コントローラ105は、ネットワーク接続を介してタスク要求110を受信してもよい。
スケジューリングデータ検索部120は、タスク要求110を分析して、タスクおよび関連付けられたパラメータを識別する内部データを識別するように構成される。コントローラ105は、スケジューリングデータ検索部120を利用して、タスク要求110について既存のタスクレコードを検討するための基準125を生成する。基準125は、第1のパッケージをローディングベイから引き取る第2のアポイントメントなどの、上記タスクに依存する他のタスク、および第2のパッケージをローディングベイに配達する第3のアポイントメントなどの、上記タスクが依存する他のタスクを指定してもよい。いくつかの例では、基準125は、第1のパッケージを配達して第2のパッケージを引き取るための第1の車両、およびローディングベイなどの、タスクを実行するために使用されるリソースについての情報をさらに指定してもよい。
基準125は、タスクをスケジューリングする必要がある時間枠を指定してもよい。たとえば、時間枠は、タスク要求110に基づいて決定されてもよく、開始時点(それ以降にタスクがスケジューリングされ得る)と、終了時点(それ以前にタスクがスケジューリングされ得る)とを指定してもよい。代替的に、時間枠は、開始時点を指定することなく、終了時点(それ以前にタスクがスケジューリングされ得る)を指定してもよい。たとえば、基準125は、車両ベースの配達サービスのクライアントが3日以内に第1のパッケージを(第1の受取人に)配達し、第2のパッケージを(第2の受取人に)配達する必要があることに従って、時間枠として「3日以内」を指定してもよい。
基準125は、閾値優先順位(レベル)をさらに指定してもよい。基準125は、閾値優先順位として中程度の優先順位をさらに指定してもよい。たとえば、タスクは、中程度の優先順位を有してもよく、車両ベースの配達サービスは、タスクをスケジューリングする際に同様のまたはより高い優先順位を有するタスクを修正するのではなく、その代わりにより低い優先順位を有するタスクを修正することを考えるだけでよい。別の例では、車両ベースの配達サービスに対するクライアントの値は、中程度の値であってもよく、車両ベースの配達サービスは、車両ベースの配達サービスに対して同様のまたはより高い値を有する顧客に関連付けられたタスクを修正するのではなく、その代わりに車両ベースの配達サービスに対してより低い値を有する顧客に関連付けられたタスクを修正することを考えるだけでよい。
別の例では、(新規)タスクの優先順位は、タスクのスケジューリングに割り当てられる(たとえば、プロセッサ、メモリなどの)リソースのレベルを示してもよい。たとえば、タスクの優先順位が高くなればなるほど、タスクをスケジューリングする際に考慮すべきスケジューリングデータ構造130のタイムスロットおよびタスクの数が多くなり、そのため、タスクをスケジューリングする際に時間(スケジューリングデータ構造130におけるタイムスロット)およびタスクを識別するために割り当てられる(たとえば、プロセッサ、メモリなどの)リソースが多くなる。
いくつかの例では、2つのリソースを使用して実行されるタスクは、スケジューリングデータ構造130では2つのタスクとして表される。これらの例では、車両およびローディングベイを使用して実行されるタスクは、車両タスクおよびローディングベイタスクとして表される。他の例では、2つのリソースを使用して実行されるタスクは、スケジューリングデータ構造130では単一のタスクとして表される。
複数のリソース(車両、ローディングベイなど)のためのタスクレコード135を識別するために、基準125を使用してスケジューリングデータ構造130を分析する。タスクレコード135は、(タスクを実行するリソースとは異なる)他のリソースを使用して実行される、リソース(および/またはタスク)が依存する第1のタスクセットのためのレコードをスケジューリングデータ構造130の中に含んでもよい。たとえば、第2の車両が第2のパッケージをローディングベイに配達する第3のアポイントメントは、スケジューリングデータ構造130において識別されてタスクレコード135に含められてもよい。なぜなら、第1の車両によるタスクの実行(特に、ローディングベイからの第2のパッケージの引き取り)は、第1の車両がローディングベイに到着する前に第2の車両が第2のパッケージをローディングベイに配達することに依存するからである。タスクレコード135は、(タスクを実行するための)リソースを使用して実行される、他のリソースが依存する第2のタスクセットのためのレコードもスケジューリングデータ構造130の中に含んでもよい。たとえば、第3の車両が第1のパッケージをローディングベイから引き取る第2のアポイントメントは、スケジューリングデータ構造130において識別されて、タスクレコード135に含められてもよい。なぜなら、第3の車両による第1のパッケージの引き取りは、第3の車両がローディングベイに到着する前に第1の車両がタスクを実行すること(特に、第1のパッケージをローディングベイに配達すること)に依存するからである。
コントローラ105は、スケジューリングデータ分析部140を利用して、タスクレコード135を分析して、第1のタスクセットと第2のタスクセットとの間の依存性を判断する。タスクレコード135の各々は、タスクを実行できる時間を識別すると考えられてもよい。たとえば、第2の車両が第2のパッケージをローディングベイに配達する第3のアポイントメントは、5月3日午後2時にスケジューリングされるように決定されてもよく、第3の車両が第1のパッケージをローディングベイから引き取る第2のアポイントメントは、5月3日午後5時にスケジューリングされるように決定されてもよい。
タスクが5月3日午後12時にスケジューリングされる場合、閾値を超える時間にわたってローディングベイからの出発を遅らせることなく、または再度ローディングベイに戻ることなく、タスクによって要求される通りには第1の車両が第2のパッケージを引き取ることができないという判断がなされてもよい。また、タスクが5月3日午後6時にスケジューリングされる場合、閾値を超える時間にわたってローディングベイからの出発を遅らせることなく、または再度ローディングベイに戻ることなく、第2のアポイントメントによって要求される通りには第3の車両が第1のパッケージを引き取ることができないという判断がなされてもよい。また、タスクが5月3日午後4時にスケジューリングされる場合、遅延なく、第2のアポイントメントによって要求される通りに第3の車両が第1のパッケージを引き取ることができ、遅延なく、タスクによって要求される通りに第1の車両が第2のパッケージを引き取ることができるという判断がなされてもよい。したがって、5月3日午後4時は、リソース(第1の車両)を使用してタスクを実行するための候補時間として計算されてもよい。一実施形態では、候補時間は、上記タスクが依存するタスクの実行の第1の閾値時間(3時間)以内、および/または、上記タスクに依存するタスクの実行の第2の閾値時間(2時間)以内に上記タスクが実行されるという判断に基づいて計算される。
コントローラ105は、スケジューリングデータ分析部140を利用して、タスクレコード135において識別された複数のリソースのための候補スケジュールを生成する。候補スケジュールは、リソースを使用して実行されるタスクのための候補時間を含む。候補スケジュールは、いくつかのリソースを使用して実行されるいくつかのタスク(配達、引き取りなど)のための更新後の時間、および、他のリソースを使用して実行される他のタスク(配達、引き取りなど)のための既存の時間も含んでもよい。いくつかの例では、候補スケジュールは、タスクおよび/またはタスクのシーケンスの特定の割り当てを考慮してタスクに関連付けられた計算されたタイミングを含む。
コントローラ105は、スケジューリングデータ分析部140を利用して、候補スケジュールを評価して、候補スケジュールパフォーマンススコアを計算する。たとえば、候補スケジュールパフォーマンススコアは、タスク間の競合の数、遅延の数、ならびに/または、候補スケジュールの実行に起因すると予測されるタスクおよび/もしくはリソース間の依存性によって引き起こされる繰り返しトリップの数に基づいてもよい。別の例では、候補スケジュールパフォーマンススコアは、候補スケジュールにおける依存するタスク間で利用可能な時間的柔軟性(誤りの余地)(たとえば、午後2時の第2の車両によるローディングベイへの第2のパッケージの配達と午後4時のタスクとの間の2時間の時間的柔軟性)に基づいてもよい。
コントローラ105は、スケジューリングデータ分析部140を利用して、候補スケジュールパフォーマンススコアと(複数のリソースのための)既存のスケジュールの既存のスケジュールパフォーマンススコアとを比較する。既存のスケジュールは、タスク要求110がコントローラ105によって受信されたときには複数のリソースにわたって既に実行されていてもよい。候補スケジュールパフォーマンススコアが既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、スケジューリングデータ構造130を候補スケジュールに基づいて修正および再生成して、候補時間(5月3日午後4時)にリソース(第1の車両)を使用して実行されるタスクを割り当てる。
その代わりに、候補スケジュールパフォーマンススコアが既存のスケジュールパフォーマンススコア以下であるという判断がなされた場合、既存のスケジュールが保存され、候補スケジュールが廃棄され、(リソースを使用してタスクを実行するための新たな候補時間を有する)新たな候補スケジュールが生成され、評価される。いくつかの例では、候補スケジュールパフォーマンススコアが閾値マージンだけ既存のスケジュールパフォーマンススコアよりも大きい場合にのみ、スケジューリングデータ構造130は、候補スケジュールに基づいて修正および再生成される。
いくつかの例では、候補時間の計算および/または候補スケジュールの生成の一部として、複数のタスクの各タスクの開始時間案および完了時間案が、(以前に計算された)先行タスクの完了時間に基づいて、(繰り返し)再計算される。再計算は、アルゴリズムを使用して実行されてもよく、このアルゴリズムは、候補時間の計算、候補スケジュールの生成および/または候補スケジュールパフォーマンススコアと既存のスケジュールパフォーマンススコアとの比較(の1つ以上の繰り返し)の一部として、1つ以上の(たとえば、全ての)タスクを繰り返して、先行タスクに基づいて各タスクの完了時間案を再計算する。アルゴリズムは、1つ以上のタスクの時間がもはや変更されなくなるまでタスクを繰り返し続ける。
コントローラ105は、候補スケジュールに対応する再生成されたスケジューリングデータ構造130の一部を含むスケジュール命令145を生成して、スケジュール実行部150に提供し、それによってスケジュール実行部150を制御する。したがって、スケジュール命令145は、スケジュール実行部150に提供されて、5月3日午後4時(候補時間)に第1のパッケージをローディングベイに配達して第2のパッケージをローディングベイから引き取るように第1の車両に指示し、5月3日午後2時に第2のパッケージをローディングベイに配達するように第2の車両に指示し、5月3日午後5時に第1のパッケージをローディングベイから引き取るように第3の車両に指示してもよい。
より高い優先順位を有するタスクは、より低い優先順位を有するタスクよりも、他のタイムスロットに移動できない確率が高いことに関連付けられてもよいということが理解され得る。すなわち、一例では、閾値優先順位よりも高い優先順位を有するタスクが他のタイムスロットに移動できる可能性があったとしても、閾値優先順位よりも低い優先順位を有する別のタスクが他のタイムスロットに移動できる可能性の方が高い。したがって、まず他のタスクを検討することがより効率的である。この発見的アプローチを使用して、処理能力が小さく、メモリ使用量が少なく、データベースアクセスが少ないなどの状態で適切なタイムスロットを識別することができる。
一実施形態では、システム100は、企業組織のためのアプリケーションまたは分散アプリケーションの集合体を含むコンピューティング/データ処理システムである。アプリケーションおよびシステム100は、クラウドベースのネットワーキングシステム、ソフトウェア・アズ・ア・サービス(SaaS)アーキテクチャ、または他のタイプのネットワーク化されたコンピューティングソリューションとともに動作するように構成されてもよく、またはクラウドベースのネットワーキングシステム、SaaSアーキテクチャ、または他のタイプのネットワーク化されたコンピューティングソリューションとして実現されてもよい。一実施形態では、システム100は、少なくとも本明細書に開示されている機能を提供し、コンピュータネットワークを介してシステム100(サーバとして機能)と通信するコンピューティングデバイス/端末を介して多くのユーザによってアクセスされる集中型サーバ側アプリケーションである。
図2は、候補時間に第1のリソースを使用して実行される第1のタスクを割り当てることに関連付けられた、コンピュータによって実行される方法200の一実施形態を示す。一実施形態では、方法200は、命令を実行するためのプロセッサ810、メモリ815、および/または、制御命令が生成されるデータ構造を格納するためのディスク830、および/または、ネットワークを介してデータ構造をリモートコンピュータに送信するためのネットワークハードウェアなどの(図8に示される)コンピュータ805のさまざまなコンピューティングリソースを利用して、コントローラ105によって実行される。方法200は、エンティティコンピュータ115からのタスク要求110の受信などのさまざまなトリガに基づいてトリガされてもよい。
205において、タスク要求110を受信し、タスク要求110を受信したことに応答して、タスク要求110が、リソース(第1のクルー)を使用して実行されるタスク(穴を掘ること)をスケジューリングすることに向けられていることを判断する。いくつかの例では、タスク要求110は、エンティティコンピュータ115から(コントローラ105をホストする)サーバによって受信される。
図4は、タスク要求110を生成するために使用され得るエンティティコンピュータ115上のグラフィカルユーザインターフェイス405の一実施形態を示す。グラフィカルユーザインターフェイス405は、第1のグラフィカルオブジェクト410、第2のグラフィカルオブジェクト415、第3のグラフィカルオブジェクト420、第4のグラフィカルオブジェクト425および第5のグラフィカルオブジェクト430を表示するように制御される。第1のグラフィカルオブジェクト410は、第1のタスクの場所などの一般的情報を選択するユーザ入力を受信するように構成される。第2のグラフィカルオブジェクト415は、第1のタスクが別のタスクに依存していることの表示などの、第1のタスクの依存性情報を選択するユーザ入力を受信するように構成される。第3のグラフィカルオブジェクト420は、第1のタスク(穴を掘ること)を実行するための第1のリソース(第1のクルー)についてのリソース情報を選択するユーザ入力を受信するように構成される。第4のグラフィカルオブジェクト425は、第1のタスクが実行される時間枠(1ヶ月、1シーズン、1年など)を選択するユーザ入力を受信するように構成される。
図2に戻って、210において、ネットワーク通信を介してスケジューリングデータ構造130にデータベースからアクセスする。スケジューリングデータ構造130の一実施形態は、図3に示されており、タイムスロット315を割り当てられた複数のタスク305および複数のリソース310と、複数のタスク305のうちの1つ以上に関連付けられた依存されるタスク320および依存するタスク325とを含む。基準125に対応するスケジューリングデータ構造130におけるタスクレコード135がアクセス(ダウンロード)されてもよく、基準125に対応しない他のタスクレコードはアクセスされなくてもよい。
アクセスされるタスクレコード135は、1つ以上の他のリソース(他のクルー)を使用して実行される、第1のリソース(第1のクルー)が依存する第1のタスクセットを含む。たとえば、図3は、第1のタスク(穴を掘ること)が第1のリソース(第1のクルー)を使用して実行され、第1のタスクが、第2のリソース(第2のクルー)を使用して実行される第2のタスク(掘る穴の場所をマーキングすること)に依存することを示す。したがって、第2のタスクは、アクセスされるタスクレコード135の第1のタスクセットの中にある。
アクセスされるタスクレコード135は、第1のリソースを使用して実行される、他のリソースが依存する第2のタスクセットも含む。たとえば、図3は、第1のタスク(穴を掘ること)が、第3のリソース(第3のクルー)を使用して実行される第3のタスク(穴の中にワイヤを敷設すること)によって依存されることを示す。したがって、第3のタスクは、アクセスされるタスクレコード135の第2のタスクセットの中にある。
図2に戻って、215において、タスクレコード135を分析して、1つ以上の他のリソースを使用して実行される第1のタスクセットと第1のリソースを使用して実行される第2のタスクセットとの間の依存性を判断する。たとえば、第4のリソース(第4のクルー)によって実行される第4のタスク(場所のマーキングで使用される装置を配達すること)の実行に対する第2のタスクの依存性などの、第1のタスク(穴を掘ること)と、第2のタスク(掘る穴の場所をマーキングすること)と、第3のタスク(穴の中にワイヤを敷設すること)と、他の関連するタスクとの間の依存性が判断されてもよい。
220において、依存性に基づいて、第1のリソースを使用して第1のタスクを実行するための候補時間を計算する。たとえば、第2のタスク(掘る穴の場所をマーキングすること)、第3のタスク(穴の中にワイヤを敷設すること)および第4のタスク(場所のマーキングで使用される装置を配達すること)の時間ならびに依存性に基づいて、第1のタスク(穴を掘ること)について2016年11月1日午後4時という候補時間が決定される。たとえば、第1のリソースを使用して第1のタスクを実行するための候補時間は、第1のタスクが依存する1つ以上のタスクが実行された後の時間であって、第1のタスクに依存する1つ以上のタスクが実行される前の時間であるように決定されてもよい。一実施形態では、候補時間は、第1のタスクが依存するタスクの実行の第1の閾値時間内および/または第1のタスクに依存するタスクの実行の第2の閾値時間内に第1のタスクが実行されるという判断に基づいて計算される。
225において、第1のリソースのための第1のタスクのための候補時間を使用して、第1のリソースを含む複数のリソースのための候補スケジュールを生成する。たとえば、候補スケジュールは、2016年11月1日午後4時という候補時間を第1のタスク(穴を掘ること)に割り当ててもよく、第2のタスク、第3のタスクおよび第4のタスクのために既存の時間を維持してもよく、更新後の時間を複数のリソースによって実行されるようにスケジューリングされる1つ以上の他のタスクに割り当ててもよい。
230において、候補スケジュールを評価して、候補スケジュールパフォーマンススコアを計算する。いくつかの例では、候補スケジュールパフォーマンススコアは、候補スケジュールにおける第1のタスクセットと第2のタスクセットとの間の依存性において識別(または推定)される競合の数に基づく。別のタスクに依存するタスクが他のタスクの前に実行されるようにスケジューリングされる場合に、競合が識別される。たとえば、第6のリソースを使用して実行される第6のタスクの前の時間を第5のタスクが有する場合、第1のリソースを使用して実行される第5のタスクについて競合が判断され、依存性は、第6のタスクに対する第5のタスクの依存性を含む。別の例では、第1のリソースを使用して実行される第8のタスクの前の時間を第7のタスクが有する場合、第6のリソースを使用して実行される第7のタスクについて競合が判断され、依存性は、第8のタスクに対する第7のタスクの依存性を含む。
図4に戻って、第5のグラフィカルオブジェクト430は、グラフィカルオブジェクト410,415,420および/または425を介して受信されるユーザ入力に基づいて生成される候補スケジュールについての情報を表示するように構成される。第5のグラフィカルオブジェクト430は、候補スケジュールについての情報を表示するように構成された第6のグラフィカルオブジェクト435と、候補スケジュールのために計算された候補スケジュールパフォーマンススコアを表示するように構成された第7のグラフィカルオブジェクト440と、候補スケジュールのために計算された候補スケジュールパフォーマンススコアと既存のスケジュールのために計算された既存のスケジュールパフォーマンススコアとの比較を表示するように構成された第8のグラフィカルオブジェクト445とを含む。
図2に戻って、235において、候補スケジュールパフォーマンススコアが既存のスケジュールの既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、候補スケジュールに基づいてスケジューリングデータ構造130を修正および再生成して、候補時間に第1のリソースを使用して実行される第1のタスクを割り当てる。たとえば、第1のリソースを使用した第1のタスクの実行が、スケジューリングデータ構造130における候補時間の候補タイムスロットに割り当てられる。スケジューリングデータ構造130における候補タイムスロットに第1のタスクを割り当てることにより、候補時間に第1のリソースによって第1のタスクが実行される。いくつかの例では、スケジューリングデータ構造130(または、修正されるスケジューリングデータ構造130の一部)は、スケジュール実行部150に提供されるスケジュール命令145に含まれる。
いくつかの例では、図2の動作のうちの1つ以上は、さまざまなリソースまたはタスクについて反復的に繰り返されて、スケジュールの修正をテストし、(競合を減少させることによって)スケジュールを向上させると判断される修正を組み入れ、スケジュールを向上させないと判断される修正を廃棄する。
たとえば、(第2のタスクのための既存の第2の時間とは異なる)第2のリソースを使用して第2のタスクを実行するための第2の候補時間は、複数のリソースを使用して実行されるタスク間で識別される1つ以上の依存性に基づいて計算される。たとえば、第2のリソースを使用して第2のタスクを実行するための第2の候補時間は、第2のタスクが依存する1つ以上のタスクが実行された後の時間であって、第2のタスクに依存する1つ以上のタスクが実行される前の時間であるように決定されてもよい。
第2のリソースを含む複数のリソースのための第2の候補スケジュールは、第2のリソースのための第2のタスクのための第2の候補時間を使用して生成される。たとえば、第2の候補スケジュールは、第1のタスクのための候補時間を維持し、第3のタスクおよび第4のタスクのために既存の時間を維持してもよく、更新後の時間を複数のリソースによって実行されるようにスケジューリングされる1つ以上の他のタスクに割り当ててもよい。
第2の候補スケジュールを評価して、第2の候補スケジュールパフォーマンススコアを計算する。いくつかの例では、第2の候補スケジュールパフォーマンススコアは、第2の候補スケジュールにおける複数のリソースを使用して実行されるタスク間の依存性において識別(または推定)される競合の数に基づく。
第2の候補スケジュールパフォーマンススコアが第2の既存のスケジュールの第2の既存のスケジュールパフォーマンススコア以下であると判断したことに応答して、第2のリソースを使用して第2のタスクを実行するための第3の候補時間を1つ以上の依存性に基づいて計算する。たとえば、第2の候補時間および第2の候補スケジュールは、スケジュールを向上させないと判断されるため廃棄され、第2のリソースを使用して第2のタスクを実行するための第3の候補時間が計算される。
第2の候補スケジュールパフォーマンススコアが第2の既存のスケジュールの第2の既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、第2の候補スケジュールに基づいてスケジューリングデータ構造を修正および再生成して、第2の候補時間に第2のリソースを使用して実行される第2のタスクを割り当てる。たとえば、第2の候補時間および第2の候補スケジュールは、スケジュールを向上させると判断されるため実行される。たとえば、第2のリソースを使用した第2のタスクの実行は、スケジューリングデータ構造130における第2の候補時間の第2の候補タイムスロットに割り当てられる。
スケジュール実行部150は、スケジューリングデータ構造130を使用して、候補時間に第1のタスクを第1のリソースによって実行させ、他の時間に実行されるように1つ以上の他のタスクをスケジューリングさせる。いくつかの例では、スケジュール実行部150は、タスクの実行に使用されるリソースのオペレータに物理的/印刷命令を提供してもよく、他の例では、スケジュール実行部150は、スケジュール命令145に従ってクルーまたはそれらの車両のコンピュータなどのリソースを制御するように構成された1つ以上の機械にデジタル命令を提供してもよい。
スケジュール命令145の一実施形態は、スケジュール実行部150によって受信されるデータ構造として図5に示されている。スケジュール命令145は、候補時間に第1のリソースを使用して実行される第1のタスクを割り当てるための第1の命令510と、第2の時間から第2のリソースを使用して実行される第2のタスクを割り当て解除するための第2の命令515と、(依存性に基づいて第2のタスクについて計算される)第2の候補時間に第2のリソースを使用して実行される第2のタスクを割り当てるための第3の命令520とを含む。
いくつかの例では、スケジュール実行部150は、図6に示されるように、1つ以上のリソースの状態および候補スケジュールの実行をモニタリングする、ということが理解され得る。スケジュール実行部150は、第1のリソースを使用して実行される第1のタスクの状態を表示する第1のインジケータ610と、第2のリソースを使用して実行される第2のタスクの状態を表示する第2のインジケータ615とを表示するモニタインターフェイス605を含む。たとえば、第1のインジケータ610は、スケジュール命令145に従って第1のリソース(第1のクルー)が候補時間に第1のタスクをそのスケジュールに組み入れたことを表示してもよく、第2のインジケータは、第2のリソース(第2のクルー)が第2の候補時間に第2のタスクをそのスケジュールにまだ組み入れていないため、スケジュール命令145に従っていないことを表示してもよい。いくつかの例では、モニタインターフェイス605は、リソースに関連付けられたユーザの印象を示すユーザフィードバックに基づいて生成され、他の例では、モニタインターフェイス605は、リソースのそれぞれのスケジュールの自動分析に基づいて生成される。
一実施形態では、本明細書に開示されている技術のうちの少なくとも一部を実行するために使用されるアルゴリズムは、スケジュールに関与する1つ以上のリソースを収集し、スケジュールに対応するイベントテーブルをクリアし、第1のループにおいて収集された1つ以上のリソースを処理し、1つ以上のリソースのうちの第1のリソースに割り当てられる第1のタスクの時間を計算し、第1のタスクについての情報をイベントテーブルに追加し、第2のリソースが第1のタスクのうちの少なくとも1つに依存する場合には、イベントテーブルに追加された第1のタスクを考慮に入れながら、1つ以上のリソースのうちの第2のリソースに割り当てられる第2のタスクの時間を計算し、第2のタスクについての情報をイベントテーブルに追加する。アルゴリズムは、このプロセスを反復的に繰り返して(たとえば、毎秒数百回)、正確な(競合のない)依存性およびタスクを有するスケジュールを徐々に生成する。イベントテーブルは、1つ以上のタスクの推定時間および複数のタスク間の依存性を満たすために必要なイベントを含むハッシュテーブルであってもよい、ということが理解され得る。
図7は、非一時的なコンピュータ読取可能媒体705の例を含むシナリオ700の図である。一実施形態では、本明細書に記載されている構成要素のうちの1つ以上は、非一時的なコンピュータ読取可能媒体705に格納されたコントローラ105などのプログラムモジュールとして構成される。プログラムモジュールは、プロセッサによって実行可能な命令710などの格納された命令で構成され、プロセッサによって実行可能な命令710は、少なくともプロセッサ715などのプロセッサによって実行されると、本明細書に記載されている対応する機能をコンピューティングデバイスに実行させる。たとえば、非一時的なコンピュータ読取可能媒体705に格納されたコントローラ105の機能は、プロセッサによって実行可能な命令710としてプロセッサ715によって実行されて、図2の方法200の実施形態740を実行してもよい。
非一時的な機械読取可能媒体705は、プロセッサによって実行可能な命令710を含み、プロセッサによって実行可能な命令710は、プロセッサ715によって実行されると、本明細書における提供物のうちの少なくとも一部を実行する。非一時的な機械読取可能媒体705は、メモリ半導体(たとえば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)および/もしくは同期ダイナミックランダムアクセスメモリ(SDRAM)技術を利用する半導体)、ハードディスクドライブのプラッタ、フラッシュメモリデバイス、または、磁気もしくは光ディスク(コンパクトディスク(CD)、デジタル・バーサタイル・ディスク(DVD)もしくはフロッピー(登録商標)ディスクなど)を含む。非一時的な機械読取可能媒体705の例は、コンピュータ読取可能なデータ720を格納し、コンピュータ読取可能なデータ720は、デバイス735のリーダ730による読み取り725(たとえば、ハードディスクドライブの読取ヘッド、またはソリッドステート記憶装置で呼び出される読取動作)を受けると、プロセッサによって実行可能な命令710を表す。いくつかの実施形態では、プロセッサによって実行可能な命令710は、実行されると、たとえば図2の方法200の例のうちの少なくとも一部などの動作を実行する。いくつかの実施形態では、プロセッサによって実行可能な命令710は、たとえば図1のシステム100の例のうちの少なくとも一部などのシステムを実現するように構成される。
図8は、本明細書に記載されているシステムおよび方法の例のうちの1つ以上ならびに/または等価物で構成および/またはプログラムされるコンピューティングデバイスの例のシナリオ800を示す。コンピューティングデバイスの例は、バス825によって動作可能に接続されたプロセッサ810、メモリ815および入力/出力ポート820を含むコンピュータ805であってもよい。一例では、コンピュータ805は、図1および図2に示されるシステム100および/または方法200を容易にするように構成されたコントローラ105のロジックを含んでもよい。異なる例では、コントローラ105のロジックは、ハードウェア、格納された命令を有する非一時的なコンピュータ読取可能媒体705、ファームウェア、および/またはそれらの組み合わせにおいて実現されてもよい。コントローラ105のロジックは、バス825に取り付けられたハードウェアコンポーネントとして示されているが、他の実施形態では、コントローラ105のロジックは、プロセッサ810において実現されてもよく、メモリ815に格納されてもよく、またはディスク830に格納されてもよい、ということが理解されるべきである。
一実施形態では、コントローラ105のロジックまたはコンピュータ805は、記載の動作を実行するための手段(たとえば、構造:ハードウェア、非一時的なコンピュータ読取可能媒体、ファームウェア)である。いくつかの実施形態では、コンピューティングデバイスは、クラウドコンピューティングシステムにおいて動作するサーバ、ソフトウェア・アズ・ア・サービス(SaaS)アーキテクチャにおいて構成されるサーバ、スマートフォン、ラップトップ、タブレットコンピューティングデバイスなどであってもよい。
上記手段は、たとえば割り当てのためのルールベースのソースシークエンシングを実行するようにプログラムされた特定用途向け集積回路(ASIC)として実現されてもよい。また、上記手段は、メモリ815に一時的に格納されて、その後プロセッサ810によって実行されるデータ845としてコンピュータ805に提供される格納されたコンピュータによって実行可能な命令として実現されてもよい。
コントローラ105のロジックは、割り当てのためのルールベースのソースシークエンシングを実行するための手段(たとえば、ハードウェア、実行可能な命令を格納する非一時的なコンピュータ読取可能媒体705、ファームウェア)も提供してもよい。
コンピュータ805の構成の例を一般的に説明すると、プロセッサ810は、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含む種々のさまざまなプロセッサであってもよい。メモリ815は、揮発性メモリおよび/または不揮発性メモリを含んでもよい。不揮発性メモリは、たとえば、リードオンリメモリ(ROM)、プログラマブルリードオンリメモリ(PROM)などを含んでもよい。揮発性メモリは、たとえば、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)などを含んでもよい。
ディスク830は、たとえば入力/出力(I/O)インターフェイス(たとえば、カード、デバイス)835および入力/出力ポート820を介してコンピュータ805に動作可能に接続されてもよい。ディスク830は、たとえば、磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピーディスクドライブ、テープドライブ、ジップドライブ、フラッシュメモリカード、メモリスティックなどであってもよい。さらに、ディスク830は、CD−ROMドライブ、CD−Rドライブ、CD−RWドライブ、DVD ROMなどであってもよい。メモリ815は、たとえばプロセス840および/またはデータ845を格納することができる。ディスク830および/またはメモリ815は、コンピュータ805のリソースを制御して割り当てるオペレーティングシステムを格納することができる。
コンピュータ805は、I/Oインターフェイス835および入力/出力ポート820を介して入力/出力(I/O)デバイスと対話してもよい。入力/出力デバイスは、たとえば、キーボード、マイク、ポインティングおよび選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク830、ネットワークデバイス850などであってもよい。入力/出力ポート820は、たとえば、シリアルポート、パラレルポートおよびUSBポートを含んでもよい。I/Oコントローラ855は、I/Oインターフェイス835をバス825に接続してもよい。
コンピュータ805は、ネットワーク環境で動作することができるため、I/Oインターフェイス835および/またはI/Oポート820を介してネットワークデバイス850に接続されてもよい。ネットワークデバイス850を介して、コンピュータ805はネットワークと対話してもよい。ネットワークを介して、コンピュータ805はリモートコンピュータに論理的に接続されてもよい。コンピュータ805が対話し得るネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)および他のネットワークを含むが、これらに限定されるものではない。
別の実施形態では、記載の方法および/またはそれらの等価物は、コンピュータによって実行可能な命令で実現されてもよい。したがって、一実施形態では、非一時的なコンピュータ読取可能/記憶媒体は、機械によって実行されると機械(および/または関連の構成要素)に方法を実行させるアルゴリズム/実行可能なアプリケーションの格納されたコンピュータによって実行可能な命令で構成される。機械の例としては、プロセッサ、コンピュータ、クラウドコンピューティングシステムにおいて動作するサーバ、ソフトウェア・アズ・ア・サービス(SaaS)アーキテクチャにおいて構成されるサーバ、スマートフォンなどが挙げられるが、これらに限定されるものではない。一実施形態では、コンピューティングデバイスは、開示されている方法のうちのいずれかを実行するように構成された1つ以上の実行可能なアルゴリズムで実現される。
1つ以上の実施形態では、開示されている方法またはそれらの等価物は、方法を実行するように構成されたコンピュータハードウェアまたは非一時的なコンピュータ読取可能媒体に格納されたモジュールにおいて具体化されるコンピュータ命令のいずれかによって実行され、これらの命令は、少なくともコンピューティングデバイスのプロセッサによって実行されると方法を実行するように構成された実行可能なアルゴリズムとして構成される。
説明を簡単にする目的で、図面に示されている方法は、アルゴリズムの一連のブロックとして示され、説明されているが、これらの方法はブロックの順序によって限定されるものではないということが理解されるべきである。いくつかのブロックは、異なる順序であってもよく、および/または、示され、記載されているブロックとは別のブロックと同時であってもよい。さらに、示されているブロックの一部を使用して方法の例を実現してもよい。ブロックは、組み合わせられてもよく、または複数の動作/構成要素に分けられてもよい。さらに、さらなるおよび/または代替の方法は、ブロックに示されていないさらなる動作を利用してもよい。
以下は、本明細書で利用されている選択された用語の定義を含む。これらの定義は、用語の範囲内に含まれる、実現するのに使用され得る構成要素のさまざまな例および/または形態を含む。これらの例は、限定的であるように意図されたものではない。用語の単数形も複数形もこれらの定義の範囲内であり得る。
「一実施形態」、「実施形態」、「一例」、「例」などへの言及は、そのように記載された実施形態または例が特定の特徴、構造、特質、特性、要素または限定事項を含み得るが、全ての実施形態または例が必ずしもそのような特定の特徴、構造、特質、特性、要素または限定事項を含んでいるとは限らないことを意味する。さらに、「一実施形態では」というフレーズを繰り返し使用することは、同一の実施形態を指す場合もあるが、必ずしも同一の実施形態を指すとは限らない。
本明細書における「データ構造」は、メモリ、記憶装置または他のコンピュータ化されたシステムに格納されたコンピューティングシステムにおけるデータの構成である。データ構造は、たとえば、データフィールド、データファイル、データアレイ、データレコード、データベース、データテーブル、グラフ、ツリー、連結リストなどのうちのいずれか1つであってもよい。データ構造は、多くの他のデータ構造(たとえば、データベースは多くのデータレコードを含む)から形成されてもよく、多くの他のデータ構造を含んでもよい。データ構造の他の例も他の実施形態に従って可能である。
本明細書における「コンピュータ読取可能媒体」または「コンピュータ記憶媒体」は、実行されたときに開示されている機能のうちの1つ以上を実行するように構成された命令および/またはデータを格納する非一時的な媒体を指す。いくつかの実施形態では、データは、命令として機能してもよい。コンピュータ読取可能媒体は、不揮発性媒体および揮発性媒体を含むがこれらに限定されない形態をとってもよい。不揮発性媒体は、たとえば、光ディスク、磁気ディスクなどを含んでもよい。揮発性媒体は、たとえば、半導体メモリ、ダイナミックメモリなどを含んでもよい。コンピュータ読取可能媒体の一般的形態は、フロッピ−ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス、コンパクトディスク(CD)、他の光媒体、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、メモリチップまたはカード、メモリスティック、ソリッドステート記憶装置(SSD)、フラッシュドライブ、および、コンピュータ、プロセッサもしくは他の電子デバイスとともに機能し得る他の媒体を含み得るが、これらに限定されるものではない。各タイプの媒体は、一実施形態において選択されて実現される場合、開示されているおよび/またはクレームされている機能のうちの1つ以上を実行するように構成されたアルゴリズムの格納された命令を含んでもよい。
本明細書における「ロジック」は、本明細書に開示されている機能または動作のうちのいずれかを実行するように、および/または、別のロジックからの機能または動作、方法および/またはシステムを本明細書に開示されているように実行させるように、コンピュータもしくは電気ハードウェア、実行可能なアプリケーションもしくはプログラムモジュールの格納された命令を有する非一時的な媒体、および/または、これらの組み合わせで実現される構成要素を表す。等価のロジックは、ファームウェア、アルゴリズムでプログラムされたマイクロプロセッサ、ディスクリートロジック(たとえば、ASIC)、少なくとも1つの回路、アナログ回路、デジタル回路、プログラムされたロジックデバイス、アルゴリズムの命令を含むメモリデバイスなどを含んでもよく、これらはいずれも、開示されている機能のうちの1つ以上を実行するように構成されてもよい。一実施形態では、ロジックは、開示されている機能のうちの1つ以上を実行するように構成された1つ以上のゲート、ゲートの組み合わせ、または他の回路構成要素を含んでもよい。複数のロジックが記載されている場合、これらの複数のロジックを1つのロジックに併合させることが可能であってもよい。同様に、単一のロジックが記載されている場合、この単一のロジックを複数のロジック間に分散させることが可能であってもよい。一実施形態では、これらのロジックのうちの1つ以上は、開示されているおよび/またはクレームされている機能を実行することに関連付けられた対応する構造である。どのタイプのロジックを組み込むかの選択は、所望のシステム条件または仕様に基づいてもよい。たとえば、高速化が検討事項である場合には、機能を実行するためにハードウェアが選択されるであろう。低コスト化が検討事項である場合には、機能を実行するために格納された命令/実行可能なアプリケーションが選択されるであろう。
「動作可能な接続」、または、エンティティが「動作可能に接続」される接続は、信号、物理的通信および/または論理的通信を送受信することができる接続である。動作可能な接続は、物理インターフェイス、電気インターフェイスおよび/またはデータインターフェイスを含んでもよい。動作可能な接続は、動作可能な制御を可能にするのに十分なインターフェイスおよび/または接続のさまざまな組み合わせを含んでもよい。たとえば、2つのエンティティが、直接的にまたは1つ以上の中間エンティティ(たとえば、プロセッサ、オペレーティングシステム、ロジック、非一時的なコンピュータ読取可能媒体)を介して信号を互いに通信するように動作可能に接続されてもよい。論理的および/または物理的通信チャネルを使用して、動作可能な接続を作り出すことができる。
本明細書における「ユーザ」は、1つ(1人)以上の人、コンピュータもしくは他のデバイス、またはこれらの組み合わせを含むが、これらに限定されるものではない。
開示されている実施形態を相当詳細に示し、説明してきたが、添付の特許請求の範囲の範囲をこのような詳細に制限または何らかの形で限定することは意図していない。当然のことながら、主題のさまざまな局面を説明する目的で構成要素または方法のあらゆる考えられる組み合わせを記載することは不可能である。したがって、本開示は、示され、説明されている具体的な詳細または例示的な例に限定されるものではない。そのため、本開示は、添付の特許請求の範囲の範囲内に含まれる変更例、変形例およびバリエーションを包含するよう意図される。
「含む(includes)」または「含んでいる(including)」という用語が詳細な説明または請求項で利用される限りにおいて、この用語が請求項の中で移行語として利用される場合に解釈されるように、「備えている(comprising)」という用語と同様に包括的であることが意図される。
「または」という用語が詳細な説明または請求項で使用される(たとえば、AまたはB)限りにおいて、「AまたはBまたはそれら両方」を意味することが意図される。出願人が「AまたはBのみであり、両方ではない」ことを示そうと思う場合には、「AまたはBのみであり、両方ではない」というフレーズが使用されるであろう。したがって、本明細書における「または」という用語の使用は包括的な使用であり、排他的な使用ではない。

Claims (15)

  1. コンピューティングシステムであって、
    メモリに接続されたプロセッサと、
    非一時的なコンピュータ読取可能媒体に格納され、命令で構成されたスケジューリングモジュールとを備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに動作を実行させ、当該動作は、
    複数のタスクを含むスケジューリングデータ構造を修正する要求を受信したことに応答して、前記要求が、複数のリソースから第1のリソースを使用して実行される第1のタスクをスケジューリングすることに向けられていることを判断することと、
    ネットワーク通信を介してデータベースから前記スケジューリングデータ構造にアクセスすることとを含み、前記スケジューリングデータ構造は、
    (i)1つ以上の他のリソースを使用して実行される、前記第1のリソースが依存する第1のタスクセットのためのデータレコードと、
    (ii)前記第1のリソースを使用して実行される、他のリソースが依存する第2のタスクセットのためのデータレコードとを含み、前記動作はさらに、
    前記データレコードを分析して、前記1つ以上の他のリソースを使用して実行される前記第1のタスクセットと前記第1のリソースを使用して実行される前記第2のタスクセットとの間の依存性を判断することと、
    前記依存性に基づいて、前記第1のリソースを使用して前記第1のタスクを実行するための候補時間を計算することと、
    前記第1のリソースのための前記第1のタスクのための前記候補時間を使用して、前記第1のリソースを含む前記複数のリソースのための候補スケジュールを生成することと、
    前記候補スケジュールを評価して、候補スケジュールパフォーマンススコアを計算することと、
    前記候補スケジュールパフォーマンススコアが既存のスケジュールの既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、前記候補スケジュールに基づいて前記スケジューリングデータ構造を修正および再生成して、前記候補時間に前記第1のリソースを使用して実行される前記第1のタスクを割り当てることとを含む、コンピューティングシステム。
  2. 前記命令は、前記プロセッサによって実行されると、前記プロセッサに動作を繰り返し実行させ、当該動作は、
    1つ以上の依存性に基づいて、前記複数のリソースから第2のリソースを使用して第2のタスクを実行するための第2の候補時間を計算することと、
    前記第2のリソースのための前記第2のタスクのための前記第2の候補時間を使用して、前記第2のリソースを含む前記複数のリソースのための第2の候補スケジュールを生成することと、
    前記第2の候補スケジュールを評価して、第2の候補スケジュールパフォーマンススコアを計算することと、
    前記第2の候補スケジュールパフォーマンススコアが第2の既存のスケジュールの第2の既存のスケジュールパフォーマンススコア以下であると判断したことに応答して、前記1つ以上の依存性に基づいて、前記複数のリソースから前記第2のリソースを使用して前記第2のタスクを実行するための第3の候補時間を計算することと、
    前記第2の候補スケジュールパフォーマンススコアが前記第2の既存のスケジュールの前記第2の既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、前記第2の候補スケジュールに基づいて前記スケジューリングデータ構造を修正および再生成して、前記第2の候補時間に前記第2のリソースを使用して実行される前記第2のタスクを割り当てることとを含む、請求項1に記載のコンピューティングシステム。
  3. 前記候補スケジュールを評価して前記候補スケジュールパフォーマンススコアを計算するための前記命令は、前記プロセッサによって実行されると、前記プロセッサに動作を実行させる命令をさらに含み、当該動作は、
    前記候補スケジュールを分析して、前記候補スケジュールにおける前記第1のタスクセットと前記第2のタスクセットとの間の依存性の複数の競合を判断することと、
    前記依存性の複数の競合に基づいて前記候補スケジュールパフォーマンススコアを生成することとを含む、請求項1または2に記載のコンピューティングシステム。
  4. 前記依存性の競合は、
    (i)第2のリソースを使用して実行される第3のタスクの前の時間を有する、前記第1のリソースを使用して実行される第2のタスクに対応する競合、または
    (ii)前記第1のリソースを使用して実行される第5のタスクの前の時間を有する、前記第2のリソースを使用して実行される第4のタスクに対応する競合、のうちの少なくとも1つを備え、
    前記依存性は、前記第2のリソースを使用して実行される前記第3のタスクに対する、前記第1のリソースを使用して実行される前記第2のタスクの依存性を備え、
    前記依存性は、前記第1のリソースを使用して実行される前記第5のタスクに対する、前記第2のリソースを使用して実行される前記第4のタスクの依存性を備える、請求項3に記載のコンピューティングシステム。
  5. 前記第1のリソースを使用して前記第1のタスクを実行するための前記候補時間を計算するために使用される前記依存性は、
    (i)第2のリソースを使用して実行される第2のタスクに対する、前記第1のリソースを使用して実行される前記第1のタスクの依存性、または
    (ii)前記第1のリソースを使用して実行される前記第1のタスクに対する、前記第2のリソースを使用して実行される第3のタスクの依存性、のうちの少なくとも1つを備え、
    前記依存性に基づいて、前記第1のリソースを使用して前記第1のタスクを実行するための前記候補時間を計算するための前記命令は、前記プロセッサによって実行されると、前記プロセッサに以下の動作のうちの少なくとも1つを実行させる命令をさらに含み、前記動作は、
    前記第2のリソースを使用して実行される前記第2のタスクに対する、前記第1のリソースを使用して実行される前記第1のタスクの前記依存性に基づいて、前記第2のタスクの時間の後であるように前記候補時間を計算することと、
    前記第1のリソースを使用して実行される前記第1のタスクに対する、前記第2のリソースを使用して実行される前記第3のタスクの前記依存性に基づいて、前記第3のタスクの時間の前であるように前記候補時間を計算することとを含む、請求項1、2または3に記載のコンピューティングシステム。
  6. 前記第1のリソースを使用して前記第1のタスクを実行するための前記候補時間を計算するために使用される前記依存性は、
    (i)第2のリソースのための第3のタスクに対する前記第1のリソースのための第2のタスクの依存性、または
    (ii)前記第1のリソースのための第5のタスクに対する前記第2のリソースのための第4のタスクの依存性、のうちの少なくとも1つを備え、
    前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
    前記第2のリソースのための前記第3のタスクに対する前記第1のリソースのための前記第2のタスクの前記依存性に基づいて、前記第3のタスクの時間の後であるように前記第1のリソースのための前記第2のタスクのための第2の候補時間を計算すること、または
    前記第1のリソースのための前記第5のタスクに対する前記第2のリソースのための前記第4のタスクの前記依存性に基づいて、前記第4のタスクの時間の前であるように前記第1のリソースのための前記第5のタスクのための第3の候補時間を計算すること、のうちの少なくとも1つを実行させ、
    前記複数のリソースのための前記候補スケジュールを生成するための前記命令は、前記プロセッサによって実行されると、前記プロセッサに動作のうちの少なくとも1つを実行させる命令をさらに含み、当該動作は、
    前記候補スケジュールにおける前記第1のリソースのための前記第2のタスクのための前記第2の候補時間を使用することと、
    前記候補スケジュールにおける前記第1のリソースのための前記第5のタスクのための前記第3の候補時間を使用することとを含む、請求項1、2、3または5に記載のコンピューティングシステム。
  7. 前記第1のリソースは、第1の車両であり、前記第1のタスクセットは、1つ以上の他の車両を使用して実行され、前記第2のタスクセットは、前記第1の車両によって実行され、
    前記候補スケジュールパフォーマンススコアが前記既存のスケジュールの前記既存のスケジュールパフォーマンススコアよりも大きいと判断するための前記命令は、前記プロセッサによって実行されると、前記プロセッサに動作を実行させる命令をさらに含み、当該動作は、
    前記第1の車両と前記1つ以上の他の車両のうちの少なくとも1つとの間の依存性によってもたらされる前記既存のスケジュールにおける競合を前記候補スケジュールが解決すると判断することを含む、請求項1〜6のいずれか1項に記載のコンピューティングシステム。
  8. プロセッサを備えるコンピューティングデバイスによって実行される、コンピュータによって実行される方法であって、
    少なくとも前記プロセッサが、複数のタスクを含むスケジューリングデータ構造を修正する要求を受信するステップと、
    少なくとも前記プロセッサが、ネットワーク通信を介してデータベースから前記スケジューリングデータ構造にアクセスするステップとを備え、前記スケジューリングデータ構造は、
    (i)1つ以上の他のリソースを使用して実行される、第1のリソースが依存する第1のタスクセットのためのデータレコードと、
    (ii)前記第1のリソースを使用して実行される、他のリソースが依存する第2のタスクセットのためのデータレコードとを含み、前記方法はさらに、
    少なくとも前記プロセッサが、前記データレコードを分析して、前記1つ以上の他のリソースを使用して実行される前記第1のタスクセットと前記第1のリソースを使用して実行される前記第2のタスクセットとの間の依存性を判断するステップと、
    少なくとも前記プロセッサが、前記依存性に基づいて、前記第1のリソースを使用して第1のタスクを実行するための候補時間を計算するステップと、
    少なくとも前記プロセッサが、前記第1のリソースのための前記第1のタスクのための前記候補時間を使用して、前記第1のリソースを含む前記複数のリソースのための候補スケジュールを生成するステップと、
    少なくとも前記プロセッサが、前記候補スケジュールを評価して、候補スケジュールパフォーマンススコアを計算するステップと、
    少なくとも前記プロセッサが、前記候補スケジュールパフォーマンススコアが既存のスケジュールの既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、前記候補スケジュールに基づいて前記スケジューリングデータ構造を修正および再生成して、前記候補時間に前記第1のリソースを使用して実行される前記第1のタスクを割り当てるステップとを備える、コンピュータによって実行される方法。
  9. 前記方法は、さらに、
    1つ以上の依存性に基づいて、前記複数のリソースから第2のリソースを使用して第2のタスクを実行するための第2の候補時間を計算するステップと、
    前記第2のリソースのための前記第2のタスクのための前記第2の候補時間を使用して、前記第2のリソースを含む前記複数のリソースのための第2の候補スケジュールを生成するステップと、
    前記第2の候補スケジュールを評価して、第2の候補スケジュールパフォーマンススコアを計算するステップと、
    前記第2の候補スケジュールパフォーマンススコアが第2の既存のスケジュールの第2の既存のスケジュールパフォーマンススコア以下であると判断したことに応答して、前記1つ以上の依存性に基づいて、前記複数のリソースから前記第2のリソースを使用して前記第2のタスクを実行するための第3の候補時間を計算するステップと、
    前記第2の候補スケジュールパフォーマンススコアが前記第2の既存のスケジュールの前記第2の既存のスケジュールパフォーマンススコアよりも大きいと判断したことに応答して、前記第2の候補スケジュールに基づいて前記スケジューリングデータ構造を修正および再生成して、前記第2の候補時間に前記第2のリソースを使用して実行される前記第2のタスクを割り当てるステップとを繰り返すことを備える、請求項8に記載のコンピュータによって実行される方法。
  10. 前記候補スケジュールを評価して、前記候補スケジュールパフォーマンススコアを計算するステップは、
    前記候補スケジュールを分析して、前記候補スケジュールにおける前記第1のタスクセットと前記第2のタスクセットとの間の依存性の複数の競合を判断するステップと、
    前記依存性の複数の競合に基づいて前記候補スケジュールパフォーマンススコアを生成するステップとをさらに備える、請求項8または9に記載のコンピュータによって実行される方法。
  11. 前記依存性の競合は、
    (i)第2のリソースを使用して実行される第3のタスクの前の時間を有する、前記第1のリソースを使用して実行される第2のタスクに対応する競合、または
    (ii)前記第1のリソースを使用して実行される第5のタスクの前の時間を有する、前記第2のリソースを使用して実行される第4のタスクに対応する競合、のうちの少なくとも1つを備え、
    前記依存性は、前記第2のリソースを使用して実行される前記第3のタスクに対する、前記第1のリソースを使用して実行される前記第2のタスクの依存性を備え、
    前記依存性は、前記第1のリソースを使用して実行される前記第5のタスクに対する、前記第2のリソースを使用して実行される前記第4のタスクの依存性を備える、請求項8〜10のいずれか1項に記載のコンピュータによって実行される方法。
  12. 前記第1のリソースを使用して前記第1のタスクを実行するための前記候補時間を計算するために使用される前記依存性は、
    (i)第2のリソースを使用して実行される第2のタスクに対する、前記第1のリソースを使用して実行される前記第1のタスクの依存性、または
    (ii)前記第1のリソースを使用して実行される前記第1のタスクに対する、前記第2のリソースを使用して実行される第3のタスクの依存性、のうちの少なくとも1つを備え、
    前記依存性に基づいて、前記第1のリソースを使用して前記第1のタスクを実行するための前記候補時間を計算するステップは、
    前記第2のリソースを使用して実行される前記第2のタスクに対する、前記第1のリソースを使用して実行される前記第1のタスクの前記依存性に基づいて、前記第2のタスクの時間の後であるように前記候補時間を計算するステップ、または
    前記第1のリソースを使用して実行される前記第1のタスクに対する、前記第2のリソースを使用して実行される前記第3のタスクの前記依存性に基づいて、前記第3のタスクの時間の前であるように前記候補時間を計算するステップ、のうちの少なくとも1つをさらに備える、請求項8、9または10に記載のコンピュータによって実行される方法。
  13. 前記第1のリソースを使用して前記第1のタスクを実行するための前記候補時間を計算するために使用される前記依存性は、
    (i)第2のリソースのための第3のタスクに対する前記第1のリソースのための第2のタスクの依存性、または
    (ii)前記第1のリソースのための第5のタスクに対する前記第2のリソースのための第4のタスクの依存性、のうちの少なくとも1つを備える、請求項8、9、10または12に記載のコンピュータによって実行される方法。
  14. 前記コンピュータによって実行される方法は、
    前記第2のリソースのための前記第3のタスクに対する前記第1のリソースのための前記第2のタスクの前記依存性に基づいて、前記第3のタスクの時間の後であるように前記第1のリソースのための前記第2のタスクのための第2の候補時間を計算するステップ、または
    前記第1のリソースのための前記第5のタスクに対する前記第2のリソースのための前記第4のタスクの前記依存性に基づいて、前記第4のタスクの時間の前であるように前記第1のリソースのための前記第5のタスクのための第3の候補時間を計算するステップ、のうちの少なくとも1つをさらに備える、請求項13に記載のコンピュータによって実行される方法。
  15. 前記複数のリソースのための前記候補スケジュールを生成するステップは、
    前記候補スケジュールにおける前記第1のリソースのための前記第2のタスクのための前記第2の候補時間を使用するステップ、または
    前記候補スケジュールにおける前記第1のリソースのための前記第5のタスクのための前記第3の候補時間を使用するステップ、のうちの少なくとも1つをさらに備える、請求項14に記載のコンピュータによって実行される方法。
JP2019565280A 2017-05-26 2018-05-24 車両スケジューリングのために車両相互依存性を解決するためのコンピュータ化されたシステムおよび方法 Active JP7319196B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/606,084 US11132631B2 (en) 2017-05-26 2017-05-26 Computerized system and method for resolving cross-vehicle dependencies for vehicle scheduling
US15/606,084 2017-05-26
PCT/US2018/034338 WO2018217992A1 (en) 2017-05-26 2018-05-24 Computerized system and method for resolving cross-vehicle dependencies for vehicle scheduling

Publications (3)

Publication Number Publication Date
JP2020522063A true JP2020522063A (ja) 2020-07-27
JP2020522063A5 JP2020522063A5 (ja) 2021-02-25
JP7319196B2 JP7319196B2 (ja) 2023-08-01

Family

ID=62705681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019565280A Active JP7319196B2 (ja) 2017-05-26 2018-05-24 車両スケジューリングのために車両相互依存性を解決するためのコンピュータ化されたシステムおよび方法

Country Status (4)

Country Link
US (1) US11132631B2 (ja)
JP (1) JP7319196B2 (ja)
CN (1) CN110663051B (ja)
WO (1) WO2018217992A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111340413A (zh) * 2020-02-10 2020-06-26 拉扎斯网络科技(上海)有限公司 配送任务的分配方法、装置、服务器和存储介质
US20230342687A1 (en) * 2022-04-20 2023-10-26 Verizon Patent And Licensing Inc. Systems and methods for utilizing vehicle data to identify events associated with scheduled jobs

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286958A (ja) * 1995-04-13 1996-11-01 Hitachi Ltd ジョブスケジューリング解析方法
US20070021998A1 (en) * 2005-06-27 2007-01-25 Road Ltd. Resource scheduling method and system
JP2009196760A (ja) * 2008-02-21 2009-09-03 Hitachi Software Eng Co Ltd 輸送スケジュール作成システム
WO2010055719A1 (ja) * 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム
WO2013005467A1 (ja) * 2011-07-07 2013-01-10 村田機械株式会社 搬送車システムと搬送車の走行スケジュールの生成方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660904B2 (en) * 2004-05-11 2010-02-09 Microsoft Corporation Providing keys to share data within an instant messaging session
US8140592B2 (en) * 2004-08-19 2012-03-20 The United States Postal Service Delivery operations information system with route adjustment feature and methods of use
US9710508B2 (en) * 2006-03-09 2017-07-18 Quickbase, Inc. Method and system for managing data in a workflow process
US20080215409A1 (en) * 2007-01-03 2008-09-04 Victorware, Llc Iterative resource scheduling
US20080215406A1 (en) * 2007-03-01 2008-09-04 Julian Pachon Scheduling Resources for Airline Flights
US20090025004A1 (en) * 2007-07-16 2009-01-22 Microsoft Corporation Scheduling by Growing and Shrinking Resource Allocation
WO2010001353A1 (en) * 2008-07-02 2010-01-07 Nxp B.V. A multiprocessor circuit using run-time task scheduling
US8875143B2 (en) 2009-12-31 2014-10-28 Bmc Software, Inc. Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment
US8751497B2 (en) * 2011-10-07 2014-06-10 Clear Channel Management Services, Inc. Multi-shot scheduling system
US8543438B1 (en) 2012-02-03 2013-09-24 Joel E. Fleiss Labor resource utilization method and apparatus
US9268604B1 (en) * 2012-12-11 2016-02-23 The Boeing Company Automated allocation of vehicle systems for different specified vehicle testing tasks
CN104346220B (zh) * 2013-07-31 2017-11-03 中国科学院计算技术研究所 一种任务调度方法与系统
US10241654B2 (en) * 2013-12-20 2019-03-26 Dassault Systemes Americas Corp. Computer method and apparatus for automated scheduling
US20160026935A1 (en) 2014-07-24 2016-01-28 International Business Machines Corporation Multiple individual travel scheduling
US9933177B2 (en) * 2014-11-04 2018-04-03 Google Llc Enhanced automated environmental control system scheduling using a preference function
US9697045B2 (en) * 2015-03-24 2017-07-04 International Business Machines Corporation Selecting resource allocation policies and resolving resource conflicts
US10726366B2 (en) 2015-04-14 2020-07-28 International Business Machines Corporation Scheduling and simulation system
US10977092B2 (en) * 2015-10-16 2021-04-13 Qualcomm Incorporated Method for efficient task scheduling in the presence of conflicts
US10796285B2 (en) * 2016-04-14 2020-10-06 Microsoft Technology Licensing, Llc Rescheduling events to defragment a calendar data structure
CN106503836B (zh) * 2016-10-09 2020-06-16 电子科技大学 一种多目标优化的纯电动汽车物流配送优化调度方法
GB201621627D0 (en) * 2016-12-19 2017-02-01 Palantir Technologies Inc Task allocation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286958A (ja) * 1995-04-13 1996-11-01 Hitachi Ltd ジョブスケジューリング解析方法
US20070021998A1 (en) * 2005-06-27 2007-01-25 Road Ltd. Resource scheduling method and system
JP2009196760A (ja) * 2008-02-21 2009-09-03 Hitachi Software Eng Co Ltd 輸送スケジュール作成システム
WO2010055719A1 (ja) * 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム
WO2013005467A1 (ja) * 2011-07-07 2013-01-10 村田機械株式会社 搬送車システムと搬送車の走行スケジュールの生成方法

Also Published As

Publication number Publication date
JP7319196B2 (ja) 2023-08-01
CN110663051B (zh) 2023-11-24
US11132631B2 (en) 2021-09-28
WO2018217992A1 (en) 2018-11-29
US20180341893A1 (en) 2018-11-29
CN110663051A (zh) 2020-01-07

Similar Documents

Publication Publication Date Title
JP5845809B2 (ja) 知的且つ動的なロードバランシングによる、分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化の手法
US9043787B2 (en) System and method for automated assignment of virtual machines and physical machines to hosts
US8909603B2 (en) Backing up objects to a storage device
US9477460B2 (en) Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method
US8756307B1 (en) Translating service level objectives to system metrics
US20140019964A1 (en) System and method for automated assignment of virtual machines and physical machines to hosts using interval analysis
US20120066683A1 (en) Balanced thread creation and task allocation
US20140019987A1 (en) Scheduling map and reduce tasks for jobs execution according to performance goals
US20140215471A1 (en) Creating a model relating to execution of a job on platforms
US9170840B2 (en) Duration sensitive scheduling in a computing environment
JP5845812B2 (ja) 分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化のためのポリシーのスケジューリング
US10721179B2 (en) Adaptive resource allocation operations based on historical data in a distributed computing environment
US8959518B2 (en) Window-based scheduling using a key-value data store
US9052972B2 (en) Determining the processing order of a plurality of events
US20140282540A1 (en) Performant host selection for virtualization centers
US20120191641A1 (en) Characterizing business intelligence workloads
US9442817B2 (en) Diagnosis of application server performance problems via thread level pattern analysis
WO2012154177A1 (en) Varying a characteristic of a job profile relating to map and reduce tasks according to a data size
US10223164B2 (en) Execution of critical tasks based on the number of available processing entities
JP2012099109A (ja) 分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化のための動的且つ知的な部分的計算管理
JP7319196B2 (ja) 車両スケジューリングのために車両相互依存性を解決するためのコンピュータ化されたシステムおよび方法
Elshater et al. A study of data locality in YARN
US10613896B2 (en) Prioritizing I/O operations
US10887250B2 (en) Reducing resource allocations and application instances in diagonal scaling in a distributed computing environment
US10311032B2 (en) Recording medium, log management method, and log management apparatus

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220913

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230313

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230720

R150 Certificate of patent or registration of utility model

Ref document number: 7319196

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150