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.