An "Artifficial Intelligence" that is able to discover a functions that fit an array of points using genetic Programming The Algorithm uses Tournament Selection, SubTree Crossover and Point mutation.
Everything is put togheter in a web page, you can see how the algorithm works using a function plotter (https://mauriciopoppe.github.io/function-plot/)
A problem that I can identify is how every generation the functions are getting more complex because the subtree crossover is not uniform, one solution could be using uniform subtree crossover or implementing Shrink mutation