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
© Copyright 2024 Paperzz