数学建模6 模拟退火算法

模拟退火

算法思想

模拟退火算法是通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法。

计算步骤

1、初始化,任选初始解,i∈S,给定初始温度T0,终止温度Tf ,令迭代指标K = 0, Tk = T0

注:T0要足够高,使得 E i T k → 0 \frac{E_i}{T_k} → 0 TkEi0

2、随机产生一个领域解,j ∈N(i) (N(i)表示 i 的领域)

计算目标值增量△f = f( j ) - f( i )

3、若△f < 0 ,令 i = j ,(转到步骤4,因为 j 比 i 好,无条件转移)
否则产生ε ∈U(0,1) 若 e x p ( − △ f T k ) exp(\frac{-△f}{T_k}) exp(Tkf) > ε ,则令i = j (j 比 i 好,有条件转移)

Tk高则广域搜,Tk低则局域搜

4、若达到热平衡(内循环次数大于n(Tk))转步骤5
否则转步骤2

5、k = k + 1,降低Tk ,若Tk < Tf 停止,否则转步骤2

常见的降低Tk的方法有两种:

①Tk+1 = Tk * r (r ∈(0.95,0.99))

②Tk+1 = Tk - △T

适用情况

1、规划最合理高效的道路交通(减少拥堵)

2、规划物流(减少运营成本)

3、互联网中设置节点(更好地让信息流动)

操作

参考来源

视频
https://www.bilibili.com/video/av42873319?p=7
百度百科
https://baike.baidu.com/item/%E6%A8%A1%E6%8B%9F%E9%80%80%E7%81%AB%E7%AE%97%E6%B3%95/355508?fr=aladdin

你可能感兴趣的:(数学建模)