📄 kzfzh.asv
字号:
clc
clear all
global MIN MAX C %Input layer number; J Hidden layer number
%K is weight matrix length
global CHROMLENGTH%Chromosome length
global POPSIZE %Population size
global POPULATION
global PO1 PO2 PO3 P
global T%termination condition
global PC%crossover probability
global PM%mutation probability
global FAVER%average fitness of each generation population
global FMAX%maxist fitness of each generation population
global zzfuzzy1 finala L M N a
MIN=0;MAX=1;C=0.001;
M=8;
L=4*M;
CHROMLENGTH=L;
POPSIZE=20;T=120;
POPULATION=zeros(POPSIZE,CHROMLENGTH);
PO1=POPULATION;PO2=PO1;PO3=PO1;
P=cell(1,T);
PC=0.9;
PM=0.0008;
t=1;
f=cell(1,T);
POPULATION=initial(POPSIZE,L,M,MIN,MAX);
P{1}=POPULATION;
%decoding
[wo,J]=decod(POPULATION,POPSIZE,L,M,MIN,MAX);
%calculate the plant
F=sum(J);
fit=F./J;
f{1}=fit;
fi=f{1};
FMAX(1)=max(f{1});FAVER(1)=mean(f{1}');
point=findstr(f{1},FMAX(1));
while t<T
if FMAX(t)<1/C
t=t+1;
%selection operator
PO1=select(POPULATION,POPSIZE,CHROMLENGTH,fi);
%crossover operator
PO2=crossoverop(PO1,POPSIZE,CHROMLENGTH,PC,t);
%mutation operator
PO3=mutation(PO2,PM,POPSIZE,CHROMLENGTH);
POPULATION=PO3;
%decoding
[wo,J]=decod(POPULATION,POPSIZE,L,M,MIN,MAX);
F=sum(J);
fit=F./J;
f{t}=fit;
FAVER(t)=mean(f{t}');
%find out the best individual
if FAVER(t)<(FAVER(t-1)+0.01)
POPULATION=P{t-1};
f{t}=f{t-1};
FAVER(t)=FAVER(t-1);
end
P{t}=POPULATION;
FMAX(t)=max(f{t});
fi=f{t};
else break
end
end
m=min(J)
point=findstr(m,J);
finala(:,point)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -