Constraint Programming (CP) has established itself as both an academic field and a set of technologies for solving combinatorial (optimization) problems. This course is concerned with advanced topics in Constraint Programming that go beyond basic modeling and solving techniques. The course in particular focuses on connections of Constraint Programming with other approaches to combinatorial problem solving such as Boolean Satisfiability (SAT), Mathematical Programming, Dynamic Programming, and Local Search.
Topics include, but are not limited to: advanced search techniques such as restarts and portfolios; no-good learning and conflict analysis in SAT and CP; approaches for solving scheduling, assignment, placement, and planning problems; universal and domain-specific search heuristics; multi-objective optimization; LNS (Large Neighborhood Search); problem decompositions.