Università di Napoli Federico II

Transcript

Università di Napoli Federico II
Università di Napoli Federico II
Corso di Laurea in
Ingegneria Dell’Automazione
Dipartimento di Informatica e Sistemistica
Algoritmi per il coordinamento
decentralizzato di flotte di micro-velivoli in
missioni di monitoraggio nel post-evento
catastrofico
Relatore
Candidato
Ch.mo Prof. Ing. Bruno Siciliano
Fabrizio Schiano
Università di Napoli Federico II
Matr. 533 000 388
[email protected]
[email protected]
Correlatore
Ing. Giuseppe Persechino
CIRA (Centro Italiano Ricerche Aerospaziali)
[email protected]
Anno Accademico 2008-2009
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
2
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Alla mia Famiglia e a Ida
3
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Ringraziamenti
Dal punto di vista didattico, probabilmente, questa è la parte meno importante
della Tesi di Laurea, ma io dentro di me sento il dovere e la volontà di
ringraziare le persone che hanno reso possibile con il loro appoggio, il loro
incoraggiamento e i loro consigli, sia etici sia professionali, il raggiungimento di
questo traguardo, per me di un’importanza incommensurabile.
Mio padre, mia mamma e mio fratello sono senza ombra di dubbio le persone
più importanti della mia vita, sono loro che fino ad oggi hanno creduto in me
ogni secondo, senza smettere mai, ed è grazie soprattutto a loro che sono
giunto al termine di questo percorso, che per me significa molto, ma penso che
per loro significhi ancora di più. Sì, è vero che per dei genitori vedere un figlio
laureato sia una gioia immensa, ma io voglio cogliere l’occasione per fargli
capire che non devono essere felici solo per questo … loro sono e saranno per
sempre i punti fermi della mia vita, ed è principalmente grazie a loro se io ho
maturato questa grande passione per la Scienza. Sono loro le persone che mi
hanno fatto capire una cosa fondamentale: “con la forza di volontà si arriva
dove si vuole”. Io sono arrivato fin qui, lontano o meno che sia, ma la cosa
fondamentale è che ci sono arrivato felice, sì indubbiamente con dei sacrifici,
piccoli o grandi che si vogliano considerare, ma senza perdere mai la felicità nel
fare una cosa che mi attrae davvero tanto.
Una parola in più per mio padre la voglio spendere, in quanto oltre all’appoggio
umano, fondamentale, me ne ha dato anche uno professionale, con consigli di
ogni genere che mi hanno aiutato davvero nel superare esami e difficoltà, nel
confrontarmi con i docenti e avvicinarmi sempre più al mondo, bello,
4
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
dell’Ingegneria. Ribadisco che probabilmente senza di lui non sarei qui, e sarà
per sempre, per me, il più grande esempio da seguire, in tutto e per tutto.
Un’altra persona che pian piano sta diventando sempre più importante e
insostituibile nella mia vita e che devo ringraziare, per il sostegno che mi ha
fornito e mi fornisce giorno per giorno è la mia fidanzata, Ida. In questi anni
anche grazie a lei sono riuscito ad andare avanti e a non arrendermi anche nelle
situazioni più difficili, è lei che mi sopporta ogni giorno, e che come i miei
genitori, mi ha appoggiato in quasi tutte le mie scelte, credendo sempre in me,
e rendendomi il “bersaglio”, consapevole e orgoglioso, del suo amore
incondizionato e sincero.
Ci vorrebbe una pagina intera per ringraziare tutti i miei amici, universitari e
non, e per non dimenticare nessuno ho deciso di non scrivere i loro nomi,
sapendo che tanto le persone per me importanti sono a conoscenza della
grande stima che nutro nei loro confronti. Vi ringrazio davvero di cuore, avete
reso questo mio piccolo percorso davvero gioioso.
Un grazie particolare va al mio tutor, Pino Persechino, che mi ha supportato
nella stesura di questa tesi fornendomi ogni giorno materiale nuovo, e nuovi
spunti, da cui apprendere e da cui imparare tantissime cose, che a volte mi
hanno fatto venire curiosità che andavano anche oltre quello che dovevo
scrivere. Ti sono grato, perché hai alimentato ancora di più la mia passione per
quello che studio, facendomi capire ancora una volta che teoria e pratica sono
strettamente collegate e quindi, come direbbe Leonardo Da Vinci : “Studia
prima la scienza e poi seguita la pratica nata da essa scienza. Quelli che
s'innamorano della pratica senza scienza, sono come i nocchieri che entrano
nella nave senza timone o bussola.”
5
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Ringrazio infine il mio professore, Bruno Siciliano, per avermi consentito, con la
sua approvazione, di intraprendere un percorso di studio che mi ha
appassionato davvero molto, manifestandomi inoltre una continua disponibilità
durante tutto il periodo di svolgimento della Tesi.
A tutti voi, con immenso rispetto e grande stima, vanno i miei più sentiti
ringraziamenti.
Pozzuoli (NA), Italia
11 Maggio 2010
Fabrizio Schiano
6
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Sommario
In questa tesi si vuole analizzare il problema del coordinamento di una flotta di
micro-velivoli senza pilota (SUAS1) impiegati in missioni di monitoraggio.
Tali sistemi possono essere utilizzati per svariate applicazioni civili. Tra queste
quelle più promettenti riguardano il monitoraggio a fini di sicurezza e ordine
pubblico e il monitoraggio ambientale, in questi settori le applicazioni sono
ancora a livello prototipale e di ricerca, mentre l’ uso di tali sistemi in ambito
militare è ormai consolidato e in continua crescita.
In particolare in questo lavoro di tesi si è scelto di analizzare le possibili
applicazioni di flotte di SUAS alla gestione del post-evento catastrofico di un
terremoto, prendendo come caso di studio specifico la calamità che ha colpito la
regione Abruzzo ed in particolare la città dell’ Aquila.
Il sisma ha avuto come scossa principale quella del 6 Aprile 2009 alle ore 3:32
con intensità pari a 5,8 della scala Richter e 6,3 nella scala di magnitudo del
momento sismico(Mw).
Il bilancio delle vittime di questo terremoto è stato di 308 morti, mentre il
numero di feriti è stato di 1500 ca., inoltre ci sono stati ingenti danni al
patrimonio immobiliare ed artistico.
L’utilizzo dei sistemi sopraindicati, dotati di specifici sensori, ha come scopo il
miglioramento della gestione del post-evento in modo da ridurre il numero di
vittime. L’innovazione richiesta riguarda principalmente un aumento della
consapevolezza dello scenario di danno utile a dare risposte più veloci ed
accurate da parte delle forze di soccorso e al tempo stesso a ridurre i fattori di
rischio per gli addetti alle missioni di recupero.
1
Small Unmanned Aerial Systems: è un neologismo che si sta sostituendo al termine “Micro Air Vehicle
(MAV)”, per mettere in evidenza che quello di cui si parla non è semplicemente un veicolo, ma un vero e
proprio sistema, inteso come un’unità che può analizzare dei dati, memorizzarli, gestirli, prendere
decisioni e comunicare con altri tipi di sistemi. I SUAS sono delle piattaforme che pesano da 0 a 25 Kg.
7
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
La tesi è organizzata come segue:
Capitolo 1
In questo capitolo viene inquadrato il problema relativo alla gestione del post
evento catastrofico.
La soluzione proposta prevede l’utilizzo di flotte di micro-veicoli cooperanti ed è
applicabile al monitoraggio e alla gestione di eventi catastrofici legati a
differenti cause:
naturali: sismiche, idrogeologiche, vulcaniche ecc.
antropiche: attentati, disastri ambientali, incendi ecc.
Quanto proposto riesce a coniugare una forte riduzione nei costi, rispetto ai
sistemi attualmente impiegati, con un livello di performance molto elevato, si
caratterizza inoltre per una elevata velocità operativa ed elevati livelli di
sicurezza, grazie alle dimensioni ridotte delle piattaforme utilizzate.
Per dare forza pragmatica alla nostra analisi si è scelto di utilizzare come caso di
studio lo scenario relativo al terremoto dell’Aquila. In questo capitolo vengono
da prima identificati i requisiti di missione per poi passare alla definizione delle
tipologie di sensori e delle piattaforme necessarie al monitoraggio del centro
della città dell’Aquila che si sviluppa su di un area di circa 2km per 2km.
La distribuzione, individuata, di sensori di tipo diverso installati su più
piattaforme cooperanti è, di fatto, una strategia vincente in missioni con le
dimensioni di scenario come quelle identificate.
Emerge, però, come conseguenza la necessità di utilizzare algoritmi di controllo
decentralizzato delle piattaforme in grado di rendere robusto e scalabile il
sistema.
Capitolo 2
L’esigenza di controllo decentralizzato delle piattaforme aeree emersa nel
precedente capitolo ci porta ad analizzare come possibile soluzione algoritmi di
Swarm Intelligence oggetto di questo capitolo.
8
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Si approfondisce il legame fondamentale, che c’è tra la Natura e i concetti propri
della Swarm Intelligence. Quindi si passa poi ad illustrare due concetti
fondamentali:
Decentralizzazione
Stigmergia
propri della Swarm intelligence.
La modellazione software di algoritmi Swarm attinge proficuamente alle
tecniche proprie dei sistemi multi-agente. In tali sistemi infatti gli “agenti”
mappano direttamente i componenti della swarm intelligence (es. insetti) e
consentono di modellare agevolmente le loro relazioni. I paradigmi di tipo
Swarm implementati con tecniche multi-agente che verranno analizzati nel
seguito della trattazione sono :
Polyagents
Ant-Colony-Optimization (ACO)
Ideati rispettivamente da H. Van Dyke Parunak e Marco Dorigo. Di questi
paradigmi verranno esaminati gli algoritmi fondamentali, mettendone in luce
vantaggi e svantaggi e le differenze tra i due approcci.
Capitolo 3
Come visto nel precedente capitolo per implementare algoritmi Swarm risulta
necessario utilizzare tecniche multi-agente. Questo capitolo vuole soffermarsi
sullo stato dell’ arte delle piattaforme di simulazione e sviluppo per tali sistemi
oggi disponibili come Open Source.
L’analisi ha riguardato le seguenti piattaforme:
NetLogo
MASON
Swarm (Java version)
Swarm (Objective-C version)
Repast
9
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Dopo questa analisi, si sono individuati i punti di forza e quelli di debolezza delle
piattaforme elencate. Inoltre si presenta il lavoro di standardizzazione, molto
importante, che viene svolto dalla FIPA, un’organizzazione di standard della IEEE
Computer Society che promuove la tecnologia agent-based e l’interoperabilità
dei suoi standard con altre tecnologie.
Capitolo 4: In questa ultima parte della Tesi sono riportate alcune
considerazioni conclusive sul lavoro svolto e in particolare sulla differenza
concettuale tra il paradigma proposto da Parunak (Polyagent) e quello proposto
da Dorigo (Ant-Colony-Optimization). Inoltre si presenta un elenco di priorità
relativo allo sviluppo di piattaforme software multi-agente.
10
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Indice dettagliato
Capitolo 1
Analisi del Problema .............................. 14
1.1 Introduzione ....................................................................... 14
1.2 Il sistema attuale di gestione del post-evento sismico....... 15
1.3 Un possibile utilizzo di piattaforme aerospaziali e terrestri per
la gestione del Post-Evento ......................................................... 18
1.4 I componenti del sistema ...................................................... 25
1.4.1
Sensori ............................................................................................26
1.4.2
Piattaforme ....................................................................................29
1.5 Problemi connessi al controllo di flotte di velivoli ................ 34
1.5.1 Sorveglianza aerea e inseguimento...................................................34
1.5.2 Elusione degli ostacoli e delle collisioni ............................................34
1.5.3 Riconfigurazione della formazione ....................................................35
1.5.4 Hardware e comunicazione ...............................................................35
Capitolo 2
Algoritmi di swarm intelligence ............. 36
2.1 Introduzione .......................................................................... 36
2.2 Dalla Natura alla Swarm Intelligence .................................... 36
2.3 Esempi di Swarm Intelligence in Natura ................................ 42
11
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
2.3.1 Flocking (comportamento di uno stormo di uccelli o di un banco di
pesci) ...........................................................................................................44
2.3.2 Accerchiamento della preda ..............................................................44
2.3.3 Comportamento delle formiche ........................................................45
2.4 Formalizzazione del concetto di decentralizzazione ............. 48
2.5 Campo a potenziale e feromoni digitali ................................ 52
2.6 Il paradigma Polyagent .......................................................... 54
2.6.1 Descrizioni degli algoritmi .................................................................60
2.6.1.1 Algoritmo di sorveglianza e pattugliamento ............................... 60
2.6.1.2 Algoritmo di acquisizione dell’obiettivo ...................................... 62
2.6.1.3 Algoritmo di inseguimento dell’obiettivo .................................... 63
2.7 Il paradigma Ant-Colony-Optimization (ACO) ....................... 64
2.7.1 Gli algoritmi di Ant Colony Optimization più importanti ..................69
2.7.1.1 Ant system(AS) ............................................................................. 69
2.7.1.2 Elitist Ant System(EAS)................................................................. 72
2.7.1.3 Rank-Based Ant System ............................................................... 73
2.7.1.4
AS...................................................................... 73
2.7.1.5 Ant Colony System ....................................................................... 75
2.8 Differenze tra Polyagent e Ant Colony Optimization ............ 77
Capitolo 3
Piattaforme per lo sviluppo di applicazioni
multi-agente .......................................... 80
3.1 Introduzione .......................................................................... 80
3.2 Dalla tecnologia agent-based ai MAS (Multi-Agent-System) 82
3.3 Specifiche FIPA....................................................................... 86
3.4 Le piattaforme software per modelli Agent-Based ............... 87
12
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
3.4.1 NetLogo ..............................................................................................87
3.4.2 SWARM (Objective-C & Java versions) ..............................................91
3.4.3 Repast .................................................................................................95
3.4.4 MASON ...............................................................................................98
3.5 Qual è la piattaforma migliore?........................................... 102
Capitolo 4
Conclusioni .......................................... 107
Bibliografia .......................................... 111
13
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Capitolo 1
Analisi del Problema
1.1 Introduzione
In questi anni tra i temi di crescente interesse nel settore dell’automazione e
dell’elettronica in generale, vi è sicuramente il controllo di flotte di veicoli
unmanned cooperanti, sia volanti (UAS: Unmanned Aerial Systems), sia terrestri
(UGV: Unmanned Ground Systems).
Le applicazioni di questi sistemi sono svariate: in questa tesi si andrà ad
approfondire l’utilizzo nel settore del monitoraggio ambientale e nella gestione
del post-evento catastrofico, che sono ritenuti tra i fattori trainanti dello
sviluppo socio-economico e che sono quindi tra i temi di interesse prioritario dei
programmi internazionali, UE e nazionali, di ricerca.
In Europa l’avvio del programma GMES (Global Monitoring for Environment and
Security), e nell’ambito dell’UE FP7, di uno specifico programma dedicato alla
sicurezza sono solo alcuni esempi di tale interesse.
Tra gli eventi, generati da cause naturali ed antropiche, che traggono maggior
vantaggio dall’utilizzo cooperativo dei suddetti sistemi aerospaziali e terrestri
per le attività di monitoraggio e gestione vi sono:
Terremoti
Eruzioni vulcaniche
Frane ed alluvioni
Incendi
Attentati terroristici
Disastri ambientali
14
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Come già detto nelle pagine precedenti l’applicazione specifica da cui si partirà
in questa lavoro di tesi è quella del recente evento sismico che ha colpito
l’Abruzzo. In questo primo capitolo si effettuerà una analisi di fattibilità per
l’integrazione di un sistema per il monitoraggio aereo nella gestione del postevento sismico e vulcanico. Inoltre verrà inglobata nella analisi di fattibilità
un’ipotesi di scelta delle migliori tecnologie per lo scopo richiesto, ovvero
l’analisi delle piattaforme (terrestri ed aeree) e i relativi sensori ed attuatori.
1.2 Il sistema attuale di gestione del post-evento
sismico
Le strategie per la gestione del rischio possono consistere in:
Mitigazione del rischio attraverso la riduzione della vulnerabilità e/o
dell’esposizione;
Risposta rapida per la gestione dell’emergenza nel post-evento.
Quanto prima avviene la fase di gestione del Post-Evento, da parte delle
autorità competenti, tanto più si potrà essere efficaci nel salvare le vittime.
L’utilizzo di flotte di velivoli cooperanti si può applicare sia al monitoraggio per
Early Warning che alla gestione del post evento. In tale senso il sistema di Early
Warning può essere visto proprio come un anticipatore di Post-Evento.
Un piano di emergenza, in caso di post evento catastrofico sismico o vulcanico,
predispone un sistema articolato di attivazione di uomini e mezzi, organizzati
secondo un quadro logico e temporalmente coordinato, che costituisce il
modello di intervento atto al soccorso delle popolazioni.
La base conoscitiva per il dimensionamento delle risorse da mettere in campo è
costituita dagli scenari di danno. È evidente che quanto prima viene aggiornata
la conoscenza dello scenario di danno, tanto più sarà possibile salvare vite
umane.
Gli attuali strumenti di previsione del possibile danneggiamento e del
conseguente coinvolgimento della popolazione si basano principalmente su
informazioni statiche e pregresse come la densità abitativa e la tipologia di
15
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
edifici presenti nell’area geografica in esame. Tali informazioni rappresentano
solo un orientamento indicativo rispetto alla reale distribuzione delle vittime.
Gli scenari di danno delle fasi iniziali dell’evento catastrofico possono essere
previsti intersecando i dati territoriali di esposizione e vulnerabilità (noti) con i
dati relativi all’evento accaduto. Anche in questo caso i dati acquisiti sul campo
sono di fondamentale importanza per aggiornare tali previsioni.
La conoscenza dello scenario di danno permetterebbe di ottenere un quadro
territoriale dell’area coinvolta dall’evento fornendo, quindi, informazioni quali la
localizzazione e l’estensione dell’area maggiormente colpita, la funzionalità
delle reti dei trasporti, delle vie di comunicazione e delle linee di distribuzione,
oltre che le perdite attese in termini di vite umane, feriti, senza tetto, edifici
crollati e danneggiati ed il corrispondente danno economico. Questi dati sono di
fondamentale importanza nelle attività di pianificazione e di gestione
dell’emergenza da parte della Protezione civile.
Nell’emergenza, quindi, gli scenari di danno forniscono una descrizione
immediata dell’evento reale e del suo impatto sul territorio e sulla popolazione
e permettono di organizzare adeguatamente i soccorsi.
In caso di un terremoto, di magnitudo del momento sismico pari a 5 o superiore,
l’Istituto Nazionale di Geofisica e Vulcanologia trasmette ai dipartimenti
interessati i parametri focali (magnitudo e coordinate) dell’evento, attivando
una procedura automatica per la generazione del rapporto che viene reso
disponibile entro 10 minuti dall’evento. Il rapporto contiene dati, mappe e
informazioni relativi a tutti i comuni compresi in un raggio di 100 km intorno
all’epicentro e in particolare:
descrizione del territorio: aspetti antropici, fisici e amministrativi;
caratteristiche degli edifici e delle infrastrutture; reti di monitoraggio sismico;
pericolosità: zone sismogenetiche, terremoti storici, zone che hanno
riportato gli stessi danni, attenuazione del moto del terreno;
vulnerabilità: patrimonio edilizio, scuole, ospedali, rete stradale e
ferroviaria;
16
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
esposizione: caratteristiche e distribuzione della popolazione residente in
ciascuna sezione censuaria;
valutazione preliminare dei danni e delle perdite: abitazioni danneggiate e
inagibili, stima dei morti e feriti, stima del danno economico.
Nei giorni immediatamente successivi ad un evento sismico, le valutazioni degli
effetti del terremoto continuano attraverso azioni sul campo diversificate e
finalizzate a determinare l’intensità macrosismica in ogni centro abitato e gli
effetti geologici e idrogeologici (frane, fagliazioni superficiali, ecc.) e ad
effettuare un’azione di monitoraggio di dettaglio del terreno e delle strutture
delle scosse successive, mediante strumentazioni mobili.
Le procedure operative di allarme di solito possono essere divise in 3 fasi:
La prima fase prevede l’acquisizione dei dati utili a definire i limiti dell’area
colpita dall’evento, l’entità dei danni, le conseguenze sulla popolazione, sulle
attività produttive, sulle funzionalità dei servizi a rete, gli interventi tecnici di
urgenza, quelli atti a salvaguardare la popolazione colpita, ed il ripristino della
funzionalità del sistema urbano.
La raccolta dei dati è affidata alle funzioni interessate, le informazioni sono poi
vagliate dall’organo decisionale ed inviate al dipartimento della Protezione
civile, alla Regione, alla provincia ed alla prefettura.
La seconda fase è relativa alla valutazione dell’evento in modo da configurare in
maniera più precisa le dimensioni e le conseguenze immediate indotte dal
fenomeno, l’entità delle risorse e dei mezzi da mobilitare.
La terza fase è relativa all’adozione dei provvedimenti del caso:
Verifica delle funzionalità delle aree di emergenza e delle strutture ricettive
e loro attivazione
Invio di squadre di soccorso nelle aree dove è concentrata la popolazione
Attivazione evacuazione, assistenza, invio risorse, materiali e mezzi.
17
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
1.3 Un possibile utilizzo di piattaforme aerospaziali e
terrestri per la gestione del Post-Evento
Un approccio innovativo per la gestione del post-evento sismico e vulcanico
potrebbe prevedere lo sviluppo di un sistema che integri innovative piattaforme
aeronautiche, innovative piattaforme terrestri e specifici sensori con il sistema
di gestione del post evento. Tale sistema permetterebbe di monitorare in
maniera dinamica i luoghi dove e’ avvenuto l’evento e quindi di verificare e
aggiornare le mappe di scenario di danno nel post evento in modo rigoroso ed
efficiente.
Ad oggi l’utilizzo di piattaforme aeree per la gestione del post evento e’ limitata
all’utilizzo di aerei ed elicotteri, con equipaggio a bordo, spesso messi a
disposizione dalle forze dell’ordine e dalla Protezione Civile.
La disponibilità di tali mezzi è esigua, visto i loro costi, sia di acquisto che di
gestione operativa, e spesso le informazioni raccolte dai piloti sono inviate a
voce alla centrale non avendo a bordo payload e data link per trasmettere
immagini,
video
e
informazioni
automaticamente a terra.
Le quote operative dei sistemi attuali,
soprattutto aerei, sono elevate e solo gli
elicotteri possono scendere a quote più
basse ma spesso ad alto rischio per il
pilota (si pensi ad esempio all’intervento
durante un’eruzione vulcanica).
Figura 1 : Satellite Landsat5 che fa parte di un
insieme di satelliti che osservano la Terra. I dati
da loro collezionati sono stati usati per oltre 30
anni per studiare l'ambiente, le risorse, e i
cambiamenti naturali e artificiali avvenuti sulla
superficie terrestre.
Anche i sistemi satellitari (vedi fig. 1) sono
utilizzati per avere immagini di vaste aree
colpite da sisma o eruzione vulcanica, ma
la frequenza di aggiornamento di tali
immagini è bassa, tipicamente di alcuni
giorni, nel migliore dei casi 5-10 ore, e
comunque le loro risoluzioni spaziali
(tipicamente 1m) sono molto più basse di
18
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
quelle ottenibili da sensori posti su velivoli da bassa quota (5cm). Inoltre le
piattaforme satellitari, almeno nel visibile e nell’infrarosso, sono fortemente
influenzate dalle condizioni meteorologiche.
Tutti i sistemi appena esposti sono in grado di riprendere principalmente
immagini ortonormali alla loro traiettoria o inclinate di pochi gradi, e
difficilmente possono catturare informazioni presenti su piani diversi
dall’orizzontale come quelli verticali tipici ad esempio delle facciate di palazzi
(vedi fig. 2).
Infine va detto che le piattaforme ad oggi impiegate non sono integrate con un
sistema di gestione del post-evento, lasciando quindi la divulgazione, la
memoria e il coordinamento delle informazioni al solo personale coinvolto nelle
operazioni.
I limiti degli attuali sistemi potrebbero essere quindi superati attraverso una
soluzione basata su un sistema composto da piattaforme SUAS (Small
Unmanned Aerial Systems) e sensori miniaturizzati integrati, a livello logico e di
sistema, con una centrale di elaborazione dati. Altro notevole vantaggio
potrebbe essere ottenuto attraverso un’attività di coordinamento di queste
piattaforme aeree con alcune piattaforme terrestri.
Figura 2 : Conseguenze del sisma su due palazzi di L'Aquila (questo tipo di immagini non possono essere date da
un sistema di monitoraggio satellitare).
Tale soluzione permetterebbe di coniugare una forte riduzione dei costi,
rispetto ai sistemi attualmente impiegati, con un livello di performance molto
elevato, e si caratterizzerebbe per una elevata velocità operativa grazie alle
dimensioni ridotte delle piattaforme utilizzate. Sarebbe inoltre possibile un
collegamento diretto di questi sistemi al sistema di early warning.
19
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Le piattaforme aeree previste e i relativi sensori dovrebbero essere capaci di
acquisire informazioni utili alla:
localizzazione ed estensione reale dell’area colpita;
verifica delle funzionalità delle reti dei trasporti, delle vie di comunicazione
e delle linee di distribuzione;
identificazione reale delle vittime, dei feriti e dei senza tetto;
identificazione reale degli edifici crollati e danneggiati.
Per la gestione del post-evento ciò permetterebbe, già nella fase di early
warning, una attività di costruzione dello scenario di danno a partire da mappe
di fragilità (vulnerabilità) da correlarsi con l’intensità e la posizione
georeferenziata dell’epicentro.
Tali mappe, che costituiscono l’output di un modello previsionale, sarebbero
disponibili entro circa 1 ora a partire dall’inizio dell’evento catastrofico.
Figura 3 : Terremoto di L'Aquila, ipotesi di scenario di danno.
20
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Lo scenario così calcolato potrebbe essere reso disponibile per la consultazione
attraverso un geographical information system (GIS)2.
La definizione delle traiettorie di missione delle piattaforme aeree potrebbe
realizzarsi utilizzando i modelli di scenario di danno pre-calcolati nelle fase di
early warning in modo da ottimizzarne le risorse. In questo modo infatti le
piattaforme aeree previste, si porterebbero nel più breve tempo possibile in
prossimità delle aree probabilmente più colpite, realizzando specifiche
traiettorie di volo in grado di massimizzare la copertura del territorio con i
sensori trasportati nel minor tempo possibile.
Tali piattaforme aeree potrebbero essere rese operative direttamente dal
sistema di early warning, sia perché immediatamente trasportate in loco da
specifici mezzi di soccorso, sia perche già presenti sul territorio, ad esempio a
disposizione dell’unità della protezione civile del luogo colpito.
Funzionale all’acquisizione delle informazioni, in questo scenario, sono i sensori
elettro-ottici in grado di riprendere sia immagini fisse che in movimento, ad alta
risoluzione, dello scenario osservato.
Le immagini opportunamente georeferenziate ed ortorettificate andranno ad
essere correlate ai dati generati dalla previsione e visualizzate all’interno del
GIS, fornendo così alle autorità preposte uno strumento per la
verifica/aggiornamento dello scenario di danno.
Affiancati ai sensori elettro-ottici, si potrebbero impiegare avanzati sensori
radiometrici in grado di rilevare i campi di temperatura dello scenario osservato
e quindi utili:
nella visione notturna;
a rilevare la presenza di persone;
a rilevare focolai di incendio;
alle verifiche strutturali degli edifici danneggiati.
2
Un GIS è un sistema informativo computerizzato che permette l'acquisizione, la registrazione, l'analisi,
la visualizzazione e la restituzione di informazioni derivanti da dati geografici (geo-riferiti).
21
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Relativamente alla misura della morfologia del terreno e alle verifiche strutturali
degli edifici danneggiati si potrebbe impiegare uno specifico sensore laser
scanner in grado di misurare con accuratezza dati geometrici.
La scelta dei sensori (COTS3) sopra elencati dovrà essere effettuata
considerando la loro installazione su piattaforme di piccole dimensioni (SUAS).
Le piattaforme aeree da utilizzare dovrebbero essere, infatti, della classe
“Small” UAS. Tali piattaforme hanno specifiche peculiarità che le renderebbero
particolarmente adatte alle missioni descritte:
La prevalenza in queste missioni di scenari urbani impone mezzi in grado di
muoversi con agilità in spazi ristretti a bassa quota, dove UAV standard non
potrebbero operare.
Le dimensioni delle aree da monitorare sono relativamente estese (ad
esempio per quanto riguarda il terremoto di L’Aquila, il centro storico è di 2Km x
2Km ca.) quindi le autonomie di volo sono compatibili con le missioni previste.
In generale per questo tipo di applicazioni i budget disponibili sono limitati e i
SUAS sono relativamente economici sia nell’acquisto che nella gestione, ancora
di più se usano payload COTS.
Considerando che le missioni si svolgono in prossimità del suolo e in aree
densamente abitate sono richiesti alti livelli di sicurezza. La bassa energia
cinetica dovuta al basso peso e alle basse velocità di questi velivoli li rende
intrinsecamente più sicuri di velivoli standard.
Considerata la loro relativa semplicità tecnologica ad oggi sono disponibili sul
mercato numerosi prodotti sia ad ala fissa che ad ala rotante a basso costo, utili
alla sperimentazione di nuove tecnologie a livello di sistema.
Relativamente alle piattaforme terrestri anche queste potrebbe essere
individuata nella classe “Small” per permettere di esplorare anche spazi ristretti
3
Commercial Off-the-Shelf component, si riferisce a componenti hardware e software disponibili sul
mercato per l'acquisto da parte di aziende di sviluppo interessate a utilizzarli nei loro progetti. L'uso di
componenti COTS hardware rappresenta una possibilità consolidata; la stessa espressione "COTS"
applicata al software viene usata per riferirsi a un obiettivo (forse il principale) dell'ingegneria del
software come disciplina: arrivare a sviluppare gli strumenti tecnologici, concettuali e pragmatici
necessari per creare un mercato dei componenti reale.
22
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
come anfratti, cunicoli, interni di abitazioni ecc., dove le piattaforme volanti non
potrebbero accedere.
Anche se il sistema proposto ha uno scopo solo dimostrativo, per il suo
dimensionamento ci si è posti come requisito di missione, come già accennato
in precedenza, quello di poter monitorare una zona di 2Km x 2Km, ovvero con
un’estensione circa uguale a quella del centro storico di L’Aquila.
Figura 4 : schema funzionale del sistema proposto
Di seguito è riportata una possibile descrizione delle probabili fasi della missione
di monitoraggio aereo e i relativi requisiti necessari al dimensionamento del
sistema proposto; si è supposto di dividere la missione in quattro fasi salienti:
1.
La prima fase dovrebbe essere finalizzata ad ottenere un rapido
aggiornamento, in circa 30 minuti, dei dati satellitari ante-evento con nuove
informazioni provenienti dai sensori elettro-ottici e infrarosso posti sui Micro
UAV, con una risoluzione, nel visibile, di circa 4 cm per pixel e di circa 30 cm per
pixel nell’infrarosso. L’output sarà costituito da una sequenza di immagini orto-
23
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
rettificate e geo-referenziate, utili ad aggiornare le mappe di scenario
predeterminate, che saranno rese disponibili, per la visualizzazione, nel
software GIS.
Oltre alle immagini riprese in modalità ortonormale, il sistema dovrebbe poter
contemplare la possibilità di fornire, per un numero fissato di luoghi (ad
esempio 8) definiti dall’utente (ad esempio: piazze, incroci viabilità, ecc),
immagini panoramiche con punto di vista orizzontale, che coprano un campo di
vista di 360 gradi rispetto al velivolo. Tali immagini potranno essere visualizzate
in opportuni visualizzatori (es. QuickTime-VR4).
Figura 5 : Altre immagini di L'Aquila
2.
La seconda fase della missione dovrebbe avere come fine quello di
posizionare i sensori rispetto a una serie di target da monitorare nel tempo,
definiti dall’utente. Il velivolo si porterà in prossimità del target e atterrerà,
compatibilmente con il punto di vista desiderato, o vi stazionerà in hovering.
Per il dimensionamento del sistema si dovrà considerare ad esempio che tale
acquisizione dovrà essere eseguita per 6 target diversi per un tempo di 10
minuti massimo ciascuno e con campo di vista che può essere sia ortonormale al
terreno che orizzontale rispetto al terreno. L’output dei sensori dovrà essere
una sequenza video geo-referenziata. La risoluzione opportuna sarebbe quella
di un quadro PAL5 da visualizzare in tempo reale a terra, e di un quadro full HD
da salvare a bordo e visualizzabile a terra off-line.
4
QuickTime VR (virtual reality), anche conosciuto come QTVR è un formato di file immagine supportato
da QuickTime della Apple. Esso permette la creazione e visualizzazione di panorami catturati
fotograficamente e l’esplorazione di oggetti attraverso le immagini perse da diversi angoli di
prospettiva.
5
Il PAL (acronimo dell'inglese Phase Alternating Line) è un metodo di codifica del colore utilizzato nella
televisione analogica, usato da gran parte del mondo. Fanno eccezione il continente americano, alcune
nazioni dell'est asiatico, parte del Medio Oriente, dell'Europa orientale e la Francia.Il termine "PAL" è
spesso usato informalmente per riferirsi al formato video analogico a 625 linee/50 Hz (576i, comune nei
paesi europei), così come il termine "NTSC" indica spesso il formato a 525 linee/60 Hz (480i), usato in
Nord America e in Giappone.
24
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Per alcuni dei target identificati andrà trasportato in loco il robot terrestre come
piattaforma di supporto nell’ esplorazione dei luoghi.
3. La terza fase della missione dovrebbe riguardare lo sviluppo di un rilievo
dell’altimetria del terreno e delle costruzioni con una risoluzione in altezza
inferiore a 10cm e con una griglia di risoluzione inferiore a 50cm di lato. Si
considererà utile una copertura relativa ad un’area di 1Km x 1Km, definita
dall’utente, da effettuarsi in circa 30 minuti.
Figura 6 : Esempi di rilievo 3D effettuato con Laser scanner
4.
La quarta fase consisterà nel riprendere da bassa quota (3-4 metri) le
principali strade della città (circa 100Km di strade totali all’Aquila di cui e’
richiesta copertura per il 40%). La ripresa potrà avvenire con una speciale
camera ad obbiettivo sferico che permetterà di riprendere in full HD un video a
360° panoramico (tipo Google Street View). Tale video sarà salvato a bordo a
piena risoluzione per essere consultato off-line opzionalmente potrà essere
inviato in formato PAL a terra.
Tutte le fasi della missione sopra descritte potranno essere svolte sia in una
sequenza temporale che in parallelo, questo dipenderà dal numero di
piattaforme impiegate, dalla loro capacità di payload e dagli algoritmi utilizzati
per la definizione delle traiettorie.
1.4 I componenti del sistema
Di seguito è riportata una analisi delle caratteristiche dei possibili componenti
del sistema necessari a valutare le performance attese dal sistema.
25
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
1.4.1 Sensori: Come già detto, i sensori che sono probabilmente i più indicati
per la missione in esame sono i sensori COTS, i quali saranno scelti in base ad
una analisi dello stato dell’arte relativa ad ogni tipologia di sensore, ai requisiti
di missione, alle necessarie caratteristiche tecniche e al peso.
Le caratteristiche tecniche dei possibili sensori selezionati sono di seguito
elencate:
I sensori elettro-ottici possono essere divisi in due principali categorie
fotografici e video.
I sensori fotografici (Pansonic DMC FX68, Panasonic GF1) in virtù della loro
elevata risoluzione (rispettivamente: 4320 x 3240 pixel a 0.3 Hz e 4000 x 3000
pixel a 0.3 Hz) si fanno preferire, agli altri sensori presenti sul mercato, per la
prima fase della missione: aggiornamento delle mappe di scenario nel visibile.
Entrambe le macchine fotografiche individuate rappresentano il miglior
compromesso tra prestazioni, peso e costi di acquisto.
La DMC FX68, appena presentata al pubblico, ha una risoluzione di 14.1 Mpixel
con un zoom ottico 5x, peso di soli 145gr e ottica Leica stabilizzata POWER
O.I.S., questa nuova tecnologia raddoppia le già ottime performance di
stabilizzazione ottica degli obbiettivi precedenti e la rende particolarmente
adatta alle esigenze esposte in precedenza. Tale macchina permette inoltre di
acquisire sequenze video HD a risoluzione di 720p.
La Panasonic GF1 è una macchina fotografica compatta ad obbiettivo
intercambiabile con sensore Live MOS ad alta sensibilità da 12.1 Mpixel. Le
generose dimensioni del sensore (4/3 di pollice) paragonabile a quello delle più
pesanti reflex, la rendono tra le migliori macchine fotografiche con basso peso
(circa 390 gr. con obiettivo da 20mm). Tale macchina permette inoltre di
acquisire sequenze video HD a risoluzione di 720p.
Riguardo ai sensori video si potrebbe pensare di selezionare due tipi di sensore:
la Point Gray Chameleon e la Sony Bloggie PM5k.
La prima telecamera, con sensore di tipo CCD (Charge Coupled Device) da 1/3 di
pollice e risoluzione di 1296x964, è dotata di collegamento USB e sarà utilizzata
sia per controllare il velivolo che per acquisire video nella seconda fase di
missione.
26
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
La Sony Bloggie PM5k è una telecamera Full HD 1920x1080 che permette di
registrare video panoramici a 360° con una particolare lente aggiuntiva. Le sue
ridottissime dimensioni e il bassissimo peso (solo 130gr) rendono questa
telecamera molto adatta alle installazioni su piattaforme SUAS. Questa
telecamera potrebbe essere utilizzata nella quarta fase della missione.
Relativamente ai sensori a infrarossi potrebbe essere scelto un sensore LWIR
(Long-Wave InfraRed) con sensore bolometrico non raffreddato.
Tale tipologia di sensori operano nella banda che va da 7 a 13μm e rispetto ai
sensori MWIR (Medium-Wave InfraRed), che vanno da 3 a 5μm, offrono
maggiore precisione e dinamica nella determinazione dei campi di temperatura
della scena.
Inoltre, nell’ausilio alla visione, i sistemi LWIR possono vedere attraverso il fumo
o la nebbia grazie al fatto che il range di frequenze elettromagnetiche, cui sono
sensibili questi sensori, e’ molto più basso di quello relativo al visibile e anche al
MWIR.
Nella visione notturna, poi, permettono di vedere la radiazione emessa dagli
oggetti e quindi di identificare i target anche con totale assenza di luce.
Pochi sono i prodotti COTS con sensori bolometrici disponibili in Core di piccole
dimensioni e peso. Inoltre quelli che ci sono, sono spesso di solo ausilio alla
visione e non misurano temperature, e sono usati per lo più in campi di
applicazione di tipo militare. L’unico sensore in alta definizione, 640x480 pixel a
50Hz, che consente di acquisire una reale matrice di temperature della scena è il
sensore della Thermoteknix modello Miricle 307k. Tale sensore dispone di varie
ottiche e pesa circa 160 gr con ottica 14,95mm. Questo sensore particolare
dispone di un software di acquisizione e calibrazione che permette di salvare
sequenze radiometriche di immagini a 50 fotogrammi al secondo via USB. Tale
sensore potrebbe essere utilizzato nella prima e nella seconda fase della
missione.
Come strumento di misura di altimetria e distanze la scelta potrebbe andare
verso sensori basati su tecnologia Laser, considerando i sensori ad ultrasuoni
molto leggeri ma con poco range operativo. Nella classe dei Laser scanner solo
due sono le aziende che hanno a catalogo prodotti COTS ad uso di applicazioni
robotiche: SICK e HOKUYO. Tra i due prodotti quello SICK ha performance
27
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
superiori ma il prodotto UTM-30LX della HOKUYO ha un peso (circa 370gr) che è
circa un quarto di quello SICK. Tale Laser scanner ha un range di 30m con un
angolo di 270° con una accuratezza di circa 3cm e una frequenza di scansione di
40Hz.
Tutti i sensori sopra elencati hanno bisogno di essere correttamente
georeferenziati e ortonormalizzati affinché i dati possano essere correttamente
correlati ai dati GIS e quindi proiettati nelle mappe di scenario. Tale operazione
per essere effettuata ha bisogno di sistemi di misura di assetto e di posizione del
velivolo durante le riprese. Normalmente anche i velivoli di classe SUAS già
dispongono di tali sensori utili alla loro stabilità e navigazione, tali sensori però
non hanno sempre l’accuratezza necessaria. Si potrebbero sperimentare per ciò
specifici sensori di assetto e posizione ad alta precisione. In questa categoria si
potrebbero prendere in considerazione i seguenti: X-Sens MTI-G relativamente
all’assetto e il sistema Novatel DGPS + GLONASS per le misure di posizione;
quest’ultimo sensore consente di raggiungere la precisone di posizione di soli
2cm in orizzontale e di soli 4 cm in verticale.
Tutti i sensori analizzati finora hanno bisogno, per funzionare e per la fase di
processing e post-processing dei dati acquisiti (compressione, archiviazione,
ecc.), di un computer standard che oltre alle operazioni già elencate deve anche
essere in grado di trasmettere a terra i dati con un Data Link specifico. Questo
Pc dovrebbe appartenere alla classe micro e potrebbe avere, ad esempio, le
seguenti caratteristiche:
Processore ATOM Z530 1.6 GHz
2Gb RAM, CF 16Gb
LAN, 4x USB, 2x RS 232
OS(Sistema Operativo): Linux, Windows XP
Dimensioni 10x7,2 cm
Consumo 8W- a 5V
Peso circa 120 gr
Il PC dovrebbe essere collegato ai microcontrollori delle piattaforme attraverso
una connessione seriale.
Alcuni dei sensori selezionati hanno comunque una autonoma capacità di
storage dei dati che si affiancherà a quella disponibile sul micro PC.
28
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
La distribuzione di payload diversi su più piattaforme interoperabili e cooperanti
è, di fatto, una strategia propria dello scenario proposto ed è strettamente
legata all’approccio scelto che vede l’utilizzo di SUAS come piattaforme. Come
già anticipato precedentemente, infatti, tale approccio si dovrebbe dimostrare
vincente in missioni con le dimensioni di scenario come quelle identificate.
Inoltre l’uso di più piattaforme, introduce un livello di ridondanza dei sensori,
cosa che rende molto robusto il sistema di fronte alla rottura (failure) di una di
esse.
Figura 7 : Esempio di monitoraggio del centro storico di L'Aquila
1.4.2 Piattaforme: Per identificare correttamente dei possibili tipi di
piattaforme da utilizzare e le performance ad essa richieste, sono stati
considerati: i requisiti di missione definiti in precedenza, le specifiche tecniche
dei singoli payload e le relative configurazioni previste nelle varie fasi di
missione.
Le piattaforme SUAS che meglio sposano i requisiti sopra esposti sono le
piattaforme ad ala rotante. Tali piattaforme sono quelle che meglio rispondono
alla necessità di svolgere missioni complesse in environment complessi (fig.8).
Considerando infatti irrinunciabile una capacità di hovering su punto fisso, una
capacità di atterraggio e decollo verticale e una altissima manovrabilità a basse
velocità, le piattaforme ad ala fissa non vengono considerate, pur
29
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
apprezzandone i vantaggi relativi alla loro elevata efficienza. All’interno della
classe di piattaforme ad ala rotante si stanno sempre più affermando i sistemi
multirotore, costituiti da 4 fino a 12 rotori di dimensioni più piccole e contro
rotanti per compensare le coppie di rotazione in yaw6.
Figura 8 : Grafico delle varie piattaforme utilizzate, a seconda della complessità dell'ambiente e della missione
Questi sistemi rispetto ad un elicottero hanno minore efficienza aerodinamica
dovuta alla ridotta dimensione dei rotori utilizzati, ma offrono indubbi vantaggi
per le missioni specifiche del progetto in questione.
I vantaggi di un’architettura multirotore rispetto a un elicottero possono essere
elencati così:
Il peso dei multirotore, in considerazione della loro semplicità
costruttiva, è di circa la metà, a parità di payload trasportato, di quello di
un elicottero. Questo fa sì che la loro minore efficienza aerodinamica
venga recuperata completamente nel bilancio energetico totale.
Relativamente alla sicurezza questi sistemi sono intrinsecamente
molto più sicuri di un elicottero, questo perché il singolo rotore di un
multirotore ha energia cinetica molto più bassa e possono essere
6
Yaw, pitch e roll sono anche conosciuti come gli angoli di Tiat-Bryan, sono una terna specifica di angoli
di Eulero molto usati nelle applicazioni aeronautiche per definire l’orientazione relativa di un veicolo
rispetto a un riferimento fisso. I tre angoli sono definiti come angolo di imbardata (yaw), angolo di rollio
(roll) e angolo di beccheggio (pitch).
30
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
facilmente intubati con una protezione avvolgente impedendo il contatto
delle pale con ostacoli o persone. Questa peculiarità e tanto più
importante quanto più dobbiamo impiegare tali mezzi in scenari urbani
come quello considerato.
Figura 9 : Due tipi di piattaforme ad ala rotante: monorotore (a), quadrirotore (b)
Ogni rotore contribuisce al raggiungimento della portanza
richiesta. Differentemente dall’architettura tradizionale di un elicottero,
il multirotore, grazie alla simmetria e alla contro-rotazione dei rotori, non
ha bisogno di un rotore di coda che assorbe potenza ma non da un
contributo per la portanza (serve solo a bilanciare la coppia generata dal
rotore principale). Inoltre, avendo motorizzazioni elettriche brushless,
che non necessitano di riduttori di velocità meccanici, un multirotore ha
livelli di vibrazione molto più bassi di quelli di un elicottero a beneficio
dell’elettronica e dei sistemi di ripresa.
Le architetture multirotore sono più stabili di un elicottero nei
confronti di perturbazioni esterne (raffiche di vento). La centrifugazione
dei motori, rispetto al baricentro e il loro elevato numero (4-12) fa sì che
le forze di reazione utilizzate per il controllo abbiano dei bracci
considerevoli facilitando il mantenimento della stabilità del mezzo anche
con vento sostenuto in presenza di oscillazioni ad alta frequenza.
E’ stata effettuata un’ approfondita ricerca di mercato sui prodotti disponibili in
questa categoria di mezzi. Esistono principalmente quattro aziende che
producono mezzi con caratteristiche vicine alle nostre esigenze di missione:
Draganfly, Microdrone, ASCTEC, Natural Drones.
Le performance delle piattaforme identificate sono più o meno allineate.
31
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Come performance sicuramente comuni a tutti i prodotti si possono considerare
le seguenti:
Figura 10 : Tabella dati velivolo
Tutti i sistemi multirotore individuati hanno capacità autonome di
stabilizzazione, anche in condizioni di vento sostenuto (10m/s), e possono
navigare per waypoint facendo uso del GPS di bordo. Tutte queste piattaforme,
per compatibilità con le normative vigenti, hanno una interfaccia di tipo Radio
Modellistico che assicura sempre il loro totale e prioritario controllo da parte di
un operatore a terra.
Figura 11 : Alcuni esempi di architetture multirotore: DraganFLY (a), Microdrone (b),
Asctec (c), Natural Drones (d)
32
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Relativamente alla piattaforma terrestre si potrebbe proporre, nello scenario di
studio, l’uso di una piattaforma mobile con sei gambe di tipo esapodo in grado
di trasportare circa 300gr di payload con un peso totale di 1000gr.
Tale tipo di piattaforma ha la peculiarità di potersi muovere indistintamente
nelle 3 direzioni, contrariamente a rover con ruote o cingoli che devono
manovrare per cambiare direzione, rispetto a queste ultime gli esapodi possono
muoversi su qualsiasi tipo di terreno accidentato. Nella famiglia dei robot a più
gambe sono stati scelti gli esapodi perche dotati di un alto margine di stabilità,
che gli consente di muoversi agevolmente anche superando ostacoli di altezza
ragguardevole rispetto alla lunghezza delle loro gambe.
La grande flessibilità di movimento di questi robot porta come svantaggio una
bassa velocità di spostamento se confrontati a rover con ruote o cingoli, ma la
loro dimensione compatta consente a questi robot di introdursi in spazi angusti
e quindi di esplorare luoghi inaccessibili alle piattaforme aeree.
Figura 12 : Piattaforma terrestre scelta
Inoltre nel paradigma di funzionamento del sistema proposto questo robot
potrebbe essere trasportato sul target da un multirotore, superando cosi anche
l’ intrinseca limitazione dovuta alla bassa velocità di spostamento. Ad oggi i
Sistemi COTS disponibili sono autonomi nella gestione dei gradi di liberta del
sistema (18) e utilizzano specifici microcontrollori per camminare e muoversi. I
comandi di navigazione di alto livello possono essere inviati via connessione
seriale al microcontrollore.
33
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
1.5 Problemi connessi al controllo di flotte di velivoli
In base all’estensione dell’area da monitorare, alle performance delle
piattaforme e al dispendio in termini energetici da parte di sensori e attuatori
che compongono il sistema in questione, si è calcolato come necessario un
sistema costituito da almeno tre piattaforme aeree e una terrestre cooperanti.
Questo dimensionamento permette alla flotta di SUAS così composta di
ottemperare alle quattro fasi di missione precedentemente elencate nei tempi
richiesti e con le risoluzioni assegnate. Ad esempio il sistema consentirebbe di
ottenere una copertura totale dell’area individuata in circa 30 minuti (due
missioni da 15 minuti) con risoluzione del pixel nel visibile di circa 3cm e
nell’infrarosso di 36 cm con quote operative comprese tra 150m e 250m.
Le problematiche connesse al coordinamento di un numero N di piattaforme
richiede lo studio e l’implementazione di algoritmi per il controllo
decentralizzato in grado di rendere questa soluzione scalabile e robusta. È
evidente che tali algoritmi dovranno essere flessibili nel prevedere diverse
tipologie di missione così come diverse tipologie di velivoli.
La ricerca sui sistemi multi-vehicle che eseguono compiti cooperativi risale agli
anni ‘80 del XX secolo, inizialmente relativi al campo dei robot mobili. Aiutata
dallo sviluppo dei sistemi di comunicazione wireless, affidabili e poco costosi, la
ricerca in questi campi è notevolmente cresciuta negli anni ‘90. Alla fine degli
anni ‘90 e all’inizio del XXI secolo il controllo cooperativo di aerei, specialmente
senza pilota (UAVs), diventò un’area di ricerca particolarmente attiva negli Stati
Uniti d’America. In ogni caso il comando e il controllo cooperativo di
piattaforme aeree con piattaforme terrestri, porta con se alcune problematiche
che verranno di seguito analizzate:
1.5.1 Sorveglianza aerea e inseguimento : Le maggiori sfide nella “migrazione”
di UAV sono dovute ai vincoli fisici della piattaforma considerata e ai requisiti di
hard real-time delle applicazioni. Normalmente non è possibile caricare le
piattaforme con grandi quantità di hardware, e allo stesso tempo è di
fondamentale importanza processare l’input dei sensori in real-time.
1.5.2 Elusione degli ostacoli e delle collisioni : Evitare gli ostacoli e le collisioni
rappresenta la base di un volo sicuro di un UAV. Questo si può realizzare
34
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
facendo sì che ogni UAV, o è in grado di rilevare gli altri UAV tramite dei sensori,
o con la conoscenza delle loro posizioni. L’elusione degli ostacoli e delle
collisioni sono solitamente incorporati negli algoritmi di volo cooperativo, infatti
un algoritmo di volo può garantire la sicurezza delle piattaforme o attraverso
specifici requisiti delle posizioni relative, o attraverso regole generali che
governano l’interazione degli UAV.
1.5.3 Riconfigurazione della formazione : Quando gli UAV eseguono un compito
cooperativo come gruppo, si può parlare di volo in formazione. Una formazione
specifica può essere vista come una macchina a stati finiti, dove le transizioni tra
le differenti formazioni possono essere innescate da cambi nella missione o
nell’ambiente. Il processo delle transizioni deve riassegnare gli UAV alle
posizioni della nuova formazione e fornire delle traiettorie che leghino le
posizioni iniziali con le nuove. Queste traiettorie dovrebbero garantire la
sicurezza degli UAV, in accordo con le loro dinamiche. Inoltre tutto il movimento
sarà, per la maggior parte di missioni, soggetto a dei vincoli temporali entro i
quali compiere i compiti assegnati.
1.5.4 Hardware e comunicazione : Gli sforzi tecnologici recenti si stanno
concentrando sul ridurre le dimensioni, i costi e il peso dei veicoli senza pilota;
quindi le scelte dei sensori saranno molto legate a questi vincoli.
Una questione irrisolta per la cooperazione di veicoli senza pilota è la
comunicazione wireless tra veicoli e con le piattaforme a terra. Tra i requisiti più
impegnativi c’è sicuramente lo smistamento real-time di informazioni video a
terra, su grandi distanze, possibilmente includendone (soprattutto in ambito
militare) la crittazione per assicurarne la sicurezza.
I problemi appena esposti rappresentano solo alcuni di quelli che si incontrano
nella messa in pratica di questi sistemi. Altre problematiche saranno gli spunti
che ci faranno preferire un sistema con un’organizzazione decentralizzata
rispetto ad uno centralizzato. Esse saranno analizzate nel prossimo capitolo in
modo da poter rappresentare un punto di partenza per lo studio della
decentralizzazione e quindi per l’esposizione della soluzione proposta relativa al
sistema finora descritto.
35
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Capitolo 2
Algoritmi di swarm intelligence
2.1 Introduzione
In questo capitolo andremo ad analizzare i vari paradigmi di Swarm Intelligence
proposti in letteratura, che prendono spunto dai cosiddetti ant colony
algorithms. Per l’analisi di questi algoritmi è conveniente analizzare prima i
concetti di stigmergia e decentralizzazione, i quali si possono vedere come delle
possibili soluzioni ai problemi di controllo e comando cooperativo di
piattaforme aeree e terrestri. Inoltre è bene introdurre i sistemi multi-agente e
alcuni suoi paradigmi Swarm come quello dei polyagents sviluppato da Parunak
e l’ant colony optimization (ACO) sviluppato da Marco Dorigo7.
Dopo queste brevi digressioni, si entrerà nel vivo della descrizione dei vari
algoritmi di swarming esaminati.
2.2 Dalla Natura alla Swarm Intelligence
La Natura è senza dubbio la nostra migliore maestra, è da Lei che la Scienza ha
imparato innumerevoli cose, ed è da Lei che tutt’oggi trae spunto per alcuni dei
suoi passi in avanti. Per fare qualche esempio basta citare i super tecnologici
costumi utilizzati dai nuotatori professionisti che si ispirano alla pelle degli
squali, o le ali del mastodontico Airbus A340 (vedi fig.13) e di molti altri velivoli
che assomigliano molto (in scala espansa) a quelle di un’aquila reale, o ancora il
modo di posizionare le turbine imitando il movimento di alcune specie di pesci.
7
Marco Dorigo (nato il 26 Agosto 1961 a Milano) lavora alla Libera Università di Bruxelles, dove guida
un gruppo internazionale di ricercatori sull’intelligenza artificiale
36
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 13 : Analogia tra l'ala di un'aquila e quella di un Airbus A340
Il paradosso che i comportamenti dei singoli individui potessero generare un
complicato comportamento generale è già conosciuto da secoli. Un antico
osservatore, Re Salomone, venne a conoscenza da suo padre Davide delle
elaborate organizzazioni di corte dei re orientali e delle preparazioni che
servivano per le campagne militari. Egli si meravigliò quando capì che gli insetti
potevano assolvere entrambi questi compiti senza un controllo centrale. In
seguito pensando ai sistemi complessi che servivano per mantenere la sicurezza
nel palazzo reale scrisse (La Bibbia, 1 Cronache 27:25-31), “Go to the Ant…;
consider her ways, and be wise. Having no guide, overseer, or ruler, she
prepares her bread in the summer, and gathers her food at harvest time”,
(“Andate dalla formica, considerate i suoi modi, e siate saggi. Senza avere una
guida, essa prepara il suo sostentamento in estate, e raccoglie il suo cibo nel
tempo del raccolto”).
Quasi tremila anni più tardi, un partecipante nell’NCMS Virtual Enterprise
Workshop nel 1994, disse: “We used to think that bugs were the problem in
manufacturing software. Now we suspect they may be the solution!”,
(Credevamo che gli insetti fossero il problema nel software. Ora noi sospettiamo
che essi potrebbero essere la soluzione).
Anche il concetto di swarm intelligence si ispira alla Natura e più in particolare
alle formiche e a tutti gli animali, insetti, batteri etc. (vedi fig. 14) che sono in
grado di organizzare il loro “lavoro” in modo impeccabile senza disporre di
nessun tipo di tecnologia, ma soltanto di alcune semplici tecniche di cui sono
stati dotati dalla Natura e che hanno affinato nel tempo.
37
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 14 : Tabella con alcuni esempi di Swarming in Natura
H.Van Dyke Parunak8, tra i ricercatori più autorevoli nel campo della swarm
intelligence, e la persona i cui risultati sono stati fondamentali ai fini di questo
lavoro di tesi, definisce lo swarming come: “useful self-organization of multiple
entities through local interactions”, cioè “l’auto-organizzazione utile di entità
multiple attraverso interazioni locali”. Molte altre definizioni di swarming sono
state date nella letteratura, e recentemente questo termine sta entrando in
voga anche nel gergo militare per indicare delle tecniche di combattimento in
cui tutti gli elementi del sistema sono organizzati in modo decentralizzato.
Un concetto molto importante che “permette” di arrivare a quello di swarm
intelligence, è quello di stigmergia introdotto negli anni ’40 e ’50 del XX secolo
dall’entomologo francese Pierre-Paul Grassè. Egli usò per primo il termine
“stigmergia” per descrivere un tipo particolare di comunicazione, utilizzato nei
sistemi decentralizzati, col quale gli individui del sistema comunicano fra loro
modificando l'ambiente circostante. Egli definì la stigmergia come:
"Stimolazione degli operai mediante il risultato ottenuto." Attualmente è anche
impiegato in alcune ricerche nel campo della robotica, dei sistemi multi-agente
e nelle comunicazioni nelle reti di calcolatori. Le due caratteristiche
8
Parunak è il capo di un gruppo chiamato New Vectors (division of TechTeam Government Solutions,
Inc.) dell’Altarum Institute di Miami. I suoi articoli che sono stati utili a questo lavoro di tesi, sono
riportati nella bibliografia.
38
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
fondamentali che differenziano la stigmergia da altre forme di comunicazione
sono:
La stigmergia è una forma di comunicazione mediata dall’ambiente,
indiretta e non simbolica: gli insetti scambiano info modificando
l’ambiente in cui operano.
L’informazione stigmergica è locale: vi possono accedere solo quegli
insetti che visitano il luogo in cui è rilasciata l’informazione.
Come già accennato in precedenza, esempi di stigmergia sono osservabili anche
in natura nelle colonie di formiche, nelle termiti, etc. La stigmergia è dimostrata
anche su internet dove gli utilizzatori comunicano uno con l'altro lasciando
messaggi in un ambiente condiviso. Wikipedia, ad esempio, è un esempio
lampante di stigmergia: il primo utente lascia l'abbozzo di un'idea, che attrae
altri utenti che modificheranno e amplieranno il concetto iniziale giungendo
infine ad un'elaborata struttura di pensieri connessi. I sistemi stigmergici sono
sistemi che combinano la tecnologia informatica con la stigmergia e altre
ingegnose strutture computazionali trovate in natura per creare Web autoorganizzativi e sistemi low-cost di gestione della conoscenza.
Oltre alla stigmergia, un altro concetto congenito della Swarm intelligence, è
quello di decentralizzazione. Infatti se si decide di approcciare a un sistema con
gli algoritmi di Swarm Intelligence, è automatico studiare il sistema come
decentralizzato. Questo non vuol dire che non sarebbe possibile risolvere il
problema di coordinamento di più piattaforme, aeree e terrestri, con un
metodo centralizzato. Infatti proprio relativamente al sistema in questione un
approccio centralizzato andrebbe probabilmente a buon fine, rendendo però
molto complicata la scalabilità del modello trovato, per situazioni diverse da
quella studiata, e in particolar modo per circostanze in cui il numero di
piattaforme debba aumentare notevolmente.
Un semplice esempio può essere fatto pensando che fino all’avvento dei sistemi
time-sharing9 nella prima metà del 1970, sulla maggior parte dei computer
9
Il time-sharing è un approccio all'uso interattivo del processore. L'esecuzione della CPU viene suddivisa
in quanti temporali. Il time-sharing è l'estensione logica della multiprogrammazione. La CPU del
computer centrale viene utilizzata per rispondere alle richieste dei singoli utenti, passando rapidamente
da uno all'altro (context switch) dando così l'impressione ad ognuno di avere a disposizione il computer
39
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
girava una sola applicazione alla volta, spingendo gli ingegneri del software a
concentrarsi su un approccio centralizzato per l’informatizzazione di un
qualunque sistema
Il concetto di centralizzazione non è presente molto spesso nel mondo naturale,
infatti le formiche non hanno un capo, o quanto meno se c’è un individuo più
importante degli altri (e.g. l’ape regina negli alveari), questo non da ordini ma
funziona più o meno come un bus per lo scambio di informazioni tra tutta la
comunità. Ci sono varie ragioni per non progettare un sistema dotato di un
elemento centrale, grande e complicato abbastanza da controllare l’intero
sistema:
La presenza di un elemento centrale sicuramente va a creare un
punto nevralgico del sistema, e questo rende il sistema molto più
vulnerabile a incidenti, di un sistema decentralizzato.
In condizioni di normale funzionamento l’elemento centrale
potrebbe rappresentare il “collo di bottiglia” del sistema, cioè si potrebbe
avere il suo sovraccarico dovuto al fatto che la totalità delle informazioni,
dei messaggi, delle decisioni etc. passano da quest’ultimo.
Anche se è progettato adeguatamente per l’operazione corrente, il
fatto di avere un elemento centrale potrebbe rappresentare un limite per
l’estendibilità del sistema ad altre applicazioni. Ovvero se il sistema
cresce, dovrà crescere anche l’elemento centrale, invece nei sistemi
decentralizzati per far crescere il sistema basta aggiungere nuovi
elementi senza cambiare, in modo sostanziale, nessuno degli elementi
esistenti.
L’elemento centrale potrebbe essere talmente complicato da far
risultare difficile la comprensione e il mantenimento del software che lo
sorreggono. Nei sistemi decentralizzati tutti gli elementi sono
relativamente semplici.
La centralizzazione comporta un ritardo di tempo nelle decisioni,
in quanto ognuna di queste deve essere analizzata dalla parte centrale
del sistema. Questo è inaccettabile in uno scenario che cambia
rapidamente, come ad esempio un campo di battaglia.
centrale interamente per sé ovvero dando l'impressione di un processamento multiplo in parallelo di più
processi verso più utenti.
40
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Un sistema di controllo centralizzato di UAV’s richiede una squadra
di due o tre persone per ogni UAV. Al contrario, il controllo di un sistema
decentralizzato avviene grazie a un’OSI (Operator System Interface, vedi
fig. 15???), ovvero un’interfaccia che è stata sviluppata per analizzare le
tecniche per abilitare un singolo operatore a monitorare e organizzare
una flotta di veicoli senza pilota in applicazioni RSTA 10. Un’interfaccia
utente può fondere i dati dei sensori da tutti gli UAV e presentarli in una
forma comprensibile all’utente, come una mappa delle minacce. In ogni
caso la logica complessiva è generalmente modulare per far sì che sia
possibile la decomposizione del problema di controllo generale.
Una delle cose che si intuisce logicamente da quanto sopra elencato, e che
rappresenta uno dei punti di forza dei sistemi decentralizzati rispetto a quelli
centralizzati, è l’abbattimento dei costi di progetto, manutenzione e
funzionamento.
Bisogna precisare che la definizione di swarming, data da Parunak, riportata
precedentemente, è appropriata per problemi con quattro caratteristiche che
Parunak sintetizza mnemonicamente come D4 : Diversi, Distribuiti,
Decentralizzati e Dinamici. Di seguito è riportata una piccola analisi di questi
quattro aggettivi.
Diversi sta a indicare il fatto che lo swarming porta con sé molte forme di
diversità:
Diverse piattaforme presenti nel sistema;
Con lo swarming si possono assolvere diverse funzioni;
Nello swarming ci possono essere informazioni di diverso tipo
Possono essere presenti diverse entità
Il sistema può prendere le informazioni di cui necessità da diverse
risorse (sensori, da altre unità, etc.)
10
Reconnaissance, Surveillance, and Target Acquisition : Ricognizione, sorveglianza e acquisizione di un
obiettivo
41
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 15 : Un esempio di OSI grafica
L’aggettivo distribuito vuole indicare il fatto che il sistema è suddiviso
equamente su tutta l’area da monitorare.
Il concetto di decentralizzazione è stato esposto in precedenza e verrà
formalizzato, con l’aiuto di alcune definizioni, successivamente.
Infine la caratteristica del sistema di essere dinamico viene dal fatto che
l’ambiente in cui opera il sistema cambia rapidamente, e quindi per riuscire a
monitorarlo in modo accurato c’è bisogno di un sistema che sia in grado di
cambiare rapidamente e adattarsi alle nuove condizioni, imposte istante per
istante dall’ambiente.
2.3 Esempi di Swarm Intelligence in Natura
Prima di andare a formalizzare il concetto di decentralizzazione, si vogliono
analizzare alcuni esempi di Swarm intelligence presenti in natura. Questi esempi
si riferiscono a sistemi in cui un numero di entità semplici (agenti) operano in un
ambiente, dando origine a comportamenti più complessi in quanto collettività;
un comportamento del genere è spesso noto come “comportamento
emergente”.
42
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
I comportamenti complessi non sono proprietà delle singole entità e non
possono essere facilmente riconosciuti o dedotti dal comportamento di entità
del livello più basso. Una delle ragioni per cui si verifica un comportamento
emergente è che il numero di interazioni tra le componenti di un sistema
aumenta combinatoriamente con il numero delle componenti, consentendo il
potenziale emergere di nuovi e più impercettibili tipi di comportamento. D'altro
canto, non è di per sé sufficiente un gran numero di interazioni per determinare
un comportamento emergente, perché molte interazioni potrebbero essere
irrilevanti, oppure annullarsi a vicenda. In alcuni casi, un gran numero di
interazioni può in effetti contrastare l'emergenza di comportamenti
interessanti, creando un forte "rumore di fondo" che può "zittire" ogni segnale
di emergenza; il comportamento emergente potrebbe in questo caso aver
bisogno di essere temporaneamente isolato dalle altre interazioni mentre
raggiunge una massa critica tale da autosostenersi.
Si nota quindi che non è solo il numero di connessioni tra le componenti a
incoraggiare l'emergenza, ma anche l'organizzazione di queste connessioni.
Un'organizzazione gerarchica è un esempio che può generare un
comportamento emergente (una burocrazia può avere un comportamento
diverso da quello degli individui umani al suo interno); ma forse in maniera più
interessante, un comportamento emergente può nascere da strutture
organizzative più decentralizzate, come ad esempio un mercato. In alcuni casi, il
sistema deve raggiungere una certa soglia di combinazione di diversità,
organizzazione e connettività prima che si presenti il comportamento
emergente.
Le strutture emergenti sono schemi non creati da un singolo evento o da una
regola. Non c'è niente che ordini al sistema di formare uno schema, ma le
interazioni di ogni parte con il suo intorno causano un processo complesso che
porta all'ordine. Si potrebbe concludere che le strutture emergenti sono più
della somma delle loro parti, perché l'ordine emergente non si formerà se le
varie parti coesistono solamente: è necessario che interagiscano.
Alcuni esempi biologici di comportamento emergente verranno analizzati nel
seguito:
Pesci e uccelli: Flocking (stormo di uccelli e banco di pesci);
43
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Lupi: Accerchiamento della preda;
Comportamento di una colonia di formiche.
2.3.1 Flocking (comportamento di uno stormo di uccelli o di un banco di pesci):
Gli stormi di uccelli stanno insieme, si coordinano quando devono cambiare
direzione, e evitano le collisioni con gli ostacoli e tra di loro. I banchi di pesci si
comportano in modo simile. Gli esseri umani hanno problemi simili nel controllo
del traffico aereo, nel controllo di convogli di navi ecc., al contrario degli animali
però questi problemi vengono risolti con l’ausilio della comunicazione e di
strutture di coordinazione centrali, tutte cose che non sono disponibili ai pesci e
agli uccelli.
Ogni uccello o pesce segue tre semplici regole (Reynolds 1987, Heppner 1990):
1. Mantiene una specifica distanza minima dall’oggetto o da altri uccelli più
vicini.
2. Uguaglia la velocità con gli uccelli vicini (in grandezza e direzione).
3. Sta vicino al centro dello stormo (banco).
Lo stormo (o il banco) è una struttura auto-vincolante alla quale tutte le azioni
individuali rispondono simultaneamente e cambiano la struttura generale dello
stormo. Sebbene ogni uccello o pesce sente solo i movimenti dei suoi pari più
vicini, le sue reazioni a questi movimenti si propagano alle altre entità della
struttura, in questo modo il sistema, come insieme, esibisce una coordinazione
globale.
2.3.2 Accerchiamento della preda : Un singolo lupo non può uccidere un alce.
Le corna dell’alce rappresentano molto più che un rischio per un singolo
aggressore. L’insieme di lupi deve prima circondare l’alce, cosicché uno di loro
può saltare sulla sua schiena mentre l’alce è occupato con gli altri. Le squadre
SWAT usano la comunicazione radio per eseguire manovre del genere, al
contrario i lupi non dispongono di walkie-talkie e dispositivi di comunicazione a
lunga distanza.
Questo compito, noto nella letteratura come problema predatore-preda
(predator-prey problem), fu per molti anni uno delle maggiori sfide
dell’intelligenza artificiale distribuita (DAI).
44
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Una soluzione semplice a questo problema può essere fornita solo con alcune
rudimentali azioni e sensazioni, sia da parte dell’alce che da parte dei lupi.
Quando queste azioni sono simulate su una griglia esagonale, sei lupi
cattureranno sempre un alce, sempre che l’alce non riesca a correre più veloce
dei lupi (Korf 1992).
Il sistema preda-predatore è legato a questi comportamenti:
1. Alce: si muove nella cella vicina che è la più lontana dal lupo più vicino.
Fin quando il suo tasso di movimento è più veloce di quello dei lupi,
questa strategia gli permetterà di scappare.
2. Lupi: si muovono alla cella vicina con il punteggio P più alto:
con d(alce) la distanza dall’alce e d(lupo) la distanza da un altro lupo, e k
una costante di messa a punto, che modella una forza di repulsione tra i
lupi.
Come nell’esempio dei pesci e degli uccelli, ogni individuo nel sistema lupo-alce
influenza ed è influenzato dall’intero sistema. Il comportamento generale del
sistema dipende criticamente dalle velocità relative dei lupi e dell’alce, e dal
valore del parametro k che stabilisce la repulsione tra i lupi. Quando la
repulsione e l’attrazione sono bilanciate in modo adeguato, i lupi
inevitabilmente accerchiano l’alce, senza nessuna esplicita comunicazione o
negoziazione di strategie.
2.3.3 Comportamento delle formiche : Per spiegare questo comportamento
bisogna passare prima per il concetto di moto Browniano (o cammino casuale),
con il quale si intende un concetto fisico molto semplice che ricorre in molti
campi, dalla biologia alla matematica finanziaria. Senza entrare nei dettagli
tecnici possiamo dire che il movimento di una particella atomica immersa in un
fluido segue un moto assolutamente disordinato la cui dinamica appare
indipendente dalla natura della particella stessa. Applicando il concetto di moto
Browniano alle formiche si è capito che questo moto porta la formica
arbitrariamente vicina a ogni punto del piano. Il moto Browniano è tra i più
semplici processi stocastici a tempo continuo.
45
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 16 : Esempio di Moto Browniano di una particella
Analizzando il comportamento delle formiche, si osserva che esse sono capaci di
trovare il percorso più breve tra il formicaio e un punto del terreno in cui vi sia
del cibo disponibile. L'aspetto interessante e curioso è che sono in grado di farlo
senza informazioni visive (le formiche di molte specie sono infatti cieche), ma
utilizzando segnali "odorosi". Quando una formica ha trovato del cibo, ritorna al
formicaio depositando sul terreno una certa quantità di una sostanza chimica
detta feromone11 (o ferormone). La direzione del cammino di una formica
dipende dalla quantità di feromone che essa percepisce: dove la concentrazione
è più forte, è più probabile che la formica si diriga. Nel tempo le tracce di
feromone sul terreno evaporano ed, eventualmente, sono rinforzate dal
passaggio di altre formiche. Ora entra in gioco un meccanismo molto
importante chiamato retroazione positiva (positive feedback): più formiche
scelgono un percorso, più forte sarà la concentrazione di feromone e quindi
ancora più formiche saranno richiamate sullo stesso percorso. Per questo
motivo, dopo una prima fase transitoria in cui le formiche scelgono direzioni
diverse, si arriva ad una situazione stazionaria in cui la maggior parte delle
11
Feromone: Nome dato a sostanze chimiche, segnali attivi a basse concentrazioni, prodotte ed escrete
in particolar modo da insetti, che sono in grado di suscitare delle reazioni specifiche di tipo fisiologico
e/o comportamentale in altri individui della stessa specie che vengono a contatto con esse.
46
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
formiche segue uno stesso percorso. Siccome il feromone evapora nel tempo, il
percorso più breve sarà quello scelto alla fine dal "sistema formiche".
Osservando la sequenza in fig.17 si può notare che: le formiche sono obbligate a
seguire solo due percorsi alternativi e, dopo un transitorio iniziale, esse
sceglieranno il ramo più corto.
Matematicamente fu osservato dal ricercatore belga S.Goss che le reti costruite
dalle formiche andavano a formare uno spanning tree minimo (MST12), che
minimizza l’energia che le formiche spendono nel portare il cibo al formicaio. La
teoria dei grafi propone vari algoritmi per calcolare gli MST, ma le formiche non
usano gli algoritmi. Al contrario, l’ottima struttura del “sistema formiche” viene
dalle semplici azioni delle singole formiche.
Ogni formica che cerca il cibo segue cinque semplici regole:
1. Evitare ostacoli.
2. Girovagare casualmente, nella direzione di qualche feromone. Se non
percepiscono nessun feromone, le formiche eseguono un moto
Browniano.
3. Se la formica sta trasportando del cibo, essa rilascerà del feromone con
un tasso costante per tutto il cammino.
4. Se la formica si trova vicina al cibo, e non sta trasportando nulla, lo
prende.
5. Se la formica sta trasportando il cibo, e arriva al nido, rilascia il cibo.
Visto che solo le formiche che portano il cibo rilasciano il feromone, e visto che
una formica può prendere il cibo solo da una fonte di cibo, ogni percorso di
feromone porta a una risorsa di cibo. Una volta che una formica che trasporta il
cibo trova la sua “strada di casa”, ci saranno anche dei percorsi di feromone che
portano al formicaio.
12
Nel caso in cui gli archi siano pesati si può definire l' Albero ricoprente minimo, o Minimum spanning
tree (MST). Un MST non e' altro che un albero ricoprente, cioè un albero formato da un sottoinsieme di
archi del grafo originale passanti per tutti i nodi,nel quale sommando i pesi degli archi si ottiene un
valore minimo.
47
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 17 : Sequenza che rappresenta il comportamento delle formiche in risposta alla formazione di un ostacolo
2.4 Formalizzazione del concetto di decentralizzazione
Gli algoritmi descritti in questa tesi appartengono, come già detto, all’area di
ricerca della swarm intelligence appena esposta, però prima di entrare nello
specifico è bene dare alcune definizioni che saranno utili per il seguito della
trattazione.
Un veicolo è un sistema dinamico la cui posizione è data dalla sua locazione
nello spazio tridimensionale. Verrà considerato un insieme di N veicoli che
eseguono un compito comune. I veicoli possono comunicare tra loro
(direttamente o indirettamente) per soddisfare il compito a loro assegnato,
solitamente ogni veicolo può comunicare solo con un sottoinsieme di veicoli. Si
assume che la dinamica del veicolo i-esimo può essere scritta come:
dove è lo stato del veicolo i-esimo e
è l’input che controlla lo stato del
veicolo, ed
è un campo vettoriale liscio (smooth13) che rappresenta le
dinamiche del veicolo i-esimo. La posizione del veicolo i-esimo
che
è l’insieme di configurazioni del corpo rigido (posizione e orientamento). Si
13
Una funzione smooth o liscia è una funzione che ammette le derivate parziali di qualsiasi ordine.
48
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
assumerà inoltre
veicoli.
lo stato completo per un insieme di N
Oltre alla locazione, ogni veicolo è dotato di uno stato discreto,
, che
definiamo come “ruolo” del veicolo. Il ruolo appartiene a un insieme discreto
che dipende dall’applicazione a cui ci si sta riferendo. Si assumerà che il ruolo di
un veicolo può cambiare in ogni momento e scriveremo un cambio di ruolo
come :
con α’ il nuovo valore di α. Si assumerà
tutti gli N veicoli, e
il ruolo del veicolo i all’istante t.
i ruoli dell’insieme di
Come già detto in precedenza, un veicolo può comunicare solo con un certo
insieme di veicoli, si rappresenterà l’insieme di possibili canali di comunicazione
con un grafo . I nodi del grafo rappresentano i veicoli e gli archi diretti tra due
nodi rappresentano l’abilità di un veicolo di ricevere informazioni da un altro
veicolo. Si scriverà
per rappresentare i vicini di i; generalmente
dipende dalla locazione e dal ruolo dei vari veicoli (il numero di vicini di i è
indicato con
.
Dato un insieme di veicoli con stato x e ruoli α, un compito verrà definito in
relazione a una funzione di performance:
con T il tempo in cui il compito dovrebbe terminare, L rappresenta il costo
incrementale del compito e V rappresenta il costo terminale.
Un’altra definizione importante che deve essere data è quella di “strategia” per
un determinato compito, essa è un’assegnazione degli input ui per ogni veicolo e
una selezione dei ruoli. Si assumerà che gli inputs alle dinamiche del veicolo
sono date da leggi di controllo del tipo:
ui= x,
con una funzione smooth. Per la scelta dei ruoli si farà uso di un Guarded
Command Language (GCL) : un programma è un insieme di comandi nella forma
49
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Con
è una “guardia” che può essere vero o falso e
una regola che definisce
i
come il ruolo dovrebbe essere aggiornato se la “guardia” assume il valore
vero. Quindi il ruolo evolve in accordo alla legge di aggiornamento seguente:
Si scriverà
i
per rappresentare la strategia totale per il veicolo i-esimo.
rappresenta la strategia completa del sistema.
Usando le definizioni fin qui esposte, Murray cerca di dare una descrizione più
formale del problema di controllo cooperativo. Il ricercatore del CIT afferma che
un compito può essere disaccoppiato se la funzione di costo può essere scritta
come:
Se un compito non è disaccoppiato si dice che è cooperativo, aggettivo con il
quale si intende che le performances dipendono dalle locazioni comuni, ruoli e
inputs dei veicoli.
Si dice che una strategia è centralizzata se i dipende dalla locazione o dal ruolo
di qualche veicolo che non è un vicino di i. Invece una strategia è decentralizzata
se:
=
con
la locazione e il ruolo dei vicini del veicolo i-esimo.
Dall’articolo di Murray emerge che le definizioni esposte non sono le più
generali possibili in quanto si sono ignorate alcune sottigliezze riguardo alla
definizione formale della soluzione di un compito. Si è assunto infatti l’esistenza
e l’unicità di soluzioni per una strategia data, cosa che non è sempre vera per i
sistemi analizzati.
I sistemi reali che possono fare uso del controllo cooperativo di veicoli multipli
sono svariati, di seguito se ne elencano alcuni:
50
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Sistemi militari (fig.18): volo in formazione, classificazione e sorveglianza
cooperativa, attacco cooperativo e rendezvous, sistemi a iniziativa mista.
Reti di sensori mobili: monitoraggio ambientale, sistemi distribuiti per
l’osservazione.
Sistemi di trasporto: autostrade intelligenti, controllo del traffico aereo.
Figura 18 : Scenario di gestione di un campo di battaglia con un sistema di controllo cooperativo.
Nella letteratura dei sistemi sopraelencati sono presenti varie strategie di
approccio a compiti di controllo cooperativo, che variano a seconda
dell’applicazione a cui si fa riferimento. Per l’applicazione descritta in questa
tesi, sono due le tecniche più importanti a cui si farà riferimento:
Polyagent : tecnica introdotta da H.Van Dyke Parunak.
Ant-Colony-Optimization: tecnica introdotta da Marco Dorigo.
Entrambe le tecniche partono da due concetti fondamentali che verranno
esposti nel seguito della trattazione:
Campo a potenziale
Feromoni digitali
51
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
L’ultimo logicamente prende ispirazione dal comportamento delle formiche
sopra esposto (vedi paragrafo 2.3.3).
2.5 Campo a potenziale e feromoni digitali
I feromoni digitali sono un'estensione dell'uso dei campi a potenziale per
guidare entità robotiche. I sistemi di movimento potential-based sono ispirati
dall'elettrostatica14. Il campo elettrico vettoriale
è definito in un punto
dello spazio come una forza sentita da un'unità di carica in quel punto. Si
definisce un campo a potenziale scalare
integrando questo
campo vettoriale punto per punto nello spazio. Viceversa, il campo può essere
espresso come il gradiente del potenziale
e una particella caricata
con massa trascurabile si muoverà attraverso questo spazio lungo questo
gradiente.
In alcune applicazioni il progettista del campo non è limitato a due componenti
del campo (elettrostatico e gravitazionale), ma può includere diversi campi per
rappresentare diverse classi di obiettivi e ostacoli.
Questa introduzione sui campi a potenziale è stata fatta perché se ne potrebbe
utilizzare uno per guidare degli UAV attraverso un ambiente (vedi fig.19). Prima
di fare ciò bisogna evidenziare come un campo a potenziale non soddisfi tutti i
requisiti
esposti in precedenza nel paragrafo 2.2.
Diverso : Sì. Uno dei punti di forza dei metodi basati sui campi a potenziale
tradizionali è la loro abilità a incorporare tipi diversi di informazioni.
Distribuito: No. I metodi tradizionali basati sui campi a potenziale richiedono
che i dati fondamentali del campo siano raggruppati in un singolo punto per una
computazione centralizzata.
14
In elettrostatica, il campo è generato dalla distribuzione fisica delle cariche in accordo con la forza di
Coulomb. Einstein estese questo formalismo alla gravità, questo portò a un campo gravitazionale
generato dalla distribuzione fisica della massa. Quindi il movimento di una particella enorme caricata
seguirà una composizione di due campi.
52
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Decentralizzato: Sì. Gli oggetti che si muovono sotto l’influenza di un campo a
potenziale prendono decisioni locali, basate sulla forza del campo nelle loro
immediate vicinanze.
Dinamico: No. I campi a potenziale tradizionali sono calcolati nella loro interezza
prima che il robot cominci a muoversi.
In quest’ottica i campi a feromoni digitali rappresentano un modo per costruire
un campo a potenziale dinamico e distribuito.
Questo campo supporta tre diverse funzioni:
1. Aggregazione: Il campo aggrega i depositi degli agenti individuali,
fondendo informazioni tra diversi agenti e in diversi istanti temporali.
2. Evaporazione: Il campo fa sì che il feromone evapori con il passare del
tempo. Questa dinamica è una vera e propria innovazione alternativa al
tradizionale mantenimento delle informazioni nell’intelligenza artificiale
(AI). Infatti tradizionalmente un agente ricorda tutto quello che gli si è
detto fin quando non c’è un motivo valido affinché esso lo debba
dimenticare. Le formiche cominciano a dimenticare tutto quello che
hanno imparato, a meno che non sia rinforzato.
3. Propagazione: Il campo propaga i feromoni ai posti vicini, disseminando
quindi delle informazioni.
Il campo a feromoni costruito dalle formiche nell’ambiente è infatti un campo a
potenziale che guida i loro movimenti. Come accennato, a differenza di molti
campi a potenziale tradizionali, esso soddisfa tutti i requisiti .
Diverso: Sì. Le formiche possono rispondere a combinazioni di feromoni diversi,
integrando così gli effetti di input multipli.
Distribuito: Sì. Il campo a potenziale è generato dai depositi di feromone che
sono allocati nell’ambiente. Questi depositi fanno il loro lavoro vicino a dove
sono generati e sono usati in primo luogo dalle formiche che gli sono vicine.
Decentralizzato: Sì. Sia il comportamento delle formiche che il mantenimento
del campo a potenziale sono fatti in maniera decentralizzata. Le formiche
interagiscono solo con i feromoni nelle loro immediate vicinanze, facendo
depositi e “leggendo” la forza locale del campo a feromone. Visto che la
53
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
diffusione decresce rapidamente con la distanza, i depositi contribuiscono alla
forza del campo solo nelle immediate vicinanze in cui vengono fatti.
Figura 19 : Campo potenziale corrispondente agli assetti fisici
Dinamico: Sì. Sotto un rinforzamento continuo, la forza del campo a feromoni si
stabilizza rapidamente. In questo modo le nuove informazioni sono subito
integrate nel campo, mentre quelle vecchie sono automaticamente dimenticate,
attraverso l’evaporazione del feromone.
L’interazione basata sul feromone non solo aumenta il numero di interazioni
che possiamo analizzare, ma consente anche un’esecuzione estremamente
efficiente15.
Al momento l’applicazione pratica più matura che fa uso delle tecniche basate
sul feromone è quella dell’instradamento dei pacchetti nelle telecomunicazioni.
2.6 Il paradigma Polyagent
L’entità fondamentale di un modello agent-based (ABM) è l’agente, che
corrisponde a un’entità discreta nel dominio; l’operatore fondamentale in un
ABM è l’interazione tra gli agenti.
15
In una applicazione fatta da Parunak e il suo gruppo di ricerca, venivano supportati 24000 ghosts
(vedi paragrafo 2.4) concorrentemente, più velocemente del real-time, su un Wintel Laptop a 1GHz.
54
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
L’entità fondamentale in un modello equation-based (EBM) è un sistema
osservabile, l’operatore fondamentale è la sua evoluzione (descritta ad esempio
da una equazione differenziale).
In tutti e due i casi un agente di un’entità può eseguire solo una traiettoria per
iterazione, questo motivo ci fa capire che questo approccio non è adatto al
nostro sistema, per questo motivo si prova a risolvere il problema con una
nuova entità di modellazione detta polyagent.
Il modello polyagent-based (PBM), Introdotto da H. Van Dyke Parunak,
rappresenta ogni entità con un singolo e persistente avatar, e diversi e “nonpersistenti” ghosts. Ogni ghost interagisce con i ghosts degli altri avatars
attraverso i feromoni digitali (tecnica esaminata nel paragrafo 2.3), esplorando
più traiettorie alternative in una singola iterazione, la quale può essere più
veloce del real-time per diversi domini considerabili.
I poliagenti sono una soluzione al bisogno di catturare il risultato delle possibili
interazioni multiple tra gli agenti, in poche iterazioni del sistema.
L’avatar corrisponde all’agente che rappresenta un’entità in un modello
convenzionale multi-agente del dominio. Esso persiste fin quando l’entità a cui
si riferisce è attiva e mantiene il proprio stato che riflette lo stato della sua
entità. Ogni avatar genera un flusso di ghosts, che hanno una vita limitata. I
ghosts “muoiono” o dopo un certo periodo di tempo fissato, o in seguito al
verificarsi di un evento, o per fare spazio a un nuovo flusso di ghosts. L’avatar
controlla il tasso di generazione dei suoi ghosts e solitamente ne ha molti attivi.
I ghosts, come già detto, esplorano diversi comportamenti possibili per il loro
avatar, essi interagiscono tra loro stigmergicamente attraverso i campi a
feromoni digitali. Ogni ghost sceglie le proprie azioni stocasticamente
basandosi su una funzione pesata in base alla forza delle varie “fragranze” di
feromone nelle sue immediate vicinanze. Inoltre ogni ghost deposita il proprio
feromone per registrare la sua presenza in quel determinato posto.
Avere tanti ghosts fa aumentare il numero di interazioni che una singola
iterazione del sistema può esplorare. Invece di una sola traiettoria per ogni
avatar, in questo caso si hanno tante traiettorie quanti sono i ghosts.
55
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 20 : Il paradigma Polyagent
Dati avatars e ghosts, se avatars depositano il feromone, tutte le azioni
del ghost sono influenzate da un massimo di altri agenti, cosicché si stanno
analizzando in effetti
interazioni per ogni entità, o
interazioni in
tutto. Se invece sono i ghosts a depositare il feromone, il numero di interazioni
che si possono analizzare è più grande, dell’ordine di .
L’avatar può fare diverse cose con i suoi ghosts, a seconda dell’applicazione:
Può attivare i suoi ghosts quando vuole analizzare altre possibili
soluzioni alternative, cambiando la quantità prodotta di ghosts a
seconda di quante alternative vuole analizzare.
Può fare evolvere i suoi ghosts per capire quali sono i migliori parametri
per una specifica situazione. Inoltre monitora le performance dei ghosts
passati, seleziona quello che ha più “successo” per determinare i
parametri della generazione successiva di ghosts.
Può esaminare il comportamento del suo insieme di ghosts per
produrre una stima unificata di quale sarà la sua evoluzione e il suo
range di variabilità.
La trattazione dei poliagenti fin qui esposta, fa riferimento ad agenti
appartenenti allo “stesso mondo”. Un problema ancora non risolto
completamente resta quello di fondere tra loro feromoni di diversi ghosts di un
agente A di un determinato tipo, in un singolo campo che poi guiderà il
comportamento di un agente B di un tipo differente.
56
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Nel progetto ADAPTIV16, Parunak formalizza i suoi ragionamenti sulla tecnica
polyagent. I feromoni digitali del progetto ADAPTIV sono strutture dati digitali,
non chimiche. Queste strutture dati sono presenti in una rete di place agents,
che rappresentano regioni del campo di battaglia. Per scopi simulativi, tutti i
place agents risiedono su un unico computer, invece nelle applicazioni reali ogni
place agent risiede su un sensore incustodito a terra (UGS:Unattended Ground
Sensor) e deve essere posto sul campo di battaglia tramite calo aereo o
dall’artiglieria. Il sistema software di ADAPTIV si riferisce sia agli UGS che a un
terminale di osservazione (HOST: Hostility Observation and Sensing Terminal).
Ogni place agent è vicino a un insieme limitato di altri place agents. Oltre ai
place agents, il sistema ADAPTIV prevede anche i cosiddetti walker agents, che
interagiscono con il place agent associato ad ogni zona che visitano.
Logicamente i place agents e i walker agents sono entità software, mentre gli
HOST’s e gli UAV’s rappresentano l’hardware su cui essi risiedono.
Ogni place agent mantiene una variabile scalare corrispondente a ogni fragranza
di feromone, che aumenta quando riceve altro feromone della stessa fragranza.
Come già detto, questo feromone evapora con il passare del tempo e si propaga
ai place agents vicini.
Un walker agent abita un place agent a ogni istante di tempo, può leggere la
forza attuale del feromone per quel place agent come una funzione delle sue
fragranze e può anche depositare feromoni in quel place agent. Ogni walker
agent combina le forze provenienti da feromoni differenti che percepisce,
usando una equazione di controllo, poi si muove verso un nuovo place agent,
tramite una decisione presa stocasticamente, pesando le varie opzioni (vari
place agents verso cui potrebbe muoversi) in base alla suddetta equazione di
controllo.
La piattaforma del sistema ADAPTIV è progettata in modo da poter supportare:
Agenti di swarming, includendo l’abilità di definire sottopopolazioni di
agenti
Meccanismi di interazione flessibili
16
ADAPTIV (Adaptive Control of Distributed Agents Through Pheromones Techniques and Interactive
Visualization) è un progetto al quale ha partecipato Parunak con il suo gruppo di ricerca New Vectors. E’
un progetto promosso dalla DARPA per analizzare i metodi basati sul feromone al fine di controllare le
operazioni militari aeree.
57
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Data logging e interfacce per le query real-time
Esecuzione efficiente per grandi numeri di agenti concorrenti
Una notevole varietà di meccanismi di scheduling
Un grande insieme di meccanismi “pheromone-based”, includendo
l’aggregazione, evaporazione e propagazione
Diverse entità software come i ghost agents
Visualizzazione del comportamento degli agenti
Visualizzazione dell’evoluzione del comportamento degli agenti
Nel seguito andremo a considerare lo spazio fisico come diviso i tanti quadrati,
in modo che ogni place agent sia dotato di 8 vicini.
Gli agenti software vagano nella cosiddetta pheromone map, si useranno due
classi di agenti: walkers e avatars. Come già accennato precedentemente un
agente walker controlla una singola piattaforma dello swarm, invece gli avatars
sono usati per rappresentare le altre entità nell’ambiente. Queste ultime
possono includere le entità amiche (blu), nemiche (rossi) e neutrali (verdi).
Un agente usa una equazione di interpretazione per pesare i feromoni che
percepisce e decidere verso quale place agent muoversi. Alcuni feromoni
possono attrarre l’agente, altri lo repellono. L’equazione di interpretazione
assegna un valore scalare V(p) al place agent corrente e a ognuno dei suoi place
agents vicini. L’agente poi o fa una scelta deterministica (muoversi verso il place
agent con il maggiore V(p) ) , o probabilistica (usare la cosiddetta “ruota di una
roulette” i cui segmenti sono pesati da ogni V(p) ).
La matematica che descrive il campo potenziale a feromoni digitali include
alcuni teoremi sulla stabilità critica che si basano su due equazioni
fondamentali. I parametri, per entrambe le equazioni, sono:
P=[pi]= insieme di place agents
N:P→P = relazione con il vicino tra place agents
f,p,t)= forza della fragranza di feromone f all’istante t e per il place
agent p
d( f,p,t) = input esterno di feromone di fragranza f, all’istante t e per il
place agent p
g( f,p,t) = input propagato di feromone di fragranza f, all’istante t e per
il place agent p
= parametro di evaporazione per la fragranza f
f
58
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
= parametro di propagazione per la fragranza f
f = soglia inferiore: se il valore di
f,p,t) scende al di sotto di T f verrà
posto a 0, e il software non terra più in considerazione quel feromone
che scomparirà dal sistema.
f
La prima equazione descrive l’evoluzione della forza di una singola fragranza di
feromone per un place agent fissato:
Ef riflette l’evaporazione del feromone, il fattore
calcola il feromone
rimanente dopo la propagazione ai suoi vicini,
f,p,t) rappresenta la quantità
di feromone del ciclo precedente,
f,p,t) esprime i depositi totali fatti
dall’ultimo ciclo di aggiornamento e
f,p,t) rappresenta il feromone totale
propagato a p da tutti i suoi vicini. Ogni place agent applica questa equazione a
ogni fragranza di feromone una volta durante ogni ciclo di aggiornamento.
La seconda equazione fondamentale descrive proprio la propagazione di
feromone ricevuta dai place agents vicini:
Questa equazione ci dice che ogni place agent p’ che ha p come vicino, propaga
una porzione del suo feromone all’agente p in ogni ciclo di aggiornamento. La
propagazione dipende dal parametro e dal numero totale di vicini .
Usando queste equazioni si possono dimostrare diversi teoremi di stabilità
critica e di convergenza, come ad esempio:
Stabilità locale: la forza dell’output propagato da ogni insieme di place
agents ai loro vicini all’istante t+1 è strettamente minore della forza
dell’input totale (esterno + propagato) allo stesso insieme di agenti,
all’istante t.
Stabilità propagata: esiste un limite superiore fissato per la somma di
tutti gli input per un arbitrario place agent se si assume un input esterno
di un istante preciso e per un posto preciso.
59
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Stabilità globale: la forza del feromone per qualunque place agent è
limitata.
2.6.1 Descrizioni degli algoritmi: In questo paragrafo si andranno ad esaminare
gli algoritmi che utilizzano le funzioni identificate precedentemente. Ogni
fragranza di feromone ha un numero di parametri (settings) che mettono a
punto i feromoni per il compito specifico. Quattro parametri differenti sono
disponibili per ogni fragranza di feromone:
1. Grandezza temporale del ciclo di aggiornamento della fragranza
2. Fattore di propagazione: la frazione del feromone di un place agent che
viene distribuita equamente ai suoi vicini.
3. Fattore di evaporazione: la frazione di feromone che rimane dopo il
ciclo di evaporazione.
4. Soglia minima: sotto la quale, come già detto, la forza del feromone
viene assunta pari a 0 e il software non terra più in considerazione quel
feromone.
2.6.1.1 Algoritmo di sorveglianza e pattugliamento : Questo algoritmo deve
essere in grado di controllare veicoli di sorveglianza autonomi (ASV’s:
Autonomos Surveillance Vehicles), che esaminano una o più aree di interesse
(AOI: Area Of Interest) con una certa frequenza di rivisitazione. L’algoritmo è
anche conosciuto con il nome di “lawn cutting” (taglio del prato).
In questo algoritmo i place agents nell’AOI emettono continuamente un
feromone attrattivo (il prato) che si propaga agli altri place agents formando un
campo a potenziale che avrà un certo gradiente che porta alle AOIs. I walker
agents blu che controllano gli ASV sono attratti da questo feromone. La loro
equazione di interpretazione li porterà probabilisticamente a scalare il gradiente
del campo formato dal feromone verso l’AOI contenente la concentrazione più
alta di feromone attrattivo (l’erba più lunga). Una volta che l’ASV ha visitato il
place agent nell’AOI, tutto il feromone attrattivo viene eliminato (taglio
dell’erba) e i place agents smettono di emettere altro feromone attrattivo per
un tempo inversamente proporzionale alla frequenza di sorveglianza desiderata
per quella particolare AOI. Passato questo tempo, il “pompaggio” di feromone
ricomincia e il feromone attrattivo ricomincia ad accumularsi nel relativo place
agent (ricrescita dell’erba).
60
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 21 : Algoritmo di sorveglianza e pattugliamento. 1: Area di sorveglianza deposita feromone attrattivo. 2
L'ASV deposita feromone repulsivo. 3 L'infrastruttura propaga sia feromone attrattivo che repulsivo il cui campo
avrà un certo gradiente. 4 L'ASV scala la rete del gradiente, prelevando feromone attrattivo
In questo algoritmo i place agents nell’AOI emettono continuamente un
feromone attrattivo (il prato) che si propaga agli altri place agents formando un
campo a potenziale che avrà un certo gradiente che porta alle AOIs. I walker
agents blu che controllano gli ASV sono attratti da questo feromone. La loro
equazione di interpretazione li porterà probabilisticamente a scalare il gradiente
del campo formato dal feromone verso l’AOI contenente la concentrazione più
alta di feromone attrattivo (l’erba più lunga). Una volta che l’ASV ha visitato il
place agent nell’AOI, tutto il feromone attrattivo viene eliminato (taglio
dell’erba) e i place agents smettono di emettere altro feromone attrattivo per
un tempo inversamente proporzionale alla frequenza di sorveglianza desiderata
per quella particolare AOI. Passato questo tempo, il “pompaggio” di feromone
ricomincia e il feromone attrattivo ricomincia ad accumularsi nel relativo place
agent (ricrescita dell’erba).
È importante sottolineare che ogni ASV deposita un feromone repulsivo nel
prossimo place agent che si appresta a visitare, in questo modo tiene lontani gli
altri ASV dallo stesso place agent, per evitare la duplicazione dello sforzo.
L’equazione di interpretazione è :
)
dove:
61
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 22 : Settings dei feromoni per l'algoritmo di sorveglianza e pattugliamento
2.6.1.2 Algoritmo di acquisizione dell’obiettivo : Gli algoritmi di Swarm
Intelligence per posizionare i sensori per l’acquisizione dati non sono considerati
in questa tesi, per il loro studio si rimanda alla bibliografia. Qui si assumerà che
fin quando l’entità di Swarm Intelligence è nel range del sensore in questione,
l’obiettivo è acquisito con una probabilità definita da un parametro
sperimentale Pd. Un altro parametro sperimentale è usato per definire per
quanto tempo il sensore deve rimanere sull’obiettivo per confermarne
l’acquisizione.
L’algoritmo esaminato è descritto nella figura 23 , ci sono due tipi di ASV in
questo scenario. L’ASVdet che ha un sensore che può rilevare la presenza di un
obiettivo, ma non può identificarlo; l’ASVid ha un sensore che può sia rilevare
che identificare l’obiettivo. Se l’ASVdet rileva un obiettivo, crea un avatar rosso
per rappresentarlo; quest’ultimo incomincia a rilasciare un feromone chiamato
NeedsID.
Figura 23 : Algoritmo di acquisizione dell'obiettivo. 1: L’ASVdet rileva l’obiettivo e l’avatar rosso è creato. 2:
L’avatar rosso deposita il feromone NeedsID. 3: L’ASVid scala il gradiente del campo formato dal feromone
NeedsID per identificare l’obiettivo
Un ASVid è più attratto dal feromone NeedsID che da quelli che rappresentano il
“prato” (lawn), quindi in presenza di feromone NeedsID egli scalerà il gradiente
del campo formato da questo feromone e identificherà l’obiettivo. Una volta
identificato, l’avatar rosso smetterà di rilasciare feromone NeedsID. L’ASVid
62
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
deposita una gran quantità di Visited feromone, per far sì che gli altri ASV non
vengano attratti dalla restante quantità di feromone NeedsID che nel tempo si
estinguerà. Una volta identificato, il target può essere seguito o lasciato libero
se è stato giudicato innocuo.
L’ASVid e l’ASVdet usano due equazioni di interpretazione diverse:
ASVid
→
ASVdet →
Con:
la forza del feromone “lawn” (prato) per il place agent p;
la forza del feromone “visited” (visitato) per il place agent p;
la forza del feromone “tracking” (inseguimento) per il place
agent p.
Figura 24 : Settings dei feromoni per l'algoritmo di acquisizione dell’obiettivo
2.6.1.3 Algoritmo di inseguimento dell’obiettivo : Questo algoritmo viene
utilizzato per permettere agli ASV di inseguire gli obiettivi in modo continuo o
intermittente. Un avatar rosso stima il comportamento dell’obiettivo rosso, e
deposita continuamente un feromone Tracking. In ogni caso l’ASV deposita una
grossa quantità di feromone Visited quando l’obiettivo rosso è rilevato, affinché
gli altri ASV ne stiano alla larga.
Quando questo feromone evapora o l’avatar rosso si muove fuori dal range
dell’ASV che lo sta inseguendo, il suo feromone Tracking attrarrà di nuovo gli
ASV verso di lui per stabilire un nuovo contatto e per aggiornare il suo percorso.
Variando la quantità di feromone Visited si può variare la frequenza di
rivisitazione per l’inseguimento.
63
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 25 : Algoritmo di inseguimento dell'obiettivo. 1: L’ASV acquisisce l’obiettivo e una gran quantità di
feromone Visited è depositato per repellere gli altri ASV. 2: L’avatar rosso stima il movimento, deposita il
feromone Tracking che potrebbe vincere la forza del feromone Visited. 3: Gli ASV vicini sono più attratti dal
feromone Tracking che repulsi dal feromone Visited, quindi scalano il gradiente per riacquisire l’obiettivo.
L’equazione di interpretazione è :
Figura 26 : Settings dei feromoni per l'algoritmo di inseguimento dell’obiettivo
I settings esposti nella tabella precedente sono relativi a un periodo di
rivisitazione di 200 secondi per un obiettivo rosso che si muove a 3Km/h e 20
unità blu che si muovono a 90 Km/h su una griglia 200x200.
2.7 Il paradigma Ant-Colony-Optimization (ACO)
Negli ultimi anni si è diffuso un innovativo modo di sviluppare tecniche per
risolvere problemi di progettazione e ottimizzazione: lo studio dell’ingegneria
della natura, cioè lo studio di come dati certi vincoli ambientali, l’evoluzione
abbia creato la forma di vita ottima per quei vincoli. La comprensione di questi
meccanismi ha permesso, per analogia, lo sviluppo di nuovi algoritmi e il loro
adattamento a problemi completamente diversi da quelli in cui sono
originariamente stati osservati. Gli algoritmi naturali hanno un fascino notevole
per l’ingegnere, perché mentre la natura ci mette milioni di anni per fare
evolvere una forma di vita ottima, un buon calcolatore multi-processore può far
64
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
durare questa evoluzione pochi giorni. Uno dei più affascinanti fenomeni di
organizzazione osservabili in natura è il comportamento delle formiche già
esposto in precedenza (vedi paragrafo 2.3.3). L’algoritmo che formalizza questo
comportamento è l’Ant Colony Optimization (ACO: Ottimizzazione del
comportamento delle colonie di formiche) introdotto nel 1991 da Marco Dorigo
del Politecnico di Milano. Questo algoritmo fu introdotto usando come esempio
di applicazione il problema del commesso viaggiatore (TSP: Traveling Salesman
Problem) che intuitivamente è il problema di un commesso che, partendo dalla
sua città, vuole trovare il percorso più breve che lo porti in un insieme fissato di
città (clienti) e poi a casa, passando per ogni cliente una e una sola volta. Più
formalmente, il TSP può essere rappresentato da un grafo completo pesato
G=(N,A) con N l’insieme di nodi rappresentanti le città e A l’insieme di archi. A
ogni arco (i,j) A è assegnato un valore (lunghezza) dij , che è la distanza tra la
città i e la città j, con i,j
N. L’obiettivo nel TSP è trovare un circuito
17
Hamiltoniano di minima lunghezza del grafico G.
Il TSP è un problema molto studiato nella letteratura, e gioca un ruolo
importante, come accennato, nella ricerca sugli algoritmi di ACO. La scelta del
TSP come problema per la descrizione degli algoritmi di Ant Colony Optimization
ha diverse ragioni:
Il TSP è un importante problema di ottimizzazione
-completo18 che si
presenta in molte applicazioni.
Il TSP è un problema al quale gli algoritmi ACO sono facilmente
applicabili.
Il TSP è facilmente comprensibile, ed è un buon banco di prova per nuovi
sviluppi algoritmici.
Inoltre la letteratura dell’Ant Colony Optimization dimostra che molto spesso gli
algoritmi più efficienti per il TSP lo sono anche per una gran varietà di altri
problemi.
17
Nel campo matematico della teoria dei grafi, un cammino in un grafo (orientato o non orientato) è
detto hamiltoniano se esso tocca tutti i vertici del grafo una e una sola volta.
18
Nella Teoria della Complessità i problemi NP-completi sono i più difficili problemi nella classe NP
("problemi non deterministici a tempo polinomiale") nel senso che, se si trovasse un algoritmo in grado
di risolvere "velocemente" (nel senso di utilizzare tempo polinomiale) un qualsiasi problema NPcompleto, allora si potrebbe usarlo per risolvere "velocemente" ogni problema in NP.
65
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 27 : Lista (non completa) di alcuni algoritmi di Ant Colony Optimization di successo (in ordine cronologico)
Il primo algoritmo di ACO introdotto da Marco Dorigo nel 1991 si chiama Ant
System (AS) e raggiunse alcuni risultati iniziali molto interessanti, ma si capì che
era inferiore allo stato dell’arte degli algoritmi per il TSP. L’importanza dell’AS
sta comunque nel fatto di essere stato la maggiore fonte di ispirazione per gli
algoritmi di ACO seguenti. Esso infatti ha fornito un gran numero di estensioni
che ne hanno significativamente migliorato le prestazioni e sono ancora tra gli
algoritmi di ACO di maggiore successo. Molte di queste estensioni provengono
direttamente dall’AS nel senso che mantengono la stessa procedura di
costruzione della soluzione e la stessa procedura di evaporazione del feromone.
Tra queste estensioni vi sono:
Elitist AS
Rank-based AS
AS
Ant-Colony-System
Le maggiori differenze tra l’AS e queste estensioni sono le modalità in cui il
feromone viene aggiornato oltre ad alcuni dettagli sull’organizzazione delle
tracce di feromone.
Nell’ACO, il TSP è affrontato simulando un numero di formiche artificiali che si
muovono su un grafico che rappresenta il problema: ogni vertice rappresenta
una città e ogni arco rappresenta una connessione tra due città. Una variabile
chiamata feromone è associata a ogni arco e può essere letta e modificata dalle
formiche.
In generale gli algoritmi di ACO sono algoritmi iterativi. A ogni iterazione è
considerato un numero di formiche artificiali, ognuna di loro costruisce una
66
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
soluzione camminando da vertice a vertice sul grafico con il vincolo di non
visitare nessun vertice che ha già visitato nel suo cammino. A ogni step di
costruzione della soluzione, una formica seleziona il vertice seguente che deve
visitare secondo un meccanismo stocastico che è influenzato dal feromone.
Quando una formica si trova nel vertice i (fig. 28), il vertice seguente si sceglie
tra tutti quelli che non sono stati ancora visitati, in particolare se la città j non è
stata visitata, essa sarà scelta con una probabilità che è proporzionale al
feromone associato con l’arco (i,j). Alla fine dell’iterazione, in base alla qualità
della soluzione, i valori del feromone vengono modificati per potere influenzare
le formiche, nelle iterazioni future, a costruire soluzioni simili alle migliori
precedentemente costruite.
Figura 28 : Una formica nella città i sceglie la prossima città da visitare in base a un meccanismo stocastico: se j
non è stata precedentemente visitata, può essere selezionata con una probabilità proporzionale al feromone
associato all'arco (i,j).
Come accennato, l’ACO è stato formalizzato in una metaeuristica 19 per problemi
di ottimizzazione combinatoriale da Marco Dorigo e dei suoi collaboratori. Per
potere applicare l’ACO a un problema di ottimizzazione Dorigo in un suo libro
19
Metaeuristica: Si definisce, procedimento euristico, un metodo di approccio alla soluzione dei
problemi che non segue un chiaro percorso, ma che si affida all'intuito e allo stato temporaneo delle
circostanze, al fine di generare nuova conoscenza. È opposto al procedimento algoritmico. La
metaeuristica è un metodo euristico per la soluzione di una classe molto ampia di problemi
computazionali che combina diverse procedure a loro volta euristiche, con l'obiettivo di ottenere una
procedura più robusta ed efficiente.
67
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
(intitolato appunto “Ant Colony Optimization”) ne fornisce un apposito modello
che consiste in:
Uno spazio di ricerca S definito su un insieme finito di variabili discrete di
decisione
Un insieme di vincoli tra le variabili.
Una funzione oggettiva
da minimizzare20.
La variabile generica
ha valori in
Una probabile
soluzione
è una completa assegnazione di valori alle variabili che
soddisfino tutti i vincoli . Una soluzione
è globalmente ottima se e solo
se:
.
Il modello di un problema di ottimizzazione combinatoriale è usato per definire
il modello di feromone dell’ACO. Un valore di feromone è associato a ogni
componente di una possibile soluzione. Formalmente il valore di feromone
è
associato a un componente della soluzione
che consiste nell’assegnazione
L’insieme di tutti i componenti della possibile soluzione è indicato con
C.
Come esposto in precedenza, le formiche artificiali si muovono sul grafico da
vertice a vertice costruendo una soluzione parziale. Inoltre le formiche
depositano una certa quantità di feromone sui componenti che possono essere
associati o ai vertici o agli archi (fig. 29). La quantità di feromone depositata
può dipendere dalla qualità della soluzione trovata.
La metaeuristica ACO si può sintetizzare con il seguente pseudo-codice C-like:
Settaggio dei parametri, inizializzazione delle tracce di feromone
while non incontro la condizione di terminazione do
Le formiche costruiscono le soluzioni
Applica la ricerca locale (opzionale)
Aggiornamento feromoni
endwhile
20
Ogni problema di massimizzazione può essere facilmente ridotto a un problema di minimizzazione:
massimizzare una funzione è chiaramente equivalente a minimizzare la funzione
68
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 29 : Esempio di possibili grafici di costruzione per un TSP a 4 città (a) e 6 città (b), dove i componenti sono
associati agli archi (a) o ai vertici (b) del grafico.
A ogni iterazione sono costruite un numero di soluzioni dalle formiche, queste
soluzioni sono poi migliorate attraverso una ricerca locale (step opzionale) e
infine il feromone è aggiornato. In particolare l’applicazione della ricerca locale
serve a migliorare le soluzioni ottenute dalle formiche, è una fase opzionale
anche se spesso è inclusa nello stato dell’arte degli algoritmi ACO.
2.7.1 Gli algoritmi di Ant Colony Optimization più importanti: In questo
paragrafo verranno presentati gli algoritmi non in ordine cronologico, ma bensì
in ordine di complessità crescente nei confronti delle modifiche che essi
introducono nei confronti del primo algoritmo Ant System. Per semplicità di
esposizione non si considererà la fase opzionale della ricerca locale.
2.7.1.1 Ant system(AS): Inizialmente furono proposte tre versioni dell’AS
chiamate rispettivamente ant-density, ant-quantity e ant-cycle. Nei primi due
l’aggiornamento del feromone avveniva alla fine di ogni spostamento delle
formiche da una città all’altra, nell’ant-cycle invece avveniva dopo che tutte le
formiche avevano costruito i percorsi e la quantità di feromone depositata era
una funzione della qualità del percorso. Al giorno d’oggi la tecnica usata nei
primi due algoritmi è stata abbandonata in quanto si è visto che quella dell’antcycle è nettamente superiore a livello prestazionale.
69
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Le fasi principali dell’algoritmo AS sono la costruzione della soluzione da parte
delle formiche e l’aggiornamento del feromone. In questo algoritmo un buon
metodo euristico per definire il valore iniziale delle tracce di feromone è quello
di impostarle a un valore leggermente superiore a quello che ci si aspetta che
sia depositato dalle formiche in una iterazione; una stima approssimata può
essere raggiunta definendo
, con
il numero di
formiche, e
è la lunghezza del percorso generato dall’euristico “vicino più
vicino”. La ragione di questa scelta è che se il valore di
è troppo basso la
ricerca potrebbe essere influenzata dal primo percorso generato dalle formiche.
Al contrario se è troppo grande le prime iterazioni potrebbero essere perse in
quanto esse non vengono considerate fin quando l’evaporazione del feromone
riduce abbastanza i valori dei feromoni, cosicché il feromone aggiunto dalle
formiche può incominciare a influenzare la ricerca.
Costruzione della soluzione
Nell’AS le formiche costruiscono un percorso per il TSP, in particolare se una
formica sta nella città la probabilità che vada nella città è espressa così:
con
un valore euristico che è disponibile a priori,
sono
parametri che determinano l’influenza relativa della traccia di feromone e
l’informazione euristica, infine
è il probabile vicinato della formica quando
sta nella città , cioè l’insieme di città che non ha ancora visitato.
Il ruolo concreto dei parametri
è il seguente: se
è più probabile che
siano scelte, come città successive, le città più vicine; se
solo il feromone
è usato nella scelta senza nessuna influenza euristica, questo generalmente
porta a risultati scadenti, specialmente nel caso di
si ha il rapido
emergere di una situazione di stagnazione, cioè una situazione in cui le formiche
seguono lo stesso sentiero e costruiscono lo stesso percorso, cosa che è
fortemente non ottimale.
Ogni formica mantiene una memoria
che contiene le città già visitate,
nell’ordine in cui sono state visitate. Questa memoria è usata per definire il
70
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
probabile vicinato
nella regola di costruzione data dall’equazione
precedente di
. Inoltre la memoria
permette alla formica
sia di
calcolare la lunghezza del percorso
per depositare il feromone.
generato che di ripercorrere il sentiero
Per quanto riguarda la costruzione della soluzione, ci sono due modi di
implementazione: in serie o in parallelo. Nella costruzione in parallelo a ogni
passo tutte le formiche si muovono dalla città corrente alla successiva, mentre
in quella sequenziale una formica costruisce un percorso completo prima che
quella successiva cominci a costruirne un altro. Nel caso dell’algoritmo AS
queste due tecniche sono equivalenti in termini di comportamento
dell’algoritmo, ciò invece non è vero in altri algoritmi ACO come l’Ant-ColonySystem.
Aggiornamento delle tracce di feromone
Dopo che tutte le formiche hanno costruito i loro percorsi, le tracce di feromone
sono aggiornate. Questo è fatto prima di tutto abbassando il valore del
feromone su tutti gli archi di un valore costante e poi aggiungendo il feromone
agli archi che le formiche hanno attraversato nei loro percorsi. L’evaporazione
del feromone è espressa dalla seguente espressione:
dove
è il tasso di evaporazione del feromone, che permette
all’algoritmo di “dimenticare” le decisioni sbagliate prese precedentemente.
Infatti se un arco non è scelto dalle formiche, la quantità di feromone a esso
associata decresce esponenzialmente con il numero di iterazioni.
Dopo l’evaporazione, tutte le formiche depositano il feromone sugli archi che
hanno attraversato nel loro percorso, in accordo con la formula seguente:
con
la quantità di feromone che la formica
visitato, che a sua volta è definita così:
71
deposita nell’arco che ha
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
con
la lunghezza del percorso
costruito dalla formica k, calcolata come la
somma delle lunghezze di tutti gli archi appartenenti a
. Più un arco
appartiene a un percorso migliore, più feromone verrà depositato su quell’arco.
Generalmente gli archi che sono usati da molte formiche e che sono parte di
percorsi brevi, sono quelli che ricevono la maggior quantità di feromone.
2.7.1.2 Elitist Ant System(EAS): Un primo miglioramento dell’AS è rappresentato
dal cosiddetto Elitist21 Ant System introdotto da Dorigo et al.. L’idea era quella
di fornire un forte rinforzamento addizionale agli archi appartenenti al miglior
percorso trovato dall’inizio dell’algoritmo; questo percorso è indicato con
(best-so-far tour = percorso migliore fino ad ora). Questo feedback addizionale
al
è un esempio di daemon action22 della metaeuristica ACO e può essere
visto come attuato da una formica addizionale chiamata formica best-so-far.
Aggiornamento delle tracce di feromone
Il rinforzamento aggiuntivo del percorso
è raggiunto aggiungendo una
quantità /
ai suoi archi, dove è il parametro che definisce il peso dato al
percorso best-so-far
, e
è la sua lunghezza. Così l’equazione per il
deposito di feromone diventa:
con
definito già in precedenza e
definito così:
21
L’elitismo è una tecnica di ricerca della soluzione in un algoritmo che si basa sulla selezione dell’elite,
cioè si selezionano i percorsi migliori; in questo modo l’elitismo fa crescere rapidamente le performance
di un algoritmo in quanto, evita la perdita della soluzione migliore.
22
Le daemon actions sono delle procedure che servono per implementare azioni centralizzate che non
possono essere demandate alle singole formiche. Esempio di daemon actions sono l’attivazione di
procedure di ottimizzazione locale, la collezione di informazioni locali che possono essere usate per
decidere se è utile o meno depositare altro feromone per influenzare il processo di ricerca da una
prospettiva non locale.
72
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Da notare è che nell’EAS, come negli altri algoritmi che saranno presentati nel
seguito, l’evaporazione del feromone è implementata come nell’AS. I risultati
raggiunti da Dorigo nel 1992 fanno capire che l’uso della strategia elitista con un
valore appropriato per il parametro
permette all’EAS di trovare migliori
percorsi e soprattutto trovarli in un minor numero di iterazioni.
2.7.1.3 Rank-Based Ant System (ASrank): Un altro miglioramento dell’AS è la
versione rank-based (basata sul grado) proposta da Bullnheimer et al. (1999). In
questo algoritmo ogni formica deposita una quantità di feromone che decresce
con il suo grado. Inoltre, come nell’EAS, la formica best-so-far deposita sempre
la quantità più grande di feromone in ogni iterazione.
Aggiornamento delle tracce di feromone
Prima di aggiornare le tracce di feromone, le formiche sono ordinate in base alla
lunghezza dei percorsi trovati e la quantità di feromone che una formica
deposita è pesata in base al grado della formica. In ogni iterazione solo a
formiche con il grado più alto e alla formica best-so-far è permesso di
depositare il feromone. Il percorso best-so-far da il contributo più forte insieme
al peso . La migliore formica -esima dell’iterazione corrente contribuisce
all’aggiornamento del feromone con il valore 1/
moltiplicato con un peso
dato dal massimo
. Quindi l’aggiornamento del feromone dell’ASrank è
espresso dalla regola seguente:
con
=1/
e
già definito nella discussione dell’EAS.
I risultati sperimentali di Bullnheimer et al. (1999) suggeriscono che l’ASrank ha
prestazioni leggermente migliori di quelle dell’EAS e significativamente migliori
dell’AS.
2.7.1.4
AS (
modifiche principali all’AS:
AS): Questo algoritmo introduce quattro
73
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
1. Sfrutta fortemente il miglior percorso trovato: solo la migliore formica
dell’iterazione (best-iteration ant), o la formica migliore fino ad ora (bestso-far ant) possono depositare il feromone. Purtroppo questa strategia
potrebbe portare a una situazione di stagnazione, nella quale tutte le
formiche seguono lo stesso percorso, a causa dell’eccessiva crescita delle
tracce di feromone sugli archi di un buon, ma non ottimo, percorso.
2. Per ovviare al problema sopra esposto, c’è una seconda modifica: questo
algoritmo limita il range possibile del valore delle tracce di feromone
all’intervallo
3. Le tracce di feromone sono inizializzate al valore più alto
, che
insieme con un piccolo tasso di evaporazione, accresce l’esplorazione di
percorsi all’inizio della ricerca.
4. Le tracce di feromone sono re-inizializzate ogni volta che il sistema
raggiunge una situazione di stagnazione o quando un percorso migliore
non è generato per un certo numero di iterazioni consecutive.
Aggiornamento delle tracce di feromone
Dopo che tutte le formiche hanno costruito un percorso, i feromoni sono
aggiornati applicando l’evaporazione come nell’AS, seguita dal deposito di
nuovo feromone espresso così:
con
= 1/
. La formica che aggiunge il feromone può essere sia la
migliore finora, e in questo caso si ha
dell’iterazione, e in questo caso si ha
= 1/
= 1/
, o la formica migliore
con
la lunghezza del
percorso migliore dell’iterazione. Nel
AS i due modi di aggiungere il
feromone sono usati in modo alternato, naturalmente la frequenza con cui le
due regole di aggiornamento del feromone sono applicate ha un influenza sulla
bontà della ricerca: quando gli aggiornamenti del feromone sono fatti sempre
dalla formica best-so-far la ricerca si focalizza velocemente attorno a
; invece
quando è la formica iteration-best ad aggiornare il feromone, il numero di archi
che ricevono il feromone è più grande e la ricerca è meno diretta.
74
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Risultati sperimentali suggeriscono di usare la formica iteration-best quando si
hanno piccole istanze di un TSP, mentre si suggerisce l’uso della formica best-sofar quando si ha a che fare con TSP con diverse centinaia di città.
Limiti ai valori delle tracce di feromone
I limiti ai valori delle tracce di feromone servono, come già detto, a evitare
situazioni di stagnazione. Questi limiti hanno l’effetto di limitare la probabilità
di selezionare una città quando una formica è nella città all’intervallo
, con
. Solo quando la formica k ha una
sola scelta per la prossima città, cosa che corrisponde a
, si avrà
I risultati sperimentali di Stützle del 1999 suggeriscono che per evitare la
stagnazione, il limite inferiore
gioca un ruolo più importante del limite
superiore
, che d’altro canto rimane utile per il settaggio dei valori del
feromone durante le re-inizializzazioni occasionali delle tracce di feromone.
Inizializzazione e re-inizializzazione delle tracce di feromone
All’inizio dell’algoritmo, le tracce iniziali di feromone sono settate a una stima
del limite superiore. Questo modo di inizializzare le tracce di feromone insieme
con un piccolo parametro di evaporazione, causa una crescita lenta nella
differenza relativa nei livelli delle tracce di feromone, cosicché la fase iniziale di
ricerca dell’
AS è molto esplorativa.
Per aumentare l’esplorazione di percorsi che hanno poche probabilità di essere
scelti, in questo algoritmo le tracce di feromone sono occasionalmente reinizializzate. La re-inizializzazione è programmata per avvenire, tipicamente,
quando l’algoritmo raggiunge la stagnazione o se per un numero di iterazioni
consecutive non viene trovato un percorso migliore.
L’algoritmo appena discusso è un degli algoritmi ACO più studiati ed ha un
numero notevole di estensioni.
2.7.1.5 Ant Colony System (ACS): Questo algoritmo rispetto a quelli finora
esaminati, sebbene prenda una forte ispirazione dall’AS, raggiunge il
miglioramento delle prestazioni con l’introduzione di nuovi meccanismi basati
su idee non incluse nell’AS originale.
75
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
L’ACS fu proposto da Dorigo & Gambardella nel 1997 e differisce dall’AS in tre
punti fondamentali:
1. Accumula l’esperienza di ricerca accumulata dalle formiche in misura
maggiore rispetto all’AS, attraverso l’uso di una regola di azione più
aggressiva.
2. L’evaporazione e il deposito del feromone avviene solo sugli archi che
appartengono al percorso best-so-far ( ).
3. Ogni volta che una formica usa un arco ( ), per muoversi da una città a
una città , essa rimuove una certa quantità di feromone dall’arco per
incrementare l’esplorazione di percorsi alternativi.
Aggiornamento globale della traccia del feromone
Nell’ACS solo una formica può aggiungere il feromone dopo ogni iterazione.
Quindi l’aggiornamento del feromone in questo algoritmo è implementato così:
con
=1/
. E’ importante sottolineare che nell’ACS l’aggiornamento della
traccia di feromone si applica solo agli archi di
, e non a tutti gli archi come
nell’AS. Ciò è importante perché in questo modo la complessità computazionale
dell’aggiornamento del feromone a ogni iterazione è ridotta da
con n la grandezza dell’istanza da risolvere. è il parametro che rappresenta
l’evaporazione del feromone. Negli esperimenti iniziali si notò che il percorso
trovato per piccole istanze di un TSP usando il metodo iteration-best era poco
differente da quello trovato usando il metodo best-so-far , al contrario per
istanze con più di 100 città l’uso del percorso best-so-far dava risultati
nettamente migliori.
Aggiornamento locale della traccia del feromone
Il contributo più interessante dell’ACS rispetto agli algoritmi precedentemente
analizzati è l’introduzione di un aggiornamento locale del feromone, che si
affianca all’aggiornamento globale precedentemente esposto. Questo tipo di
aggiornamento del feromone è attuato da tutte le formiche dopo ogni step di
costruzione della soluzione, ovvero dopo che hanno attraversato un arco ( ), e
si può esprimere in questo modo:
76
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
con ,
,e
che sono due parametri. Il valore di
è settato per
essere lo stesso valore iniziale delle tracce di feromone. Sperimentalmente, è
stato trovato che un buon valore per è 0.1, mentre un buon valore per
è
1/
, con il numero di città nell’istanza del TSP in questione e
la
lunghezza del percorso del “vicino più vicino”.
L’effetto di questo aggiornamento locale del feromone è che ogni volta che una
formica usa un arco, la quantità di feromone dell’arco attraversato diminuisce.
In questo modo l’arco in questione diventa meno desiderabile per le formiche
seguenti e quindi, come già detto, si aumenta l’esplorazione degli archi che non
sono stati ancora visitati e quindi l’algoritmo va più difficilmente in una
situazione di stagnazione. Se per gli algoritmi precedenti non c’era differenza se
le formiche agivano in parallelo o sequenzialmente, nell’ACS c’è differenza e
questo è dovuto alla regola di aggiornamento locale del feromone. Nella
maggior parte delle implementazioni dell’ACS la scelta è fatta per far sì che le
formiche si muovessero in parallelo, sebbene al momento non c’è un’evidenza
sperimentale in favore dell’una o dell’altra scelta.
In conclusione si può affermare che l’Ant colony optimization è un’euristica il cui
punto di forza consiste nell’essere un sistema intelligente distribuito. Ciò
significa che le scelte adottate non sono prese da un’unica intelligenza che
lavora al problema, ma da una colonia, che pensa autonomamente e grazie ai
feromoni riesce a condividere le soluzioni appena vengono trovate, adottando
dinamicamente il processo di ottimizzazione.
2.8 Differenze tra Polyagent e Ant Colony Optimization
La tecnica polyagent sostiene il confronto con diversi paradigmi precedenti dei
sistemi multi-agente. Nel polyagent, ogni ghost ha la stessa funzione: esplorare
un possibile comportamento di un’entità del dominio analizzato. La pluralità dei
ghosts fornisce, non una decomposizione funzionale, ma un insieme di stime di
comportamenti alternativi.
77
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
In molti costrutti multi-agente ogni agente verifica solo una serie possibile di
interazioni con le altre entità; al contrario, nel costrutto polyagent la
coordinazione pheromone-based permette a ogni ghost di regolare il suo
comportamento in base a molti altri comportamenti alternativi di altre entità
nel dominio.
Figura 30 : Confronto tra Polyagent e altri paradigmi
Come il polyagent, l’Ant Colony Optimization usa i feromoni per integrare le
esperienze degli agenti che operano in parallelo. Il vantaggio del polyagent è la
nozione di avatar come punto centrale di contatto per gli agenti di una singola
entità.
Il termine “polyagent” è un neologismo per diversi agenti software che
congiuntamente rappresentano l’entità di un dominio e i suoi comportamenti
alternativi. Il termine è usato in altri due contesti che non devono creare
confusione.
In medicina, la cosiddetta “polyagent therapy” usa agenti di trattamento
multipli (in particolare, diversi farmaci combinati nella chemioterapia).
Vicino al dominio di interesse di questa tesi di laurea, ma comunque diverso, è
l’uso del termine fatto da K. Kijima per descrivere un approccio fondato sulla
teoria dei giochi per analizzare le interazioni sociali e organizzative di diverse
persone che prendono decisioni. Per Kijima il termine “poly-agent” ha senso
solo come una descrizione di un sistema, e non descrive un agente singolo.
78
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Nell’approccio introdotto da Parunak ha senso parlare di un singolo costrutto di
modellazione chiamato “polyagent”.
Infine, per la comprensione di altre differenze tra i due paradigmi di
modellazione Swarm, si rimanda al Capitolo 4 di conclusioni.
79
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Capitolo 3
Piattaforme per lo sviluppo di
applicazioni multi-agente
3.1 Introduzione
La modellazione software di algoritmi Swarm attinge proficuamente alle
tecniche proprie dei sistemi multi-agente. In tali sistemi infatti gli “agenti”
mappano direttamente i componenti della swarm intelligence (es. insetti) e
consentono di modellare agevolmente le loro relazioni.
Prima di entrare nel vivo della descrizione delle piattaforme di simulazione e
sviluppo di sistemi multi-agente è utile fare un passo indietro per analizzare il
tipo di sistema di fronte al quale ci si trova. Non è stato specificato
esplicitamente in precedenza, ma è facilmente intuibile che il sistema preso in
considerazione in questa tesi sarà composto da vari “agenti” (i.e. diversi
esarotori, una piattaforma terrestre, etc.), quindi si può approcciare ad esso con
le tecniche software multi-agente. H.Van Dyke Parunak nei suoi technical papers
descrive i MAS (Multi-Agent-System) come una tripla organizzata così:
A sua volta un agente è visto come una quadrupla:
è un set di valori che definiscono completamente l’
e
sono dei sottoinsiemi dello
accoppiate all’ambiente.
80
.
le cui variabili sono
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
è una sorta di applicazione che però ha un’esecuzione autonoma, nel
senso che non viene invocata da un’entità esterna all’agente stesso. Il
va a cambiare lo
dell’
. In termini computazionali ogni
agente ha la sua CPU virtuale.
Per quanto riguarda l’ambiente in cui opera l’Agente, esso può essere visto
sintatticamente come un sottoinsieme di un Agente:
La cosa importante da capire riguardo all’ambiente è che esso stesso è un
elemento attivo del sistema, ha il suo processo che cambia il suo stato,
indipendentemente dalle azioni dei suoi agenti. L’ambiente, a differenza degli
agenti, è concettualmente illimitato.
Tutto quello che verrà esaminato in questo capitolo, parte quindi dal concetto di
agente del quale si è appena riportata una definizione in termini abbastanza
matematici.
A questo punto se ne vuole dare una definizione più debole che risulterà
probabilmente più intuitiva della precedente. Un agente è visto come un
sistema computerizzato che oltre ad avere abilità come l’autonomia, la
reattività ecc, è anche concettualizzato o implementato usando concetti che
solitamente sono applicati agli esseri umani. Quindi, un agente può essere visto
come un componente software e/o hardware di un sistema capace di agire
esattamente per assolvere dei compiti per conto del suo utente.
È in questo punto che entrano in gioco le piattaforme software che devono
fornire un supporto concreto allo sviluppo di questi concetti e far sì che
diventino sempre più diffusi.
L’obiettivo di questo capitolo è recensire e confrontare alcuni tra i software
multi-agente più usati, mettendo in luce vantaggi e svantaggi di ognuno di essi.
81
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
3.2 Dalla tecnologia agent-based ai MAS (Multi-AgentSystem)
È convinzione diffusa in ambito scientifico che la tecnologia agent-based sia un
risultato di convergenza tra tante tecnologie all’interno della scienza informatica
così come la programmazione object-oriented, la vita artificiale e l’informatica
distribuita. Un altro aspetto importante degli agenti è la loro capacità di offrire
l’intelligenza con l’interazione, cosa che suggerisce la fusione di due differenti
flussi di ricerca quali l’intelligenza artificiale (AI) e l’interazione Uomo-Computer
(HCI: Human-Computer-Interaction). In maniera più filosofica gli agenti si
possono vedere come un mezzo per riempire il gap che c’è tra gli esseri umani e
le macchine, tramite l’intelligenza e l’interazione.
Ogni agente percepisce (lo stato dell’ambiente in cui opera), deduce (aggiorna il
suo stato interno, in accordo con le proprie percezioni), decide (su un azione),
agisce (per cambiare lo stato dell’ambiente in cui opera).
Figura 31 : Accoppiamento “human-agent”
La tecnologia degli agenti intelligenti è a un punto interessante di sviluppo, essa
si sta sviluppando in campi di applicazione molto diversi, come già esposto nel
capitolo precedente, come la meteorologia, i videogiochi di guerra, la gestione
82
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
delle missioni di UAV, ecc.. In ogni caso, ci sono tutti indicatori che evidenziano
come questa sia una tecnologia in via di maturazione.
Dal concetto di agente, come si nota anche dalla figura 31, si passa, tramite il
concetto di raggruppamento di agenti, a quello di MAS (Multi-Agent-System) già
citato nei precedenti capitoli. Un ruolo molto fondamentale nei MAS lo
ricoprono i concetti di:
Coordinazione-Comunicazione
Cooperazione
Omicini e Ossowoski (rispettivamente dell’Università di Bologna (Italia) e di
Treviri (Germania)), definiscono la coordinazione come la gestione delle
dipendenze tra le attività. Infatti senza coordinazione gli agenti potrebbero
entrare i conflitto, vanificare i loro sforzi e sprecare risorse, fallendo nel
raggiungimento degli obiettivi richiesti. Quindi una condizione necessaria per la
sopravvivenza dell’agente e dei sistemi multi-agente è il saper coordinare i
propri sforzi.
Un altro ingrediente base di un sistema multi-agente, strettamente legato a
quello della coordinazione, è l’abilità degli agenti di comunicare tra di loro. La
comunicazione è essenziale per la coordinazione in quanto essa permette agli
agenti non solo di raggiungere i loro obiettivi individuali o per l’insieme di
agenti, ma anche di coordinare le azioni e i comportamenti degli agenti. La
comunicazione è come se servisse a vincolare le decisioni dei singoli agenti, man
mano che la “missione” evolve, cioè dato un obiettivo non è detto che all’utente
del sistema interessi solo il suo raggiungimento, ma molto probabilmente sarà
importante anche il modo in cui l’obiettivo sarà raggiunto, e per gestire ciò
serve proprio la comunicazione tra gli agenti. Da un punto di vista più
ingegneristico, quando gli agenti comunicano è come se semplificassero agli altri
agenti il proprio modello matematico, cosa che ridurrà sicuramente l’incertezza
su ogni agente e aumenterà la precisione di raggiungimento dell’obiettivo.
In un sistema multi-agente, gli agenti possono comunicare tra loro usando dei
linguaggi di comunicazione specifici (ACLs: Agent Communication Languages).
Questa capacità permette agli agenti di estrarre una conoscenza utile da un
insieme molto voluminoso di informazioni eterogenee. Inoltre questo tipo di
83
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
sistemi, sempre basandosi sulla interazione tra gli agenti, offrono anche un
approccio potente di decomposizione strutturale dell’obiettivo da raggiungere.
I sistemi multi-agente sono molto bene esposti nel libro di Yoav Shoham e Kevin
Leyton-Brown, intitolato proprio “Multiagent Systems”.
Gli autori aprono il loro libro in questo modo: “Immaginiamo di avere un agente
software personale che è attratto per conto nostro dall’e-commerce. Diciamo
che gli obiettivi di questo agente sono quelli di seguire prodotti disponibili
online in diversi posti per un determinato arco temporale, e acquistare alcuni di
essi, per nostro conto, a prezzi allettanti. Per avere successo, il vostro agente
dovrà contenere le vostre preferenze per i prodotti, il vostro budget, e in
generale la vostra conoscenza dell’ambiente in cui egli andrà ad operare.
Inoltre, l’agente dovrà contenere la vostra conoscenza di altri agenti simili con i
quali egli si troverà ad interagire (i.e. agenti che competono in un’asta, o agenti
che rappresentano i titolari dei negozi) e dei quali bisogna avere le preferenze e
le conoscenze. Un insieme così strutturato di agenti forma un multiagent
system”
Può sembrare strano, ma in questo libro non c’è una vera e propria definizione
di multiagent system, in quanto ci sono molte definizioni che competono. Viene
data una definizione vaga che è questa: i multiagent systems sono quei sistemi
che includono diverse entità autonome, o con informazioni divergenti, o con
interessi divergenti, o con entrambi.
Già dal precedente capitolo si è capito che i sistemi multi-agente possono essere
visti come un nuovo paradigma per la comprensione e la costruzione di sistemi
distribuiti, nei quali si assume che i componenti computazionali sono autonomi,
cioè hanno la capacità di controllare i loro comportamenti nell’ottica di
raggiungere i propri obiettivi. Nel tempo i sistemi multi-agente hanno provato di
essere un paradigma valido in un numero consistente di applicazioni collegate in
rete, che richiedono l’integrazione dell’informazione proveniente da diverse
entità eterogenee e autonome.
Si può quindi definire un sistema multi-agente come un sistema composto da
diversi agenti che possono trarre vantaggio da risorse computazionali e capacità
che sono distribuite su una rete di entità interconnesse. Un approccio agent-
84
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
based permette la creazione di sistemi flessibili, robusti, e che si possono
adattare all’ambiente, questo è d’aiuto specialmente in quelle situazioni in cui i
componenti del sistema non sono noti a priori, ma cambiano nel tempo, e sono
altamente eterogenei. L’informatica agent-based offre la possibilità di soluzioni
decentralizzate incorporando autonomia e intelligenza in applicazioni
cooperative e distribuite.
Infatti un altro beneficio offerto dai sistemi multi-agente è sicuramente la
distribuzione di tutti gli agenti su una rete. Gli agenti software possono avere
diversi livelli di intelligenza, questo permette di ridurre la quantità di
informazioni scambiate tra gli agenti con un conseguente minore tempo di
risposta, rispetto al caso dei tradizionali sistemi centralizzati.
Andando più nello specifico si può parlare di programmazione agent-oriented
(AOP: Agent Oriented Programming) che è il paradigma software usato per
facilitare l’informatica agent-based ed è un’estensione della programmazione
object-oriented (OOP), nel senso che sostituisce le nozioni di classe e
ereditarietà rispettivamente con le nozioni di ruoli e messaggi.
In questi ultimi anni, la comunità di modellazione agent-based ha sviluppato
diversi pratici toolkit di modellazione multi-agente che permettono a tutti di
sviluppare applicazioni agent-based. Molti altri toolkit stanno nascendo in
questi ultimi anni e ogni toolkit ha una varietà diversa di caratteristiche.
In ogni caso le tecnologie agent-based sono ancora immature, esse infatti non
potranno mantenere le loro promesse e non diventeranno molto diffuse fin
quando gli standard che supportano l’interoperabilità tra gli agenti non saranno
pronti e gli ambienti per lo sviluppo di sistemi multi-agente non saranno
disponibili. Comunque, molte persone stanno lavorando sulla standardizzazione
delle tecnologie multi-agente (come ad esempio Knowledge Sharing Effort,
OMG, e FIPA), e anche sullo sviluppo di ambienti di sviluppo (come ad esempio
DMARS, RETSINA, e MOLE).
Alcuni ambienti di sviluppo forniscono modelli di agente predefiniti e strumenti
per semplificare lo sviluppo dei sistemi. Inoltre, alcuni di essi provano a
interagire con altri sistemi attraverso un linguaggio di comunicazione tra agenti
85
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
noto come KQML23. Comunque, un linguaggio di comunicazione condiviso non è
abbastanza per supportare l’interoperabilità tra diversi sistemi agent-based, in
quanto servono anche i servizi comuni relativi agli agenti.
Il lavoro di standardizzazione della FIPA riconosce questa questione e, oltre a un
linguaggio di comunicazione, specifica gli agenti chiave necessari per la gestione
di un sistema agent-based e l’ontologia condivisa che deve essere usata per
l’interazione tra due sistemi multi-agente.
Quindi prima di entrare nel vivo della descrizione di alcune piattaforme per la
modellazione multi-agente e anche se nessuno dei software di seguito analizzati
è conforme completamente alle specifiche FIPA, si è deciso lo stesso di fare una
breve digressione per parlare del lavoro di standardizzazione, molto importante,
svolto da questa organizzazione della Computer Society IEEE.
3.3 Specifiche FIPA
La Foundation for Intelligent Physical Agents (FIPA) è una associazione
internazionale no-profit di compagnie e organizzazioni che condividono gli sforzi
per la produzione di standard per tecnologie agent-based generiche. FIPA non
promuove una sola tecnologia per un unico dominio, ma un insieme di
tecnologie generali per differenti aree di applicazione che gli sviluppatori
possono integrare per creare sistemi complessi con un alto grado di
interoperabilità.
Il primo documento della FIPA, chiamato “specifiche FIPA97”, stabilisce le regole
normative che permettono a una società di agenti di esistere, operare ed essere
gestita. Loro identificano i ruoli di alcuni agenti chiave necessari per la gestione
23
Knowledge Query and Manipulation Language o anche (KQML) è un linguaggio e protocollo di
comunicazione, proposto nel 1993, che ha le proprie basi sullo SGML (Standard Generalized Markup
Language); è usato per scambiare informazioni e conoscenza.
Tim Finin ha svolto il lavoro relativo a KQML presso la University of Maryland Baltimore County, Lab for
Advanced Information Technology; il quale è parte dell' ARPA Knowledge Sharing Effort.
Il formato di messaggi e protocollo KQML può essere usato per interazioni tra sistemi intelligenti,
oppure da un programma applicativo, o da altri sistemi intelligenti. KQML è stato usato
prevalentemente per gestire la comunicazione tra sistemi multi-agente.
86
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
della piattaforma e per descrivere il linguaggio di gestione degli agenti. Tre ruoli
obbligatori furono identificati in una piattaforma multi-agente:
L’Agent Managment System (AMS) è l’agente che esercita il controllo
supervisore sull’accesso e sull’uso della piattaforma.
L’Agent Comunication Channel (ACC) fornisce un percorso di contatto tra
gli agenti dentro e quelli fuori dalla piattaforma.
Il Directory Facilitator (DF) è quello che fornisce i servizi di “pagine gialle”
alla piattaforma.
Le specifiche FIPA definiscono anche l’Agent Communication Language (ACL),
usato dagli agenti per scambiare messaggi. La sintassi di questo linguaggio,
vicina al KQML, comunque presenta con esso alcune differenze; la più evidente
è l’esistenza di semantiche formali che dovrebbe eliminare ogni ambiguità e
confusione di uso del linguaggio.
Le parti rimanenti delle specifiche FIPA riguardano altri aspetti, dall’integrazione
agente-software alla sicurezza degli agenti, cose che esulano dallo scopo di
questo capitolo e per le quali si può consultare il sito web FIPA : www.fipa.org.
3.4 Le piattaforme software per modelli Agent-Based
Nel seguito si andranno ad analizzare e confrontare le seguenti piattaforme
software per la modellazione multi-agente:
NetLogo
MASON
Swarm (Java version)
Swarm (Objective-C version)
Repast
3.4.1 NetLogo: Il software NetLogo, sviluppato originariamente da Uri
Wilensky nel 1999 presso il Center for Connected Learning and ComputerBased
Modeling
della
Northwestern
University
(http://ccl.northwestern.edu/NetLogo/), nasce come tool didattico ed offre un
ambiente di sviluppo programmabile di modellazione per la simulazione di
fenomeni naturali, sociali ecc. NetLogo ben si presta a sistemi che evolvono nel
87
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
tempo, inoltre supporta centinaia o migliaia di agenti indipendenti che operano
concorrentemente. Dalle varie simulazioni è possibile esplorare le connessioni
tra i comportamenti dei singoli agenti, di basso livello, e quelle che emergono a
un livello più alto e che sono il risultato dei comportamenti di basso livello (vedi
comportamento emergente al paragrafo 2.3).
Figura 32 : Il logo di NetLogo
NetLogo è una piattaforma abbastanza semplice da usare, infatti si possono far
partire simulazioni e “giocare” con esse, e si possono creare modelli
personalizzati; inoltre dispone di una interfaccia grafica user-friendly che
semplifica molto la comprensione del software e del modello implementato, agli
utenti alle prime armi; il linguaggio utilizzato è abbastanza semplice. La sua
facilità di utilizzo è sicuramente una conseguenza anche della buona
documentazione di cui è corredato, che include anche una libreria abbastanza
fornita, all’interno della quale si possono trovare oltre 150 modelli di esempio,
che sono anch’essi molto utili per la comprensione del funzionamento della
piattaforma; oltre alla documentazione ci sono migliaia di persone che utilizzano
NetLogo nel mondo e che spesso possono rappresentare un punto di
riferimento per gli utenti inesperti, nei forum e nelle community, ormai molto
diffusi su internet.
NetLogo é scritto in JAVA ma é completamente programmabile per mezzo di
un meta-linguaggio ad oggetti semplificato basato sulla sintassi del Logo
(S.Papert, anni ‘60) ed introdotto originariamente nell’ambiente Starlogo, il
progenitore di NetLogo creato all’MIT nel 1990 (M.Resnick). Il linguaggio
utilizzato in NetLogo è sicuramente molto più semplice da usare di Java o
Objective-C, proprio perchè contiene molte strutture e primitive di alto livello
che riducono gli sforzi di programmazione. Il linguaggio inoltre contiene molte,
ma non tutte, le capacità di controllo e strutturazione di un linguaggio di
programmazione standard.
Quello adottato da NetLogo è un linguaggio di programmazione funzionale, ed è
anche questo che rende il software relativamente semplice da usare. Viceversa
88
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
la mancanza di vere caratteristiche object-oriented a volte costituisce una
limitazione. Ad esempio potrebbe essere poco chiaro quali metodi sono
associati a quali agenti, infatti a volte le azioni di una classe di un agente
posssono essere scritte come parte di una lista di azioni eseguite da un’altra
classe di agenti. Inoltre, sebbene non ci sia un supporto esplicito per la
formazione delle strutture, le proprietà del linguaggio permettono un vero e
proprio feedback tra gli agenti, i gruppi di agenti e l’ambiente.
Con NetLogo risulta molto difficoltoso implementare comunicazioni collegate in
rete tra gli agenti, specialmente con variabili multiple, anche se NetLogo
supporta i collegamenti tra gli agenti. Molto spesso non è per niente semplice
estendere e modificare alcuni semplici modelli in NetLogo, ad esempio,
l’aggiunta di dati GIS richiede specifiche conoscenze di programmazione e l’uso
creativo delle caratteristiche di NetLogo.
All’interno di NetLogo é possibile riprodurre molte delle caratteristiche di un
sistema complesso, studiare la sua evoluzione nel tempo e visualizzarla in
tempo reale all’ interno di un laboratorio virtuale 2D o 3D.
L’ambiente di sviluppo di NetLogo interpreta direttamente il codice senza
bisogno di compilarlo, quindi al suo interno é possibile, in tempo reale:
interagire con il sistema attraverso pulsanti e sliders per modificare i
parametri di controllo;
visualizzare variabili, grafici e istogrammi relativi alla simulazione;
importare/salvare immagini e dati da/su files esterni;
E’possibile inoltre:
effettuare set di esperimenti al variare delle condizioni iniziali o dei
parametri di controllo;
lanciare le simulazioni più pesanti in modalitá off-line su computer
remoti;
usufruire di una ricca libreria di modelli di esempio da cui prendere
spunto e di un help pratico ed ipertestuale;
salvare le proprie simulazioni come applet JAVA e visualizzarle
immediatamente dentro un web browser.
89
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 33 : Interfaccia utente di NetLogo con il modello di diffusione ad aggregazione limitata.
NetLogo è un mondo con tre tipi di agenti:
Patches : Corrispondo ai pixel del mondo virtuale e sono quindi
immobili. Possono cambiare colore o contenere informazioni sotto forma
di variabili proprietarie.
Turtles : Sono oggetti in grado di muoversi, cambiare colore, forma e
proprietà, anche stavolta sotto forma di variabili proprietarie.
Observer : monitora tutto quello che accade nel mondo
Un passo fondamentale per la comprensione di NetLogo è la conoscenza del
fatto che esso è stato progettato dai suoi ideatori con uno specifico tipo di
modello in mente: agenti mobili che agiscono concorrentemente in uno spazio a
matrice con un comportamento dominato dalle interazioni locali in brevi istanti
temporali.
90
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Forse proprio perché NetLogo è stato progettato chiaramente per un tipo
specifico di modello e per il fatto che utilizza un linguaggio abbastanza
semplificato, gli scienziati tendono a considerarlo troppo limitato.
Figura 34 : Il mondo in NetLogo
In conclusione si può affermare che NetLogo è una piattaforma molto in voga
per lo sviluppo di ABM, e che si presta molto per applicazioni in cui i sistemi non
sono troppo complessi, inoltre è un software molto indicato per utenti inesperti,
e ciò gli ha permesso una facile diffusione a livello mondiale.
3.4.2 SWARM (Objective-C & Java versions): Swarm è nato nel 1995, nel Santa
Fe Institute (New Mexico, USA). L'obiettivo era quello di creare un insieme di
programmi e librerie standard, da usare per simulare ed analizzare sistemi
complessi di comportamento, nell'ambito delle scienze naturali e sociali.
Figura 35 : Il logo di SWARM
91
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
L'idea era di avere uno strumento che permettesse ai ricercatori di sviluppare le
loro applicazioni senza dovere spendere tempo su problemi tipici di
programmazione informatica (per esempio, la generazione di grafici o di
un'interfaccia grafica, o i modi di salvare i risultati delle simulazioni).
SWARM è una piattaforma per modelli agent-based (ABM) che include:
Una struttura concettuale per la progettazione, descrizione e conduzione
di esperimenti su ABM.
Un software che implementa questa struttura e fornisce molti pratici
tool.
Una community di utenti e sviluppatori che condividono le idee, i
software e l’esperienza.
Uno dei concetti chiave di SWARM è che il software deve implementare sia un
modello, sia, separatamente, fornire un laboratorio virtuale per l’osservazione e
la conduzione di esperimenti sul modello stesso. Un altro concetto molto
importante nella comprensione di questa piattaforma è il fatto che i modelli
sono progettati come una gerarchia di “Swarms”, essendo lo Swarm il
componente fondamentale che organizza gli agenti di un modello SWARM. Uno
Swarm è una collezione di agenti con un programma di eventi applicabile a
questi agenti.
Un semplice esempio di Swarm può essere un insieme di 15 lupi, 50 conigli e un
giardino con delle carote, e un semplice programma potrebbe essere: i conigli
mangiano le carote e si nascondono, i lupi mangiano i conigli. Oltre ad essere
contenitori di agenti, gli Swarm possono essere loro stessi degli agenti.
La maggior parte di risorse presenti sulla rete che riguardano questo software
sono le seguenti:
The Swarm Development Group (http://www.swarm.org/index.html)
Gruppo Torinese Utilizzatori Swarm (http://eco83.econ.unito.it/swarm/)
Benedikt
Stefansson's
course
at
UCLA
(http://cce.sscnet.ucla.edu/swarmcourse/)
Support lists (http://www.swarm.org/community-mailing-lists.html).
Economic Simulations in Swarm: Agent-based Modelling and Object
Oriented Programming, editors Francesco Luna and Benedikt Stefansson,
Kluwer Academic Publishers, 2000. Questo libro contiene rapporti su
diversi lavori che usano Swarm, i cui programmi si trovano sul sito web di
92
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Swarm
(ftp://ftp.swarm.org/pub/swarm/src/userscontrib/anarchy/lunabook/).
Swarm by Example: bell, Ralph Stefan: è una presentazione di un
programma,
dalla
prima
idea
alla
compilazione.
(ftp://ftp.swarm.org/pub/swarm/src/userscontrib/anarchy/bell/HTML/bell.html)
Le librerie di Swarm sono scritte con ObjectiveC. Però gli scrittori di Swarm
forniscono un'interfaccia per scrivere i programmi con Java. Non c'è dunque
un'implementazione “nativa” di Swarm in Java (e non è prevista).
Per scrivere un programma in Swarm i files che verranno scritti, sono diversi a
seconda se si utilizza ObjectiveC o Java, ma comunque si troveranno sempre gli
stessi elementi, che sono i seguenti:
Un file dove è definita una funzione main(), che è fondamentale nel
programma. Qui, viene inizializzato lo Swarm, e sono creati gli “Swarms”
importanti nel programma (il modelSwarm, l'observerSwarm o
l'experimentSwarm), ed è sempre qui che viene lanciata la simulazione.
Un Makefile che permette di compilare il programma, esso contiene i
nomi dei files che compongono il programma, le relazioni fra di loro, con
informazioni sulla posizione di Swarm nel filesystem.
Un modelSwarm, dov'`e definito il modello e sono creati gli agenti. Un
programma di Swarm funzionerebbe anche senza modelSwarm,
dichiarando tutto nel metodo main(), ma si perderebbero molte facilità di
Swarm (specialmente gli Schedules).
(Facoltativo, ma utile) Un observerSwarm, dove si trovano gli oggetti e
le interfaccie grafici.
(Facoltativo) Un experimentSwarm, dov'è definita una simulazione.
Permette di far girare il programma più volte, cambiando alcuni
parametri.
Alcuni files che definiscono gli agenti del modello.
La differenza principale tra un programma scritto in Java e uno in Objective-C è
che dichiarazioni e implementazioni delle classi non sono più separate fra i files
.h e .m. Ogni classe di nome ClassName si trova in un file ClassName.java (si noti
la corrispondenza fra il nome della classe e quello del file). La funzione main() si
trova nel file ProgramName.java, che dopo compilazione girerà con il comando:
javaSwarm ProgramName. La compilazione si fa sempre tramite il Makefile.
93
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Ambedue le versioni di Swarm, scritte in due linguaggi diversi, hanno
caratteristiche positive e negative.
A proposito di Objective-C:
È semplice da usare.
È il linguaggio nel quale è stato sviluppato Swarm dall'inizio, dunque la
maggioranza delle risorse (programmi, tutorials, ecc) sono scritti in
Objective-C.
È veloce.
Objective-C permette di usare le funzioni di “low-level” di C, tipo unioni e
puntatori (che tra l'altro, possono essere pericolose per il debuttante).
Permette “dynamic typing” 24.
A proposito di Java:
È semplice da usare, ma i nomi dei metodi sono generalmente più lunghi
(dunque, un pò più da scrivere).
Ha però come vantaggio il fatto che si scrivono meno files.
Possiede meno risorse (tutorials, programmi, ecc), ma in questi ultimi
anni si sta sviluppando.
Di questo linguaggio se ne fa un grande uso anche nella creazione di siti
internet, applets, ecc.
Incoraggia lo “static typing”25, quindi forza a evitare alcuni errori
(specialmente di runtime), che si possono fare con Objective-C. Dall'altro
lato, è meno flessibile in certe circostanze.
24
In Objective-C esiste un tipo di dato molto importante ed e’ il tipo id. Esso altro non e’ che un
puntatore all’oggetto, o volendo essere più precisi, un puntatore alla variabile d’istanza dell’oggetto. Il
tipo id non tiene conto di informazioni sull’oggetto, eccetto il fatto che e’ un oggetto. Ma ci sarà un
punto del programma che si dovranno usare i metodi dell’oggetto a cui l’id punta. Quindi la domanda
che nasce e’: "come fa il compilatore a sapere mentre il programma sta eseguendo (in gergo: a runtime)
a che TIPO di oggetto punta la variabile di tipo id?" Ogni oggetto deve essere in grado di dire a tempo
d’esecuzione qual’e’ il suo tipo e per farlo usa una variabile d’istanza detta isa che identifica la classe
dell’oggetto, cioè che tipo d’oggetto è. Gli oggetti sono quindi "tipati dinamicamente" a tempo
d’esecuzione.
25
I linguaggi di programmazione che utilizzano lo static typing sono quelli in cui le variabili non hanno
bisogno di essere dichiarate prima del loro utilizzo. Questo implica che in questi linguaggi ci deve essere
94
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Java fa automaticamente il “garbage collecting” (cioè distrugge
automaticamente gli oggetti non usati, prevenendo quindi i “memory
leaks”). Infatti visto che anche un ABM molto semplice genera milioni di
oggetti molto rapidamente, il fallimento dei programmi scritti in
Objective-C a rilasciare gli oggetti inutilizzati, fa peggiorare velocemente
le performance del sistema.
Java non è il linguaggio nativo di Swarm, dunque certe funzioni possono
essere più lente di quelle scritte con Objective-C, a causa delle necessarie
traduzioni.
L'interfaccia Java offre la possibilità di sfruttare delle numerose librerie
grafiche di Java (che sono più ricche di quelle offerte da Swarm).
Visto che queste piattaforme utilizzano ampiamente classi generiche, i
programmatori sono portati ad usare frequentemente gli operatori di
casting di Java. Questo rende il codice più complicato sia per la lettura
che per la scrittura, e rende il tutto scoraggiante per gli utenti alle prime
armi.
Per concludere si può riportare una frase di Marcus Daniels, Alex Lancaster e
Benedikt Stefansson espressa nel loro articolo: A tutorial introduction to Swarm:
“Mentre Objective-C ha molti vantaggi strettamente come linguaggio, i vantaggi
culturali e pratici di Java hanno maggior peso per le persone che vogliono
cominciare a programmare con Swarm”.
Quindi da questa affermazione si capisce che probabilmente tra queste due
versioni di Swarm non si può dire quale sia la migliore in assoluto, ma
probabilmente sarebbe consigliabile avvicinarsi alla piattaforma che utilizza Java
nel caso in cui non ci sia esperienza in questo campo.
3.4.3 Repast: Sviluppato originalmente all’University of Chicago, il Recursive
Porous Agent Simulation Toolkit (Repast) è oggi sostenuto dall’Argonne National
Laboratory e gestito dalla Repast Organisation for Architecture and
Development (ROAD). Inoltre Repast fornisce una libreria di classi per la
creazione, esecuzione, visualizzazione e collezione dei dati da una simulazione
una dichiarazione esplicita prima che le variabili vengano utilizzate. Java è un esempio di linguaggio
static typed.
95
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
agent-based. Repast include anche diverse varietà di grafici per la
visualizzazione dei dati (i.e. istogrammi e grafici sequenziali) ed è capace di
prendere degli snapshots delle simulazioni in esecuzione, o creare video
QuickTime. Sicuramente Repast prende molto in prestito dalla piattaforma
Swarm, infatti può essere propriamente visto come una struttura di simulazione
“Swarm-Like”.
Figura 36 : Il logo di Repast
Repast provvede all’implementazione dei modelli in tre linguaggi di
programmazione:
Python (RepastPy);
Java (RepastJ);
Microsoft.Net (Repast.Net).
RepastPy permette la creazione di modelli base che possono essere sviluppati
da programmatori con una esperienza limitata attraverso una “point-and-click”
GUI26. I modelli RepastPy possono essere in seguito esportati e/o convertiti in
Java per un ulteriore sviluppo in Repastj.
Repast.Net e RepastJ permettono lo sviluppo di modelli più avanzati in quanto
in un modello possono essere programmate funzionalità più complesse.
Repast ha un gruppo di utenti esteso e una mail-list attiva, come anche una
documentazione abbastanza fornita e dei modelli di dimostrazione disponibili
sul sito ufficiale della piattaforma (http://repast.sourceforge.net/).
26
L'interfaccia utente grafica, in sigla GUI (del corrispondente termine inglese graphical user interface),
comunemente abbreviata in interfaccia grafica, è un paradigma di sviluppo che mira a consentire
all'utente di interagire con il computer manipolando graficamente degli oggetti, svincolandolo
dall'obbligo di imparare una serie di comandi da impartire con la tastiera come invece avviene con le più
tradizionali interfacce testuali CLI (command line interface). È lo strato di un'applicazione software che si
occupa del dialogo con l'utente del sistema utilizzando un ambiente grafico.
96
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Bisogna dire che mentre RepastJ è tuttora sostenuto, Repast.Net e RepastPy
hanno già raggiunto una loro maturità e quindi tendono a non essere più
migliorati. Essi sono stati rimpiazzati da Repast Simphony (RepastS) che fornisce
tutte le funzionalità essenziali di RepastPy e Repast.Net, sebbene
l’implementazione sia fatta in Java. Il team di sviluppo di Repast ha fornito una
serie di articoli riguardanti RepastS. L’architettura e le funzionalità essenziali
sono introdotte da North et al. (2005), mentre l’ambiente di sviluppo è discusso
da Howe et al. (2006). Inoltre Tatara et al. forniscono una descrizione
dettagliata di come sviluppare un semplice modello “preda-predatore”,
illustrando le capacità di modellazione di RepastS.
In sintesi quindi Repast ha al giorno d’oggi tre tipi di piattaforme disponibili, e
ognuna di queste ha le stesse caratteristiche fondamentali. Comunque ogni
piattaforma fornisce un ambiente diverso per queste caratteristiche. Prese
insieme, le diverse versioni di Repast danno ai “modellisti” una scelta degli
ambienti per lo sviluppo e l’esecuzione del modello. RepastS estende l’insieme
di scelta, offrendo un nuovo approccio allo sviluppo e all’esecuzione delle
simulazioni.
In breve, una simulazione in Repast è primariamente una collezione di agenti di
ogni tipo e un modello che configura e controlla l’esecuzione dei
comportamenti di questi agenti, in accordo con un programma. Quest’ultimo
non solo controlla l’esecuzione dei comportamenti degli agenti, ma anche le
azioni relative al modello, come ad esempio l’aggiornamento delle finestre, la
registrazione dei dati e così via.
Infine per quanto riguarda il futuro, il lavoro su Repast si sta concentrando su
Evolver, un ambiente di sviluppo per la simulazione rapida, che risulta utile per
la creazione di simulazioni di reti. Usando un modello drag-and-drop, una
simulazione può essere graficamente composta di vari pezzi (modelli predefiniti,
agenti, componenti di analisi, ecc.). Ogni comportamento desiderato non
incluso nei componenti predefiniti può essere specificato usando NQPython
(Not Quite Python), un linguaggio Python-like specificatamente progettato per
integrarsi alla perfezione con Repast, ed inoltre molto più semplice di Java. Si
spera infine di espandere le capacità di Evolver oltre i modelli di reti.
97
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Figura 37 : Interfaccia utente di Repast con il modello “predator-prey”.
3.4.4 MASON: Questa piattaforma verrà presentata come un’evoluzione
scaturente da una tradizione ispirante di precursori come: Swarm, Ascape,
Repast.
Figura 38 : Il logo di MASON
MASON, l’ultimo toolkit che verrà analizzato in questo capitolo, è utile per la
simulazione di sistemi multi-agente a eventi discreti e single-process, veloce,
facilmente estendibile e scritto in Java. MASON fu progettato per diventare la
base per un gran range di simulazioni multi-agente, dallo swarm robotics ad
ambienti sociali complessi, comunque con un’enfasi particolare per le
applicazioni di swarm con tantissimi agenti (fino a milioni). Il suo progetto nasce
per affermarsi come alternativa più piccola e veloce a Repast.
98
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Il sistema è open-source e free, con licenza BSD27, ed è il risultato di uno sforzo
comune del dipartimento di Computer Science e del centro di Social Complexity
della George Mason University e può essere scaricato all’indirizzo web
http://cs.gmu.edu/ ∼ eclab/projects/mason/.
MASON è provvisto di diverse applicazioni di esempio, come quelle che
riguardano la ricerca del cibo delle formiche, i comportamenti degli stormi di
uccelli o dei banchi di pesci, sia in 2D che in 3D, modelli che simulano un
infezione virale e l’osservazione cooperativa di un obiettivo.
I modelli sviluppati in MASON possono essere affiancati da un toolkit GUI che
abilita la visualizzazione e la manipolazione del modello sia in 2D che in 3D (con
Java 3D), e che può produrre screenshoots e video. MASON non offre modelli
base, per programmatori alle prime armi, come fa NetLogo.
MASON è nato per soddisfare il bisogno di avere un toolkit che rendesse
relativamente semplice la creazione di un gran range di sistemi multi-agente e
altri modelli di simulazione, e per eseguire molti di questi modelli
efficientemente in parallelo.
Figura 39 : Elementi base del modello MASON e della piattaforma di visualizzazione
Gli obiettivi di progetto di MASON si possono riassumere così:
27
Le licenze BSD sono una famiglia di licenze permissive per software. Molte sono considerate libere ed
open source. Il loro nome deriva dal fatto che la licenza BSD originale (detta anche licenza BSD con 4
clausole) fu usata originariamente per distribuire il sistema operativo Unix Berkeley Software
Distribution (BSD), una revisione libera di UNIX sviluppata presso l'Università di Berkeley.
99
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Un nucleo piccolo, veloce, facilmente comprensibile e semplicemente
modificabile.
Una visualizzazione separata ed estendibile in 2D e 3D.
La produzione di risultati identici, indipendentemente dalla piattaforma.
La possibilità di creare un checkpoint nel disco per ogni modello, in modo
tale che esso possa essere ripreso in qualunque altra piattaforma con o
senza visualizzazione.
Un supporto efficiente senza visualizzazione, per un gran numero di
agenti (fino a milioni).
Un supporto efficiente con visualizzazione, per più agenti possibile.
Un semplice sistema di librerie.
Per quanto riguarda l’architettura, MASON è scritto in Java, che ha una
immeritata reputazione di lentezza; è un toolkit organizzato in maniera
modulare, con una architettura a strati. Alla base c’è un insieme di strutture dati
che possono essere usate per qualunque scopo. Subito dopo viene il livello che
riguarda il modello, con una collezione di classi che consistono in un programma
a eventi discreti, un generatore di numeri casuali di alta qualità, e una varietà di
campi che possono contenere oggetti e associarli a delle locazioni. Un altro
livello è quello della visualizzazione, che permette l’esposizione di campi e il
controllo della simulazione da parte dell’utente (l’architettura di MASON è
esposta anche nella figura seguente).
Figura 40 : Architettura della piattaforma MASON
100
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
In ogni istante si può distinguere il livello “modello” da quello “visualizzazione”,
e come già detto si può fare un checkpoint del modello sul disco, e spostarlo in
un'altra piattaforma e continuare ad eseguirlo o associarlo a un altro tipo di
visualizzazione (vedi fig. 41).
Figura 41 : Checkpoint e recupero di un modello MASON per eseguirlo stand-alone o su diversi tipi di tool di
visualizzazione
Alcune differenze tra MASON e Repast:
MASON:
Modello e visualizzazione separati.
Modelli in 3D.
Più veloce, specialmente su MAC OS X.
Più chiaro e più piccolo.
Repast:
Ha già al suo interno un supporto GIS.
Permette “l’import/export” in Excel.
Creazione di tabelle e grafici (in MASON questi dovrebbero essere
contenuti nel livello “custom simulation library”).
I modelli MASON sono tradizionalmente creati in due passi:
1. L’autore sviluppa il modello adatto semplicemente come una sottoclasse
di SimState28 completo di un codice ciclico che fa partire la simulazione,
esegue il programma, e alla fine termina. Dopo che questo codice è
completato, il modello MASON dovrebbe essere capace di eseguire sulla
command-line come un’applicazione GUI-less con ingresso indipendente.
28
Un modello MASON è interamente contenuto in una singola istanza di una sottoclasse user-defined
della classe del modello MASON (SimState). Questa istanza contiene un programma a eventi discreti e
zero o più campi.
101
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
2. L’autore crea un GUI-State per incapsulare il SimState allegando le
caratteristiche e le dimostrazioni. A questo punto le simulazioni possono
essere anche visualizzate.
Figura 42 : Simulazione della ricerca del cibo da parte delle formiche, sviluppata in MASON.
In conclusione, possiamo affermare che MASON è una piattaforma veloce,
portabile, con un nucleo abbastanza piccolo e che produce risultati replicabili
facilmente anche in altre piattaforme. Infatti come si è accennato in
precedenza, MASON è stato progettato per poter dividere dinamicamente il
modello dalla visualizzazione, o “riattaccarli” per portare la simulazione in
un’altra piattaforma, durante un’esecuzione. Inoltre, come già detto, è possibile
fornire la visualizzazione sia in 2D che in 3D.
3.5 Qual è la piattaforma migliore?
Tra quelle elencate NetLogo è sicuramente la piattaforma a più alto livello,
fornendo un semplice ma potente linguaggio di programmazione, integrato con
interfacce grafiche e una documentazione di supporto all’uso della piattaforma.
NetLogo è altamente consigliata, per la progettazione di modelli non troppo
complessi, e per scopi didattici.
MASON, Repast e Swarm sono piattaforme che forniscono una struttura per
l’organizzazione e la progettazione di Agent Based Models (ABMs) e le
corrispondenti librerie software. MASON è meno matura ed è progettata per
massimizzare la velocità di esecuzione. La versione Objective-C di Swarm è la
piattaforma con la libreria più matura, stabile e ben organizzata. L’Objective-C
sembra più naturale di Java per gli ABM ma soffre per quanto riguarda la
102
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
manutenzione del software e per la mancanza di tool di sviluppo. La versione
Java di Swarm permette alle librerie in Objective-C di essere richiamate da Java.
Repast fornisce funzioni Swarm-like in una libreria Java ed è una buona scelta in
molti casi, anche se parti della sua organizzazione andrebbero migliorate.
Una piattaforma che non verrà analizzata nel dettaglio nel seguito della
trattazione, ma che si è voluta citare per portare un esempio di piattaforma
conforme alle specifiche FIPA sopraesposte è JADE (Java Agent Development
Framework) che rende semplice lo sviluppo di applicazioni multi-agente in
accordo con le specifiche FIPA sopra esposte. JADE prova a mantenere alte le
performance di un sistema multi-agente distribuito, implementato in linguaggio
Java. Questa piattaforma usa un modello di agente e un’implementazione Java
che le permettono una buona efficienza di esecuzione, una buona riusabilità del
software, mobilità degli agenti e la realizzazione di diverse architetture multiagente.
Naturalmente non c’è una piattaforma migliore delle altre in assoluto, in quanto
dobbiamo ricordare che:
Le piattaforme analizzate continuano ad evolvere, alcune molto
rapidamente.
Sarebbe impossibile, anche volendo, esaminare tutte le situazioni in cui
possiamo trovarci con le simulazioni di alcuni modelli di esempio.
Ci sono tante altre piattaforme che non sono state analizzate in questo
capitolo.
NetLogo
Con la sua eredità di tool educazionale e didattico, emerge per la sua semplicità
di utilizzo e per la documentazione eccellente. È semplice raccomandare
NetLogo per modelli che sono:
Compatibili con il suo paradigma di breve termine e di interazione locale
tra gli agenti in un ambiente a matrice.
Non estremamente complessi.
Inoltre si consiglia NetLogo per la “prototipazione” di modelli che verranno più
tardi estesi con piattaforme di più basso livello.
103
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
La sua velocità di esecuzione non è una grande limitazione per molti campi di
applicazione, anche tenendo conto del gran risparmio di tempo in termini di
programmazione. Comunque i programmatori con più esperienza potrebbero
trovarsi male con NetLogo per il suo ambiente di sviluppo troppo semplificato.
Inoltre il vincolo di dover tenere tutto il codice in un solo file diminuisce la
possibilità di organizzazione del modello, e questa cosa può essere molto
scomoda per modelli di grandi dimensioni.
Swarm (Java version)
Questa piattaforma sembra non offrire un buon trade-off dei benefici di Java e
Objective-C. Sicuramente essa centra il suo obiettivo di creare una versione di
Swarm per gli utenti Java, ma ora che molte altre piattaforme Java sono
disponibili, i suoi motivi di attrazione sembrano essersi esauriti.
MASON
Questa potrebbe essere una buona scelta per programmatori esperti che
devono lavorare su modelli che richiedono un gran sforzo computazionale, cioè
che hanno molti agenti o tempi lunghi di esecuzione. Alcuni esperimenti di
Steven F. Railsback, Steven L. Lytinen & Stephen K. Jackson, hanno individuato
MASON come la piattaforma più veloce tra quelle analizzate in precedenza,
anche se i tempi di esecuzione di Repast erano soltanto dall’1 al 54% più lunghi
di quelli di MASON, con questa differenza che decresce all’aumentare della
complessità computazionale del modello in questione. Molte delle innovazioni
di MASON sono abbastanza intelligenti, come ad esempio l’inclusione di tutti I
metodi di disegno nella classe di interfaccia utente.
MASON può risultare abbastanza ostico per le persone che sono alle prime armi
in questo campo o nel caso di ABM molto complessi. Le cose che solitamente
non piacciono di MASON sono:
La terminologia non standard e a volte abbastanza confusa.
Insiemi di classi incompatibili.
104
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
La mancanza di una terminal window nella quale poter fare il debugging,
mentre si lavora nell’IDE29 Eclipse.
Figura 43 : Interfaccia di un modello originale in SWARM (sinistra) e replicato in MASON (destra).
Swarm (Objective-C version)
È il padre delle piattaforme che aderiscono al paradigma “struttura e libreria”
ed ha ancora i suoi vantaggi. Swarm è stabile, relativamente piccolo e ben
organizzato ed inoltre fornisce un insieme completo di tool, ha delle basi
concettuali chiare e un progetto intelligente, infine permette una separazione
netta tra le interfacce grafiche e il modello. Il suo concetto di “swarm” aiuta ad
organizzare i modelli: i modelli possono essere progettati e implementati
gerarchicamente in swarms separati, ognuno con la sua collezione di oggetti e il
suo programma di azioni. Questa capacità fornisce un livello di organizzazione
utile per i modelli semplici e specialmente per gli ABM complessi.
Gli svantaggi della versione Objective-C di swarm sono, come già indicato in
precedenza, quelli del linguaggio Objective-C:
29
Un integrated development environment (IDE), in italiano ambiente di sviluppo integrato, (conosciuto
anche come integrated design environment o integrated debugging environment, rispettivamente
ambiente integrato di progettazione e ambiente integrato di debugging) è un software che aiuta i
programmatori nello sviluppo del codice.
105
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Mancanza di tool per utenti alle prime armi.
Debole gestione degli errori.
La mancanza del “garbage collecting” (vedi paragrafo 3.4.2).
Questi svantaggi sono aggravati da una bassa disponibilità di documentazione e
in generale di materiale che potrebbe essere utile per la comprensione del
funzionamento della piattaforma.
Per alcuni tipi di modelli Swarm è più veloce delle piattaforme Java e per altri
tipi di modelli è più lento. In generale l’Objective-C dovrebbe essere più veloce
per la pura computazione, ma il fatto che Swarm utilizzi il suo codice per
l’implementazione delle funzioni di basso livello (definizione di oggetti e
allocazione delle variabili) potrebbe avere un suo costo in termini di tempi di
esecuzione.
Repast
È sicuramente la piattaforma Java più completa. Per implementare molte delle
funzioni di Swarm, Repast ha aggiunto alcune capacità come l’abilità di resettare
e far ripartire i modelli dall’interfaccia grafica e il gestore dell’esperimento di
“Multi-run”. Steven F. Railsback, Steven L. Lytinen & Stephen K. Jackson, hanno
trovato la velocità di esecuzione di questa piattaforma abbastanza comparabile
con la velocità delle altre piattaforme. Inoltre Repast include molte classi per
funzioni geografiche e di reti.
Anche se sono stati compiuti molti sforzi per rendere Repast accessibile ai
novizi, alcuni dei suoi elementi di base sembrano incompleti o non
adeguatamente progettati. Per cominciare si potrebbe organizzare meglio la
distribuzione del software stesso, ad esempio etichettando i pacchetti in primo
luogo per la loro funzione e separare i modelli dimostrativi dal software di base.
Nessuno di questi problemi è grave, ma con la grande comunità che segue
questa piattaforma, essi potranno essere superati facilmente nei prossimi anni.
106
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Capitolo 4
Conclusioni
In questa tesi viene proposto l’impiego di flotte di piattaforme aeree e terrestri
interoperabili e cooperanti, per applicazioni di gestione del post-evento
catastrofico. Vengono anche dimensionati e selezionati, come componente
essenziale del sistema, i sensori che potrebbero essere trasportati dalle
piattaforme per compiere le specifiche missioni.
I sistemi unmanned troveranno nei prossimi anni larga diffusione in impieghi
civili, soprattutto per le loro caratteristiche di utilizzo in ambienti “ostili”, dove è
pericoloso l’intervento umano. Tra i sistemi unmanned quelli considerati, di
classe “Small” (0-25kg), per loro natura amplificano la loro efficacia quando
vengono utilizzati in modalità cooperativa. Inoltre si fanno preferire per i bassi
costi sia di acquisizione che operativi, per la loro facilità di utilizzo e per la loro
intrinseca sicurezza che rilassa i requisiti connessi alle problematiche di
certificazione al volo tipiche dei sistemi di categoria superiore.
La soluzione alla base del funzionamento “cooperativo” di tali piattaforme è un
problema aperto e va individuata analizzando un sistema di sistemi composto
da più agenti e utilizzando per la sua modellazione tecniche “multi-agente”
unite a paradigmi di cooperazione di tipo Swarm.
Nella tesi si sono analizzati i lavori di due ricercatori che da anni lavorano in
questo settore:
H. Van Dyke Parunak
Marco Dorigo
Nei loro studi sono proposti, rispettivamente, due diversi paradigmi di
modellazione per la tecnica Swarm e approccio multi-agente:
Polyagent
107
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Ant-Colony-Optimization
In entrambi i casi l’approccio utilizzato per risolvere problemi complessi con il
paradigma della Swarm Intelligence appare molto efficace e convincente. I due
paradigmi sono comunque molto vicini e condividono soluzioni ispirate al
comportamento degli insetti in natura.
Il paradigma Ant-Colony-Optimization di Dorigo si presta particolarmente bene
alla ricerca di soluzioni ottime per problemi complessi come il TSP e in generale
per problemi di ottimizzazione ad alta complessità noti come NP-Hard Problem.
Questo algoritmo ha basi teoriche molto forti, è molto flessibile e si presta alla
soluzione di problematiche diverse: routing, scheduling, assignment, bayesian
networks, protein folding ecc .
L’uso dell’ ACO nella ottimizzazione di traiettorie di missione per sistemi UAS in
letteratura trova applicazione in sistemi a singola piattaforma e non cooperanti.
Questo e’ dovuto alla specifica formulazione dell’ACO che, per essere estesa a
flotte di velivoli cooperanti, deve prevedere ancora uno sviluppo teorico e
algoritmico.
Il paradigma Polyagent di H. Van Dyke Parunak nasce proprio come sistema di
ottimizzazione di tipo swarm per flotte di velivoli cooperanti.
Tale paradigma non ha avuto formulazioni teoriche complete come l’ACO ma
nel corso degli anni, è stato sviluppato e raffinato grazie a fondi del DARPA e
all’interessamento di più settori del mondo militare americano. Il Polyagent,
inoltre, è arrivato a dimostrare sul campo la sua efficacia e fattibilità riuscendo a
coordinare in un caso reale piattaforme volanti e terrestri atte a proteggere una
infrastruttura critica, una base della NASA, da attacchi esterni. Le missioni di
individuazione automatica delle incursioni così come la cooperazione tra le
piattaforme e stata ottenuta proprio con il paradigma Polyagent.
In conclusione possiamo considerare che, volendo implementare un paradigma
Swarm per una applicazione reale di piattaforme cooperanti sia da preferire
l’approccio Polyagent. Al momento si intravedono alcune lacune, probabilmente
volute, dell’implementazione del Polyagent soprattutto nella descrizione del
108
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
funzionamento dei ghost agents. Sicuramente la conoscenza del paradigma ACO
può essere di aiuto a colmare tali lacune vista l’affinità di approccio.
Nel polyagent la tecnica del campo a potenziale feromonico supera i limiti dei
campi potenziale classici rendendo il campo dinamico e distribuito attraverso la
stigmergia.
Figura 44 : Possibile scenario di una missione di monitoraggio
La possibile applicazione di tale tecnica alla gestione delle flotte di SUAS nel
post-evento nel terremoto di L’Aquila può considerarsi appropriata, soprattutto
in considerazione che l’inizializzazione della mappa feromonica potrebbe essere
effettuata grazie alla previsione dello scenario di danno già disponibile pochi
minuti dopo l’avvenuto sisma. In tale caso infatti lo scenario di danno
consentirebbe di indirizzare correttamente i velivoli che sarebbero attratti da
livelli elevati di feromone attrattivo in prossimità delle zone con la massima
probabilità di trovare vittime. L’inserimento dei dati realmente osservati dalle
piattaforme durante la missione, consentirebbe poi di attualizzare
correttamente il campo feromonico e quindi lo scenario di danno precedente,
aggiornando il dato statistico con un dato reale. Questa aumentata
109
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
consapevolezza della situazione può facilitare il coordinamento e l’arrivo dei
soccorsi, che utilizzerebbero tali informazioni per raggiungere le zone più
critiche.
Relativamente all’analisi delle piattaforme software che implementano la
modellazione multi-agente, si riportano di seguito alcune priorità di sviluppo di
future piattaforme software, scaturite dall’analisi delle piattaforme esaminate.
1. Realizzare una documentazione completa di classi e metodi con molti
esempi. Infatti il problema della scarsa documentazione è molto presente
al giorno d’oggi, in quanto è difficile svilupparne una abbastanza
completa, ma soprattutto è complicata mantenerla continuamente
aggiornata. In questo ambito si segnala la necessità di sviluppo continuo
di documenti sull’how-to e dei modelli template30.
2. Integrare la libreria software con un IDE, come ad esempio Eclipse.
3. Uniformare con continuità la struttura della piattaforma agli standard del
settore, permettendo di raggiungere gradualmente uno degli scopi più
importanti di una piattaforma che è quello di fornire un linguaggio
comune per progettare e descrivere un ABM.
4. Garantire il supporto di modelli complessi e modelli multi-livello.
5. Rendere disponibili tool per la generazione di output statistici. Si
potrebbero utilizzare le librerie statistiche già esistenti, purché siano di
semplice utilizzo anche per i programmatori alle prime armi.
6. Migliorare il trade-off tra la facilità di utilizzo e la generalità delle
piattaforme. Questo obiettivo potrebbe essere raggiunto creando task
comuni, più facili da programmare, ad esempio usando codice ad alto
livello come quello utilizzato da NetLogo.
7. Assicurare la compatibilità della piattaforma con la maggior parte dei
sistemi operativi, o quantomeno con quelli più popolari.
30
Il termine inglese template indica in informatica un documento o programma dove, come in un foglio
semicompilato cartaceo, su una struttura generica o standard esistono spazi temporaneamente
"bianchi", da riempire successivamente.
110
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
Bibliografia
Marco Dorigo & Thomas Stützle, Ant Colony Optimization, The MIT press, pp.
65-119, 2004.
[2] Marco Dorigo, Mauro Birattari & Thomas Stützle, Ant Colony Optimization:
artificial ants as a computational intelligence technique, IEEE Computational
Intelligence Magazine, pp. 28-39, November 2006.
[3] E.Bonabeau, Marco Dorigo & G. Theraulaz, Insipiration for optimization from
social insect behaviour, Nature vol.406 pp. 39-42, July 2000.
[4] Shervin Nouyan, Alexandre Campo & Marco Dorigo, Path formation in a
robot swarm, Springer Science + Business Media, December 6, 2007
(published online).
[5] H. Van Dyke Parunak, Go to the Ant: Engineering Principles from Natural
Multi-Agent Systems, CEC/ERIM, 1996.
[6] H. Van Dyke Parunak, Making Swarming Happen.
[7] H. Van Dyke Parunak & Sven A. Brueckner, Engineering Swarming Systems,
31 October 2003.
[8] H. Van Dyke Parunak & Sven A. Brueckner, Concurrent Modeling of
Alternative Worlds with Polyagents.
[9] H. Van Dyke Parunak, Micheal Purcell & Robert O’Connell, Digital
Pheromones for Autonomous Coordination of Swarming UAV’s, American
Institute of Aeronautics and Astronautics, 2002.
[10] John A. Sauter, Robert Matthews, H. Van Dyke Parunak & Sven A. Brueckner,
Performance of Digital Pheromones for Swarming Vehicle Control,
Forthcoming at the Fourth International Joint Conference on Autonomous
Agents and Multi-Agent Systems (AAMAS05), Utrecht, Netherlands, July
2005.
[11] Richard M. Murray, Recent Research in Cooperative Control of Multi-Vehicle
Systems, ASME Journal of Dynamic Systems, Measurement, and Control, 10
September 2006.
[12] John A. Sauter, Robert S. Matthews, Joshua S. Robinson, John Moody &
Stephanie P. Riddle, Swarming Unmanned Air and Ground Systems for
Surveillance and Base Protection, AIAA, Seattle, WA, 6-9 April 2009.
[13] John A. Sauter, Robert S. Matthews, Joshua S. Robinson, John Moody &
Stephanie P. Riddle, Distributed Pheromone-Based Swarming Control of
[1]
111
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
Unmanned Air and Ground Vehicles for RSTA, Forthcoming in Proceedings of
SPIE Defense & Security Conference, Orlando, FL, March 2008.
Sabine Hauert, Laurent Winkler, Jean-Christophe Zufferey, Dario Floreano,
Pheromone Based Swarming for Positionless MAVs, Flying Insects and
Robots symposium, Monte Verità, Switzerland, August 12-17, 2007.
Allison Ryan, Marco Zennaro, Adam Howell, Raja Sengupta & J. Karl Hedrick,
An Overview of Emerging Results in Cooperative UAV Control, 43rd IEEE
conference on Decision and Control (CDC), pp. 602 - 607 Vol.1, 2004.
Guanjun Ma, Haibin Duan & Senqi Liu, Improved Ant Colony Algorithm for
Global Optimal Trajectory Planning of UAV under Complex Environment,
International Journal of Computer Science & Applications, Vol.4 Issue 3, pp.
57-68, 2007.
Igor Perkon, Ant Colony Optimization.
Paolo Gaudiano, Ben Shargel, Eric Bonabeau & Bruce T. Clough, Swarm
Intelligence: a New C2 Paradigm with an Application to Control of Swarms of
UAV’s, 8th ICCRTS Command and Control Research and Technology
Symposium, 2004.
Bruno Siciliano & Oussama Khatib, Springer Handbook of Robotics, Springer,
2008.
G.Persechino, Real time monitoring of crises scenario post eventum by
interoperable aerial platforms and innovative sensors, EUROP - EURON
2010, San Sebastian Spain 10-13 Marzo, 2010
M. Lega, R.M.A. Napoli, G. Persechino, P. Schiano, J. Kosmatka,
Measurements of the Urban and Suburban CO2 Vertical Profile with an
Airborne Electro-Optical Device, Airnow 2010: Air Quality Conferences: Air
Quality Forecasting and Mapping, Raleigh, NC (USA), March 15-18, 2010
J. Kosmatka, C. Forester, M. Lega, G. Persechino, Air quality plume detection
and monitoring using UAVs and unmanned rotorcraft, Airnow 2010: Air
Quality Conferences: Air Quality Forecasting and Mapping, Raleigh, NC
(USA), March 15-18, 2010
G. Persechino, P. Schiano, M. Lega, R.M.A. Napoli, Environment Monitoring
performed by Advanced Hybrid Airship at low altitude, TIES 2009 - the 20th
Annual Conference of
The International Environmetrics Society Conference 2009, Bologna - Italy, July 5-9, 2009
112
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
[24]
[25]
[26]
[27]
[28]
[29]
[30]
[31]
[32]
[33]
M. Lega, F. D’Aniello, G. Persechino, Sistema integrato wireless per il
controllo remoto ed il monitoraggio real-time di sensori elettro-ottici
posizionati su piattaforma aerea UAV-LTA finalizzata al monitoraggio
ambientale, Forum Aerospazio e Difesa, Roma - Italy, 28 may 2009.
Massimiliano Lega, Giuseppe Persechino & Pasquale Schiano, EMPA Project:
Conquering the Third Dimension in Ambient Air Monitoring, U.S. EPA's 2009
National Air Quality Conference, Dallas-Texas, March 2009.
Zhong Zhang, James D. McCalley, Vijay Vishwanathan & Vasant Honavar,
Multiagent System Solutions for Distributed Computing, Communications,
and Data Integration Needs in the Power Industry, Iowa State University,
Ames IA USA.
Steven F. Railsback, Steven L. Lytinen & Stephen K. Jackson, Agent-based
Simulation Platforms: Review and Development Recommendations, USA,
September 2005.
N. Minar, R. Burkhart, C. Langton, and M. Askenazi, The Swarm simulation
system: A toolkit for building multi-agent simulations,Working Paper 96-06042, Santa Fe Institute, Santa Fe,1996.
Christian J. E. Castle & Andrew T. Crooks, Principles and Concepts of AgentBased Modelling for Developing Geospatial Simulations, Paper 110,
September 2006.
Matthew Berryman, Review of Software Platforms for Agent Based Models,
Land Operations Division Defence Science and Technology Organisation
(Australian Government), submitted: January 2008, published: April 2008.
Sean Luke, Gabriel Catalin Balan, Liviu Panait, Claudio Cioffi-Revilla & Sean
Paus, MASON: A Java Multi-agent Simulation Library, George Mason
University’s Center for Social Complexity and Department of Computer
Science, Fairfax (VA), USA.
Sean Luke, Claudio Cioffi-Revilla, Liviu Panait, and Keith Sullivan, MASON: A
New Multi-Agent Simulation Toolkit, George Mason University’s Center for
Social Complexity and Department of Computer Science, Fairfax (VA), USA.
J. Tweedale, N. Ichalkaranje, C. Sioutis, B. Jarvis, A. Consoli & G. PhillipsWren, Innovations in multi-agent systems, Journal of Network and
Computer Applications 30 pp. 1089–1115, accepted 25 April 2006.
113
Fabrizio Schiano
Algoritmi per il coordinamento decentralizzato di flotte
di micro-velivoli in missioni di monitoraggio nel
post-evento catastrofico
[34]
[35]
[36]
[37]
[38]
[39]
[40]
[41]
[42]
[43]
[44]
[45]
Seth Tisue & Uri Wilensky, NetLogo: A Simple Environment for Modeling
Complexity, Presented at the International Conference on Complex Systems,
Boston, May 16–21, 2004.
Alessandro Pluchino, Netogo: Introduzione alla programmazione di
simulazioni ad agenti, Dipartimento di Fisica e Astronomia and INFN sezione
di Catania Università di Catania – Italy.
Josè M. Vidal, NetLogo for Building Prototype Multiagent Systems,
Department of Computer Science and Engineering University of South
Carolina, August 29, 2007.
Paulo Blikstein, Dor Abrahamson, and Uri Wilensky, NetLogo: Where We
Are, Where We!re Going, In M. Eisenberg & A. Eisenberg (Eds.), Proceedings
of Interaction Design & Children, Boulder, Colorado, 2005.
Fabio Bellifemine, Agostino Poggi & Giovanni Rimassa, Developing Multiagent Systems with JADE, CSELT S.p.A. & Dipartimento di Ingegneria
dell’Informazione, University of Parma, Italy.
M.J. North, T.R. Howe, N.T. Collier & J.R. Vos, The Repast Simphony Runtime
System, paper extracted from Proceedings of the Agent 2005 Conference on
Generative Social Processes, Models, and Mechanisms, co-sponsored by
Argonne National Laboratory and The University of Chicago, October 13−15,
2005.
Nick Collier, Repast: An Extensible Framework for Agent Simulation, Social
Science Research Computing University of Chicago Chicago, IL.
Duncan A. Robertson, Agent-Based Modeling Toolkits NetLogo, RePast,
and Swarm, University of Warwick, UK.
Marie-Edith Bissey, Una piccola introduzione a swarm:ObjectiveC e Java,
Dipartimento di Politiche Pubbliche e Scelte Collettive POLIS, Università del
Piemonte Orientale, 7 marzo 2001.
Swarm Development Group, Documentation Set for Swarm 2.2, Published
17 December 2004.
Yoav Shoham & Kevin Leyton-Brown, Multiagent Systems, Cambridge
University Press, 2009.
Marcus Daniels, Alex Lancaster e Benedikt Stefansson, A tutorial
introduction to Swarm, Swarm Development Group, 2000.
114