一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于集划分模型的集装箱码头泊位岸桥分配方法

2022-06-05 18:19:58 来源:中国专利 TAG:


1.本发明涉及一种集装箱码头泊位和岸桥的分配方法
技术背景
2.在经济全球化的背景下,集装箱贸易飞速发展,由于集装箱贸易运载量大,费率低的优点,其发展速度比其他海运模式都要快。据统计,自1996年至2021年,集装箱贸易以每年平均6.5%的速率增长。同时中国的集装箱贸易也占据着越来越重要的角色,随着集装箱贸易的发展,集装箱港口需要尽快提升其核心竞争力,提高港口的服务水平,降低港口的运作成本,从而适应经济全球化下港口的飞速发展。可以预见,未来中国的国际、国内贸易量将会不断提高,集装箱运量、集装箱港口吞吐量也将迅猛增长。
3.码头资源的作业并不是互相独立的,船舶的到达会影响泊位分配,同时岸桥集卡和场桥的分配又会极大程度的影响船舶在港作业时间。将多种港口资源进行联合分配越来越成为学者的研究方向。在泊位岸桥联合调度的问题中,国外学者alnaqbi等建立以最小化船舶作业时间为目标的数学模型,并且采用整数规划对模型进行求解。birger等在泊位岸桥联合调度的数学模型中加入三种惩罚因子,分别是岸桥最佳作业时间的惩罚,偏离最佳停靠位置的惩罚和岸桥移动的惩罚。idris在研究过程中为了缩短船舶在港时间,在优先级中考虑先到先服务和大船优先的原则,并且采用整数线性规划的方式进行求解,利用lingo设计程序进行仿真实验。林琳在建立连续泊位的泊位岸桥联合分配数学模型时,以最小化船舶在港时间和作业成本为目标,并采取多目标遗传算法进行求解。
4.近几年争对泊位岸桥联合分配问题模型,采取了遗传算法、模拟退火算法、粒子群算法等,基本原理都是基于初始解,按照一定的方法搜索空间寻找最优解。这些现有技术的缺点是:只考虑部分因素对泊位-岸桥分配的影响,并且当算例规模较大时,需要较长时间得出最优解。本发明综合考虑了潮汐因素、船舶规模、船舶在港时间窗和混合泊位布局对泊位-岸桥分配的影响。并且采用启发式算法生成初始gspp矩阵,极大的减少了求解时间。通过此优化模型,可以为规划周期内每艘船舶分配最佳的泊位位置以及泊位内所配置的岸桥数,使规划周期内所有船舶在港停留时间与对应船舶的优先级数乘积最小化。


技术实现要素:

5.本发明要克服现有技术的上述缺点,在现有集装箱码头作业任务复杂多变的情况下,提出了一种集装箱码头泊位和岸桥分配方法,能够合理规划集装箱码头的泊位和岸桥作业,合理分配码头资源,降低码头作业成本。
6.本发明提供以下技术方案进行实现:
7.一种基于集划分模型模型的泊位岸桥联合分配方法,该方法包括:
8.步骤一、构建g-bqcap-tw数学模型;
9.变量定义:xj是一个二进制决策变量,当xj=1表示第j列是优化问题解的一部分,反之则不是。xv=(v
ij
)为每艘船舶分配了一行,当v
ij
=1时,表示第j列被作为船舶i的停泊
方案,反之v
ij
=0;x
p
=(b
pj
)为船舶所停靠的每一个(泊位单元,时间单元)分配了一行,当b
pj
=1时,表示该(泊位单元,时间单元)上有船舶停泊,反之b
pj
=0;x
t
=(q
tj
)为每一时间单元分配了一行,q
tj
反映的是当前时间点被分配的岸桥数,即该时间点有多少台岸桥在工作,那么q
tj
的值就为多少。
10.min∑
j∈jcj
xjꢀꢀꢀꢀ
(1)
[0011][0012][0013][0014]
xj∈{0,1};v
ij
∈{0,1};b
pj
∈{0,1};q
tj
∈n
*
ꢀꢀꢀꢀ
(5)
[0015]
约束(1)是g-bqcap-tw模型的目标函数,表示规划周期内所有船舶在港停留时间与船舶优先级数的乘积之和最小化;约束(2)表示每艘船舶必须服务且只服务一次;约束(3)表示在同一时间单元的同一泊位单元上至多只能被一艘船舶所占领;约束(4)表示在同一时刻码头内所工作的岸桥数不能超过码头所配置的岸桥总数,约束(5)表示规划模型中变量的取值范围。
[0016]
步骤二、构建初始gspp矩阵;
[0017]
集合符号定义:b={1,2,...,|b
l
|,|b
l
| 1,...,|b|},码头内泊位单元集合,b
l
={1,2,...|b
l
|},|b
l
|<|b|,码头内浅水泊位单元集合,bh={|b
l
| 1,...|b|},|bh|=|b|-|b
l
|,码头内深水泊位单元集合,i={1,2,...,|i|},规划周期内抵港船舶集合,j={1,2,...,|j|},规划周期内每艘船舶的所有可行停泊方案所组成的数据矩阵,我们称之为gspp,gspp矩阵中列向量的集合,t={1,2,...,|t|},规划周期。
[0018]
参数符号定义:tc是潮汐周期,q是码头内岸桥总数,ai是船舶i抵港时间,di是船舶i最晚离港时间,ai是船舶开始服务时间,是船舶i分配q台岸桥时所需的装卸货时间,cj是gspp矩阵中第j列的成本,即第j个可选方案的成本,该值为第j列对应船舶的服务优先级数与该船舶在港停留时间的乘积,wi是船舶i的服务优先级数,ri是船舶i可容纳的岸桥数范围,i∈i,围,i∈i,表示最少需配置的岸桥数,表示最多能配置的岸桥数,li是船舶i停泊时所需要占领的泊位单元数,yi是船舶是否对泊位水深有要求,0表示无,1表示有,即yi取0或1,zi是船舶i所需的装卸量(teu)。
[0019]
步骤2.1:数据输入:输入各艘船舶的规模、各艘船舶可配置的岸桥数范围、船舶的优先级数、到港时间、最晚离开时间、所需装卸时间、泊位单元数和岸桥数;
[0020]
步骤2.2:参数初始化:计算规划周期tg;初始化xv、x
p
、x
t
为零向量;初始化gspp矩阵列数j=0。
[0021]
步骤2.3:遍历规划周期内的所有船舶。
[0022]
步骤2.4:泊位分配:为不同船舶遍历所有可能的停泊泊位,li是用来判定船舶停泊时所占的泊位单元数,例如li为1时,泊位数等于泊位单元数|b|减去1再加1,共有|b|个选择来停泊该船舶,li为2时,泊位数等于泊位单元数|b|减去2再加1,共有|b-1|个选择来停泊该船舶,li为3时,泊位数等于泊位单元数|b|减去3再加1,共有|b-2|个选择来停泊该船舶。
[0023]
步骤2.5:岸桥调度:根据船舶的岸桥容量配置所有可能的岸桥数量。
[0024]
步骤2.6:潮汐因素:根据船舶在港时间窗判断船舶作业整个时间窗口有没有包含泊位低水位时段。
[0025]
步骤2.7:将满足船舶时间窗要求的列全部生成出来
[0026]
步骤2.8:当船舶有水深要求且时间窗口包含泊位低水位时段时,停泊泊位需要剔除浅水泊位单元。
[0027]
步骤2.9:生成船舶所有可能停泊方案,xv=(v
ij
),为每艘船舶分配了一行,当时,表示第j列被作为船舶i的停泊方案;x
p
=(b
pj
)为船舶所停靠的每一个(泊位单元,时间单元)分配了一行,当b
pj
=1时,表示该(泊位单元,时间单元)上有船舶停泊;x
t
=(q
tj
)为每一时间单元分配了一行,q
tj
反映的是当前时间点被分配的岸桥数。
[0028]
步骤三、联合分配算法求最优解;
[0029]
步骤3.1:初始化种群;具体为:根据g-bqcap-tw模型的解是由每个子矩阵中抽取出一列组成的特点,故我们在初始化时并不是像一般情况下随机产生一组0-1数组,而是将由|j|个元素组成的初始解按照各艘船舶可行停泊方案数划分成一个个小区间,每个小区间代表一个船舶的可行停泊方案集合。如图2所示,第一步,将初始解初始化为全为零的数组,三种不同颜色的基因位点分别表示不同的船舶可行停泊方案;第二步,按照船舶优先级数先后为每艘船舶所代表的基因位点组内随机指定一个基因位点,并将其的值由0赋值为1。每个基因点位组内只指定一个基因点位赋值为1,使生成的解满足约束(2)。经过这两步操作,使产生的初始解是满足每个船舶的可行停泊方案只有一个被选中(基因位点为1),也即是满足了约束(2)。此外,在这一初始化过程需要设置一些基本参数,包括最大迭代次数g
max
、交叉概率pc和变异概率pm。
[0030]
步骤3.2:定义适应度函数;具体为:适应度函数也叫评估函数,是评判种群内个体的优劣的重要指标,选择恰当的适应度函数是解决优化问题的关键。文中将g-bqcap-tw模型的目标函数的负值当作适应度函数,在迭代的过程中,寻找出每一代中的种群中适应度最大值,并保证模型整体的最大值是随着迭代次数的增加而不断变大的,直至最大值不变,此时的最大值即为最优解。
[0031]
步骤3.3:对不符合约束的解设置基因修复操作步骤;具体为:基因修复,bqcap-tw模型是一个带有等式约束和不等式约束的最小化问题,对于初始化产生的初始解和经过交叉变异操作后的解都有可能违反约束条件。目前,为了使解满足约束条件的方法有两种:罚函数法和基因修复操作。罚函数法通过给予不满足约束条件的解一个惩罚值将有约束的优化问题变成无约束的优化问题,且离可行域越远惩罚越大,尽可能地减少这些不可行解进入下一轮迭代的概率。基因修复操作则是通过一定的策略改变初始解的基因从而使解满足约束条件,基因修复操作流程如图5所示。
[0032]
步骤3.4:种群通过轮盘赌抽取进行基因交叉;具体为:交叉操作可以使遗传算法的全局搜索能力得到显著提高。交叉操作主要分为单点交叉、多点交叉和均匀交叉三种方式。文中采用的交叉操作形式为两点交叉,在种群内将相邻的两个个体作为父代个体,然后依次根据随机数是否小于交叉概率来对种群内的所有个体进行单点交叉。与普通的两点交叉不同的是,本文要求参与交叉的基因段必须为整艘船舶或连续几艘船舶所对应的基因段,而不能随意指定基因段,从而保证每个个体的基因所对应的解依旧能满足约束(2)。具体的交叉操作过程:第一步,获取不同船舶停泊方案集合对应基因段之间的所有分界点的
索引;第二步,产生一个随机数,判断其是否小于事先设置好的交叉概率,若小于进入第三步,若不小于则不发生交叉操作;第三步,随机选取两个分界点的索引;第四步,将两个分界点之间的基因段进行交叉。如图3所示,选取了第一艘与第二艘船舶之间和第二艘与第三艘船舶之间的两个分界点,并将两分界点之间的基因段进行了交叉操作。
[0033]
步骤3.5:按照一定概率对一些个体进行基因变异操作;具体为:变异操作:变异操作可以使遗传算法的局部搜索能力得到显著提升,同时还能使种群保持多样性,避免过早收敛。由于编码方式采用的是二进制编码,故变异方法采用的是位点变异。位点变异主要是通过判断随机数是否小于变异概率来对种群内的个体编码串进行变异操作,变异操作过程中通过随机数来指定需要变异的基因位点。根据种群初始化可知,每个个体所对应的解是由每个船舶的可行停泊方案集合组成的,故本文指定有个基因位点参与变异操作且分布在每一艘船舶所对应的基因段中,即每一艘船舶的停泊方案所对应的基因段均有一个基因位点可能参与变异操作。具体的交叉操作过程:第一步,遍历每一艘船舶所对应的基因段,产生一个随机数,判断其是否小于变异概率,若小于进入下一步,若不小于则该基因段不发生基因变异操作;第二步,将该基因段中为1的基因位点赋值为0,变异位点必须是值为1的位点,保证变异前后每个基因段中均只有一个值为1的位点;第三步,在变异位点的左边或右边位点中随机选取一个位点,并将其赋值为1,完成一个基因段的变异。如图4所示,第一艘船舶对应的基因段的第四个位点发生变异,左边的位点变为1;第二艘船舶对应的基因段未发生变异;第三艘船舶对应的基因段第三个位点发生变异,左边的位点变为1。
[0034]
步骤3.6:到达代数后得到最优个体为模型的解。
[0035]
本发明建立g-bqcap-tw模型约束,然后设计一种列生成策略,生成初始gspp矩阵,矩阵产生所有符合g-bqcap-tw约束的船舶停泊方案(gspp矩阵的列),将gspp矩阵和遗传算法初始化结合,将个体进行选择交叉变异,在交叉变异过程中设计了一种基因修复操作,当遗传到设定代数后,定义种群中适应度最好的个体为最优解。
[0036]
综上所述,本发明的有益效果是:1、考虑潮汐影响下连续泊位和岸桥的联合分配。2、g-bqcap-tw模型是一个np难问题,先采取列生成策略将模型约束嵌入到基因中,同时初始化种群保证模型中等式一直成立。本发明提高集装箱码头的作业效率,合理进行泊位岸桥的分配,降低码头运营成本。
附图说明
[0037]
图1是本发明的遗传算法求解流程图。
[0038]
图2是本发明的种群初始化示意图。
[0039]
图3是本发明的基因交叉操作过程示意图。
[0040]
图4是本发明的基因变异操作过程示意图。
[0041]
图5是本发明的基因修复操作流程图。
[0042]
图6是本发明的使用遗传算法收敛曲线图。
[0043]
具体实施方法
[0044]
下面结合说明书附图和具体实施例对本发明进行进一步的说明。
[0045]
为了验证g-bqcap-tw模型的的有效性,接下来将其应用到一个实际的集装箱码头上。通过分析得出的泊位-岸桥分配方案来证实研究内容的合理性。列生成、g-bqcap-tw模
型的求解硬件环境均为联想小新pro13笔记本,cpu型号为r74800u,运行内存为16g,软件平台均为matlabr2019b。该码头有8个泊位单元和12台岸桥。下面以该集装箱码头一周的抵港船舶作为一个优化样本,统计期间所有抵港船舶的到达时间、船舶大小和船舶优先级数,如表1所示。
[0046]
表1
[0047][0048]
集合符号定义:b={1,2,...,|b
l
|,|b
l
| 1,...,|b|},码头内泊位单元集合,b
l
={1,2,...|b
l
|},|b
l
|<|b|,码头内浅水泊位单元集合,bh={|b
l
| 1,...|b|},|bh|=|b|-|b
l
|,码头内深水泊位单元集合,i={1,2,...,|i|},规划周期内抵港船舶集合,j={1,2,...,|j|},规划周期内每艘船舶的所有可行停泊方案所组成的数据矩阵,我们称之为gspp,gspp矩阵中列向量的集合,t={1,2,...,|t|},规划周期。
[0049]
参数符号定义:tc是潮汐周期,q是码头内岸桥总数,ai是船舶i抵港时间,di是船舶i最晚离港时间,ai是船舶开始服务时间,是船舶i分配q台岸桥时所需的装卸货时间,cj是gspp矩阵中第j列的成本,即第j个可选方案的成本,该值为第j列对应船舶的服务优先级数与该船舶在港停留时间的乘积,wi是船舶i的服务优先级数,ri是船舶i可容纳的岸桥数范围,i∈i,围,i∈i,表示最少需配置的岸桥数,表示最多能配置的岸桥数,li是船舶i停泊时所需要占领的泊位单元数,yi是船舶是否对泊位水深有要求,0表示无,1表示有,即yi取0或1,zi是船舶i所需的装卸量(teu)。
[0050]
变量定义:xj是一个二进制决策变量,当xj=1表示第j列是优化问题解的一部分,反之则不是。xv=(v
ij
)为每艘船舶分配了一行,当v
ij
=1时,表示第j列被作为船舶的停泊方案,反之v
ij
=0;x
p
=(b
pj
)为船舶所停靠的每一个(泊位单元,时间单元)分配了一行,当b
pj
=1时,表示该(泊位单元,时间单元)上有船舶停泊,反之b
pj
=0;x
t
=(q
tj
)为每一时间单元分配了一行,q
tj
反映的是当前时间点被分配的岸桥数,即该时间点有多少台岸桥在工作,那么q
tj
的值就为多少。
[0051]
如表2所示,首先输入表1中数据(各艘船舶的规模、各艘船舶可配置的岸桥数范围、船舶的优先级数、到港时间、最晚离开时间、所需装卸时间、泊位单元数和岸桥数);然后是对列生成过程中各个参数的初始化;采用for循环遍历规划周期内的所有船舶;再用for循环为了不同规模的船舶遍历所有可能的停泊泊位,li是用来判定船舶停泊时所占的泊位单元数,例如li为1时,泊位数等于泊位单元数|b|减去1再加1,共有|b|个选择来停泊该船舶,li为2时,泊位数等于泊位单元数|b|减去2再加1,共有|b-1|个选择来停泊该船舶,li为3时,泊位数等于泊位单元数|b|减去3再加1,共有|b-2|个选择来停泊该船舶;第然后遍历船舶所有可能配置的岸桥数;之后遍历船舶在规定在港时间窗[ai,di]内的所有可行作业时间的起始点;在第7-11行中判定船舶作业时泊位的水位情况,d=hl表示船舶作业的整个时间窗口均处于高水位时段,d=h表示船舶作业的整个时间窗口内包含泊位低水位时段;第12-29行是整个列生成的循环主体,将满足船舶时间窗要求的列全部生成出来。在主循环体中,第12行的if条件语句使满足水深要求的泊位单元才会进入下一步的列举操作,(d=h&&bo》yi*b
l
)表示船舶作业时间窗内有低水位时段且该船舶有水深要求(yi=1)时需剔除浅水泊位单元,船舶无水深要求时该if语句可忽略;第13行的if条件语句是为了避免船舶作业时间超过船舶在港时间窗;第14行是为了统计gspp矩阵的列数j和列举xv子矩阵;第15-24行是一个if判断语句,根据不同船舶停泊时占用泊位单元数的不同,分别产生对应不同格式的x
p
矩阵;第25行是为了列举子矩阵x
p
和计算每一列的成本cj。
[0052]
表2
[0053]
[0054][0055]
如表2所示,得到由xv、x
p
、x
t
组成的gspp矩阵,作为参数带入到约束(1)-(4)中。约束(1)是g-bqcap-tw模型的目标函数,表示规划周期内所有船舶在港停留时间与船舶优先级数的乘积之和最小化;约束(2)表示每艘船舶必须服务且只服务一次;约束(3)表示在同一时间单元的同一泊位单元上至多只能被一艘船舶所占领;约束(4)表示在同一时刻码头内所工作的岸桥数不能超过码头所配置的岸桥总数,约束(5)表示规划模型中变量的取值范围。
[0056]
min∑
j∈jcj
xjꢀꢀꢀꢀ
(6)
[0057][0058][0059][0060]
xj∈{0,1};v
ij
∈{0,1};b
pj
∈{0,1};q
tj
∈n
*
ꢀꢀꢀꢀꢀ
(10)
[0061]
联合分配步骤1:初始化种群:如图2所示,第一步,将初始解初始化为全为零的数组,三种不同颜色的基因位点分别表示不同的船舶可行停泊方案;第二步,按照船舶优先级
数先后为每艘船舶所代表的基因位点组内随机指定一个基因位点,并将其的值由0赋值为1。每个基因点位组内只指定一个基因点位赋值为1,使生成的解满足约束(2)。经过这两步操作,使产生的初始解是满足每个船舶的可行停泊方案只有一个被选中(基因位点为1),也即是满足了约束(2)。此外,在这一初始化过程需要设置一些基本参数,包括最大迭代次数g
max
、交叉概率pc和变异概率pm。
[0062]
联合分配算法步骤2:定义适应度函数:将g-bqcap-tw模型的目标函数的负值当作适应度函数,在迭代的过程中,寻找出每一代中的种群中适应度最大值,并保证模型整体的最大值是随着迭代次数的增加而不断变大的,直至最大值不变,此时的最大值即为最优解。
[0063]
联合分配算法步骤3:对不符合约束的解设置基因修复操作步骤:bqcap-tw模型是一个带有等式约束和不等式约束的最小化问题,对于初始化产生的初始解和经过交叉变异操作后的解都有可能违反约束条件。基因修复操作则是通过一定的策略改变初始解的基因从而使解满足约束条件,基因修复操作流程如图5所示。
[0064]
联合分配算法步骤4:种群通过轮盘赌抽取进行基因交叉:交叉操作可以使遗传算法的全局搜索能力得到显著提高。第一步,获取不同船舶停泊方案集合对应基因段之间的所有分界点的索引;第二步,产生一个随机数,判断其是否小于事先设置好的交叉概率,若小于进入第三步,若不小于则不发生交叉操作;第三步,随机选取两个分界点的索引;第四步,将两个分界点之间的基因段进行交叉。如图3所示,选取了第一艘与第二艘船舶之间和第二艘与第三艘船舶之间的两个分界点,并将两分界点之间的基因段进行了交叉操作。
[0065]
联合分配算法步骤5:按照一定概率对一些个体进行基因变异操作:采用位点变异。根据种群初始化可知,每个个体所对应的解是由每个船舶的可行停泊方案集合组成的,故本文指定有j个基因位点参与变异操作且分布在每一艘船舶所对应的基因段中,即每一艘船舶的停泊方案所对应的基因段均有一个基因位点可能参与变异操作。具体的交叉操作过程:第一步,遍历每一艘船舶所对应的基因段,产生一个随机数,判断其是否小于变异概率,若小于进入下一步,若不小于则该基因段不发生基因变异操作;第二步,将该基因段中为1的基因位点赋值为0,变异位点必须是值为1的位点,保证变异前后每个基因段中均只有一个值为1的位点;第三步,在变异位点的左边或右边位点中随机选取一个位点,并将其赋值为1,完成一个基因段的变异。如图4所示,第一艘船舶对应的基因段的第四个位点发生变异,左边的位点变为1;第二艘船舶对应的基因段未发生变异;第三艘船舶对应的基因段第三个位点发生变异,左边的位点变为1。
[0066]
联合分配算法步骤6:如图6所示,遗传算法迭代到达代数后收敛,最优解为种群中适应度最高的个体。
[0067]
求解后所得到的泊位-岸桥分配方案如表3所示,表中停泊位置表示装卸货时所占用的泊位单元位置,停泊时间表示船舶开始装卸货时间,在港时间为船舶装卸货时间与船舶等待时间之和。
[0068]
表3
[0069]
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献