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

1.3 Prerequisites                                               3


             1: Randomly create an initial population of programs from the available
               primitives (more on this in Section 2.2).
             2: repeat
             3:  Execute each program and ascertain its fitness.
             4:  Select one or two program(s) from the population with a probability
                 based on fitness to participate in genetic operations (Section 2.3).
             5:  Create new individual program(s) by applying genetic operations with
                 specified probabilities (Section 2.4).
             6: until an acceptable solution is found or some other stopping condition
               is met (e.g., a maximum number of generations is reached).
             7: return the best-so-far individual.

                           Algorithm 1.1: Genetic Programming



               The best way to begin is obviously by reading this book, so you’re off to
            a good start. We included a wide variety of references to help guide people
            through at least some of the literature. No single work, however, could claim
            to be completely comprehensive. Thus Appendix A reviews a whole host of
            books, videos, journals, conferences, and on-line sources (including several
            freely available GP systems) that should be of assistance.

               We strongly encourage doing GP as well as reading about it; the dy-
            namics of evolutionary algorithms are complex, and the experience of trac-
            ing through runs is invaluable. In Appendix B we provide the full Java
            implementation of Riccardo’s TinyGP system.





            1.3    Prerequisites


            Although this book has been written with beginners in mind, unavoidably
            we had to make some assumptions about the typical background of our
            readers. The book assumes some working knowledge of computer science
            and computer programming; this is probably an essential prerequisite to get
            the most from the book.
               We don’t expect that readers will have been exposed to other flavours of
            evolutionary algorithms before, although a little background might be useful.
            The interested novice can easily find additional information on evolutionary
            computation thanks to the plethora of tutorials available on the Internet.
            Articles from Wikipedia and the genetic algorithm tutorial produced by
            Whitley (1994) should suffice.
   12   13   14   15   16   17   18   19   20   21   22