遗传算法的matlab实现

遗传算法是一种全局最优化算法,是运用了进化论优胜劣汰原理的随机化搜索方法。

前些日子,在进行毕业设计的相关研究中,我接触到了遗传算法,用其对一个五元非线性函数进行最优化搜索。仿真平台使用的是matlab,主要使用的是谢菲尔德大学的matlab遗传算法工具箱。

具体程序如下:

clc
clear all
close all
lbx=-1;ubx=1; %函数自变量x范围【-1,1】
lby=-1;uby=1; %函数自变量y范围【-1,1】
%% 定义遗传算法参数
NIND=50;        %个体数目
MAXGEN=50;      %最大遗传代数
PRECI=20;       %变量的二进制位数
GGAP=0.90;      %代沟
px=0.97;         %交叉概率
pm=0.001;        %变异概率
trace=zeros(6,MAXGEN);                        %寻优结果的初始值
FieldD=[PRECI PRECI PRECI PRECI PRECI;lbx lby lbx lbx lbx;ubx uby ubx ubx ubx;1 1 1 1 1;0 0 0 0 0;1 1 1 1 1;1 1 1 1 1];                      %区域描述器
Chrom=crtbp(NIND,PRECI*5);                      %初始种群
%% 优化
gen=0;                                  %代计数器
XY=bs2rv(Chrom,FieldD);                 %计算初始种群的十进制转换
d1=XY(:,1);
d2=XY(:,2);d3=XY(:,3);d4=XY(:,4);d5=XY(:,5);
ObjV=func(d1,d2,d3,d4,d5,NIND);       %计算目标函数值
while gen

你可能感兴趣的:(matlab,算法研究)