Introduction to the Special Issue: Trends in Evolutionary Methods for Program Induction

Given accessible computational models of evolution, it is a short leap to the application of evolving programs. At its essence, evolving programs concerns the efficient evolution of behavior. This same question compels the currently thriving artificial life community. Unlike artificial life, however, the practical nature of evolving computer programs forces the evolutionary computation community to attend to the distinct issues involved in the induction of behavior that accomplishes a desired task and which is directed by a program. When evolving computer programs an issue of primary importance is the designation of an appropriate evolvable representation for the behavior. The general requirements of being sufficient to model the behavior and being amenable to evolutionary manipulation imply that an appropriate representation must accommodate the specific constraints of evolving executable structures: Executability must be maintained despite random variation, and variable length expression must be permitted. Popular programming languages permit a wealth of syntactic expressions in order to articulate the intended semantics in a fashion suitable for humans. While necessary for human programmers, extraneous syntax is problematic when evolving programs. Structures constrained by many syntactic rules often become unexecutable after unconstrained evolutionary manipulation. The solution has been to use structures that have minimal syntactic requirements or to employ specialized operators that respect the interpretation of an individual as an executable structure. In addition, because one does not know in advance how long the desired program should be, rather than stipulate a fixed length for an evolved program, dynamic length representations have provided often necessary flexibility. The evolutionary induction of executable structures has been investigated in diverse ways employing distinct representations. Friedberg (1958) and Friedberg, Dunham, and North (1959), working within the constraints of simple computers, evolved sequences of machine language instructions that performed modest computations. Fogel, Owens, and Walsh (1966), interested in the evolution of artificial intelligence, proposed evolving finite state machines as models of intelligent behavior by applying representation specific mutations without recombination in their early definition of evolutionary programming. Evolutionary programming has blossomed more recently into a much broader collection of methods centered

[1]  David Andre,et al.  Evolution of mapmaking: learning, planning, and memory using genetic programming , 1994, Proceedings of the First IEEE Conference on Evolutionary Computation. IEEE World Congress on Computational Intelligence.

[2]  Richard M. Friedberg,et al.  A Learning Machine: Part I , 1958, IBM J. Res. Dev..

[3]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[4]  J. Pollack,et al.  Coevolving High-Level Representations , 1993 .

[5]  John Dickinson,et al.  Using the Genetic Algorithm to Generate LISP Source Code to Solve the Prisoner's Dilemma , 1987, ICGA.

[6]  A. E. Eiben,et al.  Evolutionary Programming VII , 1998, Lecture Notes in Computer Science.

[7]  L. Darrell Whitley,et al.  Adding Learning to the Cellular Development of Neural Networks: Evolution and the Baldwin Effect , 1993, Evolutionary Computation.

[8]  Roland Olsson,et al.  Inductive Functional Programming Using Incremental Program Transformation , 1995, Artif. Intell..

[9]  Hiroaki Kitano,et al.  Designing Neural Networks Using Genetic Algorithms with Graph Generation System , 1990, Complex Syst..

[10]  Astro Teller,et al.  The evolution of mental models , 1994 .

[11]  John H. Holland,et al.  Adaptation in natural and artificial systems , 1975 .

[12]  Peter A. Whigham Inductive bias and genetic programming , 1995 .

[13]  Lee Spector,et al.  Evolving Graphs and Networks with Edge Encoding: Preliminary Report , 1996 .

[14]  Peter A. Whigham,et al.  Grammatical bias for evolutionary learning , 1996 .

[15]  Nichael Lynn Cramer,et al.  A Representation for the Adaptive Generation of Simple Sequential Programs , 1985, ICGA.

[16]  David J. Montana,et al.  Strongly Typed Genetic Programming , 1995, Evolutionary Computation.

[17]  Rich Caruana,et al.  Removing the Genetics from the Standard Genetic Algorithm , 1995, ICML.

[18]  Riva Wenig Bickel,et al.  Tree Structured Rules in Genetic Algorithms , 1987, ICGA.

[19]  J. R. Quinlan Learning Logical Definitions from Relations , 1990 .

[20]  Juergen Schmidhuber,et al.  On learning how to learn learning strategies , 1994 .

[21]  Stephen F. Smith,et al.  Flexible Learning of Problem Solving Heuristics Through Adaptive Search , 1983, IJCAI.

[22]  Peter J. Angeline,et al.  Evolving Recursive Functions for the Even-Parity Problem Using Genetic Programming , 1996 .

[23]  Frédéric Gruau,et al.  On using syntactic constraints with genetic programming , 1996 .

[24]  Dana H. Ballard,et al.  Discovery of subroutines in genetic programming , 1996 .

[25]  Lee Spector,et al.  Evolving teamwork and coordination with genetic programming , 1996 .

[26]  David B. Fogel,et al.  Evolutionary Computation: Towards a New Philosophy of Machine Intelligence , 1995 .

[27]  J. D. Schaffer,et al.  Combinations of genetic algorithms and neural networks: a survey of the state of the art , 1992, [Proceedings] COGANN-92: International Workshop on Combinations of Genetic Algorithms and Neural Networks.

[28]  John R. Koza,et al.  Genetic programming 2 - automatic discovery of reusable programs , 1994, Complex Adaptive Systems.