Genetic programming: Difference between revisions

Content deleted Content added
Artur adib (talk | contribs)
removed and rearranged parts of the first two paragraphs; added new wiki links
Artur adib (talk | contribs)
mNo edit summary
Line 1:
'''Genetic programming''' ('''GP''') is an automated methodology inspired by [[biological evolution]] to find [[computer programs]] that best perform a user-defined task. It is a particular instance of [[evolutionary algorithms]], in which the population is composed of computer programs and the [[fitness landscape]] is determined by the ability of a program to perform a given computational task. It was pioneered by [[Nichael Lynn Cramer]] in 1985 and first explored in depth by [[John Koza]] in his 1992 book ''Genetic Programming: On the Programming of Computers by Means of Natural Selection''.
 
In the early (and traditional) implementations of GP, theprogram useinstructions ofand [[declarative_programming|declarativedata languages]]values suchwere asorganized in [[Lisp_programming_languagetree_structure|Lisptree-structures]], ledthus naturallyfavoring tothe ause of [[tree_structuredeclarative_programming|tree-structuredeclarative languages]] representationthat ofalready computerembody programs,a andtree-like thisstructure is(such stillas the predominantlanguage formused ofby GPKoza, [[Lisp_programming_language|Lisp]]). Nonetheless, other forms of GP have been suggested and succesfully implemented, such as the simpler [[linear_genetic_programming|linear representation]] (which suits the more traditional [[imperative languages]] have been suggested and succesfully implemented) [see, for example, Banzhaf ''et al.'' (1997)]. [[linear_genetic_programming|LinearThe genetic programming]] is in fact the basis of the onlypopular commercial GP software available, [http://www.aimlearning.com Discipulus], for example, uses [[linear genetic programming]] combined with [[machine code]] language to achieve better performance.
 
GPsGP is very computationally intensive and so in the 1990s it was mainly used to solve relatively simple problems. However, more recently, thanks to various improvements in GP technology and to the well known [[Moore's_law|exponential growth]] in CPU power, GP has started delivering a number of outstanding results. At the time of writing over 40 human-competitive results have been gathered, in areas such as [[quantum computing]], electronic design, game playing, sorting, searching and many more. These results include the replication or infringement of several post-year-2000 inventions, and the production of two patentable new inventions.
The application of a tree representation (and required genetic operators) for using genetic algorithms to generate programs was first described in 1985 by Cramer. Koza, though he did not first explore genetic programming, is indisputably the field's most prolific and persuasive author. Koza and other early GP researchers used the artificial inteligence language [[Lisp_programming_language|Lisp]] to program their GPs.
 
GPs is very computationally intensive and so in the 1990s it was mainly used to solve relatively simple problems. However, more recently, thanks to various improvements in GP technology and to the well known exponential growth in CPU power, GP has started delivering a number of outstanding results. At the time of writing over 40 human-competitive results have been gathered, in areas such as quantum computing, electronic design, game playing, sorting, searching and many more. These results include the replication or infringement of several post-year-2000 inventions, and the production of two patentable new inventions.
 
Developing a theory for GP has been very difficult and so in the 1990s genetic programming was considered a sort of pariah amongst the various techniques of search. However, after a series of breakthroughs in the early 2000s, the theory of GP has had a formidable and rapid development. So much so that it has been possible to build exact probabilistic models of GP (schema theories and Markov chain models) and to show that GP is more general than, and in fact includes, genetic algorithms.