Evolutionary algorithms (EAs) are a class of optimisation techniques drawing inspiration from principles of biological evolution. They typically involve a population of candidate solutions from which the better solutions are selected, recombined, and mutated to form a new population of candidate solutions. This continues until an acceptable solution is found. Evolutionary algorithms are popular in applications where no problem-specific method is available, or when gradient-based methods fail. They are suitable for a wide range of challenging problem domains, including dynamic and noisy optimisation problems, constrained optimisation problems, and multi-objective optimisation problems. EAs are used in a wide range of disciplines, including optimisation, engineering design, machine learning, financial technology (“fintech”), and artificial life. In this module, we will study the fundamental principles of evolutionary computation, a range of different EAs and their applications, and a selection of advanced topics which may include time-complexity analysis, neuro-evolution, co-evolution, model-based EAs, and modern multi-objective EAs. The students will also read selected recent research articles on evolutionary computation.
Learning Outcomes
By the end of the module students should be able to:
Describe, and apply the principles of evolutionary computation
Explain and compare different evolutionary algorithms
Design and adapt evolutionary algorithms for non-trivial problems
Demonstrate an awareness of the current literature in this area