問題タブ [resource-scheduling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
148 参照

algorithm - このスケジューリングとリソース割り当ての問題をモデル化する方法

次のジョブ/リソース スケジューリングの問題を実装したいと考えています。

  • エッジが優先関係をエンコードするジョブの DAG。
  • 優先関係のないジョブは並列実行可能
  • 複数のリソース プール。各プールには 1 つ以上の同様のリソースが含まれます。
  • ジョブは、1 つまたは複数のプールの 1 つまたは複数のリソースに依存する場合があります。つまり、ジョブ J1 は、「プール P1 から 2 つのリソースが必要で、プール P2 から 7 つのリソースが必要です」のようなことを言います。
  • ジョブは、直前の先行ジョブの 1 つとまったく同じリソースが必要であることを表明する場合があります。つまり、ジョブ J2 は、「プール P1 から 1 つのリソースが必要ですが、それはジョブ J1 が割り当てられたリソースの 1 つでなければなりません」と言うかもしれません。簡単にするために、この種の制約では、ジョブ J2 が J1 の直接の後継者でなければならないと仮定します。
  • リソースの依存関係は、読み取りまたは書き込み、またはその両方、または「ドントケア」のいずれかです。
  • ジョブ J1 がプール P1 からリソースに書き込み、その後のジョブ J2 が「J1 が P1 から取得したのと同じリソース」に読み取り依存関係がある場合。その間、リソースはステートフルであるため、他のジョブで書き込みを行うことはできません。
  • 各ジョブの実行時間は事前にわかりません。また、ジョブには優先順位や締め切りの要件もありません。

を探しています:

  1. この問題を正式なドメインで表現する方法、
  2. 指定された要件と制約でジョブ グラフを実行できるかどうかという質問に答えるオフライン スケジューリング可能性テスト。
  3. オンライン スケジューリング アルゴリズムの提案

リソース プールがなく、各タイプのリソースが 1 つしかない場合、問題はおそらくはるかに単純になります。グラフ理論と単純なデータフロー分析アルゴリズムの基礎に精通しています。

0 投票する
0 に答える
77 参照

resource-scheduling - さまざまな制約に基づいて労働スケジューリングの問題を解決するにはどうすればよいですか?

さまざまな制約に基づいて、特定のタスクのレイバーをスケジュールします。制約の例としては、労働スキル、時間、場所、シフト、休日、優先順位、キャパシティなどがあります。

問題の説明: 12 月 25 日にカリフォルニアで Linux サーバーをセットアップするタスクがあり、サーバーのセットアップに 5 時間かかるとします。Linus サーバーをセットアップするには、Linux サーバーに熟練した労働者が必要で、カリフォルニアに滞在し、12 月 25 日の午前 9 時から午後 3 時まで無料である必要があります。合計6時間。

労働力のプールがあり、複数のタスクに適した労働力を見つけなければならない場合、どのようなアプローチに従うべきでしょうか?

Google で調べたところ、これは制約ベースのプログラミングの問題であり、Google OR Tools やその他のモデルがそれを解決する方法を提供していることがわかりました。

そこで、Google OR Tools Google OR Tools doc を調べ始めました。ドキュメントには、基本的な例が記載されています。

上記のリンクよりも優れたGoogle ORのgitハブで別のドキュメントを見つけました。 Google OR Tools の Git ハブ ドキュメント

ここで与えられた看護師スケジューリング プログラムを実装してみましたGoogle OR ナース スケジューリング

プログラムを理解するのに苦労しています。Python や Java を理解するのに苦労しているわけではありません。

だから私の質問はです。

そのような問題を解決する方法は何ですか?Google ですか、それとも適切なツールですか? はいの場合、グーグルの前提条件は何ですか、または誰かが数学のバックグラウンドが弱い場合は何ですか? このような問題を解決するにはどうすればよいですか?