Effacer les filtres
Effacer les filtres

how can i display an answer for all iteration?

2 vues (au cours des 30 derniers jours)
sharifah shuthairah syed abdullah
Commenté : madhan ravi le 31 Oct 2018
i have this coding for quadratic assignment problem (assign facilities to location using flow and distant matrix)
i want to display all the answer that i get from 10 iteration
%%read data
clc
clear
%flow
f=[ 0 90 10 23 43 0 0 0 0 0 0 0
90 0 0 0 0 88 0 0 0 0 0 0
10 0 0 0 0 0 26 16 0 0 0 0
23 0 0 0 0 0 0 0 0 0 0 0
43 0 0 0 0 0 0 0 0 0 0 0
0 88 0 0 0 0 0 0 1 0 0 0
0 0 26 0 0 0 0 0 0 0 0 0
0 0 16 0 0 0 0 0 0 96 0 0
0 0 0 0 0 1 0 0 0 0 29 0
0 0 0 0 0 0 0 96 0 0 0 37
0 0 0 0 0 0 0 0 29 0 0 0
0 0 0 0 0 0 0 0 0 37 0 0];
%distance
d=[ 0 36 54 26 59 72 9 34 79 17 46 95
36 0 73 35 90 58 30 78 35 44 79 36
54 73 0 21 10 97 58 66 69 61 54 63
26 35 21 0 93 12 46 40 37 48 68 85
59 90 10 93 0 64 5 29 76 16 5 76
72 58 97 12 64 0 96 55 38 54 0 34
9 30 58 46 5 96 0 83 35 11 56 37
34 78 66 40 29 55 83 0 44 12 15 80
79 35 69 37 76 38 35 44 0 64 39 33
17 44 61 48 16 54 11 12 64 0 70 86
46 79 54 68 5 0 56 15 39 70 0 18
95 36 63 85 76 34 37 80 33 86 18 0];
[r,c]=size(f);
max_i= r;
max_j =r;
max_k= r;
max_q= r;
MaxIt=10;
for no=1:MaxIt
ID=randperm(r); %PERMUTATION r NOMBOR ..r = 3, 1 2 3, 1 3 2...
x=zeros(r,r);
n=length(ID);
x1=ID;
for i=1:n
for j=1:r
x(j,x1(j))=1;
B(i).mat=x; % used to keep the memory when 0,1 permutation in (i),for BINARY RELATION
end
x=zeros(r,r);
end
z=0;xa=B(no).mat;
for i=1:max_i
for j=1:max_j
for k=1:max_k
for q=1:max_q
z= z+ f(i,k).*d(j,q).*xa(i,j).*xa(k,q); %find the min value of the assignment
end
end
end
end
no;
F(no,:)=[no z]; %STOR ALL VALUE Z 1...UNTIL MaxIt IN MATRIX F
end
%end
zmin=min(F(:,2));
ii=find(F(:,2)==zmin) ;
x_initial = B(ii).mat;
% xbin= B(ii).mat % xbin = initial value for facility location for minimun z
z_minimum = zmin
Iter_zvalue = F % matrix F has no of iteration..col 1 dan z
Iter_MaxIt = ID
% disp(ID)
i want to make it display the iteration as example below, but i didnt know how to do it
exp:
Iter_MaxIt 1=
11 4 7 5 12 3 9 1 2 8 6 10
F 1 =
31868
Iter_MaxIt 2=
11 4 7 5 12 3 9 1 2 8 6 10
F 2 =
31868

Réponse acceptée

madhan ravi
madhan ravi le 31 Oct 2018
Apply condition inside loop as such
if Maxit
disp(yourvalues) which you want to display
end
  2 commentaires
sharifah shuthairah syed abdullah
thank you so much.. i actually has tried to used it but i put it outside the loop.. so it didn't display as i wanted.. thank you so much
madhan ravi
madhan ravi le 31 Oct 2018
Anytime :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by