📄 main.asv
字号:
clc
clear all
global 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 J L m N a p
global OBJ%matrix of the values of the multi-objects
C=0.001;
m=8;
N=4;
L=20;
CHROMLENGTH=L;
POPSIZE=8;T=120;
OBJ=[0.1,0.2,0.1,0.2;
0.3,0.1,0.05,0.1;
0.1,0.2,0.2,0.2;
0.3,0.1,0.05,0.1;
0.2,0.2,0.1,0.2;
0.3,0.2,0.05,0.1;
0.1,0.2,0.2,0.2;
0.3,0.1,0.05,0.2;
0.2,0.2,0.2,0.2;
0.3,0.25,0.05,0.1;
0.1,0.2,0.15,0.2;
0.3,0.1,0.15,0.1;
0.15,0.2,0.1,0.2;
0.35,0.1,0.05,0.1;
0.25,0.2,0.1,0.2;
0.3,0.2,0.05,0.1;
0.1,0.2,0.3,0.2;
0.3,0.3,0.05,0.1;
0.1,0.1,0.1,0.1;
0.3,0.3,0.3,0.3];
PO1=POPULATION;PO2=PO1;PO3=PO1;
P=cell(1,T);
PC=0.9;
PM=0.2;
t=1;
f=cell(1,T);
POPULATION=initial(POPSIZE,L,m);
P{1}=POPULATION;
%calculate the OBJECT FUNCTION
J=calobj(POPULATION,OBJ,m,N);
fit=J;
f{1}=fit;
fi=f{1};
g=[2 2 2 2 2 2 2 2];
FMAX(1)=max(f{1});FAVER(1)=mean(f{1}');
point=findstr(f{1},FMAX(1));
while t<T
if abs(FMAX(t))>=C
t=t+1;
%selection operator
PO1=select(POPULATION,POPSIZE,CHROMLENGTH,fi);
%crossover operator
PO2=crossoverop(PO1,POPSIZE,CHROMLENGTH,m,PC,t);
%mutation operator
PO3=mutation(PO2,PM,POPSIZE,CHROMLENGTH,m);
POPULATION=PO3;
%caculate
fit=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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -