30.06.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!