相关链接
【2023年第三届长三角高校数学建模竞赛】A 题 快递包裹装箱优化问题 20页完整论文及代码
1 题目
2022 年,中国一年的包裹已经超过 1000 亿件,占据了全球快递事务量的一半以上。近几年,中国每年新增包裹数量相当于美国整个国家一年的包裹数量, 十年前中国还是物流成本最昂贵的国家,当前中国已经建立起全世界最强大、最先进的快递物流体系。在包裹的打包环节,选取合适的包装耗材非常重要。由于包裹的基数大,因此每个包裹耗材成本的略微降低,也能带来极大的经济效益。图 1 是一些纸箱实物样式,图 2 是某种三维装箱示意图。
图1 纸箱样式图2 三维装箱示意图
附件 1 的装箱数据中给出了订单数据和耗材数据。根据以上背景,请你们的团队完成以下问题:
问题1: 针对附件1装箱数据中给出的订单数据和耗材数据,对每个订单,分别用箱子或袋子去装,请设计出合适的装载方案,要求使用耗材数量越少越好, 在耗材数量相同时,耗材总体积越小越好。给出每种耗材的使用总数和耗材总体积。
问题2: 针对附件1的数据,现在需要优化耗材的尺寸,请给出耗材尺寸的优化方案。要求优化后耗材的种数不变,只是改变耗材尺寸;对问题1中成功装载的物品,优化后的方案使用的箱子或袋子数尽量减少;总体积不能超过原方案的总体积;在耗材数量相同时,耗材总体积越小越好。给出优化后的每种耗材的具体尺寸、使用总数和耗材总体积。
问题 3: 以上两个问题假设货物与耗材都为刚性的,若货物与耗材存在柔性或者可轻微挤压的属性时,请重新完成问题 1、2。根据实际情况,这里考虑耗材伸展时,长、宽、高都不超过原尺寸的 5%。
提示:
1、需要分别给出箱装(全使用箱子作为耗材)、袋装(全使用袋子作为耗材) 以及两种耗材同时使用的方案。
2、物品长宽高可以任意互换,如case1中第一种物品可看成长170、宽110、高27,也可看成长110、宽170、高27。
3、用袋子装物品时,能够装下的判定标准为同时满足如下两个条件: 袋子长+袋子高≥物品长+物品高;袋子宽+袋子高≥物品宽+物品高。
4、在附件1装箱数据中,case序号相同的看作同一订单,同一订单的物品可以装在同一箱(袋)子里,不同订单的物品一定装在不同箱(袋)子里。
5、对附件1装箱数据中的某订单物品,若耗材无论如何不能装下,则不需要考虑该物品。
6、耗材的重量暂不考虑。
7、表1是订单表示例,表2是耗材信息表,更详细的数据见附件1。
表1 部分订单表(示例)
case | L(长) | W(宽) | H(高) | num |
---|---|---|---|---|
1 | 170 | 110 | 27 | 7 |
1 | 210 | 200 | 30 | 1 |
2 | 105 | 105 | 100 | 2 |
2 | 135 | 110 | 110 | 5 |
3 | 208 | 140 | 18 | 5 |
3 | 90 | 90 | 75 | 1 |
4 | 115 | 65 | 35 | 1 |
5 | 250 | 190 | 53 | 3 |
6 | 140 | 140 | 48 | 2 |
6 | 225 | 80 | 35 | 2 |
7 | 292 | 166 | 87 | 1 |
7 | 320 | 240 | 70 | 1 |
8 | 228 | 148 | 26 | 2 |
表 2 耗材信息表
耗材名称 | 耗材类型 | 长 | 宽 | 高 | 重量 |
---|---|---|---|---|---|
普通1号袋 | 袋 | 250 | 190 | 1 | 10 |
普通2号袋 | 袋 | 300 | 250 | 1 | 8 |
普通3号袋 | 袋 | 400 | 330 | 1 | 15 |
普通4号袋 | 袋 | 450 | 420 | 1 | 23 |
普通1号自营纸箱 | 箱 | 165 | 120 | 55 | 45 |
普通2号自营纸箱 | 箱 | 200 | 140 | 70 | 67 |
普通3号自营纸箱 | 箱 | 200 | 150 | 150 | 103 |
普通4号自营纸箱 | 箱 | 270 | 200 | 90 | 132 |
普通5号自营纸箱 | 箱 | 300 | 200 | 170 | 179 |
2 思路
2.1 问题一
这个一个目标规划中的三维装箱算法问题。根据附件1.csv文件中的订单数据,可以得到以下信息:
- 每个订单有多个产品,每个产品的长、宽、高和数量都不同。
- 每个订单都需要使用一定数量的耗材。
- 每个耗材包括多种不同的规格和重量。
为了更高效地计算每个订单所需的装箱量,可以使用三维建模软件来模拟不同尺寸和形状的箱子和袋子的使用情况,大概的建模过程如下:
- 首先需要将所有的产品按照其长、宽、高进行归一化,使得所有产品的尺寸单位都相同。例如,可以将所有产品的长、宽、高除以一个标准长度(比如170mm),得到归一化后的尺寸。
- 然后需要确定每个产品最适合使用的尺寸和形状的箱子或袋子,以及需要使用的数量。这个过程可以根据实际情况进行优化算法,可以考虑以下因素:
- 箱子或袋子的尺寸是否能够容纳产品?
- 箱子或袋子的形状是否能够适应产品的形状?
- 使用单个箱子或袋子时是否能够满足耗材数量要求?
- 如果使用多个箱子或袋子,则它们的尺寸和形状是否能够最大化地利用空间?
- 如果使用多个箱子或袋子,则它们之间是否存在重叠部分,导致浪费空间?
- 对于每个订单,需要计算出它需要使用的箱子或袋子的总数量和总体积。具体的计算方法取决于选择的优化策略。一般来说,可以考虑以下两种策略:
- 贪心算法:每次选择能够使耗材数量最少的产品组合,并尝试使用最合适的箱子或袋子来装载它们。如果当前的组合无法满足耗材数量要求,则继续选择其他产品组合,直到找到合适的组合或者已经没有更多的可选项为止。这种策略的优点是速度较快,但可能会出现无法满足耗材数量要求的组合。
- 动态规划算法:预先计算出所有可能的组合的耗材数量和体积,然后根据实际需求逐步选择合适的组合和箱子或袋子。这种策略的优点是能够确保满足所有的耗材数量要求,但计算量较大。
2.2 问题二
我将附件1拆分为两个csv文件,方面后续的讲解,订单数据.csv和全部耗材数据.csv数据,可以采用以下优化方案来改变耗材尺寸,同时尽量减少使用箱子或袋子的数量,并且总体积不能超过原方案的总体积。对于这个题的建模过程如下。
- 确定优化方案的目标和约束条件:减少使用箱子或袋子数、总体积不能超过原方案的总体积、耗材总体积越小越好。
- 建立数学模型:定义一个函数$f(d_2)$,表示将所有产品放入尺寸为$d_2$的箱子或袋子中所需的最小空间。
- 设计算法:根据上述数学模型,设计算法来计算最优的$d_2$尺寸。具体来说,可以采用贪心算法或者动态规划算法等方法进行计算。
- 实现算法:将设计的算法实现到程序中,并调用该程序来计算最优的$d_2$尺寸。
- 分析算法性能:对算法进行性能分析,包括时间复杂度、空间复杂度等方面的评估,以确定算法是否满足要求。
- 不断优化算法:如果算法性能不够理想,可以对算法进行优化,以提高其效率和准确性。
2.3 问题三
(1)问题一改进
在贪心算法或者动态规划算法的基础上,考虑耗材的柔性属性,将每个产品的尺寸进行归一化后,计算出产品在不同尺寸下能够放入箱子或袋子中的最小体积。如果产品的形状存在柔性或可轻微挤压的属性,那么产品放入尺寸为k的箱子或袋子中时,长、宽、高都不超过 0.5×k的限制。
(2)问题二改进
在原有模型的基础上,考虑货物与耗材的柔性属性,即当货物或耗材具有柔性或可轻微挤压的属性时,在计算占用空间时应将长、宽、高都限制在原尺寸的5%以内。对于每个产品,将其长、宽、高分别除以$d_2$,得到三个比例系数r1,r2,r3,然后将它们相乘即可得到占用的空间。
3 建模方案
3.1 问题一
以下是针对每个订单使用贪心算法的三维装箱算法,以减少耗材数量和优化耗材总体积为目标:
首先,需要将所有产品按照尺寸进行归一化,使得所有产品的尺寸单位都相同。例如,对于长、宽、高分别为170mm、110mm、27mm的产品,可以将其归一化为170mm×110mm×27mm的尺寸。
然后,需要计算出每个订单需要使用的箱子或袋子的总数量和总体积。具体的计算方法取决于选择的优化策略。
对于每个订单,可以使用三维贪心算法来进行装箱。具体步骤如下:
。。。略,请下载完整文档
下面是具体的数学公式说明:
设dp[i][j][k] 表示在前 i个产品中选择尺寸为 j的产品放入尺寸为k 的箱子或袋子的最优解,其中dp[i][j][k] 的定义如下:
。。。略,请下载完整文档
3.2 问题二
针对装箱数据中给出的订单部分数据附件1.csv和全部耗材数据附件2.csv数据,可以使用数学模型来优化耗材尺寸,以达到减少使用箱子或袋子数、总体积不能超过原方案的总体积、耗材总体积越小越好的目标。
假设原方案中每种耗材的尺寸为d1,数量为n1,总体积为V1;优化后方案中每种耗材的尺寸为$d_2$,数量仍为n2,总体积为V2。需要求解以下问题:
。。。略,请下载完整文档
在满足上述条件之一之后,就可以确定最优的
3.3 问题三
(1)改进问题一思路
在贪心算法的基础上,考虑耗材的柔性属性,将每个产品的尺寸进行归一化后,计算出产品在不同尺寸下能够放入箱子或袋子中的最小体积。如果产品的形状存在柔性或可轻微挤压的属性,那么产品放入尺寸为k的箱子或袋子中时,长、宽、高都不超过 0.5×k的限制。
具体数学模型如下:
。。。略,请下载完整文档
(2)问题二改进思路
在原有模型的基础上,考虑货物与耗材的柔性属性,即当货物或耗材具有柔性或可轻微挤压的属性时,在计算占用空间时应将长、宽、高都限制在原尺寸的5%以内。
对于每个产品,将其长、宽、高分别除以$d_2$,得到三个比例系数r1,r2,r3,然后将它们相乘即可得到占用的空间。具体数学模型如下:
。。。略,请下载完整文档
4 完整文档获取方式
看我知乎文章的最底部。
zhuanlan.zhihu.com/p/628512849