如何计算卡车装载中的最大托盘数量?

How to calculate the max number of pallets in a truck load?

我想最大化 material 我可以发送的货件数量。我的 material 托盘是三个不同 类 之一:

如果我得到一份已订购 materials 托盘的列表,我需要计算任何订单需要多少托盘脚印或底部托盘。例如:10 个 Material 类型 1 托盘和 20 个 Material 类型 2 托盘和 3 个 Material 类型 3 托盘。订单需要占用多少个底部托盘?

编辑:让我们将卡车底部托盘的限制设置为 24。可堆叠的最大托盘为两个,也就是说,您不能将两个以上的托盘堆叠在一起。注意:Material2不能叠加在Material1之上。

鉴于当前的限制,堆叠所需的足迹数量为

t3 + ( 1 if t1 + t2 > 0, 0 otherwise )

其中t1表示类型1的托盘数,t2表示类型2的托盘数,t3表示类型3的托盘数。类型 3 不能与其他任何东西堆叠在一起;如果存在类型 1 或类型 2 托盘,它们可以堆叠在一起,首先是类型 2 托盘,然后是类型 1 托盘。

编辑

由于最多2个托盘可以堆叠在一起,每辆卡车最多可以装载24个托盘,所以答案是不同的。总堆叠数为

#Stacks = t3 + ceil( ( t1 + t2 ) / 2 )

其中 ceil 表示四舍五入到最接近的整数。类型 3 的每个托盘必须单独堆放,因此至少需要 t3 堆。其余类型 1 和类型 2 的托盘最多可以堆叠 2 个高度,显然没有实际限制;如果Type 1 和Type 2 单独放在一个栈中没有问题,如果Type 1 和Type 2 都存在,则将Type 2 放在底部。

最后,所需的卡车总数为

#Trucks = ceil(#Stacks/24)

最后一辆卡车可能还剩下一些未使用的 space。