magento做预订类网站备案查询官网
数学建模–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数学建模 李昕○编著