ID2204 Constraint Programming 7.5 credits
This course has been discontinued.
Last planned examination: Spring 2022
Decision to discontinue this course:
No information inserted
The theme of the course is modeling and solving combinatorial (optimization) problems with constraint programming. Constraint programming has been identified by ACM as one of the strategic directions in computer science. Combinatorial problems are ubiquitous, a few examples are assigning and scheduling resources, designing processor instruction sets, and optimizing instruction ordering during compilation. The course teaches the fundamental concepts underlying constraint programming, applications, extensions, and relation to other techniques employed in combinatorial optimization.
Content and learning outcomes
Course contents
The course acts to model and solve combinatorial (optimisation) problem by means of constraint programming. There are combinatorial problems everywhere, for example to assign and timetable resources, design instructions for processors and optimise instruction scheduling at compilation. This course teaches the basic concepts in constraint programming, applications, expansions and its relation to other technologies for combinatorial optimisation.
- To model with constraint programming.
- Basic solution methods: propagation and search.
- Technologies for modelling, refinement of models, heuristic search methods, application to problems of industrial size.
- Basic principles of constraint programming: models for propagation and search and their essential properties; different levels of propagation; different constraint domains; strong algorithmic methods for propagation.
- Relation to other technologies to solve combinatorial problems (integer programming, local search), discussion of merits, limitations and hybrid variants.
Intended learning outcomes
After passing the course, the student shall be able to
- use techniques to model and solve constraint problems
- explain the principles that form the basis for techniques to solve constraint problems
- explain the main merits and the limitations with constraint programming and how constraint programming relates to other methods.
Course disposition
Literature and preparations
Specific prerequisites
Courses in basic computer science, discrete mathematics, algorithms and data structures. Basic proficiencies in object-oriented programming (for example: in Java or C++).
Recommended prerequisites
Knowledge corresponding to at least one of: SF1610 Discrete Mathematics, ID1015 Logic for Computer Science, ID2213 Logic Programming, ID1218 Applied Programming.
Equipment
Literature
Examination and completion
If the course is discontinued, students may request to be examined during the following two academic years.
Grading scale
Examination
- LAB1 - Laboratory Work, 3.0 credits, grading scale: P, F
- TEN1 - Examination, 4.5 credits, grading scale: A, B, C, D, E, FX, F
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.
The examiner may apply another examination format when re-examining individual students.
Opportunity to complete the requirements via supplementary examination
Opportunity to raise an approved grade via renewed examination
Examiner
Ethical approach
- All members of a group are responsible for the group's work.
- In any assessment, every student shall honestly disclose any help received and sources used.
- In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.
Further information
Course web
Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.
Course web ID2204Offered by
Main field of study
Education cycle
Add-on studies
Contact
Supplementary information
N.B. The course will not be given as from spring semester -20
In this course, the EECS code of honor applies, see: http://www.kth.se/en/eecs/utbildning/hederskodex.