孫 健 李建禎 蘇 貞
(1.江蘇科技大學(xué)電子信息學(xué)院 鎮(zhèn)江 212003)(2.江蘇科技大學(xué)海洋裝備研究院 鎮(zhèn)江 212003)
隨著世界化石燃料的逐漸減少和世界各地氣溫的上升,越來越多地關(guān)注節(jié)能減排和低碳化。然而,耙吸挖泥船對化石燃料的需求卻在不斷地增加,所以如何使挖泥船能耗低,效率高的工作已經(jīng)成為挖掘行業(yè)研究方向的重點[1]。近年來,出現(xiàn)了大量關(guān)于耙吸挖泥船疏浚作業(yè)能耗分析和效率優(yōu)化的研究。耙吸挖泥船干土方生產(chǎn)率是挖泥船性能的最重要指標(biāo),因此干土方的生產(chǎn)率預(yù)測是效率優(yōu)化過程中的重要工作[2]。
耙吸挖泥船疏浚過程模式是一種復(fù)雜的非線性動力學(xué)模型,模型是受各種因素的影響,包括:船舶設(shè)備參數(shù),土壤類型參數(shù)和施工控制參數(shù)[3]。J.Braaksma建立了耙吸挖泥船動態(tài)模型,并采用預(yù)測控制算法優(yōu)化整體性能[4]。Rhee,C.van詳細(xì)分析了沉淀過程溢流損失模型[5]。王培生等闡述了主要的數(shù)學(xué)模型獨立開發(fā),用于耙吸挖泥船,根據(jù)沙床的變化提高工作效率以優(yōu)化其生產(chǎn)[6]。倪福生等研究了利用神經(jīng)網(wǎng)絡(luò)預(yù)測絞吸挖泥船的性能[7]。耙吸挖泥船疏浚模型主要包括泥泵管線模型和泥艙沉積模型。在耙吸挖泥船泥泵—管線模型中,存在許多因素影響其準(zhǔn)確性,而且各個因素之間的相互影響并不能夠準(zhǔn)確地知道[8]。在進行溢流裝艙時,泥沙通過耙頭、泥泵、管線進入泥艙,由于溢流筒高度低于泥艙液面使得部分泥沙流出泥艙。在進行干土方生產(chǎn)率預(yù)測時不可避免地需要對溢流損失進行計算,但是溢流密度和溢流流量不能通過傳感器得到可靠的測量,并且歷來沒有很好的模型計算方法。因此急需一種可以解決以上問題的模型算法。
近年來,神經(jīng)網(wǎng)絡(luò)算法和進化算法的結(jié)合受到了人們的廣泛關(guān)注,形成了一個稱為進化神經(jīng)網(wǎng)絡(luò)的領(lǐng)域(Yao 1999)。由于這一領(lǐng)域的研究非常活躍,得到了許多有價值的結(jié)論和結(jié)果,其中一些已經(jīng)成功應(yīng)用。鑒于以上原因,通過應(yīng)用遺傳BP神經(jīng)網(wǎng)絡(luò)直接構(gòu)建輸入為控制參數(shù),輸出為干土方生產(chǎn)率的預(yù)測模型是極佳的選擇。輸入的控制參數(shù)包括:船舶的速度、耙頭對地角度、波浪補償壓力、泵速、船舶吃水、溢流桶高度。
反向傳播(BP)神經(jīng)網(wǎng)絡(luò)在自學(xué)習(xí),自適應(yīng)和泛化能力上表現(xiàn)出良好的性能,但是卻具有容易陷入局部最小,收斂速度差的缺點[9]。為了克服BP神經(jīng)網(wǎng)絡(luò)的不足,在神經(jīng)網(wǎng)絡(luò)的研究和設(shè)計中引入了許多優(yōu)化算法,如構(gòu)建基于粒子群優(yōu)化算法的神經(jīng)網(wǎng)絡(luò)(Chen和Yu 2005),并使用進化算法優(yōu)化神經(jīng)網(wǎng)絡(luò)(Eysa and Saeed 2005;Harpham 2004;Ven?katesan 2009;Yao and Islam 2008),這被證明是可行和有效的。遺傳算法(GA)是啟發(fā)式隨機搜索算法,也是進化算法之一。比之其他優(yōu)化算法,GA的全局搜索能力具有一定優(yōu)越性,可以在沒有誤差函數(shù)的梯度信息的情況下學(xué)習(xí)近最優(yōu)解,是優(yōu)化,搜索和機器學(xué)習(xí)的強大工具(Yao 2004)。
BP網(wǎng)絡(luò)基本上是一個漸進式算法,旨在最小化權(quán)重空間中的誤差函數(shù)。在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,調(diào)整權(quán)重以減少總誤差。通過證明,針對一些復(fù)雜的非線性函數(shù),原則上已經(jīng)證明,具有一個隱藏層的BP網(wǎng)絡(luò)模型也是可以滿足需求的。因此,我們的研究中采用了三層BP模型。在應(yīng)用過程中,輸入層的神經(jīng)元個數(shù)和輸出層神經(jīng)元個數(shù)根據(jù)實際需求確定。假設(shè)BP神經(jīng)網(wǎng)絡(luò)的輸入神經(jīng)元個數(shù)為m、隱藏層神經(jīng)元個數(shù)為p,輸出神經(jīng)元個數(shù)為1,則其隱藏層各節(jié)點的輸入為
式中,wij為輸入層至隱藏層的連接權(quán)值;θj為隱藏層節(jié)點的閾值。
BP神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)移函數(shù)采用Sigmoid函數(shù)f(x)=1/(1+e-x),則隱藏層節(jié)點的輸出為
輸出層節(jié)點的輸入、輸出分別為
式中,vj為隱藏層的連接權(quán)值;γ為輸出層的閾值。
1)遺傳算法原理
遺傳算法是進化算法之一,它包含著由一群染色體構(gòu)成的種群,其中染色體是我們想要解決的問題的候選解決方案。染色體通常被稱為遺傳算法語境中的字符串。一個字符串反過來講是由許多基因組成,而這些基因可能帶有一些數(shù)值,稱為等位基因。與每個字符串相關(guān)聯(lián)的是適應(yīng)度值,它決定了一個字符串的“好”。適應(yīng)度值由適應(yīng)度函數(shù)確定,可以將其視為我們想要最大化的一些利潤或最小化的誤差。
2)遺傳算法實現(xiàn)步驟
種群初始化:遺傳算法對優(yōu)化的問題進行編碼,在編碼中,可以采用實數(shù)進行編碼,也可以采用二進制編碼,并對交叉規(guī)模、交叉概率、突變概率、初始種群數(shù)、遺傳代數(shù)進行初始化。
適應(yīng)度函數(shù):計算出個體的適應(yīng)度值,根據(jù)適應(yīng)度值判斷個體優(yōu)劣,我們采用實際值與預(yù)測值之間的差值作為適應(yīng)度,適應(yīng)度越小則該個體的適應(yīng)能力越強。
式中,n為網(wǎng)絡(luò)輸出個數(shù);yi期望輸出;oi預(yù)測輸出;k為系數(shù)。
選擇:這是一個將染色體復(fù)制到下一代的過程。具有較高適應(yīng)度值的染色體有更多的機會進入下一代。可以使用不同的方案來確定哪些染色體存活到下一代。經(jīng)常使用的方法是輪盤賭輪選擇,其中輪盤賭輪分成多個時隙,每個染色體一個。插槽的大小根據(jù)字符串的適應(yīng)度而定。因此,當(dāng)我們旋轉(zhuǎn)車輪時,最好的染色體是最有可能被選中的。染色體被選擇的概率 pi為
式中,fi為染色體適應(yīng)度;N為種群大??;k為系數(shù)。
交叉:一個染色體的一部分與另一個染色體的一部分組合。這樣,我們希望將一個染色體的良好部分與另一個染色體的良好部分相結(jié)合,在操作后產(chǎn)生更好的染色體。這個操作需要兩個染色體,即父母,并生成兩個新的,即后代。ak和al交叉方法為
式中,b為[0,1]內(nèi)的任意數(shù)。
變異:染色體中隨機選擇的基因?qū)@得一個新值。目標(biāo)是在種群中引入新的遺傳物質(zhì),或至少防止其遺失。在突變下,一個基因可以獲得一個在種群之前沒有發(fā)生過的或由于繁殖而丟失的值,變異方法為
式中,amax為 aij的上限;amin為 aij的下限;為隨機數(shù);g為進化次數(shù);Gmax為最大迭代次數(shù);r是在[0,1]內(nèi)的任意數(shù)。
遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的可分為三個階段。第一階段是決定連接權(quán)重和閾值的表示,即我們是使用二進制字符串形式還是直接使用實數(shù)形式來表示連接權(quán)重和閾值。由于本文使用實數(shù)編碼遺傳算法,我們要做的只是將每個神經(jīng)元的連接權(quán)重和閾值設(shè)置為其對應(yīng)的基因片段。然而,使用二進制編碼的簡單遺傳算法(SGA)來解決具有太多設(shè)計變量的優(yōu)化問題難以達(dá)到收斂[10]。因此,使用實數(shù)編碼遺傳算法來克服SGA的缺點。第二階段是通過構(gòu)建相應(yīng)的神經(jīng)網(wǎng)絡(luò)來評估這些連接權(quán)重、閾值的適應(yīng)性。目標(biāo)函數(shù)(如式(5)所示)被直接選擇為適應(yīng)度函數(shù)。由于ANN的泛化,其模型可以作為優(yōu)化算法的知識源。該方法可以實時計算目標(biāo)函數(shù)。第三階段是根據(jù)遺傳算法的適應(yīng)度,應(yīng)用遺傳算法進行選擇、交叉和變異操作等進化過程。當(dāng)適應(yīng)度小于預(yù)定義值時,進化就停止了。
優(yōu)化神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程包括兩個階段:首先使用GA搜索網(wǎng)絡(luò)的最優(yōu)或近似最優(yōu)連接權(quán)重和閾值,然后使用BP神經(jīng)網(wǎng)絡(luò)調(diào)整最終權(quán)重。使用GA-BP算法來實現(xiàn)網(wǎng)絡(luò)權(quán)重和閾值的學(xué)習(xí)最優(yōu)值的步驟,如圖1所示。首先,種群初始化完成,然后通過測量總均方誤差的值來評估每個染色體的適應(yīng)度,參見方程式(2)~(5)。在評估所有染色體后,通過使用繁殖(選擇)算子從當(dāng)前群體中提取染色體來創(chuàng)建中間種群。在本研究中,基于排序算法的輪盤選擇被應(yīng)用于選擇算子。根據(jù)輪盤運算符排列后的相對適合度,選擇染色體,并將其置入中間種群。最后,通過將交叉和突變算子應(yīng)用于中間群體的染色體來形成下一代群體。然后評估通過選擇,交叉和突變算子新建的新染色體,并重復(fù)所有染色體的評估和創(chuàng)建程序,直到滿足停止標(biāo)準(zhǔn)。GA的基礎(chǔ)是隨著個體從一代傳遞到下一代,通過遺傳算子不斷改進種群的適應(yīng)度。以這種方式,ANN權(quán)重和閾值被初始化為最佳種群成員的染色體。該過程通過對GA建立的初始連接權(quán)重和閾值應(yīng)用BP算法來完成。如果BP停止條件為假,則更新權(quán)重和閾值;否則,它們被保存并提供用于將來的干土方生產(chǎn)率預(yù)測。
圖1 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)流程圖
耙吸挖泥船干土方生產(chǎn)率預(yù)測網(wǎng)絡(luò)如圖3所示,影響模型的參數(shù)有很多,選取船舶的速度、耙頭對地角度、波浪補償壓力、泵速、船舶吃水、溢流桶高度作為模型的輸入。耙吸挖泥船的泥泵吸入泥沙密度會隨著航速的增加而減少,從而導(dǎo)致疏浚效率降低、能耗增大[11]。在一定范圍內(nèi),耙頭對地角度越大泥沙吸入量就越大。對于不同的土質(zhì)對高壓沖水泵的需求不同,使用高壓沖水泵能夠提高耙頭的破土能力和泥沙在混合物中的濃度。溢流筒高度的有效調(diào)節(jié)使得溢流損失減少,提高疏浚效率,減少疏浚時間。耙頭的對地壓力可以通過波浪補償器壓力來進行調(diào)整,合適的對地壓力可以減少對耙頭的損傷,并且對有效疏浚起到很重要的作用[12]。實驗為了突顯預(yù)測模型的性能,分別建立了兩個預(yù)測模型:BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型、遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型。對同一周期疏浚數(shù)據(jù)進行預(yù)測,并進行對比實驗。實驗的誤差評價體系采用平均絕對誤差MAE,平均相對誤差 perror,即
1)遺傳算法參數(shù)選擇:遺傳算法種群數(shù)目和遺傳代數(shù)太小則很難找到最優(yōu)解,過大則增加了算法尋優(yōu)的時間,因此論文中種群大小為10,遺傳代數(shù)為20;交叉概率和變異率過大則會破壞優(yōu)化的個體,過小又很難產(chǎn)生新的個體,文中交叉概率設(shè)為0.4,變異率設(shè)為0.1。
圖2 BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)?/p>
2)BP神經(jīng)網(wǎng)絡(luò)參數(shù)選擇:輸入層有6個節(jié)點,輸出層有1個節(jié)點,隱含層節(jié)點數(shù)為9個,輸入層和隱含層之間有6*9=54個權(quán)值,隱含層和輸出層之間有1*9=9個權(quán)值,隱含層有9個閾值,輸出層閾值為1個,所以遺傳算法優(yōu)化參數(shù)為54+9+9+1=73個。神經(jīng)網(wǎng)絡(luò)迭代次數(shù)設(shè)為200,學(xué)習(xí)效率為0.24,目標(biāo)誤差為0.0001。
數(shù)據(jù)來自于2016年4月廈門港興建的“新?;?”號耙吸挖泥船收集?!靶潞;?”號是一艘10000立方米的自航耙吸挖泥船,滿載吃水8m,最大挖深達(dá)35m。數(shù)據(jù)包含船舶的速度、耙頭對地角度、波浪補償壓力、泵速、船舶吃水、溢流桶高度、干土方生產(chǎn)率。我們收集了有5船周期數(shù)據(jù)。前4船數(shù)據(jù)用于訓(xùn)練網(wǎng)絡(luò),最后一船數(shù)據(jù)用于預(yù)測。為了評估遺傳算法神經(jīng)網(wǎng)絡(luò)的性能,本文將BP神經(jīng)網(wǎng)絡(luò)與遺傳BP神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果進行對比。圖3為BP神經(jīng)網(wǎng)絡(luò)預(yù)測干土方生產(chǎn)率結(jié)果、遺傳BP神經(jīng)網(wǎng)絡(luò)預(yù)測干土方生產(chǎn)率結(jié)果和希望值。圖4為兩種預(yù)測方法產(chǎn)生的干土方生產(chǎn)率相對誤差。
圖3 干土方生產(chǎn)率預(yù)測結(jié)果比較
圖4 干土方生產(chǎn)率預(yù)測相對誤差
從圖3可以看出兩種預(yù)測模型都能夠很好地反映干土方生產(chǎn)率的變化趨勢和規(guī)律,說明兩種預(yù)測模型都能較好預(yù)測干土方生產(chǎn)率。結(jié)合圖4和表1可以得出,經(jīng)過遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果更加精確。
表1 干土方生產(chǎn)率預(yù)測誤差
在文中,遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)的優(yōu)點和關(guān)鍵問題已經(jīng)被提出來,對耙吸挖泥船干土方生產(chǎn)率和控制參數(shù)關(guān)系進行建模。我們的方法采用實數(shù)編碼的GA策略,與反向傳播算法混合。遺傳算子被精心設(shè)計,以優(yōu)化神經(jīng)網(wǎng)絡(luò),避免問題過早收斂和置換。實驗表明,該模型的預(yù)測性能優(yōu)于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò),具有全局優(yōu)化能力,并且擁有了更好的非線性擬合能力,使得預(yù)測結(jié)果的準(zhǔn)確性更高。該算法可根據(jù)當(dāng)前施工條件和給定的參數(shù)對耙吸挖泥船干土方生產(chǎn)率進行預(yù)測,提高疏浚產(chǎn)能。同時,有助于開發(fā)耙吸挖泥船的智能疏浚系統(tǒng)??紤]神經(jīng)網(wǎng)絡(luò)和遺傳算法組合干土方生產(chǎn)率預(yù)測的一個問題是確定最優(yōu)神經(jīng)網(wǎng)絡(luò)拓?fù)洌緦嶒炛忻枋龅纳窠?jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是手動確定的。一種替代方法是將遺傳算法應(yīng)用于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化,這將是我們未來工作的一部分。