Experimenté con GA en mi juventud. Escribí un simulador en Python que funcionó de la siguiente manera.
Los genes codificaron los pesos de una red neuronal.
Las entradas de la red neuronal eran "antenas" que detectaban toques. Los valores más altos significaban muy cerca y 0 significaba no tocar.
Las salidas fueron a dos "ruedas". Si ambas ruedas avanzaban, el tipo avanzaba. Si las ruedas iban en direcciones opuestas, el tipo giraba. La fuerza de la salida determinó la velocidad de giro de la rueda.
Se generó un laberinto simple. Fue realmente simple, incluso estúpido. Hubo el comienzo en la parte inferior de la pantalla y un gol en la parte superior, con cuatro paredes en el medio. Cada pared tenía un espacio extraído al azar, por lo que siempre había un camino.
Comencé con muchachos al azar (los consideraba como errores) al principio. Tan pronto como un hombre alcanzó la meta, o se alcanzó un límite de tiempo, se calculó el estado físico. Era inversamente proporcional a la distancia a la meta en ese momento.
Luego los emparejé y los "crié" para crear la próxima generación. La probabilidad de ser elegido para ser criado fue proporcional a su aptitud. A veces esto significaba que uno era criado consigo mismo repetidamente si tenía una aptitud relativa muy alta.
Pensé que desarrollarían un comportamiento de "abrazo a la pared izquierda", pero siempre parecían seguir algo menos óptimo. En cada experimento, los errores convergieron en un patrón en espiral. Girarían en espiral hacia afuera hasta tocar una pared a la derecha. Seguirían eso, luego, cuando llegaran a la brecha, bajarían en espiral (alejándose de la brecha) y alrededor. Hacían un giro de 270 grados a la izquierda, luego generalmente entraban en el espacio. Esto los llevaría a través de la mayoría de las paredes, y a menudo a la meta.
Una característica que agregué fue poner un vector de color en los genes para rastrear la relación entre los individuos. Después de unas pocas generaciones, todos serían del mismo color, lo que me dice que debería tener una mejor estrategia de reproducción.
Traté de hacer que desarrollaran una mejor estrategia. Compliqué la red neuronal: agregué un recuerdo y todo. No sirvió de nada. Siempre vi la misma estrategia.
Intenté varias cosas, como tener grupos de genes separados que solo se recombinaron después de 100 generaciones. Pero nada los empujaría a una mejor estrategia. Tal vez fue imposible.
Otra cosa interesante es graficar el estado físico con el tiempo. Había patrones definidos, como el estado físico máximo que bajaba antes de que subiera. Nunca he visto un libro de evolución hablar sobre esa posibilidad.