Page 19 - 49A Field Guide to Genetic Programming
P. 19

1.4 Overview of this Field Guide                                5


               A variety of methods to speed up, parallelise and distribute genetic pro-
            gramming runs are described in Chapter 10. We start by looking at ways
            to reduce the number of fitness evaluations or increase their effectiveness
            (Section 10.1) and ways to speed up their execution (Section 10.2). We
            then point out (Section 10.3) that faster evaluation is not the only reason
            for running GP in parallel, as geographic distribution has advantages in
            its own right. In Section 10.4, we consider the first approach and describe
            master-slave parallel architectures (Section 10.4.1), running GP on graphics
            hardware (Section 10.4.2) and FPGAs (Section 10.4.3), and a fast method to
            exploit the parallelism available on every computer (Section 10.4.4). Finally,
            Section 10.5 looks at the second approach discussing the geographically dis-
            tributed evolution of programs. We then give an overview of some of the
            considerable work that has been done on GP’s theory and its practical uses
            (Chapter 11).
               After this review of techniques, Part III provides information for peo-
            ple interested in using GP in practical applications. We survey the enor-
            mous variety of applications of GP in Chapter 12. We start with a dis-
            cussion of the general kinds of problems where GP has proved successful
            (Section 12.1) and then describe a variety of GP applications, including:
            curve fitting, data modelling and symbolic regression (Section 12.2); human
            competitive results (Section 12.3); image analysis and signal processing (Sec-
            tion 12.4); financial trading, time series prediction and economic modelling
            (Section 12.5); industrial process control (Section 12.6); medicine, biology
            and bioinformatics (Section 12.7); the evolution of search algorithms and
            optimisers (Section 12.8); computer games and entertainment applications
            (Section 12.9); artistic applications (12.10); and GP-based data compression
            (Section 12.11). This is followed by a chapter providing a collection of trou-
            bleshooting techniques used by experienced GP practitioners (Chapter 13)
            and by our conclusions (Chapter 14).
               In Part IV, we provide a resources appendix that reviews the many
            sources of further information on GP, on its applications, and on related
            problem solving systems (Appendix A). This is followed by a description
            and the source code for a simple GP system in Java (Appendix B). The
            results of a sample run with the system are also described in the appendix
                                                          2
            and further illustrated via a Flip-O-Rama animation (see Section B.4).
               The book ends with a large bibliography containing around 650 refer-
            ences. Of these, around 420 contain pointers to on-line versions of the corre-
            sponding papers. While this is very useful on its own, the users of the PDF
            version of this book will be able to do more if they use a PDF viewer that
            supports hyperlinks: they will be able to click on the URLs and retrieve the
            cited articles. Around 550 of the papers in the bibliography are included in


               2 This is in the footer of the odd-numbered pages in the bibliography and in the index.
   14   15   16   17   18   19   20   21   22   23   24