13 Genetic Programming
    In this chapter Ballard discusses how to extend the concept of genetic algorithm to process programs, which leads to the area of genetic programming. The immediate benefit is that programs are much more general than data. The first section in this chapter provides an excellent and simple introduction to program representation by using the LISP language and the concept of fracture points, while the subsequent section addresses and illustrates the implementation of the genetic operations of crossover, inversion and mutation. Though starting by motivating that one of the main differences between genetic algorithms and genetic program lies in the fact that in the latter fitness evaluation involves running the obtained algorithms, the remainder of that section covers two specific examples, namely parity and the Pac-Man game, but fails to explicitly discuss the fitness issue. As a matter of fact, each of these examples present rather distinct situations as far as fitness in concerned. While in the parity problem there is no chance to error (the results must always be correct) and the fitness can be defined in terms of the length of the code, performance in Pac-Man has a stochastic nature, and a possible choice of fitness would be in terms of the average score. However, these points are not ellaborated in that section, which is basically limited to discussing the results achieved by the respective genetic approaches. Section 13.4 includes some interesting remarks about the performance analysis of genetic programming.
 
    The penultimate section in this chapter addresses the interesting issue of including modules (subroutines) in genetic programming. The potential of this approach is illustrated for the parity problem, and the possibility of testing for a module function in terms of differential fitness is outlined. This section also addresses the important issue regarding the use of entropy measures as a subsidy for deciding when to diversify the population (by using the genetic operators). This is one of the few chapters in Ballard's book (see also Chapter 11) to include a welcomed Summary.