Skip to main content

ID2204 Constraint Programming 7.5 credits

Course offerings are missing for current or upcoming semesters.
Headings with content from the Course syllabus ID2204 (Spring 2020–) are denoted with an asterisk ( )

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.

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

No information inserted

Literature

No information inserted

Examination and completion

If the course is discontinued, students may request to be examined during the following two academic years.

Grading scale

A, B, C, D, E, FX, F

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

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted

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 room in Canvas

Registered students find further information about the implementation of the course in the course room in Canvas. A link to the course room can be found under the tab Studies in the Personal menu at the start of the course.

Offered by

Main field of study

Computer Science and Engineering, Information Technology

Education cycle

Second cycle

Add-on studies

No information inserted

Contact

Thomas Sjöland (sjoland@kth.se)

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.