遗传算法报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

遗传算法实验报告

一、实验目的

掌握遗传算法原理;

学会编写遗传算法程序寻找函数最大值。

二、实验设备

装有matlab7.0以上版本软件的PC机一台

三、实验原理

传统的优化理论都是通过调整模型的参数来得到期望的结果,而遗传优化算法是根据生物界的遗传和自然选择的原理来实现的,它的学习过程是通过保持和修改群体解中的个体特性,并且保证这种修改能够使下一代的群体中的有利于与期望特性相近的个体在整个群体份额中占有的比例越来越多。与基于代数学的优化方法一样,遗传算法是通过连续不断地队群体进行改进来搜索函数的最大值。遗传算法的搜索结果会有很大的差异。遗传学习的基本机理是使那些优于群体中其他个体的个体具有生存、繁殖以及保持更多基因给下一代的机会。遗传算法实质上是在群体空间中寻求较优解。

四、实验步骤及内容

1、实验步骤:

(1)群体初始化;

(2)评价群体中每一个体性能;

(3)选择下一代个体;

(4)执行简单的操作算子(如交叉、变异);

(5)评价下一代群体的性能;

(6)判断终止条件满足否?若不,则转(3)继续,若满足,则结束。

2、实验内容:

寻找函数的最大值及所对应的x1和x2的值。

()

五、实验程序

clc;

clear;

%**************************遗传算法*****************************

num=80;

A1=rand(num,10);%生成随机数

A2=rand(num,10);

A1=round(A1);%编码

A2=round(A2);

times=100;

fork=1:times%遗传次数

SIZE(k)=size(A1,1);

fori=1:size(A1,1)

B1(i)=binvec2dec(A1(i,:));%二进制转换十进制

B2(i)=binvec2dec(A2(i,:));

X1(i)=4.096*B1(i)/1023-2.048;%映射到实际取值范围

X2(i)=4.096*B2(i)/1023-2.048;

H(i)=100*(X1(i)^2-X2(i))^2+(1-X1(i))^2;%计算函数值

end

J=1./H;

[J1,IX]=sort(J);

Hm(k)=H(IX(1));%得本次迭代的函数最大值

Xm1(k)=X1(IX(1));%得本次迭代的使函数值最大的X1值

Xm2(k)=X2(IX(1));%得本次迭代的使函数值最大的X2值

S=sum(H)/size(H,2);%求适应度

C1=[];

C2=[];

fori=1:size(A1,1)%复制过程

ifround(H(i)/S)==0%为0则淘汰

C1=C1;

C2=C2;

elseifround(H(i)/S)==1%为1保留一次

C1=[C1;A1(i,:)];

C2=[C2;A2(i,:)];

elseifround(H(i)/S)==2%为2保留两次

C1=[C1;A1(i,:);A1(i,:)];

C2=[C2;A2(i,:);A2(i,:)];

elseifround(H(i)/S)==3%为3保留三次

C1=[C1;A1(i,:);A1(i,:);A1(i,:)];

C2=[C2;A2(i,:);A2(i,:);A2(i,:)];

elseifround(H(i)/S)==4%为4保留四次

C1=[C1;A1(i,:);A1(i,:);A1(i,:);A1(i,:)];

C2=[C2;A2(i,:);A2(i,:);A2(i,:);A2(i,:)];

else%其他值时保留五次

C1=[C1;A1(i,:);A1(i,:);A1(i,:);A1(i,:);A1(i,:)];

C2=[C2;A2(i,:);A2(i,:);A2(i,:);A2(i,:);;A2(i,:)

文档评论(0)

147****4268 + 关注
实名认证
文档贡献者

认真 负责 是我的态度

1亿VIP精品文档

相关文档