Faculdade de Ciências e Tecnologia

Search and Optimization

Code

10799

Academic unit

Faculdade de Ciências e Tecnologia

Department

Departamento de Informática

Credits

6.0

Teacher in charge

Pedro Manuel Corrêa Calvente Barahona

Weekly hours

4

Total hours

54

Teaching language

Português

Objectives

This course focuses on the study of combinatorial problems (satisfaction and/or optimization), particularly in their modeling and solving methods. It adopts a declarative programming paradigm, where the declaration of restrictions is specified separately from the resolution. The resolution of these problems can be addressed from two complementary or alternative perspectives: a)  complete search, with backtracking, providing guarantees of completeness but with limitations on the size of the problems addressed, and b) local search, not offering such guarantees but enabling a resolution (approximate) of larger problems.

It is expected that the successful student of this course will obtain significant knowledge and experience on the modeling and resolution of this type of problems, identifying for a given problem, a) which are the best models to adopt in its specification, b) which methods of resolution are best suited given the characteristics of the problem, and c) what limitations are imposed by the combinatorial nature of the problem.

Subject matter

1. Decision and Optimization Problems.
 - Declarative constraint modelling
 - Types of constraints: Table, Arithmetic, Disjunctive, Reified, Global
 - Complexity
2. Complete Methods for Constraint Solving/Backtrack search
 - Constraint networks
 - Local consistencies (node, arc, domain/bounds)
 - Non­local consistencies (Path, k )
 - Algorithms to maintain them.
 - Search heuristics
   - Variable and value Selection
   - General purpose heuristics (dom, deg, dom/wdeg, impact)
 - Optimisation -­ branch & bound
3. Incomplete Methods/Constrained-Based Local Search
 - Invariants and differentiable objects.
 - Degree of satisfaction of constraints
 - Heuristics
   - Variable-based vs. constraint­based
   - Greedy vs. stochastic
 - Meta-­heuristics
   - Restarts, Taboo search, Simulated annealing
   - Variable and Large neighbourhoods
   - Ant colony optimisation

Bibliography

Text Books
 • Dina Rechter, Constraint Processing, Morgan Kauffman, 2003.
 • Pascal Van Hentenryck and Laurent Michel, Constraint-Based Local Search, MIT Press, 2009.

Manuals
 • Comet Tutorial, Dynamic Decision Technologies Inc., August 28, 2009

Additional Reading
 • Handbook of Constraint Programming, F. Rossi, P. van Beek & T. Walsh (eds), Elsevier Science, 2008

Evaluation method

Evaluation (throughout the semester) consists of 4 components: 2 Projects and 2 Mini-tests, all graded 0-20, and with the same weight (25%) on the final grade. Students must have a minimum of 6/20 in both the averages of the tests/exams and the projects.
 
Projects are made in teamwork (2 students per group) and the mini-tests assess the students individually. Students that do not get the minimum grade, are allowed to do a repeat exam if they get at least an average grade of 6/20 in the two projects.
 
The components of the assessment cover the topics shown below (together with the dates):

  Project_1 – Constraint Programming Problem (21 October to 9 November)
  Mini-Test_1 – Constraint Programming Concepts (31 October )
  Project_2 – Constrained Local Search Problem (25 November to 14 December)
  Mini-Test 2 – Constrained Local Search Concepts (12 December)

The marks obtained in the final exam replace those obtained in the 2 mid-term tests (if better).

  Exam – Constraint Programming and Constrained Local Search Concepts (date to be announced)

Courses