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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Il sistema lineare appena scritto ammette<br />

quindi una unica soluzione che in generale puó<br />

avere componenti di segno qualsiasi. Notiamo<br />

<strong>per</strong>ó che vale la seguente implicazione:<br />

(nj ≥ 0 ∀ j)∧(λ > (α+1)∗(T +1)) ⇒ ( nj ≥ 0 ∀ j)<br />

Quindi <strong>per</strong> il conseguimento del nostro<br />

scopo non é sufficente trovare la soluzione<br />

n = Q −1 ∗ ∆ in quanto tale soluzione puó<br />

presentare componenti di valore negativo<br />

bensí si vuole trovare il vettore a componenti<br />

positive che in un certo senso approssima<br />

meglio la soluzione del sistema lineare. Si<br />

vuole quindi trovare il vettore n tale che la<br />

norma di (∆ − Q ∗ n) sia minima. Attraverso<br />

l’utilizzo della norma due si puó quindi<br />

scrivere:<br />

n = argmin ∆ − Q ∗ n 2<br />

2<br />

n ≥ 0<br />

<br />

<br />

<br />

= argmin <br />

<br />

Q ∗ (Q−1 <br />

<br />

<br />

∗ ∆ − n)<br />

<br />

<br />

<br />

n ≥ 0<br />

= −argmin Q ∗ C 2<br />

2 + Q−1 ∗ ∆<br />

C ≤ Q −1 ∗ ∆<br />

= −argmin C T Q T QC + Q −1 ∆<br />

C ≤ Q −1 ∗ ∆<br />

= Q −1 ∆ − C<br />

Si riconosce <strong>sub</strong>ito che trovare C é un<br />

problema di programmazione quadratica che<br />

puó essere risolto attraverso una moltitudine<br />

notevole di metodi. In sede di simulazione non<br />

é stato sviluppato un algoritmo di risoluzione<br />

dei problemi di programmazione quadratica<br />

ma ci si é appoggiati a MATLAB il quale <strong>per</strong><br />

risolvere questa tipologia di problemi fornisce<br />

la funzione “quadprog()“.<br />

Dopo aver trovato il valore di n si puó ricavare<br />

facilmente il valore di β. Infatti:<br />

T + 1 = N j=1 [nj] = N nj<br />

j=1 [ β ]<br />

⇒ β = ∆T ∗n<br />

T +1<br />

Grazie al risultato dell’ultimo calcolo si<br />

puó trovare finalmente:<br />

C<br />

2<br />

2<br />

n = n<br />

β<br />

Notiamo che il vettore n é a componenti positive<br />

<strong>per</strong>ó non é detto che sia a componenti<br />

naturali. Ricordiamo che la componente jesima<br />

del vettore appena trovato rappresenta<br />

il numero di istanti in cui il nodo j-esimo deve<br />

<strong>per</strong>manere nello stato di radice. Notiamo che é<br />

non influente ai fini che ci siamo posti l’ordine<br />

nel quale si mettono come radice i vari nodi.<br />

Da quanto detto risulta doveroso approssimare<br />

il vettore a componenti reali appena trovato<br />

con un vettore a componenti positive ed intere.<br />

Questa approssimazione é stata realizzata<br />

direttamente attraverso un casting delle componenti<br />

del vettore n, quindi si é sostituito<br />

ogni elemento del vettore n con il naturale piú<br />

vicino ad esso. L’errore che si commette con<br />

tale metodo é in generale piccolo in quanto le<br />

componenti di n che si trovano sono di solito<br />

tutte molto maggiori di 1 e quindi la loro parte<br />

decimale é trascurabile rispetto alla loro parte<br />

intera.<br />

31

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

Saved successfully!

Ooh no, something went wrong!