Similar a la anterior simulación, en esta se optimizó un poco el código y en vez de ser fijo 40 instrucciones, se dio libertad de que el organismo tuviera de 1 a N instrucciones. Se hicieron dos pruebas de 1 a 40 instrucciones y de 1 a 95 instrucciones.
A continuación muestro los resultados en texto y gráfico:
Número de pruebas | Fijo 4 Variables | Fijo 40 Instrucciones | Libre 1 a 40 Instrucciones | Libre 1 a 95 Instrucciones |
---|---|---|---|---|
100,000.00 | 7.125 | 5.5 | 4.65 | 5.225 |
200,000.00 | 8.85 | 6.5 | 5.025 | 4.3 |
300,000.00 | 9.725 | 6.775 | 5.55 | 6.325 |
400,000.00 | 12 | 7.1 | 5.45 | 6.4 |
500,000.00 | 11.975 | 7.175 | 5.65 | 7 |
600,000.00 | 11.175 | 7.15 | 6 | 6.875 |
700,000.00 | 10.85 | 7.45 | 6 | 7.15 |
800,000.00 | 10.45 | 8.15 | 6.375 | 7.375 |
900,000.00 | 10.65 | 7.875 | 6.35 | 7.55 |
1,000,000.00 | 11.4 | 7.975 | 6.65 | 7.825 |
Promedio: | 10.42 | 7.165 | 5.77 | 6.6025 |
Cómo puede observarse, el aumento de sensores y acciones hizo que la generación puramente aleatoria tuviera menos éxito que cuando solo usaba 4 variables; es mas darle libertad de generar de 1 a N instrucciones lo hizo menos efectivo que en la anterior simulación que eran fijas 40 instrucciones. ¿Por que? Entre mas libertad, mucho mayor son las opciones que puede tomar, luego es menos probable que de con una respuesta correcta.
Algo llamativo que observé en la simulación de 1 a N instrucciones es que los mejores algoritmos tendían a acercarse a las N instrucciones (84%). Observe:
# Pruebas | Promedio Instrucciones Libre 1 a 40 | Promedio Instrucciones Libre 1 a 95 |
---|---|---|
100,000.00 | 34.225 | 78.275 |
200,000.00 | 33.625 | 79.025 |
300,000.00 | 34.75 | 82.175 |
400,000.00 | 34.125 | 80.825 |
500,000.00 | 34.675 | 80.925 |
600,000.00 | 33.775 | 77.525 |
700,000.00 | 33.425 | 80.8 |
800,000.00 | 31.9 | 83.575 |
900,000.00 | 33.575 | 81.825 |
1,000,000.00 | 32.225 | 75.95 |
Promedio: | 33.63 | 80.09 |
% Uso | 33.63/40 = 84.075% | 80.09/95 = 84.3% |
Como aumentó la complejidad del ambiente (con todos esos sensores y acciones) necesariamente tiende a crecer el número de instrucciones para adaptarse a este, pero al crecer el número de instrucciones hay tantas opciones que su efectividad no es muy buena.
La próxima simulación ya no será generando solo algoritmos al azar, también habrá mutación de los mejores.