我正在为自定义网上商店(用PHP)创建一个运输模块,结果有点复杂(对我来说无论如何);
在所需的运输程序中,(目前)有两个外部“运输箱/集装箱”,每个运输箱/集装箱可以包含不同的物品/产品组合。有一个大的和一个小的,小的显然更便宜的运输。物品/产品(目前)属于“内盒”的三个维度。
我正在寻找一个API /类,我可以在其中输入外盒的尺寸,然后输入要装运的内盒(或更确切地说是产品)的数量和尺寸。然后应计算外箱及其内容/包装顺序的最佳组合,以便需要最小数量的箱子。
毋庸置疑,我预计未来外箱,内箱及其尺寸的数量很可能会发生变化。
这甚至存在吗?
答案 0 :(得分:1)
这是着名的Packing problem的一个实例,其中大多数是NP-hard。要找到解决此类问题的最佳解决方案可能非常困难或不可能,因此您应该针对足够好的解决方案,而不是最佳解决方案。
您应该查看与您的问题非常相似的Bin packing problem,区别在于您有两个不同的容量。
答案 1 :(得分:1)
当您试图弄清楚然后实施时,使用bin-packing算法来制定最佳解决方案,让其中一个打包者为订单中最常见的项目组合写下查找表。从您告诉我们的内容来看,您只有2种尺寸的外盒和3种尺寸的内盒,其中一个包装工可能会在我写这个答案时完成查找表。
现在,由于您是一名软件开发人员,因此需要开发代码来阅读查找表,并在打包新的项目组合时寻求帮助。在查找表中存储这些新组合以及如何打包它们。随着业务的发展,开发查找表。
这种方法利用了人类在为合理数量的物体解决3D包装问题方面的卓越技能。您不需要一个最佳解决方案,只需要一个足够好的解决方案,以便您的客户不会经常查询包装数量 - 您将成本转嫁给客户不是吗?