欢迎来到天天文库
浏览记录
ID:33174544
大小:65.80 KB
页数:4页
时间:2019-02-21
《完成模拟退火遗传算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、袆膀蒈蒆螂腿膈蚂蚈膈芀蒄羆芇莃蚀袂芆蒅蒃螈芅膅蚈蚄袂莇蒁蚀袁葿螇罿袀腿蕿袅衿芁螅螁袈莄薈蚇袇蒆莀羅羇膆薆袁羆芈荿螇羅蒀薄螃羄膀蒇虿羃节蚃羈羂莄蒅袄羁蒇蚁螀羁膆蒄蚆肀艿虿薂聿莁蒂袁肈肁蚇袇肇芃薀螃肆莅螆虿肅蒈薈羇肅膇莁袃肄芀薇蝿膃莂莀蚅膂肂薅薁膁芄莈羀膀莆蚃袆膀蒈蒆螂腿膈蚂蚈膈芀蒄羆芇莃蚀袂芆蒅蒃螈芅膅蚈蚄袂莇蒁蚀袁葿螇罿袀腿蕿袅衿芁螅螁袈莄薈蚇袇蒆莀羅羇膆薆袁羆芈荿螇羅蒀薄螃羄膀蒇虿羃节蚃羈羂莄蒅袄羁蒇蚁螀羁膆蒄蚆肀艿虿薂聿莁蒂袁肈肁蚇袇肇芃薀螃肆莅螆虿肅蒈薈羇肅膇莁袃肄芀薇蝿膃莂莀蚅膂肂薅薁膁芄莈羀膀莆蚃袆膀蒈蒆
2、螂腿膈蚂蚈膈芀蒄羆芇莃蚀袂芆蒅蒃螈芅膅蚈蚄袂莇蒁蚀袁葿螇罿袀腿蕿袅衿芁螅螁袈莄薈蚇袇蒆莀羅羇膆薆袁羆芈荿螇羅蒀薄螃羄膀蒇虿羃节蚃羈羂莄蒅袄羁蒇蚁螀羁膆蒄蚆肀艿虿薂聿莁蒂袁肈肁蚇袇肇芃薀螃肆莅螆虿肅蒈薈羇肅膇莁袃肄芀薇蝿膃莂莀蚅膂肂薅薁膁芄莈羀膀莆蚃袆膀蒈蒆螂腿膈蚂蚈膈芀蒄羆芇莃完成“模拟退火遗传算法”,试验结果良好作者:佚名文章来源:本站原创点击数:797更新时间:2004-5-15研究背景: 遗传算法在运行早期个体差异较大,当采用经典的轮盘赌方式选择,后代产生个数与父个体适应度大小成正比,因此在
3、早期容易使个别好的个体的后代充斥整个种群,造成早熟;在遗传算法后期,适应度趋向一致,优秀的个体在产生后代时,优势不明显,从而使整个种群进化停滞不前。由我前面测试过的预选择算法看出,算法很快就收敛。因此对适应度适当地拉伸是必要的。引进模拟退火算法,在温度高时(遗传算法前期),适应度相近的个体产生的后代概率相近;而当温度不断下降后,拉伸作用加强,使适应度相近的个体适应度差异放大,从而使得优秀的个体优势更明显。模拟退火算法简介: 经过一个晚上研究模拟退火算法解决TSP代码,我总结一下模拟退火算法的基?本
4、思想。模拟退火算法的核心思想与热力学的原理颇为相似,本质在于对物质缓慢地制冷以争取充足的时间,让大量原子在丧失可动性之前进行重新分布。从算法的结构上看出,大致分为以下几个步骤: 1、构造数学模型 2、定义目标函数(在遗传算法中可定义为适应度函数) 3、确定控制参数(温度、能量) 4、计算代价(假设进行某种操作之后所付出的代价) 5、预测这种代价,看看是否需要对被分析的对象重新构造(在遗传算法里面就是要?看看是否需要进行交叉操作) 6、改变温度 7、重复试验具体实现c语言代码
5、: 1、定义关键变量: double scale_fitness; /* 适应度拉伸值 */ double temperature; /* 染色体所在温度 */ struct individual *cospop; /* 代价种群 */ double T; /* 当前温度 */ double T0; /* 初始温度 */
6、 double TFACTOR; /* 温度下降系数 */ double de; /* 代价值 */ int ans; /* 判断是否需要交叉 */ int numT; /* 试验的温度数 */ int curT; /* 当前温度试验数 */ 2、定义关键函数:
7、void scalefitness(); /* 拉伸适应度函数 */ double sumofscalefitness(); /* 拉伸适应度值求和 */ int metrop(double, double); /* Metroplis算法 */ 3、关键函数实现://将原本的适应度值fi拉伸为:exp(fi/T)/sumof(exp(fi/T))void scalefitness(){ int j=0; sumofscale_fitness = sumof
8、scalefitness(); for(j=0;j0,重构概率为exp(-de/t)int metrop(double p_de,
此文档下载收益归作者所有