陳 曉, 戴 冉, 趙延鵬, 張超越
(大連海事大學(xué) 航海學(xué)院, 遼寧 大連 116026)
船舶擱淺事故是船舶在海上的常發(fā)事故之一,現(xiàn)階段對(duì)于船舶避淺大部分的研究處于擱淺事故概率的計(jì)算,主要采用的分析方式是基于事故樹(shù)模型[1],并在此基礎(chǔ)上引入模糊原理[2]、貝葉斯網(wǎng)絡(luò)[3]等方法不斷地修正擱淺概率模型,以及采用設(shè)置警戒區(qū)域的方式對(duì)可能會(huì)擱淺的船舶進(jìn)行報(bào)警處理[4]。上述方法多處于理論研究階段,雖然能夠分析發(fā)生擱淺事故概率,但是對(duì)于如何避淺的研究還不夠深入。船舶交通服務(wù)(Vessel Traffic Services,VTS)[5]作為海上交通安全保障的重要機(jī)構(gòu),主要的職責(zé)是保障船舶航行安全,根據(jù)其完善的法律法規(guī)和相關(guān)航行管理規(guī)范,基于豐富的交通情況數(shù)據(jù)和環(huán)境數(shù)據(jù),能夠做出正確、有效的決策判斷。[6]目前,VTS值班員主要是根據(jù)自身的經(jīng)驗(yàn)判斷,指導(dǎo)危險(xiǎn)水域的船舶航行,這種方式不但增加值班員的工作量,而且對(duì)值班員自身的素質(zhì)有較強(qiáng)的依賴(lài)性。因此,研究智能算法,規(guī)劃船舶避淺航線(xiàn),為值班員的決策提供理論依據(jù)是具有一定現(xiàn)實(shí)意義的。
為實(shí)現(xiàn)相關(guān)危險(xiǎn)區(qū)域和水深點(diǎn)信息的呈現(xiàn),利用柵格法,對(duì)船舶航行區(qū)域進(jìn)行格柵處理,并在此基礎(chǔ)上,以轉(zhuǎn)向角度和轉(zhuǎn)向點(diǎn)數(shù)量作為約束條件,對(duì)可能發(fā)生擱淺的船舶規(guī)劃新的航線(xiàn),從而達(dá)到船舶避淺的目的。
對(duì)于船舶航行的淺灘水域,不能直接使用其中危險(xiǎn)區(qū)域的信息,需要對(duì)相關(guān)信息建立模型。利用格柵化的方法,提取淺灘區(qū)域的信息,在生成的格柵圖中規(guī)劃船舶的避淺航線(xiàn)。
柵格法[7]是20世紀(jì)60年代提出的一種對(duì)地圖的處理方法,柵格法將地圖環(huán)境分解為一系列具有二值信息的網(wǎng)絡(luò)單元格,環(huán)境中的障礙區(qū)域在整個(gè)規(guī)劃的過(guò)程中位置和大小不發(fā)生改變。利用尺寸相同的柵格對(duì)二維的環(huán)境空間進(jìn)行劃分,柵格的大小自定,對(duì)于不含任何障礙物的柵格稱(chēng)為自由柵格,反之稱(chēng)為障礙柵格。[8]
首先對(duì)所選海圖內(nèi)的淺灘區(qū)域進(jìn)行擴(kuò)展,設(shè)置安全距離h。h的設(shè)置原則:
1) 安全區(qū)域外的水深滿(mǎn)足船舶的吃水要求。
2) 根據(jù)船舶的操作性能,船舶在做轉(zhuǎn)向操作時(shí),船體不會(huì)觸及安全距離的邊界。把已擴(kuò)展的區(qū)域定義為安全區(qū)域,見(jiàn)圖1。在航線(xiàn)的重新規(guī)劃中,即使靠近已擴(kuò)展的淺灘區(qū)域,也能保障重新規(guī)劃后的航線(xiàn)符合安全操作的要求。
基于淺灘區(qū)域擴(kuò)展后的海圖,假設(shè)所截取的海圖環(huán)境為E,對(duì)于不滿(mǎn)一個(gè)柵格的不可航行區(qū)域算一個(gè)柵格,建立數(shù)學(xué)模型為
E={gij|gij=0或1,i∈L/b,j∈W/b}
(1)
式(1)中:L為截取海圖的最大長(zhǎng)度;W為截取海圖的最大寬度;b為柵格的長(zhǎng)寬尺度;gij=0為可航行區(qū)域;gij=1為淺灘或危險(xiǎn)區(qū)域。利用MATLAB軟件對(duì)截取海圖上的區(qū)域進(jìn)行仿真,得到格柵化海圖示意見(jiàn)圖2。圖2中:黑色區(qū)域?yàn)檎系K柵格,即不可航行的淺灘區(qū)域;空白區(qū)域?yàn)樽杂蓶鸥瘢纯珊叫械陌踩珔^(qū)域。
圖1 擴(kuò)展安全區(qū)域示意
圖2 格柵化海圖示意
避淺航線(xiàn)規(guī)劃的目的是避開(kāi)淺灘,使船舶回歸到計(jì)劃航線(xiàn)。在避開(kāi)淺灘的整個(gè)過(guò)程中要盡可能地使航行路徑最短、轉(zhuǎn)向點(diǎn)數(shù)目最少,并且以航道作為避淺航線(xiàn)的范圍標(biāo)準(zhǔn),結(jié)合船舶的實(shí)際航行情況,考慮船舶航向的變化,對(duì)船舶的轉(zhuǎn)向角度和轉(zhuǎn)向點(diǎn)的數(shù)目進(jìn)行數(shù)學(xué)約束,并建立相關(guān)的數(shù)學(xué)模型。[9]設(shè)規(guī)劃后航線(xiàn)的轉(zhuǎn)向點(diǎn)序列為(P1,P2,P3,…,Pn),則
(2)
s.t.PiPi+1∩Bj=?,i∈R;j∈R
(3)
θ≤90°
(4)
h≥hmin
(5)
式(2)~式(5)中:式(2)為規(guī)劃后航線(xiàn)的距離是最短;式(3)為相鄰轉(zhuǎn)向點(diǎn)間的連線(xiàn)不與海圖環(huán)境內(nèi)的淺灘區(qū)域或者其他障礙區(qū)域相交,其中B為不同淺灘區(qū)域或者障礙物區(qū)域的集合;式(4)為船舶航向角度的改變不能超過(guò)90°;式(5)為對(duì)淺灘區(qū)域或者障礙物的擴(kuò)展至少達(dá)到安全距離的要求。
3.1.1魚(yú)群算法簡(jiǎn)介
影響?hù)~(yú)群覓食的主要原因是環(huán)境中的食物濃度,人工魚(yú)群模擬自然界中魚(yú)群的覓食、聚群、追尾以及隨機(jī)等行為,通過(guò)這些行為在搜索域中尋優(yōu),從而達(dá)到優(yōu)化的目的。模擬魚(yú)群的行為見(jiàn)圖3,假設(shè)一條人工模擬魚(yú)的位置位于Q,其視野范圍為Visual,Qn1、Qn2為視野內(nèi)其他魚(yú)的位置,前進(jìn)一次的步長(zhǎng)為Step,位置Qu為某時(shí)刻的視點(diǎn)所在位置:如果該位置的食物濃度高于當(dāng)前位置,則向前前進(jìn)一步,到達(dá)位置Qnext;如果位置Qu的濃度比當(dāng)前位置Q的食物濃度低,則繼續(xù)巡視視野內(nèi)的其他位置。巡視的次數(shù)越多,則對(duì)視野內(nèi)的狀態(tài)了解越全面,有助于做出相應(yīng)的判斷和決策。[10]
圖3 人工魚(yú)的視野和移動(dòng)步長(zhǎng)
(6)
(7)
式(6)~式(7)中:r是[-1,1]區(qū)間的隨機(jī)數(shù),允許存在一定的不確定性,可用于擺脫局部最優(yōu),從而實(shí)現(xiàn)尋找全局最優(yōu)。
3.1.2魚(yú)群行為描述[11]
(1) 覓食行為:這是魚(yú)群最為基本的一種行為,是趨向于食物的一種活動(dòng);一般可認(rèn)為通過(guò)感知環(huán)境中食物的濃度來(lái)選擇運(yùn)動(dòng)趨向,在航線(xiàn)規(guī)劃過(guò)程中,食物濃度表示路徑長(zhǎng)度值,濃度越大,路徑長(zhǎng)度越小。
(2) 聚群行為:魚(yú)群在覓食和躲避敵害的時(shí)候通常是以聚集成群的形式進(jìn)行的,人工魚(yú)群的聚群行為表示魚(yú)群會(huì)向食物濃度更優(yōu)且在視野內(nèi)并不擁擠的方向移動(dòng)。
(3) 追尾行為:當(dāng)某一條或幾條魚(yú)發(fā)現(xiàn)食物時(shí),他們附近的魚(yú)會(huì)尾隨而來(lái),進(jìn)而更遠(yuǎn)處的魚(yú)也會(huì)尾隨而來(lái)。
(4) 隨機(jī)行為:魚(yú)群在水域中自由游動(dòng),更大范圍地尋找食物或者其他魚(yú)群,隨機(jī)行為是人工魚(yú)群算法中的一種缺省行為,當(dāng)魚(yú)群的其他行為無(wú)法找到更優(yōu)解時(shí),利用隨機(jī)行為去尋找新的解。
魚(yú)群算法的目的是尋找到食物濃度最高的位置以實(shí)現(xiàn)優(yōu)化。在航向規(guī)劃過(guò)程中,設(shè)魚(yú)群的狀態(tài)為X,食物濃度為Y,其中X記錄一條完整的路徑結(jié)果,如果路徑的起點(diǎn)為A0=(x0,y0),終點(diǎn)為AZ=(xZ,yZ),則X[12]可表示為
X=A0A1…AZ=(x0,y0)(x1,y1)…(xZ,yZ)
(8)
式(8)中:Z為航線(xiàn)規(guī)劃的節(jié)點(diǎn)數(shù)目,其本身的數(shù)字大小與魚(yú)群算法優(yōu)化后的人工魚(yú)狀態(tài)X有關(guān)。
在航向規(guī)劃的過(guò)程中,為保證船舶能避開(kāi)淺灘,且能返回到原始的計(jì)劃航線(xiàn),初始點(diǎn)A0與終止點(diǎn)AT是不變的,改變的是這兩點(diǎn)間的其余轉(zhuǎn)向點(diǎn),魚(yú)群算法優(yōu)化的根本是調(diào)整其他路徑點(diǎn)以找到最優(yōu)的路徑。
魚(yú)群算法的實(shí)現(xiàn)主要是對(duì)魚(yú)群行為的實(shí)現(xiàn),在進(jìn)行算法實(shí)現(xiàn)之前,首先設(shè)點(diǎn)相關(guān)參數(shù)符號(hào),設(shè)定魚(yú)群的個(gè)體大小為N,人工魚(yú)移動(dòng)的最大步長(zhǎng)為Step,人工魚(yú)的視野范圍為Visual,覓食行為最大嘗試次數(shù)為try_number,最大迭代次數(shù)為Max,最大擁擠程度為δ,gen記錄迭代的次數(shù),初始gen=1,r為[-1,1]區(qū)間的隨機(jī)數(shù),人工魚(yú)個(gè)體之間的距離定義為d,則人工魚(yú)群算法實(shí)現(xiàn)的流程見(jiàn)圖4。
魚(yú)群算法在得到初始化后,會(huì)優(yōu)先執(zhí)行聚群或追尾行為。圖4中的聚群與追尾行為均包含覓食和隨機(jī)行為:當(dāng)魚(yú)群的條件不滿(mǎn)足執(zhí)行聚群或追尾的觸發(fā)條件時(shí),會(huì)執(zhí)行覓食行為;如果覓食行為得不到更優(yōu)解,會(huì)進(jìn)行隨機(jī)行為;每一條魚(yú)完成路徑搜索后會(huì)加入到路徑列表,完成全部迭代過(guò)程,確定最優(yōu)解。
圖4 魚(yú)群算法流程
3.2.1覓食行為
設(shè)人工魚(yú)群的當(dāng)前狀態(tài)為Xi,在其感知范圍內(nèi)隨機(jī)選擇下一個(gè)Xj,在求算路徑規(guī)劃問(wèn)題中,狀態(tài)的改變是對(duì)其內(nèi)部路徑點(diǎn)的調(diào)整:若食物濃度Yi 圖5 覓食行為過(guò)程 3.2.2聚群行為 設(shè)人工魚(yú)當(dāng)前的狀態(tài)為Xi,根據(jù)其Visual的限制,搜索視野內(nèi)其他人工魚(yú),確定視野內(nèi)其他人工魚(yú)的數(shù)目為nf,這些人工魚(yú)的中心位置為Xc,食物濃度為Yc,如果Yc/nf>δ×Yi,這表明其他魚(yú)群的中心位置有較多的食物,并且不太擁擠,則該人工魚(yú)向視野內(nèi)其他魚(yú)群學(xué)習(xí),朝中心位置方向前進(jìn)一步,否則執(zhí)行覓食行為。聚群行為過(guò)程見(jiàn)圖6。 圖6 聚群行為過(guò)程 3.2.3追尾行為 設(shè)人工魚(yú)當(dāng)前的狀態(tài)為Xi,根據(jù)其Visual的限制,搜索視野內(nèi)其他人工魚(yú),設(shè)視野內(nèi)其他人工魚(yú)的數(shù)目為nf并找到其中食物濃度最大的人工魚(yú),設(shè)該人工魚(yú)的狀態(tài)為Xk,食物濃度為Yk,如果Yk/nf>δ×Yi,這表明狀態(tài)為Xk的人工魚(yú)據(jù)有較高的食物濃度,并且不太擁擠,則人工魚(yú)Xi朝人工魚(yú)Xk方向前進(jìn)一步,否則執(zhí)行覓食行為。追尾行為過(guò)程見(jiàn)圖7。 圖7 追尾行為過(guò)程 3.2.4隨機(jī)行為 隨機(jī)行為的實(shí)現(xiàn)是在人工魚(yú)的視野范圍內(nèi)隨機(jī)選擇一個(gè)狀態(tài)位置,并朝這個(gè)位置前進(jìn)一步,作為覓食行為的缺省行為,設(shè)人工魚(yú)當(dāng)前的狀態(tài)為Xi,下一個(gè)位置為Xi|next,則隨機(jī)行為為 Xi|next=Xi+r×Step (9) 柵格法將海圖環(huán)境分解成同等大小的柵格后,人工魚(yú)群算法利用不同的柵格信息規(guī)劃航線(xiàn),通過(guò)這種方式生成的原始航線(xiàn)雖然能滿(mǎn)足式(2)、式(3)和式(5)的約束,但會(huì)呈現(xiàn)出鋸齒狀,不能完全符合航線(xiàn)規(guī)劃的基本要求。為滿(mǎn)足船舶航線(xiàn)規(guī)劃中轉(zhuǎn)向點(diǎn)盡可能少的航行習(xí)慣及式(4)中的約束條件,需要對(duì)生成的原始航線(xiàn)作進(jìn)一步的調(diào)整,從而滿(mǎn)足上述要求。 路徑調(diào)整的思路為:取優(yōu)化后的路徑點(diǎn),采用回溯的方式,將離終點(diǎn)最近的點(diǎn)與終點(diǎn)相連,判斷連線(xiàn)是否穿越淺灘區(qū)域,若不穿越,則放棄該點(diǎn),按照從終點(diǎn)到起點(diǎn)的方向,使下一個(gè)點(diǎn)與終點(diǎn)相連進(jìn)行判斷,直到出現(xiàn)一點(diǎn)與終點(diǎn)相連穿越淺灘區(qū)域,則記錄該點(diǎn)前一點(diǎn)為轉(zhuǎn)向點(diǎn),再以該轉(zhuǎn)向點(diǎn)為終點(diǎn),繼續(xù)回溯,直到達(dá)到起點(diǎn)為止。通過(guò)這種方式,在保證點(diǎn)與點(diǎn)之間的航線(xiàn)不穿過(guò)淺灘區(qū)域的情況下,盡可能地平滑航線(xiàn),這樣既能減少轉(zhuǎn)向點(diǎn),又能控制轉(zhuǎn)向角度不會(huì)過(guò)大,從而滿(mǎn)足式(4)中的約束條件。具體的航線(xiàn)調(diào)整流程[13]見(jiàn)圖8。 圖8 航線(xiàn)調(diào)整流程 通過(guò)人工魚(yú)群算法最終輸出人工魚(yú)的最優(yōu)狀態(tài)X,X存貯的路徑點(diǎn)用A表示,如式(8)所示。路徑矩陣W本身包含起點(diǎn)A0與終點(diǎn)AZ,所添加的轉(zhuǎn)向點(diǎn)均插入到起點(diǎn)與終點(diǎn)之間,最終輸出矩陣W,完成航線(xiàn)調(diào)整。 根據(jù)國(guó)內(nèi)淺灘水域的實(shí)際情況,模擬船舶航行環(huán)境見(jiàn)圖9,試驗(yàn)假設(shè)船舶吃水為2.5 m,富余水深為0.5 m,由圖9可知:計(jì)劃航線(xiàn)穿過(guò)了4號(hào)淺灘,該處淺灘的水深為2.0 m,小于船舶的吃水?dāng)?shù)據(jù),表明該計(jì)劃航線(xiàn)存在擱淺危險(xiǎn)。[14] 利用MATLAB軟件提取船舶航行環(huán)境建立的模型見(jiàn)圖10,其中黑色區(qū)域?yàn)橐堰M(jìn)行安全距離擴(kuò)展后的淺灘區(qū)域,并進(jìn)行格柵處理。為獲得一定精度以及適合的計(jì)算速度,將模擬航行環(huán)境分成50×50個(gè)小格,其中點(diǎn)S和點(diǎn)T分別為需航線(xiàn)規(guī)劃的起點(diǎn)和終點(diǎn)。 對(duì)MATLAB建立的環(huán)境模型利用人工魚(yú)群算法規(guī)劃航線(xiàn),圖中鋸齒狀的實(shí)線(xiàn)是規(guī)劃后的結(jié)果,見(jiàn)圖11。 圖9 航行水域 圖10 MATLAB模型 圖11 人工魚(yú)群算法航線(xiàn)規(guī)劃結(jié)果 利用航線(xiàn)路徑調(diào)整的思想重新生成航線(xiàn)見(jiàn)圖12,經(jīng)過(guò)調(diào)整,航線(xiàn)內(nèi)僅剩1個(gè)轉(zhuǎn)向點(diǎn),且符合船舶轉(zhuǎn)向時(shí)轉(zhuǎn)向角度<90°的限制條件。 將利用MATLAB軟件模擬得到的轉(zhuǎn)向點(diǎn)添加到海圖環(huán)境中,最終得到的航線(xiàn)規(guī)劃見(jiàn)圖13。圖13中:黑色實(shí)線(xiàn)為規(guī)劃后的航線(xiàn);點(diǎn)S為航線(xiàn)的起點(diǎn);T為航線(xiàn)的終點(diǎn)。轉(zhuǎn)向點(diǎn)如圖13所示。 圖12 調(diào)整后的航線(xiàn) 圖13 航線(xiàn)生成示例 為實(shí)現(xiàn)船舶避淺航線(xiàn)規(guī)劃,依次從建立環(huán)境模型、人工魚(yú)群算法航線(xiàn)規(guī)劃以及航線(xiàn)路徑調(diào)整3個(gè)階段進(jìn)行研究。首先利用柵格法對(duì)選取的海圖環(huán)境建立模型,提取其中淺灘區(qū)域和障礙區(qū)域信息,進(jìn)行安全距離擴(kuò)展;在已建立的環(huán)境模型上利用人工魚(yú)群算法,得到初始規(guī)劃航線(xiàn);隨后利用航線(xiàn)調(diào)整原則對(duì)已優(yōu)化的航線(xiàn)進(jìn)一步進(jìn)行調(diào)整,減少轉(zhuǎn)向點(diǎn),滿(mǎn)足約束條件。 通過(guò)仿真試驗(yàn)可得到:利用人工魚(yú)群算法能準(zhǔn)確實(shí)現(xiàn)船舶避淺,并且滿(mǎn)足海上航行的一般要求。與傳統(tǒng)的VTS值班員根據(jù)自身經(jīng)驗(yàn)指導(dǎo)船舶避淺的做法相比,基于人工魚(yú)群算法的航線(xiàn)規(guī)劃更具科學(xué)性,在一定程度上減少VTS值班員的工作量。但是,該算法考慮得并不全面,沒(méi)有顧及周?chē)鷦?dòng)態(tài)船舶及天氣的影響,這些因素會(huì)在今后做出進(jìn)一步的研究。3.3 航線(xiàn)調(diào)整
4 算法模擬
5 結(jié)束語(yǔ)