模拟退火总结

来源:互联网 发布:chm文件制作软件 编辑:程序博客网 时间:2024/06/01 10:08

模拟退火适用于解决一类给定范围求最优解的问题,它是一种随机搜索方法,刚开始学到后面用了几次,越用越觉得它的神奇,所以来总结一下一些通用的条件。

#define P 20   随机撒点的数量

#define L 10   对于每个点,随机往周围走的次数

#define PI acos(-1.0)  随机生成角度时用

#define RAD 10000


做过几道题之后,发现随机撒点时,先把边界点加进去会取得更好的效果!

比如边界(0,0) 到(1000,1000)内

先加入

x[0]=0,y[0]=0

x[1]=1000,y[1]=0

x[2]=0,y[2]=1000

x[3]=1000,y[3]=1000

然后其他点随机生成。


随机生成0-1间随机数

double random(){

    return (rand()%RAD+1)/(double)RAD;

}


delta *= 0.85.  // 降温函数



0 0
原创粉丝点击