By Christopher Simons & Frances Buontempo
The process of natural evolution has inspired programmers to develop machine learning algorithms that can 'evolve' solutions to problems. Such 'evolutionary algorithms' have been widely applied and to illustrate their use, we take the evolution of a solution to the counting game FizzBuzz as an example. (A typical game of FizzBuzz involves counting through a sequence of numbers starting at one, but multiples of three are substituted with 'Fizz', multiples of five are substituted with 'Buzz', and multiples of fifteen are substituted with 'FizzBuzz'.)
This highly interactive programming workshop is aimed at programmers with reasonable competency in Java who wish to learn about evolutionary algorithms and implement them to solve FizzBuzz.
The workshop begins with a brief introduction on some of the biological processes of evolution and how they’ve shaped the approach of evolutionary algorithms. To get programming as quickly as possible, we use an evolutionary algorithm framework, the open source Java Class Library for Evolutionary Computing (JCLEC) (http://jclec.sourceforge.net).