Constraint Programming Toby Walsh UNSW and NICTA.

Slides:



Advertisements
Similar presentations
Constraint Satisfaction Problems
Advertisements

Constraints and Search Toby Walsh Cork Constraint Computation Centre (4C) Logic & AR Summer School, 2002.
Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.
Non-binary Constraints Toby Walsh
Constraint Programming Peter van Beek University of Waterloo.
Constraint Satisfaction Patrick Prosser. An Example, Exam Timetabling Someone timetables the exams We have a number of courses to examine how many? Dept.
Constraint Satisfaction Problems Russell and Norvig: Chapter
Modelling & Solving with Constraints Prof. Toby Walsh University College Cork/Uppsala University.
Global Constraints Toby Walsh National ICT Australia and University of New South Wales
Global Constraints Toby Walsh NICTA and University of New South Wales
Constraint Satisfaction Problems
Global Constraints Toby Walsh National ICT Australia and University of New South Wales
This lecture topic (two lectures) Chapter 6.1 – 6.4, except
1 Constraint Satisfaction Problems A Quick Overview (based on AIMA book slides)
1 CMSC 471 Fall 2002 Class #6 – Wednesday, September 18.
This lecture topic (two lectures) Chapter 6.1 – 6.4, except 6.3.3
1 Finite Constraint Domains. 2 u Constraint satisfaction problems (CSP) u A backtracking solver u Node and arc consistency u Bounds consistency u Generalized.
ICS-271:Notes 5: 1 Lecture 5: Constraint Satisfaction Problems ICS 271 Fall 2008.
Artificial Intelligence Constraint satisfaction problems Fall 2008 professor: Luigi Ceccaroni.
Constraint Satisfaction problems (CSP)
4 Feb 2004CS Constraint Satisfaction1 Constraint Satisfaction Problems Chapter 5 Section 1 – 3.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
Constraint Satisfaction Problems
CS460 Fall 2013 Lecture 4 Constraint Satisfaction Problems.
Constraint Satisfaction
Chapter 5 Outline Formal definition of CSP CSP Examples
Constraint Satisfaction Problems
1 Constraint Satisfaction Problems Slides by Prof WELLING.
CP Summer School Modelling for Constraint Programming Barbara Smith 1.Definitions, Viewpoints, Constraints 2.Implied Constraints, Optimization,
Artificial Intelligence CS482, CS682, MW 1 – 2:15, SEM 201, MS 227 Prerequisites: 302, 365 Instructor: Sushil Louis,
Constrainedness Including slides from Toby Walsh.
CSPs Tamara Berg CS 560 Artificial Intelligence Many slides throughout the course adapted from Svetlana Lazebnik, Dan Klein, Stuart Russell, Andrew Moore,
Constraint Satisfaction Problems (CSPs) CPSC 322 – CSP 1 Poole & Mackworth textbook: Sections § Lecturer: Alan Mackworth September 28, 2012.
Modelling for Constraint Programming Barbara Smith CP 2010 Doctoral Programme.
Constraint Satisfaction Problems Chapter 6. Review Agent, Environment, State Agent as search problem Uninformed search strategies Informed (heuristic.
Constraint Satisfaction Read Chapter 5. Model Finite set of variables: X1,…Xn Variable Xi has values in domain Di. Constraints C1…Cm. A constraint specifies.
Chapter 5 Section 1 – 3 1.  Constraint Satisfaction Problems (CSP)  Backtracking search for CSPs  Local search for CSPs 2.
CP Summer School Modelling for Constraint Programming Barbara Smith 2. Implied Constraints, Optimization, Dominance Rules.
Constraint Satisfaction CPSC 386 Artificial Intelligence Ellen Walker Hiram College.
CSC 8520 Spring Paula Matuszek Based on Hwee Tou Ng, aima.eecs.berkeley.edu/slides-ppt, which are based on Russell, aima.eecs.berkeley.edu/slides-pdf.
Hande ÇAKIN IES 503 TERM PROJECT CONSTRAINT SATISFACTION PROBLEMS.
Artificial Intelligence CS482, CS682, MW 1 – 2:15, SEM 201, MS 227 Prerequisites: 302, 365 Instructor: Sushil Louis,
Chapter 5: Constraint Satisfaction ICS 171 Fall 2006.
1 Chapter 5 Constraint Satisfaction Problems. 2 Outlines  Constraint Satisfaction Problems  Backtracking Search for CSPs  Local Search for CSP  The.
CSC 8520 Spring Paula Matuszek CS 8520: Artificial Intelligence Search 3: Constraint Satisfaction Problems Paula Matuszek Spring, 2013.
Chapter 5 Constraint Satisfaction Problems
Constraints and Search Toby Walsh Cork Constraint Computation Centre (4C) Logic & AR Summer School, 2002.
An Introduction to Artificial Intelligence Lecture 5: Constraint Satisfaction Problems Ramin Halavati In which we see how treating.
1 Constraint Satisfaction Problems Chapter 5 Section 1 – 3 Grand Challenge:
CHAPTER 5 SECTION 1 – 3 4 Feb 2004 CS Constraint Satisfaction 1 Constraint Satisfaction Problems.
Constraint Satisfaction Problems University of Berkeley, USA
Arc Consistency CPSC 322 – CSP 3 Textbook § 4.5 February 2, 2011.
1. 2 Outline of Ch 4 Best-first search Greedy best-first search A * search Heuristics Functions Local search algorithms Hill-climbing search Simulated.
Chapter 5 Team Teaching AI (created by Dewi Liliana) PTIIK Constraint Satisfaction Problems.
Lecture 5: Constraint Satisfaction Problems
1 Constraint Satisfaction Problems (CSP). Announcements Second Test Wednesday, April 27.
CS 561, Session 8 1 This time: constraint satisfaction - Constraint Satisfaction Problems (CSP) - Backtracking search for CSPs - Local search for CSPs.
Constraint Programming
Constraint Satisfaction Problems (CSPs)
Constraint Satisfaction Problems Lecture # 14, 15 & 16
Constraints and Search
Constraint Satisfaction Problems
Constraints and Search
Constraint satisfaction problems
Constraint Satisfaction Problems. A Quick Overview
CS 8520: Artificial Intelligence
Constraint Satisfaction Problems
Constraint satisfaction problems
Constraint Satisfaction Problems (CSP)
Presentation transcript:

Constraint Programming Toby Walsh UNSW and NICTA

Overview Constraint satisfaction –What is a constraint satisfaction problem? (aka “CSP”) –Constraint propagation (aka “inference”) –Search algorithms for solving CSPs Modelling problems using CSPs –Some case studies –Auxiliary variables –Symmetry –Implied constraints –Dual models

Resources Course links – Benchmark problems – Constraints solvers –Logic programming languages: ECLIPSE, BProlog –Functional languages: FaCiLe (OCaml), … –Imperative languages: Choco (Java), …

Constraint programming Ongoing “dream” of declarative programming –State the constraints No two exams at the same time Only 5 shifts in one week Parcel picked up between 10am-noon –Black box solver finds a solution Just like magic! Paradigm of choice for many hard combinatorial problems –Scheduling, assignment, routing, …

Constraints are everywhere! No meetings before 10am Network traffic < 100 Gbytes/sec PCB width < 21cm Salary > 45k Euros No two exams at the same time Only 5 shifts in one week Parcel picked up before 10am …

Constraint satisfaction Constraint satisfaction problem (CSP) consists of: –Set of variables –Each variable has set of values Usually assume finite domain {true,false}, {red,blue,green}, [0,10], … –Set of constraints Goal –Find assignment of values to variables to satisfy all the constraints

Example CSP Sudoku –Variable for each square –Domain: numbers 1 to 9 –Constraints –Row: AllDifferent(X1,..X9) AllDifferent(X10,..X18) … –Column AllDifferent(X1,X10,..) … –Small square AllDifferent(X1,..,X3,X10,..X12,..)

Example CSP Course timetabling –Variable for each course X1, X2.. –Domain are possible times for course Wed9am, Fri10am,.. –Constraints: X1 \= Wed9am Capacity constraints: atmost(3,[X1,X2..],Wed9am) Lecturer constraints: alldifferent([X1,X5,…])

Constraint optimization CSP + objective function –E.g. objective is Profit = Income - Costs Find assignment of values to variables that: –Satisfies constraints –Maximizes (minimizes) objective Often solved as sequence of satisfaction problems Profit > 0, Profit > Ans1, Profit > Ans2, …

Constraint programming v. Logic programming Constraints declaratively specify problem –Logic programming natural approach Assert constraints, call “labelling” strategy (backtracking search predicate) But can also define constraint satisfaction or optimization within an imperative of functional language Popular toolkits in C++, Java, CAML, …

Constraints –Scope list of variables to which constraint applies –Relation specifying allowed values (goods) Extensionally specified: –(X=red, Y=blue) or (X=red, Y=green) or –(X=blue, Y=red) or (X=blue, Y=green) or –(X=green, Y=red) or (X=green, Y=blue) Intensionally specified: –X =/= Y –X + 2Y - Z < 5 –Alldifferent(X,Y,Z) –AtLeast(1,[X,Y,Z],{red})

Binary v non-binary Binary constraint –Scope covers 2 variables –E.g. not-equals constraint: X1 =/= X2. –E.g. ordering constraint: X1 < X2 Non-binary constraint –Scope covers 3 or more variables –E.g. alldifferent(X1,X2,X3). –E.g. tour(X1,X2,X3,X4). “Non-binary constraints” usually do not include unary constraints!

Some non-binary examples Timetabling –Variables: Lecture1, Lecture2, … –Values: time1, time2, … –Constraint that lectures taught by same lecturer do not conflict: alldifferent(Lecture1,Lecture5,…).

Some non-binary examples Scheduling –Variables: Job1. Job2, … –Values: machine1, machine2, … –Constraint on number of jobs on each machine: atmost(2,[Job1,Job2,…],machine1), atmost(1,[Job1,Job2,…],machine2).

Why use non-binary constraints? Binary constraints are NP-complete –Any non-binary constraint can be represented using binary constraints –E.g. alldifferent(X1,X2,X3) is “equivalent” to X1 =/= X2, X1 =/= X3, X2 =/= X3 In theory therefore they’re not needed –But in practice, they are!

Modelling with non-binary constraints Benefits include: –Compact, declarative specifications (discussed next) –Efficient constraint propagation (discussed second)

Modelling with non-binary constraints Consider writing your own alldifferent constraint: alldifferent([]). alldifferent([Head|Tail]):- onediff(Head,Tail), alldifferent(Tail). onediff(El,[]). onediff(El,[Head|Tail]):- El #\= Head, onediff(El,Tail).

Constraint solvers Two main approaches –Systematic, tree search algorithms –Local search or repair based procedures Other more exotic possibilities –Hybrid algorithms –Quantum algorithms

Systematic solvers Tree search –Assign value to variable –Deduce values that must be removed from future/unassigned variables Propagation to ensure some level of consistency –If future variable has no values, backtrack else repeat Number of choices –Variable to assign next, value to assign Some important refinements like nogood learning, non-chronological backtracking, …

Local search Repair based methods –Generate complete assignment –Change value to some variable in a violated constraint Number of choices –Violated constraint, variable within it, … Unable to exploit powerful constraint propagation techniques

Constraint propagation Arc-consistency (AC) –A binary constraint r(X1,X2) is AC iff for every value for X1, there is a consistent value (often called support) for X2 and vice versa –A problem is AC iff every constraint is AC

Enforcing arc-consistency Remove all values that are not AC (i.e. have no support) May remove support from other values (often queue based algorithm) Best AC algorithms (AC7, AC-2000) run in O(ed^2) –Optimal if we know nothing else about the constraints

Enforcing arc-consistency Consider 1st column –Binary not equals constraints: –X1=/=X10, X1=/=X19,.. Consider 8th row –Look at domain of the 1st variable

Properties of AC Unique maximal AC subproblem –Or problem is unsatisfiable Enforcing AC can process constraints in any order –But order does affect (average- case) efficiency

Non-binary constraint propagation Most popular is generalized arc-consistency (GAC) –A non-binary constraint is GAC iff for every value for a variable there are consistent values for all other variables in the constraint –We can again prune values that are not supported GAC = AC on binary constraints

GAC on alldifferent AllDifferent on 6th row –{1,2,4,5,6,7} –{8} –{9} –{1,2,4,5,6,7} –{3} –{1,2,4,5,6,7}

GAC on alldifferent AllDifferent on 1st col –{6,7} –{1,2,4,5,6,7} –{8} –{9} –{1,2,4,5,6,7} –{3} –{1,2,4,5,6,7}

GAC on alldifferent AllDifferent on 2nd col –{6,7} –{1,2,4,5} –{8} –{9} –{1,2,4,5,6,7} –{3} –{1,2,4,5,6,7}

GAC on alldifferent AllDifferent on 4th small square –{6,7} –{1,2,4} –{8} –{9} –{1,2,4,5,6,7} –{3} –{1,2,4,5,6,7}

GAC on alldifferent AllDifferent on 5th col –{6,7} –{1,2,4} –{8} –{9} –{1,2,5,6,7} –{1,2,4,5,6,7} –{3} –{1,2,4,5,6,7}

GAC on alldifferent AllDifferent on 6th col –{6,7} –{1,2,4} –{8} –{9} –{1,2,5,6,7} –{1,4,5,7} –{1,2,4,5,6,7} –{3} –{1,2,4,5,6,7}

GAC on alldifferent AllDifferent on 5th small square –{6,7} –{1,2,4} –{8} –{9} –{5,7} –{4,5} –{1,2,4,5,6,7} –{3} –{1,2,4,5,6,7}

GAC on alldifferent AllDifferent on 7th col –{6,7} –{1,2,4} –{8} –{9} –{5,7} –{4,5} –{1,7} –{3} –{1,2,4,5,6,7}

GAC on alldifferent AllDifferent on 9th col –{6,7} –{1,2,4} –{8} –{9} –{5,7} –{4,5} –{1,7} –{3} –{4,5,6}

GAC on alldifferent AllDifferent on 6th small square –{6,7} –{1,2,4} –{8} –{9} –{5,7} –{4,5} –{1,7} –{3} –{4,6}

Enforcing GAC Enforcing GAC is expensive in general –GAC schema is O(d^k) On k-ary constraint on vars with domains of size d Trick is to exploit semantics of constraints –Regin’s all-different algorithm –Achieves GAC in just O(k^2 d^2) On k-ary all different constraint with domains of size d Based on finding matching in “value graph”

Other types of constraint propagation (i,j)-consistency –Non-empty domains –Any consistent instantiation for i variables can be extended to j others Describes many different consistency techniques

(i,j)-consistency Generalization of arc-consistency –AC = (1,1)-consistency –Path-consistency = (2,1)-consistency Strong path-consistency = AC + PC –Path inverse consistency = (1,2)-consistency

Enforcing (i,j)-consistency problem is (1,1)-consistent (AC) BUT is not (2,1)-consistent (PC) –X1=2, X2=3 cannot be extended to X3 –Need to add constraints: not(X1=2 & X2=3) not(X1=2 & X3=3) Nor is it (1,2)-consistent (PIC) –X1=2 cannot be extended to X2 & X3 (so needs to be deleted) {1,2} {2,3} \= X1 X3X2 \=

Other types of constraint propagation Bounds consistency (BC) –With ordered domains –Enforce AC just on max/min elements –Used often for arithmetic constraints (eg linear inequalities) –GAC is intractable on a sum constraints (= subset sum)

Maintaining a local consistency property Tree search –Assign value to variable –Enforce some level of local consistency Remove values/add new constraints –If any future variable has no values, backtrack else repeat Two popular algorithms –Maintaining arc-consistency (MAC) Make the whole problem arc-consistent –Forward checking (very restricted form of AC maintained)

Forward checking Binary constraints (FC) –Make constraints involving current variable and one future variable arc-consistent –No need to look at any other constraints! Non-binary constraints –Several choices as to how to do forward checking

Forward checking with non-binary constraints nFC0 makes AC only those k-ary constraints with k-1 variables set nFC1 applies one pass of AC on constraints and projections involving current var and one future var nFC2 applies one pass of GAC on constraints involving current var and at least one future var nFC3 enforces GAC on this set nFC4 applies one pass of GAC on constraints involving at least one past and one future var nFC5 enforces GAC on this set

n-queens problem Put n-queens on a n by n chess board Constraints: –No queen attacks another Here n=8 Studied by Carl Gauss and others (1850)

n-queens problem ILP formulation –Xij = 1 iff (i,j) square has queen on it –Row attack constraints –Col attack constraints –Diag attack constraints –Objective function (can only get n queens on board!)

n-queens problem CSP model –One variable for each row –Value is position of queen on that row –Constraints Col attack Diag attack –Here n=4

Forward checking on n-queens problem Assign Row1=col1 –Queen on 1st row placed on 1st column –Forward check prunes domains of future variables

Forward checking on n-queens problem Assign Row1=col1 –Queen on 1st row placed on 1st column –Forward checking prunes domains of future variables Assign Row2=col3 –Queen on 2nd row placed on 3rd column –Forward checking prunes domains of future variables –Row3 has domain wipeout (no values left)

Forward checking on n-queens problem Assign Row1=col1 –Queen on 1st row placed on 1st column –Forward checking prunes domains of future variables Assign Row2=col3 –Queen on 2nd row placed on 3rd column –Forward checking prunes domains of future variables –Row3 has domain wipeout (no values left) –Backtrack to last assignment and try some other value

Forward checking on n-queens problem Assign Row1=col1 –Queen on 1st row placed on 1st column –Forward checking prunes domains of future variables Assign Row2=col4 –Queen on 2nd row placed on 4th column

Forward checking on n-queens problem Assign Row1=col1 –Queen on 1st row placed on 1st column –Forward checking prunes domains of future variables Assign Row2=col4 –Queen on 2nd row placed on 4th column –Forward checking prunes domains of future variables

Forward checking on n-queens problem Assign Row1=col1 –Queen on 1st row placed on 1st column –Forward checking prunes domains of future variables Assign Row2=col4 –Queen on 2nd row placed on 4th column –Forward checking prunes domains of future variables Row4 is forced –Only one value left

Forward checking on n-queens problem Assign Row1=col1 –Queen on 1st row placed on 1st column –Forward checking prunes domains of future variables Assign Row2=col4 –Queen on 2nd row placed on 4th column –Forward checking prunes domains of future variables Row4 is forced –Only one value left Row3 has domain wipeout –Backtrack to next “choice”

Forward checking on n-queens problem Assign Row1=col1 –Queen on 1st row placed on 1st column

Forward checking on n-queens problem Assign Row1=col2 –Queen on 1st row placed on 2nd column

Forward checking on n-queens problem Assign Row1=col2 –Queen on 1st row placed on 2nd column –Forward checking prunes domains of future variables

Forward checking on n-queens problem Assign Row1=col2 –Queen on 1st row placed on 2nd column –Forward checking prunes domains of future variables Row2 is forced –Only one value left –Forward checking prunes domains of future variables

Forward checking on n-queens problem Assign Row1=col2 –Queen on 1st row placed on 2nd column –Forward checking prunes domains of future variables Row2 is forced –Only one value left –Forward checking prunes domains of future variables

Forward checking on n-queens problem Assign Row1=col2 –Queen on 1st row placed on 2nd column –Forward checking prunes domains of future variables Row2 is forced –Only one value left –Forward checking prunes domains of future variables Row3 is forced –Only one value left –Forward checking prunes domain of last variable

Forward checking on n-queens problem Assign Row1=col2 –Queen on 1st row placed on 2nd column –Forward checking prunes domains of future variables Row2 is forced –Only one value left –Forward checking prunes domains of future variables Row3 is forced –Only one value left –Forward checking prunes domain of last variable Row4 is forced

Local search for n-queens problem Throw n queens on chessboard –Move a queen to reduce number of attacks –Repeat until no queen is attacked Surprisingly effective –Especially as n increases!

Summary Constraint solving –Tree search Try variable assignment Be prepared to backtrack on this choice if it does not lead to a solution Use propagation (inference) to prune domains of remaining variables –Local search Tomorrow –Modelling problems using constraint programming