What Is Genetic Programming?
Genetic programming, or genetic programming / GP, is a technique for automatically generating and selecting computer programs inspired by biological evolutionary processes to accomplish user-defined tasks. In theory, humans only need to tell the computer "what needs to be done" instead of telling it "how to do it" with genetic programming. In the end, it is possible to achieve true artificial intelligence: the automated invention machine. [1]
- Genetic programming is a special kind of evolutionary algorithm
- The scope of application of GP is very broad. In theory, any function that obtains a value based on multiple input values, such as: for functions such as f (x1, x2, ..., xn) can be generated using GP. When it comes to logically simple programs, you can write them by hand without generating them with GP, but for some logically complicated programs, you can use it to automatically evolve to generate a program.
- For example: For those with more control response
- The first trials of genetic programming were published by Stephen Smith (1980) and Cram (1985). John Koza (1992) also wrote a famous book on genetic programming.
- Computer programs using genetic programming can be written in many programming languages. In the early (or traditional) GP implementation, the program instructions and data values were organized in a tree structure, so those programming languages that originally provided a tree structure were most suitable for GP, such as the Lisp language used by Koza. Other forms of GP are also advocated and implemented, such as relatively simple linear genetic programming suitable for traditional programming languages (such as Fortran, BASIC, andC). Some commercial GP software combines linear genetic programming and assembly language to obtain better performance, and some implementation methods directly generate assembly programs.
- The amount of computation required for genetic programming is so large (computer programs that handle a large number of candidates) that it was used to solve simple problems in the 1990s. In recent years, with the development of genetic programming technology itself and the exponential increase in the computing power of central processing units, GP has begun to produce a large number of significant results. For example, around 2004, GP achieved nearly 40 results in various fields: quantum computing, electronic design, game competitions, ranking, search, and so on. Some of these computer-generated programs (algorithms) are very similar to inventions created manually after 2000, and even two results have produced new patentable inventions.
- In the 1990s, it was generally believed that it was difficult to develop a theory for genetic programming, and GP was also disadvantaged in various search technologies. After 2000, GP's theory has made significant development, and it has become possible to establish exact GP probability models and Markov chain models. Genetic programming is more applicable than genetic algorithms (actually includes genetic algorithms)
- Juergen Schmidhuber further proposed macro genetic programming, a technique that uses genetic programming to generate a genetic programming system. Some reviews have suggested that macrogenetic programming is not feasible in theory, but more research is needed to confirm it. [1]