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

Algorithm 如何计算卡车装载中托盘的最大数量?,algorithm,optimization,transport,logistics,Algorithm,Optimization,Transport,Logistics,我想最大限度地增加我可以在一次装运中发送的材料托盘数量。我的材料托盘是三种不同类别之一: 材料类型1(易碎):可与另一种类型1的托盘堆叠, 可堆放在2类材料托盘的顶部 材料类型2(坚固):可与另一个 材料类型2可堆放在材料类型1下方。不能堆叠在物料1的顶部 材料类型3(非常易碎):无法堆叠 我需要计算有多少托盘脚印或底部托盘是任何订单所需的,若我得到一个材料清单托盘订购。例如:材料类型1的10个托盘和材料类型2的20个托盘以及材料类型3的3个托盘。订单需要多少底部托盘 编辑:让我们将卡车底部

我想最大限度地增加我可以在一次装运中发送的材料托盘数量。我的材料托盘是三种不同类别之一:

  • 材料类型1(易碎):可与另一种类型1的托盘堆叠, 可堆放在2类材料托盘的顶部
  • 材料类型2(坚固):可与另一个 材料类型2可堆放在材料类型1下方。不能堆叠在物料1的顶部
  • 材料类型3(非常易碎):无法堆叠
我需要计算有多少托盘脚印或底部托盘是任何订单所需的,若我得到一个材料清单托盘订购。例如:材料类型1的10个托盘和材料类型2的20个托盘以及材料类型3的3个托盘。订单需要多少底部托盘


编辑:让我们将卡车底部托盘的限制设置为24。最大可堆叠托盘为两个,也就是说,您不能将两个以上的托盘堆叠在彼此的顶部。注:材料2不能堆放在材料1的顶部。

鉴于当前的施工成本,堆放所需的足迹数量为

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层的高度上,显然没有实际限制;如果类型1和类型2单独进入一个堆栈,则没有问题;如果类型1和类型2都存在,则将类型2置于底部

最后,所需的卡车总数为

#Trucks = ceil(#Stacks/24)

最后一辆卡车可能还有一些未使用的空间。

一辆卡车可以装载多少托盘?首先,必须提供所有类型3的托盘,因为它们无法堆叠。它们必须单独考虑,并被视为不会导致实际问题。是否有最大数量的托盘可以堆叠在彼此的顶部?如果不是,则所有类型2和类型1的托盘可以堆叠成一个堆叠;在底部类型2和顶部类型1。我已经增加了底部托盘数量的限制,但是我认为原始问题陈述中缺少了一些约束条件……您能展示我上面给出的示例中的工作方式吗?托盘堆的高度有限制吗?没有限制,抱歉,更新了我的问题:我们最多只能堆叠两个托盘。不,解决方案仍然有效,因为类型2将放在底部。