基于动态规划的集装箱船舶配载箱位预留方法与流程

文档序号:32038881发布日期:2022-11-03 04:27阅读:109来源:国知局
基于动态规划的集装箱船舶配载箱位预留方法与流程

1.本发明涉及的是一种码头船舶控制领域的技术,具体是一种基于动态规划的集装箱船舶配载箱位预留方法。


背景技术:

2.船舶配载在装卸作业中起到较大的作用,它是自动化集装箱码头船舶作业中的一项核心业务,码头的配载员需要结合船公司提供的预配船图、船公司提出的配载要求、集装箱的实际到场情况、集装箱的重量信息、作业的岸桥数量等信息对船舶集装箱在船上的具体位置进行编排,并递交船公司进行评价或调整,最终形成一个完整的配载方案,为后续船舶到港进行作业提供箱位输入。而在自动化集装箱码头中,根据集装箱是否到达码头可将集装箱分为在场箱以及未在场箱,而在场箱又可根据是否放关进入堆场箱区分为放关箱和未放关箱,配载员需要对在场放关箱进行属性组选位,即在预配船图上画出每个属性组所可以选择的箱位,将在场未放关箱和未在场箱统称为未放关箱,并对它们进行箱位预留。船公司所提供的预配船图上可获得可配箱位,码头的放关率大约为92%-94%,一艘360米集装箱船的挂靠箱数量大约为1800,因此可估计出所需进行箱位预留的大约108-144个不同属性组的集装箱,配载员需要根据经验在若干个可配箱位中选出其中6%-8%的箱位进行预留,是一项工作量较大的流程。


技术实现要素:

3.本发明针对现有人工箱位预留约束复杂、预留集装箱数量与箱位数量差异大、操作耗时长且得出的预留方案不一定为最佳的问题,提出一种基于动态规划的集装箱船舶配载箱位预留方法,能有效减少配载需耗费的时间,也可以在评估方案前快速给出可行的方案。后经过评估给出符合业务的最佳箱位预留方案,减少由人工因素带来的影响。
4.本发明是通过以下技术方案实现的:
5.本发明涉及一种基于动态规划的集装箱船舶配载箱位预留方法,根据集装箱码头约束建立港口箱位预留模型,使用基于动态规划的整列寻优算法,得到动态规划状态表和标记表后,使用方案搜索算法得若干不重复的箱位预留方案,最后根据方案评价函数计算出最优箱位预留方案。
6.所述的集装箱码头约束包括:

集装箱只能预留在对应属性组的箱位;

优先按照整列预留箱位,考虑重量的合理分布,并且保证所留列总数最少;

箱位预留应考虑船体的平衡,减少大批量预留在船的同一侧;

特种箱下方不能进行箱位预留;

预留的箱位上方箱位不可用于放关箱选位;

箱位预留应考虑集装箱尺寸及轻重的合理分配,其中:约束

、约束

及约束

为必须满足,其他则作为评价箱位预留方案优劣的指标,包括约束

、约束

及约束


7.所述的港口箱位预留模型包括:
8.表征所预留列数之和、预留数与总箱位数差值f1及预留重箱数f2与总重箱数差值
f3的总和的目标函数minf=f1+f2+f3,其中:即带权重α1的预留列之和;即带权重α2的箱位预留数与需要预留数之差;的箱位预留数与需要预留数之差;即带权重α3的重箱箱位预留数与需要预留重箱数之差;
9.约束条件即预留的箱位数应不小于需要预留的箱位数量且预留的重箱箱位数应不小于需要预留的重箱箱位数量,αm为函数fm的权重,n为需要预留的箱位数,nh为需要预留的重箱箱位数,si为可配箱位集合中第i列的可配箱位数,为可配箱位集合中第i列的可配重箱箱位数,s={s1,s2,s3,...,si}为可配箱位集合,通过i 索引,为可配重箱箱位集合,通过i索引,为可配重箱箱位集合,通过i索引,
10.所述的基于动态规划的整列寻优算法,采用动态规划方法(stack selection algorithm, ssa)计算给定箱位在给定的预留数下考虑整列预留的搜索结果,具体包括:
11.步骤1:输入属性组可配箱位集合s(共n个非零项)、箱位预留数m。
12.步骤2:创建状态矩阵v、状态标记flag,i=0,1,2,...,m,j=0,1,2,...,n。
13.步骤3:初始化v,flag,对于i=0且j=0,令v(i,j)=0,flag(i,j)=0;对于i≠0 且j=0,令v(i,j)=-1000代表不存在可行方案,flag(i,j)=0。
14.步骤4:j从1到n,i从0到m,计算v:(1)当选定s中的前j列,其总数比当前预留数i小,则v(i,j)赋值为-1000;(2)当选取第j列或第j列与前面的几列作为预留方案,比当前预留数i多出a个箱位,则v(i,j)赋值为-a;(3)当选取第j列或第j列与前面的几列作为预留方案,且可配箱位数量之和正好等于当前预留数i,则v(i,j)赋值为0。
15.步骤5:计算flag,当v(i,j)的值不是由v(i,j-1)得到时,标记为0,否则为1。
16.步骤6:返回状态矩阵v及状态标记flag。
17.所述的动态规划状态表v为一个(m+1)
×
(n+1)的矩阵,v中的数值可以表示出当前是否有满足优化目标的方案,其中每个元素v(i,j)记录在箱位预留数为i时,选取s中的前 j列中的几列作为预留方案时的状态,该状态包括:
18.①‑
1000:说明在当前预留数i的情况下,即使选定s中的前j列,其总数也比预留数小,说明当前不存在可行方案;
19.②
负数a小于0,大于-max(s):说明在当前预留数i的情况下,当选取第j列或者第j列与前面的几列作为预留方案,则多出a个箱位;
20.③
0:说明在当前预留数i的情况下,当选取第j列或者第j列与前面的几列作为预留方案,则这几列的可配箱位数量之和正好等于i。
1.所述的标记表flag是一个大小与v一致的矩阵,其取值为0或1,与v的每个值相对应,作为标记,当v(i,j)的值不是由v(i,j-1)得到时,则标记为0,否则为1。
21.所述的方案搜索算法,结合标记表搜索状态表获得若干不重复的箱位预留方案,具体包括:
22.步骤1:输入状态矩阵v、状态标记flag、属性组可配箱位集合s、箱位预留数m。
23.步骤2:初始化预留方案plan
all
,表示预留数为m的部分较优预留方案集合。
24.步骤3:初始化plan
curr
,为一个1
×
n的0数组。
25.步骤4:在状态表中与预留数对应的行寻找状态为0的列,并添加到plan
allc26.步骤5:重复步骤3、4,直至搜索完所有方案,得到较优箱位预留方案plan
allc27.步骤6:返回预留数为m的较优箱位预留方案plan
allc28.所述的方案评价函数,考虑约束

、约束

及约束

的方案打分并计算出最优箱位预留方案,其中方案评价函数f=f4+f5+f6,其中:f4为对方案所提供预留箱位数和方案所使用列数进行评分,f5为对方案所能提供重箱数量进行评分,为对方案所能提供重箱数量进行评分,f6为对方案采用的列在甲板上下的情况进行评分,为对方案采用的列在甲板上下的情况进行评分,α4、α5、α6分别表示f4、f5、f6在适应度中的权重,β为箱位预留数系数(0<β<1),为在属性组j的可配箱位集合sj中,第i列被选为预留的箱位数, nj为属性组j需要预留的箱位数。因此当所预留的箱位数与需要预留的箱位数越接近时,f4得分越大;ω为重箱箱位预留系数(0<ω<1),为在属性组j的可配箱位集合sj中,第i 列被选为预留的重箱箱位数,示属性组j的未放关箱中的重箱数量。因此当所预留的重箱箱位数与对应属性组未放关箱中的重箱数量越接近时,f5得分越大;q1和q2分别为所预留箱位在甲板上和舱内的系数且q1>q2;和分别为在属性组j的可配箱位集合sj中,第i列甲板上和舱内被选为预留的箱位数,和分别为第i列甲板上和舱内的可配箱位数。因此当所预留箱位中,为甲板上的箱位占比更大时时,f6得分越高。
29.优选地,所述的权重α4、α5、α6,考虑到f4作为设计箱位预留方法的首要目标,需要使所预留的列数最少,以减少后续预留集装箱装载的压力,因此α4应比其他两者大。其次,为避免预留舱内的箱位,导致舱内作业未完成影响甲板上的装载工作,f6所占比重大于f5,因此α6>α5。技术效果
30.本发明通过ssa算法来求解未放关箱箱位预留问题,采用状态表计算和状态表方案搜索,因此其求解时间非常短。相比现有技术在一次求解后只能输出一个结果,本方法可以通过一次求解给出若干个解,在实际场景中,将这些解都输出,配载员则可以有更多方案可以进行参考和筛选。
附图说明
31.图1为本发明流程图;
32.图2为使用动态规划算法得到的状态表示意图;
33.图3为方案搜索流程图;
34.图4为实施例应用场景示意图。
具体实施方式
35.如图4所示,为本实施例应用场景示意图,即为集装箱船沿船长、船宽方向的剖面,其中图中黑色虚线框所圈出的沿船宽方向的集装箱组被称作贝位(bays),集装箱船将被划分为若干个贝位,每个贝位上方标出贝位号,每个奇数贝位用于描述20’集装箱的贝位,如图中所画阴影部分为1个20’集装箱,即1teu;偶数贝位虽然在物理上是两个奇数贝位的组合,但其只用于描述40’集装箱的贝位。另外,每个贝位被舱盖板分割为甲板上以及舱内两部分每个贝位由若干个列(slots)组成,沿船高方向的集装箱组被称为列,其从贝位正中间开始进行列的编号,为00,之后船的左舷侧列为奇数编号,右舷侧位偶数编号。每个列由若干层(tier)组成,沿船宽方向的集装箱组被称为层,其从贝位最下方开始进行层的编号。层的编号仅使用偶数,甲板上和舱内的层编号并不连续,舱内编号从02开始,向上递增;甲板上编号从82(部分靠近船尾的贝位从80)开始,向上递增。
36.图中阴影部分的箱位号为110186,当前箱位被使用后,其相邻贝位130186也必须存放一个20’的集装箱,并且不能再出现它们所组成的偶数见位箱位120186被使用的情况。
37.经过具体实际实验,在python3.9、32gb ram和intel core i7-7700 cpu的环境的具体环境设置下,采用遗传方法(ga)、模拟退火方法(sa)、人工蜂群方法(abc)以及改进遗传方法(iga),通过采取若干参数组,每个参数组对一个算例进行3次求解,将三次求解的结果作为参数组的得分,进行平行比较,选择参数组得分最低的参数组中各参数的值作为对比实验的参数,以保证每个方法处于最佳状态。
38.上述方法参数比较采用箱位预留实例中规模处于中部的算例,即31个可用列,7个预留数,4个预留重箱数作为基准算例,在通过多次比较后,各方法参数选择如下所示:
39.1)传统遗传方法(ga):交叉概率为0.85,变异概率为0.25。
40.2)模拟退火方法(sa):起始温度为500℃,终止温度为1℃,降温速度为0.97。
41.3)人工蜂群方法(abc):limit(体现全局和局部搜索能力,控制方法收敛性的参数)为 15。
42.4)改进遗传方法(iga):自交叉概率为0.20。
43.本实施例进一步采用生成的算例和历史实际数据算例共同进行验证,其中,序号标黑的案例2、6、7、10、11来源于某集装箱码头船舶配载历史实际数据。由于问题规模受到可用列数量、箱位预留数量以及未放关箱重箱数量的影响,因此在生成算例时,需要控制三者数量的比例。参数中名为“x-y-z”的算例表示可用列数量为x,箱位预留数量为y,未放关箱重箱数量为z。在智能方法求解的时间控制上,为每一个案例设置一个最大求解时间,并记录每个方法在改最大求解时间内达到的适应度值,最大求解时间的设置参照案例的规模,随着规模的增大而增大。
44.此外,对于各个方法的常规参数,例如种群规模和最大迭代次数的取值,是固定的,在本次实验中,均选择种群规模为100,最大迭代次数则不做限制,以最大计算时间作为终止条件。
45.表1未放关箱箱位预留方法对比结果
46.由于船舶配载未放关箱箱位预留优化问题的特性,使其变得与0-1背包问题类似,当需要在n个数中选取出其中的a个数并使它们的和不小于固定数值nr时,其解空间内共有(2
n-1)个解(包含不可行解),对于智能方法来说是非常庞大的规模。本发明所提出本方法与智能方法求解框架的进化求解方式不一样,是采用状态表计算和状态表方案搜索,因此其求解时间非常短,即使在对规模最大的算例11进行求解时,本方法也仅使用0.04s完成方案搜索和适应度评估。因此可以看出,本方法的第一个优势在于,它非常适合用于求解0-1背包问题的变种问题——未放关箱箱位预留问题。
47.其次,根据表1实验结果,还可以得出以下结论。在11个算例中的10个算例,本方法都得到较好的箱位预留方案。而在算例9中,遗传方法得到最佳的箱位预留方案。此外,在全部算例的箱位预留方案的平均结果中,本方法获得最好的方法评价。因此可以看出,本方法不仅在求解时间上非常优越,其求解结果的质量也非常优秀,能够更好的在未放关箱箱位预留问题中发挥作用。
48.与现有技术相比,本方法求解效率高,解的质量高。
49.上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1