Sono ancora molti i problemi aperti – sia teorici che applicativi – legati alla necessità di controllare e automatizzare il comportamento di sistemi complessi, non più composti da una sola entità ma da una moltitudine di agenti che interagiscono tra di loro attraverso una fitta rete di interconnessioni.
Parliamo, ad esempio, di flotte di veicoli, stormi di droni, popolazioni di cellule, reti di generatori nelle reti “intelligenti” per la distribuzione di energia elettrica (smart grids), e finanche squadre di robot cooperanti con gruppi di persone nella fabbrica del futuro.
La risoluzione di questi problemi è tuttavia cruciale per affrontare le nuove sfide del futuro dal clima alla salute, passando per l’Industria 4.0.
Vediamone di seguito alcuni partendo da una rapida descrizione di quanto fin qui è stato fatto.
Addomesticare la complessità
Taming Complexity – “Addomesticare la complessità” – così Nature, una delle più prestigiose riviste scientifiche internazionali, intitolava la copertina del proprio numero di maggio 2011, richiamando la comunità scientifica internazionale a questa enorme sfida aperta [1]. In un mondo sempre più interconnesso, infatti, non basta più sviluppare metodologie per controllare un singolo robot o una singola macchina.
Il problema fondamentale che stiamo studiando è quello di capire come intervenire su sistemi “multi-agente” in modo che questi possano comportarsi collettivamente in modo desiderato.
Per esempio, quanti e quali droni in uno stormo devono essere controllati perché tutti si muovano in formazione verso una destinazione di interesse evitando ostacoli o reagendo a situazioni impreviste in maniera autonoma? Oppure, come fare in modo che una smart grid sia in grado di riconfigurarsi autonomamente per esibire resilienza rispetto a blackout o sovraccarichi?
Ancora, è possibile intervenire su popolazioni cellulari in modo da ottenere un comportamento desiderato? Ad esempio, ristabilire il corretto funzionamento sincrono delle cellule del tessuto cardiaco o di quelle pancreatiche per la produzione di insulina?
Il problema del controllo
La teoria dei controlli automatici ha una lunga storia che parte già dall’età classica. Da sempre, l’uomo sogna di costruire macchine automatiche capaci di agire autonomamente e reagire in presenza di situazioni inaspettate. L’esempio pratico che ritroviamo quotidianamente nelle nostre vite è il controllo di velocità di un veicolo (cruise control) in cui il sistema automatico di bordo accelera o decelera in modo da tenere la velocità costante in presenza di dossi, curve, pendenze impreviste o quant’altro. Il cuore di un sistema di controllo è il cosiddetto ciclo di “retroazione” (feedback), che consiste nella capacità del sistema di ricevere e processare informazioni dai sistemi di bordo (nell’esempio, il tachimetro) allo scopo di attuare una data politica di controllo (aumentare o diminuire la velocità) volta al raggiungimento di un comportamento di riferimento (mantenere la velocità costante a 70 km/h). Un sistema di controllo, come quello mostrato in Figura 1, deve quindi essere in grado di misurare, processare l’informazione ricevuta e attuare in maniera automatica una politica di gestione del sistema di interesse. Tradizionalmente, l’attenzione si è focalizzata sullo sviluppo di metodologie per controllare un singolo sistema (macchina, robot, veicolo). Oggi, invece, la sfida aperta è quella di governare il comportamento collettivo di sistemi multi-agente. In questo scenario, il problema chiave è capire come chiudere la retroazione, ovvero che cosa misurare, come processare l’informazione ricevuta e come attuare il controllo, scegliendo gli agenti su cui operare per ottenere lo scopo prefissato. Questo è quello che si intende quando si parla di controllare (o addomesticare) la complessità.
Figura 1: Schema di controlllo a retroazione
Controllare i sistemi complessi: cosa possiamo imparare dai sistemi naturali
In un sistema complesso non c’è un solo agente da controllare ma si vuole orchestrare il comportamento di tutti gli agenti che lo costituiscono. È molto attuale per esempio il problema di coordinare flotte di veicoli autonomi che siano in grado di viaggiare in formazione riducendo così i consumi, aumentando la sicurezza e riducendo le emissioni di sostanze inquinanti. Nelle applicazioni di swarm robotics si vuole controllare il movimento di centinaia o migliaia di insetti-robot in modo che lo “sciame” si comporti in maniera desiderata. Nel controllo di stormi di droni si vuole fare in modo che lo stormo sia in grado di muoversi in maniera autonoma seguendo una certa traiettoria. Ebbene, in tutti questi esempi il problema cruciale è come agire (controllare) il comportamento dei singoli agenti per ottenere un comportamento collettivo desiderato.
La soluzione più intuitiva sarebbe quella di controllare singolarmente il comportamento di ogni agente nel gruppo – la tecnica prende il nome di controllo centralizzato. In questo scenario, un’entità di controllo (ad esempio un calcolatore) riceve dati da tutti gli agenti nel gruppo e, nota la traiettoria o la formazione desiderata, assegna a ciascuno il proprio comportamento individuale la cui combinazione porta alla manifestazione del comportamento collettivo di interesse. Questo approccio sarebbe certamente possibile, tuttavia all’aumentare del numero di agenti e della complessità del task da eseguire potrebbero aumentare in maniera insostenibile anche le richieste in termini del numero di sensori da utilizzare e computazionali. Inoltre, la presenza di guasti o di problemi d comunicazione tra l’entità di controllo centrale e i singoli agenti potrebbe portare alla perdita del controllo dell’intero gruppo.
In Natura osserviamo invece un comportamento completamente differente. Basti pensare a un banco di pesci che eseguono manovre evasive rispetto all’attacco di predatori. In questi casi vediamo una moltitudine di agenti in grado di auto-organizzare il proprio comportamento in maniera autonoma per raggiugere un obiettivo comune. Ad esempio, per eseguire manovre complesse, evitando ostacoli e riorganizzando le proprie interazioni in maniera autonoma e decentralizzata. L’azione di controllo è distribuita ed emerge come proprietà collettiva del gruppo in cui solo alcuni agenti osservano l’ambiente circostante ed iniziano manovre diversive mentre i restanti reagiscono al comportamento dei propri vicini. Dinamiche simili si osservano anche nei moti migratori di sciami di api: ad un numero relativamente piccolo di api esploratrici è delegato il compito di localizzare una nuova posizione e di comunicarla all’alveare attraverso un complesso sistema di danze. L’informazione di controllo viene così propagata all’intero sciame senza nessuna entità esterna che comandi a ciascuna ape cosa fare o dove andare.
La sfida aperta è quella di replicare questi comportamenti in sistemi artificiali come flotte di veicoli, sciami di insetti-robot o stormi di droni. Fare in modo che questi sistemi complessi mostrino qualità di auto-organizzazione, resilienza e flessibilità paragonabili a quelle che riscontriamo in Natura.
Figura 2: Esempio di sistema multiagente. I nodi sono gli agenti (droni, cellule, robot) che comunicano tra di loro attraverso la struttura delle interconnessioni che li collegano.
Una possibile strategia e i problemi aperti
Una possibile strategia, che stiamo sviluppando in collaborazione con numerosi laboratori e centri di ricerca internazionali, è quella di controllare i sistemi complessi attraverso tecniche dette di pinning control. Attraverso questa tecnica, si vuole replicare il comportamento dei sistemi naturali controllando solo una frazione relativamente piccola del sistema artificiale; le interconnessioni tra i suoi costituenti hanno poi il compito di propagare le informazioni e le decisioni alla restante parte, non esplicitamente controllata, raggiungendo quindi tutti gli agenti presenti.
Ad esempio, basterà controllare il 10% degli insetti-robot in uno sciame e dare solo ad essi l’informazione su dove andare, istruendo tutti gli altri a inseguirsi l’un l’altro in modo da mantenere una formazione desiderata. In questo modo, con uno sforzo di controllo diretto solo a un numero relativamente piccolo di agenti e che può quindi essere relativamente contenuto, si riesce a influenzare il comportamento di un sistema costituito da centinaia o migliaia di individui.
La tecnica del pinning control, proposta per la prima volta già nella prima metà degli anni 2000 è stata sviluppata e applicata con successo in diversi casi, riscontrando un notevole successo nella letteratura specialistica. Tuttavia, la sua applicazione al controllo dei sistemi complessi apre diversi scenari che necessitano ancora di studio approfondito.
Ad esempio, come scegliere quali agenti controllare in un sistema composto da decine, centinaia o migliaia di individui? Quali comportamenti devono seguire gli agenti controllati per essere efficaci sul resto della rete? Prendiamo ad esempio una rete come quella mostrata in Figura 2.
Quali agenti conviene controllare per influenzare il comportamento collettivo di tutta la rete? Gli agenti dotati di molte connessioni con gli altri, detti hub, o quelli periferici con pochi collegamenti? Quale porzione della rete è sufficiente controllare?
Questi quesiti fondamentali possono avere molto spesso soluzioni contro-intuitive e prendono il nome di Problema della controllabilità di un sistema multi-agente. Ad esso è corredato il suo problema duale, il Problema dell’osservabilità, ovvero di decidere il comportamento di quali e quanti agenti tenere sott’occhio per comprendere e predire quello del gruppo di cui fanno parte.
Resta poi il problema di come controllare gli agenti che si sono individuati come quelli da influenzare direttamente. La cosa non è banale è, anch’essa, una sfida accattivante; un’analogia nel contesto delle reti sociali può dare idea del problema. Immaginiamo di voler influenzare il comportamento di un gruppo di persone affinché esse compiano una determinata azione. Si potrebbe, megafono alla mano, urlare a tutti quello che vorremmo facessero oppure, in maniera più discreta, comunicare la nostra decisione solo ad alcuni individui opportunamente selezionati. Le due strategie potrebbero portare ad effetti diametralmente opposti: nel primo caso, la coesione tra gli appartenenti al gruppo potrebbe portare al rigetto del nostro tentativo di influenzarne il comportamento; nel secondo caso, invece, una volta convinte le persone giuste si sfrutterebbero i loro legami preesistenti con gli altri membri del gruppo per raggiungere lo scopo. Resta però da decidere cosa convenga di più. E quali persone influenzare e come. Non a caso lo studio della dinamica di opinione nelle reti sociali è oggi di enorme attualità e legata anche al fenomeno delle fake news che potrebbero essere viste come tentativi di influenzare alcuni elementi della rete in modo da influenzarne il comportamento collettivo.
Comprendere i meccanismi con cui è possibile controllare la complessità ci permetterebbe di sviluppare strategie per rendere questi sistemi più resilienti e contrastare in maniera efficace anche tentativi malevoli di influenzarne il comportamento da parte di agenti esterni.
Applicazioni e sfide per il futuro
Riuscire a risolvere il problema di controllare la complessità può rivoluzionare numerosi ambiti applicativi. Per esempio, riuscire a controllare il comportamento collettivo di un gruppo di agenti autonomi in maniera distribuita porterebbe quasi sicuramente alla produzione veicoli autonomi in grado di auto-organizzarsi in flotte, capaci di navigare anche nelle condizioni più sfavorevoli. Le smart cities del futuro e le applicazioni legate all’Industria 4.0 vedranno uomini, robot ed avatar virtuali, fianco a fianco, operare in maniera perfettamente coordinata, grazie alla comprensione delle loro dinamiche collettive.
È proprio questo uno degli obiettivi fondamentali delle attività del gruppo di ricerca che coordino all’Università di Napoli Federico II [2]. Siamo quotidianamente impegnati a livello internazionale nella risoluzione di questi problemi, guardando anche alle loro applicazioni nel campo biomedico e della salute. Il controllo del comportamento multi-agente, applicato a popolazioni cellulari, può essere la chiave per sviluppare terapie personalizzate in cui cellule opportunamente ingegnerizzate e controllate diventino in grado di trasportare e rilasciare in situ farmaci antitumorali o di ristabilire il corretto funzionamento di organi e tessuti cellulari deteriorati o danneggiati.
Grazie allo sforzo congiunto di numerosi ricercatori questo obiettivo è sempre più vicino. Esistono già diversi metodi per risolvere almeno in principio alcuni di questi problemi ma il gap tra le proprietà di flessibilità, auto-organizzazione e resilienza dei sistemi complessi in Natura e quelli artificiali è ancora enorme.
Per rispondere a queste sfide è essenziale la convergenza interdisciplinare di più approcci che veda l’Ingegneria del Controllo incorporare metodi dell’Informatica e del Machine Learning, e anche della Meccanica Statistica, della Fisica e delle Scienze Sociali per sviluppare sistemi multi-agente che siano veramente autonomi e in grado di riconfigurarsi per affrontare le sfide del futuro.
___________________________________________________________
BIBLIOGRAFIA
[1] Nature, 12 May 2011
[2] https://sites.google.com/site/dibernardogroup/home