Elaborato Posca Simona N46000570

UNIVERSITA’ DEGLI STUDI DI NAPOLI FEDERICO II
Scuola Politecnica e delle Scienze di Base
Corso di Studi in Ingegneria Informatica
Dipartimento di Ingegneria Elettrica e delle Tecnologie
dell’Informazione
Elaborato finale in Controlli Automatici
Consenso e sincronizzazione di una rete di sistemi
dinamici lineari.
Candidata
Simona Posca
matr. N46000570
Anno Accademico 2012/2013
Indice
1 Introduzione
1.1 Struttura della tesi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
2 Reti Complesse
2.1 I Sistemi Multi-Agente . . . . . . . . . . . .
2.2 Caratterizzazione topologica di una rete . .
2.2.1 Proprietà dei grafi . . . . . . . . . .
2.2.2 Parametri di caratterizzazione di una
2.3 Architettura di una rete complessa . . . . .
3 Il Problema del Consenso
3.1 Il protocollo di consenso . . . . .
3.1.1 Rete di agenti integratori:
3.2 L’importanza della cooperazione
3.3 Sincronizzazione . . . . . . . . .
3.4 Applicazioni . . . . . . . . . . . .
. . .
. . .
. . .
rete
. . .
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . .
l’average-consensus
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
4
5
6
. . . . . .
algorithm
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
10
11
12
12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Simulazioni
16
4.1 Scenario e modello matematico . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 Inserimento del modello in MATLAB e Simulink . . . . . . . . . . . . . . 18
4.3 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5 Conclusioni
24
Bibliografia
25
i
Capitolo 1
Introduzione
I sistemi dinamici lineari sono modellati da equazioni differenziali del tipo dx/dt = v(x),
dove x(t) è il vettore delle variabili di stato, t è il tempo e v(x) è un vettore di funzioni
che descrivono la dinamica del sistema stesso. Solitamente i sistemi dinamici vengono
rappresentati mediante i cosiddetti diagrammi a blocchi: il sistema è raffigurato come un
quadrato che riceve delle variabili in ingresso e ne produce altre in uscita. Nel momento
in cui, però, pensiamo ad un insieme di sistemi dinamici collegati ed interagenti tra di
loro, si viene a creare una struttura più complessa, chiamata rete di sistemi dinamici, in
cui ogni nodo o agente è rappresentato da un sistema dinamico, ed esistono dei collegamenti tra i vari nodi che permettono ad un agente di interagire con i suoi vicini nella rete.
Nell’ottica di una rete di questo tipo, assumono molta importanza i problemi di consenso e sincronizzazione. In una rete di agenti, ”consensus” indica il raggiungimento di
un accordo riguardo una certa quantità di interesse che dipende dallo stato di tutti gli
agenti. Un algoritmo (o protocollo) di consenso è una legge di interazione che regola lo
scambio di informazioni tra un agente ed i suoi vicini nella rete. Il problema del consenso
ha una lunga storia nel campo dell’informatica, ma non solo: è stato oggetto di studi da
parte di numerosi ricercatori nelle più svariate discipline. Una rete di agenti, infatti, non
è vincolata ad essere costituita solo da sistemi dinamici modellati matematicamente; in
altre parole ogni agente può essere qualsiasi tipo di sistema (biologico, fisico ecc.). Si
parla di ”Reti di Sistemi Multi-Agente” o di ”Reti Complesse’.
1.1
Struttura della tesi
Scopo dell’elaborato, sarà quello di descrivere i problemi di Consenso e Sincronizzazione in una rete di sistemi dinamici, fornendo anche i risultati relativi ad una simulazione,
fatta per evidenziare il comportamento collettivo della rete sotto opportune considerazioni. Il Capitolo 2 presenterà una descrizione generale delle Reti Complesse. In particolare
1
2
verrà definita la topologia di una rete complessa e, a tal fine, saranno introdotti alcuni
concetti relativi alla teoria dei grafi. Verranno inoltre descritti i principali parametri
utilizzati per caratterizzare una rete: lunghezza media del percorso, coefficiente di clustering e funzione di distribuzione del grado. Il capitolo si chiuderà con una panoramica
sulle architetture di rete più diffuse: grafi random, reti small-world e ad invarianza di
scala. Nel Capitolo 3 verrà definito formalmente il concetto di Consenso con la descrizione dell’algoritmo più semplice ed utilizzato in letteratura: l’average consensus algorithm,
che permette ad una rete di agenti integratori di raggiungere una decisione comune che
risulterà essere pari alla media dei valori iniziali di ogni agente (da qui il nome dell’algoritmo). Successivamente verrà presentato un altro problema nell’ambito delle reti
complesse, quello della sincronizzazione che ha una definizione molto simile a quella di
consenso. Anche questa, infatti, deriva da un comportamento collettivo degli agenti di
una rete. Infine, verranno brevemente descritte delle applicazioni al problema del consenso: è interessante sapere come, problemi diversi abbiano come scopo comune quello di
far cooperare gli agenti di una rete per il raggiungimento di un obiettivo. Nel Capitolo
4, infine, verranno forniti i risultati relativi alla simulazione, tramite MATLAB, di una
rete di sistemi. Verrà costruita, in particolare, una rete di sistemi oscillatori e si vedrà
come, applicando la definizione di sincronizzazione, gli oscillatori, pur avendo condizioni
iniziali diverse, dopo un certo tempo raggiungeranno un valore comune.
Capitolo 2
Reti Complesse
Prima di affrontare direttamente il consenso, è bene capire cosa sono e come vengono
rappresentate le reti complesse. Partendo dalla definizione di Sistema Multi-Agente,
quindi, il capitolo descrive la topologia di una rete complessa tramite l’esposizione di
alcune definizioni legate alla teoria dei grafi, e alcuni dei parametri fornamentali per
analizzare il comportamento di una rete. Il capitolo si conclude poi con la descrizione di
alcune tra le architetture di rete più studiate: grafi random, reti small-worlds e scale-free.
2.1
I Sistemi Multi-Agente
I sistemi Multi-Agente (Mutli-Agent System, MAS ) sono una classe di sistemi caratterizzati da un insieme di entità, gli agenti, che interagiscono tra di loro in un ambiente
condiviso per raggiungere un obiettivo comune. E’ da sempre noto all’uomo, come la
collaborazione tra individui porti a risolvere facilmente problemi che, per il singolo, risultano molto difficili. Proprio per questo, negli ultimi anni, lo studio dei MAS ha
attirato l’interesse dei ricercatori essendo molteplici le aree scientifiche in cui possono
essere applicati. Si parla di sistemi multi-agente in ambito economico, psicologico, filosofico e, naturalmente, informatico ed elettronico. Grazie allo sviluppo di sempre migliori
tecniche di controllo, calcolo e comunicazione, le potenzialità applicative sono in forte
crescita. Coordinamento di veicoli autonomi, monitoraggio ambientale, coordinamento
di robot mobili, sorveglianza, operazioni di ricerca e di soccorso sono solo alcune delle
numerose applicazioni.
Con il termine agente, quindi, ci si riferisce ad un sistema autonomo, con una dinamica propria, in grado di interagire con l’ambiente che ci circonda e di prendere decisioni
autonome per raggiungere un determinato obiettivo.
3
Capitolo 2. Reti Complesse
2.2
4
Caratterizzazione topologica di una rete
Non esiste una definizione univoca di rete complessa, questo termine si riferisce
ad una rete con una topologia non banale e con un alto numero di nodi e connessioni. La maggior parte delle reti esistenti – siano esse sociali, biologiche o tecnologiche –
può essere considerata complessa. Lo studio delle reti, quindi, interessa tutte le discipline. Il problema principale è, innanzitutto, capire e descrivere l’anatomia della rete
e, successivamente, cercare di capire come i nodi che la compongono - neuroni, persone
o circuiti elettrici - si comporteranno quando si trovano ad interagire l’uno con l’altro.
Perché è così importante capire e studiare l’architettura di una rete? L’architettura da
sempre influenza il comportamento. ”La grande sfida, oggi, non solo nella biologia cellulare e nell’ecologia, ma in tutte le altre discipline, è la descrizione accurata e completa
dei sistemi complessi. Conosciamo molti elementi, il prossimo passo è collegarli insieme,
almeno attraverso modelli matematici affinchè siano catturate le proprietà chiave dell’intero sistema.” (E. O. Wilson). La complessità di una rete, comunque, deriva da alcune
caratteristiche come, ad esempio, il grado di distribuzione dei nodi che la compongono,
il coefficiente di raggruppamento, la complessità strutturale o dinamica ecc.
E’ naturale modellare lo scambio di informazioni tra un gruppo di agenti mediante dei
grafi.
2.2.1
Proprietà dei grafi
Definizione 2.1. Un grafo è una coppia G = (V, E), in cui V rappresenta l’insieme
dei nodi (o vertici) e E ⊆ V × V rappresenta l’insieme degli archi.
Gli archi sono rappresentati, quindi, da coppie (i, j) con i, j ∈ V .
Definizione 2.2. Un grafo si dice orientato se per gli archi vale (i, j) 6= (j, i) con
i, j ∈ V . Un grafo, al contrario, si dice non orientato se (i, j) = (j, i) con i, j ∈ V .
I grafi possono essere rappresentati in diversi modi. La rappresentazione più comune
è quella grafica in cui i nodi vengono raffigurati con dei cerchi etichettati, e gli archi con
delle linee che congiungono i nodi. Se un grafo è orientato, le linee avranno una freccia
che ne indica il verso (l’arco (i, j) sarà rappresentato da una freccia che va da i a j). Se
il grafo è non orientato, le linee non avranno alcun verso. Due nodi, inoltre, si dicono
adiacenti se c’è un arco che li collega.
Capitolo 2. Reti Complesse
5
Definizione 2.3. Un cammino del grafo G è una sequenza di archi successivi {e1 , e2 , ..., eL }
in cui ogni arco è formato da una coppia di nodi che contiene un nodo dell’arco precedente.
Definizione 2.4. Un grafo è connesso se esiste sempre un cammino fra qualsiasi
coppia di nodi.
I grafi possono essere descritti per mezzo di opportune matrici, in modo da formalizzare matematicamente i problemi da esso descritti.
Definizione 2.5. La matrice di adiacenza A di un grafo G è una matrice N × N i
cui elementi sono:

1, se (i, j) ∈ E,
aij =
0, se (i, j) 6∈ E.
Definizione 2.6. Per ogni nodo vi ∈ V si definisce insieme dei nodi adiacenti Ni
(o insieme dei vicini, neighbors) il sottoinsieme di V così definito:
Ni = {j ∈ V : aij 6= 0}
con V = {1, ..., n} .
Definizione 2.7. Dato un nodo vi si definisce grado di vi e si indica con dg (vi ), il
numero di nodi ad esso adiacenti.
Definizione 2.8. La matrice Laplaciana di un grafo G è una matrice N × N data da L = D − A, dove A è la matrice di adiacenza, D è una matrice diagonale di ordine
N che presenta sulla diagonale principale il grado di ciascun nodo.
2.2.2
Parametri di caratterizzazione di una rete
Una rete complessa può essere analizzata a partire da questi tre fondamentali parametri:
• Lunghezza media del percorso: La distanza tra il nodo i e il nodo j, è definita
come il numero di connessioni lungo il più breve percorso che connette i due nodi.
La lunghezza media, quindi, si definisce come la media delle distanze tra due nodi;
tale distanza determina l’effettiva misura della rete.
Capitolo 2. Reti Complesse
6
• Coefficiente di clustering: In una rete di amicizie è possibile che gli amici degli
amici siano anche amici diretti, o anche, due amici di una persona, è probabile che
siano anche amici l’un l’altro. Questa proprietà è chiamata clustering. E’ a tutti
gli effetti una proprietà transitiva: se il nodo di una rete A, è connesso con il nodo
B il quale a sua volta è connesso al nodo C, allora c’è un’alta probabilità che A e C
siano connessi tra loro. Formalmente, il coefficiente di clustering è il rapporto tra
il numero Ei di connessioni di un nodo, e il numero
2
ki (ki −1)
totale di connessioni
possibili:
Ci =
2Ei
ki (ki − 1)
• Funzione di distribuzione del grado P (k): Caratterizza la probabilità che un
nodo, scelto a caso, abbia esattamente k connessioni.
2.3
Architettura di una rete complessa
Quando la topologia di una rete è semplice, allora la rete ha un’architettura del tutto
regolare; ogni nodo è connesso al proprio vicino, oppure a tutti gli altri nodi della rete
(Figura 2.1 a). Questo permette di concentrarsi soprattutto sulla dinamica dei nodi, in
quanto la struttura della rete non presenta particolari complessità. Se, però, adottiamo
l’approccio complementare, ossia mettiamo da parte la dinamica dei nodi, possiamo
concentrarci sull’architettura della rete. Cominciamo dal caso completamente opposto a
quello di una rete regolare, ovvero quello in cui il grafo che descrive la topologia della
rete è completamente casuale.
• Random Graph: Immaginiamo di avere n > 1 bottoni sparsi sul pavimento.
Scegliamo due bottoni a caso e leghiamoli tra loro con del filo. Ripetiamo questo
procedimento m volte, scegliendo sempre i bottoni a caso (è possibile legare un
bottone ad un altro che è a sua volta collegato ad altri bottoni: si verranno così
a creare dei gruppi di bottoni). Questo è un esempio fisico di un grafo random
con n nodi ed m collegamenti (Figura 2.1 c). Adesso, alziamo un bottone a caso
dal pavimento: se questo è legato, direttamente o indirettamente, ad altri bottoni,
allora saranno sollevati da terra anch’essi. Erdos e Renji studiarono come la topologia di questo tipo di grafo cambiasse in funzione di m: se m è piccolo, allora il
grafo è probabilmente frammentato in piccoli gruppi di nodi chiamati componenti,
al crescere di m, invece, i componenti crescono, prima collegandosi a nodi isolati e
poi fondendosi con altri componenti per formarne uno più grande. Tutti i nodi, in
un componente, sono connessi tra loro mediante cammini brevi; il massimo numero
di ’gradi di separazione’ tra due nodi cresce lentamente, in maniera logaritmica.
Capitolo 2. Reti Complesse
7
Figura 2.1: Esempio di reti regolari e random. a. Rete regolare di dieci nodi, ognuno connesso
al proprio nearest neighbor. b. Rete di dieci nodi completamente connessa. c. Esempio di grafo
random.
• Small Worlds: Alcune reti si trovano a metà strada tra la completa regolarità
e la totale casualità. E’ il caso di alcune reti regolari che vengono ’ricollegate’
(rewired ) per aumentare il grado di disordine. I sistemi che compongono reti di
questo tipo possono essere altamente ’clustered’, continuando, però, a mantenere
una distranza tra i nodi breve, come nel caso dei grafi random. Queste reti vengono
chiamate Small-World Networks, in analogia con il fenomeno del piccolo-mondo,
conosciuto anche come ’Sei Gradi di Separazione’. Consideriamo un anello con
n nodi, ciascuno collegato ai nodi più vicini attraverso k archi non orientati (in
Figura 2.2 n = 20 e k = 4). Scegliamo un nodo e l’arco che lo collega al suo vicino
in senso orario. Con probabilità p, ricolleghiamo tale arco ad uno dei nodi della
rete scelto casualmente, evitando collegamenti doppi. Ripetiamo il procedimento
considerando i nodi successivi dell’anello, in senso orario, fin quando non siamo
arrivati al nodo da cui è partito il ’ricollegamento’. In Figura 2.2 vengono mostrate
tre realizzazioni di questo processo, per differenti valori di p. Per p = 0, l’anello
originale rimane invariato, al crescere di p il grafo inizia ad essere disordinato fin
quando, per p = 1, tutti i nodi del grafo sono ricollegati casualmente. In particolare,
Watts e Strogats, realizzarono che, per valori intermedi di p, il grafo è una rete
small-world: alto clustering, come un grafo regolare, ma piccola distanza tra i nodi
come in un grafo random.
• Scale-Free Networks: E’ una rete il cui grado di distribuzione segue una legge
di potenza (power law ), dove la maggior parte dei nodi stabilisce pochi legami e
pochi nodi, gli hub, presentano molte connessioni. Questa particolare legge rimane
inalterata aumentando il numero di nodi nella rete, ovvero risulta indipendente
Capitolo 2. Reti Complesse
8
Figura 2.2: Procedura di rewiring della rete.
dalla grandezza o scala della rete: di qui il nome scale-free. Barabasi e Albert,
in particolare, ritennero che le reti crescono continuamente con l’aggiunta di nuovi
nodi e questi sono di solito collegati ai nodi (hub) che hanno già un gran numero
di connessioni. Questo fenomeno si può riassumere nella frase ”rich gets richer”.
Essi, inoltre, notarono che la distribuzione è descritta con una power-law con esponente 3: la probabilità di trovare un nodo con k collegamenti è proporzionale al
termine k −3 .
Capitolo 3
Il Problema del Consenso
In una rete di agenti, ”consensus” [1] indica il raggiungimento di un accordo riguardo
una certa quantità di interesse che dipende dallo stato di tutti gli agenti. Un algoritmo (o
protocollo) di consenso è una legge di interazione che regola lo scambio di informazioni tra
un agente ed i suoi vicini nella rete. Ogni agente utilizza lo stesso algoritmo condiviso da
tutti e prende le proprie decisioni in base alle informazioni disponibili localmente e a quelle che riceve dagli altri. In questo capitolo viene formalizzata la definizione di consenso e
viene descritto l’algoritmo più semplice ed utilizzato in letteratura: l’average-consensus
algorithm, valido nel caso in cui ogni agente della rete sia un sistema integratore. Successivamente, viene data la definizione di sincronizzazione, molto simile a quella di consenso:
anche questa, infatti, deriva da un comportamento collettivo dei nodi della rete. Il Capitolo si conclude con una panoramica sulle applicazioni più diffuse che fanno uso del
consenso per raggiungere un obiettivo comune: dalla sincronizzazione di oscillatori al
rendezvous nello spazio, si vede come il consenso sia ampiamente studiato in letteratura
per scopi che sono sì utili all’ingegneria, ma applicabili anche a qualsiasi altro campo
delle scienze.
3.1
Il protocollo di consenso
Consideriamo una rete di sistemi Multi-Agente e sia G = (V, E) un grafo caratterizzato dall’insieme V = (1, ..., n) dei nodi e dall’insieme E ⊆ V x V degli archi. Sia
Ni l’insieme dei vicini del nodo i definito come Ni = {j ∈ V : aij 6= 0} dove aij è il generico elemento della matrice di adiacenza A del grafo. Sia xi ∈ R il valore del nodo
i-esimo. L’informazione contenuta in xi è proprio l’informazione che serve per la coordinazione degli agenti. Questa informazione può essere: posizione, velocità, temperatura,
ecc. Diciamo che i nodi i e j concordano nella rete se e solo se xi = xj e, quindi, i nodi
raggiungono un consenso se e solo se
9
Capitolo 3. Il Problema del Consenso
10
x1 = x2 = ... = xn
(3.1)
Ogni volta che i nodi di una rete raggiungono un consenso, il valore comune dei nodi è
detto decisione collettiva ed è indicato con α ∈ R.
3.1.1
Rete di agenti integratori: l’average-consensus algorithm
Supponiamo che ogni nodo della rete sia un agente dinamico. Consideriamo il caso
più semplice in cui la rete sia formata da agenti integratori con dinamica x˙i = ui . L’algoritmo che consente di raggiungere la convergenza ad una decisione collettiva è il seguente:
x˙ i (t) =
X
aij (xj (t) − xi (t))
(3.2)
j∈Ni
ed è detto algoritmo di consenso distribuito.
Assumendo che il grafo che descrive la rete sia non orientato (aij = aji per ogni i, j),
P
la somma degli stati di tutti i nodi è una quantità costante, o i x˙i = 0. In particolare,
applicando questa condizione al tempo t = 0 e t = ∞ abbiamo:
α=
1X
x˙i (0)
n
(3.3)
i
dove x˙i (0) è lo stato iniziale del nodo i. In altre parole, se è raggiunto un consenso, allora
necessariamente la decisione collettiva α è pari alla media della somma di tutti gli stati
iniziali, a condizione che il grafo G sia connesso. Un algoritmo di consenso che gode di
questa proprietà è detto average-consensus algorithm.
La dinamica del sistema (3.2) può essere espressa in forma compatta come:
x˙ = −Lx
(3.4)
dove L è la matrice Laplaciana di G che ricordiamo essere uguale alla differenza tra la
matrice dei gradi D e la matrice di adiacenza A. Nel caso di grafi non orientati, L è una
matrice simmetrica con autovalori reali e, quindi, l’insieme degli autovalori può essere
ordinato come segue:
Capitolo 3. Il Problema del Consenso
11
λ1 ≤ λ2 ≤ ... ≤ λn
(3.5)
Per definizione, la somma delle righe di L è zero, quindi la matrice Laplaciana ha sempre
un autovalore λ1 = 0 che corrisponde all’autovettore 1 = (1, ..., 1)T . Inoltre l’autovalore
λ2 , detto connettività algebrica, se G è connesso, è positivo ed è una misura della
velocità di convergenza dell’algoritmo di consenso.
La matrice Laplaciana soddisfa anche la seguente proprietà
xT Lx =
1 X
aij (xj − xi )2 .
2
(3.6)
(i,j)∈R
Se chiamiamo
1
ϕ(x) = xT Lx
2
(3.7)
allora l’algoritmo di consenso descritto dal sistema (3.2) può essere riscritto come:
x˙ = −∇ϕ(x)
(3.8)
o algoritmo del gradiente discendente. Questo algoritmo permette di raggiungere il consenso purchè siano verificate due condizioni: L è una matrice semidefinita positiva e
l’unico stato di equilibrio del sistema è α1.
3.2
L’importanza della cooperazione
Abbiamo quindi detto che, per raggiungere un consenso, tutti i nodi di una rete devono ”concordare” su un valore comune. Per capire il ruolo della cooperazione tra agenti,
dobbiamo distinguere tra problemi di consenso non vincolati e vincolati. Un problema
di consenso è non vincolato quando, semplicemente, lo stato di tutti gli agenti è lo stesso
asintoticamente. Invece, quando lo stato degli agenti deve essere asintoticamente uguale ad una certa quantità, ad esempio una funzione f (z), allora il consenso è vincolato.
Quest’ultimo problema è detto anche f-consensus problem. Risolvere un problema di consenso vincolato richiede quindi l’attiva cooperazione e partecipazione di tutti gli agenti.
Supponiamo, infatti, che un agente decida di non cooperare con gli altri, mantenendo
Capitolo 3. Il Problema del Consenso
12
costante il suo stato. Allora l’obiettivo di consenso non può essere perseguito nonostante
tutti gli altri agenti si trovino in accordo. Oppure, ci possono essere casi in cui più agenti
decidano di non cooperare e formino una coalizione; in questo caso i collegamenti di tali
nodi possono rendere l’intera rete disconnessa. E, in una rete disconnessa, è impossibile
per i nodi raggiungere il consenso.
Il termine cooperazione può quindi essere inteso come ”acconsentire a fornire il proprio
stato e seguire un protocollo comune utile al raggiungimento dell’obiettivo del gruppo di
agenti”.
3.3
Sincronizzazione
Un’altro importante problema nell’ambito delle reti complesse è quello della sincronizzazione. Supponiamo che la dinamica di ogni agente della rete sia:
x˙ i = f (xi ) + g(xi )ui
i = 1, ..., n
(3.9)
dove xi ∈ Rn è il vettore di stato dell’ i-esimo agente, ui ∈ Rm è il vettore degli ingressi
dell’ i-esimo agente, f è il campo vettoriale che assumiamo sia lo stesso per tutti i nodi,
e n è il numero di nodi della rete.
Formalmente la sincronizzazione prevede che:
x1 (t) = x2 (t) = ... = xn (t),
per
t → ∞.
(3.10)
Si parla di sincronizzazione soprattutto nel caso in cui ogni agente della rete è un oscillatore. Infatti, se la condizione (3.10) è verificata, allora tutti gli oscillatori si assestano
sulla stessa orbita spazio-temporale. Il termine stesso sincronizzazione, infatti, deriva da
sincrono che letteralmente significa ”accadere nello stesso tempo, condividere un tempo
comune”.
3.4
Applicazioni
Ritornando ai problemi di consenso più in generale, le applicazioni in cui è utile un
algoritmo per il raggiungimento di un obiettivo comune sono tante. Verranno brevemente
descritte le più studiate in letteratura:
• Synchronization of Coupled Oscillators: Distinguiamo tra oscillatori identici
e non identici. Nel primo caso, Peskin provò che se ogni oscillatore è connesso a
Capitolo 3. Il Problema del Consenso
13
tutti gli altri, allora essi finirebbero per sincronizzarsi, indipendentemente da come
erano partiti. Peskin dimostrò questa asserzione per N = 2 oscillatori, ma si vide
in seguito che ciò valeva per N oscillatori. Nel secondo caso, invece, il risultato
più importante venne proposto da Kuramoto il quale formulò un modello di oscillatori accoppiati basandosi sull idea di Winfree: se l’accoppiamento è ridotto, gli
oscillatori non sono sincronizzati ed ognuno si comporta seguendo la sua frequenza
naturale; al crescere del coefficiente di accoppiamento, la de-sincronizzazione degli
oscillatori persiste, fino al raggiungimento di una certa soglia, superata la quale un
piccolo gruppo di oscillatori si sincronizza perfettamente. Per valori ancora più alti
dell’accoppiamento, tutti gli oscillatori si ”bloccano” nella stessa fase ed ampiezza.
Il modello di Kuramoto è il seguente:
θ˙i = K
X
sin(θj − θi ) + ωi
i∈N
dove θi ed ωi sono rispettivamente la fase e l’ampiezza dell’ i-esimo oscillatore.
• Flocking Theory: Con il termine flocking si intende il comportamento collettivo
di un gran numero di agenti che interagiscono tra loro con un obiettivo comune.
In particolare, i flocks sono reti di sistemi dinamici con una topologia dinamica
descritta da un grafo di prossimità che dipende dallo stato degli agenti. Nell’ingegneria, le applicazioni del flocking includono il campo dei sensori distribuiti usando
una rete di sensori mobili, campo militare ecc. Secondo Reynolds, sono tre le regole
che i flocks devono rispettare: 1) Flock centering, cercare di rimanere quanto è più
possibile vicino agli altri flock nella rete; 2) Collision avoidance, evitare collisioni
con i vicini; 3) Velocity matching, cercare di mantenere la stessa velocità degli altri.
In questo contesto, è stato dimostrato che il ruolo degli algoritmi di consenso è
utile per soddisfare la terza regola. Si utilizzano, infatti, gli algoritmi di consenso
per permettere ad un agente di ”regolare” la propria velocità e renderla uniforme a
quella del gruppo.
• Small-Worlds: La connettività algebrica di un grafo è il secondo più piccolo autovalore della sua matrice Laplciana ed è indice della velocità di convergenza di
un algoritmo di consenso. Nel caso delle reti Small-Worlds, sviluppate da Watts e
Strogats mediante un procedimento di ”random rewiring”, la complessità algebrica
può essere aumentata anche di 1000 volte o più, senza aggiungere nuovi collegamenti o nodi alla rete. Questo implica che il problema del consenso può essere
risolto in maniera incredibilmente veloce, permettendo uno scambio ultra-rapido
delle informazioni all’interno della rete. Si parla infatti di Ultrafast Consensus.
Capitolo 3. Il Problema del Consenso
14
• Rendezvous in Space: Un’altra applicazione del problema del consenso è il rendezvous nello spazio. Si tratta di un gruppo di n > 1 agenti che possono muoversi
in un piano. Ogni agente può tenere traccia della posizione di tutti gli altri all’interno di una ”regione di rilevamento”, ovvero un disco chiuso con raggio r positivo
centrato alla posizione corrente dell’agente. In questo caso il consenso riguarda il
raggiungimento di una certa posizione da parte degli agenti nella rete, che quindi
ha una topologia dipendente dalla posizione stessa (ad esempio è descritta tramite
un grafo di prossimità). Il problema del rendezvous è un problema di consenso
non vincolato che diventà, però, difficoltoso quando la topologia della rete inizia a
variare. Rispetto al rendezvous nello spazio, comunque, il flocking è qualcosa di più
interessante e difficile. Infatti unisce interazione tra gli agenti e collision avoidance
agente-ostacolo.
• Distributed Sensor Fusion in Sensor Network: La più recente applicazione
del problema del consenso. In questo caso è stato sviluppato un algoritmo distribuito che permette ai nodi di una rete di sensori di tenere traccia della media
di tutte le loro misurazioni. Tale problema è detto dynamic average-consensus.
L’average-consensus algorithm, infatti, è stato generalizzato, per n valori costanti,
al caso di n misurazioni di segnali rumorosi ottenuti da n sensori, realizzando un
filtro passa-basso distribuito chiamato Consensus Filter.
• Distributed Formation Control: Ci sono due approcci per il controllo di formazione distribuito: i) rappresentazione delle formazioni come strutture rigide ed
utilizzo di controlli basati su gradiente ottenuti dalle loro potenzialità strutturali,
ii) rappresentazioni delle formazioni utilizzando i vettori delle posizioni relative dei
veicoli vicini e l’utilizzo di controllori basati su consenso con polarizzazioni in ingresso. Un quadro per lo sviluppo e l’analisi di controllori distribuiti per formazioni
multiveicolo del secondo tipo è stato sviluppato da Fax e Murray. In particolare,
il movimento, nelle formazioni, è un problema di cooperazione e richiede il consenso e la collaborazione di ogni agente. Consideriamo una rete di agenti autonomi
(Self-interested agents) che hanno come scopo quello di minimizzare il proprio costo
P
locale Ui (x) = i∈Ni kxj − xi − rij k2 tramite un algoritmo distribuito. In particolare, se gli agenti utilizzassero l’algoritmo del gradiente discendente sul costo totale
PN
i=1 Ui (x), usando il seguente protocollo
x˙ i =
X
i∈Ni
con bi =
P
j∈Ni rij ,
(xj − xi − rij ) =
X
(xj − xi ) + bi
i∈Ni
l’obiettivo degli agenti sarebbe ottenuto. Vediamo come questo
Capitolo 3. Il Problema del Consenso
15
sistema sia simile al protocollo di consenso distribuito; l’unica differenza qui è il
termine bi che tuttavia non gioca alcun ruolo nell’analisi di stabilità del sistema.
Capitolo 4
Simulazioni
Nel Capitolo 2 è stato introdotto il problema del Consenso nella sua definizione più
generale, ed è stato descritto uno degli algoritmi di Consenso più diffusi: l’averageconsensus algorithm. E’ stato inoltre spiegato come questo algoritmo sia valido solo per
raggiungere consenso in una rete di sistemi integratori; in particolare il consenso raggiunto
è pari proprio alla media dei valori iniziali di ogni singolo agente. Nel caso di sistemi con
una dinamica diversa o in generale più complessa rispetto a quella dell’integratore, viene
utilizzata la definizione classica di consenso, espressa dalla (3.1). E’ stato poi introdotto
il concetto di Sincronizzazione che, però, si applica preferibilmente quando i nodi di una
rete sono sistemi oscillatori.
In questo Capitolo vengono presentati i risultati di una simulazione relativa all’applicazione di un classico algoritmo di consenso ad una rete di sistemi dinamici.
4.1
Scenario e modello matematico
Ai fini della simulazione presentata in questo elaborato, ciascun agente è pensato
come un oscillatore.
Consideriamo una molla con costante elastica k ed una massa M collegati come in Figura
4.1. Sia f la forza esterna applicata all’elemento di massa, s la posizione e v = s˙ la
velocità dell’elemento di massa. Il sistema che ne risulta è SISO e le grandezze che lo
caratterizzano sono: u = f in ingresso e y = s in uscita. Applicando la seconda legge
della dinamica, abbiamo:
M v(t)
˙
= f (t) − fk (t)
16
Capitolo 4. Simulazioni
17
Figura 4.1: Sistema massa-molla.
sostituendo qui la caratteristica della molla fk = ks, otteniamo:
M s¨(t) + ks(t) = f (t).
Da qui ricaviamo il modello ingresso-uscita:
M y¨(t) + ky(t) = u(t);
y¨(t) +
k
1
y(t) =
u(t)
M
M
che può essere trasformato in un modello ingresso-stato-uscita scegliendo opportunamente
le variabili di stato. In particolare

x = y
1
x = y˙
2
e, quindi:



x˙ = x2

 1
k
x1 +
x˙ 2 = − M



y = x
1
1
Mu
Siamo quindi giunti ad avere un sistema dinamico del tipo:

x˙ = Ax + Bu
y = Cx + Du
"
con A =
0
1
k
−M
0
#
,B=
"
0
1
M
#
h
i
, C = 1 0 e D = 0 essendo il sistema proprio.
(4.1)
Capitolo 4. Simulazioni
4.2
18
Inserimento del modello in MATLAB e Simulink
Consideriamo una rete in cui ogni sistema (A, B,..., L) è un oscillatore ed i nodi sono
collegati come in Figura 4.2.
A"
C"
L"
B"
D"
I"
E"
H"
G"
F"
Figura 4.2: Rete di oscillatori.
La topologia della rete, come si può notare, è rappresentata da un grafo diretto con
10 nodi e 9 archi. Si vuole simulare, tramite MATLAB e Simulink versione R2013a, la
sincronizzazione della rete di agenti.. E’ bene partire facendo qualche considerazione:
in primo luogo, ciascun sistema avrà un ingresso pari alla differenza tra l’uscita del
sistema precedente e l’uscita del sistema considerato, tranne nei primi due casi, in cui il
collegamento è bidirezionale, per cui: uA = yB − yA e uB = yA − yC . Inoltre, quando
l’uscita di un sistema i viene posta in ingresso ad un sistema j, allora si verrà a creare un
arco che va dal nodo i al nodo j. A partire da questo, quindi, si possono costruire grafi
diretti o indiretti. In secondo luogo, dovendo collegare più sistemi con dinamica (4.1)
mediante un algoritmo di consenso, abbiamo tre uscite, anzichè una, per ogni sistema.
La prima è rappresentata dalla somma delle due variabili di stato x1 ed x2 , la seconda
dalla sola x1 e la terza dalla sola x2 . Il sistema, quindi, diventa:



x˙ 1 = x2




k


x˙ = − M
x1 +

 2
y = x1 + x2





y1 = x1




y = x .
2
2
1
Mu
(4.2)
Capitolo 4. Simulazioni
19
Questo perchè è necessario che le rispettive variabili di stato dei due sistemi coincidano
tra loro dopo un certo istante t; in particolare:
x1i = x1j
per
t→∞
(4.3)
x2i = x2j
per
t→∞
(4.4)
Abbiamo in sostanza applicato la definizione di sincronizzazione. Come già accennato
precedentemente nel Capitolo, infatti, per sistemi oscillatori è opportuno parlare di sincronizzazione più che di consenso: i sistemi non raggiungeranno un valore comune pari
alla media dei valori iniziali, ma, dopo un certo tempo, si assesteranno, ovvero si sincronizzeranno in uno stesso istante di tempo.
Per iniziare la simulazione, sono stati inseriti nel Workspace di MATLAB i parametri
utili a definire i sistemi:
1
2
3
4
k =2;
M =1;
A =[0 1; -k / M 0];
B =[0; 1/ M ];
Come si può notare, i valori di k ed M sono stati scelti molto piccoli, in caso contrario,
infatti, è stato notato che i sistemi non raggiungevano la sincronizzazione. Per quanto
riguarda invece la matrice C, sono state effettuate tre prove con tre diverse matrici:
1
2
3
C =[1 1; 1 0; 0 1];
C1 =[1 0; 1 0; 0 1];
C2 =[0 1; 1 0; 0 1];
ovvero portando in uscita sicuramente le due variabili di stato, ma una volta la somma
di x1 ed x2 (tramite C), una volta solo x1 (tramite C1) ed un’altra volta solo x2 (tramite
C2). E’ stato quindi visto in quali di questi tre casi viene raggiunta la sincronizzazione.
Successivamente, servendosi di Simulink, è stata costruita la rete di oscillatori. In particolare, per ogni sistema sono stati definiti: l’ingresso tramite il blocco Sum, il modello
spazio di stato del sistema stesso tramite il blocco Space-State ed i vari collegamenti tra
i sistemi. Sono state anche specificate delle condizioni iniziali, diverse per ogni sistema.
Inoltre, dovendo le condizioni (4.3 - 4.4) essere soddisfatte, sono stati plottati in maniera
sovrapposta, tramite il blocco Scope, x1i −x1j ed x2i −x2j con i, j rappresentanti l’i-esimo
e il j-esimo sistema della rete.
Capitolo 4. Simulazioni
4.3
20
Risultati
Le figure seguenti mostrano i risultati della simulazione relativa alla rete di oscillatori
di Figura 4.2. Mettendo ad ogni sistema della rete come matrice delle uscite la matrice
C1 gli oscillatori appaiono completamente de-sincronizzati. Infatti, la Figura 4.3 mostra
il grafico della variabile di stato x1 di ogni sistema; la Figura 4.4 il grafico di x2 .
Figura 4.3: Variabile di stato x1 : de-sincronizzazione della rete di oscillatori con C=C1.
Se invece, come matrice delle uscite, vengono utilizzate C o C2, gli oscillatori si sincronizzano. La Figura 4.5 rappresenta la sincronizzazione relativa alla variabile di stato x1
di ogni sistema; la Figura 4.6 rappresenta la sincronizzazione relativa alla variabile x2 .
L’asse x rappresenta il tempo di simulazione e sull’asse y sono riportate le condizioni
iniziali. Inoltre vediamo come, in entrambi i casi, un gruppo di agenti si ”assesta” prima
di tutti gli altri. Per visualizzare la completa sincronizzazione di tutti gli agenti della
rete aumentiamo il tempo di simulazione (Figg. 4.7, 4.8):
Capitolo 4. Simulazioni
21
Figura 4.4: Variabile di stato x2 : de-sincronizzazione della rete di oscillatori con C=C1.
Figura 4.5: Variabile di stato x1 : sincronizzazione della rete di oscillatori con tempo di
simulazione pari a 20 s.
Capitolo 4. Simulazioni
22
Figura 4.6: Variabile di stato x2 : sincronizzazione della rete di oscillatori con tempo di
simulazione pari a 20 s.
Figura 4.7: Variabile di stato x1 : sincronizzazione della rete di oscillatori con tempo di
simulazione pari a 35 s.
Capitolo 4. Simulazioni
23
Figura 4.8: Variabile di stato x2 : sincronizzazione della rete di oscillatori con tempo di
simulazione pari a 35 s.
Capitolo 5
Conclusioni
In questo elaborato sono stati affrontati i problemi di consenso e sincronizzazione di
reti di sistemi dinamici lineari. Dopo una breve descrizione sui sistemi multi-agente e
le reti complesse in generale, è stato spiegato come, servendosi dei concetti propri della
teoria dei grafi, sia possibile costruire e modellare matematicamente una rete di Sistemi
Multi-Agente. Nel Capitolo 3, è stato presentato il problema del consenso. Partendo dalla
definizione generale, espressa dalla (3.1), è stato descritto l’algoritmo più utilizzato, quello
relativo ad una rete di agenti integratori. E’ stato visto come, nel caso di sistemi con
dinamica del tipo x˙ = u, applicando l’algoritmo di consenso è possibile permettere agli
agenti della rete di raggiungere un valore comune, rappresentato dalla media dei valori
iniziali di ogni agente (average-consensus algorithm). Nel caso di sistemi con dinamica più
complessa, invece, è possibile applicare la definizione generale di consenso per raggiungere
lo scopo. In particolare, è stato visto che se una rete è formata da oscillatori, allora essi
si sincronizzeranno dopo un certo istante di tempo assumendo la stessa fase ed ampiezza.
Sono state poi presentate diverse applicazioni di questo problema ed è stato visto, in
particolare, quanto la topologia della rete influisca sul raggiungimento del consenso: in
una rete small-world, ad esempio, caratterizzata da un grafo particolare, il consenso
viene raggiunto in maniera estremamente veloce sotto opportune considerazioni (ultrafast
consensus). Infine, sono stati presentati i risultati di una simulazione fatta per illustrare
la sincronizzazione di sistemi. E’ stata costruita una rete di sistemi oscillatori e, tramite
l’ambiente MATLAB, è stato visto come, applicando la definizione di sincronizzazione gli
oscillatori, aventi condizioni iniziali diverse, si assestano dopo un certo istante di tempo.
In conclusione, si può dire che il problema del consenso resta un problema aperto a nuovi
sviluppi futuri; lo studio delle reti complesse, infatti, abbraccia tutte le scienze, dalla
neurobiologia alla fisica statistica. Capire come gli agenti di una rete si comportano tra
loro e capire come questi agenti possano raggiungere uno scopo comune, cooperando,
attrae gli studi dei ricercatori di ogni disciplina.
24
Bibliografia
[1] Olfati-Saber R., Consensus and Cooperation in Networked Multi-Agent Systems,
Proceedings of the IEEE, 95, 215-220, 2007.
[2] Strogatz S. H., Exploring Complex Network, Nature, 410, 2001.
[3] MATLAB Documentation Center, www.mathworks.it
25