当前位置:
首页 >
模拟退火求解TSP问题
发布时间:2023/12/3
52
豆豆
生活随笔
收集整理的这篇文章主要介绍了
模拟退火求解TSP问题
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
模拟退火求解TSP问题
模拟退火算法步骤
1.寻找下一个解
2.计算下一个解的能量
3.决定是否接受这个解
4.降温
算法模板
double randfloat() {return rand()/(RAND_MAX+0.0); }double T0 = 1000000,Tk = 1,T = T0,d = 0.9999; int x = initx();//当前解(初始解) int ansE,nowE;//全局最优解的能量,当前解的能量ansE = nowE = E(x);while(T > Tk) {//1.产生新解int newx = generate(x);//2.计算新解的能量int newE = E(newx);//3.确定是否接受if(newE < nowE || randfloat() > exp((nowE-newE)/T)){nowE = newE;x = newx;}//4.降温T *= d;//5.更新全局最优解Optimize(ansE,newE); }TSP问题代码
交题链接
http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1420
总结
以上是生活随笔为你收集整理的模拟退火求解TSP问题的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Wannafly挑战赛24
- 下一篇: HDU5322 - cdq分治FFT加速