Page 145 - 49A Field Guide to Genetic Programming
P. 145
Chapter 13
Troubleshooting GP
The dynamics of evolutionary algorithms (including GP) are often very com-
plex, and the behaviour of an EA is typically challenging to predict or un-
derstand. As a result it is often difficult to troubleshoot such systems when
they are not performing as expected. While we obviously cannot provide
troubleshooting suggestions that are specific to every GP implementation
and application, we can suggest some general issues to keep in mind. To a
large extent the advice in (Kinnear, 1994b; Koza, 1992; Langdon, 1998) also
remains sound.
13.1 Is there a Bug in the Code?
Machine learning systems are notoriously difficult to protect from coding
and logical mistakes. Unless a mistake produces a runtime error, it may
remain hidden in a system for a long time and may contribute to the system
achieving unsatisfactory results. Such mistakes are difficult to find because
the system, being adaptive, will still work to some degree. This is also true
of GP.
The most common reaction to a system not producing satisfactory results
is to start playing with the parameters, the fitness function, the primitive set,
etc. However, one should also consider the possibility of a coding mistake.
The normal program validation techniques, such as inspection of critical
regions of code, should be used to ensure everything is alright.
If the code is part of an established GP implementation, coding errors
are less likely. 1 A more probable source of coding errors is stretching the
GP library beyond its original intended use. Reading the manual carefully
is sometimes a good preventive cure for problems.
1
Coding errors cannot be entirely excluded, though, especially if a GP library is large
and provides a rich set of features and functionalities.
131