Robotics Reference
In-Depth Information
A whole class of self-reproducing software, and one that has grown
dramatically in importance since its invention by Koza in the early 1990s,
is one in which the programs evolve, generation by generation, improv-
ing themselves along the way. Genetic Programming, as this technology
is most often called, addresses the keenly interesting task of how com-
puters can be programmed to do something without being told exactly
how to do it. The answer, put simply, is that they are set to evolve until
they know how.
In Chapter 6 we saw how genetic algorithms can be bred to find in-
creasingly better solutions to a problem. In the same way, computer pro-
grams can be bred until they evolve to the point of being able themselves
to solve problems without first being taught how to do so. Each member
of a population of programs makes an attempt at devising a program to
solve a type of problem, and then the more successful ones are encour-
aged to beget offspring designed to learn from the parents. Finding a
solution to a particular problem, as genetic algorithms do, is a skilled
task, but knowing how always to find the solution to a particular type
of problem is a more powerful and more valuable skill.
The breeding process in genetic programming is fundamentally the
same as that employed in genetic algorithms. Firstly, an initial popula-
tion of computer programs is created, each member of which comprises
a random mix of parts of computer programs. The basis of program
evolution is an iterative process 6 that starts with every program in the
population being set to work and assigned a fitness measure according to
how well or badly it performs. As one would expect, the programs in the
first generation of a genetic programming population will nearly always
perform extremely badly and therefore have assigned to them very bad
fitness values. Even so, some of these randomly created programs will
turn out to be better than others, and these are the ones that are most
likely to serve as the parents for the next generation.
The nature of the fitness measure employed to evaluate program per-
formance varies according to the type of problem, for example it might
be simply a measure of by how much the result produced by a program
differs from the desired result, in which case the closer they are, the bet-
ter the program. Normally, every program in the population is tested on
many different samples from the relevant problem domain, so that its
6 An iterative process is one that is repeated again and again, gradually moving towards the de-
sired result or solution, until a satisfactory end result is reached or until the process decides to stop
working, usually because it “gives up” on improving its performance.
Search WWH ::




Custom Search