23 Settembre 2007
Born to Kill
E porca puttana. Era poi anche ora. I miei aeroplanini sono diventati grandi. E ora riescono a volare. Di più. Raggiungono il target e lo fanno saltare allegramente per aria. Senza tanti complimenti e con una facilità sconcertante. Ancora una volta, l’errore che mi ha fatto dannare l’anima dallo scorso inizio d’agosto era un qualcosa di stupido, che più stupido non si potrebbe. Dimenticavo di aggiornare l’hidden layer delle mie reti neurali. E così il comportamento dei MAV era sempre lo stesso, dall’inizio alla fine dei vari test. In un attimo imparavano a farsi detonare non appena iniziato il test, perchè questa era l’unica cosa sensata da fare. E gli aeroplanini così adattati si riproducevano e colonizzavano la popolazione, in quanto l’alternativa era schiantarsi contro i bordi dell’ambiente e ricevere per questo una punizione in termini di fitness. Ma ora tutti questi sono soltanto brutti ricordi. Finalmente, i miei maledetti cosi volanti sono diventati dei killer. Nati.

La condizione sperimentale è una delle più semplici possibili: scenario sgombro da ostacoli e target che, durante ogni test, è posizionato in un diverso punto dello spazio. I MAV, che come amebe di parisiana memoria percepiscono il bersaglio in termini di angolo (fico, tra l’altro, come alla fine ho implementato la codifica…) e distanza, partono dai quattro angoli dell’ambiente, rivolti più o meno casualmente verso il centro dello stesso. L’output della loro rete neurale è costituito da due neuroni: uno booleano legato alla detonazione (0: nessun effetto, 1: saltiamo allegramente per aria) ed uno continuo dedicato allo sterzo (valori compresi tra -1 a +1, corrispondenti rispettivamente ad una sterzata di 10° a sinistra e di 10° a destra). Lo strato intermedio è formato da 10 neuroni con funzione di attivazione tan-sigmoidale (estremi -1.0 e +1.0, slope 1.0). Pesi delle connessioni e biases (questi ultimi solo per lo strato intermedio e quello di output) sono soggetti a mutazione puntuale nel passaggio da una generazione all’altra (probabilità 0.25, mutazione random tra -1.0 e +1.0). Infine, è utilizzato un operatore di elitismo per salvaguardare lo stormo con fitness più alta.
Ecco un po’ di grafici che testimoniano l’evento. Tutti i dati, ovviamente, sono medie per i 100 stormi posti sotto evoluzione.
Distanza media e minima dal punto dell’esplosione a quello in cui si trova il target:

Percentuale complessiva di test che si concludono con l’eliminazione del target:

Fitness media e massima (date semplicemente dall’inverso della distanza media e minima):

Autonomia media rimasta al MAV di uno stormo ad esplodere più vicino (o distruggere) il target:

Condizione dei MAV a fine simulazione:

Comments(3)



Evvivaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!!!!!!!!!!(born to kill è un pò inquietante, però). Sono contenta per te!!! Bravo!!
Grazie mille a entrambe…