私が表現して自動化しようとしている実際の問題があります。私はそれを次のように簡略化して抽象化しました:
ワーカーはいつでもExchangeにアクセスして、要求されていないキーを取得したり、他のユーザーが使用できるようにいくつかのキーをドロップしたりできます。
現在、厳格な順序で完了する必要がある外因性の作業スケジュールがあります。例えば:
同じ日に決してではないが、スケジュールのある時点でPnで働く必要のある労働者はいくつもいる可能性がある
私たちは知っています:
それで、私はこの全体の状況をモデル化するのに苦労しています。データ構造とアルゴリズムを提案して、それを把握し、各ワーカーのエクスチェンジへのトリップの最適化を開始するために検討する必要がありますか?
私が最小化したいのは、Eへの旅行の総数です。2番目の目標は、労働者が不釣り合いな数の旅行をしないようにすることです。
前もって感謝します!!
問題は、1つの重要な点について少しあいまいです。どの要素を解決しようとしているのかです。リソースが委任される順序の最適化を検討していますか?交換への旅行を最小限に抑えますか?作業指示のスループットを最大化しますか?
そのことを念頭に置いて、これらのことを任意に組み合わせて、かなり高いレベルで答えを保つことができると想定します。
最初に頭に浮かぶのは、これが解決しようとする相互に関連する問題は、主に依存関係の管理に集中しているということです。ワーカー、キー、場所は、作業ジョブを完了するために解決する必要がある依存関係と考えることができます。
これを次のレベルに進めるために、トポロジカルソート( https://en.wikipedia.org/wiki/Topological_sorting )の適応について見ていきます。問題の空間を大きなグラフとしてモデル化し(最新のグラフデータベースもこの分析の一部にとって適切な媒体となる場合があります)、さまざまなトポロジカルソートを使用して問題の空間のさまざまな側面を解決します。
少し正接すると、これは本当に楽しいプロジェクトのように聞こえます。今日、私はあなたがうらやましいです。