展会信息港展会大全

Simulate Anneal Arithmetic (SAA,模拟退火算法)
来源:互联网   发布日期:2011-08-19 12:13:18   浏览:9368次  

导读:模拟退火算法 模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋...


  我们要求此代价函数的最小值。
  新解的产生随机产生1和n之间的两相异数k和m,若k<m,则将
  (w1,w2,…,wk,wk 1,…,wm,…,wn)
  变为:
  (w1,w2,…,wm,wm-1,…,wk 1,wk,…,wn).
  如果是k>m,则将
  (w1,w2,…,wk,wk 1,…,wm,…,wn)
  变为:
  (wm,wm-1,…,w1,wm 1,…,wk-1,wn,wn-1,…,wk).
  上述变换方法可简单说成是“逆转中间或者逆转两端”。
  也可以采用其他的变换方法,有些变换有独特的优越性,有时也将它们交替使用,得到一种更好方法。
  代价函数差设将(w1,w2,……,wn)变换为(u1,u2,……,un),则代价函数差为:

根据上述分析,可写出用模拟退火算法求解TSP问题的伪程序:
ProcedureTSPSA:
 begin
  init-of-T;{T为初始温度}
  S={1,……,n};{S为初始值}
  termination=false;
  whiletermination=false
   begin
    fori=1toLdo
      begin
        generate(S′formS);{从当前回路S产生新回路S′}
        Δt:=f(S′))-f(S);{f(S)为路径总长}
        IF(Δt<0)OR(EXP(-Δt/T)>Random-of-[0,1])
        S=S′;
        IFthe-halt-condition-is-TRUETHEN
        termination=true;
      End;
    T_lower;
   End;
 End
  模拟退火算法的应用很广泛,可以较高的效率求解最大截问题(MaxCutProblem)、0-1背包问题(ZeroOneKnapsackProblem)、图着色问题(GraphColouringProblem)、调度问题(SchedulingProblem)等等。


3 模拟退火算法的参数控制问题
  模拟退火算法的应用很广泛,可以求解NP完全问题,但其参数难以控制,其主要问题有以下三点:
  (1)温度T

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港