The basic idea of this project is to re-create at least some functionalities of the commercial software Eureqa Formulize, building on existing Python packages that provide utilities for Genetic Programming (gplearn) and multi-objective evolutionary optimization à la NSGA-II (inspyred).
The project is dependant on at least gplearn (https://gplearn.readthedocs.io/en/stable/intro.html) and inspyred (https://pythonhosted.org/inspyred/)-
There are many functions of Eureqa Formulize that would be cool to re-create. Unfortunately, several are pretty complex.
- Pareto front complexity-fitting (this should be the easiest);
- Competitive co-evolution between 8 points of the training set and the current population of candidate solutions;
- Simplification of the equations during the run (maybe through specific operators?);
- Caching of some parts of the functions, to speed up evaluations (probably impractical);