基于遗传算法的模糊指派
源代码在线查看: rank.m
function Fitnv=rank(C,C1,old,nind,n)
G1=[];G2=[];P=[];
fit=[];
for j=1:nind
g1=0;g2=0;
for i=1:n
g1=g1+C(i,old(j,i));
g2=g2+C1(i,old(j,i));
end
G1=[G1,g1]; G2=[G2,g2];
end
G1;
G2;
for j=1:nind
if G2(1,j) f=G1(1,j);
elseif G2(1,j)>30*G1(1,j)
f=G1(1,j)+(30*G1(1,j)-G2(1,j));
end
fit=[fit,f];
end
F=fit;
Fitnv=F;
%sort(fit)
%这里C是效益矩阵,old指可行解矩阵,即个体矩阵,nind指种群规模,即个体的数目,
%n指个体的长度,也就是效益矩阵中的任务数。这个函数是用来对个体的适应度进行
%排序的,按从小到大的顺序.
%rank([12 7 9 7 13;8 9 6 6 10;7 17 12 14 18;15 14 6 6 12;10 7 8 9 6],[1 2 3 4 5;5 3 4 1 2;4 2 1 3 5;3 1 4 2 5;2 5 3 4 1],5,5)