I dettagli degli algoritmi usati da Karl Sims
per evolvere le creature virtuali sono molto complicati
e non andrò nei dettagli. Andrò
solo avanti per dare uno schizzo generale. Questa parte
è opzionale - è solo se siete molto interessati
a sentire che cosa è stato fatto. Potete anche
leggere gli articoli tecnici di Karl Sims su questo argomento
seguendo il link che ho inserito nella
pagina del materiale del corso. Come detto, l'algoritmo
evolve sia le morfologie dei corpi che
le reti neurali che controllano i corpi.
Le morfologie dei corpi delle creature sono rappresentati
come queste grammatiche che sono piccoli programmi ripetibili
che possono produrre strutture ripetute come queste.
I cervelli, o le reti neurali, o le reti
di neuroni - le reti neurali avevano un input di
valori di sensori e davano in output valori degli effettori
che erano forze nella giunzione. I sensori comprendono:
sensori giunzioni-angolo - cioè ciascuna giunzione ha riportato
i valore di questo angolo - e sensori di contatto -
che sono 1.0 se un contatto è stato fatto con qualcosa e
-1.0 se non c'è contatto, e fotosensori - che riportano
le coordinate delle sorgenti di luce relative
all'orientamento della parte. Quindi, come potete vedere, sta diventando
molto complicato, e ovviamente, erano
tutti virtuali, Non sono robot reali - sono tutti
simulazioni. I cervelli delle creature, ciascun neurone
calcola il valore del suo output dai suoi input.
L'algoritmo genetico evolverà la rete neurale
e la funzione di output di ciascun neurone. Il
sistema ha effettori, che potete pensare come
muscoli dove ciascun effettore controlla un grado
di libertà di una giunzione e ciascun effettore
prende il suo input da un singolo neurone - o da un sensore - e fornisce come output
la forza per la giunzione. Ecco un'immagine
da uno degli articoli di Karl Sims che mostra
il sistema completo con il genotipo che si evolve
per produrre un fenotipo - il corpo. La
rete neurale è anche evoluta per produrre un fenotipo,
quindi si evolvono simultaneamente, il corpo
e il cervello. In questa simulazione fisica che
è implementata in parallelo su quella che viene chiamata
macchina di collegamento che è una macchina di parallelizzazione massiva.
Come potete immaginare, l'intero
algoritmo necessita di molto calcolo. Ecco
come si evolvono le creature. Crescono
dalla loro descrizione genetica e calcolano l'adattamento,
fanno una simulazione per un certo periodo di tempo.
Bene, quindi i sensori forniscono i dati del mondo,
il cervello produce le forze attuative per muovere
le creature e l'adattamento è "quanto è stato soddisfatto
il comportamento desiderato", come nuotare o saltare
o seguire una luce o gareggiare, alla fine
del tempo stabilito. Quindi questo è il mio veloce riassunto
di questo algoritmo estremamente complicato, ma
sono sicuro che siete d'accordo sul fatto che i risultati sono divertenti da
vedere e molto stimolanti.