Ir a Inicio

Motor de Vida Artificial: Pruebas

Durante la construcción de las diferentes simulaciones, se observó que las expresiones simples se acercaban más a la serie esperada (una adaptación más rápida), comparada con la generación de algoritmos en forma aleatoria. Esto fue sorprendente, por lo que se decidió hacer una serie de pruebas con diferentes series de entrada y salida. Para esta prueba, se modificó una simulación (la IV.) para que aceptase valores de entrada y salida.

Metodología de las Pruebas

Se cambiaron los ambientes (valores de salida) en diversas formas:

  1. Serie de salida ascendente;
  2. Serie de salida descendente; y,
  3. Serie de salida alterna (valor positivo, valor negativo, valor positivo, valor negativo, ..)

Resultados Expresiones Simples

1. Serie de salida ascendente;

Serie Entrada: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
Serie Salida: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,

Prueba Puesto 1 Puesto 2 Puesto 3
1 (30000 intentos) 39,55234 39,55234 39,55234
2 41,909496 41,909496 41,909496
3 41,909496 41,909496 41,909496
4 55,0 55,0 55,0
5 42,766647 42,766647 42,766647
6 42,766644 42,766644 42,766644
7 54,383324 55,0 55,0
8 42,76664 55,0 55,0
9 52,374985 55,0 55,0
10 42,69556 42,69556 42,69556
Promedio 40,1125132 47,1600183 47,1600183

2. Serie de salida descendente;

Serie Entrada: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
Serie Salida: 97,89,83,79,73,71,67,61,59,53,47,43,41,37,31,29,23,19,17,13,11,7,5,3,2,

Prueba Puesto 1 Puesto 2 Puesto 3
1 (30000 intentos) 41,941315 41,941315 41,941315
2 42,71286 42,993042 42,993042
3 55,0 55,0 55,0
4 41,99689 41,99689 41,99689
5 71,48251 71,48251 71,48251
6 62,16886 62,16886 62,16886
7 55,0 55,0 55,0
8 46,771816 46,771816 46,771816
9 93,31336 93,31336 93,31336
10 43,30601 43,30601 43,30601
Promedio 55,3693621 55,3973803 55,3973803

3. Serie de salida alterna

Serie Entrada: 1,2,3,4,5,6,7,8,9,10,11,12,13,
Serie Salida: 1,-2,3,-4,5,-6,7,-8,9,-10,11,-12,13,

Prueba Puesto 1 Puesto 2 Puesto 3
1 (30000 intentos) 75.3318 75.3318 75.3318
2 72.74801 72.74801 72.74801
3 78.05236 78.05236 78.05236
4 67.64937 67.64937 67.64937
5 72.0 72.0 72.0
6 81.08726 81.08726 81.08726
7 72.0 72.0 72.0
8 62.872818 62.872818 62.872818
9 72.02144 72.02144 72.02144
10 76.003716 76.003716 76.003716
Promedio 72.9766774 72.9766774 72.9766774

Resultados Algoritmos Aleatorios (Motor 05. Generación Aleatoria y Mutación)

1. Serie de salida ascendente (Longitud Expresión: 2 operandos);

Serie Entrada: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
Serie Salida: 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,
Promedio ( ¿De 0 a N instrucciones? Si ): 88,30986166666...
Promedio ( ¿De 0 a N instrucciones? No ): 104,9827540833333....

image

image

2. Serie de salida descendente (Longitud Expresión: 2 operandos);

Serie Entrada: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,
Serie Salida: 97,89,83,79,73,71,67,61,59,53,47,43,41,37,31,29,23,19,17,13,11,7,5,3,2,
Promedio ( ¿De 0 a N instrucciones? Si ): 186,6811570833333.....
Promedio ( ¿De 0 a N instrucciones? No ): 210,4241325

image

image

3. Serie de salida alterna (Longitud Expresión: 2 operandos)

Serie Entrada: 1,2,3,4,5,6,7,8,9,10,11,12,13,
Serie Salida: 1,-2,3,-4,5,-6,7,-8,9,-10,11,-12,13,
Promedio ( ¿De 0 a N instrucciones? Si ): 57,47668866666....
Promedio ( ¿De 0 a N instrucciones? No): 47,36754533333.....

image

image

¡Eureka!: Aproximación cero

En la siguiente prueba, después de 100.000 intentos, el Motor05 encontró el algoritmo que dada la serie de entrada, daba exactamente la serie de salida requerida (20 instrucciones), otros algoritmos se aproximaron por poco. La investigación esta dando sus frutos.

image

De clic aquí para bajar los algoritmos generados por esta simulación

Conclusiones

Después de estas pruebas, podemos observar que:

  1. Las expresiones simples se aproximan mas a series ascendentes y descendentes. En cambio, en series con salidas alternas, los algoritmos fueron mas precisos.
  2. Queda en el aire estas dos preguntas: ¿En series alternas podríamos mejorar el acercamiento de las expresiones simples usando funciones sinusoidales? ¿Los algoritmos generados aleatoriamente requieren mas inteligencia en su generación?.
  3. Mas adelante se harán pruebas con otras series ascendentes, descendentes y alternas, los resultados en forma compacta serán publicados más adelante.

Nota: No se esta buscando la aproximación cero, existen procedimientos estadísticos que encontrarían expresiones con una aproximación bastante buena. El objetivo es observar el comportamiento de estas simulaciones y poder cuantificarlo. Por ejemplo, el uso de expresiones simples en unos casos es mejor que el uso de algoritmos, es mas, los algoritmos con pocas instrucciones son mas efectivos que los que poseen muchas. Eso da pistas sobre el modo de operar de la naturaleza: de manera simple, por la vía del menor esfuerzo.