# FI:PA163 Constraint programming - Course Information

## PA163 Constraint programming

**Faculty of Informatics**

Autumn 2015

**Extent and Intensity**- 2/1. 3 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
**Teacher(s)**- doc. Mgr. Hana Rudová, Ph.D. (lecturer)

RNDr. Pavel Troubil, Ph.D. (seminar tutor) **Guaranteed by**- doc. RNDr. Eva Hladká, Ph.D.

Department of Computer Systems and Communications - Faculty of Informatics

Supplier department: Department of Computer Systems and Communications - Faculty of Informatics **Timetable**- Mon 10:00–11:50 A217
- Timetable of Seminar Groups:

*H. Rudová*

PA163/02: each even Wednesday 12:00–13:50 A215,*H. Rudová* **Prerequisites**- For seminar group using logic programming expected knowledge in backgrounds of propositional and predicate logic, e.g. based on the course IB101.

There are no prerequisites concerning logic programming. **Course Enrolment Limitations**- The course is also offered to the students of the fields other than those the course is directly associated with.
**fields of study / plans the course is directly associated with**- there are 23 fields of study the course is directly associated with, display
**Course objectives**- Graduate will understand how to apply declarative approach for problem solving with the help of constraint programming.

Graduate will understand which algorithms are used for implementation of the constraint programming approach to be able to propose a proper declarative model and proper search procedures. To achieve that graduate will learn various constraint propagation algorithms and search methods.

Graduate will be able describe solution of the problem using constraints either with the help of optimization programming language or constraint logic programming (the choice is related with the choice of seminar group). **Syllabus**- Constraint satisfaction problem. Introduction to problem modelling.
- Algorithms and consistency: arc, path. Methods for non-binary constraints: k-konsistency, general arc and bounds consistency, global constraints. Directional versions, width of constraint graph and polynomial problems.
- Tree search: backtracking, look ahead, look back, incomplete algorithms. Local search.
- Optimization and over-constrained problems: frameworks and algorithms.
- Problem modelling and real-life applications. Programming with selected programming language (OPL or CLP).

**Literature**- DECHTER, Rina.
*Constraint processing*. San Francisco: Morgan Kaufmann Publishers, 2003. xx, 481 s. ISBN 1-55860-890-7. info - TSANG, Edward (author), FRUEHWIRTH, Thom (editor).
*Foundations of constraint satisfaction*. Books On Demand, 2014.

- DECHTER, Rina.
**Teaching methods**- The course has a form of a lecture with a seminar taking two hours per two weeks at the computer laboratory. Lecture is mainly oriented on presentations of algorithms and their practical application for solving of problems in the area of constraint programming. Solved problems are often realized using modifications of existing code. Seminaries concern namely practical realization of OPL/CLP(FD) programs in ILOG/SICStus Prolog. Seminaries include homeworks which solutions together with solutions of examples solved during seminaries are available at the course web site.
**Assessment methods**- There is following expected evaluation given as a sum of points for homeworks and final written exam: A 100 and more, B 90-99, C 80-89, D 70-79, E 65-69.

It is possible to get up to 100 points for final written exam. The exam also includes following types of questions: overview of some part, comparisons of methods or definitions, algorithms, definitions, examples (about 33% of the points corresponds to evaluation of the constraint model for given problem(s)).

There are two homeworks during a semester. It is possible to get points up to 10 points per homework. Each student is required to obtain 8 points at least from the total point of 20 points.

Knowledge about constraint logic programming (CLP) is expected for the CLP seminar group only. Similarly knowledge about optimization programming language (OPL) is expected for the OPL seminar group only.

Taking of seminaries is obligatory. Absence at more than seminar requires successful completion of additional examples corresponding to the number of absent hours. High number of missed seminaries does not allow completion of the course. **Language of instruction**- Czech
**Follow-Up Courses****Further Comments**- Study Materials

The course is taught annually. **Teacher's information**- http://is.muni.cz/el/1433/podzim2015/PA163/index.qwarp

- Enrolment Statistics (Autumn 2015, recent)
- Permalink: https://is.muni.cz/course/fi/autumn2015/PA163