uni*_*n83 4 algorithm optimization shipping calculus
当我说框时,我说的是运输箱.
我有一些随机大小的小物品,我需要装入尽可能少的箱子.我需要知道什么样的盒子尺寸是最佳的.
存在什么算法允许我计算我需要用于最佳空间使用的盒子大小?将大多数物品放入尽可能少的箱子中.
可用的盒子尺寸来自我现有的库存.出于示例目的,您可以创建有限数量的组合盒尺寸.
这是Bin打包问题的概括,意味着它是NP-Hard.
要想看到这一点,想象所有的箱子和包装都有相同的宽度和高度,另外所有的箱子(但不是包裹)都有相同的长度.那么这是一个一维问题:我们有大小为V的箱子,大小为1,a 2,......,a n的包裹.这个简化的案例正是Bin-packing问题.因此,快速解决您的问题可以为我们提供快速的装箱解决方案,因此您的问题至少同样困难; 因为bin-packing是NP-Hard,所以你的问题也是如此.
但是有一些近似算法可用; 例如,很容易证明简单的首次拟合算法(将每个项目放在它适合的第一个bin中)绝不会比最佳解决方案的2 倍差.
类似的"首次适应减少"算法(降序对项目进行排序,然后把每一个项目在它适合进入第一仓)是更好的,保证是内最优解的约25%.还有另一种稍微复杂的算法称为MFFD,它保证在20%左右.
当然,只有7个盒子,你可以随便蛮力解决方案.这将需要大约7 n个步骤(n项目数量在哪里),因此这个解决方案是不可行的,有十几个项目.