4 ms·
Genetic programming is not an algorithm. It is a community of researchers interested in applying stochastic optimization / metaheuristics methods to discover a
by SeanLuke 6y ago
Genetic programming is not an algorithm. It is a community of researchers interested in applying stochastic optimization / metaheuristics methods to discover and/or optimize computer programs and other computational devices.
Those methods applied can be fairly broad, but not every monte carlo algorithm will work. Because of the nature of the problem space (computer programs), it's less common to see methods which assume the existence of a gradient in the space, or that the space is metric. More often you need more general-purpose, "weaker" techniques. You see simulated annealing and hill climbing, various combinatorial optimization techniques (ant colony optimization say), etc., but even now the dominant approach is to use evolutionary computation methods because they make few assumptions about the nature of the space beyond a smoothness criterion, and because they are very highly parallelizable.
- platz 6y agobasically you use GP as a last resort, when you don't have any knowledge of the actual problem space that would help you make better guesses from previous ones. This is also usually the default situation, because often we really don't know anything about the problem space. Of course if you do know something about the problem space in the form of a gradient or probabilistic graph, and then you use those things & you won't be doing GP anymore.
- jmmcd 6y agoNo, you are missing the thing that sets GP apart from GAs and other metaheuristics. It is the P -- GP is about creating programs.
- joe_the_user 6y agoGenetic programming is not an algorithm. It is a community of researchers interested in applying stochastic optimization / metaheuristics methods to discover and/or optimize computer programs and other computational devices. -- Which saying that it can be formally just about anything but is knit together by various hunches and analogies. This sort of approach has a certain strength through flexibility. I would offer that the strength of a fully formally defined system has the strength that is can be meta-analyzed - propositions about what the entire system is capable of can proven (for example, see neural network approximation theorem). Also, neural networks today have a set-upon using "relu" layers, which basically "nothing but smooth" layers (continuous, piecewise-linear functions) and gradient descent works fine.