Genetic algorithms (GAs) are a problem solving stra tegy that uses stochastic search. Since their introduction (Holland, 1975), GAs have proven to be particularly useful for solving problems that are ‘intractable’ using classical methods. The la nguage of genetic algorithms (GAs) is heavily laced with biological metaphors from evolutionary literature, such as population, chromosome, crossover, cloning, mutation, genes and generati ons. For beginners studying genetic algorithms, there is quite an overhead in gaining comfort w ith these terms and an understanding of their par- allel meanings in the unfamiliar computing milieu of an evolutionary algorithm. This paper describes a ‘hands on’ strategy to introduce and teach gene tic algorithms to under- graduate computing students. By borrowing an analogical model from senior biology classes, poppet beads are used to represent individuals in a population (Harrison, 2001). Described are several introductory exercises that transport stude nts from an illustration of natural selection in Biston betula moths, onto the representation and solution of differing mathematical and comput- ing problems. Through student manipulation and interactions with poppet beads, the exercises cover terms such as population, generation, chro mosome, gene, mutation and crossover in both their biological and computing contexts. Importantly, the tasks underline the two key design is- sues of genetic algorithms: the choice of an appr opriate chromosome representation, and a suit- able fitness function for each specific instance. Finally, students are introduced to the notion of schema upon which genetic algorithms operate. The constructivist model of learning advocates the us e of such contextual problems to create an environment where students become active partic ipants in their own learning (Ben-Ari, 1998; Greening, 2000; Kolb, 1984). In itial student feedback about these “hands on” exercises has been enthusiastic. As well, several st udents have made reference to the lessons learnt as the basis for GA coding in subsequent open-e nded assignments. It seems that once the hurdle of becoming familiar with GA terminology has been surmounted , students find genetic algorithms to be par- ticularly intriguing for their uncanny ability to solve incredibly complex problems quickly and proficiently (Moore, 2001).
Read full abstract