CS5111 Discrete Optimisation
Academic year
2025 to 2026 Summer after graduation
Curricular information may be subject to change
Further information on which modules are specific to your programme.
Key module information
SCOTCAT credits
15
SCQF level
SCQF level 11
Availability restrictions
This module is only available to MSc AI students who started their programme in January.
Module Staff
Dr Joan Espasa Arxer, Dr Nguyen Dang
Module description
Discrete optimisation problems are central to many real-world applications, ranging from timetabling to optimising transportation networks. These problems often require making decisions over large, discrete sets of possibilities, where finding high-quality solutions can be computationally demanding.This module provides an introduction to the theory and practice of discrete optimisation. Students will gain a solid foundation in formulating, solving, and evaluating discrete optimisation problems using modern tools and techniques.We first introduce how to model real-world problems declaratively, using modelling languages that abstract away from algorithmic details. We then explore generic solving techniques that can be applied across a wide range of problems. To tackle large-scale or particularly hard instances, we introduce various metaheuristic approaches. Finally, we explore how machine learning can be integrated into the optimisation process to enhance solving performance.
Assessment pattern
Coursework = 100%
Re-assessment
Coursework = 100%
Learning and teaching methods and delivery
Weekly contact
2 hr x 10 weeks in-person seminars/tutorials.
Scheduled learning hours
20
Guided independent study hours
130
Intended learning outcomes
- Understand core concepts in the field of Discrete Optimisation.
- Learn about declarative modelling and generic solving approaches for discrete optimisation problems.
- Learn about state-of-the-art (meta-)heuristic solving approaches for solving large-scale discrete optimisation problems.
- Integrate machine learning into the solving process to improve performance and robustness.