有没有现成的软件或算法可以计算多个项目的运输包大小?
我们的库存数据库中有许多定义了长度、宽度和高度尺寸的物品。根据这些尺寸,我需要计算购买的物品可以适合预定义的盒子尺寸中的多少。
有没有现成的软件或算法可以计算多个项目的运输包大小?
我们的库存数据库中有许多定义了长度、宽度和高度尺寸的物品。根据这些尺寸,我需要计算购买的物品可以适合预定义的盒子尺寸中的多少。
这是一个装箱问题,它是NP难的。对于少量的物品和包裹,可能可以简单地使用试错法来尝试每种可能性。在此之后,您将需要使用某种启发式算法。维基百科的文章有一些细节,以及您可能想要查看的论文参考。
当然,另一种选择是从一个非常简单的算法(例如简单地“堆叠”项目)开始,并计算出使用该算法的合理上限运输费用,如果您的人工包装员能做得更好,那么您就会获得微小的利润。或者在假设您的包装不理想的情况下稍微降低计算出的价格。
"三维装箱"的文献非常广泛。您可以跟踪David Pisinger教授的出版物,以获取良好的概述。他还发布了一份高质量的装箱实现源代码:3dbpp.c 。
我的物流工具包pyShipping附带一个用于仓储应用的三维装箱实现。它基本上是实现了四维装箱(三维大小和重量)并在不到一秒的运行时间内为典型订单大小(数十个包裹)得到了可接受的解决方案。它已经在生产中(即仓库)使用数月,以确定要使用的运输箱的上限。仓库工人通常能够更有效地打包,但对我来说这也没问题。
您是想知道特定尺寸的包装可以装下多少个同一类型物品,还是想混合不同类型物品?
听起来像是您正在尝试解决背包问题。您可能能够找到一些算法,可以根据您的具体要求进行调整。但请注意,很难找到一个高效的算法,因为这个问题是NP完全的(虽然根据您的具体要求,您可能能够找到一个高效的近似解,或者您的输入可能足够小,不会有关系)。
PackingService.Pack()
接受Container
列表和要打包的Item
(们)列表作为参数,并返回包含许多信息的结果,包括:
"以百分比表示的已打包容器和已打包和未打包项目的列表"