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.
   157   158   159   160   161   162   163   164   165   166   167