没有合适的资源?快使用搜索试试~ 我知道了~
首页遗传算法经典MATLAB代码
遗传算法经典MATLAB代码
需积分: 29 1.3k 浏览量
更新于2023-05-27
评论 3
收藏 21KB DOCX 举报
遗传算法经典MATLAB代码,有利于初学者对MATLAB遗传算法的了解和应用
资源详情
资源评论
资源推荐

遗传算法 经典学习 Matlab 代码
遗传算法实例
也是自己找来的,原代码有少许错误,本人都已更正了,调试运行都通过了的。
对于初学者,尤其是还没有编程经验的非常有用的一个文件
遗传算法实例
下面举例说明遗传算法
求下列函数的最大值
将 的值用一个 位的二值形式表示为二值问题,一个 位的二值数提
供的分辨率是每为 。
将变量域 离散化为二值域 其中 是
中的一个二值数。

编程
初始化编码
!""# 函数的功能是实现群体的初始化,""$% 表示群体的大小,
&'#(%)!& 表示染色体的长度二值数的长度,
长度大小取决于变量的二进制编码的长度在本例中取 位。
遗传算法子程序
*+#%!""#
初始化
,!""!""""$%&'#(%)!&
""',-'+-""$%&'#(%)!&.'+- 随机产生每个单元为 /
0行数为 ""$%,列数为 &'#(%)!& 的矩阵,
',- 对矩阵的每个单元进行圆整。这样产生的初始种群。
计算目标函数值
将二进制数转化为十进制数

遗传算法子程序
*+#%-%-% +'1#
产生 的行向量,然后求和,将二进制转化为十进制
,!""-%-% +'1""
""1$%"".求 "" 行和列数
'"1
"""1"".
%-
"",#"".求 "" 的每行之和
将二进制编码转化为十进制数
-%-%&'## 函数的功能是将染色体或二进制编码转换为十进制,参
数 "! 表示待解码的二进制串的起始位置
对于多个变量而言,如有两个变量,采用 为表示,每个变量 为,则
第一个变量从 开始,另一个变量从 开始。本例为 ,
参数 %)!& 表示所截取的长度(本例为 )。
遗传算法子程序
*+#%-%-%&'##

将二进制编码转换成十进制
,!""-%-%&'#"""!(%)!&
"""""!"!(%)!&.
""-%-% +'1"".
计算目标函数值
+( 23+(,%# 函数的功能是实现目标函数的计算,其公式采用本文示例仿
真,可根据不同优化问题予以修改。
遗传算法子程序
*+#%+( 23+(,%#
实现目标函数的计算
,! 23+(,%+( 23+(,%""
!%#"-%-%&'#"".将 "" 每行转化成十进制数
!%#".将二值域 中的数转化为变量域 的数
23+(,%.计算目标函数值
计算个体的适应值
遗传算法子程序
剩余16页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0