模拟退火总结

4 篇文章 0 订阅
3 篇文章 0 订阅

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

#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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值