Los detalles de los algoritmos usados por
Karl Sims para evolucionar a las criaturas virtuales
son bastante complicados.
Y no voy a dar todos los detalles
sólo voy a dar una idea general.
Esta parte es opcional,
es solo si te interesa mucho escuchar sobre
como se hace esto.
También puedes leer los artículos técnicos de Karl Sims sobre este tema
ingresando en el link que puse en la página de los materiales del curso.
Como mencioné, el algoritmo evoluciona tanto
la morfología de los cuerpos como las
redes neuronales que controlan a los cuerpos.
La morfología del cuerpo de la criatura
se representaron como gramáticas
que son pequeños programas repetibles
que pueden producir estructuras repetidas como éstas.
Los cerebros, o las redes neuronales
eran redes de neuronas y que podían tener como entrada,
valores de sensores, y de salidas, valores de efecto
que eran fuerzas en las articulaciones.
Los sensores incluían sensores del ángulo de la articulación.
Cada articulación reportaba el valor de su ángulo.
Sensores de contacto que era 1.0 si se hacía contacto con algo
y -1.0 si no se hacía contacto.
Y fotosensores, que regresaban las coordendadas
de las fuentes de luz relativas a la orientación de la part.
Puedes ver que comienza a complicarse,
y por supuesto que todo esto era virtual,
no era un robot real,
todos eran simulados en computadora.
En los "cerebros" de las criaturas,
cada neurona calcula su valor de salida
a partir de sus entradas.
El algoritmo genético evoluciona la red neuronal
y la función de salida de cada neurona.
El sistema tenía efectores que se pueden pensar como "músculos"
en donde cada efector controlaba un grado de libertad
de una articulación
y cada efector obtiene su entrada de una sola neurona o sensor
y saca la fuerza que va a cada articulación.
Aquí está una imagen de uno de los artículos de Karl Sims,
mostrando todo el sistema con el genotipo
que ha sido evolucionado para producir un fenotipo, el cuerpo.
La red neuronal también ha evolucionado para producir un fenotipo.
Así que han evolucionado simultáneamente, el cuerpo y el cerebro.
Dentro de esta simulación física
que está implementada en paralelo con lo que se conoce
como la "máquina de conexión"
que es una máquina en paralelo inmensa
Te puedes imaginar que todo este algoritmo
requiere mucho poder de cómputo.
Así es como evolucionan las criaturas:
La criatura crece a partir de su descripción genética
y para calcular su adecuación se debe
correr una simulación por cierto periodo de tiempo,
luego los sensores dan datos sobre el mundo.
El cerebro produce fuerzas efectoras para mover a la criatura
y la adecuación es qué tan exitoso fue el comportamiento deseado
tal como: nadar, saltar, seguir una luz o competir, al final de la simulación.
Esto es todo sobre mi rápido repaso
de este algoritmo tan complicado,
pero estoy segura que están de acuerdo que
es muy divertido ver los resultados
y que provocan muchas reflexiones.