模拟退火求解TSP问题
生活随笔
收集整理的這篇文章主要介紹了
模拟退火求解TSP问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
模擬退火求解TSP問題
模擬退火算法步驟
1.尋找下一個(gè)解
2.計(jì)算下一個(gè)解的能量
3.決定是否接受這個(gè)解
4.降溫
算法模板
double randfloat() {return rand()/(RAND_MAX+0.0); }double T0 = 1000000,Tk = 1,T = T0,d = 0.9999; int x = initx();//當(dāng)前解(初始解) int ansE,nowE;//全局最優(yōu)解的能量,當(dāng)前解的能量ansE = nowE = E(x);while(T > Tk) {//1.產(chǎn)生新解int newx = generate(x);//2.計(jì)算新解的能量int newE = E(newx);//3.確定是否接受if(newE < nowE || randfloat() > exp((nowE-newE)/T)){nowE = newE;x = newx;}//4.降溫T *= d;//5.更新全局最優(yōu)解Optimize(ansE,newE); }TSP問題代碼
交題鏈接
http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1420
總結(jié)
以上是生活随笔為你收集整理的模拟退火求解TSP问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Wannafly挑战赛24
- 下一篇: HDU5322 - cdq分治FFT加速