实验3 基于遗传算法的多元函数求解

掌握常用遗传算法函数的使用,掌握使用Matlab工具箱中的遗传算法函数实现多元函数求解问题,掌握遗传算法改进算法在多元函数求解中的应用方法。

2.实验环境

Matlab

3.实验内容

(1)遗传算法常用函数的使用。

1)使用crtbp函数创建一个种群大小为6,个体长度为10,各位的二进制数分别为{1 2 3 4 5 6 7 8 9 10}的种群。

  1. 使用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])

  1. 使用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)

  1. 使用函数mut将当前种群(含有4个个体,个体长度为5)变异为新种群。

A=crtbp(4,5)

new_A=mut(A)

6)在6个个体的父代种群中插入子代种群(子代种群有两个个体)。

  1. 先使用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方式和命令行两种方法求解。

 

 

 

 

 

 

 

命令行方式

 

实验总结

        遗传算法模拟生物进化的基本过程,用数码串来类比生物中的染色个体,通过选择、交叉、变异等遗传算子来仿真生物的基本进化过程,利用适应度函数来表示染色体所蕴涵的问题解质量的优劣,通过适应度函数引导种群的进化方向,使种群不断“更新换代”,从而提高每代种群的平均适应度,并在此基础上,使得最优个体所代表的问题解逼近问题的全局最优解。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值