都市建設ゲームを設計していて、問題が発生しました。
Sierra のCaesar IIIのゲーム メカニクスを想像してみてください。それぞれに 1 つの市場がある多くの都市地区があるとします。有向加重グラフで接続された距離にあるいくつかの穀倉地帯があります。違い: 人 (ここでは車) は交通渋滞を形成する単位です (ここではグラフの重みが続きます)。
注: Ceasar ゲーム シリーズでは、人々は食料を収穫していくつかの大きな穀倉に備蓄しましたが、多くの市場 (小さな店) は穀倉から食料を取り出して市民に届けました。
タスク: 各地区に食料をどこから調達すべきかを伝えると同時に、時間を最小限に抑え、都市の道路の混雑を最小限に抑えます。
マップの例
黄色の地区にはそれぞれ 7 個、7 個、4 個のリンゴが必要であるとします。青みがかった穀倉には、それに応じて 7 個と 11 個のリンゴがあります。
エッジの重みがそれらの長さに比例するとします。次に、解決策は、端に示されている灰色の数字のようなものになるはずです。たとえば、第 1 地区は第 1 穀倉から 4 個のリンゴを、第 2 穀倉からは 3 個のリンゴを取得しますが、最後の地区は第 2 穀倉からのみ 4 個のリンゴを取得します。
ここでは、最初に垂直道路が最大まで占有され、次に残りの労働者が斜めの経路に送られます。
質問
どの実用的で非常に高速なアルゴリズムを使用する必要がありますか? 輻輳ゲームについて説明している論文 ( Congestion Games: Optimization in Competitionなど) を見ていましたが、全体像をつかむことができませんでした。