Metaheuristic algorithms in software engineering

Metaheuristic algorithms, such as genetic algorithms and simulated annealing, are search techniques that are inspired by nature. They aim to avoid a problem encountered by traditional search techniques such as hill climbing - the danger of getting stuck at a local optimum. Many achieve this by adding a stochastic element, such as the ability to accept a move from a candidate solution to one that appears worse.

Metaheuristic algorithms have been applied to a wide range of optimisation or search problems. However, it is only relatively recently that they have been used in software engineering. The motivation behind this work is simple - many software engineering problems can be reformulated as search problems. We want solutions to our problems and one approach to this is to apply techniques that allow us to search for a solution.

Back to Rob Hierons' home page

Last updated: 30 April 2009.

Disclaimer The contents of this page falls outside the responsibility of Brunel University.