Leader (and sub Leader) Election per uniformare e ... - Automatica
Leader (and sub Leader) Election per uniformare e ... - Automatica
Leader (and sub Leader) Election per uniformare e ... - Automatica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
P = F;<br />
while norm(P) > 0<br />
A = A + P;<br />
P = (eye(dim(1,1)) -Phi(A)) * Mg * Phi(P);<br />
%Voglio che in ogni riga di P ci sia al massimo un 1<br />
%Considero la matrice con i primi uni delle righe<br />
B = P;<br />
for i = 1:dim(1,1)<br />
y = 0;<br />
for w = 1:dim(1,1)<br />
if (y == 1)%Se ho gia trovato un 1<br />
%metto tutti gli altri elementi a zero<br />
B(i,w) = 0;<br />
end<br />
if (B(i,w) == 1)%Appena trovo un 1 metto y a 1<br />
y = 1;<br />
end<br />
end<br />
end<br />
v = ones(1,dim(1,1)) * B;%dice quanti 1 ci sono nella colonna i di B<br />
r = zeros(1,dim(1,1));<br />
flagOne = 0;%Mi dice fino a qu<strong>and</strong>o ciclare<br />
while (flagOne == 0)<br />
minv = v(1,1);<br />
maxv = 0;<br />
index = 1;<br />
for i = 1:dim(1,1)%Prendo il massimo degli<br />
%elementi di v con rispettivo r = 0<br />
if (v(1,i) < minv)<br />
minv = v(1,i);<br />
end<br />
if ((v(1,i) > maxv) && (r(1,i) == 0))<br />
maxv = v(1,i);<br />
index = i;<br />
end<br />
end<br />
if (minv > (maxv - 2))%Condizione raggiunta la quale si ha che<br />
%in ogni riga di P ci sia al massimo un 1<br />
flagOne = 1;<br />
else<br />
%Inizio a scorrere la colonna index-esima di B<br />
j = 1;<br />
flagTwo = 0;%Diventa uno appena faccio l’aggiornamento<br />
while ((flagTwo == 0) && (j < (dim(1,1) + 1)))<br />
%Ciclo finche non faccio l’aggiornamento o<br />
%finche non finisco la colonna in questione<br />
if (B(j,index) == 1)%Se trovo 1 inizio a scorrere<br />
%la riga di P rispettiva<br />
48