欢迎来到天天文库
浏览记录
ID:39572043
大小:61.00 KB
页数:15页
时间:2019-07-06
《模拟退火遗传算法 源程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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
此文档下载收益归作者所有