1 / 7
文档名称:

遗传算法的实验报告.doc

格式:doc   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

遗传算法的实验报告.doc

上传人:doc2088 2015/3/13 文件大小:0 KB

下载得到文件列表

遗传算法的实验报告.doc

文档介绍

文档介绍:遗传算法的仿真
实验目的
了解遗传算法的原理
学****Matlab遗传算法工具箱的使用
使用Matlab进行遗传算法的仿真
实验设备
计算机
Matlab软件
实验内容和步骤
要求:计算目标函数值函数:。
建立目标函数文件。在Matlab命令窗口中,选择“file”→“new”→“M-file”,,然后在新建的窗口中输入如下内容:
%目标函数
function y=ft(x)
y=x.*sin(10*pi*x)+2;
分别建立相应的子函数文件。
计算适应度和累计概率函数
在Matlab命令窗口中,选择“file”→“new”→“M-file”,,然后在新建的窗口中输入如下内容:
function [f,p]=objf(s) %计算适应度函数
r=size(s); %读取种群大小
inn=r(1); %有inn个个体
bn=r(2); %个体长度为bn
for i=1:inn
x=n2to10(s(i,:)); %将二进制转换为十进制
xx=-+x*3/(power(2,bn)-1); %转化为[-1,2]区间的实数
f(i)=ft(xx); %计算函数值,即适应度
end
f=f';
%计算选择概率
fsum=0;
for i=1:inn
fsum=fsum+f(i)*f(i);
end
for i=1:inn
ps(i)=f(i)*f(i)/fsum;
%计算累积概率
p(1)=ps(1);
for i=2:inn
p(i)=p(i-1)+ps(i);
end
p=p';
end
选择操作函数
在Matlab命令窗口中,选择“file”→“new”→“M-file”,,然后在新建的窗口中输入如下内容:
function seln=sel(s,p) %“选择”操作
inn=size(p,1);
for i=1:2 %从种群中选择两个个体
r=rand; %产生一个随机数
prand=p-r;
j=1;
while prand(j)<0
j=j+1;
end
seln(i)=j; %选中个体的序号
end
交叉操作函数
在Matlab命令窗口中,选择“file”→“new”→“M-file”,,然后在新建的窗口中输入如下内容:
function scro=cro(s,seln,pc) %“交叉”操作
r=size(s);
inn=r(1);
bn=r(2);
pcc=pro(pc); %根据交叉概率决定是否进行交叉操作,1则是,0则否
变异操作函数
在Matlab命令窗口中,选择“file”→“new”→“M-file”,,然后在新建的窗口中输入如下内容:
function snnew=mut(snew,pm) %“变异”操作
r=size(snew);
bn=r(2);
snnew=snew;
pmm=pro(pm); %根据变异概率决定是否进行变异操作,1则是,0则否
if pmm==1
chb=round(rand*(bn-1))+1; %在[1,bn]范围内随机产生一个变异位
snnew(chb