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

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

▶ アマデウス エス.アー.エス.の特許一覧

<>
  • 特表-キュー内のノードの予測割当て 図1
  • 特表-キュー内のノードの予測割当て 図2
  • 特表-キュー内のノードの予測割当て 図3
  • 特表-キュー内のノードの予測割当て 図4
  • 特表-キュー内のノードの予測割当て 図5
  • 特表-キュー内のノードの予測割当て 図6
  • 特表-キュー内のノードの予測割当て 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】キュー内のノードの予測割当て
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240312BHJP
【FI】
G06F9/50 120A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023558225
(86)(22)【出願日】2022-03-02
(85)【翻訳文提出日】2023-11-21
(86)【国際出願番号】 EP2022055233
(87)【国際公開番号】W WO2022200000
(87)【国際公開日】2022-09-29
(31)【優先権主張番号】21305350.7
(32)【優先日】2021-03-22
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
(71)【出願人】
【識別番号】509228994
【氏名又は名称】アマデウス エス.アー.エス.
【氏名又は名称原語表記】AMADEUS S.A.S.
【住所又は居所原語表記】485 Route du Pin Montard,Sophia Antipolis,F-06410 Biot,France
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アレクサンドル・サルシュ
(72)【発明者】
【氏名】ムラド・ブディア
(72)【発明者】
【氏名】スラジ・モハメド
(57)【要約】
キュー内のノードを予測的に割り当てるために、最適化プロセスおよびシミュレーションプロセスを実装するための方法、システム、およびコンピュータプログラム製品。現在の時間間隔内のタスクキュー内で処理されるタスクの第1の数が決定される。現在の時間間隔の直前の時間間隔の後に未処理である、タスクキューからのタスクの第2の数が決定される。リソースごとのリソース割当て制約が決定される。時間間隔内で各リソースに割り当てられるノードの数のサブセットは、タスクの第1の数、タスクの第2の数、およびリソースごとのリソース割当て制約に基づいて決定される。各リソースに割り当てられたノードの数の決定されたサブセットを含むリソース割当てスケジュールが、リソース割当てデマンドサーバに提供される。
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合された少なくとも1つのメモリデバイスと、
前記1つまたは複数のプロセッサに動作可能に関連付けられるデータ通信インターフェースと
を含み、
前記少なくとも1つのメモリデバイスは、前記1つまたは複数のプロセッサによって実行されるとき、コンピューティング装置に、
前記データ通信インターフェースを介してリソース割当てデマンドサーバから、タスクスケジュールに基づくタスク情報、複数の時間間隔を含む時間期間、各時間間隔中に利用可能なリソースの数、各時間間隔中に利用可能なノードの数、およびノードの前記数に対する隣接ノードごとの隣接制約を含むリソース割当て要求を受信することと、
前記リソース割当て要求に応答して、前記時間期間の時間間隔ごとに、
前記タスク情報に基づいて、前記時間間隔内にタスクキュー内で処理されるタスクの第1の数を決定することと、
前記時間間隔の直前の時間間隔後に未処理である、前記タスクキューからのタスクの第2の数を決定することと、
ノードの前記数に対する隣接ノードごとの前記隣接制約に基づいて、リソースごとのリソース割当て制約を決定することと、
(i)タスクの前記第1の数、(ii)タスクの前記第2の数、および(iii)リソースごとの前記リソース割当て制約に基づいて、前記時間間隔内で各リソースに割り当てられるノードの前記数のサブセットを決定することと、
前記データ通信インターフェースを介して前記リソース割当てデマンドサーバに、前記時間期間の時間間隔ごとに各リソースに割り当てられたノードの前記数の前記サブセットを含むリソース割当てスケジュールを提供することと
を行わせる複数のプログラム命令を含む、コンピューティング装置。
【請求項2】
前記複数のプログラム命令は、前記コンピューティング装置に、
シミュレーションモデルを介して、時間間隔ごとに各リソースに割り当てられるノードの前記数に基づいて、時間間隔ごとにサービス品質測定値を計算させるようにコンパイルされる、請求項1に記載のコンピューティング装置。
【請求項3】
前記サービス品質測定値は、タスクの前記第1の数とタスクの前記第2の数が処理されるまでの待ち時間と、ノードごとのキューのサイズとのうちの少なくとも1つを含む、請求項2に記載のコンピューティング装置。
【請求項4】
前記リソース割当て要求は、利用可能なノードの最大数をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、利用可能なノードの前記最大数にさらに基づく、請求項1から3のいずれか一項に記載のコンピューティング装置。
【請求項5】
前記リソース割当て要求は、ソーシャルディスタンスの制約をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、前記ソーシャルディスタンスの制約にさらに基づく、請求項1から4のいずれか一項に記載のコンピューティング装置。
【請求項6】
前記リソース割当て要求は、サービス品質の制約をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、前記サービス品質の制約にさらに基づく、請求項1から5のいずれか一項に記載のコンピューティング装置。
【請求項7】
前記リソース割当て制約は、前記時間間隔と前記時間間隔の直前の前記時間間隔から前記リソースに利用可能なノードの前記数の変化を含み、時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、時間間隔ごとに前記リソースに利用可能なノードの前記数にさらに基づく、請求項1から6のいずれか一項に記載のコンピューティング装置。
【請求項8】
時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、到着時間に基づいて処理されているタスクのフローレートを決定することにさらに基づき、前記リソース割当てスケジュールは、時間間隔ごとに処理されているタスクの前記フローレートに基づく、請求項1から7のいずれか一項に記載のコンピューティング装置。
【請求項9】
データ通信インターフェースを介してリソース割当てデマンドサーバから、タスクスケジュールに基づくタスク情報、複数の時間間隔を含む時間期間、各時間間隔中に利用可能なリソースの数、各時間間隔中に利用可能なノードの数、およびノードの前記数に対する隣接ノードごとの隣接制約を含むリソース割当て要求を受信するステップと、
前記リソース割当て要求に応答して、前記時間期間の時間間隔ごとに、
前記タスク情報に基づいて、前記時間間隔内にタスクキュー内で処理されるタスクの第1の数を決定するステップと、
前記時間間隔の直前の時間間隔後に未処理である、前記タスクキューからのタスクの第2の数を決定するステップと、
ノードの前記数に対する隣接ノードごとの前記隣接制約に基づいて、リソースごとのリソース割当て制約を決定するステップと、
(i)タスクの前記第1の数、(ii)タスクの前記第2の数、および(iii)リソースごとの前記リソース割当て制約に基づいて、前記時間間隔内で各リソースに割り当てられるノードの前記数のサブセットを決定するステップと、
前記データ通信インターフェースを介して前記リソース割当てデマンドサーバに、前記時間期間の時間間隔ごとに各リソースに割り当てられたノードの前記数の前記サブセットを含むリソース割当てスケジュールを提供するステップと
を含む、コンピュータ実装方法。
【請求項10】
シミュレーションモデルを介して、時間間隔ごとに各リソースに割り当てられるノードの前記数に基づいて、時間間隔ごとにサービス品質測定値を計算するステップをさらに含む、請求項9に記載のコンピュータ実装方法。
【請求項11】
前記サービス品質測定値は、タスクの前記第1の数とタスクの前記第2の数が処理されるまでの待ち時間と、ノードごとのキューのサイズとのうちの少なくとも1つを含む、請求項10に記載のコンピュータ実装方法。
【請求項12】
前記リソース割当て要求は、利用可能なノードの最大数をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、利用可能なノードの前記最大数にさらに基づく、請求項9から11のいずれか一項に記載のコンピュータ実装方法。
【請求項13】
前記リソース割当て要求は、ソーシャルディスタンスの制約をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、前記ソーシャルディスタンスの制約にさらに基づく、請求項9から12のいずれか一項に記載のコンピュータ実装方法。
【請求項14】
前記リソース割当て要求は、サービス品質の制約をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、前記サービス品質の制約にさらに基づく、請求項9から13のいずれか一項に記載のコンピュータ実装方法。
【請求項15】
前記リソース割当て制約は、前記時間間隔と前記時間間隔の直前の前記時間間隔から前記リソースに利用可能なノードの前記数の変化を含み、時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、時間間隔ごとに前記リソースに利用可能なノードの前記数にさらに基づく、請求項9から14のいずれか一項に記載のコンピュータ実装方法。
【請求項16】
時間間隔ごとに各リソースに割り当てられるノードの前記数を決定することは、到着時間に基づいて処理されているタスクのフローレートを決定することにさらに基づき、前記リソース割当てスケジュールは、時間間隔ごとに処理されているタスクの前記フローレートに基づく、請求項9から15のいずれか一項に記載のコンピュータ実装方法。
【請求項17】
コンピュータプログラムを用いてエンコードされた非一時的コンピュータストレージ媒体であって、前記コンピュータプログラムは、1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに、請求項9から16のいずれか一項に記載の方法を行わせる複数のプログラム命令を含む、非一時的コンピュータストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概してコンピュータおよびコンピュータソフトウェアに関し、より具体的には、キュー内のノードを予測的に割り当てるために、最適化プロセスおよびシミュレーションプロセスを実装するための方法、システム、およびコンピュータプログラム製品に関する。
【背景技術】
【0002】
空港チェックインサービスに関しては、セルフサービスチェックイン施設が主流となっているが、セキュリティ、物流手荷物の側面、ならびに個人的な扱いおよび使いやすさを求める旅行者の好みなどの様々な理由から、従来のチェックインデスクは引き続き存在することとなる。しかしながら、多くの空港において、チェックインのキャパシティは希少なリソースであり、特定の時間帯では、チェックインカウンタの数が総デマンドに対してかなり制限されているように見える場合がある。そのため、チェックインデスクにおける待ち時間が長くなる可能性がある。このデマンドは、そして(国内以外の)航空会社によって一般的に好まれる専用チェックインの状況においては、チェックインデスクにおける望ましくない長いキューおよび過度の待ち時間が発生する可能性がある。航空会社にとっては、このことが、利用可能なチェックインリソースをめぐって他の航空会社と毎日の対立および争いを生じさせる可能性がある。空港については、近い将来、チェックインキャパシティの拡大の必要性が検討される可能性がある。
【0003】
したがって、デスクの数に基づいてリソースの最適化された割当てを決定するために、チェックインキャパシティの効率的な計画が必要である。たとえば、同時に、1人のグランドハンドラによって対応され得る隣接するデスクを含む、いくつかの制約を考慮しながら、サービスの品質とソーシャルディスタンスの制約を尊重しつつ運営コストを最小限に抑えるために、各グランドハンドラに割り当てるデスクの数を決定するための最適化モデルが必要である。
【0004】
さらに、デスク(たとえば、ノード)割当ての最適化方法は、他の技術分野およびサービスにおいても利用され得る。たとえば、クラウドコンピューティングサービスでは、隣接制約に基づいて効率を高めるために、データのキューイングと、特定のタイプのアプリケーション専用のプロセッサ内のコア数の決定に関してニーズがある。ストレージエリアネットワーク(SAN)では、ゾーニングとは、デバイスの負荷分散のため、および特定のユーザのみにデータへのアクセスを選択的に許可するためのリソースの割当てである。各タスクに割り当てられたジョブに基づいて、特定のプロセッサコア(たとえば、隣接問題)をどこの専用にするかを決定するための、ノード割当ての最適化方法が提示される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
したがって、キュー内のノードを予測的に割り当てるために、最適化プロセスおよびシミュレーションプロセスを実装するための改良された方法、システム、およびコンピュータプログラム製品が必要である。
【課題を解決するための手段】
【0006】
本発明の実施形態では、リソース割当てスケジュールを提供するための方法が提供される。本方法は、データ通信インターフェースを介してリソース割当てデマンドサーバから、タスクスケジュールに基づくタスク情報、複数の時間間隔を含む時間期間、各時間間隔中に利用可能なリソースの数、各時間間隔中に利用可能なノードの数、およびノードの数に対する隣接ノードごとの隣接制約を含むリソース割当て要求を受信するステップを含む。本方法は、リソース割当て要求に応答して、時間期間の時間間隔ごとに、タスク情報に基づいて、時間間隔内にタスクキュー内で処理されるタスクの第1の数を決定するステップと、時間間隔の直前の時間間隔後に未処理である、タスクキューからのタスクの第2の数を決定するステップと、ノードの数に対する隣接ノードごとの隣接制約に基づいて、リソースごとのリソース割当て制約を決定するステップと、(i)タスクの第1の数、(ii)タスクの第2の数、および(iii)リソースごとのリソース割当て制約に基づいて、時間間隔内で各リソースに割り当てられるノードの数のサブセットを決定するステップとをさらに含む。本方法は、データ通信インターフェースを介してリソース割当てデマンドサーバに、時間期間の時間間隔ごとに各リソースに割り当てられたノードの数のサブセットを含むリソース割当てスケジュールを提供するステップをさらに含む。
【0007】
これらおよび他の実施形態はそれぞれ、以下の特徴のうちの1つまたは複数を任意で含むことができる。
【0008】
本発明のいくつかの実施形態では、本方法は、シミュレーションモデルを介して、時間間隔ごとに各リソースに割り当てられるノードの数に基づいて、時間間隔ごとにサービス品質測定値を計算するステップをさらに含む。
【0009】
本発明のいくつかの実施形態では、サービス品質測定値は、第1のタスクと第2のタスクが処理されるまでの待ち時間と、ノードごとのキューのサイズとのうちの少なくとも1つを含む。
【0010】
本発明のいくつかの実施形態では、リソース割当て要求は、利用可能なノードの最大数をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの数を決定することは、利用可能なノードの最大数にさらに基づく。
【0011】
本発明のいくつかの実施形態では、リソース割当て要求は、ソーシャルディスタンスの制約をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの数を決定することは、ソーシャルディスタンスの制約にさらに基づく。
【0012】
本発明のいくつかの実施形態では、リソース割当て要求は、サービス品質の制約をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの数を決定することは、サービス品質の制約にさらに基づく。
【0013】
本発明のいくつかの実施形態では、リソース割当て制約は、時間間隔とその時間間隔の直前の時間間隔からリソースに利用可能なノードの数の変化を含み、時間間隔ごとに各リソースに割り当てられるノードの数を決定することは、時間間隔ごとにリソースに利用可能なノードの数にさらに基づく。
【0014】
本発明のいくつかの実施形態では、時間間隔ごとに各リソースに割り当てられるノードの数を決定することは、到着時間に基づいて処理されているタスクのフローレートを決定することにさらに基づき、リソース割当てスケジュールは、時間間隔ごとに処理されているタスクのフローレートに基づく。
【0015】
本発明のいくつかの実施形態では、コンピューティング装置は、1つまたは複数のプロセッサと、1つまたは複数のプロセッサに結合された少なくとも1つのメモリデバイスと、1つまたは複数のプロセッサに動作可能に関連付けられるデータ通信インターフェースとを含み、メモリデバイスは、1つまたは複数のプロセッサによって実行されるとき、コンピュータ装置に、上述の方法を行わせる複数のプログラム命令を含む。
【0016】
本発明のいくつかの実施形態では、コンピュータプログラムを用いてエンコードされた非一時的コンピュータストレージ媒体が提供され、コンピュータプログラムは、1つまたは複数のプロセッサによって実行されるとき、1つまたは複数のプロセッサに上述の方法を行わせる複数のプログラム命令を含む。
【0017】
この概要は、以下の詳細な説明においてさらに説明される、簡略化された形式で概念の選択を紹介するために提供されている。この概要は、請求された主題の主要な特徴または本質的な特徴を識別することが意図されるものではなく、また、請求された主題の範囲を決定する際の補助として単独で使用されることが意図されるものでもない。
【0018】
本明細書に組み込まれ、その一部を構成する添付の図面は、本発明の様々な実施形態を示しており、上記で与えられる本発明の一般的な説明および以下で与えられる実施形態の詳細な説明とともに、本発明の実施形態を説明するために役立つ。図面において、同様の参照番号は、様々な図面における同様の特徴を指す。
【図面の簡単な説明】
【0019】
図1】本発明の実施形態による、デバイスがリソース割当てデマンドサーバを通じて最適化サーバに要求を通信する例示的な環境を示す図である。
図2】本発明の実施形態による、最適化命令セットを介してリソース割当て要求を分析するための例示的なプロセスを示す図である。
図3】本発明の実施形態による、シミュレーション命令セットを介してリソース割当てスケジュールをシミュレーションするための例示的なプロセスを示す図である。
図4】本発明の実施形態による、リソース割当て要求に基づいてリソース割当てスケジュールを提供するための例示的なプロセスのフローチャートである。
図5】本発明の実施形態による、2つの異なる間隔でのキューに対するノード割当ての最適化プロセスの例示的な部分を示す図である。
図6】本発明の実施形態による、期間ごとに処理されるタスクにおけるデマンドとノードキャパシティを示すチャートを示す図である。
図7】本明細書に記載の実施形態による、本明細書に記載のソフトウェアコンポーネントを実行することができるコンピュータの例示的なコンピュータアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0020】
一般に、所与の時間期間の複数の時間間隔中に最適なノード割当てを決定するための最適化モデルを実装するためのシステム、方法、デバイス、および技法が提供される。実施形態では、グループ化されたノードの隣接性を同時に考慮しながら、ノード割当て効率を向上させることができる堅牢な最適化モデルが提供され実装される。実施形態では、チェックインデスクは、乗客デマンドにおける動的な変化に対応するために、特定の時間期間(たとえば、1日)全体にわたり、定期的な時間間隔(たとえば、30分)中の乗客の数に基づいて、(フライトレベルではなく)グランドハンドラレベルで効率的に割り当てられる。最適なノード割当てにより、乗客の待機コスト、ならびにデスクの運営コストを削減し得る。
【0021】
最適化モデルによって提供される最適なノード割当ては、たとえば、タスクスケジュールレベル(たとえば、フライトスケジュール)におけるノード隣接性を考慮するのではなく、リソースレベル(たとえば、グランドハンドラレベル)においてノード隣接性(たとえば、チェックインデスク)を考慮するリソース/ノード割当ての最適化プロセスを提供することに関連付けられる問題に対処し得る。堅牢な最適化モデルは、グループ化されたノードの隣接性を同時に考慮しながら、ノード割当て効率を向上させることができる。チェックインデスクは、動的な乗客デマンドに対応するために、特定の時間期間(たとえば、1日)全体にわたり、定期的な時間間隔(たとえば、30分)中の乗客の数に基づいて、(フライトレベルではなく)グランドハンドラレベルで効率的に割り当てられ得る。実施形態では、時間間隔ごとに予測されるサービス品質測定値(たとえば、待ち時間、キューのサイズなど)を計算するために、シミュレーション命令セットに、最適化モデルから時間間隔ごとに決定されたデスクの数が提供され得る。実施形態では、最適化モデルには、乗客がキューにおいて待っている間の物理的なディスタンスの制約(たとえば、「ソーシャルディスタンス」制約)などをさらに含み得る。
【0022】
図1は、デバイスがリソース割当てデマンドサーバを通じて最適化サーバに要求を通信する例示的な環境100である。例示的な環境100は、クライアントデバイス110、タスクデータベース130、1つまたは複数のリソース割当てデマンドサーバ120、およびデータ通信ネットワーク102、たとえばローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せを介して通信する1つまたは複数の最適化サーバ140を含む。
【0023】
クライアントデバイス110は、デスクトップ、ラップトップ、サーバ、またはスマートフォン、タブレットコンピュータ、ウェアラブルデバイス(たとえば、スマートウォッチ)、車載コンピューティングデバイスなどのモバイルデバイス、および/または他の種類のモバイルデバイスを含むことができる。クライアントデバイス110は、リソース割当てデマンドサーバ120を介して1つまたは複数の最適化サーバ140との間でリソース割当て要求およびリソース割当てスケジュールを管理するためのアプリケーション112などのアプリケーションを含む。クライアントデバイス110は、他のアプリケーションを含むことができる。さらに、クライアントデバイス110は、グラフィカルユーザインターフェース(GUI)114を提供するディスプレイを含む。したがって、クライアントデバイス110のユーザがアプリケーション112を介してリソース割当て要求を開始した場合、対応する表示がユーザインターフェース114を介して生成される。
【0024】
アプリケーション112およびユーザインターフェース114は、クライアントデバイス110に記憶されたアプリケーションによってホストされてもよく、ウェブブラウザアプリケーションであってもよい。ユーザインターフェース114は、リソース割当て要求を生成するために、ユーザ入力に応答してアプリケーション112に入力を提供し得る。入力は、(たとえば、1つまたは複数の最適化サーバ140によって)完了されるべき特定のタスクの選択を含み得、本明細書でさらに説明するように、ユーザが望む特定のパラメータまたは制約(たとえば、サービス品質測定値など)を含み得る。本発明のいくつかの実施形態では、ユーザインターフェース114は、最適化モデルの制約を設定することと、1つまたは複数の最適化サーバ140による最適化およびシミュレーションモジュールによる処理を開始することと、ユーザが最適化およびシミュレーションモジュールの結果を閲覧できるようにすることと、ユーザがそれに応じて入力を修正できるようにすることとを行うために利用され得る。最適化およびシミュレーションモジュールのプロセスについては、図4のプロセス400を参照して本明細書でさらに説明する。
【0025】
リソース割当てデマンドサーバ120は、1つまたは複数のクライアントデバイス110からアプリケーション112から受信したタスク要求(たとえば、リソース割当て要求)の位置を管理する。割当て要求サーバ120のタスク管理プロトコルは、タスクが1つの最適化サーバ140によって処理されるように、複数のクライアント(たとえば、クライアントデバイス110)を管理することによる、冗長負荷分散システムに基づいていてもよい。たとえば、要求されたタスクにサービスを提供することができる複数の最適化サーバ140が存在する可能性があり、リソース割当てデマンドサーバ120の冗長負荷分散システムは、機能する最適化サーバ140のうちの1つだけによってタスクが行われることを保証する責任がある。
【0026】
リソース割当てデマンドサーバ120は、1つまたは複数の他のソース(図示せず)からのタスクおよびタスクスケジュールデータ、リソース情報、ノード情報などを管理、収集、処理、および通信するためのフロントエンドサーバであってもよい。さらに、リソース割当てデマンドサーバ120は、情報の一部またはすべてをタスクデータベース130に記憶することができ、タスクデータベース130は、クライアントデバイス110上のアプリケーション112によってアクセスされ得る。例示的な実施形態では、空港のチェックインデスク割当ての例では、リソース割当てデマンドサーバ120は、複数の外部旅行システム(たとえば、空港情報システム、航空会社情報システム、サードパーティ仲介システムなど)からの旅行情報(たとえば、フライトスケジュール、フライト情報、乗客情報、グランドハンドラの可用性、チェックインデスクの位置情報、すなわち、一致するデスクの隣接関係など)を収集、処理、および記憶するためのフロントエンドサーバであってもよい。
【0027】
1つまたは複数の最適化サーバ140は、リソース割当てデマンドサーバ120からリソース割当て要求を受信して処理する。最適化サーバ140は、最適化命令セット150およびシミュレーション命令セット160を含む。最適化命令セット150は、グループ化されたノードの隣接性を同時に考慮しながら、ノード割当て効率を改善するために、堅牢な最適化モデルを実装するように構成されている。シミュレーション命令セット160は、最適化命令セット150の出力に基づいてシミュレーションを実行し、時間間隔ごとに各リソースに割り当てられるノードの数に基づいて時間間隔ごとにサービス品質測定値(たとえば、待ち時間、キューのサイズなど)を計算するように構成されている。最適化命令セット150およびシミュレーション命令セット160のこれらのアクションは、それぞれ図2および図3における図面を参照して本明細書でさらに説明される。
【0028】
図2は、本発明の実施形態による、最適化命令セットを介してリソース割当て要求を分析するための例示的なプロセスを示している。たとえば、最適化サーバ140に記憶されている最適化命令セット150は、リソース割当てデマンドサーバ120からリソース割当て要求210を受信し、リソース割当てスケジュール220を決定する。リソース割当て要求210は、タスク情報(たとえば、タスク、タスクコンテナ、タスクスケジュールなど)、時間期間(T)、スケジュールの時間間隔(t)(たとえば、30分のタイムスロット)、リソースの可用性、ノードの可用性、ノードの隣接制約、および他の制約などの情報212を含み得る。空港のチェックインデスク割当ての例では、タスク情報は、乗客情報(たとえば、タスク情報)、フライト情報(たとえば、タスクコンテナ情報)、およびフライトスケジュール(たとえば、タスクスケジュール)を含み得る。リソースの可用性は、グランドハンドラの可用性を含み得る。ノードの可用性と隣接制約は、位置などのチェックインデスク情報、およびリソース(たとえば、グランドハンドラ)が同じ時間間隔で同時に両方のノード(たとえば、チェックインデスク)において動作できるように任意の特定のチェックインデスクが隣接しているかどうかを参照し得る。リソース割当てスケジュール220は、ノード割当ておよびリソース割当てなどの情報222を含むことができる。空港のチェックインデスク割当ての例では、リソース割当てスケジュール220は、特定の時間期間(たとえば、空港における勤務日、すなわち18時間)、特定の時間間隔(たとえば、30分)におけるチェックインデスクごとのグランドハンドラごとのリソース割当てスケジュールを含み得る。
【0029】
本明細書で説明される最適化命令セット150(たとえば、最適化モデル)は、多数の変数(たとえば、リソース割当て要求210からの、すなわち、ユーザインターフェース114を介した入力データ)を受信し、1つまたは複数の公式計算に基づいて多数の決定変数を計算する。たとえば、入力変数は次のうちの1つまたは複数を含むことができる。
G gによってインデックス付けされたリソース(たとえば、グランドハンドラ)のセット、
Fg jによってインデックス付けされたリソースからのタスクコンテナ(たとえば、フライトなど)のセット、
T 時間間隔t(たとえば、30分のタイムスロット)において区切られた最適化ウィンドウ(たとえば、1日18時間などの時間期間)、
M tをTで割ることによってインデックス付けされた等しい長さの時間間隔のセット、
pj タスクコンテナjの平均ノード(たとえば、チェックインデスク)のサービス時間、
dj,t 時間間隔t内にタスクコンテナjのノードに現れるタスク(たとえば、乗客)の数、
St 時間期間t中にノードを開くためのコスト、
Hj タスクコンテナjのタスク待機コスト、
Aj,t J x M matrix 係数αj,tは、タスクコンテナjの登録ウィンドウ(たとえば、チェックイン時間)が閉じられる第1の時間間隔tから最適化ウィンドウTの終わりまで1に等しく、他のすべての時間間隔において0である、
c 間隔t中にノードのために利用可能な処理時間、
α 所与の間隔tのタスクデマンドのうち、次の間隔(t+1)において処理される最大パーセンテージ、
Imax 次の間隔(t+1)において処理される、所与の間隔tのタスクの最大数、
Bmax 利用可能なノードの最大数。
【0030】
本発明のいくつかの実施形態では、最適化命令セット150によって決定される決定変数(たとえば、最適化モジュール出力)は、最適化プロセスの結果であり、以下のうちの1つまたは複数を含むことができる。
qj,t 時間間隔t内に受け入れられるタスクコンテナ(たとえば、フライト)jのタスク(たとえば、乗客)の数、
Bg,t 時間間隔t内にリソース(たとえば、グランドハンドラ)gに割り当てられるノード(たとえば、チェックインデスク)の数、
Ij,t 時間間隔tの終了時のタスクコンテナjのキュー内のタスクの数、
bg,t 時間間隔t中にリソースgに割り当てられたノードの最大インデックス(リソースgは、bg,t-Bg,tからbg,tまでインデックス付けされたノード上で動作する)、
og,g' リソースgがリソースg'よりも高いインデックスを持つノードに割り当てられている場合は1、それ以外の場合は0、
zg,t リソースgに対して期間tに開いているノードの数が期間t-1より大きい場合は1。
【0031】
本発明のいくつかの実施形態では、最適化命令セット150の目的関数(たとえば、最適化プロセスの結果)は、最適化ウィンドウT(たとえば、営業日)にわたる待機コストおよびノード(たとえば、チェックインデスク)運営コストを最小化するための線形プログラムを含むことができる。たとえば、本明細書で説明される変数を利用した目的関数は、次の式に基づき得る。
【0032】
【数1】
【0033】
本発明のいくつかの実施形態では、到着からサービスまでのタスク処理フロー(たとえば、乗客フロー)をモデル化するために、最適化プロセスによって制約が利用され得る。時間間隔における乗客デマンドと、前の間隔においてサービスされなかった乗客を加えたものは、この間隔においてサービスされた乗客の数に、後の間隔においてサービスされる乗客の数を加えたものに等しくてもよい。たとえば、本明細書で説明される変数を利用したタスク処理フロー制約は、次の式に基づき得る。
Ij,t-1+dj,t-Ij,t-qj,t=0 ∀g∈G,j∈Jg,t∈M
【0034】
本発明のいくつかの実施形態では、時間間隔内に処理することができるジョブの数という観点から各ノードのキャパシティを表すために、最適化プロセスによって制約が利用され得る。たとえば、キャパシティ制約は、本明細書で説明される変数を利用して、次の式に基づき得る。
【0035】
【数2】
【0036】
本発明のいくつかの実施形態では、利用可能なノード(たとえば、デスク)の総数を制限するために、最適化プロセスによって制約が利用され得る。たとえば、本明細書で説明される変数を利用した制限ノード制約は、次の式に基づき得る。
【0037】
【数3】
【0038】
本発明のいくつかの実施形態では、タスクコンテナ(たとえば、フライト)の登録ウィンドウ(たとえば、チェックイン期間)の終了時に、すべてのタスク(たとえば、乗客)が提供されることを要求する最適化プロセスによって制約が利用され得る。たとえば、登録ウィンドウの制約は、本明細書で説明される変数を利用して、次の式に基づき得る。
Aj,tIj,t=0 ∀g∈G,j∈Jg,t∈M
【0039】
本発明のいくつかの実施形態では、次の期間(t-1)においてサービスされるタスク(たとえば、乗客)の数、つまりタスクデマンドの一部に関する制限を設定することにより待機時間を制限することによってキューイングシステムのサービス品質を決定するために、最適化プロセスによって制約が利用され得る。たとえば、タスクデマンドによるキューのサービス品質の制約は、本明細書で説明される変数を利用して、次の式に基づき得る。
【0040】
【数4】
【0041】
本発明のいくつかの実施形態では、次の期間(t-1)においてサービスされるタスク(たとえば、乗客)の数、つまりタスクの数に関する制限を設定することにより待機時間を制限することによってキューイングシステムのサービス品質を決定するために、最適化プロセスによって制約が利用され得る。たとえば、ソーシャルディスタンスの制約により、チェックインデスクのキューに並ぶ乗客の数が制限される。この数は、人々が一定の距離(たとえば、2メートルの間隔)によって区切られる必要がある場合に、待機キューに対応できるターミナル内の限られたスペースによって決定される。たとえば、いくつかのコンピューティングシステムは、受信タスクを記憶するため制限されたバッファサイズを含み、時間間隔中にさらに多くのタスクが受信される場合は、オーバーフローを避けるためにより多くのノードがバッファによって含まれる必要がある。本明細書で説明する変数を利用した、多数のタスクによるキューのサービス品質の制約は、次の式に基づき得る。
【0042】
【数5】
【0043】
本発明のいくつかの実施形態では、決定変数の定義域を提供するために、最適化プロセスによって制約が利用され得る。たとえば、本明細書で説明される変数を利用した決定変数の定義域の制約は、次の式に基づき得る。
qj,t,Bg,t,Ij,t∈N ∀g∈G,j∈Jg,t∈M
【0044】
本発明のいくつかの実施形態では、線形プログラムのサイズと本明細書で説明する制約は、|G|<<|J|なので変数の数:Ο(|JM|)、および制約の数Ο(|JM|)に基づき得る。
【0045】
本発明のいくつかの実施形態では、線形プログラムは、リソース(たとえば、グランドハンドラ)レベルで適用される隣接制約をさらに含むことができる。本明細書で述べたように、変数bg,tは、時間間隔tにおいてリソース(たとえば、グランドハンドラ)gに割り当てられた最大ノードインデックス(たとえば、デスクインデックス、すなわちデスク位置)を定義する。したがって、リソースgは、時間間隔t中にbg,t-Bg,tからbg,tまでのノードインデックスにおいて動作する。
【0046】
本発明のいくつかの実施形態では、隣接制約を含む線形プログラムには、最大ノードインデックスの下限と上限を設定するために最適化プロセスによって利用され得る制約を含むことができる。たとえば、最大ノードインデックスの下限と上限を設定するための制約は、次の式に基づき得る。
Bg,t≦bg,t≦Bmax ∀g∈G,t∈M
【0047】
本発明のいくつかの実施形態では、各リソース(たとえば、グランドハンドラ)に割り当てられたノード範囲(たとえば、デスク範囲)が重複しないようにするために、最適化プロセスによって隣接制約が利用され得る。たとえば、決定変数の定義域の隣接制約は、次の式に基づき得る。
bg,t+Bg',t≦bg',tまたはbg',t+Bg,t≦bg,t ∀(g,g')∈G2,t∈M
上式で、「または」の左側では、リソースg'はリソースgよりも高いインデックスを持つノードに割り当てられ、「または」の右側ではその逆が当てはまり、リソースg'がリソースgよりも低いインデックスを有するノードに割り当てられている。
【0048】
本発明のいくつかの実施形態では、前の期間t-1と現在の期間tの間にリソース(たとえば、グランドハンドラ)gに割り当てられたノードの数が増加した場合に、必要以上に開いているノード(たとえば、チェックインデスク)が存在しないようにするために、最適化プロセスによって隣接制約が利用され得る。たとえば、必要以上に開いているノードが存在しないようにするための隣接制約は、次の式に基づき得る。
bg,t-bg,t-1≦max{0,Bg,t-Bg,t-1} ∀∈G,t∈M
【0049】
本発明のいくつかの実施形態では、前の期間t-1と現在の期間tの間にリソース(たとえば、グランドハンドラ)gに割り当てられたノードの数が減少した場合に、必要以上に閉じているノード(たとえば、チェックインデスク)が存在しないようにするために、最適化プロセスによって隣接制約が利用され得る。たとえば、必要以上に閉じているノードが存在しないようにするための制約は、次の式に基づき得る。
bg,t-1-bg,t≦max{0,Bg,t-1-Bg,t} ∀∈G,t∈M
【0050】
本発明のいくつかの実施形態では、本明細書で説明する隣接制約を伴う最適化プロセスでは、すべてのリソース(たとえば、グランドハンドラ)が日中継続的に動作すると仮定され得る。たとえば、開いているノードの数がBg,t=0である期間tと、Bg,t-およびBg,t+>0であるようないくつかの期間t-<t<t+が存在するようなリソースgは存在せず、リソースには連続したノードが割り当てられ、ある期間中に1つのリソースにより高いノードインデックスが割り当てられた場合、これはその時間期間(たとえば、最適化ウィンドウT)にわたって当てはまる。したがって、次の線形プログラムと後続の式および制約は、リソース(たとえば、グランドハンドラ)レベルで適用される隣接制約も含むが、すべてのリソースが日中継続的に動作するという前提条件が付けられている。たとえば、リソースの相対位置が最適化ウィンドウTに対して有効であるため、変数oにtによるインデックスを付ける必要はない。したがって、次の線形プログラム実装形態は、隣接制約と線形化制約を伴う最適化モデルを含む。
【0051】
本発明のいくつかの実施形態では、変数og,g'を有する選言制約の線形化形式を使用して、各リソース(たとえば、グランドハンドラ)に割り当てられたノード範囲(たとえば、デスク範囲)が重複しないようにするために、最適化プロセスによって隣接および線形化制約が利用され得る。たとえば、各リソースに割り当てられたノード範囲が重複しないようにするための隣接性および線形化制約は、次の式に基づき得る。
【0052】
【数6】
【0053】
本発明のいくつかの実施形態では、期間t-1とtの間にリソース(たとえば、グランドハンドラ)gに割り当てられたノードの数が増加した場合に、必要以上に開いているノード(たとえば、チェックインデスク)が存在しないようにするために、最適化プロセスによって隣接および線形化制約が利用され得る。たとえば、必要以上に開いているノードが存在しないようにするための隣接および線形化制約は、次の式に基づき得る。
【0054】
【数7】
【0055】
本発明のいくつかの実施形態では、期間t-1とtの間にリソース(たとえば、グランドハンドラ)gに割り当てられたノードの数が減少した場合に、必要以上に閉じているノード(たとえば、チェックインデスク)が存在しないようにするために、最適化プロセスによって隣接および線形化制約が利用され得る。たとえば、必要以上に閉じているノードが存在しないようにするための隣接および線形化制約は、次の式に基づき得る。
【0056】
【数8】
【0057】
期間t-1とtの間にリソースgに割り当てられたノードの数が増加(または、減少)した場合に、必要以上に開いている(または、閉じている)ノードがないようにする隣接および線形化制約の前述では、次の式のプロパティと注釈が適用される。たとえば、第1のプロパティは制約x≦max(0,y)を含み、yの値の下限と上限はL≦y≦Uであり、次の線形制約を使用してモデル化され得る。
Lz≦y
y≦U(1-z)
x≦y-Lz
x≦U(1-z)
z∈{0,1}
上式で、変数zはyの符号に関連付けられている:z=0⇔y≧0およびz=1⇔y≦0。本発明のいくつかの実施形態では、yは、2つの連続する時間間隔(たとえば、tとt+1など)の間で、特定のリソース(たとえば、グランドハンドラ)に対して開かれるノード(たとえば、デスク)の数の差に対応する。したがって、利用可能なノードの数の制限Bmaxを考慮すると、この差は次の式で制限され得る。
-Bmax≦y≦Bmax
さらに、制約x≦max(0,y)の線形形式が、yの符号に関連付けられた追加の変数(たとえば、第1のプロパティ)を使用するとすると、次の方程式系
【0058】
【数9】
【0059】
はまた、yの符号を制御するために変数が1つだけ必要であり、zは、-x≦max(0,-y)と等しい制約モデリングにおいて1-zに置き換えられる。したがって、線形制約(たとえば、Lz≦y…など)は、ノード(たとえば、チェックインデスク)の割当ての問題に対して上記の式(たとえば、-x≦max(0,-y))によって定義されるシステムの線形形式において複製された制約である。
【0060】
本発明のいくつかの実施形態では、線形プログラムのサイズと本明細書で説明する隣接制約および線形化制約は、|G|<<|J|なので変数の数:Ο(|JM|)、および制約の数:Ο(|JM|)に基づき得る。
【0061】
図3は、本発明の実施形態による、シミュレーション命令セットを介してリソース割当てスケジュールをシミュレーションするための例示的なプロセスを示している。たとえば、最適化サーバ140に記憶されたシミュレーション命令セット160は、最適化命令セット150からリソース割当てスケジュール220を受信し、シミュレーション情報310を決定する(たとえば、シミュレーション分析を実行する)。リソース割当てスケジュール220は、ノード割当ておよびリソース割当てなどの情報222を含むことができる。空港のチェックインデスク割当ての例では、リソース割当てスケジュール220は、特定の時間期間(たとえば、空港における勤務日、すなわち18時間)、特定の時間間隔(たとえば、30分)におけるチェックインデスクごとのグランドハンドラごとのリソース割当てスケジュールを含み得る。シミュレーション情報310は、サービス品質データおよびノード利用率などの情報312を含み得る。空港のチェックインデスク割当ての例では、チェックデスクの利用率、たとえば95%は、開いているデスクが95%の時間で混雑していること、つまり、言い換えれば、チェックインデスクは5%の時間で空いていることを意味する。シミュレーション情報310は、具体的には、ユーザインターフェース114を介して、クライアントデバイス110におけるユーザにより、リソース割当て要求210によって要求され得る。シミュレーションモデルを実装し、最適化モデルからの所与の時間期間Tの複数の時間間隔tの間の最適なノード割当てをシミュレートするための公式計算に関する追加の詳細および関連する公式計算は、図4のプロセス400を参照して本明細書でさらに説明される。
【0062】
図4は、所与の時間期間の複数の時間間隔中に最適なノード割当てを決定するための例示的なプロセス400のフローチャートを示している。プロセス400の動作は、たとえば、図1の1つまたは複数の最適化サーバ140などの、1つまたは複数のデータ処理装置を含むシステムによって実装され得る。プロセス400はまた、コンピュータストレージ媒体に記憶された命令によって実装することもでき、データ処理装置を含むシステムによる命令の実行により、データ処理装置に、プロセス400の動作を行わせる。
【0063】
システムは、リソース割当て要求を受信する(410)。たとえば、最適化サーバ140は、リソース割当てデマンドサーバ120を介して、クライアントデバイス110上のアプリケーション112からリソース割当て要求210を受信する。例示的な実装形態では、リソース割当て要求は、タスクスケジュール(たとえば、フライトスケジュール)に基づくタスク情報(たとえば、乗客情報)、複数の時間間隔(t)を含む時間期間(T)、各時間間隔中に利用可能なリソースの数(たとえば、グランドハンドラの可用性)、各時間間隔中に利用可能なノードの数(たとえば、チェックインデスクの可用性)、および複数のノードの隣接ノードごとの隣接制約を含む。
【0064】
システムは、ブロック422~428を介して、時間期間(420)の時間間隔ごとにリソース割当て要求を処理する。例示的な実装形態では、最適化命令セット150は、プロセスブロック422~428に関して以下で説明するように、多数の決定変数の数に基づいて、各時間間隔(t)中に利用可能なノードの数(たとえば、チェックインデスクの可用性)を計算し、追加の決定変数については、本明細書でさらに説明する。
【0065】
システムは、タスク情報に基づいて、時間間隔(t)内にタスクキュー内で処理されるタスクの第1の数を決定する(422)。たとえば、受信したタスク情報、タスクスケジュール、時間期間、時間間隔、各時間間隔中に利用可能なリソースの数、各時間間隔中に利用可能なノードの数、および隣接ノードごとの隣接制約に基づいて、最適化命令セット150は、図5のキュー510に示されるように、第1の時間期間(t)中に処理され得るタスク(たとえば、乗客)の数を決定することができる。
【0066】
システムは、時間間隔後に未処理である、タスクキューからのタスクの第2の数を決定する(424)。たとえば、時間間隔の直前の時間間隔(t-1)からキューに並んでいる乗客などである。たとえば、図5のキュー510には、時間間隔t中に未処理である乗客が2人いる。
【0067】
システムは、複数のノードの隣接ノードごとの隣接制約に基づいて、リソースごとのリソース割当て制約を決定する(426)。たとえば、システムは、各グランドハンドラに割り当てられたデスク範囲が重複しないことを保証する。
【0068】
本システムは、(i)タスクの第1の数、(ii)タスクの第2の数、および(iii)リソースごとのリソース割当て制約に基づいて、時間間隔内で各リソースに割り当てられるノードの数のサブセットを決定する(428)。たとえば、システムは、図5に示されるように、現在の時間間隔における乗客の数と前の時間間隔(t-1)における未処理の乗客の数に基づいて、時間間隔(t)において各グランドハンドラに割り当てられるチェックインデスクの数のサブセットを決定する。
【0069】
ブロック420の時間間隔(たとえば、ブロック422~428)ごとの時間間隔内で各リソースに割り当てられるノードの数のサブセットをシステムが決定した後、システムは、時間期間の時間間隔ごとに各リソースに割り当てられるノードの数の決定されたサブセットを含むリソース割当てスケジュールを提供する(430)。空港のチェックインデスク割当ての例では、リソース割当てスケジュールは、利用可能なグランドハンドラごとの詳細リスト、各グランドハンドラをどこにスタッフ配置するか、および各時間間隔においてどの隣接するチェックインデスクに配置するかについての、営業日の時間間隔ごとのスケジュール(たとえば、30分のブロックごとのスタッフ配置スケジュール)を含み得る。
【0070】
本発明のいくつかの実施形態では、プロセス400は、シミュレーションモデル(たとえば、シミュレーション命令セット160)を介して、時間間隔ごとに各リソースに割り当てられるノードの数に基づいて、時間間隔ごとのサービス品質測定値を計算することをさらに含む。本発明のいくつかの実施形態では、サービス品質測定値は、各タスクが処理されるまでの待ち時間と、ノードごとのキューのサイズとのうちの少なくとも1つを含む。
【0071】
本発明のいくつかの実施形態では、リソース割当て要求は、利用可能なノードの最大数(たとえば、利用可能なデスクの最大数、すなわちBmax)をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの数を決定することは、利用可能なノードの最大数にさらに基づく。
【0072】
本発明のいくつかの実施形態では、リソース割当て要求は、ソーシャルディスタンスの制約をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの数を決定することは、ソーシャルディスタンスの制約にさらに基づく。たとえば、ソーシャルディスタンスの制約により、チェックインデスクのキューに並ぶ乗客の数が制限される。この数は、人々が一定の距離(たとえば、2メートルの間隔)によって区切られる必要がある場合に、待機キューに対応できるターミナル内の限られたスペースによって決定される。たとえば、いくつかコンピューティングシステムは、受信タスクを記憶するため制限されたバッファサイズを含み、時間間隔中にさらに多くのタスクが受信される場合は、オーバーフローを避けるためにより多くのノードがバッファによって含まれる必要がある。
【0073】
本発明のいくつかの実施形態では、リソース割当て要求は、サービス品質の制約をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの数を決定することは、サービス品質の制約(たとえば、待ち時間、キューのサイズ)にさらに基づく。
【0074】
本発明のいくつかの実施形態では、リソース割当て要求は乗客フロー制約をさらに含み、時間間隔ごとに各リソースに割り当てられるノードの数の決定は乗客フロー制約にさらに基づく。たとえば、本明細書で説明されるシステムプロセスは、到着からサービスの時間までの乗客フローをモデル化し得る。たとえば、時間間隔における乗客デマンドに、前の間隔においてサービスを受けなかった乗客の数を加えたものは、この間隔においてサービスを受けた乗客の数に、後の間隔においてサービスを受ける乗客の数を加えたものに等しくなる。
【0075】
本発明のいくつかの実施形態では、リソース割当て要求は、時間間隔およびその時間間隔の直前の時間間隔からリソースに利用可能なノードの数の変化を決定することと、時間間隔ごとにリソースに利用可能なノードの数を決定することをさらに含む。たとえば、チェックインデスクの可用性シナリオの場合、後続の時間間隔の間においてリソースに利用可能なノードの数の変化を決定することは、最適化モデルがフライト(たとえば、タスクコンテナ)のチェックイン期間の終了時にすべての乗客に強制的にサービスを提供できるようにする制約に基づき得る。
【0076】
本発明のいくつかの実施形態では、プロセス400の最適化プロセスは、すべてのリソース(たとえば、グランドハンドラ)が日中継続的に動作する(すなわち、開いているデスクの数がゼロである期間tが存在し、一部の期間は開いてないようなグランドハンドラgが存在しない)という計算の仮定をすることができ、リソースには連続したノードが割り当てられたため、時間間隔t中に1つのリソースに高いノードインデックスが割り当てられた場合、これは時間期間全体(たとえば、最適化ウィンドウT)にわたって当てはまる。
【0077】
図5は、本発明の実施形態による、2つの異なる間隔におけるキューに対するノード割当ての最適化プロセスの例示的な部分を示している。たとえば、キュー510は、時間間隔t中に処理されるすべてのタスク(たとえば、T1~T5)が同時に到着した第1の時間間隔tを示している。さらに、時間間隔tにおいて、タスクを処理するために利用可能な2つのノード、ノード1 514およびノード2 516(たとえば、乗客デマンドに基づいて利用可能なチェックインデスクの数)があり、これらは、最適化プロセス中に適用される追加の制約に関して最小化される。ノードのキャパシティと各ノードにおける処理能力に基づいて、時間間隔t中にタスクT1~T3のみが処理可能であり(たとえば、乗客のチェックイン)、したがって、領域502に示されるようにタスクT4およびT5は処理されておらず、依然として後続の時間間隔の間に並んで待機している。したがって、キュー520は、第2の後続の時間間隔t+1を示しており、領域504に示されるように、時間間隔t+1中に処理されるすべての新しいタスク(たとえば、T6~T10)が、前の時間間隔t、T4、およびT5からの残りのタスクと同時に到着している。しかしながら、後続の時間間隔t+1では、現在、タスクを処理するために利用可能な3つのノード、ノード1 514、ノード2 516、およびノード3 518(たとえば、乗客デマンドに基づいて利用可能なチェックインデスクの数)が存在する。
【0078】
図6は、本発明の実施形態による、期間ごとの処理されたタスクにおけるデマンドとノードキャパシティを示すチャート600である。たとえば、チャート600は、最適化ウィンドウまたは時間期間T(たとえば、30分の増分または期間に分割された1日10時間の労働時間)にわたる20の時間間隔t(たとえば、期間1~20)を示している。期間ごとに、本明細書で説明される最適化プロセスは、表610に示されるように、期間ごとに利用可能なノードの数が与えられる(たとえば、期間1は2ノードの可用性を有し、期間8は11ノードの可用性を有する、など)。期間デマンド602は、各時間間隔中に処理されるタスク(たとえば、30分の増分期間中に到着する乗客)の数を示している。総デマンド604は、現在処理されるタスクと、前の時間間隔において処理されなかったタスク(たとえば、現在到着している乗客と、前の30分のタイムスロットにおいてチェックされていない乗客)を含む、処理されるタスクの総デマンドを示している。次の期間に処理されるタスク606は、次の時間間隔t+1において処理されるタスク(たとえば、次の期間中にチェックインされる乗客)を示している。ノードキャパシティ608は、利用可能なノードの数に基づいて、間隔ごとに処理され得るタスクの数のノードキャパシティ(たとえば、間隔ごとにチェックインできる乗客の数におけるデスクキャパシティ)を示している。
【0079】
図7は、CAコンポーネントのタスクの送信/受信および処理のために本明細書で説明されるソフトウェアコンポーネントを実行することができるコンピュータ702の例示的なコンピュータアーキテクチャ700を示している。図7に示されるコンピュータアーキテクチャ700(本明細書では「サーバ」とも呼ばれる)は、サーバコンピュータ、ワークステーション、デスクトップコンピュータ、ラップトップ、または他のコンピューティングデバイスを示しており、ホストサーバまたは他のコンピューティングプラットフォーム上で実行されるものとして本明細書に提示されるソフトウェアコンポーネントの任意の態様を実行するために利用され得る。コンピュータ702は、好ましくは、システムバスまたは他の電気通信経路を介して多数のコンポーネントまたはデバイスが接続され得るプリント回路基板であるベースボードまたは「マザーボード」を含む。例示的な一実施形態では、1つまたは複数の中央処理装置(CPU)704がチップセット706と連携して動作する。CPU704は、コンピュータ702の動作に必要な算術演算および論理演算を行うプログラム可能なプロセッサであり得る。
【0080】
CPU704は、好ましくは、これらの状態を区別し変更するスイッチング素子の操作を通じて、ある個別の物理的状態から次の物理的状態に遷移することによって動作を行う。スイッチング素子は一般に、フリップフロップなどの2つのバイナリ状態のうちの1つを維持する電子回路と、論理ゲートなどの1つまたは複数の他のスイッチング素子の状態の論理的組合せに基づいて出力状態を提供する電子回路とを含み得る。レジスタ、加減算器、算術論理演算ユニット、浮動小数点ユニットなどを含む、より複雑な論理回路を作成するために、これらの基本的なスイッチング要素が組み合わせられ得る。
【0081】
チップセット706は、CPU704と、ベースボード上の残りのコンポーネントおよびデバイスとの間のインターフェースを提供する。チップセット706は、メモリ708へのインターフェースを提供し得る。メモリ708は、コンピュータ702のメインメモリとして使用されるランダムアクセスメモリ(RAM)を含み得る。メモリ708は、コンピュータ702を起動し、様々なコンポーネントおよびデバイス間で情報を転送するのに役立つ基本ルーチンを記憶するための、読取り専用メモリ(ROM)または不揮発性RAM(NVRAM)などのコンピュータ可読ストレージ媒体をさらに含み得る。ROMまたはNVRAMはまた、本明細書に記載の実施形態によるコンピュータ702の動作に必要な他のソフトウェアコンポーネントを記憶し得る。
【0082】
様々な実施形態によれば、コンピュータ702は、1つまたは複数のネットワーク712、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはコンピュータ702をデバイスおよび他のリモートコンピュータに接続する、当技術分野で知られている任意の他のネットワークトポロジを通じたリモートコンピューティングデバイスへの論理接続を使用するネットワーク環境において動作し得る。チップセット706は、ギガビットイーサネットアダプタなどの1つまたは複数のネットワークインターフェースコントローラ(NIC)710を通じてネットワーク接続を提供するための機能を含む。たとえば、NIC710は、コンピュータ702を公共事業プロバイダのシステム内の他のコンピュータデバイスに接続することが可能であり得る。任意の数のNIC710がコンピュータ702内に存在し、本明細書で説明されるものを超える他のタイプのネットワークおよびリモートコンピュータシステムにコンピュータを接続し得ることを理解されたい。
【0083】
コンピュータ702は、コンピュータ702に不揮発性ストレージを提供する少なくとも1つの大容量ストレージデバイス718に接続され得る。大容量ストレージデバイス718は、システムプログラム、アプリケーションプログラム、他のプログラムモジュール、およびデータを記憶し得、これらについては本明細書でさらに詳しく説明する。大容量ストレージデバイス718は、チップセット706に接続されたストレージコントローラ714を通じてコンピュータ702に接続され得る。大容量ストレージデバイス718は、1つまたは複数の物理ストレージユニットから構成され得る。ストレージコントローラ714は、シリアルアタッチドSCSI(SAS)インターフェース、シリアルアドバンストテクノロジアタッチメント(SATA)インターフェース、ファイバチャネル(FC)インターフェース、またはコンピュータと物理ストレージデバイスとの間でデータを物理的に接続し転送するための他の標準インターフェースを通じて物理ストレージユニットとインターフェースし得る。
【0084】
コンピュータ702は、記憶されている情報を反映するように物理ストレージユニットの物理的状態を変換することによって、大容量ストレージデバイス718にデータを記憶し得る。物理的状態の特定の変換は、本明細書の発明の異なる実施形態では、様々な要因に依存し得る。そのような要因の例は、物理ストレージユニットを実装するために使用される技術、大容量ストレージデバイス718が一次ストレージとして特徴付けられるか二次ストレージとして特徴付けられるかなどを含み得るが、これらに限定されない。たとえば、コンピュータ702は、磁気ディスクドライブユニット内の特定の位置の磁気特性、光ストレージユニット内の特定の位置の反射特性または屈折特性、あるいはソリッドステートストレージユニット内の特定のコンデンサ、トランジスタ、または他のディスクリートコンポーネントの電気的特性を変更するために、ストレージコントローラ714を通じて命令を発行することによって、情報を大容量ストレージデバイス718に記憶し得る。物理媒体の他の変換も、本説明の範囲および趣旨から逸脱することなく可能であり、前述の例は、本説明を容易にするためだけに提供されている。コンピュータ702は、物理的ストレージユニット内の1つまたは複数の特定の位置の物理的状態または特性を検出することによって、大容量ストレージデバイス718から情報をさらに読み取ることができる。
【0085】
大容量ストレージデバイス718は、コンピュータ702の動作を制御するために利用されるオペレーティングシステム720を記憶し得る。いくつかの実施形態によれば、オペレーティングシステムはLINUXオペレーティングシステムを含む。他の実施形態によれば、オペレーティングシステムは、ワシントン州レドモンドのMICROSOFT CorporationのWINDOWS(登録商標)SERVERオペレーティングシステムを含む。さらなる実施形態によれば、オペレーティングシステムは、UNIX(登録商標)またはSOLARIS(登録商標)オペレーティングシステムを含み得る。他のオペレーティングシステムも利用され得ることを理解されたい。本明細書で説明される実施形態によれば、大容量ストレージデバイス718は、リソースデマンド通信のための通信ネットワークにおける通信を管理するためのリソース割当てモジュール722、最適化プロセスを実行するための最適化モジュール724、およびシミュレーションプロセスを実行するためのシミュレーションモジュール726などの、コンピュータ702によって利用される他のシステムまたはアプリケーションプログラムおよびデータを記憶し得る。
【0086】
いくつかの実施形態では、大容量ストレージデバイス718は、コンピュータ702にロードされるとき、コンピュータ702を汎用コンピューティングシステムから本明細書に記載の実施形態を実装することができる専用コンピュータに変換するコンピュータ実行可能命令を用いてエンコードされ得る。これらのコンピュータ実行可能命令は、上述したように、CPU704が状態間をどのように遷移するかを指定することによってコンピュータ702を変換する。いくつかの実施形態によれば、ホストサーバ106の観点から、大容量ストレージデバイス718は、コンピュータ702によって実行されるとき、本明細書で説明されるように、所与の時間期間の複数の時間間隔中に最適なノード割当てを決定するためのプロセス400の一部を行うコンピュータ実行可能命令を記憶する。さらなる実施形態では、コンピュータ702は、大容量ストレージデバイス718に加えて、または大容量ストレージデバイス718の代替として、他のコンピュータ可読ストレージ媒体にアクセスし得る。
【0087】
コンピュータ702はまた、キーボード、マウス、タッチパッド、タッチスクリーン、電子スタイラス、または他のタイプの入力デバイスなどの多くの入力デバイスからの入力を受信して処理するための入力/出力コントローラ730を含み得る。同様に、入力/出力コントローラ730は、コンピュータモニタ、フラットパネルディスプレイ、デジタルプロジェクタ、プリンタ、プロッタ、または他のタイプの出力デバイスなどの表示デバイスに出力を提供し得る。コンピュータ702は、図7に示されるコンポーネントのすべてを含んでいるわけではなく、図7に明示的に示されていない他のコンポーネントを含んでもよく、あるいは、図7に示されているものとは完全に異なるアーキテクチャを利用してもよいことが理解されるであろう。
【0088】
一般に、本発明の実施形態を実装するために実行されるルーチンは、オペレーティングシステムの一部として実装されるか、特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュールもしくは命令シーケンス、あるいはそれらのサブセットとして実装されるかにかかわらず、本明細書では「コンピュータプログラムコード」、または単に「プログラムコード」と呼ばれ得る。プログラムコードは、通常、コンピュータ内の様々なメモリおよびストレージデバイスに様々な時点で常駐するコンピュータ可読命令を含み、コンピュータ内の1つまたは複数のプロセッサによって読み取られて実行されるとき、そのコンピュータに、本発明の実施形態の様々な態様を具体化する動作および/または要素を実行するために必要な動作を行わせる。本発明の実施形態の動作を実行するためのコンピュータ可読プログラム命令は、たとえば、アセンブリ言語、あるいは1つまたは複数のプログラミング言語の任意の組合せで書かれたソースコードまたはオブジェクトコードのいずれかであり得る。
【0089】
本明細書で説明されるアプリケーション/モジュールのいずれかにおいて具体化されるプログラムコードは、様々な異なる形式のプログラム製品として個別にまたは集合的に配布されることが可能である。特に、プログラムコードは、プロセッサに本発明の実施形態の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体を使用して配布され得る。
【0090】
本質的に非一時的なコンピュータ可読ストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性、ならびに取外し可能および取外し不可能な有形媒体を含み得る。コンピュータ可読ストレージ媒体は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラム可能読取り専用メモリ(EPROM)、電気的消去可能プログラム可能読取り専用メモリ(EEPROM)、フラッシュメモリ、または他のソリッドステートメモリ技術、ポータブルコンパクトディスク読取り専用メモリ(CD-ROM)、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは所望の情報を記憶するために使用され得、コンピュータで読み取ることができる、任意の他の媒体をさらに含み得る。コンピュータ可読ストレージ媒体は、それ自体が一時的な信号(たとえば、電波または他の伝播電磁波、導波管などの伝送媒体を伝播する電磁波、あるいはワイヤを通じて伝送される電気信号)として解釈されるべきではない。コンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からコンピュータ、他のタイプのプログラム可能なデータ処理装置、または他のデバイスに、あるいはネットワークを介して外部コンピュータまたは外部ストレージデバイスにダウンロードされ得る。
【0091】
コンピュータ可読媒体に記憶されたコンピュータ可読プログラム命令は、コンピュータ可読媒体に記憶された命令が、フローチャート、シーケンス図、および/またはブロック図において指定された機能/行為を実装する命令を含む製品を生成するように、コンピュータ、他のタイプのプログラム可能なデータ処理装置、または他のデバイスが特定の方法で機能するように指示するために使用され得る。コンピュータプログラム命令は、1つまたは複数のプロセッサを介して実行される命令により、フローチャート、シーケンス図、および/またはブロック図において指定された機能および/または行為を実装するために一連の計算が行われるように、マシンを生成するために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置の1つまたは複数のプロセッサに提供され得る。
【0092】
特定の代替実施形態では、フローチャート、シーケンス図、および/またはブロック図において指定された機能および/または行為は、本発明の実施形態の範囲から逸脱することなく、並べ替えられ、逐次的に処理され、および/または同時に処理され得る。さらに、フローチャート、シーケンス図、および/またはブロック図のいずれかは、本発明の実施形態に従って図示されたものよりも多いまたは少ないブロックを含み得る。
【0093】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、本発明の実施形態を限定することが意図されるものではない。本明細書で使用される場合、単数形「a」、「an」、および「the」は、文脈上明らかに別段の指示がない限り、複数形も含むことが意図される。さらに、本明細書で使用される「含む(comprises)」および/または「含んでいる(comprising)」という用語は、記載された特徴、整数、ステップ、動作、要素、および/またはコンポーネントの存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはそれらのグループの存在または追加を排除するものではない。さらに、「含む(includes)」、「有する(having)」、「有する(has)」、「を伴う(with)」、「からなる(comprised of)」という用語、またはそれらの変形が詳細な説明または特許請求の範囲のいずれかにおいて使用されている限り、そのような用語は、「含んでいる(comprising)」という用語と同様に包括的なものであることが意図される。
【0094】
本発明のすべてを様々な実施形態の説明によって例示し、これらの実施形態をかなり詳細に説明してきたが、添付の特許請求の範囲をそのような詳細に限定したり、何らかの形で制限したりすることは出願人の意図ではない。追加の利点および修正は、当業者には容易に明らかになるであろう。したがって、本発明は、そのより広範な態様において、図示され説明された特定の詳細、代表的な装置および方法、ならびに例示的な実施例に限定されない。したがって、出願人の一般的な発明概念の趣旨または範囲から逸脱することなく、そのような詳細から逸脱し得る。
【符号の説明】
【0095】
100 環境
102 データ通信ネットワーク
110 クライアントデバイス
112 アプリケーション
114 グラフィカルユーザインターフェース(GUI)
120 リソース割当てデマンドサーバ
130 タスクデータベース
140 最適化サーバ
150 最適化命令セット
160 シミュレーション命令セット
210 リソース割当て要求
220 リソース割当てスケジュール
222 情報
310 シミュレーション情報
312 情報
400 プロセス
502 領域
504 領域
510 キュー
514 ノード1
516 ノード2
518 ノード3
520 キュー
600 チャート
602 期間デマンド
604 総デマンド
606 次の期間に処理されるタスク
608 ノードキャパシティ
610 表
700 コンピュータアーキテクチャ
702 コンピュータ
704 中央処理装置(CPU)
706 チップセット
708 メモリ
710 ネットワークインターフェースコントローラ(NIC)
712 ネットワーク
714 ストレージコントローラ
718 大容量ストレージデバイス
720 オペレーティングシステム
722 リソース割当てモジュール
724 最適化モジュール
726 シミュレーションモジュール
730 入力/出力コントローラ
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】