, , ,
(大連海事大學(xué) 航海動(dòng)態(tài)仿真和控制交通行業(yè)重點(diǎn)實(shí)驗(yàn)室, 遼寧 大連 116026)
基于差分進(jìn)化算法的散貨船“最后分艙裝載”計(jì)算
劉春雷,孫霄峰,吳海波,尹勇
(大連海事大學(xué)航海動(dòng)態(tài)仿真和控制交通行業(yè)重點(diǎn)實(shí)驗(yàn)室,遼寧大連116026)
為實(shí)現(xiàn)散貨船“最分分艙裝載”計(jì)算,根據(jù)其特點(diǎn)建立“最后分艙裝載”的優(yōu)化模型,將其歸結(jié)為單目標(biāo)約束優(yōu)化問題并采用差分進(jìn)化算法進(jìn)行求解。以某25萬t散貨船為例進(jìn)行實(shí)例計(jì)算:實(shí)例一為平均吃水變化較大時(shí),利用傳統(tǒng)“縱傾力矩法”與上述方法計(jì)算得到的平均吃水和吃水差的誤差分別為1.026%及8.33%,0%及0%;實(shí)例二為平均吃水變化較小時(shí),利用傳統(tǒng)“縱傾力矩法”與上述方法計(jì)算得到的平均吃水和吃水差的誤差分別為0%和2.17%,0%和0%。計(jì)算結(jié)果表明:上述方法不僅適用于平均吃水變化較小時(shí)的“最后分艙裝載”計(jì)算,而且適用于平均吃水變化較大時(shí)的計(jì)算,尤其是在平均吃水變化較大時(shí)可有效減小誤差。
水路運(yùn)輸; 散貨船; 配載儀; 最后分艙裝載; 差分進(jìn)化算法
Abstract: An optimization model for bulk carrier “Final Trimming” calculation is built according to the characteristics of the process. The trimming process is regarded as a single-objective optimization with constraints. The differential evolution algorithm is used to solve the problem. Two cases of trimming for a 250 000 tons bulk carrier are carried out for illustration. The first case, associated with large mean draft changes, shows that the deviations of mean draft and trim of draft are 1.026% and 8.33% by traditional “Trimming Moment Method”. The second case, representing the final trimming with only small mean draft change, shows that the deviations of mean draft and trim of draft are 0% and 2.17% by traditional method. On the contrary, the suggested method makes all the deviations zero in both cases, which means that the method can be effective for both general loading and final trimming.
Keywords: waterway transportation; bulk carrier; loading computer; final trimming; differential evolution algorithm
隨著航運(yùn)業(yè)不斷發(fā)展,散貨船逐漸趨于大型化,這使得其進(jìn)出港口時(shí)的吃水常受泊位水深的限制。散貨船裝載貨物時(shí)通常按預(yù)定的配載方案裝載,理論上可達(dá)到要求的浮態(tài),但實(shí)際裝載時(shí)因裝載量和裝載位置與理論值不同,導(dǎo)致裝貨后的浮態(tài)與所要求的浮態(tài)有較大差別。因此,散貨船裝貨時(shí)通常會(huì)預(yù)留一部分貨物用于“最后分艙裝載”[1],使船舶最終的浮態(tài)滿足進(jìn)出港要求。
目前針對(duì)散貨船“最后分艙裝載”的計(jì)算大多是使用Excel根據(jù)“加載100 t吃水法”[2]計(jì)算或根據(jù)“縱傾力矩法”[3]計(jì)算。這2種方法存在每厘米吃水噸數(shù)TPC和每厘米縱傾力矩MTC一直不變的假設(shè),當(dāng)平均吃水和吃水差變化較大時(shí)會(huì)產(chǎn)生較大的誤差。此外,文獻(xiàn)[4]采用“內(nèi)點(diǎn)法”解決質(zhì)量分配問題,將艙室簡化成方體,認(rèn)為其重心是不依賴于載重量的,而實(shí)際上艙室是不規(guī)則體,其重心和載重量存在著一一對(duì)應(yīng)的關(guān)系,這樣的簡化也會(huì)導(dǎo)致“最后分艙裝載”計(jì)算產(chǎn)生誤差。
針對(duì)以上不足,將散貨船“最后分艙裝載”歸結(jié)為單目標(biāo)約束優(yōu)化問題,建立散貨船“最后分艙裝載”的優(yōu)化模型,并將差分進(jìn)化算法引入到該優(yōu)化模型的求解中,通過建立離線的艙容表實(shí)現(xiàn)散貨船的“最后分艙裝載”計(jì)算,提高計(jì)算精度。
“最后分艙裝載”結(jié)束后,船舶在重力和浮力的作用下能平衡漂浮于靜水面,此時(shí)可能同時(shí)存在橫傾和縱傾,但總滿足任意浮態(tài)下的平衡方程。船舶任意浮態(tài)平衡時(shí)所確定的平衡方程組[5]為
(1)
通?!白詈蠓峙撗b載”前船舶的浮態(tài)和各個(gè)貨艙的裝載情況是已知的;而“最后分艙裝載”結(jié)束后船舶處在一個(gè)平衡狀態(tài),滿足船舶任意狀態(tài)下的平衡方程組(該平衡方程組為一個(gè)隱式非線性方程組)。這里主要使用差分進(jìn)化算法求解該方程組,進(jìn)而求出“最后分艙裝載”的貨物分配量,因此平衡方程組中的任何一個(gè)方程都可作為目標(biāo)函數(shù)。但是,出于計(jì)算簡單考慮,根據(jù)平衡方程組中的第一式,以用于“最后分艙裝載”的貨艙總載貨量與總排水量變化量差值的絕對(duì)值作為目標(biāo)函數(shù),即
(2)
式(2)中:Mlast為分艙裝載后船舶總的排水量;M0為分艙裝載前除調(diào)整艙之外船舶總的排水量。
1.3約束條件
根據(jù)船舶平衡時(shí)所確定的浮態(tài)方程、每個(gè)艙室允許裝載的最大裝貨量和最小裝貨量,得到以下約束條件。
(3)
式(3)中:pimax為要調(diào)整的艙中第i個(gè)貨艙的最大裝貨量;xG0,yG0和zG0分別為調(diào)整吃水前除調(diào)整艙之外船舶重心的縱向坐標(biāo)、橫向坐標(biāo)及垂向坐標(biāo);xGi,yGi和zGi分別為要調(diào)整的艙中第i個(gè)貨艙重心的縱向坐標(biāo)、橫向坐標(biāo)及垂向坐標(biāo);xBlast,yBlast和zBlast分別為調(diào)整后所需的船舶浮心的縱向坐標(biāo)、橫向坐標(biāo)及垂向坐標(biāo)。
差分進(jìn)化算法具有結(jié)構(gòu)簡單、可調(diào)參數(shù)少、收斂速度快和魯棒性強(qiáng)等特點(diǎn)。[6-8]該算法作為一類新興的優(yōu)化算法,在處理單目標(biāo)優(yōu)化問題方面具有很強(qiáng)的優(yōu)勢(shì),已廣泛運(yùn)用于科學(xué)研究和工程實(shí)踐當(dāng)中,如控制器參數(shù)優(yōu)化、濾波器設(shè)計(jì)、數(shù)據(jù)挖掘和石油化工等。[9]
差分進(jìn)化算法是從一個(gè)隨機(jī)初始化的種群開始搜索,經(jīng)過變異、交叉和選擇操作產(chǎn)生下一時(shí)刻的主種群;該過程重復(fù)進(jìn)行,直到滿足停止條件。
差分進(jìn)化算法中的個(gè)體即優(yōu)化設(shè)計(jì)中的設(shè)計(jì)變量,個(gè)體上的每一維變量即為每個(gè)設(shè)計(jì)變量。每個(gè)個(gè)體的維數(shù)與設(shè)計(jì)變量相同。
1) 設(shè)計(jì)變量
(4)
2) 種群個(gè)體
(5)
式(4)和式(5)中:n為個(gè)體的維數(shù);NP為種群規(guī)模。
初始種群應(yīng)盡可能地覆蓋整個(gè)搜索域,用隨機(jī)方法產(chǎn)生,每個(gè)個(gè)體Xi的每一維生成方法為
xi,j=pjmin+rand(0,1)×(pjmax-pjmin)
(6)
式(6)中:rand(0,1)為一個(gè)位于0~1的滿足均勻分布的隨機(jī)數(shù);pjmin,pjmax分別為初始化用于“最后分艙裝載”的貨艙中第j個(gè)貨艙載重量的最大值和最小值,取pjmin=-0.3pjmax,pjmax=1.3pjmax。
由于約束的存在,在計(jì)算每個(gè)個(gè)體目標(biāo)函數(shù)值的同時(shí)還要計(jì)算個(gè)體的違反約束值[10],以區(qū)分可行個(gè)體與不可行個(gè)體。
計(jì)算每個(gè)個(gè)體的目標(biāo)函數(shù)值為
(7)
計(jì)算每個(gè)個(gè)體的違反約束值,將約束條件改寫成式(8),其中g(shù)r(Xi)及hr(Xi)分別為不等式約束和等式約束;q及m-q分別為不等式約束的數(shù)量和等式約束的數(shù)量,這里q=2n,m=2n+2。
(8)
個(gè)體違反第r個(gè)約束的值表示為
(9)
式(9)中:δ為等式約束的容許誤差;δ的取值范圍為0.001~0.010。由此可得個(gè)體的違反約束值為
(10)
當(dāng)G(Xi)=0時(shí),Xi為可行個(gè)體;否則Xi為不可行個(gè)體。
對(duì)于種群中每個(gè)個(gè)體Xi,隨機(jī)生成3個(gè)互不相同的整數(shù)r1,r2,r3∈{1,2,…,NP},且要求r1,r2,r3,i互不相同,按照式(11)產(chǎn)生變異個(gè)體Vi。
Vi=Xr1+F·(Xr2-Xr3)
(11)
式(11)中:縮放因子F為正數(shù),通常被限定在區(qū)間[0,1]內(nèi)。
交叉操作按每個(gè)個(gè)體向量的分量進(jìn)行。變異產(chǎn)生的變異個(gè)體Vi和目標(biāo)個(gè)體Xi按式(12)進(jìn)行交叉操作產(chǎn)生試驗(yàn)個(gè)體Ui。
(12)
式(12)中:sn為隨機(jī)整數(shù),滿足sn∈{1,2,…,n};對(duì)每個(gè)解個(gè)體需要產(chǎn)生一個(gè)sn;Cr為交叉概率因子,Cr∈[0,1]。
差分進(jìn)化算法釆用的是一對(duì)一的貪婪選擇。這里使用自適應(yīng)懲罰函數(shù)法[11]對(duì)目標(biāo)個(gè)體和試驗(yàn)個(gè)體的目標(biāo)函數(shù)值及違反約束程度值進(jìn)行處理,求得目標(biāo)個(gè)體和試驗(yàn)個(gè)體的修正目標(biāo)函數(shù)值分別為F(Xi)及F(Ui),計(jì)算方法為:
3) 計(jì)算目標(biāo)個(gè)體和試驗(yàn)個(gè)體的距離分別為d(Xi)及d(Ui)。
4) 計(jì)算目標(biāo)個(gè)體和試驗(yàn)個(gè)體的懲罰項(xiàng)分別為p(Xi)及p(Ui)。
5) 按照式(13)和式(14)計(jì)算目標(biāo)個(gè)體及試驗(yàn)個(gè)體的修正目標(biāo)函數(shù)值為
則選擇過程為
(15)
式(15)中:Xinext為下一代種群中第i個(gè)個(gè)體。
當(dāng)問題達(dá)到所需精度時(shí)即可停止,這樣能明顯縮短計(jì)算時(shí)間。同時(shí),進(jìn)化代數(shù)T為另一停止準(zhǔn)則,當(dāng)所設(shè)精度不能達(dá)到所需時(shí),只要進(jìn)化代數(shù)超過給定的最大進(jìn)化代數(shù),進(jìn)化即停止。
基于Visual Studio 2013開發(fā)平臺(tái),采用C#語言編寫“最后分艙裝載”計(jì)算程序,其流程圖見圖1。
以某25萬噸級(jí)礦砂船為例,選擇1艙和9艙進(jìn)行“最后分艙裝載”的實(shí)例計(jì)算。船舶主尺度為:垂線間長LPP=319.5 m;型寬B=57 m;型深D=25 m;設(shè)計(jì)吃水T=18 m;全船共有9個(gè)貨艙。
圖1 “最后分艙裝載”計(jì)算流程圖
貨物密度ρRHO=1 t/m3,分艙裝載前后平均吃水變化為ΔT=1.1 m。
該船“最后分艙裝載”前后的浮態(tài)和分艙前各貨艙的裝載量分別見表1及表2。使用傳統(tǒng)的“縱傾力矩法”和文中方法計(jì)算1艙及9艙的分貨量見表3。將此結(jié)果輸入到Onboard-Napa裝載計(jì)算機(jī)中得到平均吃水、吃水差和由此計(jì)算的誤差見表4。
表1 船舶初始浮態(tài)和預(yù)期最終浮態(tài) m
表2 分艙前各貨艙的裝載量
表3 傳統(tǒng)方法、文中方法的計(jì)算結(jié)果 t
表4 傳統(tǒng)方法與文中方法計(jì)算結(jié)果對(duì)比
利用傳統(tǒng)“縱傾力矩法”得到的平均吃水和吃水差分別為3.86 m及-4.07 m,平均吃水和吃水差的誤差分別為1.026%及8.33%;使用文中方法得到的平均吃水和吃水差分別為3.90 m及-4.44 m,平均吃水和吃水差的誤差均為0%。
貨物密度ρRHO=1.584 t/m3,分艙裝載前后平均吃水變化為ΔT=0.23 m。
該船“最后分艙裝載”前后的浮態(tài)和分艙前各貨艙的裝載量分別見表5及表6。使用傳統(tǒng)的“縱傾力矩法”和文中方法計(jì)算1艙和9艙的分貨量見表7。將此結(jié)果輸入到Onboard-Napa裝載計(jì)算機(jī)中得到平均吃水、吃水差和由此計(jì)算的誤差見表8。
表5 船舶初始浮態(tài)和預(yù)期最終浮態(tài) m
表6 分艙前各貨艙的裝載 t
表7 傳統(tǒng)方法、文中方法計(jì)算的結(jié)果
表8 傳統(tǒng)方法與文中方法計(jì)算結(jié)果對(duì)比
利用傳統(tǒng)“縱傾力矩法”得到的平均吃水和吃水差分別為18.64 m及-0.45 m,平均吃水和吃水差的誤差分別為0%及2.17%;使用文中方法得到的平均吃水和吃水差分別為18.64 m及-0.46 m,平均吃水和吃水差的誤差均為0%。
由上述2個(gè)算例可知:傳統(tǒng)“縱傾力矩法”僅在平均吃水變化小時(shí)誤差較小,在平均吃水變化較大時(shí)誤差會(huì)變大;文中方法不僅在平均吃水變化小時(shí)誤差較小,且在平均吃水變化較大時(shí)誤差也較小。
根據(jù)散貨船“最后分艙裝載”的特點(diǎn)建立散貨船“最后分艙裝載”的優(yōu)化模型;基于散貨船的艙容表,使用差分進(jìn)化算法對(duì)該模型進(jìn)行求解。以某25萬噸級(jí)礦砂船為例進(jìn)行實(shí)例計(jì)算,計(jì)算結(jié)果表明,文中方法不僅適合使用少量貨物進(jìn)行“最后分艙裝載”計(jì)算,而且適合使用大量貨物進(jìn)行“最后分艙裝載”計(jì)算,可有效減小誤差,使船舶達(dá)到預(yù)期的平均吃水和吃水差值,具有通用性。該方法已成功應(yīng)用到自主研發(fā)的裝載計(jì)算中,具有一定的工程實(shí)用價(jià)值。
這里僅對(duì)散貨船的艏艙和艉艙進(jìn)行“最后分艙裝載”計(jì)算,在以后的工作中將研究使用多艙進(jìn)行“最后分艙裝載”計(jì)算。
[1] 東昉. 散裝船吃水差調(diào)整的一種新方法[J].大連海事大學(xué)學(xué)報(bào),1996,22(1):15-19.
[2] 欒法敏. 散貨船“最后分艙裝載”的一種計(jì)算方法[J].中國航海,2013,36(2):135-137.
[3] 邢向輝. 散貨船裝載計(jì)算機(jī)數(shù)學(xué)模型及應(yīng)用的研究[D].大連:大連海事大學(xué),2000.
[4] 雷坤,林焰,紀(jì)卓尚. 基于內(nèi)點(diǎn)法的駁船接載配載方案優(yōu)化模型[J].中國造船, 2010, 51(2):149-154.
[5] 杜嘉立,姜華. 船舶原理[M].大連:大連海事大學(xué)出版社, 2011:13-17.
[6] STOM R, PRICE K. Differential Evolution-A Simple and Efficient Adaptive Scheme for Global Optimization over Continuous Spaces[C]. International Computer Science Institute, Berkeley: ICSI, 1995.
[7] STOM R,PRICE K. Differential Evolution-A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces [J]. Journal of Global Optimization. 1997, 11(4):341-359.
[8] STOM R, PRICE K, LAMPINEN J A. Differential Evolution: A Practical Approach to Global Optimization[M]. Berlin, Germany: Springer, 2006:1-6.
[9] 徐斌. 基于差分進(jìn)化算法的多目標(biāo)優(yōu)化方法[D]. 上海:華東理工大學(xué),2013:24-32.
[10] 王勇,蔡自興,周育人,等. 約束優(yōu)化進(jìn)化算法[J]. 軟件學(xué)報(bào), 2009,20(1):11-29.
[11] TESSEMA B, YEN G G. A Self Adaptive Penalty Function Based Algorithm for Constrained Optimization [C]. IEEE Congress on Evolutionary Computation, 2006: 246-253.
Calculation Method of “Final Trimming” for Bulk Carriers Based on Differential Evolution Algorithm
LIUChunlei,SUNXiaofeng,WUHaibo,YINYong
(Key Laboratory of Marine Dynamic Simulation & Control for Ministry of Transport,Dalian Maritime University, Dalian 116026, China)
1000-4653(2016)04-0052-04
U693.6
A
2016-07-12
國家高技術(shù)研究發(fā)展計(jì)劃(“八六三”計(jì)劃)課題(2015AA016404)
劉春雷(1987—),男,河北保定人,博士生,研究方向?yàn)樯⒇洿悄芑漭d。E-mail:18940930042@qq.com 孫霄峰(1978—),男,山東濟(jì)寧人,副教授,博士生,研究方向?yàn)榇安倏v性及航海動(dòng)態(tài)仿真。E-mail:xfsun_dlmu@163.com