TSP旅行商問題的Hopfield求解過程


    連續型Hopfield在matlab中沒有直接的工具箱,所以我們們根據Hopfield給出的連續行算法自行編寫程序。本文中,以求解旅行商

問題來建立Hopfield網絡,並得到解,但是該解不一定是最優解,用Hopfield得到的解可能是次優解,或沒有解。直接上問題:

8個城市的坐標:

0.100000000000000 0.100000000000000
0.900000000000000 0.500000000000000
0.900000000000000 0.100000000000000
0.450000000000000 0.900000000000000
0.900000000000000 0.800000000000000
0.500000000000000 0.500000000000000
0.100000000000000 0.450000000000000
0.450000000000000 0.100000000000000

求這8個城市的旅行商解。

 

在求解前,先簡單引入一下連續性Hopfield網絡的特點。

一般神經網絡(RBF或BP)是單項的,而Hopfield網絡特點在於有反饋,而最終得到的結果是一個網絡的收斂值。

對於一個Hopfield網絡來說,關鍵是在於確定它在穩定條件下的權系數。

ps:說白了,神經網絡就是不斷的改變權系數來逼近樣本。

 

這里我們不介紹Hopfield網絡的物理實現,因為該網絡是一種模電物理模型,具體硬件知識我也不怎么清楚。我們只需要關心

兩個問題:

1,單個神經元輸入輸出是什么(或者說怎么變化)

2,整個網絡的變化狀態(能量)

 

對於一個N節點的CHNN模型來說,其神經元狀態變量的動態變化可用下述非線性微分方程組來描述

 

            

這個等式來自於Ui節點的電流,流入節點電流等於流出。Vi表示電壓的變化。

這就是我們關心的能量函數。

這兩個等式看不懂也沒什么大問題,我們只要知道根據這兩個等式推出的結論就可以。

 

結論:該網絡是逐漸穩定的,隨着時間推移,網絡的能量E隨着減小的方向運動,其最終狀態就是E的極小值。

這里給出證明:

觀察E的變化趨勢,即求,而,其中

所以,不難發現,E的變化率是遞減的,即上述結論正確。

 

根據連續Hopfield天生的特點,我們不禁想到如果把一個最優化問題的目標函數轉換成網絡的能量函數,把問題的變量對應於網絡的狀態,那么Hopfield神經網絡就能夠用於解決優化組合問題。

 


接下來給出算法步驟:

這里需要反復迭代計算4~8步

這里具體代碼見URL:http://files.cnblogs.com/files/panpansky/TSP_hopfield.rar

運算結果分析:



圖一                                                                     圖二                                                                        圖三

圖一表示城市1~8分別進行的順序:4-6-7-1-8-3-2-5,圖二是具體的路線圖,圖三表示能量的變化,其實在迭代至30次左右,能量已經趨於平穩。

 

以上代碼和數據均來自http://www.ilovematlab.cn/thread-44738-1-1.html。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM