CN114048926B - 一种基于多叉树搜索的多箱型三维装箱优化方法及系统 - Google Patents

一种基于多叉树搜索的多箱型三维装箱优化方法及系统 Download PDF

Info

Publication number
CN114048926B
CN114048926B CN202111503424.6A CN202111503424A CN114048926B CN 114048926 B CN114048926 B CN 114048926B CN 202111503424 A CN202111503424 A CN 202111503424A CN 114048926 B CN114048926 B CN 114048926B
Authority
CN
China
Prior art keywords
box
node
goods
optimization
cargo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111503424.6A
Other languages
English (en)
Other versions
CN114048926A (zh
Inventor
张�浩
王润钦
王孙康宏
魏丽军
林利彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Bingyou Information Technology Co ltd
Original Assignee
Guangzhou Bingyou Information Technology Co ltd
Guangdong University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Bingyou Information Technology Co ltd, Guangdong University of Technology filed Critical Guangzhou Bingyou Information Technology Co ltd
Priority to CN202111503424.6A priority Critical patent/CN114048926B/zh
Publication of CN114048926A publication Critical patent/CN114048926A/zh
Priority to PCT/CN2022/086791 priority patent/WO2023103243A1/zh
Priority to JP2023503127A priority patent/JP7453722B2/ja
Application granted granted Critical
Publication of CN114048926B publication Critical patent/CN114048926B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06313Resource planning in a project environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于多叉树搜索的多箱型三维装箱优化方法及系统,包括下述步骤:建立模型:建立多箱型三维装箱优化模型;构建多叉树搜索结构:构建求解多箱型三维装箱优化问题的多叉树搜索结构;优化算法:在多叉树搜索过程中,每次拓展生成节点时,调用一次单箱三维装箱优化算法,获取最优的单箱装载方案;在多叉树搜索过程中,使用启发式剪枝策略和漏斗式的节点数控制策略优化算法;输出结果;本申请旨在提供一种基于多叉树搜索的多箱型三维装箱优化方法及系统,通过调用单箱三维装箱优化算法获取当前最优装箱方案,并运用启发式剪枝策略与漏斗式的节点数控制策略来缩减树的搜索规模,提高搜索效率,减少大量冗余搜索,缩短计算时间。

Description

一种基于多叉树搜索的多箱型三维装箱优化方法及系统
技术领域
本发明涉及物品装箱技术领域,尤其涉及一种基于多叉树搜索的多箱型三维装箱优化方法及系统。
背景技术
三维装箱问题广泛存在于码头装载、航空集装器装载、码垛等物流行业,实现装箱问题的优化对物流企业增加利润起着关键的作用。目前已有很多学者致力于研究单箱三维装箱问题,单箱三维装箱这个领域已经存在很多优秀的算法。但对于多箱型三维装箱问题,目前研究比较少,该问题广泛存在于以下场景:
1、在物流分拣打包过程中,物流公司需要将订单里的货物分拣打包到不同纸箱中,目标是选择最优的纸箱组合并制定装载方案,使纸箱的装载率最大,纸箱成本最低;
2、在物流配送过程中,物流公司需要将客户订单的货物装载到多种不同规格的车型或者货柜中,目标是使得车厢或货柜的装载率最高,运输成本最小;
3、在航空货运企业中,企业需要将客户订单的货物装载到不同规格的集装器中然后再装载到飞机的货舱中,目标是最大化集装器的装载率,使得空运成本最低。
近年来,得益于网上购物的便捷,越来越多的人选择在网络上购买需要的产品,巨大的交易量给物流企业带来很大的挑战。多箱型三维装箱优化问题广泛存在于各种物流企业,目前大多数企业在选择箱子的时候主要依靠员工的经验。由于箱子选择是一个组合优化问题,随着数据量的增大,计算规模呈现指数级增长,员工很难凭借经验挑选出较优的箱型组合,导致包装材料被大量浪费,使得运输成本较高。对于单箱三维装箱优化问题已有许多学者研究,许多学者设计的算法可以求出箱子空间利用率为90%左右的较高质量的解,但物流行业需要解决的问题不仅仅是提高单个箱子的空间利用率,而是需要从整体去优化装载结果。
发明内容
本发明的目的在于提出一种基于多叉树搜索的多箱型三维装箱优化方法及系统,通过调用单箱三维装箱优化算法获取当前最优装箱方案,并运用启发式剪枝策略与漏斗式的节点数控制策略来缩减树的搜索规模,提高搜索效率,减少大量冗余搜索,缩短计算时间。
为达此目的,本发明采用以下技术方案:一种基于多叉树搜索的多箱型三维装箱优化方法,包括下述步骤:建立模型:建立多箱型三维装箱优化模型;构建多叉树搜索结构:构建求解多箱型三维装箱优化问题的多叉树搜索结构;优化算法:在多叉树搜索过程中,每次拓展生成节点时,调用一次单箱三维装箱优化算法,获取最优的单箱装载方案;在多叉树搜索过程中,使用启发式剪枝策略和漏斗式的节点数控制策略优化算法;输出结果:进行实验和分析,并输出装载率结果。
优选的,在建立模型的步骤中,给定S种规格的箱子,S∈[1,S],每种箱子的体积为Vs,从多种箱子中选出一个或多个的一种或多种箱子,将总数为n的货物全部装载,每个货物的体积为Vi,i∈[1,n],使得箱子的装载率最高,即装载完所有货物所用的箱子总体积最小。
优选的,在建立模型的步骤中,以x轴的正方向为前方向,x轴的负方向为后方向,以y轴的正方向为右方向,y轴的负方向为左方向,以z轴的正方向为上方向,x轴的负方向为下方向,建立正向的直角坐标系;定义:位于坐标系内的货物的后左下的角为A点,位于坐标系内的货物的前右上的角为B点;
建立模型:最小化装载完所有货物所使用的箱子总体积为:
Figure BDA0003402536150000031
以使得:当f箱子中装有货物时,yf=1,有公式:
Figure BDA0003402536150000032
当所有货物必须全被装载完,且一个货物只能被装载到一个箱子中时,有公式:
Figure BDA0003402536150000033
当任意一个货物被装载到箱子之后,A,B两点的坐标均不能超出箱子的尺寸,有公式:
x方向:(x1)if·yif≤Lf,(x2)if·yif≤Lf
y方向:(y1)if·yif≤Wf,(y2)if·yif≤Wf
z方向:(z1)if·yif≤Hf,(z2)if·yif≤Hf
当货物只能以六种方式的其中一种方式摆放,且B点坐标可以由A点坐标推导获得,有公式:
Figure BDA0003402536150000034
A点坐标推导出B点坐标的公式有:
(x2)if-(x1)if=li;(y2)if-(y1)if=wi;(z2)if-(z1)if=hi
当同一箱子中任意两个货物不能相交,即k货物可以在i货物的前后左右上下,有公式:
前:(x1)kf-(x2)if=α,α≥0;后:(x1)if-(x2)kf=β,β≥0;
左:(y1)if-(y2)kf=γ,γ≥0;右:(y1)kf-(y2)if=δ,δ≥0;
上:(z1)kf-(z2)if=ε,ε≥0;下:(z1)if-(z2)kf=ζ,ζ≥0;
i,k=1,2,…,n且i≠k;
上述公式可转化为:
yif(yikf1α+yikf2β+yikf3γ+yikf4δ+yikf5ε+yikf6ζ)≥0;
yif(yikf1+yikf2+yikf3+yikf4+yikf5+yikf6-1)≥0;
其中,S为可选择的箱子种数;
numS为初步预测第S种箱子将会使用的数量;
F为
Figure BDA0003402536150000041
f为箱子编号f=1,2,…,F;
Vf为f箱子的体积;Lf为f箱子的长;Wf为f箱子的宽;Hf为f箱子的高;
yf为零一变量,表示第f个箱子是否被使用;
yif为零一变量,表示第i个货物是否被装载到f箱子中;
M为无穷大的数;
(x1)if为i货物在f箱子中后左下位置的x坐标;
(x1)kf为k货物在f箱子中后左下位置的x坐标;
(y1)if为i货物在f箱子中后左下位置的y坐标;
(y1)kf为k货物在f箱子中后左下位置的y坐标;
(z1)if为i货物在f箱子中后左下位置的z坐标;
(z1)kf为k货物在f箱子中后左下位置的z坐标;
(x2)if为i货物在f箱子中前右上位置的x坐标;
(x2)kf为k货物在f箱子中前右上位置的x坐标;
(y2)if为i货物在f箱子中前右上位置的y坐标;
(y2)kf为k货物在f箱子中前右上位置的y坐标;
(z2)if为i货物在f箱子中前右上位置的z坐标;
(z2)kf为k货物在f箱子中前右上位置的z坐标;
mi为货物的摆放方式,i=1,2,3,4,5,6;
li为i货物的长;wi为i货物的宽;hi为i货物的高;
yikfq为零一变量,i,k=1,2,…,n,q=1,2,3,4,5,6。
优选的,在优化算法的步骤中,单箱三维装箱优化算法具体采用下述步骤:
表示剩余空间:采用极大空间表示箱子内的剩余空间;
生成一个块列表:为弱异构算例构造简单块,为强异构算例构造可一刀切块:
从剩余空间列表选择合适的空间:选取曼哈顿距离最小的剩余空间作为合适的空间;
选择适应度最高的块:选择适应度最高的块放入剩余空间:
确定位置:根据d步贪婪往前看树搜索确定位置,并将所选适应度最高的块放入剩余空间;
搜索算法:采用基于双倍迭代的贪婪往前看树搜索算法对整个过程进行搜索。
优选的,在优化算法步骤中,包括基于多叉树搜索求解多箱型三维装箱优化问题的基础:
步骤一:创建根节点并初始化根节点的属性值:unplacedCargos设置为全部待装载的货物集合,usedV设置为零,bestUsedV为装载完所有货物的最小所用箱子总体积,设置为无穷大;
步骤二:拓展出深度为1的节点:由于处于根节点时,所有货物都未被装载,货物列表不为空,则必须拓展出根节点的子节点;
步骤三:遍历每个深度为1的节点,首先判断节点的未装载货物列表是否为空,若为空,则说明该分支中货物已经被全部装载完,该节点无须再往下拓展出子节点,此时需要判断当前节点的usedV是否小于bestUsedV,若小于,则更新bestUsedV为当前节点的usedV;若不为空,该节点还需要往下拓展,进入递归搜索;
步骤四:当结束整棵树的拓展,即所有叶子节点的未装载货物列表都为空之后,返回bestUsedV和最优解对应分支所使用的箱子列表。
优选的,在优化算法步骤中,基于多叉树搜索求解多箱型三维装箱优化问题的算法优化包括使用启发式剪枝策略进行优化,节点对象增加属性:unPlacedVc:到当前节点为止,还未被装载的货物总体积;
使用bestUsedV实时存储树搜索过程搜索到的装载完所有货物所使用的最小箱子总体积;预测到一个节点对应的usedV一定大于bestUsedV,则不需要再往该节点拓展,把这些节点全部剪掉;
通过下列公式预测一个子节点的最小usedV:
预测装载完所有货物的最小所用箱子体积=node.usedV+nextBoxVolume+getMinVolume(boxList,node.unplacedVc-usedVolume),其中:
node.usedV表示到当前节点为止已使用箱子总体积;
nextBoxVolume表示将要拓展到的下一子节点所用箱子的体积;
boxList表示可选箱子集合;
node.unplacedVc表示到当前节点为止还未装载的货物总体积;
usedVolume表示与当前节点同父节点且所用箱子类型与将要拓展到的下一子节点所用箱子类型相同的节点中箱子所能装载的货物总体积;
getMinVolume表示获取由箱子列表可组合出大于等于(node.unplacedVc-usedVolume)的最小体积。
优选的,在优化算法步骤中,基于多叉树搜索求解多箱型三维装箱优化问题的算法优化包括使用漏斗式的节点数控制策略进行优化:
对于深度为1的节点,对装载率大于或等于最大装载率减公差的范围的节点进行拓展;
对于深度大于等于2的节点,将相同父节点的子节点按照装载率降序排序,然后只对retainNum个装载率排名靠前的节点进行拓展。
优选的,在输出结果的步骤中,包括计算实验与分析步骤:选取多种不同规格的货物,且所有货物的长、宽、高都可以作为高,货物装载到箱子中需要满足全支撑约束,即每件货物的底部必须被其他货物顶部或者箱子底部全部支撑,对所使用的各箱子的装载率进行实验和分析,得到各箱子装载率的结果。
一种基于多叉树搜索的多箱型三维装箱优化系统,该系统应用上述的一种基于多叉树搜索的多箱型三维装箱优化方法。
本发明的一个技术方案的有益效果:本申请通过对多箱型三维装箱优化问题进行建模,通过提出了一种多叉树分层搜索算法来进行多箱型装箱搜索,在搜索的过程中,不断调用单箱三维装箱优化算法获取当前最优装箱方案,并运用启发式剪枝策略与漏斗式的节点数控制策略来缩减树的搜索规模,提高搜索效率,减少大量冗余搜索,缩短计算时间,降低对运行设备的硬件需求,保证该算法能在较短时间内搜索到最优解或最优解的近似解,合理解决多箱型三维装箱优化问题不仅可以减少箱子的浪费率,也可以减少填充物的使用量,大大降低了物流成本,还可以加快工作人员的工作效率。
附图说明
图1是本发明一个实施例的整体流程图;
图2是本发明一个实施例的坐标示意图;
图3是本发明一个实施例货物的摆放方式示意图;
图4是本发明一个实施例箱子内剩余空间的示意图;
图5是本发明一个实施例生成块的示意图,图5中a为简单块示意图,图5中b为可一刀切块示意图;
图6是本发明一个实施例剩余空间与箱子之间的锚距示意图;
图7是本发明一个实施例往前看两步树搜索的示意图;
图8是本发明一个实施例单箱装箱算法总流程的示意图之一,图8中的(a)线与图9中的(a)线连接;
图9是本发明一个实施例单箱装箱算法总流程的示意图之二,图8中的(b)线与图10中的(b)线连接;
图10是本发明一个实施例单箱装箱算法总流程的示意图之三;
图11是本发明一个实施例树搜索解决多箱型三维装箱优化问题的示意图;
图12是本发明一个实施例漏斗式搜索的示意图;
图13是本发明一个实施例使用优化策略前的示意图;
图14是本发明一个实施例使用优化策略后的示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
参阅图1至图14所示,一种基于多叉树搜索的多箱型三维装箱优化方法,包括下述步骤:建立模型:建立多箱型三维装箱优化模型;构建多叉树搜索结构:构建求解多箱型三维装箱优化问题的多叉树搜索结构;优化算法:在多叉树搜索过程中,每次拓展生成节点时,调用一次单箱三维装箱优化算法,获取最优的单箱装载方案;在多叉树搜索过程中,使用启发式剪枝策略和漏斗式的节点数控制策略优化算法;输出结果:进行实验和分析,并输出装载率结果。
本申请通过对多箱型三维装箱优化问题进行建模,通过提出了一种多叉树分层搜索算法来进行多箱型装箱搜索,在搜索的过程中,不断调用单箱三维装箱优化算法获取当前最优装箱方案,并运用启发式剪枝策略与漏斗式的节点数控制策略来缩减树的搜索规模,提高搜索效率,减少大量冗余搜索,缩短计算时间,降低对运行设备的硬件需求,保证该算法能在较短时间内搜索到最优解或最优解的近似解。
随着电商行业的崛起,网络购物产生的订单量十分巨大,合理解决多箱型三维装箱优化问题不仅可以减少箱子的浪费率,也可以减少填充物的使用量,大大降低了物流成本,还可以加快工作人员的工作效率。
本申请中,提及的术语解释:单箱三维装箱优化问题:给定一个货物列表,每件货物的尺寸可表示为li×wi×hi,要求将货物正交地装载到长为L,宽为W,高为H的箱子中,目标是合理计算出每个货物在箱子中的位置,使得箱子的空间利用率尽可能高。
多箱型装箱优化问题:给定有一组数量有限且三维尺寸相同或不同的待装载货物,有一组不同三维尺寸的可选箱子,需要从中选择一个或多个相同或不同类型的箱子将给定货物全部装载完毕,使得箱子的总空间利用率最高。
优选的,在建立模型的步骤中,给定S种规格的箱子,S∈[1,S],每种箱子的体积为Vs,从多种箱子中选出一个或多个的一种或多种箱子,将总数为n的货物全部装载,每个货物的体积为Vi,i∈[1,n],使得箱子的装载率最高,即装载完所有货物所用的箱子总体积最小。
具体地,在建立模型的步骤中,以x轴的正方向为前方向,x轴的负方向为后方向,以y轴的正方向为右方向,y轴的负方向为左方向,以z轴的正方向为上方向,x轴的负方向为下方向,建立正向的直角坐标系;
定义:位于坐标系内的货物的后左下的角为A点,位于坐标系内的货物的前右上的角为B点;如图2所示,使用货物的一对对角坐标,即可表示一个货物的摆放位置以及摆放方向;
模型准备:首先决定第S种箱子可能使用的数量,即
Figure BDA0003402536150000101
是对箱子体积进行放缩,因为箱子的实际利用率一般低于100%。但该参数不一定设置为80%,参数设置的数字越低,用于模型求解的箱子数量会越多,求到最优解的几率越大,但决策变量的个数也会大幅度增加,计算规模会更大;
建立模型:最小化装载完所有货物所使用的箱子总体积为:
Figure BDA0003402536150000102
以使得:当f箱子中装有货物时,yf=1,有公式:
Figure BDA0003402536150000103
当所有货物必须全被装载完,且一个货物只能被装载到一个箱子中时,有公式:
Figure BDA0003402536150000111
当任意一个货物被装载到箱子之后,A,B两点的坐标均不能超出箱子的尺寸,有公式:
x方向:(x1)if·yif≤Lf,(x2)if·yif≤Lf
y方向:(y1)if·yif≤Wf,(y2)if·yif≤Wf
z方向:(z1)if·yif≤Hf,(z2)if·yif≤Hf
当货物只能以六种方式的其中一种方式摆放,一种货物被装载到箱子中时,因为不同的边都可以作为长、宽、高,即任何一个面都可作为底面,货物的排列方式共有六种,即货物有六种摆放方式,且B点坐标可以由A点坐标推导获得,有公式:
Figure BDA0003402536150000112
A点坐标推导出B点坐标的公式有:
(x2)if-(x1)if=li;(y2)if-(y1)if=wi;(z2)if-(z1)if=hi
当同一箱子中任意两个货物不能相交,即k货物可以在i货物的前后左右上下,有公式:前:(x1)kf-(x2)if=α,α≥0;后:(x1)if-(x2)kf=β,β≥0;左:(y1)if-(y2)kf=γ,γ≥0;右:(y1)kf-(y2)if=δ,δ≥0;上:(z1)kf-(z2)if=ε,ε≥0;下:(z1)if-(z2)kf=ζ,ζ≥0;i,k=1,2,…,n且i≠k;上述公式可转化为:
yif(yikf1α+yikf2β+yikf3γ+yikf4δ+yikf5ε+yikf6ζ)≥0;
yif(yikf1+yikf2+yikf3+yikf4+yikf5+yikf6-1)≥0;
其中,S为可选择的箱子种数;numS为初步预测第S种箱子将会使用的数量;
F为
Figure BDA0003402536150000121
f为箱子编号f=1,2,…,F;Vf为f箱子的体积;Lf为f箱子的长;Wf为f箱子的宽;Hf为f箱子的高;
yf为零一变量,表示第f个箱子是否被使用;yif为零一变量,表示第i个货物是否被装载到f箱子中;M为无穷大的数;
(x1)if为i货物在f箱子中后左下位置的x坐标;
(x1)kf为k货物在f箱子中后左下位置的x坐标;
(y1)if为i货物在f箱子中后左下位置的y坐标;
(y1)kf为k货物在f箱子中后左下位置的y坐标;
(z1)if为i货物在f箱子中后左下位置的z坐标;
(z1)kf为k货物在f箱子中后左下位置的z坐标;
(x2)if为i货物在f箱子中前右上位置的x坐标;
(x2)kf为k货物在f箱子中前右上位置的x坐标;
(y2)if为i货物在f箱子中前右上位置的y坐标;
(y2)kf为k货物在f箱子中前右上位置的y坐标;
(z2)if为i货物在f箱子中前右上位置的z坐标;
(z2)kf为k货物在f箱子中前右上位置的z坐标;
mi为货物的摆放方式,i=1,2,3,4,5,6;li为i货物的长;wi为i货物的宽;hi为i货物的高;yikfq为零一变量,i,k=1,2,…,n,q=1,2,3,4,5,6。
建立最小化装载完所有货物所使用的箱子总体积的模型,并对该模型进行算法优化,从而获得最优解。
本申请中,在优化算法的步骤中,在使用多叉树搜索的时候,每拓展一个节点都会调用一次单箱三维装箱优化算法,即所采用的单箱三维装箱优化算法基于块构建方法,块指一个货物的集合;在将所给货物组合成块之后,每一步都将块放入箱子的剩余空间中,重复这一步骤,直到所有块已经被装载完或箱子已经没有剩余空间可以被用来装载块;单箱三维装箱优化算法具体采用下述步骤:
表示剩余空间:采用极大空间表示箱子内的剩余空间;当箱子中存在一个货物时,剩余空间可以用三个长方体/正方体来表示,其中每个长方体/正方体都不与货物发生相交;如图4所示为三个剩余空间的表示;
生成一个块列表:为弱异构算例构造简单块,为强异构算例构造可一刀切块:
简单块:仅由一种类型的货物组成,所有货物都以相同的方向放置;如图5中a所示为简单块的构造方式;
可一刀切块:由多个类型货物/或以不同方向放置的货物组成;如图5中b为可一刀切块的构造方式;
判断异构性:将每个类型的货物的平均货物数量ht=∑kNk/K,作为判定异构性的指标,当ht>6时,为弱异构算例,构造简单块;否则为强异构算例,构造可一刀切块;
从剩余空间列表选择合适的空间:选取曼哈顿距离最小的剩余空间作为合适的空间;
曼哈顿距离:对于两个点,如果(x1,y1,z1)是A点的坐标,(x2,y2,z2)是B点的坐标,那么它们的曼哈顿距离是|x1-x2|+|y1-y2|+|z1-z2|;
剩余空间选择策略:剩余空间有八个角点,箱子也有八个角点,箱子的每一个角点和对应的剩余空间的角点一一对应组成了八组角点:(A1,B1),(A2,B2),…,(A8,B8),曼哈顿距离最小的角称为锚角,锚角与其对应的箱子角点之间的距离为锚距,假如A2-B2的曼哈顿距离最短,则A2为锚角,A2-B2之间的曼哈顿距离称为锚距;当选择剩余空间时,选择锚距最小的空间作为合适的空间;如图6所示为剩余空间与箱子之间的锚距;
这样是优先对靠近箱子角、箱子边、箱子面的剩余空间进行装载,使得剩余的空间聚集于箱子的中部,有助于保证可用剩余空间的连续性。若两个空间锚距相等,优先选用字典序较小的空间。
选择适应度最高的块:选择适应度最高的块放入剩余空间:
定义:块b相对于给定剩余空间r的适应度为∫(r,b)=V-(Vloss+Vwaste),其中V是块中货物的总体积,Vloss是块b被放置到r中浪费的体积,Vwaste是块b中浪费的块体积,即块的体积减去块中货物的总体积;
确定位置:根据d步贪婪往前看树搜索确定位置,并将所选适应度最高的块放入剩余空间;
确定块放入剩余空间的位置:每当一个块被放置到一个剩余空间中时,总是被放置为块的一个角与剩余空间的一个角重合,由于任何块都可以被放置在剩余空间的八个角中的任何一个角上,给定|R|个剩余空间和|B|个块,最多有8|R||B|个可能的放置位置,使用树搜索策略来确定块的最优放置位置;
对于树的根节点,我们根据适应度函数来度量m个放置位置,从而得到m个深度为1的节点。对于每个深度为1的节点,我们再次度量m个放置位置,得到m2个深度为2的节点,根据此思路不断将树扩展到深度d;对于深度为d的每个节点,我们使用贪心方法来选择最优的放置方案,即选择装载货物体积最大的位置,在树搜索期间,对于给定的状态S,通过调用函数place(S,p)来进入执行放置p后的下一个状态。
如图7所示给出了一颗m=3,d=2的树,由于最优位置在S3的子树下,因此p3是s的最佳位置。当前状态的m个放置位置获得方式:给定两个整数m1和m2,满足m1×m2≤m,根据函数rank从剩余空间列表中选择m1个剩余空间,对于每一个选定的剩余空间r,根据适应度降序排序并选择出前m2个最适合r的块,从而产生最多可达m个放置位置。
搜索算法:采用基于双倍迭代的贪婪往前看树搜索算法对整个过程进行搜索。
如图8所示,solve函数为算法总入口,先根据算例的异构性强弱对块进行构建,然后进入装箱迭代优化过程,在每一次迭代中调用贪婪往前看方法来生成完整的装载方案,接着与最优解进行比较,若当前解比全局最优解更好,则更新全局最优解;算法在每次迭代完成之后将w加倍,即m会扩大,进而扩大树的搜索范围,目标是寻找更优的解,直到计算时间达到时间上限,返回搜索过程中找到的全局最优解;rank函数用于从剩余空间列表中寻找合适的剩余空间,并根据所选择的剩余空间挑选几个匹配度较高的块,最终返回一个放置位置集合供1a函数挑选出当前最适合的放置位置。w是一个控制m大小的参数,初始的时候设置为1,后面每次迭代之后不断加倍,使得m变大,这样树的搜索规模会不断加大,直到达到设置的计算时间上限,参考图8所示。
通过在使用多叉树搜索,每拓展一个节点都会调用一次单箱三维装箱优化算法,对箱子的剩余空间进行重新划分和装载,确定块的最适合的摆放位置,直至所有块被装载完或箱子没有剩余空间可以装载,从而完成装载工作。
优选的,在优化算法步骤中,包括基于多叉树搜索求解多箱型三维装箱优化问题的基础:步骤一:创建根节点并初始化根节点的属性值:unplacedCargos设置为全部待装载的货物集合,usedV设置为零,bestUsedV为装载完所有货物的最小所用箱子总体积,设置为无穷大;步骤二:拓展出深度为1的节点:由于处于根节点时,所有货物都未被装载,货物列表不为空,则必须拓展出根节点的子节点,即拓展出如图9的节点1、2、3;步骤三:遍历每个深度为1的节点,即对如图9的节点1、2、3进行遍历,首先判断节点的未装载货物列表是否为空,若为空,则说明该分支中货物已经被全部装载完,该节点无须再往下拓展出子节点,如图9的节点13不再有子节点,此时需要判断当前节点的usedV是否小于bestUsedV,若小于,则更新bestUsedV为当前节点的usedV;若不为空,该节点还需要往下拓展,进入递归搜索;步骤四:当结束整棵树的拓展,即所有叶子节点的未装载货物列表都为空之后,返回bestUsedV和最优解对应分支所使用的箱子列表。
节点需要存储的信息如下:1、unplacedCargos,当前节点对应的未装载货物列表:如总货物列表为{cargo1,cargo2,cargo3,cargo4,cargo5},root节点拓展到了Box3,Box3装载了货物{cargo1,cargo2,cargo5},则当前节点对应的未装载货物列表为{cargo3,cargo4};
2、usedV,到当前节点为止已经使用的箱子总体积:如root拓展到Box3,接着又拓展到Box3,则已经使用的箱子体积为2VBox3
给定一组数据,数据中包含若干个货物和若干种箱型,可供选择的箱型有{Box1,Box2,Box3},并且各箱型按体积大小降序排序为Box1>Box2>Box3,使用树搜索来解决多箱型三维装箱优化问题的过程如下:
将货物存储到货物集合中,从树的根节点开始,先分别使用每种箱型来对货物集合进行装载计算,得到计算结果之后,将计算结果存储到根节点的子节点中,如可供选择的箱型数量为3,则根节点的子节点数量为3。得到根节点的3个子节点,即图9的节点1、2、3,之后,再对根节点的子节点执行同样的搜索流程。对于父节点相同的子节点,搜索过程中优先对装载率较高的子节点进行拓展。如图9,由于节点3的装载率最高,优先对其进行拓展,得到节点4、5、6;节点4、5、6中,节点5的装载率最高,即对优先对节点5进行拓展,得到节点7,8,9;节点7、8、9中,节点9装载率最高,应该对节点9进行拓展,但节点9对应的未装载货物列表为空,即装载完成,因为当前的全局最优解是无穷大,所以全局最优解被更新。处理完节点9之后,继续对节点8进行拓展,节点8中的未装载货物也为空,即装载完成,但VBax3+VBax2+VBox2>VBox3+VBox2+VBox3,因此全局最优解没有被更新。同样,节点7的未装载货物列表也为空,无法再拓展,于是回到节点4、6中,因为节点6的装载率更高,优先对节点6进行拓展,后面的搜索流程也和前面相同,即基于深度优先遍历的策略。当没有叶子节点可以继续拓展,树搜索过程结束,找到的全局最优解为VBox3+VBox1,即先使用Box3和Box1来装载这批货物,这样箱子的空间利用率最高。
求得bestUsedV的大小,并可以根据求出bestUsedV的叶子节点获得整个分支使用了哪些箱子。虽然上面的方法可以求出问题的解,但是这种方式属于暴力搜索的一种,随着问题规模变大,整棵树的大小会呈现爆炸式地增长,算法的时间复杂度和空间复杂度都很高,需对搜索过程进行优化以缩小整棵树的规模。
具体地,在优化算法步骤中,基于多叉树搜索求解多箱型三维装箱优化问题的算法优化包括使用启发式剪枝策略进行优化,节点对象增加属性:unPlacedVc:到当前节点为止,还未被装载的货物总体积;
在使用启发式剪枝策略之后,树搜索过程中,并非所有未装载货物列表不为空的叶子节点都需要继续往下拓展节点;问题的目标是最大化箱子的空间利用率,空间利用率=货物总体积/所用箱子总体积,即最小化装载完所有货物使用的箱子总体积;使用bestUsedV实时存储树搜索过程搜索到的装载完所有货物所使用的最小箱子总体积;预测到一个节点对应的usedV一定大于bestUsedV,则不需要再往该节点拓展,把这些节点全部剪掉,减少大量冗余的搜索,缩小树的规模;
通过下列公式预测一个子节点的最小usedV:预测装载完所有货物的最小所用箱子体积=node.usedV+nextBoxVolume+getMinVolume(boxList,node.unplacedVc-usedVolume),其中:
node.usedV表示到当前节点为止已使用箱子总体积;如图9的节点4已使用箱子总体积为VBox3+VBox1
nextBoxVolume表示将要拓展到的下一子节点所用箱子的体积;若当前节点为图9的节点5,当前节点将向节点7拓展,则nextBoxVolume为VBox1
boxList表示可选箱子集合;
node.unplacedVc表示到当前节点为止还未装载的货物总体积;
usedVolume表示与当前节点同父节点且所用箱子类型与将要拓展到的下一子节点所用箱子类型相同的节点中箱子所能装载的货物总体积;若当前节点为图9中的节点5,将要向节点9拓展,则usedVolume为节点6的Box3所能装载的货物总体积;若当前节点为图9中的节点12,将要向节点14拓展,则usedVolume为节点11的Box2所能装载的货物总体积。之所以使用该体积来预测子节点的最小体积是因为随着货物被装载,相同类型的箱子中,在后段时间装箱所能得到的空间利用率一定小于等于前段时间装箱所能得到的空间利用率。因为前段时间使用的箱子的缝隙可能可以被一些小货物所填充,当小货物被消耗完之后,后段时间所使用的的箱子的缝隙无法再得到填充,因此空间利用率会相对较低。若存在一种箱子的尺寸小于未装载货物列表中的任意一种货物尺寸,则该箱子无法再装入任何货物,装载货物体积会被赋值为零,则后面拓展节点也无需再搜索该种箱子,该种箱子能装载货物的体积一定为零,本文会将该种箱子对应的分支剪掉,进而避免冗余搜索。
getMinVolume表示获取由箱子列表可组合出大于等于(node.unplacedVc-usedVolume)的最小体积。实际装载中箱子的空间利用率小于等于100%,使用箱子的体积一定是大于等于由getMinVolume函数得到的最小体积的。通过使用Cplex求解器来求解该最小体积,该问题的建模方式如下:
obj:最小化使用箱子列表中的箱子所能组合出大于等于目标体积的最小体积
Figure BDA0003402536150000191
s.t.使用箱子列表中的箱子所能组合出的体积要大于等于目标体积
Figure BDA0003402536150000192
xi∈[0,+∞]且xi为整数
说明:Vi为第i个箱子的体积
如图12,d=1的①节点的子节点①的预测体积为:2VBox1+getMinVolume({Box1,Box2,Box3},到d=1的①节点为止未被装载的货物总体积-d=1的①节点中Boxl所能装载货物的体积),由于该节点的预测体积大于bestUsedV,所以d=1的①节点不需要再对子节点①拓展,在图12中使用虚线来表示该节点是个虚节点。在树搜索过程中,存在大量该情况,使用该剪枝策略,可以很好地缩小树的规模。在树搜索的过程中,基于贪心思想优先对装载率较高的节点进行拓展,这样先找到最优解的概率较大。如果先找到了最优解,后面会剪掉更多冗余的节点,可进一步节省计算时间。
本申请中,在优化算法步骤中,基于多叉树搜索求解多箱型三维装箱优化问题的算法优化包括使用漏斗式的节点数控制策略进行优化:
对于深度为1的节点,对装载率大于或等于最大装载率减公差的范围的节点进行拓展;若根节点的子节点1、2、3的装载率分别是57%,85%,93%,maxLoadingRate=93%,设tolerance=20%,则节点1不再往下拓展节点;
对于深度大于等于2的节点,将相同父节点的子节点按照装载率降序排序,然后只对retainNum个装载率排名靠前的节点进行拓展。如图10,若设置retainNum=1,则d=2时,只对节点6、节点14和节点24进行拓展;retainNum
在树搜索的过程中,会出现装载率较低的节点,原因是所使用的箱子不适用于对该货物集合的货物进行装载,如箱子只能装下一个货物1而无法装入其他种类的货物,但箱子装载完货物1之后的剩余空间尺寸接近货物1,这样整个箱子的空间利用率可能只有百分之五十几,存在大量的空间被浪费。算法所计算出来的箱子选择方案应该尽可能地减少上面情况的发生,因此使用漏斗式的节点控制策略来删减出现上述情况的分支。retainNum为一个节点对应的所保留的子节点个数。
对于不继续进行拓展的节点,本文会判断这些节点中的未装载货物列表是否为空,目的是尽可能避免错过最优解,假如未采取该策略,则会错过图10的节点4的解(最优解)。如果这些节点中只有一个节点的未装载货物列表为空,则判断该节点的解是否优于全局最优解,是则更新最优解,如图10的节点4的未装载货物列表为空,而节点5的未装载货物列表不为空,则直接将节点4的解与全局最优解进行比较;如果这些节点中有多个节点的未装载货物列表为空,则从中选择出装载率最高的节点,然后将该节点的解与全局最优解比较,如图10的节点16和17的未装载货物列表都为空,由于节点17的装载率更高,只用节点17的解与最优解对比。
随着算例的增大,装载完所有货物需要使用大量的箱子,即树的深度很大,为了避免无法求解,本文使用自适应调整retainNum的策略。假设一个算例中共有15个箱子可供选择,retainNum一开始被设置为10,当一分支所使用的箱子数大于30时,调整retainNum为2,这样整棵树的规模被大大缩小以避免内存溢出的发生。该策略会优先选取装载率较高的节点进行拓展,装载率较低节点被删减掉。
使用启发式剪枝策略和漏斗式的节点控制策略前后效果对比:
图11和图12是一个小算例使用优化策略前后的实际计算情况,该算例可供选择的箱子有三种,分别是Box1,体积为
Figure BDA0003402536150000211
Box2,体积为
Figure BDA0003402536150000212
Box3,体积为
Figure BDA0003402536150000213
三种箱子在图12中分别用1、2、3表示,在图11中由于树的节点比较多,不在图11中标明序号,但每个父节点对应的子节点从左到右都是1、2、3。
Figure BDA0003402536150000214
表1使用优化策略前后对比
从图11和图12和表2中可以看出,使用了优化策略之后,树的规模被大幅度减小。在优化之前,树搜索过程中存在大量的冗余搜索,这样不但会导致计算时间过长,而且随着规模扩大,计算机在运算的时候很可能出现内存溢出,浪费大量的计算机算力,而经过优化之后的树搜索可以在较短时间内搜索到最优解或最优解的的近似解。
优选的,在输出结果的步骤中,包括计算实验与分析步骤:选取多种不同规格的货物,且所有货物的长、宽、高都可以作为高,货物装载到箱子中需要满足全支撑约束,即每件货物的底部必须被其他货物顶部或者箱子底部全部支撑,对所使用的各箱子的装载率进行实验和分析,得到各箱子装载率的结果。
一种基于多叉树搜索的多箱型三维装箱优化系统,该系统应用上述的一种基于多叉树搜索的多箱型三维装箱优化方法。
通过基于多叉树搜索的多箱型三维装箱优化系统,用户可以导入计算数据并根据算例的大小对算法的部分参数进行设置,系统可以对算例进行计算并对最终结果进行可视化展示。
计算实验与分析:
本测试案例由39种不同规格共5605件货物组成,且算例中所有货物的长、宽、高都可以作为高,货物装载到箱子中需要满足全支撑约束,即每件货物的底部必须被其他货物顶部或者箱子底部全部支撑。
箱子的尺寸如下:
Figure BDA0003402536150000221
表2箱子数据
部分结果显示:一共需要使用34个箱子来装载完这些货物,总装载率达到96.32%,计算时间为1889.939秒。
在本说明书的描述中,参考术语“实施例”、“示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

Claims (3)

1.一种基于多叉树搜索的多箱型三维装箱优化方法,其特征在于,包括下述步骤:
建立模型:建立多箱型三维装箱优化模型;
在建立模型的步骤中,给定S种规格的箱子,S∈[1,S],每种箱子的体积为Vs,从多种箱子中选出一个或多个的一种或多种箱子,将总数为n的货物全部装载,每个货物的体积为Vi,i∈[1,n],使得箱子的装载率最高,即装载完所有货物所用的箱子总体积最小;
以x轴的正方向为前方向,x轴的负方向为后方向,以y轴的正方向为右方向,y轴的负方向为左方向,以z轴的正方向为上方向,x轴的负方向为下方向,建立正向的直角坐标系;
定义:位于坐标系内的货物的后左下的角为A点,位于坐标系内的货物的前右上的角为B点;
建立模型:最小化装载完所有货物所使用的箱子总体积为:
Figure DEST_PATH_IMAGE001
以使得:当f箱子中装有货物时,yf=1,有公式:
Figure 392786DEST_PATH_IMAGE002
当所有货物必须全被装载完,且一个货物只能被装载到一个箱子中时,有公式:
Figure DEST_PATH_IMAGE003
当任意一个货物被装载到箱子之后,A,B两点的坐标均不能超出箱子的尺寸,有公式:
x方向:
Figure 494734DEST_PATH_IMAGE004
y方向:
Figure DEST_PATH_IMAGE005
z方向:
Figure 408464DEST_PATH_IMAGE006
当货物只能以六种方式的其中一种方式摆放,且B点坐标由A点坐标推导获得,有公式:
Figure DEST_PATH_IMAGE007
Figure 618340DEST_PATH_IMAGE008
Figure DEST_PATH_IMAGE009
A点坐标推导出B点坐标的公式有:
Figure 933915DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE011
Figure 65819DEST_PATH_IMAGE012
当同一箱子中任意两个货物不能相交,即k货物在i货物的前后左右上下,有公式:
前:(x1kf-(x2if=α,α≥0;
后:(x1if-(x2kf=β,β≥0;
左:(y1if-(y2kf=γ,γ≥0;
右:(y1kf-(y2if=δ,δ≥0;
上:(z1kf-(z2if=ε,ε≥0;
下:(z1if-(z2kf=ζ,ζ≥0;
i,k=1,2,…,n且i≠k;
上述公式可转化为:
yif(yikf1α+ yikf2β+ yikf3γ+ yikf4δ+ yikf5ε+ yikf6ζ)≥0;
yif(yikf1+ yikf2+ yikf3+ yikf4+ yikf5+ yikf6-1)≥0;
其中,S为可选择的箱子种数;
numS为初步预测第S种箱子将会使用的数量;
F为;
f为箱子编号f=1,2,…,F;
Vf为f箱子的体积;
Lf为f箱子的长;
Wf为f箱子的宽;
Hf为f箱子的高;
yf为零一变量,表示第f个箱子是否被使用;
yif为零一变量,表示第i个货物是否被装载到f箱子中;
M为无穷大的数;
(x1if为i货物在f箱子中后左下位置的x坐标;
(x1kf为k货物在f箱子中后左下位置的x坐标;
(y1if为i货物在f箱子中后左下位置的y坐标;
(y1kf为k货物在f箱子中后左下位置的y坐标;
(z1if为i货物在f箱子中后左下位置的z坐标;
(z1kf为k货物在f箱子中后左下位置的z坐标;
(x2if为i货物在f箱子中前右上位置的x坐标;
(x2kf为k货物在f箱子中前右上位置的x坐标;
(y2if为i货物在f箱子中前右上位置的y坐标;
(y2kf为k货物在f箱子中前右上位置的y坐标;
(z2if为i货物在f箱子中前右上位置的z坐标;
(z2kf为k货物在f箱子中前右上位置的z坐标;
mi为货物的摆放方式,i=1,2,3,4,5,6;
li为i货物的长;
wi为i货物的宽;
hi为i货物的高;
yikfq为零一变量,i,k=1,2,…,n,q=1,2,3,4,5,6;
构建多叉树搜索结构:构建求解多箱型三维装箱优化问题的多叉树搜索结构;
优化算法:在多叉树搜索过程中,每次拓展生成节点时,调用一次单箱三维装箱优化算法,获取最优的单箱装载方案;
在优化算法的步骤中,单箱三维装箱优化算法具体采用下述步骤:
表示剩余空间:采用极大空间表示箱子内的剩余空间;
生成一个块列表:为弱异构算例构造简单块,为强异构算例构造可一刀切块:
从剩余空间列表选择合适的空间:选取曼哈顿距离最小的剩余空间作为合适的空间;
选择适应度最高的块:选择适应度最高的块放入剩余空间:
确定位置:根据d步贪婪往前看树搜索确定位置,并将所选适应度最高的块放入剩余空间;
搜索算法:采用基于双倍迭代的贪婪往前看树搜索算法对整个过程进行搜索;
包括基于多叉树搜索求解多箱型三维装箱优化问题的基础:
步骤一:创建根节点并初始化根节点的属性值:unplacedCargos设置为全部待装载的货物集合,usedV设置为零,bestUsedV为装载完所有货物的最小所用箱子总体积,设置为无穷大;
步骤二:拓展出深度为1的节点:由于处于根节点时,所有货物都未被装载,货物列表不为空,则必须拓展出根节点的子节点;
步骤三:遍历每个深度为1的节点,首先判断节点的未装载货物列表是否为空,若为空,则说明其所在分支中货物已经被全部装载完,该节点无须再往下拓展出子节点,此时需要判断当前节点的usedV是否小于bestUsedV,若小于,则更新bestUsedV为当前节点的usedV;若不为空,该节点还需要往下拓展,进入递归搜索;
步骤四:当结束整棵树的拓展,即所有叶子节点的未装载货物列表都为空之后,返回bestUsedV和最优解对应分支所使用的箱子列表;
基于多叉树搜索求解多箱型三维装箱优化问题的算法优化包括使用启发式剪枝策略进行优化,节点对象增加属性:unPlacedVc:到当前节点为止,还未被装载的货物总体积;
使用bestUsedV实时存储树搜索过程搜索到的装载完所有货物所使用的最小箱子总体积;预测到一个节点对应的usedV大于bestUsedV,则不需要再往该节点拓展,把这些节点全部剪掉;
通过下列公式预测一个子节点的最小usedV:
预测装载完所有货物的最小所用箱子体积= node. usedV+nextBoxVolume+getMinVolume(boxList, node.unplacedVc - usedVolume) ,其中:
node. usedV表示到当前节点为止已使用箱子总体积;
nextBoxVolume表示将要拓展到的下一子节点所用箱子的体积;
boxList表示可选箱子集合;
node.unplacedVc表示到当前节点为止还未装载的货物总体积;
usedVolume表示与当前节点同父节点且所用箱子类型与将要拓展到的下一子节点所用箱子类型相同的节点中箱子所能装载的货物总体积;
getMinVolume表示获取由箱子列表可组合出大于等于(node.unplacedVc -usedVolume)的最小体积;
基于多叉树搜索求解多箱型三维装箱优化问题的算法优化包括使用漏斗式的节点数控制策略进行优化:
对于深度为1的节点,对装载率大于或等于最大装载率减公差的范围的节点进行拓展;
对于深度大于等于2的节点,将相同父节点的子节点按照装载率降序排序,然后只对retainNum个装载率排名靠前的节点进行拓展;
在多叉树搜索过程中,使用启发式剪枝策略和漏斗式的节点数控制策略优化算法;
输出结果:进行实验和分析,并输出装载率结果。
2.根据权利要求1所述的一种基于多叉树搜索的多箱型三维装箱优化方法,其特征在于,在输出结果的步骤中,包括计算实验与分析步骤:选取多种不同规格的货物,且所有货物的长、宽、高都能作为高,货物装载到箱子中需要满足全支撑约束,即每件货物的底部必须被其他货物顶部或者箱子底部全部支撑,对所使用的各箱子的装载率进行实验和分析,得到各箱子装载率的结果。
3.一种基于多叉树搜索的多箱型三维装箱优化系统,其特征在于,该系统应用上述权利要求1至2任意一项的一种基于多叉树搜索的多箱型三维装箱优化方法。
CN202111503424.6A 2021-12-09 2021-12-09 一种基于多叉树搜索的多箱型三维装箱优化方法及系统 Active CN114048926B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111503424.6A CN114048926B (zh) 2021-12-09 2021-12-09 一种基于多叉树搜索的多箱型三维装箱优化方法及系统
PCT/CN2022/086791 WO2023103243A1 (zh) 2021-12-09 2022-04-14 一种基于多叉树搜索的多箱型三维装箱优化方法及系统
JP2023503127A JP7453722B2 (ja) 2021-12-09 2022-04-14 多分木探索に基づく多箱型3次元積載の最適化方法及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111503424.6A CN114048926B (zh) 2021-12-09 2021-12-09 一种基于多叉树搜索的多箱型三维装箱优化方法及系统

Publications (2)

Publication Number Publication Date
CN114048926A CN114048926A (zh) 2022-02-15
CN114048926B true CN114048926B (zh) 2022-04-15

Family

ID=80212744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111503424.6A Active CN114048926B (zh) 2021-12-09 2021-12-09 一种基于多叉树搜索的多箱型三维装箱优化方法及系统

Country Status (3)

Country Link
JP (1) JP7453722B2 (zh)
CN (1) CN114048926B (zh)
WO (1) WO2023103243A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114048926B (zh) * 2021-12-09 2022-04-15 广东工业大学 一种基于多叉树搜索的多箱型三维装箱优化方法及系统
CN114841432B (zh) * 2022-04-29 2023-02-17 广东工业大学 一种管材套管与装箱优化方法及系统
CN115018567B (zh) * 2022-08-10 2022-10-25 杭州盘达科技有限公司 一种国际快递运费的预测方法
CN115630765B (zh) * 2022-10-26 2023-05-30 广东工业大学 一种箱管装柜的优化方法及系统
CN116777064B (zh) * 2023-06-20 2024-03-01 广东工业大学 基于非一刀切约束和分支定价算法的二维装箱方法
CN116777063B (zh) * 2023-06-20 2024-02-27 广东工业大学 基于一刀切约束和分支定价算法的二维装箱方法
CN116993247A (zh) * 2023-09-26 2023-11-03 亿海蓝(北京)数据技术股份公司 集装箱优化装货方法和系统、可读存储介质
CN118153664A (zh) * 2024-05-10 2024-06-07 杭州彩连科技有限公司 一种启发式强化学习搜索树排版方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587466B1 (en) * 1999-05-27 2003-07-01 International Business Machines Corporation Search tree for policy based packet classification in communication networks
CN101515372A (zh) * 2009-02-04 2009-08-26 北京石油化工学院 基于虚拟地质模型的可视化分析预测方法
CN107977756A (zh) * 2017-12-21 2018-05-01 厦门大学嘉庚学院 解决三维装箱问题的三叉树规划计算方法
CN109685278A (zh) * 2018-12-28 2019-04-26 深圳蓝胖子机器人有限公司 装箱方法、设备和计算机可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722912B (zh) * 2012-05-25 2015-11-25 任伟峰 一种三维虚拟现实场景中物体按层级加卸载的方法和装置
JP6269121B2 (ja) 2014-02-06 2018-01-31 富士通株式会社 情報処理装置、評価関数学習方法およびプログラム
JP6298392B2 (ja) 2014-10-29 2018-03-20 三菱重工業株式会社 バン詰め作業計画作成装置及びバン詰め作業計画作成方法
US20210133677A1 (en) * 2019-10-31 2021-05-06 Walmart Apollo, Llc Apparatus and methods for determining delivery routes and times based on generated machine learning models
WO2021160445A1 (en) 2020-02-10 2021-08-19 A.P. Møller - Mærsk A/S A method for assigning items into one or more containers and related electronic device
CN114048926B (zh) * 2021-12-09 2022-04-15 广东工业大学 一种基于多叉树搜索的多箱型三维装箱优化方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587466B1 (en) * 1999-05-27 2003-07-01 International Business Machines Corporation Search tree for policy based packet classification in communication networks
CN101515372A (zh) * 2009-02-04 2009-08-26 北京石油化工学院 基于虚拟地质模型的可视化分析预测方法
CN107977756A (zh) * 2017-12-21 2018-05-01 厦门大学嘉庚学院 解决三维装箱问题的三叉树规划计算方法
CN109685278A (zh) * 2018-12-28 2019-04-26 深圳蓝胖子机器人有限公司 装箱方法、设备和计算机可读存储介质

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A Heuristic Approach to the Three Dimensional Strip Packing Problem Considering Practical Constraints;Qiang Liu 等;《IEA/AIE 2020》;20200904;第262-267页 *
A tree search algorithm for the container loading problem;LiuSheng 等;《Computers & Industrial Engineering》;20140930;第75卷;第20-30页 *
Algorithms for the variable-sized bin packing problem with time windows;QiangLiu 等;《Computers & Industrial Engineering》;20210211;第155卷;第1-9页 *
基于动态四叉树搜索的民航行李车码放算法;邢志伟 等;《北京航空航天大学学报(CNKI网络首发)》;20210916;第1-19页 *
求解三维装箱问题的多层树搜索算法;刘胜 等;《自动化学报》;20200630;第46卷(第06期);第1178-1187页 *

Also Published As

Publication number Publication date
JP2024503959A (ja) 2024-01-30
JP7453722B2 (ja) 2024-03-21
CN114048926A (zh) 2022-02-15
WO2023103243A1 (zh) 2023-06-15

Similar Documents

Publication Publication Date Title
CN114048926B (zh) 一种基于多叉树搜索的多箱型三维装箱优化方法及系统
CN112001535B (zh) 物流装箱方法、装置、设备及存储介质
CN110443549B (zh) 一种物流仓库中物品的装箱方案生成方法及系统
Gzara et al. The pallet loading problem: Three-dimensional bin packing with practical constraints
Burke et al. Automating the packing heuristic design process with genetic programming
CN103870893B (zh) 基于三维空间求解具有多重量约束装箱的优化方法
CN109359739A (zh) 基于遗传算法的堆叠组合方法、装置、设备和存储介质
Ren et al. A tree search method for the container loading problem with shipment priority
CN104680237A (zh) 一种多约束条件下三维装箱新型遗传算法模型
US20200065758A1 (en) Shipping carton optimization system and method
CN109447311A (zh) 基于遗传算法的适配装箱方法、装置、设备和存储介质
CN111507644B (zh) 一种多点卸货约束的三维多容器装载方法
CN108861619A (zh) 一种半离线混合码垛方法、系统及机器人
Khairuddin et al. Smart packing simulator for 3d packing problem using genetic algorithm
CN112785045A (zh) 一种运用混合模拟退火算法的堆垛最优配置空间方法
US20240083616A1 (en) Systems and methods for assembling unpacked merchandise in containers
CN113255022B (zh) 基于需求导入模型的瓦楞纸结构设计方法与系统
Allen et al. Evolving reusable 3d packing heuristics with genetic programming
Zhou et al. A swarm optimization algorithm for practical container loading problem
CN116681151A (zh) 一种基于组合堆垛与最低水平线的装箱优化方法
CN115034719A (zh) 库存分拣方法、电子设备及计算机可读存储介质
CN114229135A (zh) 确定货物包装方式的方法、装置及存储介质和电子设备
CN116187499A (zh) 货运配载方法、装置、电子设备及存储介质
CN112132643A (zh) 商品上架的方法、装置、电子设备及可读介质
CN113963140B (zh) 一种可变规格圆柱形货物错位摆放装箱系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230720

Address after: 511400 218, Building 3, No. 318, West Outer Ring Road, Guangzhou University City, Panyu District, Guangzhou City, Guangdong Province

Patentee after: GUANGZHOU BINGYOU INFORMATION TECHNOLOGY CO.,LTD.

Address before: 510062 Dongfeng East Road, Yuexiu District, Guangzhou, Guangdong 729

Patentee before: GUANGDONG University OF TECHNOLOGY

Patentee before: GUANGZHOU BINGYOU INFORMATION TECHNOLOGY CO.,LTD.

TR01 Transfer of patent right