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)); |
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; |
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í