模拟退火求解TSP问题
生活随笔
收集整理的這篇文章主要介紹了
模拟退火求解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
- 下一篇: 如何压缩jpg图片的大小ps如何压缩jp