Hacker News new | ask | show | jobs
by verdverm 534 days ago
If you notice the GP research, they almost all focus on Symbolic Regression because the problem space is easier with commutativity and associativity. Generating programs is much harder because of state-space issues and Genetic Programming quickly falls into premature convergence. If you actually look at the breadth of research in this field, it is almost all efforts to combat premature convergence. As an algorithm, I don't think GP is all that great of an optimization technique. My PhD turned from GP research to developing an alternative called Prioritized Grammar Enumeration (PGE). This could be adapted to generate programs, but I suspect similar scaling and correctness issues from state-space complexity. PGE does offer more opportunity to create local generators that ensure some amount of correctness. Both algos still primarily benefit from noticing and ignoring bad solutions, which dominate the search space (the search space is sparse w.r.t. good solutions)

I agree with GP that you'll likely have to create cross language techniques to develop a system that has reasonable performance. I used a mix of Go & Python and used REST APIs to communicate between the processes. It was actually more performant overall by doing so, as certain subtasks had bad performance (small object allocation in Python was a bottleneck, Go lacks SymPy equivalent for mathematical simplification).