- Class 15
- Practice 30
- Independent work 105
Optimization algorithms based on evolutionary computation
This module introduces students to optimization domain, P and NP complexity, and provide insight into algorithms inspired by evolution (genes, evolutionary strategies), animal behaviour (ant colony, swarms, bees), and other biological or evolutionary systems (immune system, harmony).
This module is intended for students who want to connect real-world problems (routing problems, scheduling problems, etc.) with evolutionary and soft computation solutions.
This module encourages students to apply the theory, especially NP-hard or complete problems, taught in the rest of the program in a practical situation. Moreover, this module prepares students for jobs where optimization is the core of a business model, and where a student should be able to recognize a problem type and the most appropriate algorithmic solution. Skills learnt in this module will contribute significantly to students’ development as professionals in respecting fields.
Students will learn:
• About different approaches to solving optimization problems.
• About different evolutionary computational algorithms.
• How to create a software solution that uses evolutionary computation algorithms.
• How to analyse optimization problem solutions using statistical methods.
The module is taught in Java and Python programming languages. The module assessment is based on solving a series of smaller practical tasks in the defined programming language and software development tool and on paper.
1. Affenzeller, M. et al (2009) Genetic Algorithms and Genetic Programming: Modern Concepts and Practical Applications. London: Chapman and Hall.
2. Dorigo, M. and Stutzle, T. (2004) Ant Colony Optimization. Cambridge: A Bradford Book.
1. Price, K., Storn, R.M. and Lampinen, J.A. (2014) Differential Evolution: A Practical Approach to Global Optimization. New York City: Springer.
2. Deb, K. (2009) Multi-Objective Optimization Using Evolutionary Algorithms. Hoboken: Wiley.
Minimal learning outcomes
- Explain different approaches to solving optimization problems.
- Implement a software solution with evolutionary computation algorithms.
- Apply evolutionary computational algorithms to single-objective optimization problems.
- Analyse and compare solutions of the optimization problem using statistical methods.
Preferred learning outcomes
- Implement different selection operators and analyse an influence of algorithm parameters in solution search.
- Explain different evolutionary operators and influence of parameters in the evolutionary algorithm.
- Increment algorithm efficiency with additional evolutionary operators and/or speed up the evolutionary process.
- Model and analyse evolutionary process to obtain statistical significance.