Ir a Inicio

Vida Artificial: Independencia 04: Mutación

En la anterior simulación se generaban algoritmos al azar de 1 a 40 instrucciones y de 1 a 95 instrucciones. En esta simulación se implementa la mutación de los mejores algoritmos. En las pruebas se observó un incremento dramático en el número de casillas llenas.

A continuación muestro los resultados (casillas llenas) en texto y gráfico:

# Pruebas Algoritmos al Azar Libre 1 a 40 Instrucciones. Mutando los mejores Libre 1 a 95 Instrucciones. Mutando los mejores
100,000.00 7.125 60.000001 66.100001
200,000.00 8.85 43.000001 74.000001
300,000.00 9.725 67.000001 56.000001
400,000.00 12 52.000001 12.000000
500,000.00 11.975 52.000001 69.000001
600,000.00 11.175 76.000001 79.000001
700,000.00 10.85 60.000001 84.000001
800,000.00 10.45 47.000001 58.000001
900,000.00 10.65 71.000001 85.000001
1,000,000.00 11.4 46.000001 100.000001
Promedio: 10.42 57.4 68.31

Es especialmente llamativo lo sucedido en la prueba con 400.000 intentos, en el cual se dio como promedio unas mediocres 12 casillas llenas (cuarta columna). En varios escritos sobre Algoritmos Genéticos mencionan este problema, en donde hay un "falso positivo", es decir, una respuesta que puede ser, pero por mas mutaciones que se den no hay un progreso. Se forma un callejón sin salida, porque este algoritmo dañado solo puede ser vencido por uno al azar que de mejor aproximación (algo muy raro), pero a medida que pasan las pruebas este algoritmo dañado deja descendencia con aproximación similar y le cierra las oportunidades a otros algoritmos que al azar no tengan buena aproximación pero con unas cuantas mutaciones hubiesen sido mucho mejores.

En la naturaleza puede que suceda algo similar. Una especie logra adaptarse pero no progresar, aún así le cierra el espacio a otras especies que en un inicio son poco aptas pero que con el paso del tiempo progresan a niveles evolutivos mas avanzados. Solo un desastre natural podría quitarle ese reinado a esa mediocre especie. En el caso de las simulaciones podría generarse borrados al azar de la lista de mejores algoritmos para que uno nuevo tenga espacio.

En ambas pruebas (descontando el caso especial de aproximación 12), entre mas instrucciones, mayor fue el número de casillas llenas. Debido a la forma como la "selección natural" opera en esta simulación, un algoritmo bueno, deja descendencia con el mismo número de instrucciones. A continuación el número de instrucciones usadas en promedio.

# Pruebas Promedio Instrucciones Libre 1 a 40 Promedio Instrucciones
Libre 1 a 95
100,000.00 33 82
200,000.00 31 95
300,000.00 37 90
400,000.00 31 70
500,000.00 34 87
600,000.00 28 72
700,000.00 28 92
800,000.00 37 95
900,000.00 39 78
1,000,000.00 34 94
Promedio: 33.2 85.5
% Uso 33.2/40 = 83% 85.5/95 = 90%

Los algoritmos mas efectivos usaron muchas instrucciones, entre un 83% y 90% de lo permitido.

Descargue código fuente