📄 untitled6.m
字号:
clc
clear all
nind=40;B=[];
n=8;o=[];P=[];
pc=0.6;Q1=[];
pm=0.1;L=[];
A=[12 30 45 56 79 25 37 87;15 25 60 72.5 92.5 25 68.5 51.5;20 18 60 70 80 25 50 34;18 27 57 77.5 87 42 40 80;19 37.5 53 60 80 33 80 43.5;17.5 35 77 51.5 99 36 63.5 49.5;17 24 49 50 86 31 77 57;27 31 52 63 90 29 48.5 50];
A1=[1 2 0.5 1 0.6 1 0.9 2;8.33 75 33.33 18.75 18.75 8.33 114.08 24.08;400 324 3600 4900 6400 625 2500 11.56;2 0.8 3249 52.08 56.33 21.33 0.5 6400;361 52.08 1 3600 0.3 0.7 0.5 90.75;2.08 8.33 48 24.08 5.33 12 60.75 36.75;1 1 0.2 0.8 0.6 1 0.7 2;729 961 8.33 3969 0.8 0.8 24.08 2500];
%for h=1:20
chrom=create(nind,n);
tic
for x=1:100
%chrom=create(nind,n);
Newch2=[];
Fitnv=rank(A,A1,chrom,nind,n);
New=select('sus',chrom,Fitnv');
cro=cros(nind,New,n,pc);
mut=muta(nind,n,cro,pm);
for v=1:2:nind-1
Newch1=[mut(v:v+1,:);New(v:v+1,:)];
W=rank(A,A1,Newch1,4,n);
o=[];
for j=1:4
b=max(W);
if W(1,j)==b
W(1,j)=0;
o=[o,j];
H=size(o);
end
H=size(o);
if H(1,2)==2 break
end
end
if H(1,2)~=2
for j=1:4
b=max(W);
if W(1,j)==b
W(1,j)=0;
o=[o,j];
H=size(o);
end
H=size(o);
if H(1,2)==2 break
end
end
end
Newch2=[Newch2;Newch1(o,:)];
end
%mut=muta(nind,n+1,n,Newch2,pm);
chrom=Newch2;
Fitnv=rank(A,A1,chrom,nind,n);
maxval(x)=max(Fitnv);
minval(x)=min(Fitnv);
avgval(x)=sum(Fitnv)/40;
end
x=1:100;
plot(x,maxval,'b-',x,minval,'r-',x,avgval,'k-')
%chrom=Newch2
Fitnv=rank(A,A1,chrom,nind,n);
l=max(Fitnv)
for i=1:nind
if Fitnv(1,i)==l
j=i;
B=[B,j];
end
end
Z=chrom(B,:)
%[m,n]=size(chrom(B,:));
%P=[];
%for d=1:m
%p=0;
%for e=1:n
%p=p+A(e,Z(d,e));
%end
%P=[P,p];
%end
%P;
%Q1=[Q1,P(1,1)];
%end
%Q1;
%min(Q1)
%1/(1+min(Q1))
%for d2=2:m
%if Z(d2,:)==Z(1,:)
%Z2=[Z(1,:);Z(d2+1:m,:)];
%else Z2=[Z(1,:);Z(d2:m,:)];
%end
%end
%Z2
toc;
t=toc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -