📄 yichuanmatlab.txt
字号:
目标函数是De jong函数 是一个单峰函数,从函数的表达式可以看出De jong函数是一个简单的平方和函数,
只有一个极小值点。程序的主要变量设置,个体数量为nind是40,最大遗传代数为maxgen=300,变量的维数
为nvar=20,每个变量使用20位表示,preci=20,使用代购ggap=0.9
求解De Jong函数最小值的matlab程序
nind =40; %个体数目
maxgen=500; %最大遗传代数
nvar=20; %变量的维数
preci=20; %变量的二进制位数
ggap=0.9; %代购
trace=zeros(maxgen,2);
fieldd=[rep([preci],[1,nvar]);rep([-512;512],[1,nvar]);rep([1;0;1;1],[1,nvar])];
chrom=crtbp(nind,nvar*preci); %创建初始种群
gen=0; %代计数器
objv=objfun1(bs2rv(chrom,fieldd)); %计算初始个体目标函数
while gen<maxgen,
fitv=ranking(objv);
selch=select('sus',chrom,fitnv,ggap); %选择
selch=recombin('xovsp',selch,0.7); %重组
selch=mut(selch); %变异
objvsel=objfun1(bs2rv(selch,fieldd)); %计算子代目标函数
[chrom objv]=reins(chrom,selch,1,1,objv,objvsel); %重插入
gen=gen+1;
trace(gen,1)=min(objv); %遗传算法性能跟踪
trace(gen,2)=sum(objv)/length(objv);
end
plot(trace(:,1));hold on ;
plot(trace9:,2),'-.');grid;
区域描述器的构建:采用矩阵复制函数rep建立矩阵fieldd,描述染色体的表示和解释。
一个初始种群被函数crtbp创建,产生一个矩阵chrom,他由nind个均匀分布
给予排序的适应度函数分配计算由下面的程序段实现;fitnv=ranking(objv);
使用高级函数选择调用低级函数随机遍历抽样sus 程序段为selch=recombin('xovsp',selch,0.7);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -