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)

问题:

找到物品在容器中的最佳放置位置,以使成本最小化。为简单起见,仅将项目放入单一类型的容器中。

我尝试了匈牙利方法来解决这个问题,但是运行时间为 O(n³),对于大型问题(例如,100000 个项目)来说,这是非常令人望而却步的。

我目前的解决方案是一种贪婪的方法,它只是按成本 (asc) 对项目容器组合进行排序,并分配第一个容器,并在 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 回答