A learning process inspired by evolution and related to genetic algorithms. Whereas genetic algorithms evolve representations of problem features to find solutions, genetic programming evolves over populations of program fragments to assemble a final program that gives a solution. The output programs may be produced in a subset of a given language or might be in the form of a decision tree.