天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

模擬退火算法求解旅行商問題

發(fā)布時間:2016-11-18 09:06

  本文關(guān)鍵詞:退火算法,由筆耕文化傳播整理發(fā)布。


一. 爬山算法 ( Hill Climbing )

         介紹模擬退火前,先介紹爬山算法。爬山算法是一種簡單的貪心搜索算法,該算法每次從當前解的臨近解空間中選擇一個最優(yōu)解作為當前解,直到達到一個局部最優(yōu)解。

         爬山算法實現(xiàn)很簡單,其主要缺點是會陷入局部最優(yōu)解,而不一定能搜索到全局最優(yōu)解。如圖1所示:假設(shè)C點為當前解,爬山算法搜索到A點這個局部最優(yōu)解就會停止搜索,因為在A點無論向那個方向小幅度移動都不能得到更優(yōu)的解。

模擬退火算法求解旅行商問題

圖1

 


二. 模擬退火(SA,Simulated Annealing)思想

         爬山法是完完全全的貪心法,每次都鼠目寸光的選擇一個當前最優(yōu)解,因此只能搜索到局部的最優(yōu)值。模擬退火其實也是一種貪心算法,但是它的搜索過程引入了隨機因素。模擬退火算法以一定的概率來接受一個比當前解要差的解,因此有可能會跳出這個局部的最優(yōu)解,達到全局的最優(yōu)解。以圖1為例,模擬退火算法在搜索到局部最優(yōu)解A后,會以一定的概率接受到E的移動。也許經(jīng)過幾次這樣的不是局部最優(yōu)的移動后會到達D點,于是就跳出了局部最大值A。

         模擬退火算法描述:

         若J( Y(i+1) )>= J( Y(i) )  (即移動后得到更優(yōu)解),則總是接受該移動

         若J( Y(i+1) )< J( Y(i) )  (即移動后的解比當前解要差),則以一定的概率接受移動,而且這個概率隨著時間推移逐漸降低(逐漸降低才能趨向穩(wěn)定)

  這里的“一定的概率”的計算參考了金屬冶煉的退火過程,這也是模擬退火算法名稱的由來。

  根據(jù)熱力學(xué)的原理,在溫度為T時,出現(xiàn)能量差為dE的降溫的概率為P(dE),表示為:

    P(dE) = exp( dE/(kT) )

  其中k是一個常數(shù),exp表示自然指數(shù),且dE<0。這條公式說白了就是:溫度越高,出現(xiàn)一次能量差為dE的降溫的概率就越大;溫度越低,則出現(xiàn)降溫的概率就越小。又由于dE總是小于0(否則就不叫退火了),因此dE/kT < 0 ,所以P(dE)的函數(shù)取值范圍是(0,1) 。

  隨著溫度T的降低,P(dE)會逐漸降低。

  我們將一次向較差解的移動看做一次溫度跳變過程,我們以概率P(dE)來接受這樣的移動。

  關(guān)于爬山算法與模擬退火,有一個有趣的比喻:

  爬山算法:兔子朝著比現(xiàn)在高的地方跳去。它找到了不遠處的最高山峰。但是這座山不一定是珠穆朗瑪峰。這就是爬山算法,它不能保證局部最優(yōu)值就是全局最優(yōu)值。

  模擬退火:兔子喝醉了。它隨機地跳了很長時間。這期間,它可能走向高處,也可能踏入平地。但是,它漸漸清醒了并朝最高方向跳去。這就是模擬退火。


下面給出模擬退火的偽代碼表示。


三. 模擬退火算法偽代碼

代碼

/* * J(y):在狀態(tài)y時的評價函數(shù)值 * Y(i):表示當前狀態(tài) * Y(i+1):表示新的狀態(tài) * r: 用于控制降溫的快慢 * T: 系統(tǒng)的溫度,系統(tǒng)初始應(yīng)該要處于一個高溫的狀態(tài) * T_min :溫度的下限,若溫度T達到T_min,則停止搜索 */ T_min ) {   dE J( Y(i) ) ;   else   { // 函數(shù)exp( dE/T )的取值范圍是(0,1) ,dE/T越大,則exp( dE/T )也 ) ) Y(i  }   T   /*   * 若r過大,則搜索到全局最優(yōu)解的可能會較高,但搜索的過程也就較長。若r過小,則搜索的過程會很快,,但最終可能會達到一個局部最優(yōu)值   */   i ++ ; }

四. 使用模擬退火算法解決旅行商問題

  旅行商問題 ( TSP , Traveling Salesman Problem ) :有N個城市,要求從其中某個問題出發(fā),唯一遍歷所有城市,再回到出發(fā)的城市,求最短的路線。

  旅行商問題屬于所謂的NP完全問題,精確的解決TSP只能通過窮舉所有的路徑組合,其時間復(fù)雜度是O(N!) 。

  使用模擬退火算法可以比較快的求出TSP的一條近似最優(yōu)路徑。(使用遺傳算法也是可以的,我將在下一篇文章中介紹)模擬退火解決TSP的思路:

1. 產(chǎn)生一條新的遍歷路徑P(i+1),計算路徑P(i+1)的長度L( P(i+1) )

2. 若L(P(i+1)) < L(P(i)),則接受P(i+1)為新的路徑,否則以模擬退火的那個概率接受P(i+1) ,然后降溫

3. 重復(fù)步驟1,2直到滿足退出條件

  產(chǎn)生新的遍歷路徑的方法有很多,下面列舉其中3種:

1. 隨機選擇2個節(jié)點,交換路徑中的這2個節(jié)點的順序。

2. 隨機選擇2個節(jié)點,將路徑中這2個節(jié)點間的節(jié)點順序逆轉(zhuǎn)。

3. 隨機選擇3個節(jié)點m,n,k,然后將節(jié)點m與n間的節(jié)點移位到節(jié)點k后面。

詳細描述如下:


五. 算法評價

        模擬退火算法是一種隨機算法,并不一定能找到全局的最優(yōu)解,可以比較快的找到問題的近似最優(yōu)解。 如果參數(shù)設(shè)置得當,模擬退火算法搜索效率比窮舉法要高。


代碼如下:

#include

  本文關(guān)鍵詞:退火算法,由筆耕文化傳播整理發(fā)布。



本文編號:180491

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/shangbiaozhuanli/180491.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶77661***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com
亚洲综合天堂一二三区| 亚洲日本韩国一区二区三区| 日韩无套内射免费精品| 成年人免费看国产视频| 亚洲黄片在线免费小视频| 中文字幕欧美精品人妻一区| 久久99夜色精品噜噜亚洲av| 日本在线高清精品人妻| 色丁香一区二区黑人巨大| 久久国产青偷人人妻潘金莲| 国产一区二区三区口爆在线| 激情少妇一区二区三区| 很黄很污在线免费观看| 国产精品日韩欧美第一页| 中日韩美一级特黄大片| 色欧美一区二区三区在线| 亚洲伦片免费偷拍一区| 伊人久久青草地综合婷婷| 欧美日韩国产成人高潮| 91国内视频一区二区三区| 亚洲国产成人av毛片国产 | 九九热这里只有精品哦| 黑人粗大一区二区三区| 欧美大胆美女a级视频| 91久久精品国产成人| 亚洲午夜av久久久精品| 国产美女精品午夜福利视频| 亚洲中文字幕在线综合视频| 人妻巨大乳一二三区麻豆| 欧美一区二区三区喷汁尤物| 欧美日韩国产二三四区| 国产精品丝袜美腿一区二区| 福利在线午夜绝顶三级| 久久精品少妇内射毛片| 日本理论片午夜在线观看| 亚洲精品有码中文字幕在线观看| 色婷婷激情五月天丁香| 日本不卡在线一区二区三区| 亚洲一区二区欧美激情| 大香蕉精品视频一区二区| 国产三级欧美三级日韩三级|