港口拖轮动态调度方法

文档序号:6582161阅读:1086来源:国知局
专利名称:港口拖轮动态调度方法
技术领域
本发明涉及港口调度领域,特别是拖轮动态调度领域。
背景技术
船舶进出港的顺利程度是港口服务水平的一个重要标志。拖轮是船舶的进出港过 程中不可或缺的作业船种。 为保证船舶进出港能到位、及时得到拖轮提供的服务,港口必须配备足够数量和 功率的拖轮,并应根据港口具体情况设置拖轮停靠基地,使拖轮花最少时间到达作业泊位。 一方面,若拖轮数量过少,则无法为到港船舶提供必要及时的服务,进出港船舶等待拖轮排 队时间过长,使船舶在港费用增加,将使港口在与周边港口的竞争中处于不利地位;反之, 拖轮过多将使拖轮利用率低甚至出现拖轮闲置,则浪费港口资源和增加管理费用。如何合 理配置拖轮,才能使港口在满足现在需要的同时,适应港口未来发展之需,这对每一个港口 经营者来说显得很重要。如何根据港区内各码头靠离泊船舶情况和对拖轮的需求合理配置 调度拖轮,使港口拖轮数量适当,总体布局合理,减少拖轮购置和营运成本,节省拖轮作业 前无效航行时间,直接关系到船舶靠离泊安全和港口经济效益。 随着航运业的发展,到港船舶日益增多,船型日益大型化,按照人工经验的调度方 案已经难以保证船舶进出港任务的顺利进行。 我国的某些港口对到离港船舶采用动态进出港制度。在这种制度下,船舶的到港 被集中在进港时间段进行,离港被集中在离港时间段进行。这两个时间段的交替出现,使得 相应的拖轮作业也呈现出动态的特点;拖轮的各项辅助作业,例如辅助进港,辅助出港,护 航和辅助移泊这些,在时间上显得相对集中。本发明的研究仅是针对这种动态作业方式进 行。 港口由于受到航道宽度的限制,实行的是单航道航行,集中进港,集中出港。 一天 发生动态的时间为7:00(进港)9:00(出港),每隔两个小时有进港动态,每隔两个小时有出
港动态。 当N动态的进港计划需要护航拖轮时,在第N-l个动态(进出港动态)就派出拖
轮去锚地护航,使得N动态开始时,N动态进港计划中的所有船舶都能到达航道口。此后N
动态进港计划中船舶以一定的队列进港,同时拖轮公司从拖轮集结地调出拖轮开向各个进
港船的目标泊位。当船舶到达时,拖轮协助船舶靠到泊位岸边后返航。出港动态中,拖轮公
司向出港计划中的各条船所在泊位调出拖轮,拖轮将船舶拉到航道中后,如果这条船需要
护航,就留下作业拖轮中的一条护送船舶出港,其余拖轮返航;如果这条船不需要护航,全
部拖轮返航。以上就是大致的动态拖轮作业流程,移泊的调度情况与之相似。 船舶到港前三天左右将船舶信息通报给港口务局,包括船舶的基本信息(船长,
吃水,船籍,所载货物等等)以及预计停靠的码头信息。港务局根据这些信息编制每个动态
的进港、出港和移泊计划(可能一条船停靠一个以上的泊位,因此需要移泊),并在动态开
始前将动态计划下发给拖轮公司。拖轮公司根据动态计划安排拖轮去作业,完成计划,也就完成了船舶的进出港任务。 —般每组进港船舶6-7艘或更多,依次排队进港。拖轮一般按进港船舶的吨位大 小来相应地分配拖轮的马里和数量,配置原则如下
1、100米以下2600PS*1 ; 2、 100米至200米2600PS*2或者3200PS*2或者4000PS*2 ;
3、200米至250米:3200PS*2或者4000PS*2 ;
4、250米至300米:3200PS*3或者4000PS*2 ;
5、300米以上4000PS*2和5000PS*1 ; 有时在吨位差不多的情况下,大马力拖轮一般多安排用于外轮。
大部分进港船是在快进港池时,由在那里等候的拖轮跟随进入港池,这时拖轮与 进港船舶需要带缆连接,由拖轮协助其靠泊码头。当第一艘完成后,拖轮又去进行下一艘船 的靠泊作业,待进港船全部进入泊位靠好后,拖轮全部返回基地待命,等待为出港船舶助泊 作业。拖轮接到调度指令,到达待出港港船的位置将船舶拖至航道,出港船舶利用自身动力 出港,对于需要护航船舶,拖轮从港池内一直护送到锚地,然后返航,有时返航途中拖轮又 护送需要进港护航船舶进港。拖轮调配中存在的问题
1 、人工调度难以应对数量增多的船舶进港动态 随着贸易往来的不断加剧,集装箱进出口数量的加大,往来港口的船舶数量迅猛 增加,港口的拓建使得一次可接收的船舶进港动态作业数量不断增多,面对每个动态进出 港作业数量日益增多的船舶,从前的人工调度可能已经无法应对复杂大量的船舶动态调度 的需求,可能造成对调派去进行作业的拖轮的利用率不够,调派不当,或者调度上的时间延 迟,虽然可以顺利完成任务,但是从经济,高效的角度来看,并不一定能够达到预期最优的 效果。 2、由于对拖轮的作业时间的把握不准确而造成调配的不合理 —个优秀的大船船长和引航员必须充分了解各类等级的拖轮的作业时间,并且及 时互相沟通。有时也会出现考虑不周到的情况,比如1号和14号泊位的拖轮同为2级拖轮, 此时15号泊位的船舶等待一条2级拖轮协助进港作业,而1号泊位的2级拖轮已经完成作 业,因此引航员此时便根据经验调派1号泊位的2级拖轮前去作业,但是他并没有把握好14 号泊位的2级拖轮作业的完成时间,可能在1号泊位的2级拖轮刚刚驶到5号泊位时,14号 泊位的2级拖轮便可完成作业,这样就将造成对拖轮调配的不合理情况出现。虽然可以顺 利作业,但是可能会造成燃油成本的浪费。
3、对利用率和等待时间的取舍把握不到最佳 有时引航员会出现矛盾,即现有需要一条2级拖轮协助进港的船舶等待拖轮作 业,但是此时所有的2级拖轮都在进行作业,而有4级拖轮在等待命令进行作业,此时是让 船舶进行等待所取得的效率更加高,还是派较大等级的拖轮前去作业的效率高,人工调度 无法给出确切的回答,因为只有通过计算机模拟计算之后,才知道取舍哪一方面才是更加 高效和经济的。 4、人工调度无法估计最优调配方案 人工调度是引航员根据自己的经验和知识,面对每个船舶进港动态,给出较为顺 畅的拖轮调配方案,如果可以在规定的动态时间里完成的话,那么便被视为这是一个相对合理的调配方案;但是在追求合理的同时,是否应更考虑到适应如今的市场经济的效率和经济性。毕竟人工调度的能力是有限的,可以考虑到的最优方案也是有限的,而且不能像计算机那样模拟出上百条上千条的调度方案提供参考,因此对于最优调配方案的估计是不足的。 本发明通过研究,基于考虑人工调度无法高效地完成日趋复杂的拖轮动态调度情
况,因此希望通过计算机平台,利用算法在约束条件的调度中的运用,找到较优的调度方
案,使得船舶进出港能够达到畅通、高效、最低成本的作业情况;并选用粒子群算法来解决
港口拖轮动态调度问题;考虑到该算法本身存在的、易于陷入局部最优解,针对该缺陷,本
发明也提出相应的手段,即熵函数和精英集的思想引入到算法中,对原有算法进行一定程
度的改进,最后给出了针对任意动态所求解的港口拖轮动态调度的最优调度方案。 动态是港口用来划分作业的一种规定。在动态船舶进出港制度下到港船舶集中
在进港动态进港;离港船舶集中在离港动态离港。假设进港动态和出港动态的持续时间都
为T。,港口泊位沿航道分布,其集合为B = [BpB2,... ,Bm]。 Tug= [tpt2,... ,tn]为港口
拖轮的集合,Level = [1,2,. . . ,L]为拖轮等级的集合,且Tug中的元素和Level中的元素
存在多一对应关系。 进港动态开始之前,船舶在锚地等待,其中有一些船舶需要提前派出拖轮去护航,假设其集合为HH = [ShiPl, Ship2, . . . , ShipJ (H为需要护航的船舶总数);在进港动态的开始时刻,进港船从航道口进入港区,其集合为IN = [ShiPl, Ship2, . . . , ShiPl] (I为进港船数量);在出港动态的开始时刻,出港船停靠在各自的泊位,其集合为OUT二 [ShiPl,Ship2, . . . , Ship。] (0为出港船数量)。于是一个进出港动态的任务集合可以表示如下
D = HH Y OUT Y IN (3-1)
调度的目标,就是保证调度合适的拖轮去完成任务集合中的所有任务,并且要求这些任务尽可能早地被完成。 拖轮动态调度模型的建立,模型基于以下假设建立 1、进港船舶总是可以顺利到达泊位边,不会因为前船的阻碍而停下; 2、在本动态护航任务开始调度之前,之前的任务作业已经全部完成。 从实际的拖轮调度作业数据统计中,假设2符合实际的概率高于90%。基于这一
假设,可以推断所求出的最优调度方案在整个时间跨度上仍应为最优。 拖轮调度总是以单船为最小作业单位来进行。因此动态任务集合DT可以较为详细地表示如下

发明内容
D T =
(3-2) 目+示函数
船舶等待拖轮作业时间之和最小。 目+示函数
派出拖轮的马力溢出之和最小。
_ ■- —''=1 /=1
打破n和t2的量纲,模型的目标函数f可以表示为
f = M i n { w , X f ,
(3-4)
(3-5)


(3-6)

(3-7)

i, j,k







n咖i])
n咖i])

X
约束条件如下
1、派出拖轮的马力必须足够,这体现在拖轮等级上
t 1
> r 1
1《
《K , 1《j《 《
nurn —
2、对同一个任务派出的多条拖轮的编号不能重复
^ 0, 1《i《K, 1《j, k《画i, j
t—rii, j_t_n
j, k
k, i, j, k
N
1
3、拖轮前后作业时间不能冲突
V—",j "w,T—starti,j > T—endk,工,1《k《i《K, 1《j《nunii, 1《1《numk, G N* (3-8) 模型中涉及参数说明如下 K :DT中需要调度的船舶数量,K = H+I+0+C。 ShiPi :DT中的第i条船。 Yi :ShiPi等待拖轮的时间。
numi :对sHIPi进行作业需要的拖轮数量,也称为拖轮轮次数。 r_li :ShiPi需要的拖轮的最小等级。
tA, j :对于ShiPi第j个轮次所调的拖轮的编号。(j G [1,皿叫]) t_li,j :对于ShiPi第j个轮次所调的拖轮的等级,与t—rii,j存在对应关系。(j Wl, w2 :f\和f的权重系数。 对DT进行适当的编码后,就可以通过算法运行寻找最优解。 每个任务(ShiPi)都可以用一个字符串来编码表示。将任务分三类,进港任务为类 SA,护航任务为类SB,出港任务为类SC,那么每个任务的编码可以分别表示为如下形式
(3-10)
进港任务SA 护 航
出港任务sc 移泊任务sD

("A,

("C, ("D,
PA, S 上述编码中,各任务都以一个字符开头;PA,i,PB,i,Pc,i在SA,i,SB,i和Sc,i中分别表 示对应的作业泊位的编号;Pf, i表示移泊船的移出泊位,Pt, i表示移泊船的移入泊位A为 进港队列距离修正A为锚地的编号A为护航标记山,i, l2,i, . . . , ln,i是一个拖轮等级序 列。n为该船舶作业需要的拖轮数。虽然不同类型和不同吨位的船舶需要的拖轮不同,但 是在既定的港口拖轮分配方式下,对于每条船都可以确定所需要的最小拖轮数量和拖轮等 级,因此可以直接将船舶信息和拖轮需求情况进行编码。以某进港任务为例,给出拖轮作业 示意图(图1), 拖轮动态调度问题的粒子群算法应用 假设某动态任务集合D由p个进港任务,q个出港任务和r个护航任务组成,即D —[Sb,i, Sb,2, , SB,r, Sc,r+i, Sc,r+2, , Sc,r+q, TA,r+q+1 , TA,r+q+2, , TA,r+q+p],其中白勺任务i需 要的拖轮轮次为皿nii,那么候选解维数d可以表示为
d= S打廳, (3-13) 种群规模N(即种群中候选解的数量)和d有密切的关系。若港作拖轮总数为M, 则解空间的容量应为Md。因此,一方面需要维持N足够大,以减少算法陷入局部最优解的可 能性;另一方面又必须限制N在一定的范围内,以控制算法的运行时间[18]。种群可表示为 N个长度为d的实型变量串,串中每个变量的取值范围都是(0. 6, M+0. 4),并采用四舍五入 的方法将实型的候选解串投影成整型的方案串,方案串中的每个整数即对应作业拖轮的编 号;种群速度亦可相应的表示为N个长度为d的实型变量串。这样的编码方式能使得算法 的搜索范围覆盖所有的可行解,但是同时也会使得种群中出现一些不可行解,这些解可以 通过罚函数和迭代过程被淘汰。
适应度函数f的设计 拖轮动态调度问题的适应度函数f由四部分加权生成。假设种群中的某候选解


Ai)。


Ai = [x丄,X2,. . . ,xJ,Xj G
,Xj G R, i G [l,N],i G N* (3-14) 上式中M为港口拖轮总数量。那么相应的,候选解的适应度函数可以写成f(D,
(1)等级适应度函数L(D,Ai)
参照模型,引入罚函数,定义每一个拖轮轮次的等级适应值如下
1000 < "C/)-斗(w厂 )/10 ,m乂 2 且mj Se iV' (3-15) 50 x (w)画wy. — f) wy > wy + f 上式中,对于方案中所派拖轮等级不足和等级过大设置了不同的罚系数。Ai的等
级适应度函数L(D, Ai)按照下式定义
Z(A4) = i>(/> (3_16)
(2)延迟适应度函数Y (D, Ai)和冲突适应度函数C (D, Ai) 这两个函数的计算过程和编码的解读过程关系紧密。以对进港任务串的解读为 例,给出编码解读过程如图2所示。 考虑到拖轮作业的前后工序相关性,计算某拖轮某次作业开始时间时会参考该拖 轮上次作业结束的时间和位置,并在计算结束后对本次拖轮结束作业的时间和位置作记录。 延迟适应度函数Y(D, Ai)是进出港船舶等待作业时间的总和,其表达式如下
<formula>formula see original document page 8</formula> 上式的单位为秒。 冲突适应度函数C(D, Ai)是为了避免重复分配现象,即派同一条拖轮去某船舶的
多个拖轮轮次而设计的罚函数。在解读完任务串后,对于每一条拖轮tj(l《j《M,M为拖
轮的总条数),都会有一个作业时间段记录的集合
<formula>formula see original document page 8</formula> 上式中,nj为拖轮j的任务数量。如果定义函数Length([A, B]) = lB-Al,那么
C(D,Ai)就可以表示为:<formula>formula see original document page 8</formula> 上式中单位为秒,M为拖轮的总艘数。Ai中如果出现调用同一条拖轮去某船舶的 不同拖轮轮次作业的情况,就会有C(D, Ai) > 0。 [OO92] (3)利用率适应度函数R(D,Ai) 这个函数计算按照方案Ai调度的拖轮平均利用率。函数按照下式定义
<formula>formula see original document page 8</formula>
上式中单位为秒,TD为动态总时间。
(4)总适应度函数f (D, Ai)和解的判别 总适应度函数f (D, Ai)按照实际作业的情况,打破以上四个适应度函数的量纲并
且适当加权生成,如下所示
<formula>formula see original document page 8</formula> 上式中的系数参照港口实际调度作业情况和算法的需求而取定。以进出港流畅程 度优先,同时兼顾节省拖轮马力为出发点,因此L(D,Ai)保持原来的数值不变,Y(D,Ai)的 权设为1/600。 C(D,Ai) >0是实际调度中绝对不允许出现的情况,因此给予其最大的权作为罚。R(D,Ai)是一个比较次要的参考指标,因此在这里保持原来的值不变。当f(D,Ai)
< 1000时,方案可行。 种群进化过程和终止条件 在初始化生成了种群和种群速度之后,种群的进化基本按照标准粒子群算法进 行,根据每一代的种群最优解和粒子最优解来进行种群迭代更新。唯一不同的是,本发明中 的加速常数Cl, c2不是常数,其值按照下式规定
<formula>formula see original document page 9</formula> 式中Ci,。为确定的加速常数初值,most为总计算代数,gene为当前代数。这种做 法比较常见,能够改善算法在极值点附近的收敛情况。 如果某代的种群最优解适应值小于1,则算法找到满意解,计算终止;如果种群的 最优解在1到1000之内,且600代不出现更优的解或者总进化代数已经达到most,则算法 找到可行解,计算终止;如果直到总进化代数大于most时,种群最优解适应值仍大于1000, 则算法找不到可行解,计算终止。 根据任务串的长度决定种群中粒子的个数和粒子的初速度。每一个粒子,或称为 候选解,代表着拖轮动态调度的一个求解方案。候选解的维数即为所派出的拖轮进行调度 的轮次总数。 模型中已经建立了该拖轮动态调度模型的适应度函数f,因此求解每个粒子的适 应值(fitness value),表现为即计算每种拖轮动态调度方案中所产生的调度中的时间的 延迟。 同时将计算所得最优解记录下来,每一个最优解都包含了四个罚函数的值和总的 适应值,以及调派拖轮的轮次。 所以对于该模型而言,适应值的数值越小,也就意味着该拖轮动态调度方案所浪
费的时间越少,方案越优。
粒子群进化与更新 每一个粒子每一次迭代之后,都会产生一个适应值,如果当前这一代的适应值小 于上一代的适应值,那么粒子本生将自动更新其粒子最优解。而种群的最优解,则是由所有 粒子的最优解中的最优解进行更新。 这就表示,如果对某种拖轮动态调度方案的拖轮调派进行改动,如果可以获得更 少的时间延迟,就表明这样的调派调整是可行的,即保留下当前改进后的调度方案,继续对 下一个轮次进行改进。 根据粒子最优解p(best)和种群最优解g(best)以及每个粒子当前的位置和速 度,来决定下一个粒子的位置和速度。 在拖轮调度的各种候选方案中,每一项方案都经过不断的调整调派顺序和拖轮轮 次,尽可能地减少调度中出现的时间的延迟。
判断中止条件 满足以下3个条件中的任何一个条件的话,程序运行即中止,显示当前运行产生 的结果。
(1)迭代次数达到3000 表示程序的运行做多可进行3000次的迭代,如果3000次迭代内,都没有能够找到
某个适应值在经过600次迭代后始终保持不变的话,那么程序运行到3000代立即中止,取
当前种群的最优解为算法输出解。 (2)适应值> 1,并且连续600代保持不变 在程序运行过程中,如果适应值在连续迭代600代之后,仍然没有发生改变,那么
本发明就认为此时的这个适应值作为满意解。 (3)适应值< 1 如果出现适应值小于1的情况,就认为找到最优解。
对粒子群算法的改进 根据标准的粒子群算法,只有每个粒子在之前所有代中的最优解,才会被保留下来作为粒子进化的依据。这种做法错过了迭代过程中一些有价值的信息,因为每个粒子的次优解或较次优解也可能存在着比另一个粒子的最优解更加优的可能性,因此标准粒子群算法中单一考虑粒子本身的最优性的做法,可能导致种群中其他粒子的有价值次优解的流失,使得算法过程前期算法的收敛速度受到限制。此外,在算法过程后期,当所有点都极度逼近种群最优解时,如果此时的种群最优解是局部最优解而非全局最优解,那么算法很容易陷入局部最优解,而找不到全局最优解。本发明试图用精英集与熵函数结合的方法,来改善标准粒子群算法的这两个问题。 精英集是每个粒子在全部迭代过程中的所有解中,适应值最优的一定数量的解的
集合。这个集合会保留一些有价值的,但是在标准粒子群算法迭代过程中被忽略的解。在
迭代过程中的适当时刻,精英集中的某些解会被用于替换种群中的某些解。 程序首先运行一代之后,取适应值最小的前20个解,组成best 20,并且按照从小
到大的顺序排列。然后程序进而运行,伪代码编写如下
If fitness value < best 20 Then update the current new fitness value in best 20
Kick out the original No20 and put the new fitness value into the queue
即原先精英集中上一代的第20个值被排除,此时的这个最优解,根据其大小的排列,替换到相应的1-20的位置上,就这样精英集不断地得到更新,精英集中列举了所有拖轮调度可能方案中最优的20种调度方案。 熵是混乱和无序的度量。熵值越大,混乱无序的程度越大。在算法中,可以用熵来表示整个粒子群在解空间中的分布广度。粒子群分布得越广,熵就越大。随着迭代的进行,各粒子逐渐趋近于最优解而相对聚拢,种群的熵值也随这一过程逐渐减小。本发明希望在保证算法收敛速度的基础上,适当维持粒子分布的广度,以保持粒子群的搜索范围,避免算法收敛于局部最优解。 本发明将粒子群中各个粒子与其他所有粒子之间的距离和定义为熵,其值即为熵值。熵函数也因此可表示为粒子在N维空间中的距离公式,艮卩
Shang = [ (al—a2) 2+(bl—b2) 2+... + (xl—x2)2]1/2 上式中1和2分别表示2个粒子,x表示这2个粒子所在空间的维数。 本发明在迭代过程中设立一个标准熵值变量,来保存之前迭代过程的熵值情况。
10首先取前十代的熵值的平均值作为标准熵值,然后根据以后每十代平均熵值的变化趋势,对标准熵值作出调整。如果某十代的平均熵值小于标准熵值,则一次性地用精英集中的最优解去随机地替换种群中的任意解,希望可以维持熵值。如果连续的四十代中,四次替换都使得熵值变小,这时就根据最后十代的平均熵值对标准熵值进行调整。这种做法更具可靠性和平均性。 在系统的运行过程中,一旦熵值小于标准值,则将精英集中的最优解随机地替换
到原先的group的解中,此做法的目的在于希望可以做到人为地控制熵值的变化范围,避
免熵值迅速减小所造成的系统收敛速度过快,而无法找到合理地最优解的情况。 精英集与熵函数的引入,是希望可以在某种程度上改善前文提到的粒子群算法的
两个缺陷。在算法迭代过程的前期,引入精英集中的解可以加快算法的收敛速度;而在算法
迭代过程的后期,引入精英集中的解可以适当维持算法的搜索范围,使得算法有更多的机
会跳出局部最优,找到全局最优解。在这个过程中,用熵来衡量种群的广度,即解的覆盖范
围,作为算法性能的一个指标。


下面结合附图与实施案例进一步说明本发明。图l拖轮作业示意图;图2编码解读过程;图3算例中拖轮等级划分表;图4任务串编码;图5拖轮协助大船靠泊示意图;图6拖轮护航大船出港示意图;图7实验结果记录;图8算法改进后最优解的适应值变化情况;图9最优解取值情况;图10最优解对应派遣工作的拖轮编号表;图ll任务调度方案示例;图12实验结果记录;图13最优解取值情况;图14算法改进前后最优解的适应值变化情况对比图15熵值替换前后的变化情况对比;图16改进前后调度方案的对比。
具体实施例方式
下面通过一个实施案例,进一步说明本发明。 该例中,TD = 14400秒,M = 16, N = 8d, t = 2, v隨=20, most = 3000。 N = 8d就是种群数量的得到方式。种群数量是任务中轮次数量的8倍。t是允许的拖轮等级的溢出处数量。各拖轮的等级划分如图3算例中拖轮等级划分表所示,所用数据为港口作业实际数据。该算例的任务编码如图4任务编码所示
11
举例说明上述任务串编码的含义 B, 22, 2, 2分别表示护航任务,在泊位22号作业,锚地为2,需要派出作业的拖轮等级为2,即3000-3500马力的拖轮,对应港口可供调配的拖轮编号为5,6,7,其中调配的拖轮等级可以大于所需等级,但是不能小于所需等级。作业情况如图5拖轮协助大船靠泊示意图所示C, 4, 0, 2, 2分别表示出港任务,在泊位4号作业,无须护航,需要派出作业的拖轮一共要2艘,等级同为2,即3000-3500马力的拖轮,对应港口可供调配的拖轮编号为5,6,7,其中调配的拖轮等级可以大于所需等级,但是不能小于所需等级。作业情况如图6拖轮护航大船出港示意图所示 图中所选取的该任务动态共有15个作业任务,每个大写英文字母代表一个作业,
并且分别要调派相应的拖轮去协助大船完成进出港。 算法改进后的求解结果 将算法模型运行十次,得到的10次运行结果如图7实验结果记录所示
其中L,Y,C,R分别表示的是四个适应度函数的计算值,f表示总的适应值,进化代数表示截止到程序运行结束时,粒子所更新的迭代次数。而平均值记录下了这10次的平均结果,用来与改进前的结果作比较,比较具有可靠性。 十次运算均得到可行解,且都没有超过2. OO,取总适应值最小的一次分析,其中粒子的最终迭代次数为3000次,相应的适应值变化情况如图8算法改进后最优解的适应值变化情况;最优解的取值情况如图9所示各数值取整以后,如图10最优解对应派遣工作的拖轮编号表所示,表中数字即为派遣出去工作的拖轮的编号。最优解与计划对应,可以清楚地看到每个任务分别派遣哪条拖轮去工作。图11是调度方案的一个节选示例,该计划任务为护航任务,在泊位22号作业,锚地为2,需要派出作业的拖轮等级为2。调度派出编号为8的拖轮,该拖轮等级为3,满足作业需要,但是可能由于小级别的拖轮正在进行其他工作而无法承担该任务,或者级别3的拖轮可以比级别2的拖轮更加有效率地完成作业任务。派出时间表示在第1112. 6秒的时刻派出8号拖轮去进行护航作业,完成时刻表示在第11461. 3秒的时后拖轮完成该作业任务。整个护航任务持续的作业时间是10348. 7秒,合计2. 87小时。算法改进前的求解结果将算法模型运行十次,结果如图12实验结果记录所示十次运算均得到可行解,且9次的结果都在5以内。取总适应值最小的一次分析,最优解的取值情况如图13最优解取值情况所示。
算法改进后的收敛性及调度方案的改善
收敛性的改善 对比算法改进前后最优解的适应值变化情况,可以看到两者收敛情况的比较。由图14可以看到,算法改进前后最优解的适应值变化情况对比 图中实线表示的是添加精英集和熵函数,对粒子群算法进行改进后得到的结果,而虚线表示的是改进前使用标准粒子群算法的结果。可以看到,对粒子群算法进行改进后得到的收敛速度更快了,而且能够找到更优的适应值。 本发明通过对引入熵函数后,利用精英集的替换,将替换前后的程序各自分别运行10次以后的平均情况作了分析,观察熵值变化对于寻找最优解的影响以及产生替换后熵值的变化趋势,替换前后的熵值变化情况对比如图15熵值替换前后的变化情况对比所
图中较深的线表示的是添加精英集和熵函数,对粒子群算法进行改进后得到的结果,而较浅的线表示的是改进前使用标准粒子群算法的结果。可以看到,迭代过程前期改进后的算法结果熵值下降明显快于改进前,即收敛速度较改进前有明显的提高;迭代过程后期改进后的算法结果熵值表现得更为稳定,下降速度较改进前更为缓慢。此外,改进后的算法非但找到了更好的解,并且图中深线的x轴跨度明显小于浅线,这表明改进后算法找到结果所经历的迭代次数也比改进前减少很多。 由图16改进前后调度方案的对比,可知算法改进前后的算例结果,改进后的拖轮动态调度方案在延迟适应度函数上的改善相对较大,从原先改进前的427. 6减小到35. 34,(表中数据加粗显示)也就说明了船舶等待拖轮协助靠泊的时间变短了,因此从效率的角度来看,改进后的调度方案一定是更加高效的。 另外,从等级溢出的数量也可以看出,算法改进前,需要溢出ll个等级,说明了拖轮的利用率仍然存在着很大的浪费,而算法改进后,等级的溢出被减小到9,等级的溢出一定会造成拖轮马力的浪费,用较大马力的拖轮去工作,成本也会相应地增加,在如今的市场经济环境下,码头会更加重视成本的节约,因此,我们需要做到尽可能地减小派遣作业的拖轮等级的溢出,做到实打实地进行调度作业,从成本的角度来说,改进后的方案也是更加优异的。 以上结果的运行环境为Windows XP下,自行编写的eM-Plant程序中,计算机相关配置为AMD双核1800MHz, 2G内存,运算过程经理CPU平均时间约20分钟。考虑到拖轮动态计划一般提前10小时左右就已经传递到拖轮调度部门,因此,这一算法应用于实际拖轮调度是合适的。
权利要求
港口拖轮动态调度方法,其特征在于包括以下步骤1)在分析拖轮动态计划的基础上,建立拖轮动态调度模型,提出一种动态编码方式;2)以粒子群优化算法对问题进行适应度函数设计和调度方案求解;3)在标准粒子群算法的基础上,引入精英集和熵函数的概念,对算法进行改进;4)通过与改进前程序运行结果的对比结果分析,发现结果确实得到一定程度的优化和改进;进一步证明精英集与熵函数在粒子群算法中的应用的可行性,找到使船舶进出港更为流畅的调度方法。
2. 根据权利要求1所述的调度方法,其特征在于所述的步骤1)的条件为进港船舶总是可以顺利到达泊位边,不会因为前船的阻碍而停下;在动态护航任务开始调度之前的任务作业已经全部完成;拖轮前后作业时间不能冲突。
3. 根据权利要求l所述的调度方法,其特征在于所述的步骤2)适应度函数适应值的数值越小,也就意味着拖轮动态调度方案所浪费的时间越少,方案越优。
4. 根据权利要求1所述的调度方法,其特征在于所述的步骤3)精英集的选取是为了保留整个种群所有粒子在全部迭代过程中的最优解,即为种群最优解;用精英集中的解去替换一般解,在迭代过程前期可以加速算法的收敛速度,同时在迭代过程后期可以维持熵值的稳定。
全文摘要
本发明为港口拖轮动态调度方法,随着航运业的发展,到港船舶日益增多,船型日益大型化,按照人工经验的调度方案已经难以保证船舶进出港任务的顺利进行。如何针对复杂多变的来船情况确定合理的拖轮调度方案,成为港口业务中需要解决的一个问题,开展这方面的研究势在必行,具有重大意义。针对现有拖轮动态调度问题进行分析,本发明建立了拖轮动态调度模型,并且基于作业的实际情况将问题以适当的形式编码,利用粒子群优化算法对问题进行适应度函数设计和调度方案求解,并且引入精英集和熵函数的概念,对算法进行改进;最后通过仿真,将算法改进后的方案,与改进前的方案进行比较分;掌握粒子群算法在港口拖轮动态调度中的应用。
文档编号G06Q10/00GK101782987SQ200910198889
公开日2010年7月21日 申请日期2009年11月17日 优先权日2009年11月17日
发明者严伟, 何军良, 宓为建, 苌道方, 边志成, 郭锭峰, 陆后军 申请人:上海海事大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1