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

4                                                    1 Introduction

            1.4    Overview of this Field Guide

            As we indicated in the section entitled “What’s in this book” (page v), the
            book is divided up into four parts. In this section, we will have a closer look
            at their content.
               Part I is mainly for the benefit of beginners, so notions are introduced
            at a relaxed pace. In the next chapter we provide a description of the key
            elements in GP. These include how programs are stored (Section 2.1), the
            initialisation of the population (Section 2.2), the selection of individuals
            (Section 2.3) and the genetic operations of crossover and mutation (Sec-
            tion 2.4). A discussion of the decisions that are needed before running GP
            is given in Chapter 3. These preparatory steps include the specification of
            the set of instructions that GP can use to construct programs (Sections 3.1
            and 3.2), the definition of a fitness measure that can guide GP towards
            good solutions (Section 3.3), setting GP parameters (Section 3.4) and, fi-
            nally, the rule used to decide when to stop a GP run (Section 3.5). To help
            the reader understand these, Chapter 4 presents a step-by-step application
            of the preparatory steps (Section 4.1) and a detailed explanation of a sample
            GP run (Section 4.2).
               After these introductory chapters, we go up a gear in Part II where
            we describe a variety of more advanced GP techniques. Chapter 5 consid-
            ers additional initialisation strategies and genetic operators for the main GP
            representation—syntax trees. In Chapter 6 we look at techniques for the evo-
            lution of structured and grammatically-constrained programs. In particular,
            we consider: modular and hierarchical structures including automatically de-
            fined functions and architecture-altering operations (Section 6.1), systems
            that constrain the syntax of evolved programs using grammars or type sys-
            tems (Section 6.2), and developmental GP (Section 6.3). In Chapter 7 we
            discuss alternative program representations, namely linear GP (Section 7.1)
            and graph-based GP (Section 7.2).
               In Chapter 8 we review systems where, instead of using mutation and
            recombination to create new programs, they are simply generated randomly
            according to a probability distribution which itself evolves. These are known
            as estimation of distribution algorithms, cf. Sections 8.1 and 8.2. Section 8.3
            reviews hybrids between GP and probabilistic grammars, where probability
            distributions are associated with the elements of a grammar.
               Many, if not most, real-world problems are multi-objective, in the sense
            that their solutions are required to satisfy more than one criterion at the
            same time. In Chapter 9, we review different techniques that allow GP to
            solve multi-objective problems. These include the aggregation of multiple
            objectives into a scalar fitness measure (Section 9.1), the use of the notion of
            Pareto dominance (Section 9.2), the definition of dynamic or staged fitness
            functions (Section 9.3), and the reliance on special biases on the genetic
            operators to aid the optimisation of multiple objectives (Section 9.4).
   13   14   15   16   17   18   19   20   21   22   23