The Evolutionary Induction of Subroutines

In this paper1 we describe a genetic algorithm capable of evolving large programs by exploiting two new genetic operators which construct and deconstruct parameterized subroutines. These subroutines protect useful partial solutions and help to solve the scaling problem for a class of genetic problem solving methods. We demonstrate that our algorithm acquires useful subroutines by evolving a modular program from “scratch” to play and win at Tic-Tac-Toe against a flawed “expert”. This work also serves to amplify our previous note (Pollack, 1991) that a phase transition is the principle behind “induction” in dynamical cognitive models.