Genetic Programming: On the Programming of Computers by Means of Natural Selection (Complex Adaptive Systems) by John R. Koza

Genetic Programming: On the Programming of Computers by Means of Natural Selection (Complex Adaptive Systems)
ISBN 0262111705
  • Author:
    John R. Koza
  • Title:
    Genetic Programming: On the Programming of Computers by Means of Natural Selection (Complex Adaptive Systems)
  • Category:
  • Subcategory:
    Computer Science
  • ISBN13:
    978-0262111706
  • Publisher:
    A Bradford Book; 1 edition (December 11, 1992)
  • Pages:
    840
  • Size PDF version
    1370 kb
  • Size FB2 version
    1953 kb
  • Size EPUB version
    1356 kb
  • Rating:
    4.8
  • Votes:
    648
  • Other Formats:
    doc rtf lrf azw

In this ground-breaking book, John Koza shows how this remarkable paradigm works and provides substantial empirical evidence that solutions to a great variety of problems from many different fields can be found by genetically breeding populations of computer programs.

Genetic programming may be more powerful than neural networks and other machine learning techniques, able to solve problems in a wider range of disciplines. In this ground-breaking book, John Koza shows how this remarkable paradigm works and provides substantial empirical evidence that solutions to a great variety of problems from many different fields can be found by genetically breeding populations of computer programs. Genetic Programming contains a great many worked examples and includes a sample computer code that will allow readers to run their own programs.In getting computers to solve problems without being explicitly programmed, Koza stresses two points: that seemingly different problems from a variety of fields can be reformulated as problems of program induction, and that the recently developed genetic programming paradigm provides a way to search the space of possible computer programs for a highly fit individual computer program to solve the problems of program induction. Good programs are found by evolving them in a computer against a fitness measure instead of by sitting down and writing them.



Aradwyn
This is not an "Introduction to Genetic Programming" of the type I was seeking after reading much on Complex Adaptive Systems and Information theory. This book presupposes a substantial grasp of fundamental programming algorithms. I suspect, however, that should one have that under one's belt already, this is almost certainly one of, if not THE best books to take you farther into the general topic and its zillions of applications.
Keel
I bought this book to get access to the accompany videotape, but can find it nowhere after buying it... Could anyone tell me where to find the videotape?
Tamesya
This is a great "how to" book loaded with examples of how to implement genetic algorithms. The two main points this book makes is that many seemingly different problems can be reformulated as problems of program induction and that the genetic programming paradigm described in this book provides a way to do that program induction. No prior knowledge of conventional genetic algorithms is assumed. Thus the first three chapters are introductory material. In particular, chapter three describes the conventional genetic algorithm and introduces certain terms common to the conventional genetic algorithm and genetic programming. If you are already familiar with genetic algorithms you can skip ahead.

Chapter 4 discusses the representation problem for the conventional genetic algorithm operating on fixed-length character strings and variations of the conventional genetic algorithm dealing with structures more complex and flexible than fixed-length character strings. Since this book assumes no prior knowledge of the LISP programming language, section 4.2 describes LISP and section 4.3 outlines the reasons behind the choice of LISP for the implementation of solutions in this book. Chapter 5 provides an informal overview of the genetic programming paradigm and chapter 6 provides a detailed description of the techniques of genetic programming. Some readers may prefer to rely on chapter 5 and hold off on reading the detailed discussion in chapter 6 until they have read chapter 7 and the later chapters that contain examples.

Chapter 7 provides a detailed description of how to apply genetic programming to four introductory examples thus laying the groundwork for all of the problems to be described later in the book. Chapter 8 discusses the amount of computer processing required by the genetic programming paradigm to solve certain problems. Chapter 9 shows that the results obtained from genetic programming are not the fruits of a random search. Chapters 10 through 21 illustrate how to use genetic programming to solve a wide variety of problems from varying disciplines and are defined by the table of contents. The examples in these 12 chapters make up the heart of the book.

The final eight chapters discuss aspects of genetic algorithms common to all implementations. Chapter 22 discusses the implementation of genetic programming on parallel computer architectures. Chapter 23 discusses the ruggedness of genetic programming with respect to noise, sampling, change, and damage. Chapter 24 discusses the role of extraneous variables and functions, and chapter 25 presents the results of some experiments relating to operational issues in genetic programming. Chapter 26 summarizes the five major steps in preparing to use genetic programming while chapter 27 compares genetic programming to other machine learning paradigms. Chapter 28 is an interesting one in which the spontaneous emergence of self-replicating and self-improving computer programs is discussed. Chapter 29 attempts to wrap up the book with a conclusion.

This book is best used for its examples and practical viewpoint. There are certain matters, such as how to program in LISP, for which you will need dedicated books since the amount of detail in this book is not enough. I do highly recommend this book as a uniquely practical one on how to implement genetic algorithms via computer programs. I haven't found another with so much practical information.
Malalanim
Genetic algorithms refer to computer programs that 'evolve' in ways similar to biological organisms. 'Natural selection' specifies the features of the solution to look for, strings of binary numbers (or other similar structures) are mated, with the combination of strings containing partial solutions often producing the most 'fit' results. Generation after generation of this process continues towards the 'evolution' of the desired features. Although this reference is quite long, it is quite readable, and can be shortened significantly by omitting a number of subsections as well as chapters not essential to the core concepts, as well as the detailed appendices. This reference shows that a variety of problems from different fields can be solved in terms of a computer program, of which genetic programming can be the means to find one or more such valid computer programs. It is relevant in that genetic programming is another way to effect computation, as well as providing insight with respect to evolution in nature.
hardy
Yeah, its a big book...weighs a ton. However, only the first few chapters are concerned with the basic mechanisms of GP (should be familiar to anyone with a background in genetic algorithms or evolutionary computation). The rest of the book is chock full of examples on how to apply GP. These examples are essential and very welcome. I've found that I can usually find a solved problem in Koza that is similar to what I'm after, then I adapt it to my needs. This is a great reference, but don't be fooled into thinking this book is a tutorial. Think of it more as an exposition of GP with examples. For a tutorial, look somewhere else.
Skiletus
I became interested in Genetic Programming after hearing one of the professors at our university lecture on it to a small group of students and other professors. I asked what book might be a good starting point and he pointed me here and i'm glad he did.

This first volume in the Genetic Programming series of books by Koza is very well organized and clear in its explanations. I have not tried the techniques presented yet, but I have some good ideas on how to proceed. The author uses LISP as the language of choice in the book, but practically any modern language should be sufficient.

If you have any interest in Genetic Programming, I encourage you to at least pick up this first volume and read through it. This technology is still relatively new and the application of the techniques seems virtually limitless.