遗传算法的MATLAB程序实例
遗传算法
遗传算法的程序实例
f(x)=10*sin(5x)+7*cos(4x) x∈[0,10]
一、初始化(编码)
initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度),
长度大小取决于变量的二进制编码的长度(在本例中取10位)。
代码: %Name: initpop.m
%初始化
function pop=initpop(popsize,chromlength)
pop=round(rand(popsize,chromlength));
% rand随机产生每个单元为 {0,1} 行数为popsize,列数为chromlength的矩阵,
% roud对矩阵的每个单元进行圆整。这样产生的初始种群。
二、计算目标函数值
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-1).*pop(:,i);
py=py-1;
end
pop2=sum(pop1,2); %求pop1的每行之和
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);
3、计算目标函数值
calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。

如求下列函数的最大值
你可能喜欢
- matlab遗传算法实例
- 算法入门
- 粒子群算法matlab
- 遗传算法解决TSP问题
- 智能优化算法
- 三个遗传算法matlab程序实例19页
- matlab遗传算法工具箱函数及实例讲解3页
- matlab遗传算法实例10页
- matlab遗传算法工具箱函数及实例讲解3页
- matlab遗传算法工具箱函数及实例讲解10页
- matlab遗传算法工具箱函数及实例讲解2页
- 基本粒子群算法的matlab源程序2页
- 粒子群算法通用matlab程序2页
- 粒子群算法的matlab代码实现5页
- 粒子群算法matlab代码19页
- 多目标粒子群算法matlab源代码12页
- 基本粒子群算法的matlab源程序2页
- 遗传算法解决TSP问题32页
- 遗传算法解决TSP问题的Matlab程序4页
- 遗传算法解决TSP问题,C++版(带注释)29页
- 遗传算法解决TSP问题的Matlab程序4页
- 遗传算法解决TSP问题8页
- 基于Matlab的遗传算法解决TSP问题的报告12页
- 智能优化算法的认识5页
- 智能优化算法的部分精华笔试试题10页
- 群智能理论及粒子群优化算法115页
- 智能优化算法_数学建模_王成章_人工神经网络_201166页
- 智能优化算法2页
- 智能优化算法29页


