一種基于遺傳算法的船舶分支管路路徑規(guī)劃方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種船舶管路路徑規(guī)劃方法。特別是涉及一種基于遺傳算法的船舶分 支管路路徑規(guī)劃方法。
【背景技術(shù)】
[0002] 船舶管路設(shè)計是船舶設(shè)計過程中的核心工作之一。當(dāng)前船舶管路設(shè)計與建造技 術(shù)的重點在于:研究、開發(fā)并運用現(xiàn)代船舶CAD\CAE技術(shù),同時結(jié)合人工智能領(lǐng)域的研究成 果,在對船舶領(lǐng)域現(xiàn)有的專家知識進行收集、匯總、分析、總結(jié)和歸納的基礎(chǔ)上,開發(fā)使用于 船舶行業(yè)的專家系統(tǒng)或其他智能設(shè)計工具。隨著優(yōu)化算法的發(fā)展,管路路徑智能規(guī)劃方法 也得到了推動。具有代表性的優(yōu)化算法為:迷宮算法、遺傳算法、蟻群算法、粒子群算法等。
[0003] 其中,遺傳算法是美國密歇根大學(xué)教授John Holland于1975年創(chuàng)立的,是一種借 鑒生物界自然選擇、進化機制而發(fā)展的啟發(fā)式優(yōu)化算法。在利用遺傳算法進行路徑規(guī)劃的 應(yīng)用中,典型的代表是日本學(xué)者Ito,他將遺傳算法應(yīng)用于二維平面的兩點管路路徑搜索, 取得了突破性的進展。另有多名學(xué)者也提出了基于遺傳算法的兩點路徑規(guī)劃算法,并取得 了良好的布局效果。目前對船舶管路路徑規(guī)劃方法的研究主要集中于兩點管路的連接問 題,但在實際管路布局過程中,連接管路大部分是分支管路,單純的兩點路徑規(guī)劃算法無法 解決此類問題。并且現(xiàn)有的船舶管路多分支管路路徑優(yōu)化算法多是建立于啟發(fā)式算法之 上,難以取得良好的應(yīng)用效果。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是,提供一種可進一步實現(xiàn)船舶管路智能設(shè)計系統(tǒng)集 成的基于遺傳算法的船舶分支管路路徑規(guī)劃方法。
[0005] 本發(fā)明所采用的技術(shù)方案是:一種基于遺傳算法的船舶分支管路路徑規(guī)劃方法, 包括如下步驟:
[0006] 1)在對布局空間進行網(wǎng)格劃分和空間網(wǎng)格能量值分布的基礎(chǔ)上,確定空間中管路 路徑的評價函數(shù),從而構(gòu)建出管路路徑規(guī)劃問題的數(shù)學(xué)模型;
[0007] 2)假定分支管路包含N個連接點,依據(jù)各連接點的坐標(biāo)值和管路直徑信息,構(gòu)建 包含N個連接點的點集合,將分支管路連接的問題轉(zhuǎn)換成N-I組兩點間管路的連接問題;
[0008] 3)確定各組兩點間管路路徑的始末點,作為兩點間管路路徑優(yōu)化算法的連接點;
[0009] 4)基于遺傳算法的框架,引入迷宮算法,構(gòu)建兩點間管路路徑規(guī)劃體系,并對步驟 3)中的兩點間管路路徑進行路徑規(guī)劃;
[0010] 5)建立兩點間管路路徑編碼的存儲文檔,對得到的兩點間管路路徑編碼進行記 錄,并在下一組兩點間管路路徑規(guī)劃完成后對編碼存儲文檔進行更新;
[0011] 6)判斷是否所有的連接點連接完畢,如果所有的連接點已經(jīng)連接完畢,則轉(zhuǎn)到步 驟7)輸出管路最優(yōu)解,否則轉(zhuǎn)到步驟3);
[0012] 7)在第N-I組兩點間管路路徑規(guī)劃結(jié)束后,存儲文檔中更新后的管路路徑編碼便 是分支管路路徑編碼,也即分支管路的路徑規(guī)劃最優(yōu)解。
[0013] 步驟1)所述的管路路徑規(guī)劃問題的數(shù)學(xué)模型是:從路徑長度、路徑拐彎次數(shù)和 路徑的能量值三個方面對路徑進行評價,從而確定空間中管路路徑的評價函數(shù)Obj (f\)、 Ob j (f2)和 Ob j (f3)如式⑴~(3):
[0014]
[0015]
[0016]
[0017] 其中,假定當(dāng)前管路 p = {node (I),node (2),node (3)... node (n_l) node (η) },Lp 表示當(dāng)前管路路徑的總長度,I node (i) node (i-1) I表示構(gòu)成當(dāng)前管路的節(jié)點中兩個相鄰節(jié) 點之間的距離;Bp表示當(dāng)前管路路徑的拐彎次數(shù);Ep表示當(dāng)前管路路徑所穿過的節(jié)點的能 量值之和,E(node (j))表示當(dāng)前管路中第j個節(jié)點的能量值;
[0018] 將以上所述的空間中管路路徑的三個評價函數(shù)分別賦予一個權(quán)值,將多目標(biāo)優(yōu)化 問題轉(zhuǎn)換成單目標(biāo)優(yōu)化問題,轉(zhuǎn)換后的評價函數(shù)〇bj(f)如式(4)所示:
[0019] Obj (f) = CiXObjCf^+^XObjCf^+^XObjC^) (4)
[0020] 其中,Cl、c2和(:3分別為三個評價函數(shù)的權(quán)值;權(quán)值反應(yīng)了評價函數(shù)的相對重要程 度,以及設(shè)計者的設(shè)計意圖,具體數(shù)值由反復(fù)試驗確定。
[0021] 步驟3)所述的各組兩點間管路路徑的始末點的確定方法為:
[0022] 第一組兩點間管路路徑始末點的確定:對于當(dāng)前點集合中的N個連接點,分別計 算任一個連接點point (k)和其他連接點的歐式距離之和,得到表示該連接點point (k)與 其他連接點相對位置關(guān)系的距離值distance (k),選出距離值distance (k)最小的第k個連 接點作為起始點,隨機選取一個其余的連接點作為終止點,從而得到了第一組兩點間管路 路徑的始末點,其中,k的取值范圍為1~N ;
[0023] 對于第m組兩點間管路路徑始末點的確定:對于未聯(lián)通的連接點,隨機選取一個 連接點作為兩點間管路路徑的起始點,然后以所述連接點為起點,利用迷宮算法的擴展過 程在布局空間中進行擴展搜索,并對網(wǎng)格值進行標(biāo)記,直到搜索到已生成的管路上的網(wǎng)格 點為止;由迷宮算法的特點可知,最先搜索到的已生成管路上的網(wǎng)格點與起始點的距離最 近,則該網(wǎng)格點被選取為兩點間管路路徑的終止點,其中m的取值范圍為1~N-1。
[0024] 步驟4)具體包括:
[0025] (1)種群初始化:將空間S分別沿著坐標(biāo)軸的方向進行擴充得到了擴展空間S',為 了能夠遍歷擴展空間S'中所有的區(qū)域,增加管路多樣性,在擴展空間S'中隨機產(chǎn)生一個輔 助點P ;以原起始點為起點,輔助點P為終點,利用迷宮算法生成一條輔助路徑A-Pl ;然后 以輔助點P為起點,原終止點為終點,產(chǎn)生另一條輔助路徑A-P2 ;將兩條輔助路徑A-Pl和 A-P2連接,便構(gòu)成了一條新的路徑;
[0026] 在擴展空間S'中,由于輔助點位置的差異性,兩點間管路路徑的長度也有所不 同,分別選取擴展空間S'中的八個頂點作為輔助點,與原始末點共同構(gòu)造出聯(lián)通路徑,并 比較聯(lián)通路徑長度,找出最大值,所述最大值即為遺傳算法過程中染色體編碼的固定長度 值;
[0027] (2)選擇操作:采用隨機聯(lián)賽選擇機制,從種群中隨機選擇M個個體進行適應(yīng)度大 小比較,將其中適應(yīng)度最高的個體遺傳到下一代;重復(fù)上述選擇過程1次,便得到了包含1 個個體的下一代種群;但是,單純采用聯(lián)賽選擇機制會造成最優(yōu)個體的丟失,因此,引入最 優(yōu)個體保留策略,在不失種群多樣性的同時保證了最優(yōu)個體的優(yōu)先權(quán);
[0028] (3)交叉、變異操作:
[0029] 交叉操作的實現(xiàn)過程:隨機選定兩個父代染色體;分別在兩個父代染色體上選擇 兩個交叉點;然后分別以這兩個交叉點為始末點,利用迷宮算法生成一條輔助路徑;再將 輔助路徑分別與兩個父代染色體結(jié)合,構(gòu)成兩個新的子代染色體;其中,如果子代染色體的 長度在設(shè)定的長度內(nèi),子代