Very interesting demonstration. Thanks for sharing this; it was fun to read through! I think I have a pretty good idea of how it works.
As a professional programmer:
That code it generated...is really, really shitty. It’s unreadable, and for that reason, a human cannot look at the generated code and figure out “what’s going on,” i.e. Kepler’s laws. Insofar as it works, it’s much more reminiscent of 0x5f3759df, but that algorithm was optimizing for speed, not correctness or elegance.
I’m not surprised that the algorithm does worse on the control group, for the same reason that I’d question the assumption that it will do better on future generations. It could easily be over-fitting, partially because there is no selection
pressure for an elegant solution. Empirically, elegant code does better in novel contexts.
Very interesting demonstration. Thanks for sharing this; it was fun to read through! I think I have a pretty good idea of how it works.
As a professional programmer:
That code it generated...is really, really shitty. It’s unreadable, and for that reason, a human cannot look at the generated code and figure out “what’s going on,” i.e. Kepler’s laws. Insofar as it works, it’s much more reminiscent of 0x5f3759df, but that algorithm was optimizing for speed, not correctness or elegance.
I’m not surprised that the algorithm does worse on the control group, for the same reason that I’d question the assumption that it will do better on future generations. It could easily be over-fitting, partially because there is no selection pressure for an elegant solution. Empirically, elegant code does better in novel contexts.
“Evolution is dumb, but it works”—I believe that showing that was the (implicit) goal, and it was amply demonstrated.