数学建模–机器学习之遗传算法(MATLAB)【求具体函数最大值问题】

tech2023-06-15  106

数学建模–ML之遗传算法(MATLAB)【求具体函数最大值问题】

前言:博主为MATLAB初学者,本文作为博主学习笔记,如有错误之处还望指正,不胜感激!

有如下问题:函数为f(x)=9sin(5x)+8cos(4x),x∈[0,15],求其最大值。

方法提纲

初始化群体评价群体优胜劣汰,趋向最优

程序设计及步骤

1)初始化

创建函数文件initpop.m,功能是初始化群体。

2)计算目标函数值

先将初始群体的二进制编码转换为十进制数,再计算目标函数值。

3)计算群体中个体的适应度

为实现优胜劣汰,我们计算其适应度。

. 遗传算法包括三个遗传算子:选择、交叉、变异。我们依次进行:

4)选择复制

5)交叉

6)变异

7)找出群体中适应度最大者

8)主程序

最后得到结果如图:

遗传算法参数:

群体大小----------20~100 进化代数----------100~500 交叉概率----------0.4~0.99 变异概率----------0.0001~0.1

参考文献:MATLAB数学建模 李昕○编著

不知道为什么不能设成转载,其实文章是学习了参考文献中书籍所做的笔记,若有不当之处还望指正,谢谢。

最新回复(0)