
DM841: Heuristics and Constraint Programming for Discrete Optimization
Comment
The course is offered as required and is not necessarily offered every year.
Exam attempts for DM841 are offered in accordance to the following plan, when the course is offered: ordinary Exam (January), first reexamination (March) and 2nd reexamination (June or August).
The course cannot be chosen if you have passed, registered, or have followed AI505, or if AI505 is a constituent part of your Curriculum.
Entry requirements
Academic preconditions
Students taking the course are expected to:
- Be able to use algorithms and data structures
- Be able to assess the complexity of algorithms with respect to runtime and space consumption
- Be able to program
Course introduction
Expected learning outcome
- model a problem similar in nature to the ones seen in the course within the framework of constraint programming and local search;
- argue about the different modeling choices arising from the theory behind the components of constraint programming, including global constraints, propagators, search and branching schemes;
- develop a solution prototype in a constraint programming system;
- design specialized versions of general purpose heuristics: construction heuristics and local search;
- develop in a programming language a solution prototype based on heuristic algorithms;
- undertake an experimental analysis, report the results and draw sound conclusions based on them;
- describe the work done in an appropriate language, eventually including pseudocode.
Content
- Introduction to discrete optimization;
- Modeling in constraint programming with integer and set variables;
- Notions of local consistency;
- Global constraints and filtering algorithms
- Search;
- Symmetry breaking;
- Construction heuristics and greedy algorithms;
- Local search: modeling and algorithms;
- Metaheuristics (variable neighborhood search, tabu search, simulated annealing, iterated local search, evolutionary algorithms, ant colony optimization);
- Large scale neighborhood search;
- Methods for the experimental analysis of optimization algorithms;
- Applications: constraint satisfaction, satisfiability, travelling salesman, vehicle routing, graph coloring, sport scheduling, scheduling, timetabling.
Literature
Examination regulations
Exam element a)
Timing
Tests
Mandatory assignments
EKA
Assessment
Grading
Identification
Language
Examination aids
ECTS value
Additional information
The examination form for re-examination is the same form as the ordinary exam. Submitted elements from the ordinary exam can be included in the re-exam.
Indicative number of lessons
Teaching Method
Total number of planned lessons: 88
Hereof:
Common lessons in classroom/auditorium: 88
In the common lessons, concepts, theories and models are introduced and put into perspective. In these lessons there is room for questions and discussions. In addition, students will work in small groups on data-based problems and discussion topics, related to the content of the previous lessons. In these hours there is a possibility of working specifically with selected difficult concepts.
Other planned teaching activities:
- Applications of the acquired knowledge to practical projects
- Reading of scientific articles and book chapter
- Practical experiments with the methods introduced in the course