我正在尝试解决将对象堆叠成最方便邮资的尺寸的问题。物体的大小和形状会有所不同。所有物体的长度、宽度和高度都是已知的。
例如,客户可以订购(长 x 宽 x 高)200x100x10cm 的物体(宽、长和扁)以及 2 个 50x50x50cm 的物体(立方体)。如果我要打包这个,我会将扁平的宽物体放在底部,将 2 个立方体放在顶部,并排放置。
有人有或知道对此有合理有效的算法解决方案吗?甚至是我应该考虑解决这个问题的方法。我整个星期都在编码,已经很晚了,我的大脑被炸了。我还没有绝望,但我只想明天休息一天。
我设想的方式是创建一个表示 3d 空间的数组,每个数组元素代表该空间中的 1 平方/厘米。3d 空间长度和宽度将基于最长的对象和最宽的对象。然后你只需从最大的物体到最小的物体,找到足够的“洞”并在你走的时候把它们填满。
虽然我确信会有一个数学公式可以更有效地做到这一点。
有任何想法吗?