模擬退火演算法

2021-08-18 02:47:39 字數 1212 閱讀 1371

以求解以下這麼乙個函式為例子,實現**為r語言 f(

x)=x

∗sin

(10∗π

∗x)+

2x∈[

−1,2

] f(x)=x∗sin(10∗π∗x)+2x∈[−1,2]

其函式影象為:

又稱做狀態產生函式,通常由兩部分組成:

1)第一次產生候選解的分布函式。

2)第一次產生候選解不滿足條件的情況下,再次產生解的分布函式。

下面採用的是標準差為2的正態分佈、標準差為3的正態分佈。其中要注意的是狀態產生函式(領域函式)的出發點應該是盡可能保證產生的候選解遍布全部的解空間。

又稱做狀態接受函式,這裡是模擬退火法這個名字的**,模仿固體退火原理,隨著溫度(迭代次數上公升)的下降,能量逐漸穩定。即劣解的接受概率p 

p逐漸下降,其公式為: p=

limitx

#1. 初始化以及引數調整

stmp

t0 s0

iters

# 迭代次數

ccnt

# 終止條件,連續ccnt個新解都沒有接受時終止演算法

hisbest

ccntvc

#2.迭代

for (i in

1:iters)

#2.2 計算能量增量

delta_t

#2.3 根據增量判斷是否接受解

if (delta_t > 0) else else

} #2.4 更新最優值

hisbest

hisbest

#2.5 更新溫度

t0 #2.6 檢查終止條件

ccntvclen

if (ccntvclen > ccnt && # 模擬次數大於ccnt

sum(ccntvc[(ccntvclen - ccnt +1):ccntvclen]) == 0)

}# 連續 200 次沒有接受新解,演算法終止!

# 迭代次數為: 257

# 最優解為: 1.848313 在看了游皓麟一書的某些**塊後,越發感覺利用r語言學習演算法的效率之高,**簡短,感覺就像可以執行的流程圖。是乙個學習的快速工具。

同問題粒子群演算法求解:

遺傳演算法求解:

模擬退火演算法

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

模擬退火演算法

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

模擬退火演算法

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