Evolutionary algorithms are iterative stochastic optimisation algorithms which achieve approximate solutions of a problem through use of naturally inspired ‘random’ operations such as crossover, mutation and natural selection. They act on a population of individuals, each one an approximation to a solution of the problem. Analysis of the algorithm is based upon analysis of how the population evolves. Classically they are used as optimisers for real-world problems or sets of parameters, but can also be used in such areas as algebra or combinatorics where some optimal solution is sought. Historically, evolutionary algorithms have been applied to ‘complicated’ problems where there either exists no deterministic algorithm or conventional deterministic algorithms are very slow, and have achieved sometimes startling results. This project is of the exploitation of one of the following avenues: a. Implementation and application of a simple evolutionary algorithm to a mathematical problem. In this case, interested students should have good programming skills (e.g., in MATLAB); b. A survey of a small amount of published research material on a particular evolutionary algorithm. For instance: historical foundations, application to industry and the various advantages and disadvantages of genetic algorithms at large (e.g. looping, information about the fitness landscape). The student should aim for a mathematical type of exposition.

References:

- Eiben, A., Smith, J., Introduction to Evolutionary Computing, Natural Computing Series, Springer (2003).
- Goldberg, D., Genetic Algorithms in Search, Optimisation and Machine Learning, Addison-Wesley (1989).
- Michalewicz, Z., Genetic Algorithms + Data Structures = Evolution Programs, Springer (1996).

Supervisor: Dr Matthew Craven