方晟,陳順懷
(武漢理工大學 交通學院,武漢 430063)
貨物裝載作為貨物運輸?shù)闹匾h(huán)節(jié),裝載效果直接影響著船舶的裝載效率、安全性能,以及航行性能?,F(xiàn)有的船舶裝載方案主要由大副基于工作經(jīng)驗來制定并對其進行校核計算來得到,該種方式僅僅考慮了裝載方案的可行性,并未考慮方案的優(yōu)化。此前關于散貨船智能裝載問題的研究大多未能將貨物分艙和裝貨過程綜合考慮,且沒有考慮到多裝船機進行裝載的情況[1-7]。而在現(xiàn)實中,隨著散貨船的噸位越來越大,存在著使用多裝船機同時進行裝載作業(yè)以提高裝載效率的情況。為此,提出相應的數(shù)學模型,綜合考慮裝船機數(shù)量、裝載輪次、裝載順序、貨物種類和裝載量的影響,使用改進多目標遺傳算法進行求解;最后,通過實例計算對該算法的求解性能進行驗證。
散貨船智能裝載問題是一個多目標、多約束的NP問題。散貨船在制定裝載計劃時,需要綜合考慮裝船機數(shù)量、裝載輪次、裝載順序、貨物種類和裝載量的影響。為保證船舶安全,裝載通常分多輪、多步進行。當所有的裝船機均完成當前貨艙的裝載任務且相應壓載水艙中的壓載水全部排完時,即為一步。如圖1所示,n為散貨船的貨艙數(shù)目,m為裝船機的數(shù)目,且n>m≥1。由于所有的裝船機在同一軌道上進行移動,故各臺裝船機不能夠相互跨越。在一步裝載過程中,只有當全部裝船機全部完成裝載作業(yè)后,裝船機才可進行移動。
圖1 多裝船機裝載示意
定義以下3個優(yōu)化目標:①減少船舶裝載作業(yè)時間,提高船舶的裝載效率;②減小船舶實際艏艉吃水差與最佳艏艉吃水差(設計縱傾)的差值,以使船舶具有良好的浮態(tài),從而使其快速性較好;③最小化船舶最大靜水彎矩值,以保證其結構強度的安全。
裝載計劃中裝載效率的高低是評價裝載計劃好壞的一個重要因素,提出近似計算散貨船裝載時間的方法以判斷船舶的裝載效率。影響船舶裝載效率的因素主要包括裝船機裝載作業(yè)時長、壓載水排放時長,以及裝船機移動時長[8]。
(1)
(2)
(3)
通常散貨船在進行裝載作業(yè)時,第一次裝載某一貨艙,同時排空該貨艙所對應壓載艙中的壓載水。故每一步的裝載過程中,作業(yè)時長是由裝船機裝載時長與壓載水排放時長的最大值來決定的。建立裝載效率近似計算公式。
(4)
在船舶裝載的過程中,考慮到艙容、穩(wěn)性、浮態(tài)、結構強度等條件的限制,構建散貨船智能裝載問題的數(shù)學模型如下。
minf1=t
(5)
f2=|Δd-Δdopt|
(6)
f3=|Msmax|
(7)
(8)
(9)
df[i]≤dfmax
(10)
da[i]≤damax
(11)
Δdmin≤Δd≤Δdmax
(12)
k[i]≥1
(13)
(14)
Ns[i][j]≤Ns[j]max
(15)
Ms[i][j]≤Ms[j]max
(16)
Wh[i]≤Whmax
(17)
每一種貨物的分步裝載量之和wji應與該種貨物的總計劃裝載量wj相等;每艙的計劃裝載貨物體積不能超過該艙的艙容大小;在裝載過程中船舶的艏吃水不能超過限定值;在裝載過程中船舶的艉吃水不能超過限定值,且裝載完成后應保證螺旋槳完全浸入水中;船舶裝載完成后的艏艉吃水差應保持在一定的范圍內,以滿足船舶航行性能的要求;裝載過程中船舶的穩(wěn)性衡準應滿足要求;裝載過程中船舶的初穩(wěn)性高不能小于規(guī)定的最小值;每一步裝載后的船舶在各個剖面的靜水剪力值不得超過該剖面的許用靜水剪力值;每一步裝載后的船舶在各個剖面的靜水彎矩值不得超過該剖面的許用靜水彎矩值;每個貨艙所裝載的貨物重量不能超過該貨艙的極限裝載重量,以滿足船體局部強度的限制。
散貨船智能裝載問題是一個多目標、多約束的非線性優(yōu)化問題,無法使用傳統(tǒng)的數(shù)值解法求取精確解,因此使用智能優(yōu)化方法來求取優(yōu)化解。
在散貨船智能裝載問題中,共有3類變量,分別是每一艙裝載的貨物種類、每一步裝載的貨艙號和每一步的裝載重量。其中,貨物種類編號和貨艙號為離散變量,故用整數(shù)來表示;裝載重量為連續(xù)變量,以實數(shù)表示。故采用整數(shù)編碼與實數(shù)編碼相結合的級聯(lián)編碼方式對控制變量進行編碼,編碼格式可表示為
X=[C|H|W]=[c1,c2,…,ci|h1,
h2,…,hk|w1,w2,…,wk]
(18)
式中:i為船舶貨艙數(shù)目;k為總裝載步數(shù);C=[c1,c2,…,ci]表示每一貨艙所對應裝載的貨物種類;H=[h1,h2,…,hk]表示每次裝載所對應的貨艙號,由于有多臺裝船機同時進行裝載作業(yè),故其應滿足一定的約束條件。若有m臺裝船機進行作業(yè),則1,2,…,m號裝船機在第一步裝載時對應的貨艙號分別為h1,h2,…,hm,且h1
染色體的交叉和變異是遺傳算法中更新個體的重要過程。針對染色體變量類型的不同,交叉變異方式也有所不同。
交叉:染色體的變量C和H為整數(shù)編碼,采用順序交叉的方法進行交叉操作。在交叉的過程中,應保證滿足編碼的約束條件,C變量順序交叉的示例見圖2。W變量為實數(shù)變量,采用實數(shù)交叉運算方式[9]。
圖2 整數(shù)變量順序交叉示例
變異:與交叉一樣,對整數(shù)編碼變量C和H使用隨機交換變異的方法進行變異操作,對實數(shù)變量W使用實數(shù)變異運算方式。
步驟1,初始化算法相關參數(shù)。
步驟2,產生初始種群。
步驟3,計算種群中各個個體的目標函數(shù)值,然后對各個個體進行非支配排序。
步驟4,保留非支配解所對應的個體直接進入下一代。
步驟5,剩余個體進行交叉、變異操作,得到新一代的種群。
步驟6,重復步驟3~5,判斷是否達到指定的遺傳代數(shù),若達到,則結束算法,輸出優(yōu)化解;否則重復上述過程直至結束。
以上是一種基于Pareto前沿的多目標遺傳算法的運行步驟,該算法可以得到多個優(yōu)化解,決策者可根據(jù)自己偏好來選擇具體方案。
某20 000 t散貨船船長150 m、寬24 m,型深11.8 m,設計吃水為9.1 m,設計縱傾為0 m。該船有4個貨艙,19個壓載水艙,貨艙及壓載水艙的分布情況見圖3。該船裝載輪次為2輪。
圖3 某20 000 t散貨船貨艙及壓載水艙分布
裝載的貨物為單一貨種,密度ρ=4.5 t/m3,積載因數(shù)kc=1.045 m3/t,裝載總重量w=21 650 t,調用2臺裝船機進行裝載作業(yè),2臺裝船機的裝載速度均為3 000 t/h。在使用上述的多目標遺傳算法求解時,種群數(shù)目為50個,遺傳代數(shù)為500代,交叉概率為0.9,變異概率為0.05。
該算法通過使用C#編程實現(xiàn),系統(tǒng)運行環(huán)境為:Intel(R) Core(TM) i5-5200U CPU、Windows7操作系統(tǒng)、8GB運行內存,優(yōu)化計算運行時間約為13 min。對該裝載案例經(jīng)過50次隨機計算,其中48次可得到優(yōu)化解。某次優(yōu)化計算后得到如圖4所示的Pareto前沿。
圖4 裝載案例的Pareto前沿
選取其中一個優(yōu)化結果見表1,該優(yōu)化結果所對應的每步裝載過程船舶性能指標參數(shù)見表2。
表1 裝載案例的優(yōu)化結果
表2 裝載案例每一步裝載對應的船舶性能指標
將優(yōu)化結果與裝載手冊提供的實際結果相比較,見表3。
表3 優(yōu)化裝載結果與實際裝載結果對比
可以看出,優(yōu)化后的船舶浮態(tài)得到較大優(yōu)化,艏艉吃水差更加靠近設計縱傾值,并且裝載作業(yè)時間和船舶最大靜水彎矩值較裝載手冊提供的實際裝載結果分別下降了7.13%和15.08%。由此可見,該算法具有一定的可行性。
采用的多目標遺傳算法能夠獲得合理的優(yōu)化解,對船舶的裝載效率、浮態(tài)和結構強度實現(xiàn)了優(yōu)化,可為船舶智能裝載問題提供參考。