Esta segunda versión adiciona dos(2) filtros mas a la generación de algoritmos aptos:
1. Ciertos algoritmos generados al azar implementan ciclos cerrados (queda atrapada la ejecución allí). Como el interpretador ejecuta una cantidad de veces definida las instrucciones finalmente el programa termina. Estos algoritmos son rechazados.
2. Algunos algoritmos llegan a los límites que imponen los enteros, por ejemplo multiplica un número grande con otro grande y vuelve y repite hasta que ya sobrepasa el límite permitido. El interpretador lo que hace es evitar que las operaciones se pasen de esta frontera. Estos algoritmos son rechazados.
Además se ha agregado que puede leer un archivo de inicialización donde se puede configurar diferentes variables (entradas, salidas, etc..)
La mejora es que el manejo de memoria es dinámico (el archivo de inicialización impone los límites) y los algoritmos genéticos generados pueden ser compilados sin problemas en C++.