Ask HN: Is genetic programming still actively researched?
It is fascinating that neural networks have such a run at the moment. I wonder if this will continue "forever". Or if we will see a different paradigm eclipse them in the future.
Is anybody still doing research in the area of genetic programming?
The genetic programming books of John R. Koza were the first I ever read about machine learning. It felt like magic at that time.
I have the feeling that the approach to generate programs for the CPU via evolution still has a lot to offer if it was explored further.
If there is research going on out there, I would love to follow it.
26 comments
[ 2.4 ms ] story [ 55.8 ms ] threadConnections between layers/nodes are serialized as genes of agents with phenotypes and dominant/recessive markers, and an observing CPPN learns to categorize agents into different traits to find more efficient breeding mechanisms.
It's a strong concept, and AFAIK it's still used a lot in the robotics world where you have to guarantee behaviors and have to be able to reproduce behaviors due to safety regulations.
There was a nice intro video into the underlying base concept which is called NEAT by a youtuber named SethBling [2]
[1] http://eplex.cs.ucf.edu/ESHyperNEAT/
[2] https://m.youtube.com/watch?v=qv6UVOQ0F44
Genetic Programming (GP), however, has not evolved to NEAT (which itself is not very recent, being published in 2002) but simply neuroevolution has become one of the topics that are part of evolutionary computation (EC). For example, one of the largest yearly conferences on evolutionary computation (GECCO) [2] was just last month with both neuroevolution and GP tracks. It is however true that the success of neural techniques had an effect on the community, some effects are the discussion of the role of EC and, for example, more space given to hybrid works (see, for example, the joint track on evolutionary machine learning [3] inside the evostar event).
Related to the original post, a place where some recent research on GP can be found are the proceedings of GECCO (GP track), EuroGP (part of evostar), PPSN (Parallel Problem Solving from Nature), and IEEE CEC (IEEE Congress on Evolutionary Computation) and journals like Genetic Programming and Evolvable Machine (GPEM), Swarm and Evolutionary Computation (SWEVO), and IEEE Transactions on Evolutionary Computation (IEEE TEVC). The list is not exhaustive, but those are some well-known venues.
For a less "daunting" starting point, some recent techniques are being added to the SRBench benchmark suite [4], with links to both the code and the paper describing the technique.
[1] Assunção, F., Lourenço, N., Machado, P., & Ribeiro, B. (2019, March). Fast denser: Efficient deep neuroevolution. In european conference on genetic programming (pp. 197-212). Cham: Springer International Publishing.
[2] https://gecco-2023.sigevo.org/HomePage
[3] https://www.evostar.org/2024/eml/
[4] https://github.com/cavalab/srbench
That is objectively true, but don't underestimate how much of that process is simulated by the way we train our models. The natural selection bit never was natural to begin with (it's obviously artificial), and is the rough equivalent of the final step in training a model: verification on unseen data. If the model performs worse compared to a previous one then it is discarded!
Evolutionary algorithms are somewhat interesting because they can come up with weird stuff that works anyway, that random element can result in entirely novel approaches (to the point that we have a hard time to understand what is going on) and that's something that I have not seen with neural nets.
There are some interesting hybrids:
https://www.sciencedirect.com/science/article/abs/pii/S09521...
Also, you have to keep in mind, it is often very hard to frame problems in a way that makes linear regression or gradient descent practical.
But it's never going to be efficient; it's inherently incredibly inefficient. It only really makes sense when no other method will work.
Anyway, there are also memetic algorithms, which extend genetic algorithms by adding local search (some form of local improvement such as gradient following or simple handcoded heuristics) to the genetic global search. Actually a very simple idea (e.g. alternate mutation and/or recombination and optimisation steps). They tend to perform better than pure genetic algorithms because they can actually use gradient information or heuristics. It's a very broad class of algorithms which tend to have many hyperparameters.
https://sig.sigevo.org/index.html
Genetic programming is a bit of a misnomer, evolutionary algorithms is probably a better name.
It's been used to do things like find design parameters (https://pure.york.ac.uk/portal/en/publications/evolving-desi...) and attempt to evolve robots to fit an environment (https://www.york.ac.uk/robot-lab/are/)
Intuitively to me intelligent design is going to beat genetic programming.
It's the constants and knowing which intelligently designed algorithm is better that is impossible to know, which Monty Carlo solves.
Look at the antenna designed on Wiki and think how easy that would be with Monty Carlo - https://en.wikipedia.org/wiki/Genetic_algorithm#:~:text=The%....
John R. Koza book was 1992, computational power now allows us to smash things.
Here's a comparison at a wind farm design between Monte Carlo and genetic algorithms (Monty Carlo was better) - https://rera.shahroodut.ac.ir/article_2146_5e7bee97938fcd513...
But it's really interesting, have fun looking into it. Have a look through HN articles - https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
[edit] I haven't differentiated between "What are the differences between genetic algorithms and genetic programming?" - https://stackoverflow.com/questions/3819977/what-are-the-dif...
http://www.cs.bham.ac.uk/~wbl/biblio/blog.html
https://human-competitive.org/
There’s also a low volume GP mailing list
I think the link between Pascal’s Simplex, Koza GP Tree Words, and Levin Search, is fascinating.