# Simple Genetic Programming 
### For Symbolic Regression
This Python 3 code is a simple implementation of genetic programming for symbolic regression, and has been developed for educational purposes.

## Dependencies
`numpy` & `sklearn`. The file `test.py` shows an example of usage.

## Installation
You can install it with pip using `python3 -m pip install --user simplegp`, or locally by downloading the code and running `python3 setup.py install --user`.

## Reference
If you use this code, please support our research by citing one (or more) of our works for which this code was made or adopted: 

> M. Virgolin, A. De Lorenzo, E. Medvet, F. Randone. "Learning a Formula of Interpretability to Learn Interpretable Formulas". [Parallel Problem Solving from Nature -- PPSN XVI, pp. 79--93](https://link.springer.com/chapter/10.1007/978-3-030-58115-2_6), Springer (2020). ([arXiv preprint arXiv:2004.11170](https://arxiv.org/abs/2004.11170))

> M. Virgolin. "Genetic Programming is Naturally Suited to Evolve Bagging Ensembles". [arXiv preprint arXiv:2009.06037v5](https://arxiv.org/abs/2009.06037v5) (2021)

## Multi-objective
For a multi-objective version, see [pyNSGP](https://github.com/marcovirgolin/pyNSGP).
