模拟退火算法

  模拟退火算法源于模拟退火的原理。

〇、模拟退火的历史

  1953年,Metropolis提出重要性采样法,即以概率接受新

状态,称Metropolis准则,计算量相对Monte Carlo方法

显著减少。

􀂄   1983年,Kirkpatrick等提出模拟退火算法,并将其应用

于组合优化问题的求解。

一、模拟退火的原理

  假设在状态xold时,系统受到某种扰动而使其状态变为xnew。与此相对应,系统的能量也从E(xold)变成E(xnew),系统由状态xold变为状态xnew的接受概率p:

二、模拟退火的算法流程

  1) 随机产生一个初始解x0,令xbest= x0 ,并计算目标函数值E(x0);

  2) 设置初始温度T(0)=To,迭代次数i = 1;

  3) Do while T(i) > Tmin

    1) for j = 1~k

    2) 对当前最优解xbest按照某一邻域函数,产生一新的解xnew。计算新的目标函数值E(xnew) ,并计算目标函数值的增量ΔE = E(xnew) - E(xbest) 。

    3) 如果ΔE <0,则xbest = xnew

    4) 如果ΔE >0,则p = exp(- ΔE /T(i));

      1) 如果c = random[0,1] < p, xbest = xnew; 否则xbest = xbest。

    5) End for

  4) i = i + 1;

  5) End Do

  6) 输出当前最优点,计算结束

图解:

三、模拟退火的应用

  TSP问题...

posted on 2015-08-02 17:13  一动不动的葱头  阅读(1229)  评论(0编辑  收藏  举报

导航