Tesina di Robotica Evolutiva di

annuncio pubblicitario
Tesina di Robotica Evolutiva
di
CATERINA CENITI
MATRICOLA:144431
Introduzione
La robotica è quella disciplina dell’ingegneria che studia i robot e i loro metodi per
riprodurre nello specifico il lavoro umano. “La parola “robot” deriva da RUR
(Rossum’s Universal Robots), una commedia del 1921 del drammaturgo ceco Karel
Capek, che ricavò la parola robot dal ceco “robota”: ossia “lavoro forzato”. Nel
1942, la parola “robotica” apparve per la prima volta in un romanzo intitolato “Runaround”, dello scienziato e scrittore americano Isaac Asimov.” (U. Nehmzow,
Robotica Mobile 2008). Il primo impiego dei robot risale agli anni 40’ del secolo
scorso, soprattutto in ambito industriale, con lo scopo di sostituire l’uomo in alcuni
processi e tecniche complesse e pericolose per la propria esistenza. Dal termine
robot quindi, sembra essere nata quella che oggi giorno viene considerata da molti
come una vera e propria scienza, ossia la Robotica. “Non c’è una sola data ufficiale
per la nascita della Robotica. Anche se spesso vengono schematizzate fasi storiche
simili a quelle delle “generazioni” del calcolatore e dell’elettronica digitale,
l’evoluzione dei robot, anche solo di quelli industriali più classici, è fatta di molti
episodi significativi, in ambiti non necessariamente tecnico-scientifici.” (Renato
Zaccaria, “Mondo Digitale”2003).
Dopo la comparsa dei primi robot, la Robotica cominciò a svilupparsi a pari passo
con scienze importanti come la Meccanica e l’Informatica. Negli anni successivi,
tecnici e scienziati si sono posti l’obbiettivo di creare in laboratorio, robot in grado di
affiancare l’uomo, non solo in fabbrica per svolgere operazioni gravose, ma anche
nella vita quotidiana e nel tempo libero. Ecco quindi, che robot più innovativi, sono
stati successivamente applicati in altri ambiti scientifici, come quello medico,
biomedico ed educativo.Questo tipo di robot sembrerebbe far parte di un’altra
branca della robotica, la cosiddetta Robotica Autonoma, che si occupa più che altro
della programmazione dei robot, e non tanto della progettazione vera e propria.
Quindi questi, sarebbero robot in grado di svolgere più compiti complessi, e con
caratteristiche prettamente umane. Sembrerebbero dei robot in grado di
“apprendere” quasi come un essere umano, e non più solo machine che eseguono
ordini prestabiliti e importi dall’uomo. Un robot che agisce ma soprattutto pensa
come un essere umano, può sembrare una cosa da poco, ma è in realtà un grande
passo in avanti per le ricerche sull’intelligenza artificiale. Quest’ultima si occupa di
studiare gli agenti intelligenti dei robot e la loro applicazione nei vari ambiti:
scientifico e ingegneristico interdisciplinare, linguistico, psicologico, medicoscientifico, biomedico, elettronico, meccanico ecc. Per agente si intende un software
supportato da un hardware, in grado di interagire con l’ambiente; prendere
decisione e agire in maniera autonoma per raggiungere un obiettivo; e infine
comunicare con altri agenti e con l’essere umano. Gli agenti e quindi i robot si
sviluppano in ambienti virtuali, costruiti mediante tecnologie hardware. Il primo
studio sull’intelligenza artificiale, detto studio classico, è stato sviluppato da Alan
Touring e successivamente da Shannon nel 1950. Mentre il termine di intelligenza
artificiale è stato coniato da McCarthy, in una conferenza presso il Dartmounth
College. “Inoltre, l'applicazione delle tecnologie della comunicazione e quelle basate
sul Web ha aperto il settore multiforme dei robot ubiquiti. Nello stesso tempo, la
ricerca robotica sta contribuendo a importanti sviluppi scientifici e culturali. La sfida
di costruire un'entità intelligente e autonoma che abbia capacità di azione e
intervento simili - talvolta superiori - all'essere umano richiede di ripensare a questa
nuova scienza, la Robotica, da un punto di vista globale, in un processo che vede
scienze fisiche e umane collaborare verso un comune obiettivo di conoscenza.”
(Fiorella Operto, Robotica. Una nuova scienza. 2008).
Dal 1950 in poi, Alan Touring, simultaneamente allo studio sull’intelligenza
artificiale, da vita ad una nuova branca della Robotica: la Robotica
evolutivacercando di produrre macchine predisposte all’apprendimento, usando un
processo evolutivo che includa mutazioni e riproduzioni selettive. Questo nuovo
approccio ha richiamato l’attenzione di Touring alla teoria evoluzionistica di Darwin.
Come sappiamo secondo Darwin, la selezione naturale ha determinato lo sviluppo di
alcune specie viventi e l’estinzione di altre, in base al loro adattamento, in periodi
temporali molto lunghi, all’ambiente circostante. La selezione naturale agisce
infattisul materiale genetico di un individuo (genotipo) e sulle sue caratteristiche
fisiche (fenotipo).
Questo nuovo approccio della Robotica evolutiva, vede il robot come un organismo
artificiale autonomo che sviluppa i propri comportamenti in relazione all’ambiente
circostante, medianti strumenti quali reti neurali, algoritmi genetici, sistemi
dinamicie ingegneria bioforma. La combinazione degli algoritmi genetici con le reti
neurali consente di scegliere una rappresentazione genetica ottimale per la rete
neurale stessa. Proprio come avveniva secondo la selezione naturale di Darwin,
anche nella riproduzione in laboratorio di agenti e robot, mediante l’utilizzo di
algoritmi genetici, si generano popolazioni di organismi artificiali, dotati di un
sistema nervoso costituito da una rete neurale, che vivono, apprendono e si
riproducono in un ambiente che li seleziona solo per le loro capacità di adattarsi ad
esso. Inoltre il programmatore è l’unico che conosce l’ambiente e deve pianificare le
loro azioni e i movimenti dei robot di fronte agli ostacoli presenti nell’ambiente. Ciò
che viene prodotto come simulazione in laboratorio è il sistema neurale del robot, i
comportamenti e il resto del corpo del robot; l’ambiente in cui il robot vive ed
interagisce e gli altri robot dell’ambiente. Il sistema neurale artificiale è costituito
proprio come il sistema nervoso umano, da neuroni connessi tra loro, ossia output,
input e hidden.
L’adattamento degli individui, e quindi dei robot, dipende dal loro patrimonio
genetico, ed è detto fitness. Naturalmente i robot con una maggiore fitness sono
favoriti rispetto a quelli che invece hanno una fitness minore. Quindi per concludere,
possiamo dire che, la differenza sostanziale tra la selezione naturale di Darwin e
l’algoritmo genetico consiste proprio nella definizione di sopravvivenza e
adattamento all’ambiente circostante. Secondo Darwin, mediante selezione
naturale, solo il più forte sopravvive ai continui mutamenti dell’ambiente, e avendo
quindi maggiore capacità di riprodursi. Mentre per l’algoritmo genetico gli individui
più forti sono quelli con una fitness più alta, in grado di risolvere meglio i problemi
somministrati.
Esperimenti
Lo scopo del lavoro da me svolto era quello di creare con un programma software di
base, Brain Farm, 5 cervelli artificiali capaci di controllare robot.
Per iniziare ho prima di tutto costruito il laboratorio in cui far sviluppare il robot.
Questa face è costituita da cinque fasi successive.
1. Si sceglie il corpo e il cervello del futuro robot, tra quattro tipi differenti di
robot disponibili; da qui scaturisce l’impostazione della rete, ossia input e
output della mente del robot. Al robot è necessario dare un nome, così da
poter identificare ciascun robot.
2. Si seleziona il tipo di addestramento della rete a cui si vuole sottoporre il
robot. Il programma, ancora in fase di sperimentazione, da una sola possibilità
di addestramento, ossia l’evoluzione.
3. Si imposta l’ambiente in cui far addestrare il robot.
4. Si carica il progetto.
5. E infine si addestra il robot.
Ho incontrato problemi solo per quanto riguarda l’impostazione dell’ambiente e il
caricamento del progetto, in quanto più di una volta il computer si è bloccato e ho
dovuto far ripartire tutto da capo. In un mese di tempo ho dovuto rifare tutti i
cinque robot più di una volta, in quanto ogni volta o avevo omesso qualche
elemento o non ero riuscita a fare il paragone tra i vari robot. modificando le
impostazioni dei robot di volta in volta, ho dovuto modificare anche l’ambiente in
cui i robot si evolvevano. Questo perché modificando l’ambiente, di conseguenza
cambiavano anche i parametri principali del robot. Mentre non ho riscontrato
difficoltà nella modalità di addestramento adottata, poiché il programma da la
possibilità di usare una sola modalità. Per superare le difficoltà riscontrate, mi sono
documentata su internet. Mi sono inoltre documentata sull’importanza dei robot
nella moderna società, attraverso documenti e articoli scientifici che spiegavano il
funzionamento di software simili e non, a quello in nostro possesso.
Esperimento 1
Nel primo esperimento si sono apportate modifiche sul numero dei genitori, dei figli,
e delle generazioni. L’ambiente è rimasto invariato per tutti e cinque gli esperimenti,
mentre ho deciso di apportare modifiche tra un esperimento e un altro per altre
caratteristiche. Anche la modalità di addestramento è rimasta invariata per ciascun
robot.
Caratteristiche del robot:
Il robot da me scelto per tutti e cinque gli esperimenti ha il nome di MaxRobot
avente una rete neurale con le seguenti caratteristiche: 6 neuroni sensoriali, di cui 3
sensori ad infrarossi, e 2 neuroni output, che controlla e codifica la velocità delle
due ruote su cui si muore il nostro robot.
Modalità di addestramento:
È stata selezionata una popolazione di 500 individui. La popolazione iniziale è
formata da 5 “genitori” che danno vita a 4 “figli” per ogni generazione.
Caratteristiche dell’ambiente:
L’ambiente, da me scelto per l’evoluzione dei robot, è stato il medesimo per tutti i 5
esperimenti. Il programma da un ambiente base costituito da quattro mura di cinta,
a cui bisogna aggiungere gli ostacoli, che i robot devono superare durante la loro
evoluzione. Infatti i robot che procedono nell’evoluzione sono quelli che hanno
maggiori caratteristiche per poter raggirare gli ostacoli. Per ogni esperimento quindi,
ho aggiunto nell’ambiente un cilindro e un muro.
Analisi qualitativa del primo esperimento:
Alla fine del processo evolutivo ho analizzato il comportamento degli individui
migliori di ciascuna generazione ed è emerso che:
Figura 1: il grafico rappresenta le caratteristiche dell’evoluzione del primo Max Robot. Il robot giunto alla
cinquecentesima generazione, ha avuto un’evoluzione da un minimo di cinquanta a un massimo di trecento.
Esperimento 2
Nel secondo esperimento si sono apportate modifiche sul numero dei genitori, dei
figli, e delle generazioni. L’ambiente è rimasto invariato per tutti e cinque gli
esperimenti, mentre ho deciso di apportare modifiche tra un esperimento e un altro
per altre caratteristiche. Anche la modalità di addestramento è rimasta invariata per
ciascun robot.
Caratteristiche del robot:
Il robot da me scelto per tutti e cinque gli esperimenti ha il nome di MaxRobot
avente una rete neurale con le seguenti caratteristiche: 6 neuroni sensoriali, di cui 3
sensori ad infrarossi, e 2 neuroni output, che controlla e codifica la velocità delle
due ruote su cui si muore il nostro robot.
Modalità di addestramento:
È stata selezionata una popolazione di 500 individui. La popolazione iniziale è
formata da 3 “genitori” che danno vita a 4 “figli” per ogni generazione.
Caratteristiche dell’ambiente:
L’ambiente, da me scelto per l’evoluzione dei robot, è stato il medesimo per tutti i 5
esperimenti. Il programma da un ambiente base costituito da quattro mura di cinta,
a cui bisogna aggiungere gli ostacoli, che i robot devono superare durante la loro
evoluzione. Infatti i robot che procedono nell’evoluzione sono quelli che hanno
maggiori caratteristiche per poter raggirare gli ostacoli. Per ogni esperimento quindi,
ho aggiunto nell’ambiente un cilindro e un muro.
Analisi qualitativa del primo esperimento:
Alla fine del processo evolutivo ho analizzato il comportamento degli individui
migliori di ciascuna generazione ed è emerso che:
Figura 2: il grafico rappresenta le caratteristiche dell’evoluzione del secondoMax Robot. Il robot giunto alla
cinquecentesima generazione, ha avuto un’evoluzione da un minimo di trenta a un massimo di centocinquanta.
Esperimento 3
Nel terzo esperimento si sono apportate modifiche sul numero dei genitori, dei figli,
e delle generazioni. L’ambiente è rimasto invariato per tutti e cinque gli esperimenti,
mentre ho deciso di apportare modifiche tra un esperimento e un altro per altre
caratteristiche. Anche la modalità di addestramento è rimasta invariata per ciascun
robot.
Caratteristiche del robot:
Il robot da me scelto per tutti e cinque gli esperimenti ha il nome di MaxRobot
avente una rete neurale con le seguenti caratteristiche: 6 neuroni sensoriali, di cui 3
sensori ad infrarossi, e 2 neuroni output, che controlla e codifica la velocità delle
due ruote su cui si muore il nostro robot.
Modalità di addestramento:
È stata selezionata una popolazione di 500 individui. La popolazione iniziale è
formata da 4 “genitori” che danno vita a 4 “figli” per ogni generazione.
Caratteristiche dell’ambiente:
L’ambiente, da me scelto per l’evoluzione dei robot, è stato il medesimo per tutti i 5
esperimenti. Il programma da un ambiente base costituito da quattro mura di cinta,
a cui bisogna aggiungere gli ostacoli, che i robot devono superare durante la loro
evoluzione. Infatti i robot che procedono nell’evoluzione sono quelli che hanno
maggiori caratteristiche per poter raggirare gli ostacoli. Per ogni esperimento quindi,
ho aggiunto nell’ambiente un cilindro e un muro.
Analisi qualitativa del primo esperimento:
Alla fine del processo evolutivo ho analizzato il comportamento degli individui
migliori di ciascuna generazione ed è emerso che:
Figura 3: il grafico rappresenta le caratteristiche dell’evoluzione del terzoMax Robot. Il robot giunto alla
cinquecentesima generazione, ha avuto un’evoluzione da un minimo di quaranta a un massimo di
centoquarantatre.
Esperimento 4
Nel quarto esperimento si sono apportate modifiche sul numero dei genitori, dei
figli, e delle generazioni. L’ambiente è rimasto invariato per tutti e cinque gli
esperimenti, mentre ho deciso di apportare modifiche tra un esperimento e un altro
per altre caratteristiche. Anche la modalità di addestramento è rimasta invariata per
ciascun robot.
Caratteristiche del robot:
Il robot da me scelto per tutti e cinque gli esperimenti ha il nome di MaxRobot
avente una rete neurale con le seguenti caratteristiche: 6 neuroni sensoriali, di cui 3
sensori ad infrarossi, e 2 neuroni output, che controlla e codifica la velocità delle
due ruote su cui si muore il robot.
Modalità di addestramento:
È stata selezionata una popolazione di 500 individui. La popolazione iniziale è
formata da 5 “genitori” che danno vita a 4 “figli” per ogni generazione.
Caratteristiche dell’ambiente:
L’ambiente, da me scelto per l’evoluzione dei robot, è stato il medesimo per tutti i 5
esperimenti. Il programma da un ambiente base costituito da quattro mura di cinta,
a cui bisogna aggiungere gli ostacoli, che i robot devono superare durante la loro
evoluzione. Infatti i robot che procedono nell’evoluzione sono quelli che hanno
maggiori caratteristiche per poter raggirare gli ostacoli. Per ogni esperimento quindi,
ho aggiunto nell’ambiente un cilindro e un muro.
Analisi qualitativa del primo esperimento:
Alla fine del processo evolutivo ho analizzato il comportamento degli individui
migliori di ciascuna generazione ed è emerso che:
Figura 4: il grafico rappresenta le caratteristiche dell’evoluzione del quartoMax Robot. Il robot giunto alla
cinquecentesima generazione, ha avuto un’evoluzione da un minimo di venticinque a un massimo di
centotrentotto.
Esperimento 5
Nel quinto esperimento si sono apportate modifiche sul numero dei genitori, dei
figli, e delle generazioni. L’ambiente è rimasto invariato per tutti e cinque gli
esperimenti, mentre ho deciso di apportare modifiche tra un esperimento e un altro
per altre caratteristiche. Anche la modalità di addestramento è rimasta invariata per
ciascun robot.
Caratteristiche del robot:
Il robot da me scelto per tutti e cinque gli esperimenti ha il nome di MaxRobot
avente una rete neurale con le seguenti caratteristiche: 6 neuroni sensoriali, di cui 3
sensori ad infrarossi, e 2 neuroni output, che controlla e codifica la velocità delle
due ruote su cui si muore il nostro robot.
Modalità di addestramento:
È stata selezionata una popolazione di 500 individui. La popolazione iniziale è
formata da 5 “genitori” che danno vita a 5 “figli” per ogni generazione.
Caratteristiche dell’ambiente:
L’ambiente, da me scelto per l’evoluzione dei robot, è stato il medesimo per tutti i 5
esperimenti. Il programma da un ambiente base costituito da quattro mura di cinta,
a cui bisogna aggiungere gli ostacoli, che i robot devono superare durante la loro
evoluzione. Infatti i robot che procedono nell’evoluzione sono quelli che hanno
maggiori caratteristiche per poter raggirare gli ostacoli. Per ogni esperimento quindi,
ho aggiunto nell’ambiente un cilindro e un muro.
Analisi qualitativa del primo esperimento:
Alla fine del processo evolutivo ho analizzato il comportamento degli individui
migliori di ciascuna generazione ed è emerso che:
Figura 5: il grafico rappresenta le caratteristiche dell’evoluzione del quarto Max Robot. Il robot giunto alla
cinquecentesima generazione, ha avuto un’evoluzione da un minimo di settanta a un massimo di centotrentotto.
Grafico generale
Figura 6: Nel grafico generale sono stati messi a confronto le medie dell’evoluzione di ciascuno dei cinque
esperimenti.
Conclusioni
Il lavoro di ricerca è stato portato a termine con successo.
Bibliografia consultata
[1]
Karel Capek; “Rossum’s Universal Robots”; commedia teatrale del 1921.
[2]
Isaac Asimov; “Run-around”.
[3]
U. Nehmzow; “Robotica Mobile”; 2008.
[4]
Renato Zaccaria; articolo giornalistico “Mondo Digitale”; 2003.
[5]
Fiorella Operto; articolo giornalistico “Robotica. Una nuova scienza”; 2008.
Scarica