- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
关于遗传算法得实验报告
一、实验目得:
ﻩ理解与掌握遗传算法得应用及意义,能用一门自己擅长得语言实现遗传算法得基本功能,在
此基础上进一步理解与巩固对遗传算法得重要,以便在今后得学习与工作中能有效得运用与
借鉴!需要指出得就是遗传算法并不就是能保证所得到得就就是最佳得答案但通过一定得方
法可以将误差控制在一定得范围内!
二、实验原理与题目:
1、遗传算法就是一种基于空间有哪些信誉好的足球投注网站得算法,它通过自然选择、遗传、变异等操作以及达
尔文得适者生存得理论,模拟自然进化过程来寻找所求问题得答案。其求解过程就是个最
化得过程。一般遗传算法得主要步骤如下:
(1)随机产生一个确定长度得特征字符串组成得初始种群。
(2)对该字符串种群迭代地执行下面得步骤a与步骤b,直到满足停止准则为止:
a计算种群中每个个体字符串得适应值;
b应用复制、交叉与变异等遗传算子产生下一代种群。
(3)把在后代中表现得最好得个体字符串指定为遗传算法得执行结果,即为问题得一
个解。
2、通过编码、设置种群、设置适应度函数、遗传操作、解码产生需要得解。
f(x)=x*sin(x)+1,x[0,2],求解f(x)得最大值与最小值。
三、实验条件
硬件:微型计算机。
ﻩ语言:本实验选用得为C++语言。
四、实验内容:
建造针对f(x)得遗传算法程序,然后进行运行求解。
五、实验步骤:
ﻩ1、确定基本功能:本实验就是实现f(x)得最大值与最小值得求解。
2、对f(x)进行编码:用一个二进制矢量表示一个染色体,由染色体来代表变量x得实数
值,这里精度取小数点后6位数,变量x得域长为2,整个区间被分为2*1000000个等长得
区间。由于2*1000000在23位二进制数得表示范围呢,所以,编码长度为23位。
3、设计适应度函数:由于要求f(x)得最值,所以适应度函数可根据f(x)做适当得改变。
最大值:f(x)=x*sin(x)+5;最小值:f(x)=1/(x*sin(x)+5);
4、针对f(x)得设计并且实现遗传算法程序:遗传操作主要包括复制、交叉与变异。复
制就是直接将父代遗传给子代,即根据个体得适应度函数值所度量得优劣程度决定它在下一
代就是被淘汰还就是被遗传。交叉从能进入下一代得个体中选出两个,将两者得部分码值进
行交换。变异就是根据变异概率选出一个个体,随机对其某位编码进行改变。复制由void
由
Selection_operation(boolflag);实现;交叉voidCrossover_operation();实现;
变异由voidMution-operation();实现。
5、设计初始种群:默认设置为50个随机产生得23位字节得染色体。
ﻩ6、调试交叉与变异概率:在常用得交叉与变异概率范围内,结果随交叉与变异得概率得改
变而改变,之间差异相对来说不太明显
7、实验参数:实验中主要得参数有遗传代数、群体规模、交叉概率、变异概率。
实验结果:
求最大值:
求最小值:
程序主要代码如下(后台代码):
classGA{
vectorstring>Pop;
vectorstring>SubPop;
ﻩdoublePc;
ﻩdoublePm;
ﻩintNum_Iteration;
ﻩintNum_Population;
doubleOptimal_Max_X_Solution;
doubleOptimal_Min_X_Solution;
ﻩdoubleOptimal_Max_Function_Vlaue;
ﻩdoubleOptimal_Min_Function_Value;
ﻩstringOptimal_Individual;
vectordoubleLunPan;
ﻩ//floatfitness;
public:
GA(){
Pc=0、25;
Pm=0、01;
ﻩﻩNum_Population=50;
ﻩNum_
文档评论(0)