Motor 17: Estudio Cíclico
En la anterior simulación, se trabajó con organismos que se adaptan a un ambiente cíclico. Con este motor, el usuario puede definir cuantos organismos cubrirán todo un ciclo. El estudio de esta simulación es ver si un organismo poco a poco modifica su estructura para acomodarse al ciclo. Entre mas organismos mas fino se vería el cambio. También como los organismos se generan aleatoriamente y son ubicados donde mejor se adapten.
En las próxima actualización se mostrará los resultados de estas adaptaciones, de allí se parte al concepto mas complejo de MacroOrganismo y la simbiosis.
Esto es lo que se debe modificar:
Resultados de las Pruebas
Se hicieron varias pruebas con esta simulación, y los resultados sorprendieron. A pesar de que la variación entre ambientes era realmente muy pequeña (PI/40 o PI/70), los algoritmos generados eran radicalmente distintos, obsérvese esto (cambian las instrucciones y hasta el número de ellas):
PosY: 6*PI/70, Error: [2.022986] Organismo float fSerVivo(float X) { float W=0, Y=0, Z=0; 1: Y = (X/(4/X)); 2: Y = (Y-(3/Y)); 3: if( Z = ((3-5*Y)) ) goto 1; 4: if( X < W/5/7-W ) goto 5; 5: if( Y = Z/1/5-Z ) goto 4; 6: if( Y > 5*Y-(((4*Y))) ) goto 2; 7: X = X-(((X)-2)); return Y; } |
PosY: 7*PI/70, Error: [3.843365] Organismo float fSerVivo(float X) { float W=0, Y=0, Z=0; 1: Y = X/9*X*8; 2: if( Z < (W-((3*6))) ) goto 4; 3: if( W < Y-(7/8) ) goto 4; 4: Z = X*(X-6); 5: W = X/7+(X-4); 6: Y = 5+((Y)-7); 7: X = (6/((Y*4))); 8: Z = Z-(6+2); 9: if( W > 3+7+6/7 ) goto 2; 10: Y = ((Y)/3); return Y; } |
Una razón posible de ello es que el Motor 17 intencionalmente muta (fuerte o sutilmente) los algoritmos antes de probarlos en alguna otra parte del ciclo. Pero no se esperaba cambios tan radicales, se esperaba cambios sutiles y el nacimiento del concepto de especie.
Debido a esto, en el Motor 18, se harán algunos cambios que emularán mejor el comportamiento natural, se permitirá que algoritmos bien adaptados a una parte del ciclo sean probados sin mutar en otra parte del ciclo. Igualmente se optimizará la velocidad y mejoras en la adaptación. Las conclusiones nacerán según las pruebas efectuadas en el próximo Motor.
Descargue el fuente: De clic aquí
Descargue el ejecutable para Windows: De clic aquí
Descargue las pruebas: De clic aquí