(57)【特許請求の範囲】
【請求項１】
プロセッサによって、複数のプロジェクトにアクセスすることと、
前記プロセッサによって、前記複数のプロジェクトのうち少なくともプロジェクトのサブセットを完了する時間の長さを示す計画対象期間にアクセスすることと、
前記プロセッサによって、複数の資源であって、前記複数の資源の各資源が前記複数のプロジェクトの少なくとも１つのプロジェクトを完了するために前記資源によって実行可能である１つまたは複数の機能を特定する前記複数の資源にアクセスすることと、
前記プロセッサによって、前記複数の資源の各資源について、各資源を前記複数のプロジェクトにわたって利用することが可能である最大利用可能容量を示す予算支出にアクセスすることと、
前記プロセッサによって、前記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することに関連する費用の制約にアクセスすることと、
前記プロセッサによって、前記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することで得られる利益の量を示す利益値にアクセスすることと、
前記プロセッサによって、前記複数のプロジェクトの他のプロジェクトの完了の要件として前記複数のプロジェクトの中のどのプロジェクトを完了させなければならないかを示すプロジェクト依存値の集合にアクセスすることと、
前記プロセッサによって、前記プロジェクト依存値の集合に基づいて、完了される前記複数のプロジェクトの中のプロジェクトの順序を示す複数の依存経路を決定することであって、少なくとも１つの依存経路内のプロジェクトは、前記少なくとも１つの依存経路内の先行するすべてのプロジェクトが完了するまで開始されることができないことと、
前記プロセッサによって、各依存経路の順位付けを決定することであって、前記順位付けは、各依存経路内のプロジェクトの数の合計値に基づくことと、
前記プロセッサによって、前記計画対象期間内の前記複数の依存経路の中からの依存経路の効率的な選択を、各依存経路の依存経路順位付けと前記依存経路の各プロジェクトの前記費用の制約との間の比較に基づいて決定し、
前記プロセッサによって、前記複数の資源の効率的な利用を決定して、各資源についての前記予算支出によって制約される、前記依存経路の効率的な選択を完了することとを含む、方法。
【請求項２】
前記少なくとも１つの依存経路を決定することは、
前記複数のプロジェクトを複数のクラスタに分割することと、
前記クラスタ内の各プロジェクトについて、前記クラスタ内の前記プロジェクトに関連した前記プロジェクト依存値によって結びつけられる前記複数のプロジェクトの中の一連のプロジェクトを示す、各クラスタについてのクラスタ依存経路を計算することと、
前記クラスタ依存経路の併合操作を実行して前記少なくとも１つの依存経路を生成することと、
前記併合操作の実行中に前記少なくとも１つの依存経路と関連しない少なくとも１つの前記クラスタ依存経路の少なくともサブセットをプルーニングすることとを含む、請求項１記載の方法。
【請求項３】
前記併合操作は、少なくとも２つのクラスタ依存経路をともに接続することを含み、接続される前記少なくとも２つのクラスタ依存経路の選択は、前記少なくとも２つのクラスタ依存経路の中で共通している少なくとも１つのプロジェクトに基づく、請求項２記載の方法。
【請求項４】
前記少なくとも１つの依存経路を決定することは、
前記プロジェクト依存値の集合に基づいて第１の依存経路を決定することと、前記プロジェクト依存値の集合に基づいて第２の依存経路を決定することと、前記第１および第２の依存経路の予測収益間の比較に基づいて前記第２の依存経路に対して前記第１の依存経路を順位付けすることと、前記計画対象期間によって制約される予定表に沿って、前記プロジェクトを、前記予定表に沿って前記第２の依存経路に前記プロジェクトを割り当てる前に前記第１の依存経路に割り当てることとを含む、請求項１から３のいずれかに記載の方法。
【請求項５】
前記完了される複数のプロジェクトの中からの前記プロジェクトの効率的な選択を決定することは、前記計画対象期間によって制約される予定表上のプロジェクトについて効率的な配置を決定することを含み、前記効率的な配置は、前記プロジェクトの完了にかかる時間長と、前記プロジェクトの完了に必要な資源量と、前記プロジェクトにかかる最大財務費用を規定するプロジェクト予算とに基づく、請求項１から４のいずれかに記載の方法。
【請求項６】
前記プロジェクトについて前記効率的な配置を決定することは、前記資源を前記プロジェクト内のロールとマッチングすることと、前記ロールとマッチングされる前記資源の選択を優先することと、前記資源とマッチングされる前記ロールの選択を優先することとを含む、請求項１から５のいずれかに記載の方法。
【請求項７】
前記資源の選択を優先することは、非優先資源よりも早く優先資源を選択することと、
非スティッキーな資源よりも早くスティッキーな資源を割り当て、前記スティッキーな資源は検討されている前記ロールより前の時間間隔に割り当てられた資源を示すことと、
フレキシブルな資源よりも早く非フレキシブルな資源を割り当てることと、
前記ロールのベストフィット記述に合うロールに資源を割り当てることと、
利用可能期間が短い資源に対して利用可能期間が長い資源を優遇することとを含む、請求項６記載の方法。
【請求項８】
前記ロールの選択を優先することは、
より希少でないロールよりも前に希少のロールをマッチングすることと、
ロールのコンター（contours）として、より長い非ゼロの需要の連鎖（sequence）を有するロールを、より短いコンターをもつロールよりも前にマッチングすることと、
より短い時間拘束であるロールよりも前により長い時間拘束であるロールをマッチングすることとを含む、請求項６に記載の方法。
【請求項９】
前記完了される複数のプロジェクトの中からの前記プロジェクトの効率的な選択を決定することは、前記複数のプロジェクトの中のプロジェクトが、前記プロジェクトの効率的な選択の中から除外される理由を決定することを含む、請求項１から８のいずれかに記載の方法。
【請求項１０】
前記プロジェクトが除外される理由を決定することは、
予算不足により前記プロジェクトが除外されるかどうかを決定することと、
資源不足により前記プロジェクトが除外されるかどうかを決定することと、
予定表の不足により前記プロジェクトが除外されるかどうかを決定することと、
依存経路不足により前記プロジェクトが除外されるかどうかを決定することとを含む、
請求項１から９のいずれかに記載の方法。
【請求項１１】
前記完了される複数のプロジェクトの中からの前記プロジェクトの効率的な選択を決定することは、プロジェクトの制約の集合を修正して前記プロジェクトの効率的な選択の中に現在含まれていない前記複数のプロジェクトの中の少なくとももう１つのプロジェクトを、前記効率的な選択の中に含むことができるかどうかを決定することを含む、請求項１から１０のいずれかに記載の方法。
【請求項１２】
前記プロジェクトの制約の集合を修正することは、
前記プロジェクトの効率的な選択の完了に関してロール数を修正することが、結果として、前記プロジェクトの効率的な選択の中に含まれる１つまたは複数のプロジェクトになるかどうかを決定すること、
前記プロジェクトの効率的な選択に関連する少なくとも１つの予算を増加することが、結果として、前記プロジェクトの効率的な選択の中に含まれる１つまたは複数のプロジェクトになるかどうかを決定すること、または、
前記プロジェクトの効率的な選択の中のプロジェクト内のロールの容量を増加することが、結果として、前記プロジェクトの効率的な選択の中に含まれる１つまたは複数のプロジェクトになるかどうかを決定することを含む、請求項１から１１のいずれかに記載の方法。
【請求項１３】
前記計画対象期間内の前記完了される複数のプロジェクトの中からの前記プロジェクトの効率的な選択を決定することは、前記プロジェクトの効率的な選択内の各プロジェクトの前記利益値と前記プロジェクトの効率的な選択内の各プロジェクトの前記費用の制約との間の比較を最大化することにさらに基づく、請求項１から１２のいずれかに記載の方法。
【請求項１４】
前記方法は、前記プロセッサによって、依存経路の前記効率的な選択の前記プロジェクトと、依存経路の前記効率的な選択のそれぞれの前記プロジェクトに割り当てられた資源を含むスケジュールを生産することを更に備える、請求項１から１３のいずれかに記載の方法。
【請求項１５】
複数のプロジェクトと、
前記複数のプロジェクトの少なくともプロジェクトのサブセットを完了する時間の長さを示す計画対象期間と、
複数の資源であって、前記複数の資源の各資源が前記複数のプロジェクトの少なくとも１つのプロジェクトを完了するために前記資源によって実行可能である１つまたは複数の機能を特定する前記複数の資源と、
前記複数の資源の各資源について、各資源を前記複数のプロジェクトにわたって利用することが可能である最大利用可能容量を示す予算支出と、
前記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することに関連した財務費用を示す費用の制約と、
前記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することで得られる利益の量を示す利益値と、
前記複数のプロジェクトのうちの他のプロジェクトの完了の要件として前記複数のプロジェクトの中のどのプロジェクトを完了させなければならないかを示すプロジェクト依存値の集合とを含む、データを記憶するように構成されたメモリと、
かつ、前記メモリに結合されるプロセッサと、および、
記憶されたプログラム指示を備える非一時的なコンピュータ読み取り可能な媒体とを含み、前記プログラム指示は、前記プロセッサによって実行される場合に請求項１から１４のいずれかに記載の前記方法を前記プロセッサに対して実行させる、システム。
【請求項１６】
プロセッサによって解釈される場合に、請求項１から１４のいずれかに記載の前記方法をマシンに対して実行させる指示を含む、非一時的なコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される主題は、概してデータ処理に関する。いくつかの実施形態では、本開示は、構造化経営組織内のプロジェクトの選択および資源の割り当てを最適化する枠組みを提供するための方法および装置に関する。
【背景技術】
【０００２】
経営組織および他の企業の共通の目標は、時間および予算の制約内で様々なタスクまたはプロジェクトを完了するために利用可能な資源の効率的な使用を見出すことである。いくつかの場合では、効率のレベルはどれだけの利益（profit）を挙げるかに基づきうるものであり、指定された数のプロジェクトに対する資源の特定の割り当てが与えられる。様々な最適化アルゴリズムを利用するコンピュータに、効率的に資源を利用するためにどんなプロジェクトを完了するべきであるかについてスケジュール案を決定することが委ねられうる。しかしながら、公知のアルゴリズムは、特に大量のプロジェクトを同時に検討する際に、計算機的に非効率的となりうる。いくつかの場合では、従来のアルゴリズムは、さらに多くのプロジェクトが検討に加えられているというこの最適化問題を解決できないものでありうる。従って、計算機的に効率的な手法でプロジェクトのスケジュールを決定することができる新しいアルゴリズムおよびヒューリスティックを開発することが要望されている。
【発明の概要】
【０００３】
様々な時間、資源および予算の制約下での組織内の複数のプロジェクトに対する資源の割り当てに関して、方法、システムおよびコンピュータ読み取り可能な媒体を提示する。いくつかの実施形態では方法が提示される。方法は、プロセッサによって、複数のプロジェクトにアクセスすることと、上記プロセッサによって、上記複数のプロジェクトのうち少なくともプロジェクトのサブセットを完了する時間の長さを示す計画対象期間にアクセスすることと、上記プロセッサによって、複数の資源であって、上記複数の資源の各資源が上記複数のプロジェクトの少なくとも１つのプロジェクトを完了するために上記資源によって実行可能である１つまたは複数の機能を特定する上記複数の資源にアクセスすることと、上記プロセッサによって、上記複数の資源の各資源について、各資源を上記複数のプロジェクトにわたって利用することが可能である最大利用可能容量を示す予算支出にアクセスすることと、上記プロセッサによって、上記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することに関連する費用の制約にアクセスすることと、上記プロセッサによって、上記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することで得られる利益の量を示す利益値にアクセスすることと、上記プロセッサによって、上記複数のプロジェクトの他のプロジェクトの完了の要件として上記複数のプロジェクトの中のどのプロジェクトを完了させなければならないかを示すプロジェクト依存値の集合にアクセスすることと、上記プロセッサによって、上記プロジェクト依存値の集合に基づいて、完了される上記複数のプロジェクトの中のプロジェクトの順序を示す少なくとも１つの依存経路を決定することであって、上記少なくとも１つの依存経路内のプロジェクトは、上記少なくとも１つの依存経路内の先行するすべてのプロジェクトが完了するまで開始されることができないことと、上記プロセッサによって、上記計画対象期間内の上記完了される複数のプロジェクトの中からのプロジェクトの効率的な選択を、上記プロジェクトの効率的な選択内の各プロジェクトの上記利益値と上記プロジェクトの効率的な選択内の各プロジェクトの上記費用の制約との間の比較に基づいて決定し、上記効率的な選択は上記少なくとも１つの依存経路に基づき、上記複数の資源の効率的な利用を決定して、各資源についての上記予算支出によって制約される、上記プロジェクトの効率的な選択を完了することとを含みうる。
【０００４】
いくつかの実施形態では、上記少なくとも１つの依存経路を決定することは、上記複数のプロジェクトを複数のクラスタに分割することと、上記クラスタ内の各プロジェクトについて、上記クラスタ内の前記プロジェクトに関連した上記プロジェクト依存値によって結びつけられる上記複数のプロジェクトの中の一連のプロジェクトを示す、各クラスタについてのクラスタ依存経路を計算することと、上記クラスタ依存経路の併合操作を実行して上記少なくとも１つの依存経路を生成することと、上記併合操作中に上記少なくとも１つの依存経路と関連しない少なくとも１つの上記クラスタ依存経路の少なくともサブセットをプルーニングすることとを含む。いくつかの実施形態では、上記併合操作は、少なくとも２つのクラスタ依存経路をともに接続することを含み、接続される上記少なくとも２つのクラスタ依存経路の選択は、上記少なくとも２つのクラスタ依存経路の中で共通している少なくとも１つのプロジェクトに基づく。
【０００５】
いくつかの実施形態では、上記少なくとも１つの依存経路を決定することは、上記プロジェクト依存値の集合に基づいて第１の依存経路を決定することと、上記プロジェクト依存値の集合に基づいて第２の依存経路を決定することと、上記第１および第２の経路依存性の予測利益間の比較に基づいて上記第２の依存経路に対して上記第１の依存経路を順位付けすることと、上記計画対象期間によって制約される予定表に沿って、上記プロジェクトを、上記予定表に沿って上記第２の依存経路に上記プロジェクトを割り当てる前に上記第１の依存経路に割り当てることとを含む。
【０００６】
いくつかの実施形態では、上記完了される複数のプロジェクトの中からの上記プロジェクトの効率的な選択を決定することは、上記計画対象期間によって制約される予定表上のプロジェクトについて効率的な配置を決定することを含み、上記効率的な配置は、上記プロジェクト完了にかかる時間長と、上記プロジェクト完了に必要な資源量と、上記プロジェクトにかかる最大財務費用を規定するプロジェクト予算とに基づく。いくつかの実施形態では、上記プロジェクトについて上記効率的な配置を決定することは、上記資源を上記プロジェクト内のロールとマッチングすることと、上記ロールとマッチングされる上記資源の選択を優先することと、上記資源とマッチングされる上記ロールの選択を優先することとを含む。いくつかの実施形態では、上記資源の選択を優先することは、非優先資源よりも早く優先資源を選択することと、非スティッキーな資源よりも早くスティッキーな資源を割り当て、上記スティッキーな資源は検討されている上記ロールより前の時間間隔に割り当てられた資源を示すことと、フレキシブルな資源よりも早く非フレキシブルな資源を割り当てることと、上記ロールのベストフィット記述に合うロールに資源を割り当てることと、利用可能期間が短い資源に対して利用可能期間が長い資源を優遇することとを含む。いくつかの実施形態では、上記ロールの選択を優先することは、より希少でないロールよりも前に希少のロールをマッチングすることと、ロールのコンター（contours）として、より長い非ゼロの需要の連鎖（sequence）を有するロールを、より短いコンターをもつロールよりも前にマッチングすることと、より短い時間拘束であるロールよりも前により長い時間拘束であるロールをマッチングすることとを含む。
【０００７】
いくつかの実施形態では、上記完了される複数のプロジェクトの中からの上記プロジェクトの効率的な選択を決定することは、上記複数のプロジェクトの中のプロジェクトが、上記プロジェクトの効率的な選択の中から除外される理由を決定することを含む。いくつかの実施形態では、上記プロジェクトが除外される理由を決定することは、予算不足により上記プロジェクトが除外されるかどうかを決定することと、資源不足により上記プロジェクトが除外されるかどうかを決定することと、予定表の不足により上記プロジェクトが除外されるかどうかを決定することと、依存経路不足により上記プロジェクトが除外されるかどうかを決定することとを含む。
【０００８】
いくつかの実施形態では、上記完了される複数のプロジェクトの中からの上記プロジェクトの効率的な選択を決定することは、プロジェクトの制約の集合を修正して上記プロジェクトの効率的な選択の中に現在含まれていない上記複数のプロジェクトの中の少なくとももう１つのプロジェクトを、上記効率的な選択の中に含むことができるかどうかを決定することを含む。いくつかの実施形態では、上記プロジェクトの制約の集合を修正することは、上記プロジェクトの効率的な選択の完了に関してロール数を修正することが、結果として、上記プロジェクトの効率的な選択の中に含まれる１つまたは複数のプロジェクトになるかどうかを決定すること、上記プロジェクトの効率的な選択に関連する少なくとも１つの予算を増加することが、結果として、上記プロジェクトの効率的な選択の中に含まれる１つまたは複数のプロジェクトになるかどうかを決定すること、または、上記プロジェクトの効率的な選択の中のプロジェクト内のロールの容量を増加することが、結果として、上記プロジェクトの効率的な選択の中に含まれる１つまたは複数のプロジェクトになるかどうかを決定することを含む。
【０００９】
いくつかの実施形態では、上記計画対象期間内の上記完了される複数のプロジェクトの中からの上記プロジェクトの効率的な選択を決定することは、上記プロジェクトの効率的な選択内の各プロジェクトの上記利益値と上記プロジェクトの効率的な選択内の各プロジェクトの上記費用の制約との間の比較を最大化することにさらに基づく。
【００１０】
いくつかの実施形態ではシステムが提示される。システムは、複数のプロジェクトと、上記複数のプロジェクトの少なくともプロジェクトのサブセットを完了する時間の長さを示す計画対象期間と、複数の資源であって、前記複数の資源の各資源が上記複数のプロジェクトの少なくとも１つのプロジェクトを完了するために上記資源によって実行可能である１つまたは複数の機能を特定する上記複数の資源と、上記複数の資源の各資源について、各資源を上記複数のプロジェクトにわたって利用することが可能である最大利用可能容量を示す予算支出と、上記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することに関連した財務費用を示す費用の制約と、上記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することで得られる利益の量を示す利益値と、上記複数のプロジェクトのうちの他のプロジェクトの完了の要件として上記複数のプロジェクトの中のどのプロジェクトを完了させなければならないかを示すプロジェクト依存値の集合とを含む、データを記憶するように構成されたメモリを含む。システムはまた、上記複数のプロジェクトと、上記計画対象期間と、上記複数の資源と、上記複数の資源の各資源についての上記予算支出と、上記複数のプロジェクトの各プロジェクトについての上記費用の制約と、上記複数のプロジェクトの各プロジェクトについての上記利益値と、上記プロジェクト依存値の集合とにアクセスし、上記プロジェクト依存値の集合に基づいて、完了される上記複数のプロジェクトの中のプロジェクトの順序を示す少なくとも１つの依存経路を決定し、上記少なくとも１つの依存経路内のプロジェクトは、上記少なくとも１つの依存経路内の先行するすべてのプロジェクトが完了するまで開始されることができないものであり、上記計画対象期間内の上記完了される複数のプロジェクトの中からのプロジェクトの効率的な選択を、上記プロジェクトの効率的な選択内の各プロジェクトの上記利益値と上記プロジェクトの効率的な選択内の各プロジェクトの上記費用の制約との間の比較に基づいて決定し、上記効率的な選択は上記少なくとも１つの依存経路に基づき、上記複数の資源の効率的な利用を決定して、各資源についての上記予算支出によって制約される、上記プロジェクトの効率的な選択を完了するように構成され、かつ、上記メモリに結合されるプロセッサを含みうる。
【００１１】
いくつかの実施形態では非一時的なコンピュータ読み取り可能な媒体が提示される。コンピュータ読み取り可能な媒体は、プロセッサによって解釈される場合に、複数のプロジェクトにアクセスすることと、上記複数のプロジェクトの少なくともプロジェクトのサブセットを完了する時間の長さを示す計画対象期間にアクセスすることと、複数の資源であって、上記複数の資源の各資源が上記複数のプロジェクトの少なくとも１つのプロジェクトを完了するための上記資源によって実行可能である１つまたは複数の機能を特定する上記複数の資源にアクセスすることと、上記複数の資源の各資源について、各資源を上記複数のプロジェクトにわたって利用することが可能である最大利用可能容量を示す予算支出にアクセスすることと、上記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することに関連した財務費用を示す費用の制約にアクセスすることと、上記複数のプロジェクトの各プロジェクトについて、前記プロジェクトを完了することで得られる利益の量を示す利益値にアクセスすることと、上記複数のプロジェクトのうちの他のプロジェクトの完了の要件として上記複数のプロジェクトの中のどのプロジェクトを完了させなければならないかを示すプロジェクト依存値の集合にアクセスすることと、上記プロジェクト依存値の集合に基づいて、完了される上記複数のプロジェクトの中のプロジェクトの順序を示す少なくとも１つの依存経路を決定し、上記少なくとも１つの依存経路内のプロジェクトは、上記少なくとも１つの依存経路内の先行するすべてのプロジェクトが完了するまで開始されることができないことと、上記計画対象期間内で上記完了される複数のプロジェクトの中からのプロジェクトの効率的な選択を、上記プロジェクトの効率的な選択内の各プロジェクトの上記利益値と上記プロジェクトの効率的な選択内の各プロジェクトの上記費用の制約との間の比較に基づいて決定し、上記効率的な選択は上記少なくとも１つの依存経路に基づき、上記複数の資源の効率的な利用を決定して、各資源についての上記予算支出によって制約される、上記プロジェクトの効率的な選択を完了することとを含む動作をマシンに対して実行させる指示を含みうる。
【００１２】
いくつかの実施形態を、限定ではなく例として添付の図面の各図に示す。
【図面の簡単な説明】
【００１３】
【図１】図１は、いくつかの実施形態による、本開示の態様の実行に好適な例となるネットワーク環境の一例を説明するネットワーク図である。
【図２】図２は、いくつかの実施形態による、複数のプロジェクトに対して資源を割り当てるためのシステムへの計画対象期間および最適化情報を受けるためのグラフィカルユーザインタフェースの一例の表示を示す。
【図３】図３は、いくつかの実施形態による、複数のプロジェクトに対して資源を割り当てるためのシステムへのプロジェクト情報を受けるためのグラフィカルユーザインタフェースの第２の例の表示を示す。
【図４】図４は、いくつかの実施形態による、複数のプロジェクトに対して資源を割り当てるためのシステムへの制約情報を受けるためのグラフィカルユーザインタフェースの第３の例の表示を示す。
【図５】図５は、いくつかの実施形態による、最適化目標を最大化するいくつかのプロジェクトを列挙する全体的なスケジュールに関する、例えばエグゼクティブサマリーである一例の表示を示す。
【図６】図６は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての追加属性を説明する、例えば図表である第２の例となる表示を示す。
【図７】図７は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての他の属性を説明する、例えばプロジェクト一覧である第３の例となる表示を示す。
【図８】図８は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての他の属性を説明する、例えば予定表の概要である第４の例となる表示を示す。
【図９】図９は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての他の属性を説明する、例えば資源利用の概要である第５の例となる表示を示す。
【図１０】図１０は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての他の属性を説明する、例えばさらなる種々の統計である第６の例となる表示を示す。
【図１１】図１１は、いくつかの実施形態による、指定された計画対象期間内で完了対象のプロジェクトのスケジュールを生成するための一例の方法論を説明する。
【図１２Ａ】図１２Ａは、いくつかの実施形態による、図１１のブロック１１１６において依存経路を決定するための一例の方法論を提供する。
【図１２Ｂ】図１２Ｂは、有向非巡回グラフのいくつかの例の図示を提供する。
【図１２Ｃ】図１２Ｃは、図１２Ａにおける記述と一致する完成依存経路を生成するための一例を提供する。
【図１３】図１３は、いくつかの実施形態による、図１１のブロック１１１８においてプロジェクトを割り当てることを決定するための一例の方法論を提供する。
【図１４】図１４は、いくつかの例示する実施形態によるマシン読み取り可能な媒体からの指示を読み取り、本明細書で論じられる任意の１つまたは複数の方法論を実行することができるマシンの構成要素を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下の詳細な説明は、異なる図中で同様の要素には同一の参照符合を付している図面を参照しながら理解されたい。図面においては、必ずしも縮尺をあわせているものではなく、選択的に実施形態を示しており、発明の範囲を限定することを意図していない。詳細な説明は、例として、限定ではなく、発明の原理を説明している。この説明は、明らかに、当業者が発明をなし、用いることができることとなるものであり、発明を実施するための最良の形態となると現在見られているものを含む、発明のいくつかの実施形態、適合、変形、代替および使用を説明する。この明細書および添付の特許請求の範囲で用いる場合、明確に別を示す文脈がなければ、単数形である“ａ”、“ａｎ”および“ｔｈｅ”は複数の指示対象を含む。
【００１５】
様々な時間、資源および予算の制約下での、組織における複数のプロジェクトに対して資源を割り当てるためのシステム、方法および装置が提示される。本明細書では、「プロジェクト」とは、企業の特定の目的を有する予定されたひとまとまりの仕事として規定されうるものであり、例えば、金額上の利益、得られる評判、各プロジェクトについてのスコア、予測の長期戦略的価値、他の数量化可能な数値、またはそれらの任意の組合せを含む様々な方法で表現される企業に関するある値を生じうる。プロジェクトを完了するために、いくつかの資源を、ある期間にわたってプロジェクトに費やす必要がありうるため、プロジェクトは、関連する指定された必要な資源の量、予測費用、完了のための予測時間および各種資源に関する最大利用可能容量を特定する１つまたは複数の予算を有しうる。本明細書では、「資源」（resource）とは、有する資格に関するタスクの集合を実行することが可能であるような有資格の専門家の存在（stock）として規定されうる。他の場合では、資源は、コンピュータ、印刷機、科学的機械、建設機械等である他の実体のあるツールおよびマシンを含むことが可能である。経営組織および他の企業の共通の目標は、時間および予算の制約内で、様々なタスクまたはプロジェクトを完了するために利用可能な資源の効率的な使用を見出すことである。いくつかの場合では、効率のレベルは、どれだけの利益が挙げられるかに基づきうるものであり、指定された数のプロジェクトに対する資源の特有の割り当てが与えられる。
【００１６】
最適または効率的な解決法を見出すための標準のアプローチは、線形プログラムとしてのこの問題をモデル化することと、オペレーションズリサーチ理論および公知のヒューリスティックに従ってコンピュータを用いて線形プログラムを解くこととを含んでいる。しかしながら、この最適化問題は、ＮＰ困難として知られており、問題の大きさ（例えば、プロジェクト数）が直線的に増加するにつれて、この問題を解決するために必要な計算資源が指数関数的に増加することを意味する。そのため、従来の方法は、検討および考量対象のプロジェクト数がより少なければこの問題を適切に解決しうるが、検討対象であるプロジェクトがより多い（例えば、５０以上）と、この最適化問題は手に負えないものとなりうる。経営組織は、平均で概ね１５０以上のプロジェクトの検討に対処しうるため、効率的または最適な解決法を見出すことへの従来のアプローチでは、合理的な時間制限内で、満足な回答を提供することができないものでありうる。
【００１７】
本開示の態様は、計算機的に効率的な手法で、指定された時間および予算の制約を与えられた複数のプロジェクトに対する資源の割り当てについて提示される。いくつかの実施形態では、プロセッサは、プロジェクトの１つまたは複数の依存経路を決定するように構成されうるものであり、依存経路は、いくつかのプロジェクトが、他のプロジェクトが完了可能である前に完了されるという指定に基づく、完了されるプロジェクトの順序を示す。いくつかの実施形態では、多くのプロジェクトの集合において、該プロジェクトの集合はプロジェクトのクラスタに分割されうるものであって、クラスタ依存経路がクラスタごとに計算されてよく、他のプロジェクト（クラスタ内でないプロジェクトを含む）への依存性を示す。いくつかの実施形態では、プロジェクトの集合全体の中の複数の依存経路はクラスタ依存経路を明らかにすることによって決定されうるものであり、各クラスタ内の示される依存性に基づく。その後、これら複数の依存経路は、利益を最大化することまたは費用に対して比較される他の種類のある利益値（benefit value）を最大化することなどのある最適化目標に従って順位付けされうる。用語「最大化すること」は、すべての他の考えられる値と比較して最大の値が達成されるという意味で、完全な最大を達成することを指しうる。いくつかの実施形態では、用語「最大化すること」は、与えられる制約の集合およびそれらの制約を利用する規定された方法論の下で、すべての他の値よりもよい値が達成されるという意味で、相対的な最大を達成することを指しうる。最高位に順位付けされた依存経路内のプロジェクトは、指定された計画対象期間によって制約されうるプロジェクトのスケジュールにその後割り当てられうる。いくつかの実施形態では、プロジェクトのクラスタへの分割は、ランダムな選択に基づきうる。
【００１８】
概して、プロジェクトのクラスタへの分割は、並列計算を含みうるものであり、それによって本明細書に提示される最適化問題への効率的な解決法を決定するために要する時間の量が減少する。また、プロジェクトの集合全体をクラスタへ分割して、まずクラスタ依存経路を計算することは、コンピューティングプロセッサに、集合全体（例えば、１５０プロジェクト）ではなくプロジェクトのサブセットのみ（例えば、１５プロジェクト）を検討することを許可し、それにより全体的な集合全体に取り組む試行の際に要する、計算機的な資源における指数関数的な増加を回避する。さらに、プロジェクトの集合全体をクラスタへ分割することは、コンピューティングプロセッサに、互いに依存しないプロジェクト間の無関連な比較数を減らすことを許可し、それにより必要な計算機的な資源の量がさらに減少する。
【００１９】
図１を参照すると、いくつかの実施形態による、本開示の態様の実行に好適なネットワーク環境１００の一例を説明するネットワーク図が示される。例であるネットワーク環境１００は、サーバマシン１１０、データベース１１５、第１のクライアント１３２の第１のクライアント装置１３０および第２のクライアント１４２の第２のクライアント装置１４０を含み、ネットワーク１２０を介してすべてが互いに通信可能に結合される。サーバマシン１１０は、ネットワークベースシステム１０５（例えば、第１のクライアント装置１３０と第１および第２のクライアント装置１３０および１４０とに対して１つまたは複数のサービスを提供するように構成されたクラウドベースサーバシステム）のすべてまたは部分を形成しうる。サーバマシン１１０、第１のクライアント装置１３０および第２のクライアント装置１４０は、図１７に関して以下に説明されるように、それぞれ全体的にまたは部分的にコンピュータシステムで実施されうる。
【００２０】
図１にもまた、第１のクライアント１３２および第２のクライアント１４２を示す。１つまたは複数の第１および第２のクライアント１３２および１４２は、人であるユーザ、マシンユーザ（例えば、第１のクライアント装置１３０と相互に作用するソフトウェアプログラムによって構成されるコンピュータ）またはそれらの任意の好適な組合せ（例えば、マシンに補助される人または人に管理されるマシン）でありうる。第１のクライアント１３２は、第１のクライアント装置１３０と関連してよく、第１のクライアント装置１３０のユーザでありうる。例えば、第１のクライアント装置１３０は、第１のユーザ１３２に属する、デスクトップコンピュータ、車載コンピュータ、タブレットコンピュータ、ナビゲーション装置、携帯用媒体装置、スマートフォンまたはウェアラブル装置（例えば、スマートフォンウォッチまたはスマートグラス）でありうる。同様に、第２のクライアント１４２は、第２のクライアント装置１４０と関連しうる。
【００２１】
図１に示すマシン、データベース１１５、第１のクライアント装置１３０または第２のクライアント装置１４０のいずれかは、ソフトウェア（例えば、１つまたは複数のソフトウェアモジュール）によって専用コンピュータに変形された（例えば、構成されたまたはプログラムされた）汎用性コンピュータで実施され、そのマシン、データベース１１５または装置１３０および１４０に関して本明細書に記載される１つまたは複数の機能を実行する。例えば、本明細書に記載された任意の１つまたは複数の方法論を実施することができるコンピュータシステムが、図１７に関して以下で論じられる。本明細書で用いる場合、「データベース」は、データ記憶資源を指しうるものであり、テキストファイル、表、スプレッドシート、リレーショナルデータベース（例えば、オブジェクトリレーショナルデータベース）、トリプルストア（triple store）、階層データストア、その他の好適なデータ編成記憶手段またはそれらの任意の好適な組合せとして構造化されたデータを記憶しうる。さらに、図１に示す任意の２つまたは複数のマシン、データベースまたは装置は１つのマシンに結合されてよく、任意の１つのマシン、データベースまたは装置について本明細書に記載される機能は、複数のマシン、データベースまたは装置の中で細分されうる。
【００２２】
ネットワーク１２０は、マシン、データベース１１５および装置（例えば、サーバマシン１１０および第１のクライアント装置１３０）間で通信を可能にする任意のネットワークでありうる。従って、ネットワーク１２０は、有線ネットワーク、無線ネットワーク（例えば、モバイルまたはセルラーネットワーク）、またはそれらの任意の好適な組合せでありうる。ネットワーク１２０は、プライベートネットワーク、公衆ネットワーク（例えば、インターネット）またはそれらの任意の好適な組合せを構成する１つまたは複数の部分を含みうる。従って、ネットワーク１２０は、例えば、ローカルエリアネットワーク（ＬＡＮ）、広域通信網（ＷＡＮ）、インターネット、携帯電話ネットワーク（例えば、セルラーネットワーク）、有線電話ネットワーク（例えば、単純旧式電話システム（ＰＯＴＳ）ネットワーク）、無線データネットワーク（例えば、ＷｉＦｉネットワークまたはＷｉＭａｘネットワーク）、またはそれらの任意の好適な組合せを組み込む１つまたは複数の部分を含みうる。ネットワーク１２０の任意の１つまたは複数の部分は、伝送媒体を介して情報を伝達しうる。本明細書で用いる場合、「伝送媒体」は、マシンによる（例えば、そうしたマシンの１つまたは複数のプロセッサによる）実行のための指示を伝達すること（例えば、伝送すること）が可能である任意の実体のない（例えば、一時的な）媒体を指しうるものであり、デジタルまたはアナログの通信信号もしくは他の実体のない媒体を含み、そうしたソフトウェアの通信を容易にすることができる。
入力を受けるユーザインタフェースの例
【００２３】
図２を参照すると、図表２００は、いくつかの実施形態による、複数のプロジェクトへの資源の割り当てに関するシステムへの入力を受けるグラフィカルユーザインタフェースの表示の一例を示す。図表２００における例である表示は、例えばクライアント装置１３０または１４０である装置上で、例えばクライアント１３２または１４２であるユーザに対して提示されうる。いくつかの実施形態によれば、以下で図３および４において説明される入力を含む、例である表示において受ける入力は、その後、プロジェクトがどのように計画されるべきかを決定するために利用されうる例えばネットワークベースシステム１０５であるシステムによってアクセスされうる。
【００２４】
ここで、例である表示は、まず、ある最適化目標に基づいて、指定された時間枠にわたる様々なプロジェクトのスケジュール案を生成することをユーザに許可しうる。この場合では、最適化目標は、「ＥＶＭ−計画値（ＰＶ）（Planned Value）」として特定されており、これはプロジェクトの予測値（estimated value）を最大化するプロジェクトの集合を見出すことをユーザが望んでいることを示しうる。さらに、指定された時間枠は、ここでは「計画対象期間」表示ボックスに示され、指定された開始日から開始される１２ヶ月の時間にわたるプロジェクトのスケジュールを計画することをユーザが希望していることを示す。
【００２５】
図３を参照すると、図表３００は、いくつかの実施形態による、複数のプロジェクトへの資源の割り当てに関するシステムへの入力を受けるグラフィカルユーザインタフェースの表示の第２の例を示す。ここで、プロジェクトの一覧３０５によって示されるように、１２ヶ月のスケジュールに置かれていると考えられうる多数のプロジェクトがユーザに提示されうる。いくつかの実施形態では、プロジェクトオプション３１０に示されるように、ユーザはまた、各プロジェクトに対してある除外または他の変更を特定することが可能でありうる。例えば、いくつかの例として、ユーザは、あるプロジェクトを検討から除外するように特定して、結果としてそのプロジェクトをグレー表示とすることが可能である。他の場合では、ユーザは、どのプロジェクトが必須（required）であるべきか、または単に優先（preferred）であるべきかを特定することによって最適化問題に対してさらなる制約を加えることが可能である。さらに、ユーザはまた、スケジュール内で残されているのが限られた量の時間でありうる事象において、プロジェクトが分割可能であるどうかを特定することが可能であってよく、かつ、ユーザは部分的なプロジェクトを完了させるか否かを許可するように希望してもよい。いくつかの実施形態では、プロジェクトの一覧はまた、各プロジェクトを完了することによって得られる予測値３１５を含みうる。いくつかの実施形態では、プロジェクトの一覧はまた、例えば示されている指定のような、優先度または重要度の指定を含みうる。いくつかの実施形態では、プロジェクトは、図示しない関連するプロジェクト依存性を有してよく、前記プロジェクトが開始されうる前に完了されるように決定される１つまたは複数のプロジェクトを特定する。いくつかの実施形態では、プロジェクトの一覧３０５はまた、例えば完了への予測時間、完了への予測費用、必要な資源の種類等であるプロジェクトについての他の情報を含みうる。
【００２６】
図４を参照すると、図表４００は、いくつかの実施形態による、複数のプロジェクトへの資源の割り当てに関するシステムへの入力を受けるグラフィカルユーザインタフェースの表示の第３の例を示す。ここで、ユーザに、様々なプロジェクトに資源を割く場合にどの種類の資源が検討されるべきかを特定するためのオプションが提示されうる。いくつかの実施形態では、指定された計画対象期間においてどんなプロジェクトを完了するべきかを検討する場合に、複数のプロジェクトでの使用に利用可能な資源は、制約として考慮されうる。上記のように、資源は、あるタスクの集合の完了に有用な技能についてのある集合を所有する業務の専門家の一種として規定されうる。これらの資源の種類の例としては、コンピュータプログラマ、ビジネスアナリスト、管理補佐、市場調査員、プロジェクトマネージャ等を含みうる。他の場合では、資源はまた、例えばコンピュータの数、印刷材料、建設材料、倉庫スペース等の量である実体のある資産を含むことが可能である。
【００２７】
いくつかの実施形態では、ユーザは、資源フィルタ４０５を介するなどして、指定された計画対象期間に従い、プロジェクトに対して費やすためにどんな資源が検討されうるかでフィルタリングすることが可能でありうる。ここで、初期設定では、検討対象であるすべての現在の資源となっており、それは例えば有給職員、在庫品、利用可能な倉庫およびオフィスのスペース等である企業のデータベース内において知られているすべての資源を意味しうる。資源のそれぞれの有用性は、予め特定され、システムに入れられうる。資源フィルタ４０５は、いくつかの例として、例えばスケジュールによる資源の制限、経験のレベル、経験の種類または既知の業者または販売店を含むように一覧を拡大することなどである他のオプションを含みうる。
【００２８】
いくつかの実施形態では、ユーザはまた、例えばオプション４１０であるさらなる制約を特定することが可能でありうる。ここで、ユーザはまた、指定された計画対象期間内でプロジェクトを完了するための既知の制約に基づいて、検討されうる資源の量をさらに制限するような任意のさらなる財務的な制約を加えることが可能でありうる。いくつかの実施形態では、さらなる制約は、当業者にとって明らかでありうるものが検討されることが可能であり、実施形態はそれに限定されない。
【００２９】
いくつかの実施形態では、例えばネットワークベースシステム１０５である本開示の態様によるシステムは、例えば図２から図４において説明されるように、ユーザにより与えられて各プロジェクトと関連するすべての情報にアクセスしうるものであり、例えば費用に対して比較される利益または他の種類のある利益値を最大化することである最適化目標を最大化しつつ、与えられた予算的な支出内で資源を効率的に利用するものである、指定された計画対象期間にわたるプロジェクトのスケジュールを決定しうる。このスケジュールを決定するための技術の例は、図１１から図１３に関して以下に説明される。
出力の例
【００３０】
いくつかの実施形態では、最適化目標を最大化し、かつ、指定された予算の制約内で利用可能な資源を考慮に入れるプロジェクトのスケジュール案を決定した後で、例えばネットワークベースシステム１０５である本開示の態様によるシステムは、ユーザに対してこれらの結果を反映する様々な出力を与えうる。
【００３１】
図５を参照すると、図表５００は、いくつかの実施形態による、最適化目標を最大化するいくつかのプロジェクトを列挙する全体的なスケジュールについての表示の一例を示す。図表５００における例である表示は、一種のエグゼクティブサマリーを表しうるものであり、計画対象期間内の包含プロジェクトの予測値を強調している。さらなる情報には、いくつかの例として、プロジェクトを完了するための予測費用、プロジェクト数、現在スケジュールに含まれるプロジェクトの完了により企業内のいくつの部署または部門が応対されるか、または利益を得るか、利用可能な資源の種類についての任意の残容量、利用可能な資源の割合としての対応する資源の利用およびスケジュール案に含まれるプロジェクトの種類の内訳が含まれうる。いくつかの実施形態では、除外プロジェクトの一覧またはサマリーもまた、検討または表示可能である。いくつかの実施形態では、システムは、さらなる入力を考慮し、様々な変更を通してスケジュールに適合するように除外プロジェクトを検討しうるものであり、その例が以下でさらに説明される。
【００３２】
図６を参照すると、図表６００は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての追加属性を説明する表示の第２の例を示す。この場合、例である表示は、プロジェクトについての様々な属性の図示を提供しうる。例えば、円６１０は、スケジュール案に含まれる異なるプロジェクトのそれぞれを表し、それらの大きさは、例えばプロジェクトの完了により得られる予測値であるプロジェクトについての属性を示しうる。円６１０は、例えばそのプロジェクトが属するカテゴリまたは部門などである、共通のテーマによってまとめられうる。さらに、いくつかの実施形態では、様々な資源により満足される、例えば計画された開始日および終了日、プロジェクト完了により得られる予測値、総費用およびプロジェクト完了のために必要となりうるロールの種類などであるプロジェクトについての様々な属性を説明する、例えば図表６２０であるより詳細な表が各プロジェクトについて提供されうる。本明細書の記載と一致し、各プロジェクトに関連して当業者に明らかである他の種類の情報がまた含まれうるものであり、実施形態はそれに限定されない。
【００３３】
図７を参照すると、図表７００は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての他の属性を説明する表示の第３の例を示す。ここで、プロジェクトの一覧７０５は、リストの形で表示されうる。様々な他の情報には、例えば、各プロジェクトの推奨状態７１０（例えば、「包含」、「除外」など）、各プロジェクトの予測値、予定開始日および終了日７１５、予測費用、各プロジェクトが属する指定のチーム、各プロジェクトの優先度または重要度である指定のレベル等が含まれうる。
【００３４】
いくつかの実施形態では、一覧内のあるプロジェクトが選択されると、プロジェクトについてのより詳細な説明が第２の表示７２０に表示されうる。例えば、ここでは、プロジェクトの完了に必要なロールの一覧が列挙されている。この場合、特定の技能を備える様々な人物として列挙される様々な資源が、プロジェクトに割り当てられ、各資源に対する様々な予測容量を含む。これらの内訳は、ユーザが、どんな資源およびどんな費用が各プロジェクトと関連しているかをより明確に見ることができるようにしうる。いくつかの実施形態では、ユーザはまた、これらの表示に基づいて、いくつかの提案されたプロジェクト、資源、日付等を変更することが許可されうる。
【００３５】
図８を参照すると、図表８００は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての他の属性を説明する表示の第４の例を示す。この場合、プロジェクトの一覧７０５は、プロジェクトがどれだけ続きうるのかについての予測される時間の流れを一連の線で視覚的に示す、予定表８０５に表示されうるものである。この図を通して、システムはどのプロジェクトが同時に稼動中または行われているかをより明確に示しうる。さらに、ここには示していないが、この予定表の図はまた、他のプロジェクトの終了後にちょうど発生する開始の予定時間に基づいて、どのプロジェクトが他のプロジェクトに依存しうるかを示しうる。
【００３６】
いくつかの実施形態では、例であるこの表示はまた、例えば各月である指定された期間での資源の利用についての棒グラフ８１０を示しうる。ここでは、例えば、ビジネスアナリスト、一般資源、業者および資源管理者についての資源の利用率を棒グラフ８１０に特定している。利用されている資源の種類に基づいて、他の資源の種類が表示されうるものであり、実施形態はそれに限定されない。
【００３７】
図９を参照すると、図表９００は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての他の属性を説明する表示の第５の例を示す。この場合、指定された時間枠にわたるロール９０５の利用が、一種のヒートマップ９１０で説明されうる。ロールは、同じ技能を備える資源の集団として規定されうる。一例として、所与の各日においてロールがどれだけ利用されているかに関する指定に加えて、指定された計画対象期間の各月が視覚的に表示されうるものである。この場合、指定は、異なる色により示されうるものであり、百分率利用のスケール９１５に対応する。このように、ユーザは、ある資源について利用状態である、または利用下にある場所を確認することが可能でありうる。そして、さらなるプロジェクトまたは他のタスクを、資源が利用下である時間の間に検討してもよく、またはさらなる資源を、資源が利用状態である特定の時間において費やしてもよい。他の例として、様々な資源は、休暇をとることが可能でありうるときをわかっていてもよく、またはより自由な時間があると期待されるときをわかっていてもよい。
【００３８】
図１０を参照すると、図表１０００は、いくつかの実施形態による、スケジュール案に含まれるプロジェクトについての他の属性を説明する表示の第６の例を示す。例であるこの表示において、システムは、様々な種々の統計１００５に加えて、スケジュール案に包含および除外される様々なプロジェクトの全体的な一覧を提供しうる。例であるこれらの統計１００５は、ユーザから受けたシステムへの入力に基づきうる、または他の場合では、すでにシステムに属する、プロジェクトへの予めの指定に基づきうる。例えば、プロジェクト一覧７０５内の各プロジェクトは、そのプロジェクトは包含されなければならない、すなわち「必須」であるということが特定されているプロジェクトかどうか、そのプロジェクトは包含されることが望ましい（preferred）ということが特定されているプロジェクトかどうか、そのプロジェクトは予め指定された開始時間から移動させることが可能であるかどうか、およびそのプロジェクトは分割時間で行わせるために分割させることが可能でありうるかどうかといったプロジェクトの種類を含みうる。表示に適切である、およびプロジェクトまたはスケジュール案に適切である他の種類の情報が、当業者には明らかでありうるものであり、本明細書においてまた検討されうるものであり、実施形態はそれに限定されない。
最適化アルゴリズムの例
【００３９】
以下は、いくつかの実施形態による、指定された計画対象期間内に完了されるプロジェクトの選択が、本開示の態様においてどのように決定されうるかに関する説明の例であり、様々な資源および予算の制約が与えられているプロジェクトにどのような資源が割り当てられうるかを含む。
【００４０】
図１１を参照すると、フローチャート１１００は、いくつかの実施形態による、指定された計画対象期間内で完了されるプロジェクトのスケジュールを生成するための方法論の一例を説明する。例である方法論は、例えば、ネットワークベースシステム１０５である本開示の態様のシステムまたはサーバによって実行されうる。いくつかの実施形態では、ネットワークベースシステム１０５は、クライアント装置１３０を介して例えばクライアント１３２などであるユーザから受けるいくつかの入力にアクセスしうる。いくつかの場合では、入力のいくつかはまた、例えばデータベース１１５などである、１つまたは複数のプロジェクトについての様々な属性を記述するように予めプログラムされて用いられたデータベースからもたらされうる。
【００４１】
いくつかの実施形態では、例である方法論は、まず、スケジュール案を生成するために用いられることとなる別個の変数のすべてにアクセスすることによって始まりうる。例えば、ブロック１１０２において、システムはスケジュール案に含むことを検討中の複数のプロジェクトにアクセスしうる。先に述べたように、プロジェクトは企業の特定の目的を有する予定されたひとまとまりの仕事として規定されうるものであり、企業に関するある値を生じうる。プロジェクトの種類の例は、例えば図３から図１０である先の図面に説明される。さらに、ブロック１１０４において、システムは、スケジュール案がどれぐらいの長さを占めているかに関する時間範囲を定める計画対象期間にアクセスしうる。例えば、先の図面の説明では、例である計画対象期間は１２ヶ月の期間にわたるものとして定められた。いくつかの実施形態では、計画対象期間はまた、必ずしも現代とは限らなくともよい開始日を含む。
【００４２】
ブロック１１０６において、システムは、生成されるスケジュールにおいて様々なプロジェクトに割り当てるために検討される複数の資源にアクセスしうる。先に述べたように、資源は、資格をもつタスクの集合を実行することが可能である有資格の専門家の存在として規定されうる。他の場合では、資源は、コンピュータ、印刷機、科学的機械、建設機械等である他の実体のあるツールおよびマシンを含むことが可能である。資源の種類の例は、例えば図４から図１０である先の図面に説明される。いくつかの場合では、資源は、プロジェクト上で動くためにどの資源が有用でありうるかをより説明しうるような属性技能を有しうる。同様に、各プロジェクトは、プロジェクトを完了するために適する必要とされる定まった技能を有しうる。
【００４３】
ブロック１１０８において、いくつかの実施形態では、システムは、複数の予算支出にアクセスしうるものであり、各予算支出は特定の資源に関連し、各予算支出は、各資源を複数のプロジェクトにわたって用いることが可能である最大利用可能容量を示す。予算支出の例は、例えば１日あたり８時間または１週あたり４０時間などのような、日毎または週毎の従業員の時間ごとの最大容量を含みうる。予算支出の他の例は、例えば１日あたり１５時間または１週あたり１００時間などのような、研究所の使用に関する時間ごとの最大容量を含みうる。予算支出の他の例は、業者利用の予算である＄２０，０００またはブルドーザーを借りるための＄５０００であるような財務予算を含みうる。いくつかの実施形態では、他の場合では少なくともいくつかの予算支出がユーザによって特定され、かつ、ユーザインタフェースを介してシステムにおいて受けられうる一方で、各資源に関連する予算支出は、データベース１１５にすでに予め指定され、かつ、記憶されうる。
【００４４】
ブロック１１１０において、システムはまた、複数の費用の制約にアクセスしうるものであり、各費用の制約はあるプロジェクトに関連し、前記プロジェクトの完了に関連する予測財務費用を示す。いくつかの実施形態では、費用の制約はプロジェクトの完了に必要とされると見積もられるすべての資源の予測合計値に基づきうる。これらの関連する費用の例は、例えば図５から図１０のように、先の図面に説明されうる。
【００４５】
ブロック１１１２において、システムはまた、複数の利益値にアクセスしうるものであり、各利益値はあるプロジェクトに関連し、前記プロジェクトの完了に関連して得られる予測値を示す。利益値の例は、財務通貨で表される財務収益、もしくは順位付けられたスコア、生産性の増加、増加したエネルギーの節約、純現在価値（ＮＰＶ）、プロジェクト完了により得られる評価または企業によって用いられる他の数値などの他の種類の値を含み、当業者に明らかでありうる。これらの関連する値の例は、例えば図３および図５から図１０のＥＶＭ値のように、先の図面で説明されうる。
【００４６】
ブロック１１１４において、システムはまた、各プロジェクトに関連する複数のプロジェクト依存性にアクセスしうるものであり、プロジェクト依存性の値は、他のプロジェクトの完了の要件としてブロック１１０２でアクセスしたどのプロジェクトを完了させなければならないかを示す。いくつかの実施形態では、これらのプロジェクト依存値は、従属の上三角行列Ｕの正方の次元ｉで表現または表されうるものであり、ｉはアクセスしたプロジェクト数に等しく、プロジェクトｉがプロジェクトｊの要件であればＵij＝１となり、そうでなければＵij＝０である。いくつかの実施形態では、プロジェクト依存性は、各プロジェクトとともに列挙されうるものであり、システムは、いくつかの場合では、こうした上三角行列Ｕで表現され、各プロジェクトに関して列挙した依存性に基づいて、プロジェクト依存値を生成するように構成されてよい。他の場合では、上三角行列Ｕは例えばデータベース１１５などにすでに格納されうる。いくつかの実施形態では、いくつかのプロジェクトは、それらに結びつけられる関連する依存性を何も有しない場合がありうる。これらの「独立する（independent）」プロジェクトのいくつかはまた、プロジェクトに求められる開始時間または終了時間を何も有しない場合があり、予め完了されている必要があるような要件であるプロジェクトが何もなく、いつでもそれらを実行することが可能であることを意味する（すなわち、それらは「移動可能（shiftable）」である）。これらの「独立する」かつ「移動可能」なプロジェクトは、本明細書において「フロート（floater）」プロジェクトと称されうる。
【００４７】
ブロック１１１６において、システムは、１つまたは複数の依存経路を決定しうるものであり、プロジェクト依存値に基づいて、指定された順序で完了される一連のプロジェクトまたは一続きのプロジェクトを示す。つまり、依存経路内のあるプロジェクトは、依存経路上で先行するプロジェクトが完了するまで開始できない。概して、プロジェクトは、前記プロジェクトがいつ開始できるかに関連するある時間的制約を含むのであれば、依存経路内にありうる。例えば、指定された開始時間または終了時間を有するが、それが従属するような文字通りのプロジェクトを有さないプロジェクトが、依存経路内にいまだありうる場合、このプロジェクトは長さ１の依存経路内にある。いくつかの実施形態では、複数の依存経路が決定されうる。いくつかの場合では、いくつかの依存経路は、共通して１つまたは複数のプロジェクトを有することとなり、複数のプロジェクトが開始可能となる前に予め要求されうるあるプロジェクトを完了することを意味している。いくつかの実施形態では、ブロック１１１６において、システムはまた、どのプロジェクトがフロートでありうるか、すなわち、どのプロジェクトは依存性がないかを決定しうる。つまり、他のプロジェクトが、依存性はないが確かに要求される開始日または終了日を有しうる一方で、いくつかのプロジェクトは、依存性を有さずそれらに置かれる時間の制約を有さなくてもよい。いくつかの実施形態において、このブロックでの依存経路の決定に関するさらなる詳細を、図１２Ａから図１２Ｃで以下に説明する。
【００４８】
ブロック１１１８において、システムは様々なプロジェクトをスケジュール案に割り当てうる。スケジュール案における時間の長さは、システムによってアクセスされた計画対象期間に合わせられうる。提案されるスケジュールの開始日は、ユーザによって特定された開始日に基づきうるか、または他の場合では、スケジュール案が生成された日から数日とされる初期設定の開始日に基づきうる。
【００４９】
システムは、他のプロジェクトと比較して最適化目標をより満足するプロジェクトを決定することに基づいて様々なプロジェクトを割り当てうる。いくつかの実施形態では、プロジェクトはまず、どれほど良好にプロジェクトが最適化目標を満足するかに基づいて、順位付けまたは配列されうる。しかしながら、他のプロジェクトの完了に依存しているプロジェクトがある、すなわちプロジェクトが依存経路に沿うのであれば、その後これらのプロジェクトを分離するまたはそれだけにすることを検討することは意味をなさないだろう。従って、いくつかの実施形態では、システムは、依存経路内のプロジェクトの合計値に基づいて依存経路の値を順位付けしうる。いくつかの実施形態において、最適化目標を最良に満足するためにプロジェクトを割り当てることのさらなる詳細が、図１３で以下に説明される。
【００５０】
いくつかの実施形態では、ブロック１１２０において、ブロック１１１８で割り当てられるプロジェクトに基づくスケジュール案を、任意の除外されたプロジェクトおよびそれらがもたらしうる値を解析することにより変更しうる。システムはまた、ユーザに対して、スケジュール案を変更することでより多くの値を見出す方法を検討するにあたって、あるフレキシビリティを許可するために、解析対象の除外プロジェクトを考慮しうる。いくつかの実施形態では、除外プロジェクトは、スケジュール案が基づく１つまたは複数の制約を増やすまたは緩和することによって検討されうる。例えば、システムは、１つまたは複数のプロジェクトが他のプロジェクトの完了に依存しうるものでないように、１つまたは複数の予算変数を増加させること、１つまたは複数の資源変数を増加させること、計画対象期間を拡大すること、および／または１つまたは複数の依存値を変更することを許可しうる。システムは、通常ユーザにより入力されるこれらの変更のいずれも受けるように構成されうるものであり、いくつかの場合では、本開示の最適化アルゴリズムが再実行されてこれらの変更が有しうる効果を確認しうる。例えば、予算不足、資源不足、予定表の不足、依存性不足等が原因でプロジェクトが除外されたということが決定されうる。これらの原因は、以前に除外されたプロジェクトを、修正されたスケジュール内に今は含まれることをその後許可しうるようなこれらの制約のうちのひとつの緩和を介して決定されうる。いくつかの実施形態では、システムはまた、時間移動の制約を緩和することを許可しうるものであり、それによって、システムに対して、プロジェクトがその要求される開始時間間隔に適合することができないことを理由に、プロジェクトが除外されていてもよいということが決定されることを許可する。いくつかの実施形態では、この除外の解析は、複数の制約に対して、および／または除外されている複数のプロジェクトの原因を解析するために実行されうる。
【００５１】
いくつかの実施形態では、ブロック１１２２において、システムは、解析された除外に基づいて、修正されるスケジュールに提案され、かつ、包含される１つまたは複数の変更を考慮しうる。いくつかの実施形態では、解析された除外に基づいて、システムは、その後ユーザが選んで選択することが可能でありうる変更に関して１つまたは複数の提案を出すように構成されうる。例えば、システムは、解析された除外に基づいて、以下に示す１つまたは複数の提案を出すように構成されうる。
【００５２】
・プロジェクトに１つ余分なロールを加えることが、結果として、割り当てられている１つまたは複数のプロジェクトとなりうる。
【００５３】
・予算を１０％増加すると、プロジェクトのある群が割り当てられることが可能となりうる。
【００５４】
・特定の時間間隔内で１つのロールの容量を増加すると、あるプロジェクトを割り当てることが可能となりうる。
【００５５】
・予算を増加すると、結果として、新しい費用の調整に関する値において大きな増加性の利得となりうる。
【００５６】
プロジェクトの値に対して小さい不足をカバーすると、結果として、全体的なスケジュールの値がよりよくなりうる。例えば、休暇中の、プロジェクトに欠かせない従業員は、いくつかの計画化（formulation）の下で適切に割り当てられなかったプロジェクトにより、プロジェクトに対して最初はスケジュールに含めないようにさせうる。しかしながら、プロジェクトを完了することの価値が、例えば、従業員が休暇から戻るときである、計画対象期間内の異なる時間のそのときに、いかなる潜在的な作業の遅れまたは他の費用にもかかわらずプロジェクトを続けることが依然として価値をもたらす場合には、スケジュールにそのプロジェクトを含むことは依然として価値がありうる。
【００５７】
システムは、その後スケジュール案に対する変更として組み込まれるこれらの提案のうちの１つまたは複数を受け入れるように構成されうる。
【００５８】
ブロック１１２４において、システムはその後、ブロック１１１８でスケジュール案に割り当てられた順位付けされたプロジェクトのいずれにでも基づき、またはブロック１１２０および１１２２において実行される解析に基づく任意の組み込まれた変更をも含むスケジュールを生成するように構成されうる。いくつかの実施形態では、このスケジュールは、例えば図５から図１０に説明される例のいずれかを介する、様々な異なる形式で表示されうる。生成されたスケジュールはまた、例えば図５から図１０に説明される例のいずれかである、スケジュールに関する様々な統計および数値を説明するように表示可能である追加の情報を含みうる。
【００５９】
図１２Ａを参照すると、フローチャート１２００は、いくつかの実施形態による、図１１のブロック１１１６における依存経路を決定するための方法論の一例を提供する。ブロック１２０２で開始されると、システムは、例えば上三角行列における値であるプロジェクト依存値を、１つまたは複数の有向非巡回グラフ（ＤＡＧ）に変換しうる。ＤＡＧは、頂点と有向の辺との集まりとして規定されうるものであり、各辺は１つの頂点とその他を連結し、ある頂点ｖから開始して、最終的に折り返して再びｖに戻る一連の辺に続く道がないようにする。この場合、各頂点はプロジェクトを表現し、第１のプロジェクトからの各有向辺は、第２のプロジェクトのプロジェクト依存値が第１のプロジェクトに依存しているかどうかに基づいて、第２のプロジェクトを指すものを表現する。単純に以降のプロジェクト依存値に基づいて、複数のＤＡＧが生成され、複数のプロジェクトをともに連結する有向辺を作成しうる。
【００６０】
あるいは、いくつかの実施形態では、１つまたは複数のＤＡＧ以外の他の種類の関係が生成されうる。通常、プロジェクト依存値に基づき、当業者に明らかである複数のプロジェクトのそれぞれの依存関係を規定する１つまたは複数のデータ構造が生成されうるものであり、本実施形態はそれに限定されない。
【００６１】
いくつかの実施形態では、ブロック１２０４で、システムはプロジェクトの集合を複数のクラスタに分割しうる。各クラスタは、総プロジェクト数のうちのプロジェクトのサブセットを含みうる。例えば、スケジュール内に配置が検討されるプロジェクトの集合全体が１５０プロジェクトであれば、システムは、プロジェクトの集合をそれぞれ１５プロジェクトとする１０クラスタに分割しうる。いくつかの実施形態では、クラスタへのプロジェクトの選択は、ランダム化された処理である。各プロジェクトがそれに関連してどの程度の依存性を有するかは、経験的にわからないため、各クラスタがどの程度の依存性を有するかという観点から、ランダムにプロジェクトをクラスタに分割することが、概して、結果的に最も可能性のある均一なプロジェクトの分散をもたらすこととなる。他の場合では、プロジェクトは、例えばアルファベット順でのプロジェクトの整列、予測値や要求されるロールの種類に基づくストリーム、プロジェクト等に基づいてプロジェクトを均一に分散することである、他の処理を通してクラスタに細分されうる。いくつかの実施形態では、システムはまた、各クラスタに含まれる最適なプロジェクト数を決定しうる。最適なプロジェクト数は、統計的分析に基づいてよく、各クラスタの大きさが変わるときに、平均計算時間および資源（例えば、メモリ）の平均量が測定される。例えば、クラスタの大きさを４９または５１プロジェクトに設定することで、概して、結果的に計算時間は長く、使用される資源は多くなるという意味では、最適なクラスタの大きさは５０プロジェクトであると予め決定されていてもよい。いくつかの実施形態では、システムは、プロジェクトの集合をクラスタへ分割することの一部として最適なクラスタの大きさを決定するために、この統計的解析を実行するように構成されうる。
【００６２】
いくつかの実施形態では、ブロック１２０６において、システムは、各クラスタについて、あるクラスタ内のプロジェクトの依存経路を決定しうる。各クラスタ内のこれらの小さな依存経路の集合は、本明細書においてクラスタの依存経路と称されうる。つまり、同一クラスタ内のプロジェクトにわたってのみ、依存経路が形成されうる。いくつかの実施形態では、これらのクラスタ依存経路は、そのあるクラスタに対して生成された依存性のＤＡＧの深さ優先探索を実行することによって生成されうる。これは、存在する時間では不十分となる依存経路を導く可能性があるが、クラスタ依存経路を生成することで、システムに対してすべてのプロジェクトおよびすべての依存性を一度に検討する必要がないようにさせる。これは、プロジェクトの集合全体をこれらのクラスタのサブセットに分割することによって、システムに対して大量のプロジェクトをより効率的に扱うことを許可しうる。さらに、いくつかの実施形態では、クラスタの経路依存性を決定する処理は、複数の並行するプロセッサにわたって並列化されうるものであり、計算スピードがさらに上がる。
【００６３】
いくつかの実施形態では、ブロック１２０８において、システムは、その後完成依存経路を形成するために、他のクラスタからのクラスタ依存経路をともに併合（merge）しうる。つまり、システムは、その後、まだ連結していないあらゆる依存性に関して、他のクラスタ依存経路の不完全な辺を調べることによってクラスタ依存経路の不完全な辺を連結しうる。複数のクラスタ依存経路は、すでに各クラスタ内でいくつかの連結を作っているため、調べられる必要がある不完全な辺の数が劇的に減少しうるものであり、それによって計算時間が有意に減少する。例えば、プロジェクトの集合全体をクラスタに分割せずに、プロセッサに対して、連結された依存性を決定するためにすべてのプロジェクトを一度に検討させてもよい。対照的に、クラスタ依存経路を一緒に併合することは、その後システムが、クラスタ依存経路の不完全な辺のみを検討することを必要とすることを許可し、それによって、いずれかがすでに連結されているか、または依存性を何も有さないような多くの無関連のプロジェクトを検討することが省かれる。プロジェクトの依存性を調べることを必要とすることからプロジェクトを自然に省くというこの概念を、本明細書においてはプルーニングすること（pruning）と称しうる。
【００６４】
いくつかの実施形態では、ブロック１２１０において、生成された完成依存経路をここで有しているため、依存経路を、予め決定された価値基準に基づいて順位付けまたは整列しうる。例えば、価値基準は、指定された最適化目標のために各依存経路がどの程度の価値を寄与するかを含みうる。例えば、最適化目標が利益を最大化することであれば、その後完成依存経路は、各依存経路の完了がもたらしうる予測収益がどの程度かによって順位付けされうる。通常、価値基準をより満足する依存経路は、そうでない依存経路よりも高い「密度」を有するといわれうる。つまり、依存経路の「密度」は、依存経路の全体的な収益（return）の量の定量的な表現でありうる。いくつかの実施形態では、依存経路の「密度」は、依存経路内でプロジェクトによって得られるある利益に対するプロジェクトの完了に関連する費用の比率を含む一方で、他の場合では、依存経路の「密度」は、利益および費用の間の差を含む。
【００６５】
いくつかの実施形態では、ブロック１２１２において、システムは、残りの未決定の依存性をどれでも決定しうる。例えば、依存性が何もないプロジェクトおよび他のフロートプロジェクトはまた、依然として順位付けされる必要がありうる。いくつかの実施形態では、依存性が何もないプロジェクトおよび他のフロートプロジェクトは、独立した順位において順位付けされうる。いくつかの実施形態では、依存経路および依存性のない任意のプロジェクトまたは他のフロートの順位のマスターリストが、本開示の態様による最適化アルゴリズムの後の段階での使用のために記憶されうる。
【００６６】
図１２Ｂを参照すると、図表１２５０は有向非巡回グラフのいくつかの例である図示を提供する。ここで、各頂点はプロジェクトの集合全体の中の１つのプロジェクトを表現する。有向辺は、他の頂点を指す矢印によって表現される。それゆえ、様々な経路が、図表１２５０に示される経路の記述と一致するこれらの２つの例のＤＡＧの経路において示され、セミコロンによって分けられている。
【００６７】
図１２Ｃを参照すると、フローチャート１２７０は完成依存経路を生成するための例を提供し、フローチャート１２００における記述と一致する。示すように、プロジェクトの集合は、複数の部分にランダムに分割されうるものであって、それらの依存値に基づいて、各部分におけるプロジェクトを連結する深さ優先探索が実行される。そして、これらの部分的連結のそれぞれは、他のランダムな部分からの他の部分的連結とともに併合されうるものであり、それによって１つまたは複数の完成依存経路を生成する。例えば、依存性がないプロジェクトと他のフロートとを解析および処理するなどのように、未決定の依存性が関連付けられうる。
【００６８】
図１３を参照すると、フローチャート１３００は、いくつかの実施形態による、図１１のブロック１１１８においてプロジェクトを割り当てることを決定するための方法論の一例を提供する。指定された計画対象期間に適合するようにプロジェクトを割り当てるための処理に、入力として、生成された依存経路が含まれることを想起されたい。いくつかの場合では、この処理は、入力として、順位付けられた順序で依存経路およびフロートを含む。いくつかの実施形態では、ブロック１３０２において、システムは依存経路およびフロートを別個の指定で分類しうるものであり、各指定は、生成されるスケジュールに含まれる依存経路内（またはフロートとして独立する）のプロジェクトの重要度を特定する。例えば、いくつかの実施形態では、依存経路およびフロートは、必須、優先および選択的の３つの別個の集合のうちのひとつに分類されうる。例えば、プロジェクトのうち１つでも、図３のプロジェクト一覧３０５内の特別な指定のいずれかが与えられた場合、これらの指定は、プロジェクトに関する予め規定された属性に基づきうる。いくつかの実施形態では、様々な指定を有する複数のプロジェクトを伴う依存経路について、システムは、その依存経路内の任意のプロジェクトに与えられた最高位または最重要な指定に基づいて、全体の依存経路を指定するように構成されうる。例えば、１０プロジェクトの依存経路において、１つでもプロジェクトが「必須」に指定されていれば、その後全体の依存経路は必須として指定されうる。最高の重要度の指定に分類されたプロジェクトは、より低い重要度に指定されている他のプロジェクトよりも先にスケジュールに割り当てられることとなる。例えば、「必須」として指定されている依存経路のプロジェクトおよびフロートは、「優先」カテゴリに指定されるどのプロジェクトよりも前にスケジュールに割り当てられることとなる。
【００６９】
ブロック１３０４において、いくつかの実施形態では、システムは、依存経路およびフロートにわたり、資源を割り当てることを繰り返す。いくつかの実施形態では、システムはまず、最重要かつ最高値の依存経路およびフロートに資源を割り当てうるものであり、徐々に低い重要性かつ低い価値の依存経路およびフロートまで順に続ける。この処理は、プロジェクトに求められる規定のロールに基づいて、すべての利用可能な資源が割り当てられるまで継続しうるものであり、いくつかの場合では、最低優先度かつ最低値の依存経路およびフロートには、どの資源も割り当てないようにしうる。いくつかの実施形態では、フロートプロジェクトは、フロートが依存経路内の複数のプロジェクトの累積的な密度の合計よりも大きい密度を有する場合、依存経路内のプロジェクトよりも資源を与えられうる。いくつかの実施形態では、様々な依存経路およびフロートへの資源の割り当てはまた、例えば資源に関連する任意の予算支出およびプロジェクトに関連する任意の予算などである他の様々な制約を考慮しうる。例えば、プロジェクトは関連予算を有しうるために、確かな高い価値または高価である資源をそのプロジェクトに費やすことができないということが決定されうる。代わりに、同じ機能を実行することが可能であるより安価な資源がプロジェクトに費やされうる。
【００７０】
いくつかの実施形態では、ブロック１３０６において、システムはその後、要求に合うそれらの資源のすべてを有する依存経路をスケジュールに適合しうる。例えば、依存経路内のプロジェクトの累積密度の合計よりも大きい、高密度値を伴うフロートはどれでも、より低い累積密度を備える依存経路よりも前にスケジュールに配置されることもありうる。いくつかの実施形態では、計画対象期間が、全体の依存経路を完了する全体的な予測時間よりも短い場合に、システムはまた、一続きの依存プロジェクト内の、最新のプロジェクトの依存経路を切り詰めることを検討しうる。こうして、切り詰めたバージョンの依存経路がスケジュールに適合されうる。いくつかの実施形態では、まだ割り当てられていない残りのフロートをどれでも、時間および資源が許せば、スケジュールに適合しうる。
【００７１】
いくつかの実施形態では、システムはまた、優先順位付けのセットに基づいて、プロジェクト内のロールに資源を割り当てうる。この優先順位付けのセットは、いくつかの資源が他よりも希少でありうる、かつ、あるプロジェクト内のいくつかのロールが他よりも価値がありうるという推論をもちいて、システムに対してより効率的に資源を割り当てることを許可しうる。以下は、いくつかの実施形態による、システムがロールへの資源の割り当てを導くように組み込みうる優先順位付けのいくつかの例である。
ロールの優先順位付け
【００７２】
１．希少のロールは、より希少でないロールよりも先にマッチングされる。
【００７３】
２．その「コンター（contours）」が最長の非ゼロの需要の連鎖（sequence）を有するロールは、より短いそうしたコンターをもつロールよりも早くマッチングされる。いくつかの実施形態では、依存経路が生成された後で、プロジェクト内のロールは、それに費やされる、例えて言えば、高優先度である、高リスクであるまたは高価値を有するプロジェクトのために、より多くの資源を有することを許可されうるものであり。システムは、そのプロジェクトに対して、依存経路内の近くのプロジェクトからさらなる資源を引き込むことを許可しうるものであり、それによって、他のプロジェクトに対する資源割り当てを減少するが、より費やされるプロジェクトの完了を時間的に保証するように助ける。一続きのプロジェクト内のあるロールにおけるこの過剰補償の処理は、「コンター」、つまり、過剰補償される１つまたは複数のロールを有する一続きのプロジェクトを形成する。
【００７４】
３．プロジェクトにおける現在の時間間隔に関して、時間的により大きな拘束を伴うロールは、より小さな拘束を伴うロールよりも早くマッチングされる。
資源の優先順位付け
【００７５】
１．優先の資源は、非優先の資源よりも早く選択される。いくつかの実施形態では、資源がそのように指定されれば、資源は優先でありうる。他の場合では、数量、時間または予算において少ない資源は、それらの数値がより多量の資源よりも先に優先として検討されうる。
【００７６】
２．「スティッキー」な資源は、他よりも早く割り当てられ、「スティッキー」とは、検討中のものよりも先の時間間隔に割り振られた資源であることを意味する。
【００７７】
３．非フレキシブルな資源は、フレキシブルな資源よりも早く割り当てられる。非フレキシブル性は、予め指定された時間または位置の制約に基づきうる。
【００７８】
４．該ロール需要に相対する最小の相対誤差を有する資源（「ベストマッチ」判定基準）
【００７９】
５．他の事柄がすべて等しければ、該ロール需要に関して最長の利用可能な期間を伴う資源を選択する。
【００８０】
いくつかの実施形態では、システムはまた、１つまたは複数の以下のガイドラインに従ってプロジェクトを割り当てることができうる。
【００８１】
１．ロール需要が利用可能な資源容量を超えたとしても、強制的に割り当てられるという意味で、必須のプロジェクトを「過剰割り当て」することができる。この場合、結果的に利用可能な資源容量の最大の利用となるという最良の配置方針が活用されうる。
【００８２】
２．閾値を条件として、部分的割り当てが支援されうる。分割可能で、かつ、移動不可のプロジェクトは閾値処理を受けない。
【００８３】
３．持続期間が１以上（＞１）の時間単位（例えば、数日、数時間など）とするフロートは、任意に分割することができる。
【００８４】
４．フロートは、残資源容量を最小化するようなフロートに関して、その時間間隔の範囲を選択する最適化ヒューリスティックに基づいて割り当てられる。
【００８５】
５．移動不可のプロジェクトは依存経路上にありうる。
【００８６】
６．ある時間間隔が予算不足であるとき、予算を再形成することが可能である。一例としては、再形成の機会を実行可能である、最も早く適格な時間間隔を優遇することによる。
【００８７】
図１４を参照すると、ブロック図は、いくつかの実施形態による、マシン読み取り可能な媒体１４２２（例えば、非一時的なマシン読み取り可能な媒体、マシン読み取り可能な記憶媒体、コンピュータ読み取り可能な記憶媒体またはこれらの任意の好適な組合せ）からの指示１４２４を読み取り、全体的にまたは部分的に、本明細書で論じられる任意の１つまたは複数の方法論を実行することができるマシン１４００の構成を示す。特に、図１４は、コンピュータシステム（例えば、コンピュータ）の形態の例におけるマシン１４００を示し、その内部で、マシン１４００に対して、全体的にまたは部分的に、本明細書で論じられる任意の１つまたは複数の方法論を行わせる指示１４２４（例えば、ソフトウェア、プログラム、アプリケーション、アプレット、Ａｐｐ、または他の実行可能なコード）を実行させうる。
【００８８】
代替となる実施形態では、マシン１４００は、独立型、すなわち他のマシンに連結（例えば、ネットワークで）されうる装置として動作する。ネットワークで連結される配置においては、マシン１４００は、サーバクライアントネットワーク環境におけるサーバマシン１１０またはクライアントマシンの容量内で、または分散型（例えば、ピアツーピア）ネットワーク環境における同位層マシンとして動作しうる。マシン１４００は、ハードウェア、ソフトウェアまたはそれらの組合せを含みうるものであり、例として、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（ＰＣ）、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、携帯電話、スマートフォン、セットトップボックス（ＳＴＢ）、個人情報機器（ＰＤＡ）、ウェブ装置、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジまたは指示１４２４を順次実行可能である任意のマシン、そうでなければそのマシンによって取られるアクションを特定する任意のマシンでありうる。さらに、１つのマシン１４００のみを示しているが、用語「マシン」はまた、個々に、または合同で指示１４２４を実行して本明細書に論じられる１つまたは複数の方法論のいずれかのすべてまたは一部を実行する機械の任意の集まりを含むように考えられうる。
【００８９】
マシン１４００は、バス１４０８を介して互いに通信するように構成されたプロセッサ１４０２（例えば、中央処理装置（ＣＰＵ）、画像処理装置（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、無線周波数集積回路（ＲＦＩＣ）、またはそれらの任意の好適な組合せ）、メインメモリ１４０４、および静的メモリ１４０６を含む。プロセッサ１４０２が、全体的にまたは部分的に、本明細書に記載の任意の１つまたは複数の方法論を実行するように設定可能であるように、プロセッサ１４０２は、いくつかのまたはすべての指示１４２４によって、一時的にまたは持続的に設定可能であるようなマイクロ回路を含む。例えば、プロセッサ１４０２の１つまたは複数のマイクロ回路の集合は、本明細書に記載される１つまたは複数のモジュール（例えば、ソフトウェアモジュール）を実行するように設定可能でありうる。
【００９０】
マシン１４００は、ビデオディスプレイ１４１０（例えば、プラズマディスプレイパネル（ＰＤＰ））、発光ダイオード（ＬＥＤ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、プロジェクタ、ブラウン管（ＣＲＴ）もしくは画像または映像を表示することが可能であるその他のディスプレイ）をさらに含みうる。マシン１４００はまた、英数字入力装置１４１２（例えば、キーボードまたはキーパッド）、カーソル制御装置１４１４（例えば、マウス、タッチパッド、トラックボール、ジョイスティック、運動センサ、視標追跡装置または他のポインティング機器）、記憶部１４１６、信号生成装置１４１８（例えば、サウンドカード、アンプ、スピーカ、ヘッドホンジャックまたはそれらの任意の好適な組合せ）およびネットワークインタフェース装置１４２０を含みうる。
【００９１】
記憶部１４１６は、例えば、図１から図１３の説明のいずれかを含む、本明細書に記載される任意の１つまたは複数の方法論または機能を具現化する指示１４２４をそこに記憶するマシン読み取り可能な媒体１４２２（例えば、実体があり、かつ、非一時的なマシン読み取り可能な記憶媒体）を含む。指示１４２４はまた、マシン１４００によるその実行前または実行中に、完全にまたは少なくとも部分的に、メインメモリ１４０４内、プロセッサ１４０２内（例えば、プロセッサのキャッシュメモリ内）、またはその両方に帰しうる。指示１４２４はまた、静的メモリ１４０６に帰しうる。
【００９２】
従って、メインメモリ１４０４およびプロセッサ１４０２は、マシン読み取り可能な媒体１４２２でありうる（例えば、実体があり、かつ、非一時的なマシン読み取り可能な媒体）。指示１４２４は、ネットワークインタフェース装置１４２０を介してネットワーク１４２６上を送信または受信されうる。例えば、ネットワークインタフェース装置１４２０は、任意の１つまたは複数の転送プロトコル（例えば、ＨＴＴＰ）を用いて、指示１４２４を伝達しうる。マシン１４００はまた、図１から図１３に記載される処理を含む、本明細書に記載の機能のいずれかを実行する手段の例を表しうる。
【００９３】
いくつかの実施形態では、マシン１４００は、スマートフォンまたはタブレットコンピュータなどである携帯用コンピューティングデバイスであってよく、１つまたは複数の追加の入力部品（例えば、センサまたは規格）を有しうる（図示せず）。そうした入力部品の例としては、画像入力部品（例えば、１つまたは複数のカメラ）、音声入力部品（例えば、マイク）、方向入力部品（例えば、コンパス）、位置入力部品（例えば、ＧＰＳ受信機）、方位部品（例えば、ジャイロスコープ）、運動検出部品（例えば、１つまたは複数の加速度計）、高度検出部品（例えば、高度計）、および気体検出部品（例えば、気体センサ）を含む。これらの任意の１つまたは複数の入力部品によって獲得された入力は、本明細書に記載のいずれかのモジュールによる使用に関してアクセス可能であり利用可能でありうる。
【００９４】
本明細書で用いる場合、用語「メモリ」は、一時的または持続的にデータを記憶することができるマシン読み取り可能な媒体１４２２を指し、限定するものではないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、バッファメモリ、フラッシュメモリおよびキャッシュメモリを含むと考えてよい。マシン読み取り可能な媒体１４２２は、一実施形態において１つの媒体であるように示されるが、用語「マシン読み取り可能な媒体」は、指示１４２４を記憶することができる１つの媒体または複数の媒体（例えば、集中型または分散型データベース１１５または関連するキャッシュおよびサーバ）を含むと考えるべきである。用語「マシン読み取り可能な媒体」はまた、マシン１４００の１つまたは複数のプロセッサ（例えば、プロセッサ１４０２）によって実行されるときに、指示１４２４がマシン１４００に対して、全体的にまたは部分的に、本明細書に記載される任意の１つまたは複数の方法論を実行させるために、マシン１４００による実行に関する指示１４２４を記憶することができる任意の媒体または複数の媒体の組合せを含むと考えられうる。従って、「マシン読み取り可能な媒体」は、１つの記憶装置もしくは装置１３０ｍ、１４０または１５０、ならびに複数の記憶装置もしくは装置１３０、１４０または１５０を含むクラウドベース記憶システムまたは記憶ネットワークを指す。従って、用語「マシン読み取り可能な媒体」は、限定するものではないが、固体メモリ、光媒体、磁気媒体またはそれらの任意の好適な組合せの形をとる、１つまたは複数の実体のある（例えば、非一時的な）データの格納場所を含むと考えられうる。
【００９５】
さらに、マシン読み取り可能な媒体１４２２は非一時的であり、内部で伝播信号を具現化しない。しかしながら、実体のあるマシン読み取り可能な媒体１４２２を「非一時的」と分類することは、媒体が移動不可能であることを意味すると解釈されるべきではなく、媒体が、ある物理的な場所から他へ運搬可能であると見なされるべきである。また、マシン読み取り可能な媒体１４２２は実体があるため、媒体はマシン読み取り可能な装置であると考えられうる。
【００９６】
本明細書を通して、複数の例は、１つの例として説明される構成要素、動作または構造を実施しうる。１つまたは複数の方法の独立した動作は、分離した動作として示され、説明されるが、１つまたは複数の独立した動作は、同時に動作されてよく、説明された順に動作を実行する必要はない。例である構成の分離した構成要素として提示された構造および機能性は、構造または構成要素の組合せとして実施されうる。同様に、１つの構成要素として提示された構造および機能性は、独立した構成要素として実施されうる。これらおよび他のバリエーション、変形、付加および改良は、本明細書の主題の範囲内に含まれる。
【００９７】
ある実施形態は、本明細書において、論理またはいくつかの構成要素、モジュールまたは機構を含むように記載されている。モジュールは、ソフトウェアモジュール（例えば、マシン読み取り可能な媒体１４２２上または伝送媒体内に記憶されるまたは別の方法で具現化されるコード）、ハードウェアモジュールまたはそれらの任意の好適な組合せを構成しうる。「ハードウェアモジュール」は、ある動作を実行することが可能である実体のある（例えば、非一時的な）ユニットであり、ある物理的な方法で構成または配置されうる。様々な実施形態において、１つまたは複数のコンピュータシステム（例えば、独立型コンピュータシステム、クライアントコンピュータシステムまたはサーバコンピュータシステム）またはコンピュータシステムの１つまたは複数のハードウェアモジュール（例えば、プロセッサ１４０２または一群のプロセッサ１４０２）が、本明細書に記載されるようにある動作を実行するために動作するハードウェアモジュールとして、ソフトウェア（例えば、アプリケーションまたはアプリケーション部分）によって構成される。
【００９８】
いくつかの実施形態では、ハードウェアモジュールは、機械的に、電子的にまたはそれらの任意の好適な組合せで実施されうる。例えば、ハードウェアモジュールは、専用回路またはある動作を実行するように持続的に構成される論理を含みうる。例えば、ハードウェアモジュールは、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）またはＡＳＩＣである専用プロセッサでありうる。ハードウェアモジュールはまた、ある動作を実行するようにソフトウェアによって一時的に構成されるプログラマブル論理または回路を含みうる。例えば、ハードウェアモジュールは、汎用プロセッサ１４０２または他のプログラマブルプロセッサ１４０２内に含まれるソフトウェアを含みうる。専用および持続的に構成された回路または一時的に構成された回路（例えば、ソフトウェアによって構成される）において、ハードウェアモジュールを機械的に実施するという決定は、費用および時間の考慮によってなされることが認識されるであろう。
【００９９】
ハードウェアモジュールは、他のハードウェアモジュールへの情報を提供すること、および他のハードウェアモジュールからの情報を受信することができる。従って、説明されるハードウェアモジュールは、通信可能に結合されているものとみなされうる。複数のハードウェアモジュールが同時に存在する場所で、通信は、２つ以上のハードウェアモジュール間での信号伝達を介して（例えば、適切な回路およびバス１４０８を介して）達成されうる。その時々で複数のハードウェアモジュールが構成され、または例示される実施形態において、こうしたハードウェアモジュール間の通信が、例えば、それに対して複数のハードウェアモジュールがアクセスを有するようなメモリ構造内の情報の記憶および検索を介して達成されうる。例えば、ひとつのハードウェアモジュールは、動作を実行して、それに対して通信可能に結合されるメモリ装置内にその動作の出力を記憶しうる。その後、それ以降の時間に、さらなるハードウェアモジュールが、メモリ装置にアクセスし、記憶される出力を検索および処理する。ハードウェアモジュールはまた、入力または出力装置と通信を開始してよく、資源（例えば、情報の集まり）上で動作することができる。
【０１００】
本明細書に記載された例である方法の様々な動作は、少なくとも部分的に、一時的に構成される（例えば、ソフトウェアによって）または持続的に関連のある動作を実行するように構成される、１つまたは複数のプロセッサ１４０２によって実行されうる。構成が一時的であっても持続的であっても、こうしたプロセッサ１４０２は、本明細書に記載の１つまたは複数の動作または機能を実行するように動作するプロセッサ実施モジュール（processor-implemented module）を構成しうる。本明細書で用いる場合、「プロセッサ実施モジュール」は、１つまたは複数のプロセッサ１４０２を用いて実施されるハードウェアモジュールを指す。
【０１０１】
同様に、本明細書に説明される方法は、少なくとも部分的にプロセッサ実施されてよく、プロセッサ１４０２はハードウェアの一例である。例えば、方法の動作のうち少なくともいくつかは、１つまたは複数のプロセッサ１４０２またはプロセッサ実施モジュールによって実行されうる。本明細書で用いられる場合、「プロセッサ実施モジュール」は、その内部にハードウェアが１つまたは複数のプロセッサ１４０２を含む、ハードウェアモジュールを指す。さらに、１つまたは複数のプロセッサ１４０２はまた、「クラウドコンピューティング」環境内または「サービス型ソフトウェア（software as a service）」（ＳａａＳ）として、関連する動作の実行をサポートするように動作しうる。例えば、動作のうちの少なくともいくつかは、一群のコンピュータ（例としては、プロセッサ１４０２を含むマシン１４００）によって実行されうるものであり、これらの動作は、ネットワーク１４２６（例えば、インターネット）を介して、かつ、１つまたは複数の適切なインタフェース（例えば、ＡＰＩ）を介してアクセス可能であることを伴う。
【０１０２】
ある動作の実行は、１つまたは複数のプロセッサ１４０２に分布されうるものであり、１つのマシン１４００内に存在するだけでなく、いくつかのマシン１４００にわたって展開される。ある実施形態では、１つまたは複数のプロセッサ１４０２またはプロセッサ実施モジュールは、１つの地理的位置（例えば、ホーム環境、オフィス環境またはサーバファーム内）に配置されうる。他の実施形態では、１つまたは複数のプロセッサ１４０２またはプロセッサ実施モジュールは、いくつかの地理的位置にわたって分布されうる。
【０１０３】
特別に別の方法で示すものでなければ、例えば「処理すること（processing）」、「計算すること（computing）」、「計算すること（calculating）」、「決定すること（determining）」、「提示すること（presenting）」、「表示すること（displaying）」等の語を用いる本明細書における議論は、情報を受信し、記憶し、送信し、または表示する１つまたは複数のメモリ（例えば、揮発性メモリ、不揮発性メモリまたはそれらの任意の好適な組合せ）、記録機または他のマシン構成要素内の物理的な（例えば、電子的、磁気的または光学的）量として表現されるデータを操作または変形するマシン１４００（例えば、コンピュータ）の動きまたは処理を指しうる。さらに、特別に別の方法で示すものでなければ、用語“ａ”または“ａｎ”は、特許書類においては普通であるように、一例以上の１つまたは複数を含むように本明細書で用いられる。最後に、本明細書で用いる場合、接続詞“ｏｒ（または）”は、特別に別の方法で示すものでなければ、非排他的な“ｏｒ”を指す。
【０１０４】
本開示は、例示であり、限定するものではない。本開示に照らして、さらなる変形が当業者にとって明らかであろうものであり、かつ、添付の特許請求の範囲の範囲内に含むことが意図される。
【図１】
0006564015.tif 000002
【図２】
0006564015.tif 000003
【図３】
0006564015.tif 000004
【図４】
0006564015.tif 000005
【図５】
0006564015.tif 000006
【図６】
0006564015.tif 000007
【図７】
0006564015.tif 000008
【図８】
0006564015.tif 000009
【図９】
0006564015.tif 000010
【図１０】
0006564015.tif 000011
【図１１】
0006564015.tif 000012
【図１２Ａ】
0006564015.tif 000013
【図１２Ｂ】
0006564015.tif 000014
【図１２Ｃ】
0006564015.tif 000015
【図１３】
0006564015.tif 000016
【図１４】
0006564015.tif 000017