Abstract
Genetic Programming is an evolutionary computation
technique which searches for those computer programs
that best solve a given problem. As genetic programming
is applied to increasingly difficult problems, its
effectiveness is hampered by the tendency of candidate
program solutions to grow in size independent of any
corresponding increases in quality. This bloat in
solutions slows the search process, interferes with
genetic programming's searching, and ultimately
consumes all available memory. The challenge for
scaling up genetic programming is to find the best
solutions possible before bloat puts a stop to
evolution. This can be tackled either by finding better
solutions more rapidly, or by taking measures to delay
bloat as long as possible.
This thesis discusses issues both in speeding the
search process and in delaying bloat in order to scale
genetic programming to tackle harder problems. It
describes evolutionary computation and genetic
programming, and details the application of genetic
programming to cooperative robot soccer and to language
induction. The thesis then compares genetic programming
breeding strategies, showing the conditions under which
each strategy produces better individuals with less
bloating. It then analyzes the tree growth properties
of the standard tree generation algorithms used, and
proposes new, fast algorithms which give the user
better control over tree size. Lastly, it presents
evidence which directly contradicts existing bloat
theories, and gives a more general theory of code
growth, showing that the issue is more complicated than
it first appears.
Users
Please
log in to take part in the discussion (add own reviews or comments).