A simple symbolic regression project using genetic programming, MPI, and OpenMP. This code makes heavy use of reverse polish notation (abbreviated rpn in the code; also known as post-fix notation) which is a simple way of representing a function so it can be evaluated on a stack: see here for more. For more on genetic programming see wikipedia, geneticprogramming.com, and this excellent introductory book.
Run make
.
Compiled program takes a few arguments to be able to run.
-m <float> mutation rate, in range [0, 1]
-c <float> crossover rate, in range [0, 1]
-s <int> seed, random seed
-f <int> function, from FunctionFactory::FunctionType enum
-p <int> population size, > 0
-g <int> generations, > 0
Each must be provided, no default values are hard coded. See simple_run.sh
for an example.