Genetic programming: Difference between revisions

Content deleted Content added
Updating .... + refs
m fmt
Line 1:
'''Genetic programming''' is a subfield of [[evolutionary computation]] introduced by [[John Koza]] in his 1992 book ''[[Genetic Programming: On the Programming of Computers by Means of Natural Selection]]''. It is a method used to allow a computer [[programming|programs]] to be evolved according to some user-defined goal. It uses [[evolution|evolutionary]]ary patterns, using [[crossover]], selection, replication and [[mutation|mutations]] to evolve the programs which are usually represented by [[Lisp programming language|LISP]] expressions. In order to work effectively requires an appropriate selection of operators and variables.
 
Genetic programming uses methods which are similar to [[genetic algorithm]]s, but is based on programs which perform tasks the results of which can then be evaluated to deliver a fitness function similar to GAs. Instead of using pools of parameter lists to be evaluated by some evaluation procedure, GP uses pools of programs which are to be run to perform the required task. A technical difference between GAs and GPs is that GAs use list structures, often fixed size, for the storage of their data, while GPs use tree structures which can vary in size and shape for each program used in the program pools.
Genetic programming uses methods which are similar to [[genetic algorithm]]s, but
is based on programs which perform tasks the results of which can then be evaluated to deliver a fitness function similar to GAs. Instead of using pools of parameter lists to be evaluated by some evaluation procedure, GP uses pools of programs which are to be run to perform the required task. A technical difference between GAs and GPs is that GAs use list structures, often fixed size, for the storage of their data, while GPs use tree structures which can vary in size and shape for each program used in the program pools.
 
So far GPs have successfully solved some '''toy''' problems, such as the lawn mower problem, but the method is very computationally intensive, and may not compare favourably where simpler methods, such as [[genetic algorithm]]s or [[random optimisation]] can be used instead. It is possible that some more complex problems may be more amenable to solution using GPs than other optimization methods.