CN103455841B - 基于改进蚁群算法和启发式算法的集装箱装载方法 - Google Patents

基于改进蚁群算法和启发式算法的集装箱装载方法 Download PDF

Info

Publication number
CN103455841B
CN103455841B CN201310301679.3A CN201310301679A CN103455841B CN 103455841 B CN103455841 B CN 103455841B CN 201310301679 A CN201310301679 A CN 201310301679A CN 103455841 B CN103455841 B CN 103455841B
Authority
CN
China
Prior art keywords
goods
space
loading
loaded
container
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
CN201310301679.3A
Other languages
English (en)
Other versions
CN103455841A (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.)
Dalian Topology Weiye Technology Co Ltd
Original Assignee
Dalian Maritime University
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 Dalian Maritime University filed Critical Dalian Maritime University
Priority to CN201310301679.3A priority Critical patent/CN103455841B/zh
Publication of CN103455841A publication Critical patent/CN103455841A/zh
Application granted granted Critical
Publication of CN103455841B publication Critical patent/CN103455841B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于改进蚁群算法和启发式算法的集装箱货物摆放方法,具有如下步骤:初始待装载化货物信息和集装箱空间信息;初始化蚁群、初始化每一只蚂蚁的货物装载链信息以及初始化信息素信息;当前的蚂蚁根据当前蚁群算法的迭代次数和最大迭代次数,生成选货概率,使用轮盘赌的方式选择启发式选货方式或蚁群选货方式;若选择启发式:考虑当前的空间的左方和后方所装载的货物和当前待装载空间,从待装载的货物中选择适合的货物进行递归装载;若选择蚁群,查询信息素矩阵,根据轮盘赌的方式选择装载货物;对选出的货物,用回溯的方式,选出当前货物的最佳摆放姿态。

Description

基于改进蚁群算法和启发式算法的集装箱装载方法
技术领域
本发明涉及一种集装箱内部货物的摆放方法,尤其涉及一种融合启发式算法和改进的蚁群算法的集装箱内部货物摆放方法。涉及专利分类号B65输送;包装;贮存;搬运薄的或细丝状材料B65G运输或贮存装置,例如装载或倾斜用输送机;车间输送机系统;气动管道输送机B65G65/00装载或卸载B65G65/30装填或排空料仓、料斗、罐或类似容器的方法或装置,而不包括这些方法或装置在特殊的化学或物理工艺过程中的使用或在特殊机械上的应用,例如不包含在其他单个小类中的。
背景技术
集装箱的布局优化问题是一个具有复杂约束条件的三维组合优化问题,理论上是NP完全问题,不可能在有限时间内获得最优解。近年来,人们不断利用蚁群算法,遗传算法,模拟退火算法等智能化算法以及启发式方法优化求解该问题,获得了一定的效果。
早在1980年,George等人就提出了沿着集装箱宽度的层的概念,结合剩余空间有效的提高了装载利用率。Gehring,Bortfeldt等人提出利用混合遗传算法求解装箱问题,首次提出了塔的概念,物品放入集装箱之前先组合成一个一个不相关的“塔”,然后将这些“塔”按照一定的规则放入集装箱,提高装载效率。王丽,张慧等人在“C.Pimpawat,N.Chaiyaratana.Three-Dimensional ContainerLoading Using A Cooperative Co-Evolutionary Genetic Algorithm[J].AppliedArtificial Intelligence,2004,18:581-601.”这篇文章中提出了将协同进化遗传算法和一定的启发式算法相融合的技术,通过对一个个较短的最优装载序列的操作,实现高效率的装载,该算法在时间空间方面都表现出了不错的性能。
但是随着问题规模的增大,以及实际应用中对算法运行时间等方面的要求,单一算法难以满足实际应用。单一的智能化算法收敛最优解过程需要较长的时间,而启发式算法能快速得到解,解的质量却不容易让人满意。
发明内容
本发明针对以上问题的提出,而研制的一种基于改进蚁群算法和启发式算法的集装箱装载方法,具有如下步骤:
—初始待装载化货物信息和集装箱空间信息;初始化蚁群算法各参数、初始化每一只蚂蚁的货物装载链信息以及初始化信息素信息;
—开始算法循环,当前的蚂蚁根据当前蚁群算法的迭代次数和最大迭代次数,生成选货概率,使用轮盘赌的方式选择启发式选货方式或蚁群选货方式;
—若选择启发式选货方式:考虑当前的空间的左方和后方所装载的货物和当前待装载空间,从待装载的货物中选择适合的货物进行递归装载;若选择蚁群选货方式,查询信息素矩阵,根据轮盘赌的方式选择装载货物;
—重复上述步骤,直到货物装载完毕或集装箱装满,输出装载链,作为集装箱内部货物的摆放方案。
所述步骤“综合考虑当前空间的左方和后方所装载的货物和当前待装载空间形态,从待装载的货物中选择适合的货物”具体为:
—若当前集装箱为空,即为首次装载,蚁群信息素为空:使用轮盘赌的方式选择一货物装载在与集装箱门相对的侧壁和该侧壁相邻侧壁形成的角落,形成上方、右方和前方的空间;
—在后续的装载中,依据该货物的上方、右方和前方空间的顺序,首先选择与上方空间体积最接近的货物填充上方空间;若遍历所有货物体积后,上方空间无法容纳至少一种待装载货物,则将该上方空间记入剩余空间链;
—按照上述规律递归的装载右方和前方空间,直到有货物完成装载;
—若所述的上方、右方或前方的空间不能单独装载任一货物,则将上方、右方或前方的空间记入剩余空间链;
—在每次装载前,待装载空间首先融合剩余空间链中的剩余空间,使当前待装载空间最大化。
在每一步装载货物时,需要满足悬空约束:
Σ S p i = ( x T i - x B i ) ( y T i - y B i )
其中,表示货物p和货物i重合部分的面积,表示货物i的左前上坐标,表示货物i的右后下坐标;其中和p的定义如下:
p ∈ { p | z T p = z B i , x B p ≤ x B i , x T p ≥ x T i , y B p ≤ y B i , y T p ≥ y T i } ∪
{ p | z T p = z B i , Max ( x T p , x T i ) - Min ( x B p , x B i ) < x T i - x B i + x T p - x B p ,
Max ( y T p , y T i ) - Min ( y B p , y B i ) < y T i - y B i + y T p - y B p }
S p i = [ ( x T i - x B i + x T p - x B p ) - ( Max ( x T p , x T i ) - min ( x B p , x B i ) ) ] &times;
[ ( y T i - y B i + y T p - y B p ) - ( Max ( y T p , y T i ) - Min ( y B p , y B i ) ) ] .
装载算法完成后,需要对得出的装载链进行重心约束和重量约束的检查:
重量约束:
&Sigma; i = 1 N g i &CenterDot; I i &le; G
重心约束:
cx 1 &le; &Sigma; i = 1 N I i &CenterDot; g i &CenterDot; x i &Sigma; i = 1 N I i &CenterDot; g i &le; cx 2 , cy 1 &le; &Sigma; i = 1 N I i &CenterDot; g i &CenterDot; y i &Sigma; i = 1 N I i &CenterDot; g i &le; cy 2 , cz 1 &le; &Sigma; i = 1 N I i &CenterDot; g i &CenterDot; z i &Sigma; i = 1 N I i &CenterDot; g i &le; cz 2
其中,gi是第i个货物的重量;G是集装箱的最大承载重量;若货物i装载则Ii=1,否则Ii=0;[cx1,cx2]为集装箱在X轴向的重心安全范围,[cy1,cy2]为集装箱在Y轴向的重心安全范围,[cz1,cz2]为集装箱在Z轴向的重心安全范围;(xi,yi,zi)为货物在集装箱中的重心坐标。
采用的蚁群算法为基于状态的改进蚁群算法:
在所述选出当前货物的最佳摆放姿态后,根据装载链生成一个多位状态值,所述状态值包含当前装载货物的种类和每种货物的数量;蚁群的信息素矩阵查询,剪枝信息的查询都需要此状态值。
所述装载链为记录一只蚂蚁对应的装载信息,至少包括装载顺序、每一个货物的摆放姿态以及放置货物的坐标。
所述蚁群算法的信息素更新模型表示为:
&tau; ij ( t + 1 ) = ( 1 - &rho; ) &tau; ij ( t ) + &Delta;&tau; ij &Delta;&tau; ij = &Sigma; a = 1 N &Delta;&tau; ij a
其中,ρ(0<ρ<1)表示信息素的挥发程度;
Δτij a表示第a只蚂蚁在状态i与状态j连接路径上的信息素浓度;
Δτij表示所有蚂蚁在状态i与状态j连接路径上释放的信息素浓度之和。
具有以所述状态值为关键字的剪枝矩阵,该矩阵为查询某一状态值对应的剩余空间总体积大小的哈希表:随着算法的执行,将蚁群装载链产生的状态值和所对应的剩余空间总体积值存储到剪枝矩阵中;在以后的迭代中,算法首先查找剪枝矩阵,若当前状态下得到的剩余空间总体积大于剪枝矩阵中的剩余空间体积,即当前状态下计算获得的解劣于剪枝矩阵中记录的解,则放弃此次迭代则放弃此次迭代。
在选出装载货物的方法后,使用回溯的方法,选出当前货物的最佳摆放姿态。
所述步骤“用回溯的方式,选出当前货物的最佳摆放姿态”具体为:
定义货物共有六种摆放姿态,hk//L,wk//W,lk//H、hk//L,lk//W,wk//H、wk//L,hk//W,lk//H、wk//L,lk//W,hk//H、lk//L,hk//W,wk//H和lk//L,wk//W,hk//H;
其中,lk、wk、hk分别表示第k类货物的长度、宽度、高度;L、W、H分别表示集装箱的长度、宽度和高度;
所述回溯的方式为遍历所述的六种摆放方式,并计算按每种摆放方式,在水平和竖直方向摆放最多数量该种货物后,在水平和竖直方向剩余的体积;
选取剩余体积最小的摆放方式,作为回溯的结果,即最终所述货物的摆放方式。
本发明提出了解决三维布局优化问题的一种采用状态位码表示的改进蚁群和启发式算法的动态融合集装箱装载求解方法。本发明结合了启发式算法和蚁群算法两者的优点,将两种算法有效的融合在一起。首先,利用启发式算法的局部最优收敛性,得到一组粗略解。其次,利用得到的粗略解初始化为蚁群算法的信息素信息。最后,利用本发明改进的具有状态概念的蚁群算法和启发式算法的动态融合得出装箱的最优解决方案。在空间合并问题上本发明提出了基于空间划分的合并策略,能够更好、更快的解决多层之间的空间合并问题。另外,本发明创造性的提出了基于状态的剪枝方法,减少了不必要的计算,极大地提高了算法的运行效率。
附图说明
为了更清楚的说明本发明的实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的流程图
图2为本发明的启发式装载过程首次装载的示意图
图3为本发明启发式装载过程二次装载的示意图
图4为本发明启发式装载过程三次装载的示意图
图5为本发明启发式装载过程四次装载的示意图
图6为本发明回溯的示意图
具体实施方式
为使本发明的实施例的目的、技术方案和优点更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚完整的描述:
一种基于改进蚁群算法和启发式算法的集装箱装载方法,目的是将一批货物按照适当的装载方法装入集装箱中,以使得集装箱的容积利用率最大,从而实现对集装箱的合理有效利用,则其目标函数可以表示为:
max V = ( &Sigma; k = 1 n l k &CenterDot; w k &CenterDot; h k &CenterDot; m k ) / ( L &CenterDot; W &CenterDot; H ) - - - ( 1 )
其中,
lk、wk、hk、mk分别表示第k类货物的长度、宽度、高度和件数;n表示货物种类;L、W、H分别表示集装箱的长度、宽度和高度。
首先进行初始化:
初始化货物数量N、蚂蚁数m、信息素信息,信息素挥发信息,信息素矩阵,剪枝矩阵,当前迭代次数NC=0,最大迭代次数NC=max。
初始化每只蚂蚁的所有信息,包括货物装载链,当前蚂蚁的待装载货物信息,信息素信息等。
所谓货物装载链,是一条可以记录一次完整的装载所有信息的链表,链表的节点存储的信息主要包括货物类型,货物摆放姿态,而便利链表得到的所有节点的顺序就是货物的装载顺序,每一只蚂蚁仅仅有一条装载链表。
在本发明的算法循环里,每一只蚂蚁将根据空间划分策略和空间合并策略(局部启发式算法),递归装载货物,直到货物装载完毕或集装箱装满。
初始时刻各路径上的信息量均相等,设τ0=C(C为常数)。
蚁群算法的选货方式如下:第a(a=1,2,...,m)只蚂蚁根据各路径的信息量决定转移方向,则表示第a只蚂蚁在状态i时选择下一状态j的转移概率可以表示为:
P ij a = &tau; ij / ( &Sigma; s = 1 , s &NotEqual; i m - 1 &tau; is )
其中,m表示蚂蚁的数量;Pij a为第a(a=1,2,...,m)只蚂蚁在节点i时选择下一节点j的转移概率;τij表示从节点i转移到节点j的信息素浓度;初始时刻,各条路径上的信息素浓度相同,设τij(0)=τ0=C。
开始算法循环:
蚂蚁首先查询当前的信息素矩阵,在初始状态下,集装箱内部为空,即信息素矩阵内的信息也为空,所以在第一次装载时,选用启发式算法,进行货物的摆放,如图2-图5所示:
图中的1、2、3、4分别为第一、第二、第三和第四次装载的货物。
本发明利用三空间划分方案,每一个货物放入集装箱,都会将待装载空间划分成相对于该货物的上方、右方和前方三个空间。算法按照,上方、右方和前方的次序递归的划分空间并装载货物。
首先选择一货物装载在与集装箱门相对的侧壁和该侧壁相邻侧壁形成的角落,形成上方、右方(根据初始的放置的角落的不同而不同,若初始放在右边角落,则此处为左方空间)和前方的待装载空间。
—在后续的装载中,首先装载所述前一次装载货物的上方空间,然后装载右方空间,最后装载前方空间。由于是递归的装载所述划分的每一个空间(上方、右方和前方),为了更好地表述装载的过程,将当前正在装载的空间命名为待装载空间。
—对每一个待装载空间,首先根据剩余空间链,在满足各种约束的情况下,融合当前装载空间和装载空间左方和后方(周边)的剩余空间(这里的剩余空间,主要分为两种情况:一,没有装载:上一次装载货物形成的上方、右方和前方空间,由于自身空间较小,所以没有能够再次装载,将自身转换为剩余空间;二,装载后形成的剩余空间,所述的上方、右方和前方空间成功的装载了货物,进一步形成了剩余空间,在遍历货物后,没能装载而形成的剩余空间,不断的递归装载而形成的剩余空间)尽可能的增大当前空间;而后,优先选择与前一步所装载货物体积相近或相等的并且当前空间能容纳的货物。选出货物后,确定货物的摆放姿态,并将当前空间划分为上方,右方前方三个空间(如果有)。
如果当前空间无法容纳任何一种待装载货物,即当前空间小于所有的货物体积,则将该上方空间记入剩余空间链,在后续的装载过程中使用。
按照上述规律进行递归的空间划分并装载,直到集装箱被装满,或者货物装载完毕为止。
在每一次货物的装载时都需要考虑悬空约束,即货物不得悬空放置:
&Sigma; S p i = ( x T i - x B i ) ( y T i - y B i )
其中,表示货物p和货物i重合部分的面积,表示货物i的左前上坐标,表示货物i的右后下坐标。其中和p的定义如下:
p &Element; { p | z T p = z B i , x B p &le; x B i , x T p &GreaterEqual; x T i , y B p &le; y B i , y T p &GreaterEqual; y T i } &cup;
{ p | z T p = z B i , Max ( x T p , x T i ) - Min ( x B p , x B i ) < x T i - x B i + x T p - x B p ,
Max ( y T p , y T i ) - Min ( y B p , y B i ) < y T i - y B i + y T p - y B p }
S p i = [ ( x T i - x B i + x T p - x B p ) - ( Max ( x T p , x T i ) - min ( x B p , x B i ) ) ] &times;
[ ( y T i - y B i + y T p - y B p ) - ( Max ( y T p , y T i ) - Min ( y B p , y B i ) ) ] .
在每次蚂蚁选择装载货物所使用的算法时,蚂蚁会得到当前算法的迭代次数,比如:当前是蚂蚁群落的第20次迭代,算法要求的总迭代次数为50次。则,将这两个数做比较,得到算法选择概率:20/50=2/5即在此次迭代中蚂蚁选择蚁群算法的选货方案的概率为2/5启发式为3/5。
接下来依照所述的算法选择概率,用轮盘赌的方式选择选货方案:即启发式的选货方式或者蚁群的选货方式。
如果经过算法判断当前需要采用蚁群进行选货,则查询与当前状态邻接的几个状态,通过轮盘赌方式计算得到选货概率,依照选货概率选择要装载的货物。若选择的货物不能被装入当前空间,则遍历可以装载的货物种类,选择最大的,可以装入当前空间的货物。
所有蚂蚁完成一次循环后,各个路径上的信息素浓度需要进行实时更新,信息素更新模型表示为:
&tau; ij ( t + 1 ) = ( 1 - &rho; ) &tau; ij ( t ) + &Delta;&tau; ij &Delta;&tau; ij = &Sigma; a = 1 N &Delta;&tau; ij a
其中,ρ(0<ρ<1)表示信息素的挥发程度;
Δτij a表示第a只蚂蚁在状态i与状态j连接路径上的信息素浓度;
Δτij表示所有蚂蚁在状态i与状态j连接路径上释放的信息素浓度之和。
为了减少蚁群算法的计算量,本发明的蚁群算法为基于状态值的蚁群算法,蚁群不再按照装载链来存储和查询信息素,而是依照如下表所述的状态值来储存和查询信息素。
上表为未装载货物的状态值表;装载货物的状态值表如下:
从上表(当前装载了第二种和第五种货物)可以看出一个状态值即是一个64位的数,其中,前五位表示货物的种类,后面五个连续的十个二进制位表示每一种货物的数量。不难看出,状态值只与所装载的货物种类和数量有关,这样可以省去装载的顺序和货物的姿态等信息,能够更方便简捷的存储数据。为了完全的记录装载信息,每一个状态值对应一条装载链。
所谓装载链即是记录一条状态值对应的装载信息,包括装载顺序,每一个货物的摆放姿态以及放置货物的坐标等。状态值的如此表示使得算法在执行过程中,通过移位等操作就能快速得到状态值,并且状态值去劣存优的方案大大减小了问题的解空间,极大地提高了算法的执行效率。
在本发明中引入了剪枝矩阵来提高程序执行效率,剪枝矩阵是以上述的状态值为关键字,来查询剩余空间总体积大小的哈希表。随着算法的执行,将产生的状态值和所对应的剩余空间总体积值存储到剪枝矩阵中。在以后的迭代中,算法首先查找剪枝矩阵,若当前状态下得到的剩余空间总体积大于剪枝矩阵中的剩余空间体积,则放弃此次迭代。
在装载算法完成后,选货还要按照重量约束和重心约束条件判断待装货物是否可以装入集装箱中。
重量约束:装入货物的重量不能超过集装箱的最大承载重量
&Sigma; i = 1 N g i &CenterDot; I i &le; G
重心约束:
cx 1 &le; &Sigma; i = 1 N I i &CenterDot; g i &CenterDot; x i &Sigma; i = 1 N I i &CenterDot; g i &le; cx 2 , cy 1 &le; &Sigma; i = 1 N I i &CenterDot; g i &CenterDot; y i &Sigma; i = 1 N I i &CenterDot; g i &le; cy 2 , cz 1 &le; &Sigma; i = 1 N I i &CenterDot; g i &CenterDot; x i &Sigma; i = 1 N I i &CenterDot; g i &le; cz 2
其中,gi是第i个货物的重量;G是集装箱的最大承载重量;若货物i装载则Ii=1,否则Ii=0;[cx1,cx2]为集装箱在X轴向的重心安全范围,[cy1,cy2]为集装箱在Y轴向的重心安全范围,[cz1,cz2]为集装箱在Z轴向的重心安全范围;(xi,yi,zi)为货物在集装箱中的重心坐标。
进一步的,为了最大限度的使用集装箱的内部空间,在每一步的装载中,都使用回溯的方法,选出当前货物的最佳摆放姿态,如图6和下表所示:
设置了货物的六种放置姿态编码:
放置方式编号 返回值的二进制位 放置方式
1 第一位 hk//L,wk//W,lk//H
2 第二位 hk//L,lk//W,wk//H
3 第三位 wk//L,hk//W,lk//H
4 第四位 wk//L,lk//W,hk//H
5 第五位 lk//L,hk//W,wk//H
6 第六位 lk//L,wk//W,hk//H
其中,lk、wk、hk分别表示第k类货物的长度、宽度、高度;L、W、H分别表示集装箱的长度、宽度和高度,分别表示六种摆放姿态。
如图6所示:计算每一种摆放姿态,背景为集装箱面对箱口的侧壁,A和a都是刚刚选择出的那一类货物,A表示当前遍历的一个状态,即上述的六种摆放状态的一种,a表示算法的试探过程,则很容易计算出按所述的摆放状态下,第一堵墙剩下的空间。上方剩余的空间为(75-(30*2))*80右方为75*(80-25*3)。遍历六种姿态的剩余的空间,选择剩余空间最小的空间作为最佳的摆放方式。
算法执行的过程如下:
算法首先初始化各种参数。比如初始化迭代次数20次,蚂蚁的数量200只。初始化后,开始算法主循环。
在主循环中每一个蚂蚁开始初始化自身的装载链,初始化装载货物的种类,数量,装载空间等信息。具体包括以下步骤:
读入装载货物的所有信息,包括货物的大小,体积形态,数量,以及客户的特殊要求,比如某一类货物只能装200个,或者可以装200~230个等约束信息,清空自己的装载链,清空自己的装载状态值。
其次,蚂蚁开始装载货物。选择自己要装载的货物类型。选货方案有启发式算法和蚁群算法两种,确定选择那一种选货方案是首要任务。
首先,蚂蚁会得到自己当前的迭代次数,如,此次是蚂蚁群落的第20次迭代,算法要求的总迭代次数为50次。则,将这两个数做比较,得到算法选择概率(20/50=2/5即在此次迭代中蚂蚁选择蚁群算法的选货方案的概率为2/5启发式为3/5)。
接下来依照算法选择概率,用轮盘赌的方式选择选货方案:即启发式的选货方式或者蚁群的选货方式。
若蚂蚁选择启发式选货方案,则需要得到所需的装载空间信息。由于算法采用了空间划分策略(递归的划分见说明),使得蚂蚁的待装载空间为大小不等的矩形体。蚂蚁得到当前的待装载空间,然后进行空间合并。本发明的空间合并创造性的提出了一种基于空间划分的合并策略。
空间划分在当前空间被存入剩余空间链的时候进行。具体操作为,把当前空间在集装箱长度方向上划分为一个一个的小长条。使得层与层之间的空间合并成为可能,也大幅提高了空间合并的效率。
执行空间合并,蚂蚁检查待装载空间的左方和后方的信息,然后做出相应的合并动作,增大当前空间。保证稳定性,同时也要保证不能重复合并。
接下来,蚂蚁需要查询自己的装载链,获得前一步装载货物的类型。
若得到的空间可以装载前一步所装载的货物,则蚂蚁直接选择前一步的货物装载。否则直接跳转到蚁群算法,利用信息素选择出合适的货物进行装载。
若蚂蚁选择蚁群的智能化选货方式,则查询与当前状态邻接的几个状态,通过轮盘赌方式计算得到选货概率,依照选货概率选择要装载的货物。若选择的货物不能被装入当前空间,则遍历可以装载的货物种类,选择最大的,可以装入当前空间的货物。
确定货物的摆放姿态。算法得到待装载的货物种类后,需要确定最优的摆放姿态,使装载平整,同时也使边界上的剩余空间尽量小或者没有。
本发明中所用的确定放置姿态的算法是一个深度遍历。即遍历所有的装载姿态,并递归重复这个过程,直到装载贴近集装箱顶部和侧部。使得顶部的缝隙和侧部的缝隙尽可能小。然后确定本次装载货物的装载姿态。由此尽可能减少废弃空间。(见说明)
确定了装载货物的装载姿态后查询剪枝矩阵。即利用当前蚂蚁装载得到的特征值,剩余空间信息,与剪枝矩阵中的值对比,如果该值比查询出来的值小,则更新矩阵值,继续进行选货循环。否则释放这一只蚂蚁的所有资源,放弃这一只蚂蚁,让下一只蚂蚁开始运算。
如果一只蚂蚁能够顺利完成装载,则说明这一只蚂蚁的装载链比之前的都好,更新装载链,当所有的蚂蚁完成一次装载,则更新信息素矩阵。
当收敛次数到达设定的最大迭代次数时,输出最优装载链,算法运行结束。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种基于改进蚁群算法和启发式算法的集装箱装载方法,具有如下步骤:
—初始待装载货物信息和集装箱空间信息;初始化蚁群算法各参数、初始化每一只蚂蚁的货物装载链信息以及初始化信息素信息;
—开始算法循环,当前的蚂蚁根据当前蚁群算法的迭代次数和最大迭代次数,生成选货概率,使用轮盘赌的方式选择启发式选货方式或蚁群选货方式;
—若选择启发式选货方式:考虑当前的空间的左方和后方所装载的货物和当前待装载空间,从待装载的货物中选择适合的货物进行递归装载;若选择蚁群选货方式,查询信息素矩阵,根据轮盘赌的方式选择装载货物;
—定义货物六种摆放方式,遍历并计算按每种摆放方式,在水平和坚直方向摆放最多数量该种货物后,在水平和坚直方向剩余的体积,选取剩余体积最小的摆放方式作为回溯结果,即最终所述货物的摆放方式;
所述货物的六种摆放姿态为:hk//L,wk//W,lk//H、hk//L,lk//W,wk//H、wk//L,hk//W,lk//H、wk//L,lk//W,hk//H、lk//L,hk//W,wk//H和lk//L,wk//W,hk//H;
其中,lk、wk、hk分别表示第k类货物的长度、宽度、高度;L、W、H分别表示集装箱的长度、宽度和高度;
—重复上述步骤,直到货物装载完毕或集装箱装满,输出装载链,作为集装箱内部货物的摆放方案。
2.根据权利要求1所述的一种基于改进蚁群算法和启发式算法的集装箱装载方法,其特征还在于所述步骤“考虑当前的空间的左方和后方所装载的货物和当前待装载空间”具体为:
—若当前集装箱为空,即为首次装载,蚁群信息素为空:使用轮盘赌的方式选择一货物装载在与集装箱门相对的侧壁和该侧壁相邻侧壁形成的角落,形成上方、右方和前方的空间;
—在后续的装载中,依据该货物的上方、右方和前方的顺序,首先选择与上方空间体积最接近的货物填充上方空间;若遍历所有货物体积后,上方空间无法容纳至少一种待装载货物,则将该上方空间记入剩余空间链;
—按照上述规律递归的装载右方和前方空间,直到有货物完成装载;
—若所述的上方、右方或前方的空间均不能单独装载任一货物,则将上方、右方或前方的空间记入剩余空间链;
—在每次装载前,待装载空间首先融合剩余空间链中的剩余空间,使当前待装载空间最大化。
3.根据权利要求2所述的一种基于改进蚁群算法和启发式算法的集装箱装载方法,其特征还在于:在每一步装载货物时,需要满足悬空约束:
&Sigma;S p i = ( x T i - x B i ) ( y T i - y B i )
其中,表示货物p和货物i重合部分的面积,表示货物i的左前上坐标,表示货物i的右后下坐标;其中和p的定义如下:
p &Element; { p | z T p = z B i , x B p &le; x B i , x T p &GreaterEqual; x T i , y B p &le; y B i , y T p &GreaterEqual; y T i } &cup; { p | z T p = z B i , M a x ( x T p , x T i ) - M i n ( x B p , x B i ) < x T i - x B i + x T p - x B p , M a x ( y T p , y T i ) - M i n ( y B p , y B i ) < y T i - y B i + y T p - y B p }
S p i = &lsqb; ( x T i - x B i + x T p - x B p ) - ( M a x ( x T p , x T i ) - M i n ( x B p , x B i ) ) &rsqb; &times; &lsqb; ( y T i - y B i + y T p - y B p ) - ( M a x ( y T p , y T i ) - M i n ( y B p , y B i ) ) &rsqb; .
4.根据权利要求1所述的一种基于改进蚁群算法和启发式算法的集装箱装载方法,其特征还在于输出装载链后,需要对得出的装载链进行重心约束和重量约束的检查:
重量约束:
&Sigma; i = 1 N g i &CenterDot; I i &le; G
重心约束:
c x 1 &le; &Sigma; i = 1 N I i &CenterDot; g i &CenterDot; x i &Sigma; i = 1 N I i &CenterDot; g i &le; c x 2 , c y 1 &le; &Sigma; i = 1 N I i &CenterDot; g i &CenterDot; y i &Sigma; i = 1 N I i &CenterDot; g i &le; c y 2 , c z 1 &le; &Sigma; i = 1 N I i &CenterDot; g i &CenterDot; z i &Sigma; i = 1 N I i &CenterDot; g i &le; c z 2
其中,gi是第i个货物的重量;G是集装箱的最大承载重量;若货物i装载则Ii=1,否则Ii=0;[cx1,cx2]为集装箱在X轴向的重心安全范围,[cy1,cy2]为集装箱在Y轴向的重心安全范围,[cz1,cz2]为集装箱在Z轴向的重心安全范围;(xi,yi,zi)为货物在集装箱中的重心坐标。
5.根据权利要求1所述的一种基于改进蚁群算法和启发式算法的集装箱装载方法,其特征还在于采用的蚁群算法为基于状态的改进蚁群算法:
在选出当前货物的最佳摆放姿态后,根据装载链生成一个多位状态值,所述状态值包含当前装载货物的种类和每种货物的数量;蚁群的信息素矩阵查询,剪枝信息的查询都需要此状态值;
所述装载链为记录一只蚂蚁对应的装载信息,至少包括装载顺序、每一个货物的摆放姿态以及放置货物的坐标。
6.根据权利要求5所述的一种基于改进蚁群算法和启发式算法的集装箱装载方法,其特征还在于:所述蚁群算法的信息素更新模型表示为:
&tau; i j ( t + 1 ) = ( 1 - &rho; ) &tau; i j ( t ) + &Delta;&tau; i j &Delta;&tau; i j = &Sigma; a = 1 N &Delta;&tau; i j a
其中,ρ(0<ρ<1)表示信息素的挥发程度;
Δτij a表示第a只蚂蚁在状态i与状态j连接路径上的信息素浓度;
Δτij表示所有蚂蚁在状态i与状态j连接路径上释放的信息素浓度之和。
7.根据权利要求5所述的基于改进蚁群算法和启发式算法的集装箱装载方法,其特征还在于:具有以所述状态值为关键字的剪枝矩阵,该矩阵为查询某一状态值对应的剩余空间总体积大小的哈希表:随着算法的执行,将蚁群装载链产生的状态值和所对应的剩余空间体积值存储到剪枝矩阵中;在以后的迭代中,算法首先查找剪枝矩阵,若当前状态下得到的剩余空间总体积大于剪枝矩阵中的剩余空间体积,即当前状态下计算获得的解劣于剪枝矩阵中记录的解,则放弃此次迭代。
8.根据权利要求1所述的一种基于改进蚁群算法和启发式算法的集装箱装载方法,其特征还在于
回溯的方式为遍历所述的六种摆放方式,并计算按每种摆放方式,在水平和竖直方向摆放最多数量该种货物后,在水平和竖直方向剩余的体积;
回溯选取剩余体积最小的摆放方式作为结果,即最终所述货物的摆放方式。
CN201310301679.3A 2013-07-17 2013-07-17 基于改进蚁群算法和启发式算法的集装箱装载方法 Active CN103455841B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310301679.3A CN103455841B (zh) 2013-07-17 2013-07-17 基于改进蚁群算法和启发式算法的集装箱装载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310301679.3A CN103455841B (zh) 2013-07-17 2013-07-17 基于改进蚁群算法和启发式算法的集装箱装载方法

Publications (2)

Publication Number Publication Date
CN103455841A CN103455841A (zh) 2013-12-18
CN103455841B true CN103455841B (zh) 2016-12-28

Family

ID=49738180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310301679.3A Active CN103455841B (zh) 2013-07-17 2013-07-17 基于改进蚁群算法和启发式算法的集装箱装载方法

Country Status (1)

Country Link
CN (1) CN103455841B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6298392B2 (ja) * 2014-10-29 2018-03-20 三菱重工業株式会社 バン詰め作業計画作成装置及びバン詰め作業計画作成方法
CN104915817A (zh) * 2015-05-26 2015-09-16 亿赞普(北京)科技有限公司 一种集装箱的装箱方法和装置
CN105279629B (zh) * 2015-09-30 2018-09-21 中交第三航务工程勘察设计院有限公司 一种优化的智能装箱系统
CN107977756B (zh) * 2017-12-21 2022-03-11 厦门大学嘉庚学院 解决三维装箱问题的三叉树规划计算方法
CN109902987B (zh) * 2018-02-06 2023-12-08 华为技术有限公司 确定运输方案的方法、训练快速装载模型的方法及设备
CN110371561B (zh) * 2018-08-28 2022-04-26 北京京东乾石科技有限公司 一种码垛入库的方法和装置
CN109615136B (zh) * 2018-12-13 2021-08-13 浙江理工大学 一种基于粒子填充原理的集装箱装载过程优化方法
CN110058613B (zh) * 2019-05-13 2022-05-13 大连海事大学 一种多无人机多蚁群协同搜索目标方法
CN110175404B (zh) * 2019-05-27 2023-06-13 上海维祥信息技术有限公司 货物装载调整方法及装置
CN110223019A (zh) * 2019-06-10 2019-09-10 珠海格力电器股份有限公司 一种装柜控制方法、装置及存储介质
CN110288158A (zh) * 2019-06-27 2019-09-27 心怡科技股份有限公司 一种基于爬山法的订单车ab面切分算法
CN110728046B (zh) * 2019-10-08 2023-09-01 创新奇智(重庆)科技有限公司 一种基于启发式算法的多阶段管道及其配件装箱方法
CN111507644B (zh) * 2020-04-30 2022-08-09 安徽大学 一种多点卸货约束的三维多容器装载方法
CN112001549B (zh) * 2020-08-25 2024-06-21 上海汽车集团股份有限公司 一种装载信息确定方法、装置、服务器及存储介质
CN113673663A (zh) * 2021-08-03 2021-11-19 武汉理工大学 一种基于pi集装箱的组合方法及装置
CN114275561B (zh) * 2021-12-27 2022-09-16 华中科技大学 一种厢式货车多批次货物装载方法及应用
CN114684626B (zh) * 2022-04-25 2024-04-09 阿帕数字科技有限公司 规整物体的三维装箱方法、装置和电子设备
CN115081119B (zh) * 2022-07-20 2022-11-08 中铁第四勘察设计院集团有限公司 一种列车装载的优化方法、装置、设备及可读存储介质
CN115630765B (zh) * 2022-10-26 2023-05-30 广东工业大学 一种箱管装柜的优化方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101381033A (zh) * 2008-10-15 2009-03-11 江苏科技大学 一种基于蚁群算法的集装箱装载方法
CN102214321A (zh) * 2011-07-14 2011-10-12 大连海事大学 一种三维集装箱装载布局优化方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110102A1 (en) * 2001-05-29 2003-06-12 Chen-Fu Chien Method for goods arrangement and its system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101381033A (zh) * 2008-10-15 2009-03-11 江苏科技大学 一种基于蚁群算法的集装箱装载方法
CN102214321A (zh) * 2011-07-14 2011-10-12 大连海事大学 一种三维集装箱装载布局优化方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hybrid ant colony optimization based on genetic algorithm for container loading problem;zhang dezhen et al;《2011 international conference of soft computing and pattern recognition》;20111014;第10-14页 *
蚁群算法求解复杂集装箱装载问题;杜立宁等;《计算机应用》;20110831;第31卷(第8期);第2275-2278页 *

Also Published As

Publication number Publication date
CN103455841A (zh) 2013-12-18

Similar Documents

Publication Publication Date Title
CN103455841B (zh) 基于改进蚁群算法和启发式算法的集装箱装载方法
CN112001535B (zh) 物流装箱方法、装置、设备及存储介质
CN113222293B (zh) 一种智能立体仓库优化调度方法
CN107622321B (zh) 一种基于多约束条件智能生成箱体装载方案的方法
US8924007B2 (en) Three dimensional load packing
CN110046845B (zh) 一种场区车辆装载方法和装载系统
US8554702B2 (en) Framework for optimized packing of items into a container
CN111507644B (zh) 一种多点卸货约束的三维多容器装载方法
CN109345017A (zh) 一种考虑装箱约束的车间物料配送优化方法
CN110175404B (zh) 货物装载调整方法及装置
CN109974711A (zh) 一种面向智慧工厂的agv多目标点自主导航方法
US20210261333A1 (en) Storage and picking system and picking method with improved goods transfer between two storage locations
WO2023082728A1 (zh) 一种装箱任务处理方法、装置及设备
CN110077772B (zh) 组托盘方法及其应用
CN107977756A (zh) 解决三维装箱问题的三叉树规划计算方法
CN109685278A (zh) 装箱方法、设备和计算机可读存储介质
US20220402708A1 (en) Collision avoidance based on vision data, geometric data and physics engine evaluation
CN114611767A (zh) 一种全局最优的智能仓储调度优化算法
CN111882200A (zh) 一种考虑车辆路径与三维装箱的车货匹配方法
CN111695966A (zh) 一种智能化包材推荐和装箱的方法与系统
WO2023146851A1 (en) Optimization of package weight distribution
CN116611594A (zh) 同时取送货车辆路径与三维货物平衡装载的耦合优化方法
CN117252037B (zh) 三维装箱方法、装置、电子设备及存储介质
CN114330822A (zh) 三维装箱方法及系统
CN114275561A (zh) 一种厢式货车多批次货物装载方法及应用

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180919

Address after: 116023 Liaoning Dalian high tech Industrial Park, maple Yuyuan 12, 2 unit 7, 2.

Patentee after: Dalian topology Weiye Technology Co., Ltd.

Address before: 116026 1 Linghai Road, hi tech Zone, Dalian, Liaoning

Patentee before: Dalian Maritime University

TR01 Transfer of patent right