C 數值計算之模擬退火法簡介 一

2021-04-17 07:54:53 字數 2324 閱讀 1037

摘要

本文簡介了模擬退火的基本思想,以於模擬時的主要引數的選擇根據,然後給出乙個求二維函式極值的具體問題和解法,並給出c#源**。

l 概述

在管理科學、電腦科學、分子物理學和生物學以及超大規模積體電路設計、**設計、影象處理和電子工程等科技領域中,存在大量組合優化瓿。其中許多問題如貨郎擔問題、圖著色問題、裝置布局問題以及佈線問題等,至今沒有找到有效的多項式時間演算法。這些問題已被證明是np完全問題。

2023年,kirkpatrick將退火思想引入組合優化領域,提出一種解大規模塊合優化問題的演算法,對np完全組合優化問題尤其有效。這源於固體的退火過程,即先將溫度加到很高,再緩慢降溫(即退火),使達到能量最低點。如果急速降溫(即為淬火)則不能達到最低點.。

即:模擬退火演算法是一種能應用到求最小值問題或基本先前的更新的學習過程(隨機或決定性的)。在此過程中,每一步更新過程的長度都與相應的引數成正比,這些引數扮演著溫度的角色。然後,與金屬退火原理相類似,在開始階段為了更快地最小化或學習,溫度被公升得很高,然後才(慢慢)降溫以求穩定。

l 模擬退火演算法的主要思想

就函式最小值問題來說,模擬退火的主要思想是:在搜尋區間(二維平面中)隨機遊走(即隨機選擇點),再以metropolis抽樣準則,使隨機遊走逐漸收斂於區域性最優解。而溫度即是metropolis演算法中的乙個重要控制引數,可以認為這個引數的大小控制了隨時過程向區域性或全域性最優解移動的快慢。

冷卻參數列、領域結構和新解產生器、接受準則和隨機數產生器(即metropolis演算法)一起構成演算法的三大支柱。

l 重點抽樣與metroplis演算法:

metropolis是一種有效的重點抽樣法,其演算法為:系統從能量乙個狀態變化到另乙個狀態時,相應的能量從e1變化到e2,概率為p = exp[ - (e2- e1)/kt ]。如果e2 < e1,系統接收此狀態,否則,以乙個隨機的概率接收此或丟棄此狀態。這種經常一定次數的迭代,系統會逐漸趨於一引穩定的分布狀態。

重點抽樣時,新狀態下如果向下則接受(區域性最優),若向上(全域性搜尋),以一定機率接受。模擬退火方法從某個初始解出發,經過大量解的變換後,可以求得給定控制引數值時組合優化問題的相對最優解。然後減小控制引數t的值,重複執行metropolis演算法,就可以在控制引數t趨於零時,最終求得組合優化問題的整體最優解。控制引數的值必須緩慢衰減。

其中溫度是乙個metropolis的重要控制引數,模擬退火可視為遞減控制引數什時metroplis演算法的迭代。開始t值大,可能接受較差的惡化解,隨著t的減小,只能接受較好的惡化解,最後在t趨於0時,就不再接受任何惡化解了。

在無限高溫時,系統立即均勻分布,接受所有提出的變換。t的衰減越小,t到達終點的時間越長;但可使馬可夫鏈越小,到達準平衡分布的時間越短,

l 引數的選擇:

我們稱調整模擬退火法的一系列重要引數為冷卻進度表。它控制引數t的初值及其衰減函式,對應的markov鏈長度和停止條件,非常重要。

乙個冷卻進度表應當規定下述引數:

1. 控制引數t的初值t0;

2. 控制引數t的衰減函式;

3. 馬爾可夫鏈的長度lk。(即每一次隨機遊走過程,要迭代多少次,才能趨於乙個準平衡分布,即乙個區域性收斂解位置)

4. 結束條件的選擇

有效的冷卻進度表判據:

一.演算法的收斂:主要取決於衰減函式和馬可夫鏈的長度及停止準則的選擇

二.演算法的實驗效能:最終解的質量和cpu的時間

引數的選擇:

一)控制引數初值t0的選取

一般要求初始值t0的值要充分大,即一開始即處於高溫狀態,且metropolis的接收率約為1。

二)衰減函式的選取 

衰減函式用於控制溫度的退火速度,乙個常用的函式為:t(n + 1) = k*t(n),其中k是乙個非常接近於1的常數。

三)馬可夫鏈長度l的選取

原則是:在衰減引數t的衰減函式已選定的前提下,l應選得在控制引數的每一取值上都能恢復準平衡。

四)終止條件

有很多種終止條件的選擇,各種不同的條件對演算法的效能和解的質量有很大影響,本文只介紹乙個常用的終止條件。即上乙個最優解與最新的乙個最優解的之差小於某個容差,即可停止此次馬爾可夫鏈的迭代。

l 例題:

以上說明可能太過於抽象,下一節將以乙個實際的例子來說明,其中所有的原始碼已貼出,可以從中了解到很多細節。

1. http://www.computer-dictionary-online.org/index.asp?q=simulated+annealing 計算機詞典

2. numeric recipes in c

3. 計算方法叢書 非數值並行演算法 (第一冊) 模

seover="window.status='正文--c#數值計算之模擬退火法簡介(一)';return true">

模擬退火法

模擬退火演算法是一種通用概率演演算法,用於在乙個大的空間內尋找命題的最優解。根據熱力學原理,在溫度為t時,出現能量差為de的降溫概率為p de 標識為 p de exp de kt k為常數,exp為自然數,且de 0,公式指出 溫度越高,出現一次能量差為de的降溫概率越大。溫度越低,出現降溫的概率...

模擬退火法 matlab

模擬退火法 模擬退火法簡單解釋 為了找出地球上最高的山,一群兔子們開始想辦法。首先兔子們用酒將自己灌醉了,它們隨機地跳了很長的時間。在這期 間,它們可能走向高處,也可能踏入平地。但是,隨著時間的流逝,它們漸漸清醒了並朝著最高的方向跳去。最後就達到了珠穆朗瑪峰。所謂的退火是指將固體加熱到足夠高的溫度,...

優化方法 模擬退火法

模擬退火法是針對爬山法只能求出區域性最優解提出來的。模擬退火法其實也是一種貪心法,但是他搜尋最優解的過程中引入了隨機因素,允許在中間的計算過程中按照一定的概率來接受相對較差的中間結果,因此它有可能調出區域性最優解尋找到全域性的最優解。模擬退火法演算法描述 若j y i 1 j y i 即移動後得到更...