没有合适的资源?快使用搜索试试~ 我知道了~
遗传算法经典MATLAB代码资料讲解.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
20 浏览量
2022-06-20
21:38:28
上传
评论
收藏 380KB PDF 举报
温馨提示
遗传算法经典MATLAB代码资料讲解.pdf遗传算法经典MATLAB代码资料讲解.pdf遗传算法经典MATLAB代码资料讲解.pdf遗传算法经典MATLAB代码资料讲解.pdf遗传算法经典MATLAB代码资料讲解.pdf遗传算法经典MATLAB代码资料讲解.pdf遗传算法经典MATLAB代码资料讲解.pdf遗传算法经典MATLAB代码资料讲解.pdf
资源推荐
资源详情
资源评论















精品文档
遗传算法 经典学习 Matlab 代码
遗传算法实例:
也是自己找来的,原代码有少许错误,本人都已更正了,调试运行都通过了的。
对于初学者,尤其是还没有编程经验的非常有用的一个文件
遗传算法实例
% 下面举例说明遗传算法 %
% 求下列函数的最大值 %
% f(x)=10*sin(5x)+7*cos(4x) x∈[0,10] %
% 将 x 的值用一个 10 位的二值形式表示为二值问题,一个 10 位的二值数提
供的分辨率是每为 (10-0)/(2^10-1)≈0.01 。 %
% 将变量域 [0,10] 离散化为二值域 [0,1023], x=0+10*b/1023, 其
中 b 是 [0,1023] 中的一个二值数。 %
% %
%--------------------------------------------------------------------
------------------------------------------%
%--------------------------------------------------------------------
------------------------------------------%
% 编程
%-----------------------------------------------
% 2.1 初始化(编码)
% initpop.m 函数的功能是实现群体的初始化,popsize 表示群体的大小,
chromlength 表示染色体的长度(二值数的长度),
精品文档

精品文档
% 长度大小取决于变量的二进制编码的长度(在本例中取 10 位)。
%遗传算法子程序
%Name: initpop.m
%初始化
function pop=initpop(popsize,chromlength)
pop=round(rand(popsize,chromlength)); % rand 随机产生每个单元
为 {0,1} 行数为 popsize,列数为 chromlength 的矩阵,
% roud 对矩阵的每个单元进行圆整。这样产生的初始种群。
% 2.2 计算目标函数值
% 2.2.1 将二进制数转化为十进制数(1)
%遗传算法子程序
%Name: decodebinary.m
%产生 [2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进
制
function pop2=decodebinary(pop)
[px,py]=size(pop); %求 pop 行和列数
for i=1:py
pop1(:,i)=2.^(py-i).*pop(:,i);
end
pop2=sum(pop1,2); %求 pop1 的每行之和
% 2.2.2 将二进制编码转化为十进制数(2)
% decodechrom.m 函数的功能是将染色体(或二进制编码)转换为十进制,参数
spoint 表示待解码的二进制串的起始位置
精品文档

精品文档
% (对于多个变量而言,如有两个变量,采用20 为表示,每个变量 10 为,则第
一个变量从 1 开始,另一个变量从 11 开始。本例为 1),
% 参数 1ength 表示所截取的长度(本例为 10)。
%遗传算法子程序
%Name: decodechrom.m
%将二进制编码转换成十进制
function pop2=decodechrom(pop,spoint,length)
pop1=pop(:,spoint:spoint+length-1);
pop2=decodebinary(pop1);
% 2.2.3 计算目标函数值
% calobjvalue.m 函数的功能是实现目标函数的计算,其公式采用本文示例仿
真,可根据不同优化问题予以修改。
%遗传算法子程序
%Name: calobjvalue.m
%实现目标函数的计算
function [objvalue]=calobjvalue(pop)
temp1=decodechrom(pop,1,10); %将 pop 每行转化成十进制数
x=temp1*10/1023; %将二值域 中的数转化为变量域 的数
objvalue=10*sin(5*x)+7*cos(4*x); %计算目标函数值
% 2.3 计算个体的适应值
%遗传算法子程序
%Name:calfitvalue.m
精品文档
剩余13页未读,继续阅读
资源评论


春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


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