Zusammenfassung
The technique of Genetic Programming (GP) uses
Darwinian principles of natural selection to evolve
simple programs with the aim of finding better or
fitter solutions to a problem. Based on the technique
of Genetic Algorithms (GA), a population of potential
solutions stored in tree form are evaluated against a
fitness function. The fittest ones are then modified by
a genetic operation, and used to form the next
generation. This process is repeated until certain
criteria have been met. This could be an ultimate
solution, or a certain number of generations having
been evolved. Genetic Programming is a fast developing
field with potential uses in medicine, finance and
artificial intelligence. This project attempts to use
the technique to evolve strategies for the game of
Prisoner's Dilemma. Although a simple game, the range
of possible strategies when the game is iterated is
vast, but what makes it particularly interesting is the
absence of an ultimate strategy and the possibility of
mutual benefit by cooperation. A system was created to
allow strategies to be evolved by either playing
against fixed opponents or against each other
(coevolution). The strategies are stored as trees, with
GP used to form the next generation. The main advantage
of GP over GA is that the trees do not need to be of a
fixed size, so strategies can be developed which use
the entire game history as opposed to just the last few
moves. This implementation has advantages over previous
investigations, as information about which go is being
played can be used, thus allowing cleverer strategies.
Work has also been conducted into a hunting phase,
where strategies roam a two dimensional grid to find a
suitable opponent. By studying the history of potential
opponents and using GA, evidence emerged of an increase
in cooperative behaviour as strategies sought out
suitable opponents, demonstrating parallels with
biological models of population dynamics. The system
has been developed to allow a user to alter important
parameters, select the evolution method and seed the
population with pre-defined strategies by means of a
graphical user interface.
Nutzer