Instructor: Rina Dechter
Location: CS 259
The purpose of this course is to familiarize students with the
theory and techniques of constraint processing, using the constraint
network model. This model offers a natural language
for encoding world knowledge in areas such as scheduling,
vision, diagnosis, prediction and design, and it facilitates many
computational tasks relevant to these domains.
The course will focus on techniques for constraint processing.
It will cover search techniques, consistency algorithms and
structure based techniques, and will focus on
properties that facilitate efficient solutions.
Extensions will be given into applications such as
temporal reasoning, diagnosis, scheduling,
and probabilistic Bayes networks.
The constraint language
Eclipse will be used for modelling and solving constraint problems.
The topics covered will be taken from the following list.
The constraint network model, examples. Graph representations,
partial orders between networks of constraints, the minimal network.
Constraint Programming using Eclipse
Approximation algorithms: local-consistency vs. global-consistency,
arc and path-consistency, directional-consistency, relational-consistency,
Backtracking strategies: Look-back schemes: backjumping, constraint learning.
Look-ahead schemes: forward-checking, variable and value orderings,
constraint propagation. The Davis-Putnam algorithms.
Local search greedy algorithms: GSAT
Topology-based concepts and algorithms: tree-width vs. local-consistency,
tree-solving algorithm, adaptive-consistency, tree-clustering,
the bi-connected component, cycle-cutset, optimization
the bucket-elimination-conditioning framework.
Constraint-based tractable classes: row-convexity, tightness, looseness,
implicational and functional constraints, Horn clauses.
Temporal constraint networks: quantitative, qualitative, and integrated
Constraint Logic Programming
Moving from constraint satisfaction to constraint optimization.
Bayes networks vs. constraint networks.
Class notes, collection of papers.
"Programming with Constraints: An Introduction," by Kim Marriott and
Peter J. Stuckley, 1998.
A term project which may consist of a programming project
and/or a paper presentation,
and critique, empirical evaluation of methods,
experimenting with existing tools, etc.)
The last two weeks will be devoted to paper and project presentations.
Some useful links:
Homeworks and projects (60%), Midterm (40%).