按重量包装

时间:2011-11-27 18:22:28

标签: algorithm

如果我有一些不到一磅的物品,并且我想有效地将​​它们装入一个磅的容器中,我应该用蛮力吗? (弄清楚所有各种组合,包装,看看哪种组合导致最少数量的包装?)

这种算法有名称吗?

在我的情况下,我没有大量的包。

5 个答案:

答案 0 :(得分:1)

您可能需要查看knapsack problem

答案 1 :(得分:1)

您还可以查找1d bin-packing或2d bin-packing算法。如果你没有太多的垃圾箱,我建议使用蛮力算法,但这似乎是一个非常难的问题。

答案 2 :(得分:1)

您可以查看“算法设计手册”以了解您的问题:

Bin Packing http://www.cs.sunysb.edu/~algorith/files/bin-packing.shtml

背包问题 http://www.cs.sunysb.edu/~algorith/files/knapsack.shtml

如果您可以定义一个合适的解决方案(足够好),而不是如果您想知道最佳解决方案,那么您可以更轻松地自己。

答案 3 :(得分:0)

这是NP完全问题。你没有更好的选择,最好的可能是一些具有伪多项式(指数)复杂度的动态编程算法。

答案 4 :(得分:0)

我编写了以下Ruby程序来解决这个问题,它似乎运行良好。

https://gist.github.com/1398026