2

与えられた:

- 特定のコンテナ タイプに配置するためのコストを持つアイテムのセット。

-それぞれが利用可能なコンテナの数を持つコンテナタイプのセット。

例:

量*容器タイプ: 5 * A、3 * B、2 * C

アイテム(費用):

3 * X (A=2、B=3、C=1)

2 * Y (A=5、B=2、C=2)

1 * Z (A=3、B=3、C=1)

問題:

コストが最小限になるように、コンテナへのアイテムの最適な配置を見つけます。簡単にするために、アイテムは 1 つのタイプのコンテナにのみ配置します。

問題を解決するためにハンガリーの方法を試してみましたが、O(n³) のランタイムでは、大規模な問題 (たとえば、100000 アイテム) では非常に困難です。

私の現在の解決策は貪欲なアプローチです。つまり、アイテムとコンテナーの組み合わせをコスト (昇順) で並べ替え、O(n log n) に十分な量が残っている最初のコンテナーを割り当てるだけです。

より良い解決策はありますか?

4

4 に答える 4

5

この問題は、ナップザック問題の変形であり、ウィキペディアのページから始めて、そこから読み進めてください。

貪欲なアルゴリズムはかなり良い近似であることが知られているので、おそらく十分です。

于 2009-02-06T14:26:23.277 に答える
0

代入問題線形プログラムとして書き、シンプレックス アルゴリズムを使用して解こうとしたことがありますか?

于 2009-02-06T15:19:58.847 に答える
0

ゲノムは生成、突然変異、交配が容易であることを考えると、当然、私は遺伝的アプローチを採用します。しかし、最適な非組み合わせソリューションがあるかもしれません。

于 2009-02-06T14:22:30.867 に答える
0

私があなたの問題を正しく理解していれば、必要なのは数学だけです。

http://en.wikipedia.org/wiki/Optimization_%28mathematics%29

于 2009-02-06T14:24:40.563 に答える