新模型的產生是對當前模型進行擾動得到的,這個擾動是由隨機函式控制的。常規的模擬退火演算法都是隨機進行大範圍的搜尋,效率低下。對原演算法進行改進,得到了一種強化區域性搜尋的演算法。
xic=xi+yi(xmax-xmin)
yic=r(1-t/n)^k * sgn(r-0.5) (1)
xi為當前模型引數,xic為擾動後的模型引數,r為(0,1)上的隨機數,xmax,xmin為xi的取值範圍,sgn為符號函式(x>0時,sgnx=1 ; x=0時,sgnx= 0 ; x<0時,sgnx=-1),yi為擾動因子,t為當前溫度 ,n為最大迭代次數,n與最高溫度,最低溫度有關,k是確定非均勻性程度的常數(形狀因子)。
(1)式表明,在高溫時期,搜尋的範圍大。隨著溫度的降低,逐漸減小搜尋範圍。且隨著迭代次數n的增多,溫度降低,這樣能較好的控制搜尋。且k值越大,控制區域性搜尋的能力就越強。
該優化方案加強了演算法的收斂效能。
2.接收概率
快速模擬退火採用的接受概率的公式p為
p=[1-(1-h)$e/t)^(1/1-h) e代表
能量差,
t表示溫
度,h表
示一實數
,按照該
式計算得
到的概率
判斷是否
接受新模
型時,只
考慮了能
量的絕對
變化。然
而,還應
考慮到能
量的相對
變化。因
此,修正
後的公式
為:p=
[1−(
he代表能量差,t表示溫度,h表示一實數,按照該式計算得到的概率判斷是否接受新模型時,只考慮了能量的絕對變化。然而,還應考慮到能量的相對變化。因此,修正後的公式為: p=[1-(h
e代表能量差
,t表示
溫度,h
表示一實
數,按照
該式計算
得到的概
率判斷是
否接受新
模型時,
只考慮了
能量的絕
對變化。
然而,還
應考慮到
能量的相
對變化。
因此,修
正後的公
式為:p
=[1−
(he/t)(e1a/eb)]^(1/h)
e為新模型的目標函式,e1為當前模型的目標函式,a.b為非負實數。
3.降溫方式
實踐證明,t取指數函式的形式更為符合降溫的實質。
tk=t0exp(-ck^(1/n))
t0為初始溫度,k為迭代次數,c為給定的常數,n為帶反演的引數的個數。這裡寫自定義目錄標題)
優化演算法(二)模擬退火演算法
import numpy as np 隨機確定變化的方向 def direction2 if np.random.random 0.5 return 1 return 1 隨機確定是否接受較差的解 def direction3 delta,t chance np.exp 1 delta t if n...
模擬退火演算法
w 模擬退火演算法的基本思想 將乙個優化問題比擬成乙個金屬物體,將優化問題的目標函式比擬成物體的能量,問題的解比擬成物體的狀態,問題的最優解比擬成能量最低的狀態,然後模擬金屬物體的退火過程,從乙個足夠高的溫度開始,逐漸降低溫度,使物體分子從高能量狀態緩慢的過渡到低能量狀態,直至獲得能量最小的理想狀態...
模擬退火演算法
一些求解極值的問題不能通過函式特性直接求解,只能暴力列舉,但是單純的列舉效率不高,通過模擬退火演算法可以高效的找到答案。學習好博文 最小圓覆蓋 hdu 3007 buried memory 大意 給出一些點,求出能覆蓋他們的最小的圓。輸出圓心和半徑 include include include i...