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.