Page 162 - 49A Field Guide to Genetic Programming
P. 162
148 A Resources
implementation decisions will not significantly affect the behaviour of the
system (see Section 13.4).
An alternative is to use one of the many public domain GP implemen-
tations and adapt this for one’s purposes. This process is faster, and good
implementations are often robust, efficient, well documented and compre-
hensive. The small price to pay is the need to study the available documen-
tation and examples. These often explain how to modify the GP system
to some extent. However, deeper modifications (such as the introduction
of new or unusual operators) will often require studying the actual source
code and a substantial amount of trial and error. Good publicly avail-
able GP implementations include: Lil-GP (Punch and Zongker, 1998), ECJ
(Luke, Panait, Balan, Paus, Skolicki, Popovici, Harrison, Bassett, Hubley,
and Chircop, 2000-2007), Open Beagle (Gagn´e and Parizeau, 2002) and
GPC++ (Fraser and Weinbrenner, 1993-1997). The most prominent com-
mercial implementation remains Discipulus (RML Technologies, 1998-2007);
see (Foster, 2001) for a review. A number of older unsupported tools can be
found at ftp://cs.ucl.ac.uk/genetic/ftp.io.com/.
While the earliest GP systems were implemented in Lisp, people have
since coded GP in a huge range of different languages, including C/C++,
Java (see an example in Appendix B), JavaScript, Perl, Prolog, Mathemat-
ica, Pop-11, MATLAB, Fortran, Occam and Haskell. Typically, these evolve
expressions and programs which look like simplified Lisp. More complex tar-
get languages can be supported, however, especially with the use of more
advanced tools such as grammars and type systems (see Chapter 6). Con-
versely, many successful programs in machine code or low-level languages
have also climbed from the primordial ooze of initial randomness.
A.5 On-Line Resources
On-line resources appear, disappear, and move with great speed, so all the
addresses here (and elsewhere in the book), which were correct at the time
of writing, are obviously subject to change without notice after publication.
Hopefully, the most valuable resources should be readily findable using stan-
dard search tools.
One of the key on-line resources is the GP bibliography (Langdon et al.,
3
1995-2008). At the time of writing, this bibliography contains about 5,000
GP entries, roughly half of which can be downloaded immediately. 4
paste error. Fortunately no published results were affected, but it was a very unsettling
experience.
3
http://www.cs.bham.ac.uk/~wbl/biblio/
4 The GP bibliography is a volunteer effort and depends crucially on submissions from
users. Authors are encouraged to check that their GP publications are listed, and send
missing entries to the bibliography’s maintainers.