好文档 - 专业文书写作范文服务资料分享网站

遗传算法基本理论及实例

天下 分享 时间: 加入收藏 我要投稿 点赞

WORD格式整理

表2 第二代选中次数表

染色体 s1=11001 s2=01100 s3=11011 s4=10000 适应选择概积累概 估计的选中次度 率 率 数 625 0.36 0.36 1 144 0.08 0.44 0 729 0.41 0.85 2 256 0.15 1 1 假设这一轮选择-复制操作中,种群s2中的4个染色体都被选中,则得到群体:

s’=11001(25), s’= 01100(12)

1

2

s’=11011(27), s’= 10000(16)

3

4

做交叉运算,让s’与s’,s’与s’ 分别交换后三位基因,得

s’’ =11100(28), s’’ = 01001(9)

1

2

1234

s’’ =11000(24), s’’ = 10011(19)

3

4

这一轮仍然不会发生变异。于是,得第三代种群S3:

s1=11100(28),s2=01001(9)

s3=11000(24), s4=10011(19)

表3 第三代选中次数

染色体 适应度 选择概率 积累概率 估计的选中次数 s1=11100 784 0.44 0.44 s2=01001 81 0.04 0.48 s3=11000 576 0.32 0.8 s4=10011 361 0.2 1 2 0 1 1 设这一轮的选择-复制结果为:

s’=11100(28), s’=11100(28)

1

2

专业资料 值得拥有

WORD格式整理

s’=11000(24), s’=10011(19)

3

4

做交叉运算,让s’与s’,s’与s’ 分别交换后两位基因,得

1

4

2

3

s’’=11111(31), s’’=11100(28)

1

2

s’’=11000(24), s’’=10000(16)

3

4

这一轮仍然不会发生变异。

于是,得第四代种群S4:

s1=11111(31), s2=11100(28)

s3=11000(24), s4=10000(16)

显然,在这一代种群中已经出现了适应度最高的染色体s1=11111。于是,遗传操作终止,将染色体“11111”作为最终结果输出。然后,将染色体“11111”解码为表现型,即得所求的最优解:31。将31代入函数y=x2中,即得原问题的解,即函数y=x2的最大值为961。

六、遗传算法编程

MATLAB程序需要解决的问题是利用遗传算法,求解区间[0,31]上的二次函数y?x2的最大值。使用的是matlabR2010A,在WIN7环境下运行。鉴于此版本的软件不含有遗传算法工具箱,自行安装至路径“D:\\MATLAB\\R2010a\\toolbox\\genetic\\gatbx”,并在操作界面上添加路径。程序见附录一,程序界面如图3所示。

专业资料 值得拥有

WORD格式整理

图3 程序图

运行结果如图4所示。

专业资料 值得拥有

WORD格式整理

图4 运行结果图

由图可知,经过10代之后,遗传算法找个了二次函数的最优值。

附录一:运行程序

addpath D:\\MATLAB\\R2010a\\toolbox\\genetic\\gatbx

专业资料 值得拥有

WORD格式整理

fplot ('variable.*variable',[0,31]); NIND=4; %种群个体数目 MAXGEN=10; %最大遗传代数 PRECI=5; %变量的二进制位数 GGAP=1; %代沟

trace=zeros(2,MAXGEN); %寻优结果的初始值 FieldD=[5;0;31;1;0;1;1]; %区域描述器 Chrom=crtbp(NIND,PRECI); %初始种群 gen=0; %计数器

variable=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换 ObjV=variable.*variable; %计算目标函数值 while gen

FitnV=ranking(-ObjV); %分配适应度函数值 SelCh=select('sus',Chrom,FitnV,GGAP); %选择 SelCh=recombin('xovsp',SelCh,1); %重组,100% SelCh=mut(SelCh); %变异

variable=bs2rv(SelCh,FieldD); %子代个体的十进制转换 ObjVSel=variable.*variable; %计算子代的目标函数值 [Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代的新种群

variable=bs2rv(Chrom,FieldD); %子代个体的十进制转换

专业资料 值得拥有

遗传算法基本理论及实例

WORD格式整理表2第二代选中次数表染色体s1=11001s2=01100s3=11011s4=10000适应选择概积累概估计的选中次度率率数6250.360.3611440.080.4407290.410.8522560.1511假设这一轮选择-复制操作中,种群s2中的4个染色体都被选中,则得到
推荐度:
点击下载文档文档为doc格式
7fb3g5phxa06i7k4fff923x6i11fyp00rov
领取福利

微信扫码领取福利

微信扫码分享