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.