欢迎来到天天文库
浏览记录
ID:28830300
大小:63.00 KB
页数:4页
时间:2018-12-14
《遗传算法解决二次函数问地的题目》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用标准文案<遗传算法>技术文档问题: 利用遗传算法求解区间[0, 31]上的二次函数y=x2的最大值 VS2005C++环境C++面向对象的思想设计遗传算法1、各参数变量的说明(1)shortbitString;//个体的二进制编码(2)shortfitness;//个体的适应度(3)staticconstshortbitCount=5;//个体二进制码的长度(4)staticconstshortpopuScale=10;//种群规模(5)#defineCROSS_MUTATE_PRO_COMP100//交叉、变异的基
2、数(6)staticconstshortpc=40;//交叉个体数相对于基数(7)staticconstshortpm=5;//变异个体数相对于基数(8)IndividualpopuArray[popuScale];//种群(9)shortgen=0;//种群进化的代数2、遗传操作的设计思想 分别设计了一个个体类、种群类,种群由个体组成,这是类库设计,对用户来说,分别使用这两个类来实现遗传算法,其中选择中采用轮盘赌来选择下一代。(1)、个体类设计如下:#ifndef__INDIVIDUAL_H__#define__INDI
3、VIDUAL_H__#includeclassIndividual{private:shortbitString;//个体的二进制编码shortfitness;//个体的适应度public:staticconstshortbitCount=5;//个体二进制码的长度Individual();Individual(shortn);Individual(shortbitStr,intfit);~Individual();shortGetFitness()const;shortGetBitString()co
4、nst;//voidsetBitString();//voidsetFitness();booloperator>(constIndividual&indi)const;booloperator==(constIndividual&indi)const;friendstd::ostream&operator<<(std::ostream&os,constIndividual&indi);voidShowIndividual(void)const;};#endif(2)种群类设计如下:#ifndef__POPULATION_
5、H__精彩文档实用标准文案#define__POPULATION_H__#include"individual.h"#defineCROSS_MUTATE_PRO_COMP100//交叉、变异的基数classPopulation{public:staticconstshortpopuScale=10;//种群规模private:staticconstshortpc=40;//交叉个体数相对于基数staticconstshortpm=5;//变异个体数相对于基数IndividualpopuArray[popuScale];p
6、ublic:Population();voidSelection();//选择voidCrossover();//交叉voidMutation();//变异constIndividual&GetbestIndividual()const;constIndividual&GetRepresatationIndividual()const;friendstd::ostream&operator<<(std::ostream&os,constPopulation&p);voidShowPopulation()const;~Pop
7、ulation();};#endif(3)用户区程序代码(遗传算法实现):#include#include"individual.h"#include"population.h"voidGA(void);intmain(){GA();}voidGA(void){std::cout<<"Pleaseenterhowmanygenerationsyouwantthepopulationtoevolve!"<>gen;Popula
8、tionbirds;for(inti=0;i
此文档下载收益归作者所有