模擬退火演算法二的改進

2021-10-05 21:09:49 字數 1324 閱讀 3840

新模型的產生是對當前模型進行擾動得到的,這個擾動是由隨機函式控制的。常規的模擬退火演算法都是隨機進行大範圍的搜尋,效率低下。對原演算法進行改進,得到了一種強化區域性搜尋的演算法。

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...