clc;clear all;
M=[ 2 0 1 3 5 4
1 2 4 5 0 3
2 3 5 0 1 4
1 0 2 3 4 5
2 1 4 5 0 3
1 3 5 0 4 2 ];
T=[ 1 3 6 7 3 6
8 5 10 10 10 4
5 4 8 9 1 7
5 5 5 3 8 9
9 3 5 4 3 1
3 3 9 10 4 1 ];
M=M+1;Q=100;n=size(T,1);m=300;Tau=ones(67,67);s=1;z=10000;nd=100;
K=cumsum(T,2);
%K(:,2:end)=K(:,1:end-1);
%K(:,1)=0;
E=1./K;
Eta=zeros(1,200);
for i=1:6
for j=1:6
Eta(i*10+j)=E(i,j);
end
end
Tabu=cell(1,m);
for i=1:6
Tau(:,i*10+7)=0;
end
LC1=zeros(nd);
LC2=zeros(nd);
for kk=1:nd
for i=1:m
Tabu{i}=;
E(i,:)=[11 21 31 41 51 61];
end
for j=1:36
% S=ones(1,m);
for i=1:m
P=Tau(Tabu{i}(end),E(i,:)).^2+Eta(E(i,:));
c=Dlun(P);
Tabu{i}=[Tabu{i},E(i,c)];
%S(i)=E(i,c);
E(i,c)=E(i,c)+1;
end
end
for i=1:m
X=floor(Tabu{i}/10);
X(1)=[];
cost=COST1(X,T,M);
Zp(i)=cost;
end
zmin=min(Zp)
F=find(Zp==zmin);
zmax=max(Zp)
G=find(Zp==zmax);
z=min(min(Zp),z);
me=mean(Zp);
LC1(kk)=z;
LC2(kk)=me;
Delta_Tau=zeros(67,67);
for i=1:m
for j=1:36
Delta_Tau(Tabu{i}(j),Tabu{i}(j+1))=Delta_Tau(Tabu{i}(j),Tabu{i}(j+1))+Q/(Zp(i)-40)/(Zp(i)-40);
end
end
for j=1:36
Delta_Tau(Tabu{F(1)}(j),Tabu{F(1)}(j+1))=Delta_Tau(Tabu{F(1)}(j),Tabu{F(1)}(j+1))-Q/(Zp(F(1))-40)/(Zp(i)-40);
% Delta_Tau(Tabu{G(1)}(j),Tabu{G(1)}(j+1))=Delta_Tau(Tabu{G(1)}(j),Tabu{G(1)}(j+1))-Q/(Zp(G(1))-40)/(Zp(i)-40);
end
Tau=max(0.9*Tau+Delta_Tau,0);
% z,me
end
axis([0 1000 50 200]);
hold on
plot(LC1,'-k','LineWidth',1.2);
plot(LC2,':k');
hold off

2011-6-14 22:34 上傳
點選檔案名下載下傳附件
1.86 KB, 下載下傳次數: 10163
蟻群算法求解工廠中的房間排程問題