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

📄 flch6eg1.asv

📁 采用基于遗传算法的神经网络学习非线性函数YP=1-EXP(-I/2)
💻 ASV
字号:
% 求下列函数的最大值????????????????????????????????????????????????%
%????????f(x)=10*cos(5*x)-4*x??????????x∈[0,10]???????????????%
%?? 将 x 的值用一个10位的二值形式表示为二值问题?????????????????????%
%----------------------------------------------
% 编程
%----------------------------------------------
%  主程序
%遗传算法主程序
clear
clf
x2=0.1;x1=0.2;x0=0.05;e=0;
popsize=20; %设置初始参数,群体大小
chromlength=10; %字符串长度(个体长度),染色体长度
pc=0.6; %设置交叉概率,本例中交叉概率是定值,若想设置变化的交叉概率可用表达式表示,或从写一个
        %交叉概率函数,例如用神经网络训练得到的值作为交叉概率
pm=0.001; %设置变异概率,同理也可设置为变化的

pop=initpop(popsize,chromlength); %运行初始化函数,随机产生初始群体
for i=1:30 %20为迭代次数
[objvalue]=calobjvalue(pop);%计算目标函数
fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度
[newpop]=selection(pop,fitvalue); %复制
[newpop]=crossover(pop,pc); %交叉
[newpop]=mutation(pop,pc);%变异
[bestindividual,bestfit]=best(pop,fitvalue);%求出群体中适应值最大的个体及其适应值
y(i)=max(bestfit);
n(i)=i;
pop5=bestindividual;
x(i)=decodechrom(pop5,1,chromlength)*10/1023;
xx=x(i)
x2=x1+0.1*e+0.2*(x1-x0);
x0=x1;x1=x2;
xx=6.5*x2+4.3*x1+3.2*x0;
yN=1/(1+exp(-xx));
yNN(i)=yN
yp=1-exp(-i/2);
%yp=1
ypp(i)=yp
e=0.5*(yp-yN).^2

pop=newpop;
end
y(i)
%fplot('10*cos(3*x)-4*x',[0 10])
i=1:30
plot(i,ypp,i,yNN,'rx')


grid on
hold on
%plot(x,y,'g*')
hold off

⌨️ 快捷键说明

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