Constraint Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Constraint Programming

Description:

Constraint Programming Toby Walsh UNSW and NICTA – PowerPoint PPT presentation

Number of Views:96
Avg rating:3.0/5.0
Slides: 63
Provided by: TobyW8
Category:

less

Transcript and Presenter's Notes

Title: Constraint Programming


1
Constraint Programming
  • Toby Walsh
  • UNSW and NICTA

2
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

3
Resources
  • Course links
  • http//www.cse.unsw.edu.au/tw/cp.html
  • Benchmark problems
  • www.csplib.org
  • Constraints solvers
  • Logic programming languages ECLIPSE, BProlog
  • Functional languages FaCiLe (OCaml),
  • Imperative languages Choco (Java),

4
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,

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

6
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

7
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,..)

8
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,)

9
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 gt 0, Profit gt Ans1, Profit gt Ans2,

10
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,

11
Constraints
  • Constraints
  • Scope
  • list of variables to which constraint applies
  • Relation specifying allowed values (goods)
  • Extensionally specified
  • (Xred, Yblue) or (Xred, Ygreen) or
  • (Xblue, Yred) or (Xblue, Ygreen) or
  • (Xgreen, Yred) or (Xgreen, Yblue)
  • Intensionally specified
  • X / Y
  • X 2Y - Z lt 5
  • Alldifferent(X,Y,Z)
  • AtLeast(1,X,Y,Z,red)

12
Binary v non-binary
  • Binary constraint
  • Scope covers 2 variables
  • E.g. not-equals constraint X1 / X2.
  • E.g. ordering constraint X1 lt 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!

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

14
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).

15
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 theyre not needed
  • But in practice, they are!

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

17
Modelling with non-binary constraints
  • Consider writing your own alldifferent
    constraint
  • alldifferent().
  • alldifferent(HeadTail)-
  • onediff(Head,Tail),
  • alldifferent(Tail).
  • onediff(El,).
  • onediff(El,HeadTail)-
  • El \ Head,
  • onediff(El,Tail).

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

19
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,

20
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

21
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

22
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(ed2)
  • Optimal if we know nothing else about the
    constraints

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

24
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

25
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

26
GAC on alldifferent
  • AllDifferent on 6th row
  • 1,2,4,5,6,7
  • 1,2,4,5,6,7
  • 8
  • 9
  • 1,2,4,5,6,7
  • 1,2,4,5,6,7
  • 1,2,4,5,6,7
  • 3
  • 1,2,4,5,6,7

27
GAC on alldifferent
  • AllDifferent on 1st col
  • 6,7
  • 1,2,4,5,6,7
  • 8
  • 9
  • 1,2,4,5,6,7
  • 1,2,4,5,6,7
  • 1,2,4,5,6,7
  • 3
  • 1,2,4,5,6,7

28
GAC on alldifferent
  • AllDifferent on 2nd col
  • 6,7
  • 1,2,4,5
  • 8
  • 9
  • 1,2,4,5,6,7
  • 1,2,4,5,6,7
  • 1,2,4,5,6,7
  • 3
  • 1,2,4,5,6,7

29
GAC on alldifferent
  • AllDifferent on 4th small square
  • 6,7
  • 1,2,4
  • 8
  • 9
  • 1,2,4,5,6,7
  • 1,2,4,5,6,7
  • 1,2,4,5,6,7
  • 3
  • 1,2,4,5,6,7

30
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
  • 1,2,4,5,6,7
  • 3
  • 1,2,4,5,6,7

31
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

32
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

33
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

34
GAC on alldifferent
  • AllDifferent on 9th col
  • 6,7
  • 1,2,4
  • 8
  • 9
  • 5,7
  • 4,5
  • 1,7
  • 3
  • 4,5,6

35
GAC on alldifferent
  • AllDifferent on 6th small square
  • 6,7
  • 1,2,4
  • 8
  • 9
  • 5,7
  • 4,5
  • 1,7
  • 3
  • 4,6

36
Enforcing GAC
  • Enforcing GAC is expensive in general
  • GAC schema is O(dk)
  • On k-ary constraint on vars with domains of size
    d
  • Trick is to exploit semantics of constraints
  • Regins all-different algorithm
  • Achieves GAC in just O(k2 d2)
  • On k-ary all different constraint with domains of
    size d
  • Based on finding matching in value graph

37
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

38
(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

39
Enforcing (i,j)-consistency
  • problem is (1,1)-consistent (AC)
  • BUT is not (2,1)-consistent (PC)
  • X12, X23 cannot be extended to X3
  • Need to add constraints
  • not(X12 X23)
  • not(X12 X33)
  • Nor is it (1,2)-consistent (PIC)
  • X12 cannot be extended to X2 X3 (so needs to
    be deleted)

1,2
X1
\
\
2,3
2,3
\
X3
X2
40
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)

41
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)

42
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

43
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

44
n-queens problem
  • Put n-queens on a n by n chess board
  • Constraints
  • No queen attacks another
  • Here n8
  • Studied by Carl Gauss and others (1850)

45
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!)

46
n-queens problem
  • CSP model
  • One variable for each row
  • Value is position of queen on that row
  • Constraints
  • Col attack
  • Diag attack
  • Here n4

47
Forward checking on n-queens problem
  • Assign Row1col1
  • Queen on 1st row placed on 1st column
  • Forward check prunes domains of future variables

48
Forward checking on n-queens problem
  • Assign Row1col1
  • Queen on 1st row placed on 1st column
  • Forward checking prunes domains of future
    variables
  • Assign Row2col3
  • Queen on 2nd row placed on 3rd column
  • Forward checking prunes domains of future
    variables
  • Row3 has domain wipeout (no values left)

49
Forward checking on n-queens problem
  • Assign Row1col1
  • Queen on 1st row placed on 1st column
  • Forward checking prunes domains of future
    variables
  • Assign Row2col3
  • 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

50
Forward checking on n-queens problem
  • Assign Row1col1
  • Queen on 1st row placed on 1st column
  • Forward checking prunes domains of future
    variables
  • Assign Row2col4
  • Queen on 2nd row placed on 4th column

51
Forward checking on n-queens problem
  • Assign Row1col1
  • Queen on 1st row placed on 1st column
  • Forward checking prunes domains of future
    variables
  • Assign Row2col4
  • Queen on 2nd row placed on 4th column
  • Forward checking prunes domains of future
    variables

52
Forward checking on n-queens problem
  • Assign Row1col1
  • Queen on 1st row placed on 1st column
  • Forward checking prunes domains of future
    variables
  • Assign Row2col4
  • Queen on 2nd row placed on 4th column
  • Forward checking prunes domains of future
    variables
  • Row4 is forced
  • Only one value left

53
Forward checking on n-queens problem
  • Assign Row1col1
  • Queen on 1st row placed on 1st column
  • Forward checking prunes domains of future
    variables
  • Assign Row2col4
  • 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

54
Forward checking on n-queens problem
  • Assign Row1col1
  • Queen on 1st row placed on 1st column

55
Forward checking on n-queens problem
  • Assign Row1col2
  • Queen on 1st row placed on 2nd column

56
Forward checking on n-queens problem
  • Assign Row1col2
  • Queen on 1st row placed on 2nd column
  • Forward checking prunes domains of future
    variables

57
Forward checking on n-queens problem
  • Assign Row1col2
  • 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

58
Forward checking on n-queens problem
  • Assign Row1col2
  • 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

59
Forward checking on n-queens problem
  • Assign Row1col2
  • 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

60
Forward checking on n-queens problem
  • Assign Row1col2
  • 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

61
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!

62
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
Write a Comment
User Comments (0)
About PowerShow.com