Matlab模拟退火算法(3)

2021-04-06 08:43

   begin

    for i=1 to L do

      begin

        generate(S′form S); { 从当前回路S产生新回路S′}

        Δt=f(S′))-f(S);{f(S)为路径总长}

        IF(Δt0) OR (EXP(-ΔtT)Random-of-[0,1])

        S=S′;

        IF the-halt-condition-is-TRUE THEN

        termination=true;

      End;

    T_lower;

   End;

 End

  模拟退火算法的应用很广泛,可以较高的效率求解最大截问题(Max Cut Problem)、0-1背包问题(Zero One

Knapsack Problem)、图着色问题(Graph Colouring Problem)、调度问题(Scheduling

Problem)等等。



----------------------------------------------





模拟退火算法的参数控制问题

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

  (1) 温度T的初始值设置问题。

  温度T的初始值设置是影响模拟退火算法全局搜索性能的重要因素之一、初始温度高,则搜索到全局最优解的可能性大,但因此要花费大量的计算时间;反之,则可节约计算时间,但全局搜索性能可能受到影响。实际应用过程中,初始温度一般需要依据实验结果进行若干次调整。

(2) 退火速度问题。

模拟退火算法的全局搜索性能也与退火速度密切相关。一般来说,同一温度下的“充分”搜索(退火)是相当必要的,但这需要计算时间。实际应用中,要针对具体问题的性质和特征设置合理的退火平衡条件。

(3) 温度管理问题。

 温度管理问题也是模拟退火算法难以处理的问题之一。实际应用中,由于必须考虑计算复杂度的切实可行性等问题,常采用如下所示的降温方式:

T(t+1)=k×T(t)

式中k为正的略小于1.00的常数,t为降温的次数。








Matlab源代码:
main.m
zuobiao=[0.37 0.75 0.45 0.76 0.71 0.07 0.42 0.59 0.32 0.6 0.3 0.67 0.62 0.67 0.20 ...
0.35 0.27 0.94 0.82 0.37 0.61 0.42 0.6 0.39 0.53 0.4 0.63 0.5 0.98 0.68;
0.91 0.87 0.85 0.75 0.72 0.74 0.71 0.69 0.64 0.64 0.59 0.59 0.55 0.55 0.5...
0.45 0.43 0.42 0.38 0.27 0.26 0.25 0.23 0.19 0.19 0.13 0.08 0.04 0.02 0.85]
plot(zuobiao(1,),zuobiao(2,),'g'),hold on
plot(zuobiao(1,),zuobiao(2,))

length=max(size(zuobiao));
%求初始距离..

zhixu=randperm(length) %随机生成一个路线经过点的顺序
temp=zuobiao(1,);
newzuobiao(1,)=temp(zhixu);
temp=zuob


Matlab模拟退火算法(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:【精品】 某大学领导班子律己不严问题清单

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: