At roughly 1:45 am, my code came to life for the very first time. My genetic program found a solution not through a one-time, randomly generated polynomial expression, but through an evolutionary process which arrived to the desired solution.
I pushed back from the end of the SALT control room desk, threw my hands into the air, and at a respectable volume, “It’s alive!”
Given an equation with 2 terminals (variables) and 1 function (operand):
goal: a^b = c
data: 4,2,16
operands: +,-,*,/
Zero solutions found in the first 3 generations, but by the 5th, it produced 7 correct solutions out of 10 trees. This is with a very basic “either you get it or you don’t kernel”. No parsimony (reduction to the simplest solution). No crossover. Just simple point mutation. I also tried up to 100 trees in fewer generations or fewer trees in 100 generations. Each converges at a different rate.
I am very, very excited … and totally exhausted.