Programma di controllo evolutivo per Robby il robot
In questa lezione andiamo a presentare in dettaglio un esempio di un semplice algoritmo genetico per il controllo di robot virtuali.
Il robot virtuale si chiama Robby.
E' un robot molto semplice che vive in un mondo simulato.
E' descritto nel mio libro "Complessità. Una visita guidata."
e il suo compito e di andare in giro raccogliendo le lattine di soda vuote.
Robby si ispira ad un robot reale di nome Robot
che ha funzionato nel 1988 nel laboratorio di intelligenza artificiale del MIT
che si spostava, sulle sue ruote, di ufficio in ufficio
e raccogliendo le lattine vuote di soda le metteva nel contenitore per il riciclo.
Robot era il risultato del lavoro di Jonathan Connel, studente al MIT e di Rodney Brooks e Peter Ning.
ed era un robot molto impressionante che utilizzava solamente degli algoritmi molto semplici
per controllare il suo comportamento
Il nostro robot si chiama Robby, è un robot virtuale
che vive in un mondo simulato costituito da una griglia di 10 x 10 quadrati,
dove ogni quadrato rappresenta un ufficio.
Ogni ufficio può essere vuoto o può contenere una lattina di soda vuota
Ecco per esempio una lattina di soda vuota .
Il compito di Robby è di muoversi in giro per il suo mondo e raccogliere le lattine di soda vuote.
Quindi dobbiamo fornire a Robby un programma che gli dica cosa fare a ogni passo
Io potrei programmarlo ma invece utilizzerò un algoritmo genetico
per fare evolvere i programmi per realizzare questo compito.
Per prima cosa lasciatemi descrivere quello che Robby può vedere e può fare.
E' un robot molto semplice che ha una pessima vista
e la sola cosa che può vedere è il contenuto del quadrato dove si trova
e di quelli posti a Nord, al Sud, A Est ed a Ovest.
Nella sua posizione attuale, il suo ufficio è vuoto
a Nord ha un muro, a Ovest ha un muro
a Sud ha un quadrato vuoto e a Est una lattina.
E' tutto quello che può vedere.
Utilizza quello che può vedere per decidere quale azione compiere a ogni istante
Ha sette azioni possibili
Si può spostare verso Nord, spostare verso Sud
spostarsi verso Est, spostarsi verso Ovest
corrispondenti allo spostamento di un quadrato.
Può fare uno spostamento casuale in una direzione a caso,
può rimanere sul posto senza fare nulla
o può cercare di prendere una lattina
Se prova a prendere una lattina quando ce n'è una, questo è un successo
O può cercare di prendere una lattina in un quadrato vuoto ed è un errore
Lui ottiene certe ricompense o penalità
a seconda dell'azione compiuta.
Se prende una lattina ottiene 10 punti in ricompensa per la sua azione
se prova a prendere una lattina in un posto vuoto, riceve -1 punto,
e se picchia contro un muro ottiene -5 punti
La performance globale dei suoi spostamenti è la somma delle ricompense e delle penalità ricevute.
L'obiettivo è di utilizzare un algoritmo genetico per fare evolvere un programma di controllo
ovvero una strategia per Robby.
Vediamo cosa significa il termine "strategia".
la definizione che utilizzo è:
un insieme di regole che determinano una azione per ognuna delle possibili situazioni .
Le situazioni possibili sono gli input di Robby, ciò che lui può vedere.
Stabiliamo una lista delle possibili situazioni che Robby può incontrare
Queste situazioni possono essere
che cosa vede a Nord, Sud, Est, Ovest,
lo stato della sua posizione attuale
E la strategia per ogni possibile situazione sarà l'azione da compiere
Qui c'è una situazione possibile, che potrebbe essere la più semplice
tutto è vuoto in tutte le direzioni
è una situazione possibile.
Ecco un'altra possibile situazione:
tutto è vuoto tranne il posto attuale dove c'è una lattina
e potremmo continuare enumerando le situazioni possibili
e quindi domandarci quante sono le situazioni possibili
ma, giusto per essere sicuri che vuoi abbiate seguito tutto questo, passiamo ad un quiz veloce.
Questo quiz contiene due domande
per la prima, controllate questa situazione e supponete che Robby abbia un punteggio di 0
prima di iniziare questa serie di azioni
spostamento a Est, spostamento ad Est
raccolta di una lattina, spostamento ad Est,
raccolta di una lattina, spostamento a Sud
Compie queste 6 azioni
e voi dovete rispondere alla domanda:
quale è la situazione dopo queste 6 azioni
e qual'è il punteggio ottenuto?
E qui c'è un riassunto del modo con cui calcolare i punteggi.