Genetic programming: Difference between revisions

Content deleted Content added
Hari (talk | contribs)
m -/talk
No edit summary
Line 1:
'''Genetic programming''' is [[computer programming]] method used to allow a computer to evolve other computer [[programming|programs]] after [[evolution|evolutionary]] patterns, using [[crossover]], selection, replication and [[mutation|mutations]] to evolve the programs. Genetic programming is a kind of [[genetic algorithm]] and has some relationship with [[evolutionary programming]].
 
Unfortunately, due to the lack of solid theory regarding the performance of genetic algorithms vs. traditional search methods (such as hill-climbing), genetic programming remains a sort of pariah amongst the various techniques of search. While genetic programming has achieved results that are as good as and sometimes better than human-generated results, more work needs to be done on the theory in order to bring the technique into more widespread use.
The biggest problem with this approach is, apparently, that program code is very volatile, it can be hard to make a difference to a program that is very small. Changing just a single byte of code representation often results in catastrophic change, even though the program can be in need of a little change. [[Genetic algorithms]] need both subtle and large change, and the change in genetic programming is very hard to control. [[Neural network|Neural networks]] are better in this aspect, but they also change and evolve more slowly, and they are not as flexible as GP.
 
References:
* [http://www.cs.ucl.ac.uk/research/genprog/gp2faq/gp2faq.html Genetic Programming FAQ]
* [http://www.faqs.org/faqs/ai-faq/genetic/part1/preamble.html The Hitch-Hiker's Guide to Evolutionary Computation]
* [http://www.genetic-programming.com John Koza's Genetic Programming Site]