Traditional formulations of GA and GP systems (e.g., [Goldberg 1989; Koza 1992]) generally describe non-adaptive methods for the recombination of the population members. Recent years have seen a growing interest in genetic operators (recombination strategies) that are responsive to the needs of the population they act upon. A genetic operator can be thought of as a program. An operator program can be hand-coded (e.g., ``Pick and exchange two random GP sub-trees.'') or can be learned, as in this chapter.
This chapter describes a procedure for the automatic design and use of new genetic operators. These SMART operator programs are co-evolved with the main population of programs and learn to recombine the main population programs better than random genetic recombination. Through a series of experiments, this chapter will show several domain independent features of the SMART operators' superiority to random recombination.
It seems appropriate to state here what this chapter is not. No attempt will be made in this chapter to describe the larger context and workings of the system in which these SMART operators are situated (see section 3.3). Further details on this system (beyond the language representation and SMART operators discussed in this chapter) can be seen in such works as [Teller and Veloso 1995a, 1995b]. In addition, this chapter is only an introduction to the SMART operator paradigm. Many questions of detail will not be answered, some for lack of space, and others because specific details and explanations are still under investigation in our current research.
This chapter can only briefly introduce the representation, the language, and some of the experiments. We hope that the domain independent operator features demonstrated by this chapter will contribute to genetic programming by inspiring future research into SMART operator programs and the general evolvability of the mechanics of evolution.