模拟退火遗传算法 源程序

模拟退火遗传算法 源程序

ID:39572043

大小:61.00 KB

页数:15页

时间:2019-07-06

模拟退火遗传算法 源程序_第1页
模拟退火遗传算法 源程序_第2页
模拟退火遗传算法 源程序_第3页
模拟退火遗传算法 源程序_第4页
模拟退火遗传算法 源程序_第5页
资源描述:

《模拟退火遗传算法 源程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、遗传算法求解f(x)=xcosx+2的最大值其中在尺度变换部分应用到了类似模拟退火算法部分,所有变量均使用汉语拼音很好懂//中国电子科技集团公司//第一研究室//呼文韬//hu_hu605@163.com//随机初始种群//编码方式为格雷码//选择方法为随机遍历//采用了精英保存策略//采用了自适应的交叉率和变异率//采用了与模拟退火算法相结合的尺度变换//采用了均匀交叉法#include#include#include#include#include#include#

2、include#defineIM12147483563#defineIM22147483399#defineAM(1.0/IM1)#defineIMM1(IM1-1)#defineIA140014#defineIA240692#defineIQ153668#defineIQ252774#defineIR112211#defineIR23791#defineNTAB32#defineNDIV(1+IMM1/NTAB)#defineEPS1.2e-7#defineRNMX(1.0-EPS)#definezhizhenjuli0.005#definePI3.14159

3、265358#defineT0100000//温度要取得很高才行。#definezhongqunshu1200#definezuobianjie-2000#defineyoubianjie2000unsignedintseed=0;//seed为种子,要设为全局变量voidmysrand(longinti)//初始化种子{seed=-i;}longa[1];//doublehundun;//doublec=4;//设置全局变量structindividual{unsigned*chrom;//染色体;doublegeti;//变量值doubleshiyingdu;//目标函数的值;d

4、oublefitness;//变换后的适应度值;};individual*zuiyougeti;//精英保存策略intzhongqunshu;//种群大小individual*nowpop;//当前代individual*newpop;//新一代doublesumfitness;//当代的总适应度fitnessdoublesumshiyingdu;//当代的总适应度shiyingdudoublemaxfitness;//最大适应度doubleavefitness;//平均适应度doublemaxshiyingdu;//最大适应度doubleavgshiyingdu;//平均适应度fl

5、oatpc;//交叉概率floatpm;//变异概率intlchrom;//染色体长度intmaxgen;//最大遗传代数intgen;//遗传代数//函数intflipc(double,double);//判断是否交叉intflipm(double);//判断是否变异intrnd(intlow,inthigh);//产生low与high之间的任意数voidinitialize();//遗传算法初始化voidpreselectfitness();//计算sumfiness,avefitness,maxfitnessvoidgeneration();doublesuijibianli(

6、);//产生随机遍历指针intfuzhi(float);//选择要复制的个体voidcrossover(individual,individual,individual&,individual&);//交叉voidbianyi(individual&);//变异voidmubiaohanshu(individual&);//计算适应度voidchidubianhuan(individual&);//对shiyingdu进行尺度变换赋给fitnessdoubleran1(long*);//随机数初始voidbianma(doublebianliang,unsigned*p);//编码d

7、oubleyima(unsigned*p);voidguanjiancanshujisuan();//计算shiyingdu,根据shiyingdu计算sumshiyingdu,对shiyingdu进行尺度变换变成fitness,根据fitness计算sumfitness,avefitness,maxfitnessvoidjingyingbaoliu();voidglp(intn,ints,int*,int(*)[1],float(*)[1]);//glp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。