模擬退火演算法

2021-10-20 17:48:57 字數 2160 閱讀 1129

模擬退火法(saa)基本思想是:在一定溫度下,搜尋從乙個狀態隨機的變化到另乙個狀態;隨著溫度的不斷下降直到最低溫度,搜尋過程以概率1停留在最優解。它有四個基本概念:(1)目標函式,對於最大值問題,使目標函式乘以-1即可(2)溫度,它隨著演算法的迭代逐步下降。一方面,溫度用於限制sa產生的新解與當前解之間的距離,即sa的搜尋範圍;另一方面,溫度決定了sa以多大的概率接受目標函式值比當前解的目標函式值差的新解(3)退火進度表,指代溫度隨演算法迭代的下降速度,退火過程越緩慢,找到全域性最優解的機會就越大,它包括初始溫度及溫度更新函式的引數(4)meteopolis準則,它是指sa接受新解的概率,對於目標函式取最小值的問題,sa接受新解的概率為

1:初始化溫度t,初識解狀態s,每個t值的迭代次數l

2:對k=1,……,l做第三步到第六步

3:產生新解s』

4:計算增量δ(t

′)=c

(s′)

−c(s

)\delta(t')=c(s')-c(s)

δ(t′)=

c(s′

)−c(

s),其中c為評價函式

5:使用meteopolis準則

6:如果滿足終止條件則輸出當前解,結束程式,終止條件通常取為連續若干個新解都沒有被接受時的終止演算法

7:t逐漸減少,且t趨於0,然後做第二步

它的所有呼叫格式如下

x =

simulannealbnd

(fun,x0)

x =simulannealbnd

(fun,x0,lb,ub)

x =simulannealbnd

(fun,x0,lb,ub,options)

x =simulannealbnd

(problem)

[x,fval]

=simulannealbnd

(___)

[x,fval,exitflag,output]

=simulannealbnd

(___)

exitflag說明1

迭代次數達到限制值,目標函式值平均變化小於tolfun

5達到目標函式最小期望值

0由於目標函式檢查步數達到最大或迭代步數達到最大而退出

-1使用者自定義函式引起的退出

-2未搜尋到可行點

-5超過時間限制

options可設定的引數太多,就不一一介紹了,它通過saoptimset進行設定。接下來用乙個例子簡單說明,求如下函式最小值

f=@(x)x(

1)^2

+x(2

)^2+

5*sin(x(

1)*x

(2))

[x,fval,exitflag,output]

=simulannealbnd

(f,rand(1

,2))

optimization terminated: change in best function value less than options.functiontolerance.

x =1.0770

-1.0768

fval =

-2.2640

exitflag =

1output =

包含以下欄位的 struct

: iterations:

1966

funccount:

1983

message:

'optimization terminated: change in best function value less than options.functiontolerance.'

rngstate:

[1×1

struct

] problemtype:

'unconstrained'

temperature:

[2×1

double

] totaltime:

3.1875

由此可見對於乙個簡單的函式而言,模擬退火需要迭代1966次,耗時3.1875秒,因此智慧型尋優演算法一般都是比較耗時的。

模擬退火演算法

w 模擬退火演算法的基本思想 將乙個優化問題比擬成乙個金屬物體,將優化問題的目標函式比擬成物體的能量,問題的解比擬成物體的狀態,問題的最優解比擬成能量最低的狀態,然後模擬金屬物體的退火過程,從乙個足夠高的溫度開始,逐漸降低溫度,使物體分子從高能量狀態緩慢的過渡到低能量狀態,直至獲得能量最小的理想狀態...

模擬退火演算法

一些求解極值的問題不能通過函式特性直接求解,只能暴力列舉,但是單純的列舉效率不高,通過模擬退火演算法可以高效的找到答案。學習好博文 最小圓覆蓋 hdu 3007 buried memory 大意 給出一些點,求出能覆蓋他們的最小的圓。輸出圓心和半徑 include include include i...

模擬退火演算法

1.模擬退火演算法認識 爬山演算法也是乙個用來求解最優化問題的演算法,每次都向著當前上公升最快的方向往上爬,但是初始化不同可能 會得到不同的區域性最優值,模擬退火演算法就可能跳出這種區域性最優解的限制。模擬退火演算法是模擬熱力學系統 中的退火過程。在退火過程中是將目標函式作為能量函式。大致過程如下 ...