Vida Artificial

Investigación

Artículos

Autor

Otros

Motor 01: Algoritmos Aleatorios

Se generan aleatoriamente algoritmos que usando la serie de entrada, se aproximen a los valores de salida esperados por el usuario.

Esta simulación prueba diferentes algoritmos que dado unos valores de entrada generen los valores de salida requeridos por el usuario. Los programas son generados en forma aleatoria. Usted puede crear cualquier programa con solo asignaciones e instrucciones IF. Los programas generados manejan solo 4 variables, entre estas una es de entrada X y una es de salida Y, W y Z son temporales.
Las líneas de código son de dos tipos:
1. Asignación
2. Validación IF

En la asignación el modelo de construcción es:
Label: Variable = Expresión;
Donde Variable puede ser W, X, Y, Z y Expresión es una expresión matemática de una sola variable independiente (que puede ser W, X, Y, Z), esta variable independiente la he llamado variable activa de la expresión.
Ejemplos de asignaciones:
X = Y * 3 / 2 + Y * Y - 7;
W = 45 + (3 * Z - Z * Z * Z);
Z = 4 * Z - 2 * Z * Z;

En la validación IF el modelo de construcción es:
Label: IF ( Variable Condición Expresión ) Goto LineaCodigo
Donde Variable puede ser W, X, Y, Z; Condición puede ser >, <, !, = ; Expresión es una expresión matemática de una sola variable independiente (que puede ser W, X, Y, Z), esta variable independiente la he llamado variable activa de la expresión; LineaCodigo es a que línea de código el programa irá si la condición es evaluada como verdadera.
Ejemplos de validaciones son:
IF ( X > (4 * Y - Y * Y + 7) ) Goto 2;
IF ( Z ! (12 -X + X * X + 7) ) Goto 8;
IF ( W < (W * W - 7 * W - 43) ) Goto 2;

Uniendo asignaciones con validaciones obtenemos un programa, por ejemplo:
1: IF ( X> (3 + X + X*X )) Goto 3; // Es in If condicional
2: Y = 4 - Z +Z * Z * Z; // Es una asignación
3: Y = 10 - W * W;

OJO!!: Goto 0 es finalización del programa.

Modo de Uso:
Serie de Entrada: El valor X que tomarán los algoritmos generados para operar.
Serie de Salida: Valores esperados, se comparan con el valor de salida Y de los algoritmos generados.
Número de Genes: Máximo número de instrucciones generadas para el algoritmo.
Máximo Ciclos de CPU: Muchos algoritmos pueden tener 'gotos' que hacen que nunca haya salida. Esto evita ese problema, limitando a cuantas instrucciones procesará. Si el ser vivo no tiene salida, se elimina.
Iniciar: Inicializa todo los valores, empieza la simulación.
Detener: Detiene la simulación.
Continuar: Continua la simulación detenida.

Baje el código fuente

1