Posted in Information Technology & Systems, Total Reads: 304
Definition: Genetic Programming
Genetic Programming is a programming model that uses the terminologies, ideas and properties of natural selection found in biological evolution to solve complex problems. It is an approach that seems most relevant with problems involving large number changing variables such as those in sync with artificial intelligence.
Genetic programming can be seen as an extension of genetic algorithm wherein we test and select the best alternative among a set of results. Genetic programming going a step further makes the program or function the unit which was tested. The idea is to execute the programs, determine which gives the best results, keep the best ones, modify few others, test the new ones and repeat this process until a clear best program is found.
LISP is the most commonly used language for genetic programming. There are two methodology to select the successful program, a) cross breeding and b) tournament or competition approach. Another term used with genetic programming is “fitness function”. It describes the degree to which a program is helping or useful in achieving the desired goal. For example in a program devised to fire a gun, the distance by which the bullet misses the target would be the fitness function of program. The user feeds or enters the high-level statement of the problem in to the genetic programming system via certain well-defined prepatory steps. The user needs to specify:
a) Set of terminals (e.g. independent variables) for each branch of the program which is to be evolved.
b) Set of primitive functions of each branch.
c) Fitness measure.
d) Parameters for controlling the run (execution of the program).
e) Termination parameter and methodology for determining the result of the run.
Genetic Programming evolves computer programs which are traditionally represented in memory as tree structures. These structures can be easily evaluated in a recursive manner. There is also linear form of genetic programming which has non-tree structure. There are two main operators used in Genetic Programming:
1) Crossover – Involves switching of a node of an individual with another node from another individual.
2) Mutation – Involves replacing the whole node or just the node’s information of a selected individual.
An application of genetic programming could be in a curve whose form is not known and we want the computer to form a model for the data on its own without giving any past knowledge of it. Applying genetic programming to this, we simply input a set of data points and get a function that fits the data appropriatelye.g. f(x) = x4 + 2x3 + x - 1.