⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hanshuyouhua.txt

📁 这是作者自己编写的基于matlab语言的程序设计。matlab的免疫遗传算法。多指教。
💻 TXT
字号:
利用遗传算法计算下面函数的最大值 
f(x)=x*sin(10*pi*x)+2.0  
选择二进制编码,种群的个体数目为40 每个种群长度为20,使用代购为0.9  最大遗传代数25
下面是一元函数优化问题的matlab代码
figure(1);
fplot('variable*sin(10*pi*variable)+2.0',[-1,2]);  %画出函数曲线
nind=40;                                           %个体数目 
maxgen=25;                                         %最大遗传代数
preci=20;                                          %变量的二进制位数
ggap=0.9;                                          %代购
trace=zeros(2,maxgen);
fieldd=[20;-1;2;0;1;1];                             %区域描述器
chrom=crtbp(nind,preci);                            %初始种群 
gen=0;                                              %代计数器
variable=bs2rv(chrom,fieldd);                       %计算初始种群的十进制转化
objv=variable*sin(10*pi*variable)+2.0;              %计算目标函数值
while  gen<maxgen,
fitnv=ranking(-objv);                              % 分配适应度值
selch=select('sus',chrom,fitnv,ggap);
selch=recombin('xovsp',selch,0.7);
selch=mut(selch);
variable=bs2rv(selch,fieldd);
objvsel=variable*sin(10*pi*variable)+2.0;
[chrom objv]=reins(chrom,selch,1,1,objv,objvsel);
gen=gen+1;
[y,i]=max(objv0,hold on;
plot(variable(i),y);
trace(1,gen)=max(objv);
trace(2,gen)=sum(objv)/length(objv);
end 
variable=bs2rv(chrom,fieldd);
hold on,grid;
plot(variable,'objv','b*');
figure(2);
plot(trace(1,:);
hold on;
plot(trace(2,:),'-.');grid;
legend('jie de bian hua ','zhong qun jun zhi de bian hua');






对这个等级评定算法的缺省设置是选择等差为2和使用线性评估,给最适应个体的适应度值为2,最差个体的适应度值为0
选择层使用高级函数选择调用低级函数随机遍历抽样例程sus ,selch包含来之原始染色体的ggap*nind个个体。这些使用
高级函数recombin进行重组,recombin使个体通过selch被选择再生产,并使用单点交叉

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -