
Optimization algorithms based on evolutionary computation
- Class 15
- Practice 30
- Independent work 105
Course title
Optimization algorithms based on evolutionary computation
Lecture type
Obligatory
Course code
23-02-523
Semester
3
ECTS
5
Lecturers and associates
Course overview
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.
Content
Students will be familiar with the implementation and idea of optimization algorithms. The lessons will include the implementation and explanation of the ant algorithm, the particle swarm algorithm, the genetic algorithm, and finally the gradient descent algorithm.
Literature
Essential reading:
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.
Recommended reading:
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.
Additional reading
1. Hands-On Genetic Algorithms with Python: Applying genetic algorithms to solve real-world deep learning and artificial intelligence problems
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.