當(dāng)前位置:首頁(yè) > 智能硬件 > 智能硬件
[導(dǎo)讀]為了利用遺傳算法解決全局最短路徑問題,提出了一種基于矩陣判斷的編碼方法。隨機(jī)產(chǎn)生種群個(gè)體,每個(gè)種群個(gè)體都可以直觀反映一種連線的方法。定義一個(gè)判斷矩陣,每次使用種群個(gè)體前用判斷矩陣進(jìn)行合法性判斷。為了適應(yīng)這種編碼方法,提出了新的遺傳策略。利用LabVIEW進(jìn)行仿真。仿真結(jié)果表明LabVIEW獨(dú)有的數(shù)組運(yùn)算規(guī)則可以方便有效的實(shí)現(xiàn)這種遺傳算法。相比較一般的編碼方法,該編碼方法更簡(jiǎn)單、實(shí)用,不需要解碼過程,更高效,適用于無線模塊組網(wǎng)、灌溉網(wǎng)絡(luò)管道連接、配電網(wǎng)設(shè)置等多類工程設(shè)計(jì)。

短路徑問題是圖論研究中的一個(gè)經(jīng)典算法問題,旨在尋找圖(由結(jié)點(diǎn)和路徑組成的)中結(jié)點(diǎn)之間的最短路徑。問題的主要種類有:確定起點(diǎn)的最短路徑問題;確定終點(diǎn)的最短路徑問題;確定起點(diǎn)終點(diǎn)的最短路徑問題;全局最短路徑問題。其中全局最短路徑是求連接圖中所有點(diǎn)的最短路徑,它的限制最少,答案的可能性卻最多。同時(shí)當(dāng)加入一定的限制條件后也可以相應(yīng)的轉(zhuǎn)化成前3種問題,所以更值得研究推廣。
    現(xiàn)有的解決最短路徑問題的遺傳算法大多是將圖轉(zhuǎn)化成一棵樹,通過各種遍歷手段,得到與這棵樹唯一對(duì)應(yīng)的一個(gè)數(shù)組排列(或向量),并以此作為遺傳算法的種群個(gè)體。生成樹以及遍歷方法的優(yōu)劣就決定了該種遺傳算法的好壞。本文并不是提出一種改進(jìn)的生成樹或遍歷的方法,相反,完全隨機(jī)生成樹,不做任何限制,也未對(duì)樹進(jìn)行遍歷,只是在遺傳算法對(duì)每代種群進(jìn)行優(yōu)勝劣汰時(shí),同時(shí)對(duì)不合格的個(gè)體進(jìn)行淘汰。省略了生成樹以及遍歷的過程,也就相當(dāng)于化簡(jiǎn)了編碼解碼過程。

1 問題描述
   
在一定區(qū)域內(nèi)分布著一些點(diǎn),要使用線段將所有點(diǎn)連接到同一個(gè)網(wǎng)絡(luò)下。如何連接這些點(diǎn)才能令使用到的所有線段的總長(zhǎng)度最短。建立相應(yīng)的數(shù)學(xué)模型。設(shè)有M個(gè)點(diǎn),坐標(biāo)記為Pi(xi,yi),1≤i≤M則每?jī)蓚€(gè)點(diǎn)之間的距離為
   
    要連接M個(gè)點(diǎn)并使總距離最短,則至少要有M-1條線段,那么目標(biāo)函數(shù)即總距離
   

2 編碼
   
遺傳算法的編碼很重要,因?yàn)樵谡麄€(gè)過程中會(huì)不斷地對(duì)基因做交叉變異以及適應(yīng)度的運(yùn)算,所以編碼方式直接影響算法的速度。很明顯,編碼后的基因鏈越短,每個(gè)基因位上的基因種類越少,算法的運(yùn)行速度越快。使用二進(jìn)制編碼的話,雖然每個(gè)基因位上的基因種類只有2種,但如果點(diǎn)的個(gè)數(shù)較多,將會(huì)使基因鏈過長(zhǎng),在遺傳變異的過程中中間節(jié)點(diǎn)情況太多,使整個(gè)過程變得過于復(fù)雜,所以這里選擇用十進(jìn)制編碼的方法。
    一般的編碼方法都是將節(jié)點(diǎn)和線段編號(hào),再通過某種運(yùn)算對(duì)用這些編號(hào)構(gòu)成的向量進(jìn)行一系列處理,得到較原向量更為簡(jiǎn)單或與連接方法能一一對(duì)應(yīng)的新向量,并以此作為種群個(gè)體。本文的方法中,線段不但有編號(hào),而且具有方向性。利用其方向性線段編號(hào)可以直接作為個(gè)體使用,省略了一般情況下的編碼解碼過程,所以運(yùn)算更加簡(jiǎn)單快捷。
2.1 個(gè)體確定
   
M個(gè)點(diǎn)兩兩相連,共有M(M-1)/2條線段,將所有線段編號(hào)。編號(hào)的順序規(guī)則為:
    1)從1號(hào)點(diǎn)出發(fā),按順序依次連接2號(hào)點(diǎn)、3號(hào)點(diǎn)……M號(hào)點(diǎn)的線段,編號(hào)為1~M-1;
    2)從2號(hào)點(diǎn)出發(fā),按順序依次連接3號(hào)點(diǎn)、4號(hào)點(diǎn)……M號(hào)點(diǎn)的線段,編號(hào)為M~2M-3;
    3)直到M-1號(hào)點(diǎn)連接M號(hào)點(diǎn)的線段為最后一條線段。
    每個(gè)基因就是1條線段,那么每個(gè)基因就有種可能,要使用數(shù)量最少的線段就連接所有點(diǎn),需要M-1條線段。如圖1所示網(wǎng)絡(luò),共有5個(gè)點(diǎn),兩兩相連共有l(wèi)O條線段,形成個(gè)體需要其中的4條線段,圖l所示的2個(gè)個(gè)體對(duì)應(yīng)的基因鏈即種群個(gè)體分別為{1、3、4、5}和{1、2、5、10}。


2.2 合法性判斷
   
很明顯不是任意4條線(以圖l的5個(gè)點(diǎn)為例)都適合作為初始種群的個(gè)體,所以在使用每個(gè)種群個(gè)體前判斷其合法性就相當(dāng)于減少了基因的種類,大大化簡(jiǎn)了運(yùn)算過程,免去一些不必要的計(jì)算,加快收斂速度。合法性可以通過以下3個(gè)條件進(jìn)行判斷:
    條件1:不能出現(xiàn)重復(fù)編號(hào)。
    如{1、1、2、3},其實(shí)只有3條線,這個(gè)個(gè)體必然是錯(cuò)誤的,在最開始就可以淘汰,不需要進(jìn)入循環(huán)中運(yùn)算。
    條件2:4條線的編號(hào)必須從小到大。
    如{1、2、3、5}和{5、3、1、2}是2種不同的種群個(gè)體,但實(shí)質(zhì)上是同樣的4條線,進(jìn)行了從小到大的定義后就可以避免產(chǎn)生大量的最優(yōu)解,導(dǎo)致運(yùn)算混亂。
    條件3:必須保證所有點(diǎn)連在一起(或者沒有回路)。
    如{1、2、5、10}(圖l第2個(gè)個(gè)體),連接了所有點(diǎn),但1、2、5構(gòu)成回路導(dǎo)致5個(gè)點(diǎn)被分成了兩部分,相當(dāng)于有一部分沒有被連接進(jìn)網(wǎng)絡(luò),此個(gè)體也要直接淘汰。
    為了判斷上述3個(gè)條件是否滿足,需要建立2個(gè)數(shù)組,點(diǎn)信息數(shù)組Point[]和線信息數(shù)組Line[]。Point[]是二維數(shù)值數(shù)組,按點(diǎn)的編號(hào)順序存儲(chǔ),每一行存有一個(gè)點(diǎn)的橫縱坐標(biāo)2個(gè)數(shù)。Line[]是二維數(shù)值數(shù)組,按線段的編號(hào)順序存儲(chǔ),每一行存有一條線段信息,包括線段的端點(diǎn)和長(zhǎng)度3個(gè)數(shù)。圖2為5節(jié)點(diǎn)時(shí)LabVIEW前面板的模擬圖及2個(gè)數(shù)組的存儲(chǔ)情況。


    條件2易滿足,為滿足條件1和條件3,定義(M-1)xM階判斷矩陣A,表示被選中的線段與各節(jié)點(diǎn)的關(guān)系。每一行對(duì)應(yīng)一條線段,每一列依次對(duì)應(yīng)M個(gè)節(jié)點(diǎn)。在定義Line[]的2個(gè)端點(diǎn)時(shí),都是序號(hào)小的節(jié)點(diǎn)在前,大的在后,所以不妨把每條線段看成有方向的矢量,從小號(hào)節(jié)點(diǎn)指向大號(hào)節(jié)點(diǎn)。在矩陣對(duì)應(yīng)的位置,起點(diǎn)為-1,終點(diǎn)為1,其他點(diǎn)為O。以圖1為例,2個(gè)個(gè)體對(duì)應(yīng)的判斷矩陣分別為A1、3、4、5和A1、2、5、10。
   
    判斷矩陣A1、3、4、5的行向量線性不相關(guān),秩是列數(shù)4,也就是被選中的線段個(gè)數(shù)即每個(gè)個(gè)體的基因數(shù)。個(gè)體{1、2、5、10}因?yàn)?、2、5構(gòu)成了回路,可以得到,其判斷矩陣A1、2、5、10中對(duì)應(yīng)的3個(gè)行向量必定是同樣的關(guān)系,則這3個(gè)行向量線性相關(guān)。所以判斷矩陣A1、2、5、10的秩必然小于列數(shù)4。由矢量圖能看出,每多一條回路,判斷矩陣的秩就會(huì)減少1。當(dāng)出現(xiàn)重復(fù)編號(hào)時(shí),如{1、1、2、5},則有2個(gè)行向量相同,其判斷矩陣A的秩必然也小于列數(shù)4。
    綜上,Point[]是已知的。由Point[]可以得到Line[](如圖3(a))。任意給定4條線的個(gè)體,由Line[]和Point[]得到判斷矩陣A,如果rank(A)=M-1,則滿足3個(gè)條件(如圖3(b));否則,該個(gè)體非法。



3 初始種群獲取
   
根據(jù)上面的說明,本文在獲取初始種群時(shí),每一個(gè)個(gè)體首先是從M(M-1)/2條線段中隨機(jī)取出M-1條。取得的方法是:
    1)建立M(M-1)/2階布爾數(shù)組,數(shù)組里每個(gè)元素是假常量;
    2)產(chǎn)生一個(gè)0~1的隨機(jī)數(shù)與M(M-1)/2相乘并向下取整,隨機(jī)得到一個(gè)整數(shù)n,則n∈[0,M(M-1)/2-1];
    3)將布爾數(shù)組中第n個(gè)元素替換為真常量;
    4)重復(fù)2、3步直到布爾數(shù)組中有了M-1個(gè)真常量;
    5)依次提取布爾數(shù)組中的每個(gè)真常量的索引值并加1。
    其取得方法的框圖如圖4所示。


    得到的M-1階常數(shù)數(shù)組就是一個(gè)隨機(jī)產(chǎn)生的初始個(gè)體,而且此個(gè)體直接滿足條件1和條件2。對(duì)這樣的個(gè)體進(jìn)行合法性判斷,如果不合法舍去重新產(chǎn)生新個(gè)體。如果合法保留再生成下一個(gè)個(gè)體。用for循環(huán)來控制種群大小。

4 適應(yīng)度函數(shù)
   
因?yàn)槟繕?biāo)函數(shù)是求最小值,而且D肯定大于0,所以不妨直接以目標(biāo)函數(shù)的倒數(shù)作為適應(yīng)度函數(shù)。

5 遺傳策略
   
本文基于Srinivas提出的自適應(yīng)遺傳算法(Adaptive GA,簡(jiǎn)稱AGA)提出新的編碼方式下的遺傳策略。
   
   
    式中,pc表示交叉率,Pm表示變異率,fmax表示種群最大適應(yīng)度值favg表示種群平均適應(yīng)度值,f表示在要交叉的兩個(gè)個(gè)體中較大的適應(yīng)度值,f表示要變異的個(gè)體適應(yīng)度值。k1,k2,k3,k4是在0和1之間取值的常數(shù),其中,k3和k4較大。
    式(3)和式(4)是AGA根據(jù)適應(yīng)度值調(diào)節(jié)后的交叉率和變異率,它較好地解決遺傳算法中全局搜索和局部搜索的平衡問題,提高了收斂速度。
5.1 雜交
   
雜交運(yùn)算是遺傳算法擴(kuò)大優(yōu)秀基因影響的重要方法。但本文使用的編碼方法中,如果使用簡(jiǎn)單的單點(diǎn)交叉方法,無疑很大概率上將產(chǎn)生不合法的無效子代。如圖1中的5個(gè)點(diǎn),兩個(gè)父代{1、2、3、4}和{4、5、8、10}做交叉運(yùn)算,無論交叉點(diǎn)在哪都會(huì)產(chǎn)生含有2個(gè)4號(hào)線段的非法子代。不滿足條件1。
    為了改善這種情況,本文摒棄了雙父代雜交而采用一種“群體精英父代雜交”的方法。因?yàn)殡s交運(yùn)算就是為了使優(yōu)秀基因快速繁殖,擴(kuò)大影響,所以不妨直接判定哪些基因是有較大概率優(yōu)秀的。舉例說明判斷方法,選擇所有f>favg的父代個(gè)體,這些個(gè)體明顯都是優(yōu)秀的,從這些優(yōu)秀父代中提取出共有的或出現(xiàn)次數(shù)較多的基因,因?yàn)閮?yōu)秀父代中含有優(yōu)秀基因的可能大,所以這些共有的基因就更可能是優(yōu)秀基因。保留這些基因,在剩余的基因位上隨機(jī)產(chǎn)生新的基因。最后從產(chǎn)生的這些新個(gè)體和f<favg的低適應(yīng)度父代中選出適應(yīng)度高的一部分作為子代,它們與開始的那些優(yōu)秀父代一起合成新的子代。因?yàn)閷?shí)際上并沒有使用單點(diǎn)雜交的方法,所以不使用式(3)。
5.2 變異
   
按式(4)計(jì)算,如果一個(gè)父代個(gè)體要變異時(shí),從其中隨機(jī)取一條線段除去換上一條新的線段。為了提高變異操作提供新基因的效率,防止無方向性的變異產(chǎn)生大量冗余,新的線段要有一個(gè)端點(diǎn)不變。如圖5所示,當(dāng)除去線段12時(shí),新產(chǎn)生的線段必須以節(jié)點(diǎn)3或6為端點(diǎn),不算線段12,節(jié)點(diǎn)3、節(jié)點(diǎn)6分別還可以與其他M-2個(gè)節(jié)點(diǎn)產(chǎn)生共2M-4個(gè)子代個(gè)體,當(dāng)然其中有很多新個(gè)體是不合法的,從合法的子代個(gè)體中選擇適應(yīng)度最高的遺傳到下一代。這樣,經(jīng)過幾代變異后,個(gè)體就會(huì)逐漸趨于所求目標(biāo)。


    為了防止局部收斂,即使產(chǎn)生的予代個(gè)體適應(yīng)度不如父代個(gè)體,也要淘汰父代個(gè)體。
5.3 精英保留
   
根據(jù)上述方法,在進(jìn)化中很可能導(dǎo)致高適應(yīng)度個(gè)體被意外的破壞,減緩進(jìn)化速度甚至導(dǎo)致局部收斂。所以每次進(jìn)化前取出當(dāng)代個(gè)體中適應(yīng)度最高的一個(gè)個(gè)體直接進(jìn)入下一代,保證最優(yōu)基因的安全。

6 仿真實(shí)驗(yàn)
   
選取一組數(shù)據(jù)(見表1)進(jìn)行仿真實(shí)驗(yàn),種群數(shù)量取50個(gè),計(jì)算100代。


    得到仿真結(jié)果如圖6所示。


    圖6為分別截取了運(yùn)行到不同代數(shù)時(shí)的結(jié)果。圖6(a)表示所有點(diǎn)的位置及所有可能的連線,圖6(b)~圖6(d)中數(shù)字含義,括號(hào)內(nèi)的數(shù)字表示運(yùn)行代數(shù),括號(hào)外是此時(shí)線段的總長(zhǎng)度。圖6(d)顯示最終總長(zhǎng)度為1087.77。

7 結(jié)論
   
綜上所述,此方法可以有效地解決全局最短路徑問題。相對(duì)于“旅行商問題”單一起點(diǎn)終點(diǎn)的“一筆畫”情況和繁復(fù)的編碼解碼運(yùn)算,本文的方法更具有廣泛性。因?yàn)楣?jié)省了一般的編碼解碼過程,所以運(yùn)算更加快捷,結(jié)果更易識(shí)別。隨著約束條件的改變,只需相應(yīng)的修改目標(biāo)函數(shù)即可,不會(huì)影響程序的其他功能。該方法可以適用多類工程設(shè)計(jì),如Zigbee無線模塊組網(wǎng)、城鄉(xiāng)間道路和配電網(wǎng)設(shè)置、農(nóng)田灌溉點(diǎn)之間的管道連接、多目標(biāo)的運(yùn)輸問題等等。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉