48
Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione visuale Gruppo di lavoro: Luca Alfeo, Francesca Di Ruscio, Matteo Fichi, Gianluca Marchini Coordinamento: Paolo Barsocchi, Mario G.C.A. Cimino, Fabio Mavilia Pisa, 12 Febbraio 2016

Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione visuale

Gruppo di lavoro: Luca Alfeo, Francesca Di Ruscio, Matteo Fichi, Gianluca Marchini Coordinamento: Paolo Barsocchi, Mario G.C.A. Cimino, Fabio Mavilia

Pisa, 12 Febbraio 2016

Page 2: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Introduzione Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato dall'assenza del pilota umano a

bordo. Il suo volo è controllato dal computer a bordo del velivolo, sotto il controllo remoto di un navigatore o pilota, sul terreno o in un altro veicolo. Il loro utilizzo è ormai consolidato per usi militari e crescente anche per applicazioni civili, ad esempio in operazioni di prevenzione e intervento in emergenza incendi, per usi di sicurezza non militari, per sorveglianza di oleodotti, con finalità di telerilevamento e ricerca [12]. La crescente miniaturizzazione dei droni permette di ridurre i rischi di danneggiamento di persone e infrastrutture, e aumenta le possibilità di impiego in territori abitati, ad alta densità di ostacoli artificiali e naturali. Tuttavia, la miniaturizzazione riduce l’autonomia energetica del drone. Per una data area da esplorare, adoperando droni più piccoli occorre aumentare il numero di droni. Tuttavia, coordinare un numero elevato di droni è un compito difficile dal punto di vista della elaborazione e della trasmissione dati. Pertanto, bisogna inventare algoritmi che diano più liberta al drone e necessitino meno trasmissioni.

Per coordinare sciami di droni nello svolgimento di task di tipo collaborativo si possono usare algoritmi che si ispirano ai sistemi biologici, quali sciami di api, stormi di uccelli, colonie di formiche.

Tali algoritmi si basano sul comportamento cosiddetto "emergente", ossia in grado di esibire proprietà inspiegabili sulla base del comportamento dei singoli droni. In quest'ambito uno strumento fondamentale è quello della simulazione visuale. Gli algoritmi progettati "su carta" vengono poi sintetizzati in un opportuno ambiente software, che include le aree dove i droni devono volare, con gli ostacoli naturali ed artificiali, e i droni stessi con la logica di volo. Per studiare il comportamento dei droni, vengono create diverse situazioni.

Il sistema è in grado di valutare automaticamente i diversi algoritmi sulla base del tempo necessario a risolvere il problema (ad esempio trovare degli obiettivi in un'area). Tuttavia, è molto importante che le simulazioni vengano osservate e vengano descritte le situazioni non attese, sia negative (ad esempio una parte dei droni rimane intrappolata), che positive (ad esempio ostacoli di grosse dimensioni non impediscono allo stormo di ricomporsi dopo il superamento del medesimo).

In assenza dell'osservazione umana, tali situazioni, inattese o di natura eterogenea, sarebbero impossibili da rilevare.

L'attività proposta allo studente si svolge in tre fasi, che ciclicamente si ripetono per ogni nuova versione dell'algoritmo. Nella prima fase lo studente viene istruito sul comportamento del sistema di simulazione e dell'algoritmo. Nella seconda fase vengono stabilite delle regole di osservazione della simulazione e degli strumenti di raccolta dati (appunti e registrazione di parti dell'animazione). Nella terza fase lo studente incontra il gruppo di lavoro e riporta i risultati dell'osservazione.

L'attività è di tipo pratico e non richiede la conoscenza delle teorie che consentono l'ideazione degli algoritmi. Il tirocinio consente di acquisire conoscenze e competenze nell'ambito della simulazione e del coordinamento di droni. Il comportamento emergente

Un comportamento emergente o proprietà emergente può comparire quando un numero di entità semplici (agenti) operano in un ambiente, dando origine a comportamenti più complessi in quanto collettività. La proprietà stessa non è predicibile e non ha precedenti, e rappresenta un nuovo livello di evoluzione del sistema. 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. La forma e il comportamento di uno stormo di uccelli o di un branco di pesci sono buoni esempi.

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.

Page 3: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

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.

Apparentemente i sistemi con proprietà emergenti o strutture emergenti sembrano superare il principio entropico e sconfiggere la seconda legge della termodinamica, in quanto creano e aumentano l'ordine nonostante la mancanza di un controllo centrale. Questo è possibile perché i sistemi aperti possono estrarre informazione e ordine dall'ambiente. La seconda legge della termodinamica in realtà si riferisce ad un sistema chiuso: "se avviene un processo irreversibile, in un sistema chiuso, l'entropia S del sistema aumenta sempre, in particolare non diminuisce mai". Nei sistemi aperti l'aumento dell'entropia dell'universo non viene dunque violata.

Secondo una prospettiva innovativa nell'ambito della psicologia, l'intelligenza, il linguaggio umano, la percezione di elementi qualitativi (qualia) e l'autoriflessitivà sono comportamenti emergenti dell'uomo che emergono senza che possano essere desumibili dalla sola interazione madre­bambini o dai soli neuroni.

Il comportamento emergente è importante anche nei giochi e nella loro struttura. Ad esempio il gioco del poker, in particolare nella sua forma priva di un sistema rigido di puntate, è essenzialmente guidato da meccanismi di tipo emergente. Ciò significa che giocare ad un tavolo piuttosto che ad un altro può essere radicalmente differente, nonostante le regole di base siano le stesse.

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.

Un esempio biologico è una colonia di formiche. La regina non dà ordini, né dice alle formiche cosa fare. Ogni singola formica reagisce a stimoli, in forma di odori chimici provenienti dalle larve, dalle altre formiche, da intrusi, cibo e immondizia, e si lascia dietro una traccia chimica che, a sua volta, servirà da stimolo alle altre. Ogni formica è un'unità autonoma che reagisce solamente in relazione all'ambiente e alle regole genetiche della sua specie. Nonostante la mancanza di un ordine centralizzato, le colonie di formiche esibiscono un comportamento complesso ed hanno dimostrato la capacità di affrontare problemi geometrici. Ad esempio, localizzano un punto alla distanza massima da tutte le entrate della colonia per disporvi i corpi morti.

Questo fenomeno è simile ad altre strutture emergenti riscontrate negli insetti sociali, basate principalmente su feromoni e odori chimici. Strutture emergenti si possono osservare per molti animali che vivono in gruppo (sciami di api, stormi di uccelli, branchi di pesci o di lupi, greggi e mandrie di mammiferi,etc)

Le strutture emergenti si riscontrano in molti fenomeni naturali, in campo fisico e biologico. Anche la struttura spaziale e la forma delle galassie è una proprietà emergente, che caratterizza la distribuzione su larga scala dell'energia e della materia nell'universo. I fenomeni meteorologici come gli uragani sono proprietà emergenti. Molti sono convinti che la coscienza e la vita stessa siano proprietà emergenti di una vasta rete di interazioni, rispettivamente di neuroni e di molecole complesse. La vita è la maggior fonte di complessità, e l'evoluzione è il principio fondamentale o forza che guida la vita. In questa visione, l'evoluzione è la ragione

Page 4: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

principale della complessità crescente nel mondo naturale. Esiste anche una visione secondo cui l'inizio e lo sviluppo dell'evoluzione stessa possono essere considerati una proprietà emergente delle leggi fisiche del nostro universo. [1]

Programmazione dichiarativa

Nell'uso corrente il termine programmazione dichiarativa può avere due diversi significati. Nel primo significato si intende un programma che descrive a cosa una certa entità assomiglia, piuttosto

che prescrivere come un'entità può essere creata. Ad esempio le pagine web HTML sono dichiarative, perché descrivono cosa la pagina dovrebbe contenere — titolo, testo, immagini — ma non come si deve fare per visualizzare la pagina sullo schermo del computer. Altri linguaggi, come il Fortran, il C e Java si basano su un diverso approccio, richiedendo al programmatore di implementare specifici algoritmi esecutivi. In sintesi, i programmi imperativi definiscono in modo esplicito un algoritmo per conseguire uno scopo, mentre i programmi dichiarativi definiscono in modo esplicito soltanto lo scopo da raggiungere, lasciando che l'implementazione dell'algoritmo sia realizzata dal software di supporto.

Nel secondo significato si intende un programma scritto utilizzando un linguaggio di tipo puramente funzionale, logico, o a vincoli. La locuzione "linguaggio dichiarativo" si applica talvolta all'insieme di queste tipologie di linguaggi di programmazione, presi in gruppo e considerati come antitetici rispetto ai linguaggi imperativi. In una certa misura queste due definizioni si sovrappongono. In particolare la programmazione a vincoli e, in minor misura, la programmazione logica, si focalizzano sulla descrizione delle proprietà della soluzione desiderata (il cosa), lasciando indeterminato l'algoritmo da usare per trovare la soluzione (il come). Tuttavia la maggior parte dei linguaggi a vincoli e logici sono in grado di descrivere gli algoritmi ed i dettagli dell'implementazione dei metodi, e quindi non possono rientrare nella categoria dei dichiarativi veri e propri.

Analogamente, è possibile scrivere programmi in stile dichiarativo anche usando un linguaggio di tipo imperativo, di solito ricorrendo alla tecnica dell'incapsulamento. I dettagli delle operazioni da eseguire sono inglobati all'interno di una libreria o di un framework.

In un programma dichiarativo si definiscono le strutture di dati che possono essere elaborate dagli algoritmi standardizzati dal linguaggio per produrre i risultati desiderati. Un linguaggio dichiarativo, come ogni altro linguaggio, definisce una propria sintassi mediante la quale le parole chiave possono essere combinate, ed una semantica che descrive l'output ottenuto utilizzando una certa sequenza di comandi. [5]

Programmazione imperativa In informatica, la programmazione imperativa è un paradigma di programmazione secondo cui un

programma viene inteso come un insieme di istruzioni (dette anche direttive o comandi), ciascuna delle quali può essere pensata come un "ordine" che viene impartito alla macchina virtuale del linguaggio di programmazione utilizzato. Da un punto di vista sintattico, i costrutti di un linguaggio imperativo sono spesso identificati da verbi all'imperativo.

L'approccio imperativo è l'approccio dominante in programmazione. Nello studio dei linguaggi di programmazione, si definisce il concetto di paradigma di programmazione, ovvero un insieme di regole e strutture che definiscono un tipo di linguaggio basandosi esclusivamente sulle sue strutture, e quindi non sulle sue caratteristiche peculiari legate all'implementazione dello stesso (es. le parole chiave). Sono di tipo imperativo la grande maggioranza dei (sotto­)paradigmi di programmazione (per esempio la programmazione procedurale, la programmazione strutturata, la programmazione orientata agli oggetti e così via) e la grande maggioranza dei linguaggi (per esempio ALGOL, Ada, BASIC, Fortran, Pascal, PHP eccetera).

La programmazione imperativa viene generalmente contrapposta a quella dichiarativa, in cui un programma consiste in un insieme di "affermazioni" (non "ordini") che la macchina virtuale del linguaggio è (implicitamente) tenuta a considerare vere e/o rendere vere. Un esempio di paradigma dichiarativo è la programmazione logica.

Page 5: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Le caratteristiche essenziali della programmazione imperativa sono strettamente legate all'architettura di von Neumann. Brevemente, possiamo definirla come una architettura costituita da due componenti fondamentali:

∙ memoria (componente passiva) ∙ processore (componente attiva) La principale attività del processore è eseguire calcoli e assegnare valori (svolge quindi un ruolo attivo) a

celle di memoria (che è quindi passiva). I linguaggi sviluppati per la programmazione imperativa nati più per la manipolazione numerica che per

quella simbolica, adottano uno stile prescrittivo, ovvero uno stile in cui tutte le operazioni da compiere sono già state previste all'interno del programma stesso. L'ordine di esecuzione è formalmente top­down, e quindi l'azione si svolge in maniera del tutto sequenziale (con l'eccezione delle strutture di controllo che possono frammentare l'azione).

Un programma, che secondo il paradigma imperativo è una unione di istruzioni e dati, è strutturato in: ∙ una parte di dichiarazione in cui si dichiarano tutte le variabili del programma e il loro tipo; ∙ una parte che descrive l'algoritmo risolutivo utilizzato, mediante istruzioni del linguaggio. A loro volte, le istruzioni si dividono in: ∙ istruzioni di lettura e scrittura (scrittura a video, scrittura su disco, lettura da tastiera, ...); ∙ istruzioni di assegnamento (astrazione di cella di memoria); ∙ istruzioni di controllo (if, while, for, foreach, try, catch, ...). I programmi sono poi realizzati sia attraverso interpretazione (BASIC, ...) sia mediante compilazione (C,

Pascal, FORTRAN, ...). [6]

Rappresentare sistemi emergenti attraverso gli “agenti” Per rappresentare i sistemi emergenti occorre pensarli come delle “società di agenti”. Un agente è una

entità attiva e parzialmente autonoma, in grado di percepire l’ambiente circostante e di eseguire delle azioni sulla base di un algoritmo non finalizzato ad una applicazione, ma a degli obiettivi più generali dell’agente. Tali algoritmi possono essere basati su riflessi semplici (es. stimolo­risposta) o complessi (riflessi con memoria), o sulla base di obiettivi propri dell’agente, o dell’utilità, oppure sulla base di apprendimento.

Uno dei modi per realizzare un sistema emergente è quello di osservare i sistemi biologici, le logiche di interazione degli elementi che li compongono, ed emularle come un sistema multiagente. I linguaggi dichiarativi sono un modo immediato per la rappresentazione dei sistemi multi­agente, perchè consentono di rappresentare ed emulare il comportamento osservato senza implementare le cause endogene che generano tale comportamento.

Simulare sistemi emergenti attraverso NetLogo NetLogo è stato progettato, nello stile di programmazione del linguaggio Logo, per essere “semplice da

usare e non limitato”. Insegna a programmare concetti usando agenti in forma di tartarughe, patch, link e l’osservatore. NetLogo è stata progettata per un ampio pubblico, in particolare: insegnamento dei bambini nelle comunità educative, e per esperti di dominio senza un background di programmazione per modellare fenomeni correlati. Diversi articoli scientifici sono stati pubblicati con l’uso di NetLogo. L'ambiente NetLogo consente l'esplorazione di fenomeni emergenti. Viene fornito con una vasta libreria di modelli compresi in una varietà di settori, come l'economia, la biologia, la fisica, la chimica, la psicologia, la dinamica dei sistemi. NetLogo consente l’esplorazione grazie alla modifica di switch, slider, chooser, input, e altri elementi dell’interfaccia. Al di là dell’esplorazione, NetLogo permette la creazione di nuovi modelli e la modifica dei modelli esistenti.

Page 6: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

NetLogo è gratuito e disponibile dal suo stesso sito. È in uso in una larga varietà di contesti educativi, dalla scuola elementare fino all’università. Diversi insegnanti inseriscono l’uso di NetLogo nei loro curricula.

NetLogo è stato progettato e creato da Uri Wilensky, direttore della Northwestern University's Center for Connected Learning and Computer­Based Modeling. Per caricare una nuova simulazione come java applet:

a) andare nella pagina dei modelli https://ccl.northwestern.edu/netlogo/models/index.cgi b) scegliere un modello, ad esempio Altruism http://ccl.northwestern.edu/netlogo/models/Altruism c) Copiarsi il link piccolino che appare nel testo “you can also run this model in your browser, but we don't

recommend”, ad esempio http://ccl.northwestern.edu/netlogo/models/run.cgi?Altruism.735.518 d) aprire il file go.bat (tasto destro del mouse sul file e poi selezionare modifica) e) aggiungere una riga contenente java e poi il link, commentando con “rem” le altre righe f) c:\user\fabio\desktop\ITIS­PISA\jdk7\bin\appletviewer

http://ccl.northwestern.edu/netlogo/models/run.cgi?Altruism.735.518 g) salvare il file e doppio click sull’icona

Simulazione di una colonia di formiche nell’attività di raccolta di cibo 1) Funzionamento del sistema [2] COME FUNZIONA? Quando una formica trova un pezzo di cibo, lo carica e lo porta indietro al formicaio, rilasciando una sostanza chimica mentre si muove. Quando le altre formiche “sniffano” la sostanza, loro la seguono verso il cibo. Quante più formiche porta il cibo al formicaio, rinforzano la scia del feromone. COME SI USA? Cliccare sul bottone SETUP per mettere a punto il formicaio (in viola, al centro) e tre fonti di cibo. Cliccare sul bottone GO per iniziare la simulazione. Il feromone è mostrato in una sfumatura dal verde al bianco. Lo slider EVAPORATION­RATE controlla il tasso di evaporazione del feromone. Lo slider DIFFUSION­RATE controlla la diffusione del feromone. Se vuoi cambiare il numero di formiche, sposta lo slider della POPULATION prima di premere SETUP. COSE DA NOTARE Le colonie di formiche generalmente esplorano le fonti di cibo in ordine, iniziando dal cibo più vicino al formicaio, e finendo con il cibo più distante. È più difficile per le formiche formare una scia stabile verso il cibo più lontano, dato che la scia chimica ha più tempo di evaporazione e diffusione prima di essere rinforzata. Una volta che la colonia finisce la fonte di cibo più vicina, la scia di feromone scompare naturalmente, lasciando libere le formiche per aiutare le altre nella ricerca di cibo. La fonte di cibo più distante richiede un “numero critico” più grande di formiche per formare una scia stabile. La consumazione del cibo è mostrata in un grafico. Le linee colorate nel grafico indicano il colore corrispondente delle fonti di cibo. ESTENDENDO IL MODELLO Prova differenti piazzamenti delle fonti di cibo. Cosa succede se due fonti sono equidistanti dal formicaio? Quando questo succede nel mondo reale, le colonie di formiche tipicamente esplorano una fonte per volta (non nello stesso momento).

Page 7: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

In questo progetto le formiche usano un trucco per trovare la loro strada per tornare al loro formicaio. Loro seguono il “profumo del formicaio”. Le formiche reali usano diversi metodi per trovare la loro strada di ritorno verso il formicaio. Prova a implementare alcune strategie alternative. Le formiche rispondo a un livello di feromone compreso tra 0.05 e 2. È usato il più basso livello, quindi le formiche non sono infinitamente sensibili. Cerca di rimuovere il limite più alto. Cosa succede? Perché? Nella procedura dell’aumento del feromone, la formica “segue il gradiente” del feromone. Cioè, "annusa" in tre direzioni, poi gira nella direzione in cui la sostanza chimica è più forte. Potresti voler provare varianti della crescita di feromone, cambiando il numero e la collocazione dell’olfatto di una formica. Diagramma di flusso

2) Svolgimento di simulazioni al variare dei parametri popolazione, tasso di diffusione e di evaporazione del feromone. (a) poche formiche, molte formiche (gli altri parametri lasciarli standard); (b) poca diffusione, molta diffusione (gli altri parametri standard); (c) poca evaporazione, molta evaporazione (altri par. standard); (d) trovare una combinazione dei parametri che cerchi di portare al minimo possibile il numero di tick che occorrono a portare tutto il cibo al formicaio. Inizialmente tenere la velocità di simulazione lenta, per poter osservare il fenomeno e capire cosa succede. Man mano che la simulazione diventa scontata si può portare la velocità al massimo per vedere subito il risultato in termini di tick.

Casi Popolazione Diffusione Evaporazione Ticks

(a) 20 50 10 12323

40 50 10 5650

80 50 10 2022

Page 8: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

100 50 10 1033

120 50 10 1000

140 50 10 697

160 50 10 675

180 50 10 681 71,67±

200 50 10 700

(b) 125 20 10 815

125 30 10 914

125 40 10 770

125 50 10 894

125 60 10 956

125 70 10 872,43 06, 8± 1 3

125 80 10 900

125 99 10 1026

(c) 125 50 3 596

125 50 5 725,14 119.37±

125 50 15 2532

125 50 30 2430

125 50 45 1731

125 50 60 1638

125 50 75 1460

125 50 99 1150

(d) 20 20 3 3391

200 99 99 794

180 70 5 790

180 60 8 762

185 55 8 705

185 50 8 750

190 55 8 638 61,2±

190 55 9 870

Page 9: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

200 50 8 909

180 50 7 682

125 60 4 918

(a) Con l’aumentare della popolazione del formicaio abbiamo osservato che i ponti venivano creati

contemporaneamente, e quindi il tempo di raccolta del cibo era inferiore all’aumentare della popolazione.

(b) Con l’aumentare della diffusione abbiamo osservato che i ponti si formavano singolarmente, poiché le formiche erano concentrate in un unico ponte.

Page 10: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

(c) Con l’aumentare dell’evaporazione del feromone abbiamo osservato che non si creavano ponti e quindi ogni formica lavorava singolarmente e non interagiva con le altre.

Page 11: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

(d) Abbiamo proceduto per gradi: all’inizio abbiamo inserito i dati minimi osservati precedentemente, in seguito i dati massimi osservati. Poi abbiamo inserito i dati con i risultati migliori rispetto agli altri dati osservati della categoria. Dopo di ché ci siamo mossi nell’intorno di quei dati, cercando sempre di ottenere il risultato migliore possibile.

Page 12: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Simulazione di una colonia di termiti nell’attività di costruzione del nido 1) Funzionamento del sistema [4] CHE COS’È? Questo progetto è ispirato dal comportamento delle termiti nella raccolta dei trucioli di legno. Le termiti seguono un insieme di semplici regole. Ogni termite parte girando a caso. Se si imbatte in un truciolo, lo prende e lo carica, e continua la ricerca a caso. Quando si imbatte in un altro truciolo, deposita in uno spazio vuoto lì vicino il truciolo. Con queste semplici regole, i trucioli alla fine vengono raccolti in un singolo cumulo. COME SI USA? Clicca sul bottone SETUP per settare le termiti (in bianco) e i trucioli (in giallo). Clicca sul bottone GO per iniziare la simulazione. Le termiti diventeranno arancioni quando hanno raccolto un truciolo. Lo slider NUMBER controlla il numero delle termiti. (Nota: cambiamenti dello slider NUMBER non hanno effetto fino al settaggio successivo.) Lo slider DENSITY controlla la densità iniziale dei trucioli. COSE DA NOTARE Man mano che i trucioli si accumulano, i cumuli non sono “protetti” in nessun modo. Cioè, le termiti a volte portano via trucioli da cumuli già esistenti. La strategia potrebbe sembrare controproducente. Ma se i cumuli sono “protetti”, finirebbero col creare molti piccoli cumuli, non uno grande. Il cumulo finale è quasi circolare. Perché? Quali altre situazioni creano cose circolari? In generale, il numero di cumuli diminuisce col tempo. Perché? Diversi cumuli spariscono, quando le termiti portano via tutti i trucioli. E non c’è nessun modo per iniziare un nuovo cumulo da capo, in quanto le termiti depositano sempre i loro trucioli vicino ad altri trucioli. Così il numero di cumuli deve diminuire nel tempo. (L’unico modo in cui può nascere un nuovo cumulo è quando un cumulo esistente si divide in due.)

Page 13: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Questo progetto è un buon esempio di una strategia “decentralizzante”. Non c’è una termite responsabile, e non c’è un posto prestabilito per i cumuli. Ogni termite segue un insieme di semplici regole, ma la colonia nell’insieme compie un compito piuttosto complesso. COSE DA PROVARE Il risultato cambia se si usa una sola termite? E se usi migliaia di termiti? Quando ci sono solo 2 cumuli rimasti, quale ha più probabilità di diventare il cumulo finale? Dopo quanto il cumulo più grande fra i due vince? Se un cumulo ha solo un truciolo, e l’altro ha il resto dei trucioli, quali sono le possibilità che il primo cumulo vinca? ESTENDENDO IL MODELLO Puoi estendere il modello per avere termiti che portano trucioli di vari colori? Traccia il numero di cumuli, o la loro dimensione media, o il numero di termiti che trasportano trucioli di legno, come il modello funziona. Diagramma di flusso

2) Svolgimento di simulazioni al variare dei parametri popolazione, numero di termiti e densità di trucioli. (a) poche termiti, molte termiti (gli altri parametri lasciarli standard); (b) pochi trucioli, molti trucioli (gli altri parametri standard); (c) trovare una combinazione dei parametri che cerchi di portare al minimo possibile il numero di tick che occorrono a generare un unico cumulo. Inizialmente tenere la velocita’ di simulazione lenta, per poter osservare il fenomeno e capire cosa succede. Man mano che la simulazione diventa scontata si può portare la velocità al massimo per vedere subito il risultato in termini di tick.

Casi Numero Densità N° cumuli

(a) 100 20 7 5 piccoli 0 medi 2 grandi

500 20 6 1 piccolo 1 medio 4 grandi

1100 20 6 2 piccoli 1 medio 3 grandi

1600 20 5 2 piccoli 1 medio 2 grandi

Page 14: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

2000 20 7 1 piccolo 4 medi 2 grandi

(b) 400 10 3 2 piccoli 0 medi 1 grandi

400 20 7 2 piccoli 4 medi 1 grande

400 35 7 1 piccolo 0 medi 6 grandi

400 40 5 1 piccolo 1 medio 3 grandi

400 50 2 0 piccoli 0 medi 2 grandi

(c) 2000 10 3 1 piccolo 0 medi 2 grandi

1600 15 5 1 piccolo 1 medio 3 grandi

1000 20 7 2 piccoli 2 medi 3 grandi

Tutti i casi sono stati osservati in un intervallo di 4 minuti a normal speed.

(a) All’aumentare della popolazione le termiti formavano cumuli sempre minori e tendenzialmente più grandi.

(b) All’aumentare della densità dei trucioli i cumuli creati dalle termiti tendevano a diminuire drasticamente e a diventare un unico cumulo enorme, senza però avere una forma circolare.

Page 15: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

(c) Abbiamo proceduto per tentativi cercando di ottenere il minor numero di gruppi in 4 minuti di tempo.

Page 16: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Bird flocking CHE COS’È? Questo modello è un tentativo di replicare gli stormi di uccelli. (I movimenti risultanti sono similari a quelli dei pesci.) Gli stormi che appaiono in questo modello non sono creati o comandati da volatili leader in particolare. Piuttosto, ogni uccello segue esattamente lo stesso insieme di regole, fino a formare gli stormi. COME FUNZIONA? Gli uccelli seguono tre regole: “allineamento”, “separazione” e “coesione”. “Allineamento” è la tendenza di un uccello di muoversi nella stessa direzione in cui si spostano i volatili vicini. “Separazione” significa che un uccello girerà per evitare un altro uccello che si avvicina troppo. “Coesione” significa che un uccello si muoverà insieme a quelli vicini (a meno che un altro uccello non sia troppo vicino). Quando due uccelli sono troppo vicini, la regola della separazione sovrasta le altre due, che vengono riattivate quando la separazione minima è raggiunta. Le tre regole riguardano solo la rotta di ogni volatile. Ognuno di essi si muove sempre a velocità costante. COME SI USA? Primo, si determina il numero di uccelli che si vuole nella simulazione e si setta lo slider POPULATION con il valore stabilito. Si preme SETUP per creare gli uccelli, e GO per iniziare il volo. Le impostazioni di default degli slider producono un buon comportamento degli stormi. Tuttavia, si può giocare con loro per ottenere variazioni:

Page 17: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

I tre slider TURN­ANGLE controllano l’angolo massimo che un uccello può eseguire come risultato di ogni regola. VISION è la distanza che un uccello può vedere a 360° intorno a sé. COSE DA NOTARE L’obiettivo di questo modello è l’osservazione degli stormi formati senza un leader. Non ci sono numeri casuali usati nel modello, tranne la posizione iniziale dei volatili. Il fluido, il comportamento degli uccelli è prodotto interamente da determinate regole. Da notare anche che ogni stormo è dinamico. Uno stormo, una volta unito, non garantisce la sua integrità. Perché succede? Dopo aver fatto muovere per un po’ il modello, tutti gli uccelli hanno approssimativamente le stessa rotta. Perché? Qualche volta gli uccelli si dividono dallo stormo. Come succede? Forse si ha bisogno di rallentare il modello o scorrerlo passo dopo passo per osservare il fenomeno. COSE DA PROVARE Gioca con gli slider per vedere se puoi ottenere stormi più stretti, stormi tendenti a disperdersi, un minore o maggiore numero di stormi, più o meno la divisione o unione di più stormi, più o meno riorganizzazione degli uccelli all’interno di essi, etc. Si può disattivare totalmente una regola mettendo gli slider che regolano tale regola a zero. Può bastare una sola di queste regole a produrre stormi? E invece due regole? Cosa manca nel comportamento risultante quando si toglie ogni regola? Muovendo il modello per un lungo periodo, si produce uno stormo unico? O saranno gli uccelli a non stabilirsi in una formazione unica? Ricorda, non ci sono numeri casuali nel modello. ESTENDENDO IL MODELLO Attualmente gli uccelli possono vedere tutto intorno a se, cosa accadrebbe se potessero vedere solo di fronte a se stessi? L’’in­cone` primitivo può essere utilizzato per questo. C’è un’altra strada per raggiungere stormi a “V”, come la migrazione delle oche? Cosa succederebbe se si mettesse un muro che gli uccelli non possono attraversare intorno agli spigoli nel mondo? Si possono far volare gli uccelli intorno a un ostacolo posto in mezzo al mondo? Cosa accadrebbe se si dessero agli uccelli velocità differenti? Per esempio, si potrebbe far accelerare gli uccelli singoli che sono lontani dagli altri uccelli in modo da fare loro raggiungere lo stormo. Oppure, si potrebbe simulare la dimensione della resistenza dell’aria quando volano in gruppo, in modo da farli andare più veloce. Ci sono altri modi interessanti per rendere gli uccelli uno diverso dall’altro? Ci potrebbe essere una variazione casuale, o si potrebbe avere diverse “specie” di uccelli. Le regole di comportamento possono esprimersi operativamente nel seguente modo: 1.VELOCITA' COSTANTE UCCELLI DAVANTI MOLTO VICINI? SI ­> SEPARAZIONE (GIRA PER NON URTARE) NO ­> UCCELLI DAVANTI MOLTO LONTANI? SI­> COESIONE (GIRA VERSO IL BARICENTRO DEGLI UCCELLI DAVANTI) NO ­> ALLINEAMENTO (GIRA VERSO LA DIREZIONE MEDIA DEGLI UCCELLI DAVANTI) (L’ambiente NetLogo, come vedremo, consente di esprimere le regole in modo molto simile)

Page 18: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Abbiamo osservato il volo degli uccelli. Aumentando il raggio di visione di essi, si formano stormi più grandi che riescono a racchiudere tutti gli uccelli. Aumentando lo slider MINIMUM­SEPARATION non si ottengono stormi, poiché gli uccelli restano distanti tra di loro. Regolando i tre slider riferiti agli angoli di volo degli uccelli si possono variare si possono variare le formazioni degli stormi che vengono create.

Page 19: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Flocking Vee formation CHE COS’È? È un adattamento del volo degli uccelli per produrre una formazione a forma di “V” nel volo artificiale. Non tutti gli uccelli producono formazioni a “V” quando sono in stormo, ma loro spesso osservano in grande distanza gli uccelli che viaggiano con loro. Questo modello mostra le semplici regole che causano le formazione a “V”.

Page 20: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

COME FUNZIONA? Ogni uccello inizia in una posizione e una direzione casuale. Se gli uccelli non vedono altri uccelli nel loro range di visione limitato, essi continuano a volare alla loro velocità normale. Se essi vedono altri uccelli, seguono 4 semplici regole date in ordine di precedenza. 1. Se un uccello è troppo distante (cioè, troppo distante per ottenere benefici con le correnti d’aria) da uno in vista, esso accelererà per avvicinarsi all’uccello visto. 2. Appena è abbastanza vicino a un altro uccello, si muoverà casualmente su un lato o su un altro, cosicché la sua vista non sia ostruita. 3. Se è troppo vicino ad un altro uccello, rallenterà. 4. Quando le tre condizioni sopra sono raggiunte (l’uccello ha una vista libera ed è sufficientemente vicino ma non troppo a un altro uccello), l’uccello stabilizzerà la sua velocità e prenderà la direzione di quello più vicino. COME SI USA? NUMBER­OF­BIRDS regola il numero di uccelli nel mondo. Usa SETUP per popolare il mondo con gli uccelli e GO per far partire il modello. Parametri di visione: VISION­DISTANCE e VISION­CONE definiscono il raggio e l’ampiezza dell’area in cui un uccello può vedere gli altri. Un visuale a cono di 120° permette ai volatili di vedere 60° a destra e 60° a sinistra. OBSTRUCTION­ CONE definisce l’angolo per cui ogni uccello considera la propria vista ostruita dagli altri uccelli. Parametri di movimento: BASE­SPEED definisce la velocità a cui ogni uccello volerà, se non deve accelerare per raggiungere quello davanti a sé o se non deve rallentare per evitare collisioni. SPEED­CHANGE­FACTOR è il fattore con il quale gli uccelli aumentano o diminuiscono la loro velocità, dato come una frazione della loro velocità base. Una velocità base di 1 con un fattore di cambiamento di velocità di 0.25 permette agli uccelli di viaggiare alla velocità di 0.75 (bassa velocità), di 1.0 (velocità normale), o di 1.25 (velocità alta). UPDRAFT­DISTANCE definisce quanto deve essere vicino ad un altro uccello per avere vantaggio con le correnti d’aria. TOO­CLOSE definisce quanto gli uccelli possono avvicinarsi prima di rallentare per evitare collisioni. MAX­TURN setta il massimo numero di gradi con cui gli uccelli possono girare in un singolo tick. Parametri di visualizzazione: Se SHOW­UNHAPPY? è acceso, i volatili che non hanno soddisfatto le condizioni descritte nella sezione COME FUNZIONA? sono di colore rosso, e tutti gli uccelli che hanno soddisfatto le medesime condizioni sono di colore bianco. Se SHOW­UNHAPPY? è spento, gli uccelli sono colorati nelle tonalità di giallo. COSE DA NOTARE Dopo aver formato uno stormo a “V”, gli uccelli tendono ad allontanarsi l’uno dall’altro. I volatili seguendo queste regole possono formare stormi diversi da una “V” equilibrata. Queste includono forme a “V” asimmetriche (non bilanciate), scaglioni (linee diagonali), o forme a “V” invertite. In realtà, le formazioni imperfette come queste sono più comunemente osservati di “V” equilibrate. COSE DA PROVARE Gioca con gli slider per vedere se puoi ottenere stormi più stretti, stormi tendenti a disperdersi, un minore o maggiore numero di stormi, più o meno la divisione o unione di più stormi, più o meno riorganizzazione degli uccelli all’interno di essi, etc. Avendo molti uccelli è possibile ottenere formazioni a “V” con una buona forma?

Page 21: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Si possono settare i parametri in modo da formare nel lungo periodo uno stormo stabile? O i volatili non stabiliranno ami una formazione fissa? ESTENDENDO IL MODELLO Cosa succederebbe se si mettesse un muro che gli uccelli non possono attraversare intorno agli spigoli nel mondo? Cosa succederebbe se essi avessero un livello di energia limitato, così che volando più velocemente spenderebbero molta più energia, diventando eventualmente esausti. Volando lentamente, o senza l’aiuto delle correnti formate dagli altri uccelli, loro potrebbero recuperare un po’ di energia. Prova a fare una versione 3D di questo modello. Quali considerazioni devono essere aggiunte per essere registrate nelle tre dimensioni?

Page 22: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Modifica degli esempi Ants e Flocking Birds Abbiamo modificato alcuni valori del codice sia nella simulazione delle formiche che in quella degli uccelli. In quella delle formiche abbiamo aggiunto una nuova fonte di cibo distante quanto la fonte di cibo più lontana.

Page 23: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Abbiamo anche modificato il tasso di diffusione, e abbiamo osservato che la scia di feromone formata era più sottile (a). Poi, mantenendo il tasso di diffusione modificato, abbiamo diminuito l’evaporazione, che ha portato ad un immediato riempimento di feromone nel mondo, il che ha portato le formiche a muoversi come se fossero in assenza totale di feromone (b). Nella simulazione di flocking abbiamo variato l’ampiezza del raggio di visione. Nel primo caso gli uccelli hanno formato uno stormo in linea orizzontale (c), nel secondo caso hanno formato in poco tempo uno stormo principale compatto e piccoli stormi intorno (d).

(a) Variazione della diffusione e aggiunta di un cumulo di cibo

(b) Variazione dell’evaporazione con i parametri variati precedentemente

Page 24: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

(c) Variazione dell’ampiezza del raggio di visione

(d) Altra variazione dei parametri di visione

Studio dell’esempio Echo (Algoritmo genetico)

Page 25: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

CHE COS’È? Echo è un modello sull’evoluzione della specie, adattato dal libro Hidden Order di John Holland (1995). Può essere usato per facilitare esperimenti in una varietà di domini dove gli agenti delle specie variano. Questo particolare adattamento di Echo è formato da un genere biologico che si riferisce agli agenti come “creature”, e gruppi di agenti con preferenze di accoppiamento tra specie uguali. Con Echo, Holland tentò di codificare intuizioni sui sistemi adattativi complessi in un modello più rigoroso e astratto. Holland è stato ispirato dalle nozioni di ricerca si sistemi ecologici, soprattutto per quanto riguarda le dinamiche di nicchia. Come fa un cambiamento delle dinamiche delle popolazioni di un ecosistema a creare nuove nicchie e a distruggere le vecchie? Echo è stato un tentativo di creare un modello astratto per facilitare la comprensione delle interazioni dei processi evolutivi ed ecologici. In Echo, diverse nicchie sono state create per permettere alle creature di consumare, trasformare le risorse di scambio, ma questo modello non è solamente un modello biologico – può anche essere visto come modello di altri fenomeni, come l’emergere di nuovi mercati. Va notato che Echo come stabilito in Hidden Order non è destinato ad essere un modello specifico, ma piuttosto un quadro di riferimento per la costruzione di modelli. Ci sono una serie di meccanismi che non sono pienamente specificati nel libro, la descrizione include diversi meccanismi che possono essere implementati. Di conseguenza non esiste un modello che è “il modello Echo”, non ci può essere solo “un modello Echo”. Questo modello NetLogo è una particolare situazione di tale quadro. COME FUNZIONA? Ogni agente, o creatura, ha due componenti: un contenitore dove mantiene le risorse che raccoglie, e un cromosoma che contiene il suo materiale genetico e definisce le sue capacità. Una ceratura spende risorse muovendosi in tutto il mondo alla ricerca di altre risorse. Una creatura può guadagnare risorse dal suo ambiente o da un’altra creatura posta nello stesso punto. La quantità di risorse acquisita dal suo ambiente dipende dalla quantità di risorse disponibili e il numero di altre creature nella posizione corrente. La quantità di risorse acquisita da un’altra creatura dipende dalla corrispondenza tra i cromosomi di essi. Più precisamente, il cromosoma di una creatura è composta da tre “tag”: un tag offesa, un tag difesa e un tag di condizione di accoppiamento, che sono rappresentati da stringhe: “A”, “B” e “C”. la quantità trasferita da una creatura all’altra dipende dalla corrispondenza del tag offesa della prima creatura e del tag difesa della seconda. Tuttavia, le interazioni, o “lotte”, tra le creature sono scambi a due vie, cioè, entrambi gli agenti oppongono la loro tag offesa alla difesa dell’altro. Di conseguenza, le risorse possono essere sia guadagnate o perse durante l’interazione con un altro agente. Ad esempio, offesa tag “AAA” della creatura 1 e difesa tag “AAA” della creatura 2 sarebbe una partita perfetta. La creatura 1 avrebbe diritto a tutte le risorse della creatura 2, ma la seconda creatura potrebbe avere un po', o anche tutte le risorse di nuovo in base alla partita della sua tag offesa al tag difesa l'altro agente. Se il livello delle risorse di un agente scende al di sotto di una soglia minima, esso muore. Un agente si può riprodurre al raggiungimento di un livello minimo di risorse. La riproduzione avviene in due modi: 1) semplice replica, come determinato dal cursore REPLICATE­CHANCE, nel caso l’agente replicato è uguale al genitore; 2) con l’accoppiamento di altri agenti. Secondo regole prestabilite, un agente può accoppiarsi con qualsiasi altro agente, con conseguente prole che contiene un insieme misto di elementi, o di una croce dei cromosomi dei genitori. Se il SELECTIVE­MATING? è attivato un agente non si accoppia con chiunque, ma invece si accoppia solo con gli agenti in cui il tag offesa corrisponde al proprio tag di condizione di accoppiamento. La somiglianza tra i tag di accoppiamento e di offesa sono necessarie per l’accoppiamento e vengono determinate dall’interruttore MATING­SELECTIVITY. Con entrambi i processi, è possibile che le caratteristiche della prole non siano una copia esatta o un incrocio dei cromosomi dei genitori. Le mutazioni possono avvenire ad una velocità determinata dallo scorrimento di MUTATION­RATE.

Page 26: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

COME SI USA? Fare clic sul pulsante SETUP per impostare il mondo, quindi fare clic sul pulsante GO. Gli agenti cominceranno a muoversi e a riprodursi. I cursori permettono di modificare ognuno dei parametri del modello come descritto di seguito. I grafici forniscono un aggiornamento sulla composizione della popolazione. Gli agenti sono colorati dai tag di accoppiamento. Tag di accoppiamento identici condividono lo stesso colore; ogni creatura ha i suoi tag offesa e difesa, come la sua etichetta nel formato “offesa­tag.difesa­tag”. Ad esempio, l’etichetta “AAB.BCC” rappresenta una creatura con un tag offesa “AAB” e una difesa “BCC”. Il modello comprende i seguenti parametri: NUM­CREATURES è il numero di agenti con cui iniziare una simulazione. REPLENISH­SPEED è la velocità con cui le risorse si ricostruiscono. REPLICATE­CHANCE è la possibilità che una creatura con sufficiente energia si replichi. SELECTIVE­MATING? se spento, è possibile per gli agenti accoppiarsi con qualsiasi altro agente che ha abbastanza energia per riprodursi. Se è acceso, gli agenti si accoppiano solo con altri agenti il cui tag offesa è uguale al tag accoppiamento. MATING­SELECTIVITY? determina l’ordine dei tag con cui gli agenti si accoppiano. Se i numeri sono più alti sono selettivi, lo zero è il punto medio. MUTATION­RATE è la velocità con cui una lettera dei tag offesa o difesa può cambiare durante la riproduzione. Qui ci sono le descrizioni di tutte le trame del modello: “Offense tag” è un istogramma dei tag offesa attualmente esistenti. “Defense tag” è un istogramma dei tag di difesa attualmente esistenti. “Species tag” è un istogramma del numero di specie attualmente vive. Una specie è definita come un gruppo di agenti che condividono lo stesso tag di accoppiamento. “Populations” mostra il numero di creature delle due specie dominanti. “Speciation” mostra il numero totale delle diverse specie, il numero totale dei tag offesa e di quelli di difesa. Altre opzioni sono descritte in COSE DA PROVARE. COSE DA NOTARE Le popolazioni spesso diventano dinamicamente stabili con diverse specie a livelli oscillanti. Aumentando il cursore iniziale NUM­CREATURES non comporta necessariamente una popolazione stabile più grande, anzi, può verificarsi il contrario, perché le creature competono per le risorse limitate. COSE DA PROVARE Si cambi REPLENISH­SPEED per esaminare l’impatto di risorse più limitate. Si guardi l’impatto con l’aumento o la diminuzione di MUTATIO­RATE e/o SELECTIVE­MATING? acceso. ‘On’ è il numero di specie che sopravvivono in una situazione con popolazioni dinamicamente stabili. ESTENDENDO IL MODELLO Aggiungere un meccanismo che consenta l’interazione selettiva per lo scambio di risorse, oltre all’accoppiamento. Le risorse potrebbero essere più graduate rispetto alla semplice variabile “energia”. Alcune località nell’ambiente potrebbero dare il via alla riproduzione di alcune risorse. Ad esempio, ogni creatura potrebbe aver bisogno di avere almeno un risorsa di tipo “C” per vivere, ma solo alcuni pozzi possono dare risorse di tipo “C”. Inoltre, le risorse potrebbero essere trasformate. Ad esempio, un “A” e “BB” potrebbe essere trasformato in un “C” per un certo costo. Attualmente lo scambio di risorse tra i due agenti è una lotta, uno scambio a somma zero. Tuttavia, questa interazione potrebbe essere cambiata con un’interazione in cui le parti possono migliorare, una situazione che assomiglia più a un commercio che a una lotta. Holland descrive diverse estensioni aggiuntive in dettaglio nel capitolo 3 di Hidden Order.

Page 27: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

a) esempio con i seguenti parametri configurati in modo leggermente superiore rispetto allo standard: tasso di mutazione, replicazione e velocità di riempimento delle risorse. Dopo 323 tick si vede la formazione di alcuni geni predominanti.

b) La velocità di replicazione delle risorse è stata aumentata notevolmente. Questo ha permesso ai geni dominanti di espandersi in misura notevolmente grazie alla maggior numerosità, rispetto agli altri.

Page 28: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

c) Verso i 4969 tick la specie blu risulta predominante, a meno di piccole comparse di specie gialla e viola.

Introduzione al coordinamento di uno sciame di droni L’algoritmo di coordinamento di uno sciame di droni ha come obiettivo quello di trovare dei target in un’area aperta composta da ostacoli naturali e artificali (alberi, edifici, altri droni). I target possono rappresentare: fuge di gas, fughe di sostanze radioattive, mine inesplose, oggetti o persone disperse, e cosi via. I droni hanno a bordo un sistema GPS con il quale possono rilevare la posizione geografica, una telecamera per vedere l’ambiente circostante, e dei sensori specifici per il tipo di target. I dati rilevati sono inviati periodicamente (es. ogni minuto) ad una stazione base. La stazione base può inviare ai droni delle istruzioni (es. non allontanarsi oltre una certa area) oppure informazioni (es. i feromoni rilasciati in una data posizione). I droni possono anche “rilasciare” e “vedere” feromoni virtuali (ossia digitalmente simulati grazie alla stazione base), ossia non rilasciano sostanze fisiche ma digitali, in un’area di memoria condivisa con la stazione base. Quando il drone rileva dei target, rilascia del feromone attrattivo nell’ambiente virtuale; altrimenti rilascia del feromone repulsivo per indicare che in una zona non ci sono target. La procedura di movimento può essere scomposta in azioni con diversa priorità. PRIORITA 1: EVITARE OSTACOLI. Se viene rilevato un ostacolo (oggetto o drone), il drone punta verso una direzione libera. Al fine di evitare possibili collisioni il drone sceglie di ruotare a sinistra o a destra, a seconda della direzione che gli permette di mantenersi il più possibile allineato con la direzione attuale. Quindi prosegue facendo uno step nella direzione trovata. Se non c’è una direzione libera rimane fermo.

Page 29: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

PRIORITA 2: RINTRACCIARE IL FEROMONE. Se non ci sono oggetti vicini rilevati, il drone cerca a 360 gradi in un certo raggio la presenza di feromoni attrattivi e, se rilevati, punta verso la direzione con massima intensità e prosegue facendo uno step. PRIORITA 3: RIMANERE IN FORMAZIONE (FLOCKING). Se non viene rilevato alcun feromone attrattivo, il drone cerca davanti a sé droni (detti flock mate) in un certo raggio di visibilità e con un certo angolo, al fine di rimanere in formazione flock, secondo le seguenti regole.

a) SEPARAZIONE: se il drone rileva un altro drone a 360 gradi a distanza inferiore a quella stabilita, si allontana facendo un piccolo cambio di direzione.

b) ALLINEAMENTO: se non è in testa ad un flock, il drone calcola la direzione media dei compagni di flock davanti a sè e adatta la sua direzione ad essa

c) DISPERSIONE: se il drone rileva un altro drone davanti a sè in uno cono di visibilità, a distanza inferiore a quella stabilita, si sposta da quel cono.

PRIORITA 4: NON ANDARE IN AREE GIA’ ESPLORATE: il drone controlla se c’e feromone repulsivo. Se si, il drone punta verso la sua minima intensità. PRIORITA’ 5: ESPLORARE IN MANIERA CASUALE: Infine, se non ci sono droni circostanti, esegue un cambiamento di direzione casuale (in un dato intervallo) e si muove in avanti. REGOLA DI RICHIAMATA ALLA BASE: Al rilevamento del 95% degli obiettivi totali, oppure all’esaurimento dei tick a disposizione, la stazione base richiama i droni.

Diagramma visuale

Page 30: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato
Page 31: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Illustrazione dei Parametri In questa sezione si definiscono i parametri e, tra parentesi quadre, i valori tipici. Variabili globali generali e/o non soggette a sperimentazione: ­ maxTick: numero massimo di ticks per simulazione [5000]; ­ iterations: numero di iterazioni da svolgere nella fase di test; ­ strategy: strategia utilizzata; ­ drone­radius: raggio del drone; ­ limit: larghezza fittizia degli ostacoli; ­ vel­drone: velocità del drone; ­ max­cohere­turn:in disuso; ­ stig­intensity: quantita di feromone depositata quando trovato un target; Variabile drone in esplorazione libera: ­ wiggle­var: angolo di deviazione per lo wiggle. [30,60,90,120] Variabili relative alla avoid­obstacle ­ obstacle­vision: raggio entro la quale i droni percepiscono un ostacolo. [2,4,6,8] ­ obstacle­sight­cone: ampiezza del cono di visione degli ostacoli. [90,120,180, 270] Variabili relative al flock ­ flock­vision: raggio entro la quale il drone considera gli altri suoi compagni. [3,6,9,12] ­ minimum­separation: distanza minima da tenere fra compagni di flock. [2,5,8,11]

Page 32: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

­ max­separate­turn: massimo angolo rispetto alla direzione attuale con cui il drone può allontarsi da compagni troppo vicini. [14,24,32,40] ­ max­align­turn: massimo angolo rispetto alla direzione attuale con cui il drone può allinearsi alla direzione media dello stormo. [8, 15, 20, 35] ­ max­flock­angle­turn: massimo angolo rispetto alla direzione attuale del drone che hai di fronte da cui il drone deve allontanarsi. [1,3,8,15] Variabili relative alla stigmergia ­ olfaction: raggio massimo entro il quale il drone percepisce i profumi. [1,5,9,13] ­ stig­diffusion: percentuale di profumo che ad ogni tick viene diffuso alle patches adiacenti. [25, 50, 75, 100] ­ stig­evaporation­rate: percentuale di profumo che evapora da ogni patch dopo ogni tick. [1, 10, 30, 50] Il valore di tutte le variabili presentate è settato nel file "conf.txt".

Capacità del drone di vedere, esplorare, sentire feromoni, al variare dei parametri Al variare dei parametri, varia l’area di visibilità, di percezione e di esplorazione legata alle funzioni del drone, come illustrato nella figura seguente.

In particolare: ObstacleSearchArea: è il cono frontale in cui il drone riconosce gli ostacoli; è definito da ObstacleVision e ObstacleSightCone. Aumentarne l’ampiezza dovrebbe ridurre il numero di DroneCrash (ossia il contatto ravvicinato tra i droni), portando però ad un allontanamento dei droni da qualsiasi oggetto percepito come ostacolo, con possibile riduzione delle zone da esplorare, peggiorando quindi le tempistiche della ricerca dei target. PheromoneSearchArea: è l’area entro la quale ogni drone sente i feromoni rilasciati dagli altri; è definita da Olfaction. Ampliando quest’area è più facile per i droni percepire i feromoni rilasciati dagli altri droni, dirigendosi più rapidamente verso i bersagli e teoricamente migliorando le tempistiche della ricerca, ma

Page 33: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

aumentando la densità di droni in prossimità di target, e quindi la possibilità di incontri ravvicinati (numero di crash). FlockMateSearchArea: è l’ampiezza del cono frontale del drone nel quale cerca compagni di volo; è definita dal comando FlockVision. Aumentando questo parametro si vengono a creare stormi sempre più grandi che peggiorano le performances dell’algoritmo, poiché tutti i droni si concentrano sugli stessi obiettivi. FlockMateSeparateArea: è l’area entro la quale un drone cerca di allontanarsi da un suo compagno di volo per evitare collisioni, pur rimanendo sempre nel gruppo; è definita da FlockVision e MinimumSeparation. Modificando questi parametri cambia radicalmente la forma dello sciame e la sua ampiezza. FlockMateScatterArea: è l’area da cui il drone deve allontanarsi per non stare dietro ad un altro drone. Quando un drone sta dietro un altro drone, non è in grado di trovare target nuovi rispetto a chi lo precede. Oltre alle aree di ricerca, la parametrizzazione dell’algoritmo ha degli effetti sulle capacità del drone di esplorare un’area, e sulla velocità ed estensione deli feromoni. Più precisamente: ExplorationLevel: indica di quanto il drone “gironzola” in una certa area quando non percepisce altri droni, feromoni attrattivi o ostacoli; è definita dal parametro WiggleVar. Aumentandolo ci si aspetta un’esplorazione più casuale e un miglior raggiungimento degli obiettivi con il minor numero di crash. PheromoneDynamics: il comportamento dei feromoni depositati; è definito da StigDiffusion e StigEvaporation. Modificando questi valori variano la velocità con cui il feromone evapora e la sua diffusione nelle celle vicine a quella di rilascio. Probabilmente avranno influenze contrapposte sui tempi di raggiungimento della soluzione.

Pianificazione degli esperimenti e risultati Il piano degli esperimenti ha come obiettivo quello di quantificare come ogni parametro va a modificare le suddette capacità del drone, di vedere, esplorare e sentire feromoni. tali capacità sono fondamentali per ottenere due risultati fondamentali: ridurre il numero di tick complessivi per trovare il 95% dei target, e ridurre numero di crash. Come si conduce un singolo esperimento Un esperimento è dato da una specifica configurazione di parametri. Vanno eseguiti 5 test per ogni modifica di uno o più parametri rispetto alla configurazione standard (conf.txt). Per accedere al simulatore attraverso il server si deve seguire il seguente percorso: droni\netlogo\code versions\v04_notrail_gianluca. Per leggere i risultati delle simulazioni bisogna aprire il file denominato “log.txt”, seguendo il percorso droni\netlogo\code versions. Come risultato si calcola sempre l’intervallo di confidenza sulle 5 prove dei tick e dei crash. Poichè gli esperimenti possono variare leggermente tra una esecuzione e l’altra, quando si stima un risultato, la semplice individuazione di un singolo valore è spesso non sufficiente. È opportuno allora accompagnare la stima di un parametro con un intervallo di valori plausibili per quel parametro, che viene definito intervallo di confidenza (o intervallo di fiducia).[11] Passi da seguire per avviare l’esperimento: 1) aprire il file conf.txt con "tasto_destro"+"edit with notepad++"; 2) modificare il valore della variabile come stabilito nell'esperimento, ad esempio: nell'esperimento corrente (esperimento 01) dovrete modificare la variabile wiggle­var;

Page 34: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

3) savare le modifiche e chiudere; 4) aprire il file “log.txt” e cancellarne il contenuto. Salvare e chiudere “log.txt”; 5) avviare la simulazione, cliccando SETUP e poi GO; 6) la simulazione termina automaticamente dopo 5 esecuzioni. A quel punto aprire “log.txt”, salvare da qualche parte i 5 valori dei tick per l'esecuzione (uno per ogni simulazione avviata automaticamente) e i 5 valori di drone­crash;

7) utilizzando il file Excel inviato dal professor Cimino calcolare l'intervallo di confidenza inserendo questi 5 valori (prima dei tick e poi dei drone­crash), quindi riportarli nella tabella;

8) quando si fermerà, cambiare il valore della variabile come previsto dalla colonna successiva della tabella dell'esperimento corrente;

9) una volta fatto per la prima tabella farlo anche per le altre. Da notare che ad ogni cambio di tabella cambiano le variabili su cui basare le sperimentazioni, quindi salvarsi “conf.txt” nel suo formato originale, per quando si cambia la variabile dell'esperimento, quella di prima deve essere riportata al suo valore originale.

Ciascun esperimento va condotto con la seguente configurazione di partenza in cui si variano uno o due parameri. CONFIGURAZIONE DI PARTENZA

obstacle­sight­cone: 160

iterations: 5

strategy: 1

drone­radius: 0.2

limit: 1.0

max­flock­angle­turn: 30

stig­intensity: 4000

wiggle­var: 90.0

obstacle­vision: 5.0

vel­drone: 1

flock­vision: 15.0

minimum­separation: 12

max­separate­turn: 30

max­align­turn: 30

maxTick: 3500

olfaction: 15

stig­diffusion: 100

stig­evaporation­rate: 0.95

max­cohere­turn: 25

min­flock­angle: 30

La figura seguente mostra l’ambiente di simulazione.

Page 35: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Ingrandendo maggiormente lo spazio in cui si muovono i droni, si possono vedere i droni stessi (triangoli), gli edifici e gli alberi (in viola) e i target (in azzurrino). L’ambiente è stato estratto da un database pubblico: si tratta di un’area rurale in prossimità di Sarajevo dove ci sono mine inesplose. Nella simulazione, i droni sono adoperati per rilevare le mine inesplose gia’ precedentemente trovate. In questo scenario un tick corrisponde a un minuto e l’area e’ grande 400 metri di lato. la velocità del drone è di 1 metro al minuto per consentire foto di qualità sufficiente a riconoscere le mine tra l’erba.

Page 36: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

La figura seguente mostra lo scenario dopo 139 tick. Si osservano delle impronte stigmergiche in corrispondenza al rilevamento di mine.

Page 37: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

ESPERIMENTO N. 1

PARAMETRO VALORE 1 VALORE 2 VALORE 3 VALORE 4

wigglevar 30 60 90 120

tick: crash:

2723.2 524.53 ± 1307 300.47 ±

2469.20 531.56 ± 1427.20 302.99 ±

2485 406.95 ± 1420.60 350.63 ±

3125 215.43 ± 2060.80 290.48 ±

risultato riduzione dei tick e lieve aumento dei

crash

lieve riduzione dei tick e stabilità dei

crash

aumento dei tick e dei crash

commento dando più flessibilità

esplorano di più ma si scontrano di più

sta riducendosi il vantaggio della flessibilità

in questa zona c’è troppa flessibilità (tende al volo random)

Page 38: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

La variabile wigglevar fornisce al drone la capacità di virare con flessibilità per allinearsi allo sciame. In tal modo ogni drone mantiene un grado di autonomia pur facendo parte di un gruppo. Però non bisogna dare troppa libertà per evitare il caos. In questo esperimento abbiamo misurato il giusto livello di flessibilità: il valore 3. ESPERIMENTO N. 2 PARAMETRO VALORE 0 VALORE 1 VALORE 2 VALORE 3 VALORE 4

flockvision 2 3 6 9 12

tick: crash:

± ±

1529.40 524.55 ± 1004.60 370.84 ±

2039.60 354.18 ± 1330.20 308.69 ±

2739.20 ±444.05

1504 253.46 ±

2932 465.69 ± 1763.60 178.86 ±

risultato peggiore tempo e crash

peggiore tempo e crash

peggiore tempo e crash

commento qui siamo già oltre ciò che conviene al

drone

La variabile flockvision fornisce al drone un raggio di visibilità nel quale osservare i compagni a cui allinearsi. Se è troppo bassa, il drone non vede nessuno se è troppo alta il drone potrebbe essere troppo rigido nel virare e nell’esplorare. Dopo aver osservato i risultati, aggiungiamo la colonna VALORE 0 poichè già con VALORE 1 ci sono degli svantaggi sia in termini di tempo che di crash. ESPERIMENTO N. 3 PARAMETRO VALORE 1 VALORE 2 VALORE 3 VALORE 4

olfaction 1 5 9 13

tick: crash:

3221.60 349.79 ± 1879.40 270 ±

3385.40 226.57 ± 1664.80 219.93 ±

3396.40 205.01 ± 1602 104.93 ±

3501 1442.40 99.55 ±

risultato aumentano i tick, diminuiscono i crash

non ci sono cambiamenti significativi

aumento dei tick e diminuzione dei

crash

commento

I prossimi esperimenti consistono nella variazione combinata di due parametri. I rispettivi valori sono rappresentati in rosso e blu per maggior chiarezza. ESPERIMENTO N. 4

obstacle vision obstacle sight cone

VALORE 1 VALORE 2

tick: 2 4

Page 39: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

crash:

90 3495.60 10.58 ± 2379.80 323.37 ±

3059.80 273.82 ± 1676.40 106.31 ±

120 3501 1454.60 140.85 ±

3212 321.53 ± 2353 577.29 ±

180 3464 72.52 ± 1405.40 137.99 ±

3065 530.88 ± 1175.40 203.71 ±

270 3480.20 40.77 ± 1404.20 99.87 ±

3385 139.23 ± 1216.60 86.15 ±

ESPERIMENTO N. 5

flock vision minimum separation

VALORE 1

tick: crash:

3

2 1727.40 234.50 ± 1061.40 125.80 ±

5 1734.20 242.19 ± 1034.20 154.61 ±

Page 40: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Miglioramento dei parametri attraverso evoluzione genetica In questi esperimenti verrà adoperato un algoritmo genetico simile a quello mostrato su netLogo per configurare i parametri in modo da ridurre il tempo necessario a identificare i target. L’algoritmo genetico adoperato si chiama “evoluzione differenziale” ed è eseguito da un altro simulatore, Matlab. Matlab è in grado di chiamare NetLogo ed eseguirlo con i parametri che desidera sperimentare. Una scelta precisa di parametri rappresenta il cromosoma di un individuo. Matlab inizierà con il seguente antenato (primo individuo della specie)

Page 41: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

A partire dall’antenato, generarà una prima popolazione di individui per mutazione genetica. Le mutazioni avvengono negli intervalli di seguito specificati:

Page 42: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Esperimenti sull’evoluzione genetica e risultati Accoppiando individui della medesima generazione, Matlab individuerà una nuova generazione e la valuterà a seconda del numero di tick. In seguito accoppierà i crosmosomi (prendendo pezzi e incollandoli) e genererà nuovi individui. Ecco alcuni individui generati in una simulazione.

Page 43: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato
Page 44: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Ecco le generazioni (iterazioni) prodotte in un’ora circa.

Il risultato migliore è stato ottenuto alla generazione successiva, con 857 tick.

Page 45: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Come risultato, Matlab è riuscito a produrre 857 tick, ben al di sotto di quanto generato attraverso la parametrizzazione manuale. Il grafico seguente mostra gli individui prodotti in ciascuna delle prime tre generazioni.

Page 46: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

Bibliografia 1. Il comportamento emergente, https://it.wikipedia.org/wiki/Comportamento_emergente

(fino a “Strutture emergenti in natura” incluso) 2. Ambiente di simulazione di sistemi emergenti,

Netlogo, https://ccl.northwestern.edu/netlogo/models/index.cgi 3. Colonia di formiche: http://ccl.northwestern.edu/netlogo/models/Ants 4. Colonia di termiti: http://ccl.northwestern.edu/netlogo/models/Termites 5. Programmazione dichiarativa (solo introduzione):

https://it.wikipedia.org/wiki/Programmazione_dichiarativa 6. Programmazione imperativa (solo primi due paragrafi)

https://it.wikipedia.org/wiki/Programmazione_imperativa 7. NetLogo, ambiente di simulazione di sistemi emergenti https://en.wikipedia.org/wiki/NetLogo 8. Formazione a V di volatili: http://ccl.northwestern.edu/netlogo/models/FlockingVeeFormations 9. Volo di gruppo (flocking) http://ccl.northwestern.edu/netlogo/models/Flocking

Page 47: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

10.Algoritmo Genetico http://ccl.northwestern.edu/netlogo/models/Echo 11. Intervalli di confidenza https://it.wikipedia.org/wiki/Intervallo_di_confidenza 12.Droni, https://it.wikipedia.org/wiki/Aeromobile_a_pilotaggio_remoto

Registro delle attività

01/02/2016 Introduzione agli algoritmi emergenti. Simulazione di un formicaio alla ricerca di cibo. Svolgimento di simulazioni al variare dei parametri. Documentazione dei fenomeni di interesse. Descrizione e rappresentazione della logica.

02/02/2016 Simulazione della colonia di termiti nell’attività di raggruppamento di trucioli. Svolgimento di simulazioni al variare dei parametri. Documentazione dei fenomeni di interesse. Descrizione e rappresentazione della logica. Uso degli intervalli di confidenza per la valutazione dei risultati.

03/02/2016 Studio dei principi del comportamento emergente e della programmazione dichiarativa e imperativa, attraverso [1] [5] e [6] (solo la parte introduttiva). Descrizione del simulatore NetLogo.

04/02/2016 Simulazione dello stormo di uccelli, in formazione a “V” e in formazione libera [8][9]. Svolgimento di simulazioni e osservazione qualitativa al variare dei parametri. Studio della logica dello stormo.

05/02/2016 Descrizione e rappresentazione della logica dello stormo di uccelli [8][9], includendo 2­3 immagini con un diverso raggruppamento (basso, medio, alto), sia per la formazione a “V” che per quella libera. Traduzione in italiano della logica dello stormo a formazione libera, e diagramma di flusso. Connessione al server NetLogo, modifica del codice relativo ad Ants e Flocking Birds.

08/02/2016 Introduzione agli algoritmi genetici. Simulazione e descrizione dell’algoritmo [10]. Riproduzione dello scenario di predominanza di una specie rispetto alle altre.

09/02/2016 Studio dello sciame di droni come sistema combinato di “obstacle avoidance” (evitare ostacoli), “flocking” (volare in formazione) e “pheromone based stigmergy” (rilasciare e seguire feromoni). Costruzione di un diagramma di flusso con i parametri di configurazione in evidenza.

10/02/2016 Analisi dei parametri di configurazione. Connessione al server per le simulazioni. Esperimenti di prova per studiare il funzionamento dello sciame di droni. Esperimento N.1: variazione della libertà di virata del drone.

11/02/2016 Definizione della situazione parametrica di partenza dello sciame. Simulazioni sistematiche dello sciame di droni con diversi valori dei parametri: completamento Esperimento N1. Esperimento N.2: variazione del raggio di visione del drone. Esperimento N.3: variazione del raggio in cui il drone sente il feromone. Commenti e risultati degli esperimenti. Variazione combinata di due parametri: esperimenti N. 4,5,6.

Page 48: Studio del comportamento di uno sciame di droni attraverso un ambiente di simulazione ... · 2016. 2. 26. · Un drone (o aeromobile a pilotaggio remoto), è un velivolo caratterizzato

12/02/2016 Studio del modulo di evoluzione genetica. Il miglioramento dei parametri di configurazione attraverso l’algoritmo genetico. Simulazioni dello sciame di droni con evoluzione genetica e risultati sperimentali conclusivi. Tavola rotonda sulle attività svolte: illustrazione del lavoro svolto da parte dei due tirocinanti, a due ospiti esterni al progetto (uno studente e un docente di un istituto professionale), sotto la supervisione dei coordinatori del tirocinio.