遗传算法的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遗传算法实例
  • 算法入门
  • 粒子群算法matlab
  • 遗传算法解决TSP问题
  • 智能优化算法

遗传算法的MATLAB程序实例相关文档

最新文档

返回顶部