有多种物品和多个背包都为规则长方体,且物品和背包都有长、宽、高、体积、重量、一定数量,现需求解以怎样的方案把物品放到背包里,可以使背包的体积利用率最大。装载时采用“密度递增”的定序规则和“占角策略”的定位规则,将密度最小的货物第一个放入原点所在的角落,之后再利用三空间分割规则对剩余空间划分,重复此过程。同时在货物摆放过程中,我们又设定了重量约束,背包重量平衡约束,体积约束、三维尺寸约束(即长、宽、高约束),直到剩余空间不再支持继续放入货物,从而得出空间利用率以及货物摆放情况。请用Python对上述问题举一个例子补充数据建模求解,并输出最优装载方案,详细至哪个背包放了哪种物品多少个
时间: 2023-05-28 18:05:27 浏览: 154
完全背包_背包问题_容量为c的背包_背包_完全背包_4321_
5星 · 资源好评率100%
假设有两个背包,分别为长方体A和长方体B,它们的长、宽、高分别为10、20、30和15、25、35,体积和重量分别为6000和2000,可以放置的物品有三种,分别为物品1、物品2和物品3,它们的长、宽、高、体积、重量和数量如下表所示:
| 物品 | 长 | 宽 | 高 | 体积 | 重量 | 数量 |
| :--: | :--: | :--: | :--: | :--: | :--: | :--: |
| 1 | 5 | 5 | 5 | 125 | 10 | 10 |
| 2 | 10 | 10 | 10 | 1000 | 20 | 5 |
| 3 | 15 | 15 | 15 | 3375 | 30 | 3 |
首先,我们需要对物品进行排序,按照密度递增的规则排序,计算每个物品的密度,即体积与重量的比值,然后按照密度从小到大进行排序。排序后的结果如下表所示:
| 物品 | 长 | 宽 | 高 | 体积 | 重量 | 数量 | 密度 |
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
| 1 | 5 | 5 | 5 | 125 | 10 | 10 | 12.5 |
| 2 | 10 | 10 | 10 | 1000 | 20 | 5 | 50 |
| 3 | 15 | 15 | 15 | 3375 | 30 | 3 | 112.5|
然后,我们按照占角策略的定位规则,将密度最小的货物第一个放入原点所在的角落,即将物品1放入长方体A的原点。然后,我们利用三空间分割规则将长方体A划分为八个小长方体,每个小长方体的长、宽、高分别为5、10、15,然后将密度第二小的货物放入这八个小长方体中的一个,放置的顺序为先放长、再放宽、最后放高。由于物品2的体积为1000,无法放入任何一个小长方体中,因此我们将物品2放入长方体B中。然后,我们再将长方体B划分为八个小长方体,每个小长方体的长、宽、高分别为7.5、12.5、17.5,然后将密度第三小的货物放入这八个小长方体中的一个。由于物品3的体积为3375,无法放入任何一个小长方体中,因此我们无法再放置任何物品了。
最后,我们统计长方体A和长方体B中放置的物品数量以及利用率,结果如下:
长方体A中放置的物品:物品1,数量10个
长方体B中放置的物品:物品2,数量5个;物品3,数量3个
长方体A的利用率为:10 * 125 / 6000 = 20.83%
长方体B的利用率为:8 * 1000 / 2000 + 3 * 3375 / 6000 = 95.83%
Python代码如下:
阅读全文