掌握常用遗传算法函数的使用,掌握使用Matlab工具箱中的遗传算法函数实现多元函数求解问题,掌握遗传算法改进算法在多元函数求解中的应用方法。
2.实验环境
Matlab
3.实验内容
(1)遗传算法常用函数的使用。
1)使用crtbp函数创建一个种群大小为6,个体长度为10,各位的二进制数分别为{1 2 3 4 5 6 7 8 9 10}的种群。
- 使用ranking函数。设有8个个体的种群,其目标值如下:[1;2;3;4;8;7;6;5],使用线性排序和压差为2估算适应度。
3)使用select函数。考虑以下具有8个个体的种群Chrom,适应度值为FitnV.
使用轮盘赌选择方式选择8个个体。
4使用函数recombin对4个个体的种群进行重组。
5使用函数mut将当前种群(含有4个个体,个体长度为5)变异为新种群。
6在6个个体的父代种群中插入子代种群(子代种群有两个个体)。
7先使用crtbp创建二进制种群Chrom(3个个体,个体长度为7),表示在[-2,8)区间的一组简单变量,然后使用bs2rv将二进制串转换为实值表现型。
(2)利用MATLAB自带工具箱GADST求解一个非线性方程组。
问题描述:
要求利用GUI方式和命令行两种方法求解。
(3)利用遗传算法计算以下一元函数的最大值:f(x)=x+10sin(5x)+7cos(4x)
其中,x的取值范围是[0,10],遗传算法参数设置如下表所示:
种群大小 | 最大遗传代数 | 个体长度 | 代沟 | 交叉概率 | 变异概率 |
40 | 20 | 20 | 0.95 | 0.7 | 0.01 |
(4)利用遗传算法计算以下多元函数的最小值:
f(x,y)=5sin(xy)+x^2+y^2 x∈[-4,4], y∈[-4,4],选择二进制编码,遗传算法参数设置如下表所示:
种群大小 | 最大遗传代数 | 个体长度 | 代沟 | 交叉概率 | 变异概率 |
40 | 80 | 40(2个自变量,每个长20) | 0.95 | 0.7 | 0.01 |
4.实验过程
(1)遗传算法常用函数的使用。
1)使用crtbp函数创建一个种群大小为6,个体长度为10,各位的二进制数分别为{1 2 3 4 5 6 7 8 9 10}的种群。
A=crtbp(6,10,[1 2 3 4 5 6 7 8 9 10])
- 使用ranking函数。设有8个个体的种群,其目标值如下:[1;2;3;4;8;7;6;5],使用线性排序和压差为2估算适应度。
B=ranking([1;2;3;4;8;7;6;5],[2,0])
3)使用select函数。考虑以下具有8个个体的种群Chrom,适应度值为FitnV.
使用轮盘赌选择方式选择8个个体。
sel_rws=select('rws',Chrom,FitnV)
4) 使用函数recombin对4个个体的种群进行重组。
A=crtbp(4,10)
New_A=recombin('xovsp',A)
- 使用函数mut将当前种群(含有4个个体,个体长度为5)变异为新种群。
A=crtbp(4,5)
new_A=mut(A)
6)在6个个体的父代种群中插入子代种群(子代种群有两个个体)。
- 先使用crtbp创建二进制种群Chrom(3个个体,个体长度为7),表示在[-2,8)区间的一组简单变量,然后使用bs2rv将二进制串转换为实值表现型。
Chrom = crtbp(3,7)
Phen=bs2rv(Chrom,[size(Chrom,2);-2;8;1;0;1;0])
(2)利用MATLAB自带工具箱GADST求解一个非线性方程组。
问题描述:
要求利用GUI方式和命令行两种方法求解。
命令行方式
实验总结
遗传算法模拟生物进化的基本过程,用数码串来类比生物中的染色个体,通过选择、交叉、变异等遗传算子来仿真生物的基本进化过程,利用适应度函数来表示染色体所蕴涵的问题解质量的优劣,通过适应度函数引导种群的进化方向,使种群不断“更新换代”,从而提高每代种群的平均适应度,并在此基础上,使得最优个体所代表的问题解逼近问题的全局最优解。