填充量算法

时间:2011-08-08 20:43:33

标签: algorithm language-agnostic

我的盒子有一些尺寸长度,宽度,高度。

我有不同长度,宽度,高度的物品。

是否存在可以确定用于放入框内的最佳项目的现有算法?

2 个答案:

答案 0 :(得分:11)

这被称为Bin装箱/切割库存/背包问题,并且它很难NP。通常,您只能使用启发式方法获得近似解,例如参见

http://en.wikipedia.org/wiki/Knapsack_problem

http://en.wikipedia.org/wiki/Bin_packing_problem

http://en.wikipedia.org/wiki/Cutting_stock_problem

答案 1 :(得分:3)

这可能实际上并不是一个答案,但我相信答案是问题是无法回答的。是的,这是包装问题的一个版本。 但是看看Erich Friedma在两个方面的研究: 似乎方形中大小相等的矩形的问题仍然没有解决 - 看看其中一些解决方案的复杂性!

http://www2.stetson.edu/~efriedma/squinsqu/

http://www2.stetson.edu/~efriedma/rigidrect/

(问题略有不同,即如何最好地安排一定数量的物品占据最少的空间,而不是选择哪些物品。但我希望你的问题减少到迭代这种计算的几种组合对象。)

和三维变体看起来只是部分解决了: http://www2.stetson.edu/~efriedma/cubincub/

据推测,你最好的选择是Anders建议的一种启发式方法,尽管几乎肯定对几乎所有问题都不是最理想的。有趣的是,最优化的解决方案似乎是高度不规则,因此您可能找不到它们。