MQ-BAP|基于粒子群算法的多码头连续泊位分配优化研究(MATLAB免费分享)

文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进

在这里插入图片描述

在物流运输行业中,运输的主要方式有海洋运输、航空运输、公路运输和铁路运输等。在国际货物中最主要的运输方式是海洋运输,据统计,中国进出口近90%货运都是利用海洋运输进行的。而在海洋运输中主要有杂货运输以及集装箱运输两种运输方式,由于集装箱运输具有装卸效率高和适合多式联运等优点,使得集装箱运输成为国际运输的重要运输方式。

而集装箱港口一旦建成,再次修建将花费大量人力和物力,因此改进港口的生产运作是提升港口竞争力的重要措施。而其运作系统包括泊位分配、岸桥分配等,对这些资源的合理分配与调度能够直接影响港口的作业效率。

本文主要针对多码头泊位分配问题(Multi-Quay Berth Allocation Problem,MQ-BAP)进行优化,由于本文是KAU针对此问题的初步研究,因此模型会较基础,有不对的地方也欢迎指正讨论,后续KAU将在该基础上继续进阶,本文模型对应的代码也将免费分享,欢迎持续关注~

00 目录

1 泊位分配背景知识

2 多码头泊位分配模型

3 粒子群优化算法

4 代码目录

5 求解结果

6 源码获取

01泊位分配背景知识

1.1 基础知识-泊位分配问题

泊位分配问题涉及到分配到达船舶泊位的位置,以减少总的服务成本,等待时间。BAP与旅行商问题一样均属于 NP-hard 问题,泊位分配的好坏将会直接影响到集装箱港口装卸效率。正是由于该问题的重要性,国内外许多专家对其进行了深入研究。

常见的泊位分配方式有以下几种分类:

(1) 根据所有船舶是否均己到港可以分为静态泊位分配以及动态泊位分配两种;

静态泊位分配即所有船舶均已锚地等待入港,但港口实际运营时,静态泊位分配基本不存在,因为船舶不可能在制定泊位计划时就全部到港,相比之下,动态泊位分配是更有效益的问题。

动态泊位分配即船舶到港时间不同,将根据其到港时间分配泊位。
在这里插入图片描述

上图即为一个动态连续泊位分配示意图,横坐标表示岸线位置(即泊位),纵坐标表示船舶作业时间。矩形下侧为船舶靠泊时刻,矩形上侧表示船舶结束作业时刻,因此图中的矩形可以表示船舶靠泊位置和靠泊、离泊时间,由于船舶不可在同一时间占用同一泊位,因此两个矩形在时间空间上不可重叠。动态泊位分配具有复杂性与不确定性的特点,吸引了大量学者的研究。

(2) 根据泊位的布局属性的不同可将其分为离散泊位分配、连续泊位分配和混合泊位分配。

离散泊位分配即港口岸线被分为一个个独立区域,一旦泊位被分配给船舶,则该 泊位不可停靠,直至船舶装卸结束,通常会根据泊位长度停靠相应尺寸的船舶。

在这里插入图片描述

图源文献[1]

连续泊位分配即岸线连续,只要空间允许,到港船舶可以在满足吃水等其他条件下任意停靠

在这里插入图片描述

图源文献[1]

混合泊位分配即将上述两种分配方式进行组合,一部分岸线作离散泊位,另一部分作连续泊位

在这里插入图片描述

图源文献[1]

1.2 泊位分配流程

在实际操作中,集装箱船舶提前24小时报告,船公司应向码头提交详细的船舶靠港计划,其中包括船名、呼号、船舶类型、船长、吃水、集装箱装载量和预计到港时间等信息。码头工作人员在接收到这些信息后,会制定出合理的泊位分配方案。泊位分配流程如下:

在这里插入图片描述

1.3 本文研究问题

本文所研究的是多码头的泊位分配问题,这是由于各码头的建设水平及发展潜力各有不同,导致集装箱中转能力不匹配等现象,同一时期同一码头区域内有的港口超负荷运作而有的码头则出现资源闲置的现象,及大地妨碍了整个区域内港口的货运中转效率的提升。因此,加强区域内码头合作,资源共享从整体角度提高码头群的作业效率提升竞争力成为当前最有效的解决方案。因此本文从这点现实意义出发研究该问题。

多码头(如下图中的塞浦路斯利马索尔港)

在这里插入图片描述

图源文献[2]

2 多码头泊位分配模型

由于泊位是不可再生资源,如何合理有效地分配泊位,减少船舶等候靠泊时间的同时提高泊位的使用率,减少船舶的等待成本,这是本文的主要研究内容及目的和意义所在。

本研究的目的是确定船舶的靠泊时间,靠泊码头,靠泊位置,以减少与靠泊过程相关的总成本。

2.1 模型假设

在介绍模型前,有必要进行如下假设以简化模型:

进港船舶数量已知、码头的可用泊位数量已知

船舶在任意码头开始作业时,其装卸不可被中断

船舶完成任务后,该船舶的泊位立即可用

船舶的预计到达时间和离开时间已知

船舶的偏好泊位与码头已知

延迟离港、非偏好泊位、非偏好码头带来的惩罚成本是已知的

参与调度的泊位可满足任意船舶的靠泊条件,且忽略天气等不确定因素

2.2 数学模型

被安排在时间Tbs停泊在特定码头Qs的位置BPs的船舶s的总成本包括等待成本、装卸成本和延迟离开的惩罚成本,由以下函数表示:
在这里插入图片描述

公式中的第一项:
在这里插入图片描述

表示船舶s必须等待靠泊时的等待成本。船舶s的等待时间Tws计算为期望到达时间Teas和船舶s的实际靠泊时间Tbs之间的差(如下式),Cws为船舶s每小时的等待成本。
在这里插入图片描述

公式中的第二项:
在这里插入图片描述

表示船舶s的装卸成本,即从船舶s卸载集装箱和将集装箱装载到船舶s的成本。Chs为船舶每小时的装卸费,装卸时间Ths取决于待在船上装载/卸载的总体积Loads、指定的起重机数量Nqcs,以及指定给该特定船舶的起重机的平均装卸生产率HPqcs。
在这里插入图片描述

公式中还引入了惩罚函数f(.),该函数将惩罚基于船舶s的非最优泊位分配的处理成本。这项工作根据指定的停泊位置BPs和首选停泊位置PBPs之间的绝对差异计算惩罚,并考虑备选靠泊码头ABQs。使用的惩罚函数为:

在这里插入图片描述

如果船舶停泊在其优选码头(第一种情况),则基于优选泊位位置与指定泊位位置之间的绝对差来计算罚款。在第二种情况下,如果所选择的停泊码头是备选停泊码头之一,则将固定罚款金额Cnoqs添加到总成本中。否则,将在总成本中增加无限罚款,以确保没有船舶停泊在不希望的泊位(可能无法为船舶服务)。

公式中的最后一项:
在这里插入图片描述

是计算当船舶s在预期离港时间之后离港时对船舶s的延迟离港的惩罚成本。其中,Cds是船舶延迟离港的罚款。船舶s的延迟出发时间Tds计算为实际离港时间Tads和预期离港时间Teds之间的差值:
在这里插入图片描述

其中,Tads为:

在这里插入图片描述

以上各种时间线可以用下图表示:
在这里插入图片描述

图源文献[1]

多码头泊位分配问题的主要目标是给各到达的船舶分配最佳的码头和停泊位置,使得所有船舶的总成本(包括等待成本,装卸成本和各种罚款)可以最小化,如以下目标函数所示:
在这里插入图片描述

该目标函数对应的约束条件如下:

一般约束:
在这里插入图片描述

其中,Xsqbt为0/1元素,1:船舶s被安排在时间t靠泊在码头q的位置b;0:船舶未被安排。该约束确保每艘船在时间t期间只能在码头q的系泊位置b靠泊一次,且指定船舶s的靠泊时间必须始终等于或晚于其预期到达时间

连续靠泊布置的约束条件:
在这里插入图片描述

该约束不允许两艘船舶在其装卸时间内共享(部分)相同的泊位位置。此外,该约束还负责维持两船之间的安全距离和安全时间,并保证了任何船舶s的长度Ls加上其停泊位置BPs必须小于或等于码头q的长度Lq。

03 粒子群优化算法

元启发式算法求解MQ-BAP的模型要求通过算法得到船舶的靠泊码头、码头上具体的靠泊位置与时间的协同调度方案,这对算法的设计和性能均提出了较高的要求。MQ-BAP属于强约束、深耦合、软实时、高计算复杂度的问题。

本文仅利用基本的粒子群算法进行求解,后续KAU也会针对该问题做出改进版本~

关于粒子群的理论内容,本篇中不再赘述。

针对该问题,粒子群的个体采用整数编码,以5艘船舶的泊位分配为例,编码如下:
在这里插入图片描述

每个粒子为船舶提供了靠泊时间、靠泊码头以及靠泊位置的方案,对于迭代过程中产生的不可行解,本文对其添加惩罚成本。

04 代码目录

在这里插入图片描述

MATLAB编写,代码都经过作者注释,代码清爽,可读性强。

在这里插入图片描述

05 求解结果

代码中,船舶信息为随机生成,因此其期望达到时间可能会分布的并不均匀,运行Main_MQBAP.m,代码中设置码头数量5个,船舶数量40个,期望到达时间、装卸时间、首选码头等是随机生成,得到的结果如下:
在这里插入图片描述

在这里插入图片描述

06 源码获取

在GZH(KAU的云实验台)后台回复 BAP1

本次所写的泊位分配问题比较基础,很多地方都可以再优化,后续KAU也会继续更新此方向的文章,感兴趣的话不妨关注一下哦~

参考文献

[1] 张肇宝.基于改进蝙蝠算法的集装箱港口泊位与岸桥联合调度优化[D],2020.

[2] Aslam, S.; Michaelides, M.P.; Herodotou, H. Berth Allocation Considering Multiple Quays: A Practical Approach Using Cuckoo Search Optimization. J. Mar. Sci. Eng. 2023, 11, 1280. https://doi.org/10.3390/jmse11071280

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值