凑个热闹-模拟退火算法

zyx0507 2007-12-22 10:35:39
下面是网上找到的一段关于退火算法的讲解.
哪们大虾有兴趣把下面的描述转化为可以运行的C#代码,谢谢

退火过程由冷却进度表(Cooling Schedule)控制,包括控制参数的初值t及其衰减因子Δt、每个t值时的迭代次数L和停止条件S。本试验分别使用Temperature、DiminishedRate、MarkovLength、AIM来表示。其参数值经过多次试验反复测试得到最好的组合,当

Temperature=300、DiminishedRate=0.9

MarkovLength=130000、AIM=100

的时候最好。

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

1 初始化:初始温度T(充分大),初始解状态So(是算法迭代的起点), 每个T值的迭代次数L

2 while(true)

  2.1对k=1,……,L做第2.1.1至第2.1.5步:

   2.1.1 先预算新解和当前解的差值distinct

2.1.2 if(distinct<0||random(0..1)<exp(distinct/temperature))则产生新解S′并将新解作为当前解

2.1.3 如果 currentPath < bestPath 则 bestPath=currentPath

2.1.4 如果 连续退火了 AIM 次仍没有新的最好解产生则就假设找到了最好路径,跳出循环,结束程序,返回最优解。

2.1.5 如果连续Diminish_T_num此循环都没有更好的解产生则aim+1表明此次退火没有产生新的最好解,并退出此次循环,进行退火,即跳到第2.2步

2.2 降温

2.3 currentPath = bestPath

3 输出最佳路径

...全文
328 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kelkch 2007-12-25
  • 打赏
  • 举报
回复
如果是参加竞赛, 还是用c/c++来得利落些吧

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧