模拟退火学习笔记
目录 模拟退火学习笔记 退火 模拟退火 优缺点 伪代码 吊打LCY(模板) 模拟退火学习笔记 膜你颓祸 退火 在每个温度都有几率跳到一个劣与当前的位置,温度越低,劣解的采纳率更低 因为在每个温度都有足够的时间来找到合适的位置,所以最后答案接近正确 模拟退火 就是在解决一类问题中模拟上述方法 形式化地,对于当前一个新解 \(f(x)\) ,有 \(f(x')>f(x)\) ,取此解 \(f(x')<f(x)\) ,以一定的概率取此解 优缺点 优点:适用性强 缺点:能否AC看运气(概率问题),仅限于偏分使用(需要卡时 伪代码 void sa(){ double t=200.0; while(t>eps){ for (情况总数){ newAns=使用这种情况下的答案 delta=f(newans)-f(nowans)(f:估价) if( delta满足条件 || ( exp(-delta/t)*RAND_MAX>rand() ) { nowans=newans; } } t*=decTemp; } } 吊打LCY(模板) #include<iostream> #include<cstdio> #include<cstring> #include<ctime> #include<algorithm> #include<cstdlib> #include<cmath> using