模擬退火演算法實現尋找函式最值

2021-08-26 12:15:56 字數 1194 閱讀 4870

模擬退火的演算法思想

模擬退火演算法從某一較高初溫出發,伴隨溫度引數的不斷下降,結合概率突跳特性在解空間中隨機尋找目標函式的全域性最優解,即在區域性最優解能概率性地跳出並最終趨於全域性最優。

模擬退火演算法模板:

初始溫度

t=100

冷卻速率

rate=0.99

while t>1:

隨機生成乙個解

x=random

隨機解的適應度

y=f(x)

如果當前適應度大於最佳適應度,則儲存新解

if y>y:

x=xy=y

else:

*演算法核心如果當前適應度小於最佳適應度,則以一定概率儲存新解,這個概率由適應度差值和當前溫度決定,差值越小,溫度越大,概率越大

if exp(-(y-y)/t)>random():

x = x

y = y

冷卻t*=rate

例子:

求解f(x)=x+5sin(5x)+2cos(4x)在區間上的函式最值。

python實現模擬退火演算法

問題 求f x 在定義域 5,8 上的最大值 原始碼 模擬退火法 import numpy as np import math 定義域x從5到8閉區間 bound 5,8 tmp 1e2 tmp min 1e 3 alpha 0.98 beta 1 def f x return math.sin x...

hdu 5017 模擬退火求最值

題意 給乙個橢圓 然後求原點到這個橢圓距離最小的點的距離是多少。解析 依舊用模擬退火。修改了乙個地方,初始溫度從100改到了1,就行了。之前的也修改了。選z的時候,選離遠點近的那個點就行了。pragma comment linker,stack 1677721600 include include ...

智慧型演算法 模擬退火搜尋函式最小值

simulated annealing algorithm 是一種通用的隨機搜尋演算法,是一種理論上的全域性優化演算法。它模擬了物理的 退火過程,由乙個給定的初始高溫開始,利用具有概率突跳特性的metropolis策略在解空間中隨機進行搜尋,伴隨溫度的不斷下降重複抽樣,直到得到全域性最優解。when...