Top Banner
Non-Binary Non-Binary Constraint Constraint Satisfaction Satisfaction Toby Walsh Toby Walsh Cork Constraint Computation Cork Constraint Computation Center Center
45

Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Mar 28, 2015

Download

Documents

Christian Bell
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Non-Binary Constraint Non-Binary Constraint SatisfactionSatisfaction

Non-Binary Constraint Non-Binary Constraint SatisfactionSatisfaction

Toby WalshToby Walsh

Cork Constraint Computation CenterCork Constraint Computation Center

Page 2: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Overview• Introduction to CSPs

– Local Consistencies, search algorithms

• Modelling (4 case studies)– Auxiliary variables, implied constraints– Redundant models and channelling constraints

• Eliminating non-binary constraints– Encodings, decomposition

• Theoretical properties– Tightness, relational consistencies

Page 3: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Resources• Course links

– www.cs.york.ac.uk/~tw/Links/csps/

• Benchmark problems– www.csplib.org

• Constraints solvers– LP based like ECLIPSE, Java based liked

Jsolver, open source like Choco, …

Page 4: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraint programming• Ongoing “dream” of declarative

programming– State the constraints– Solver finds a solution

• Paradigm of choice for many hard combinatorial problems– Scheduling, assignment, routing, …

Page 5: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraints are everywhere!

• No meetings before 10am

• Network traffic < 100 Gbytes/sec

• PCB width < 21cm• Salary > 45k Euros…

Page 6: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraint satisfaction• Constraint satisfaction problem (CSP) is a

triple <V,D,C> where:– V is set of variables– Each X in V has set of values, D_X

• Usually assume finite domain• {true,false}, {red,blue,green}, [0,10], …

– C is set of constraints

Goal: find assignment of values to variables to satisfy all the constraints

Page 7: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Example CSP• Course timetabling

– Variable for each courseX1, X2 ..

– Domain are possible times for course

Wed9am, Fri10am, ..

– Constraints:X1 \= Wed9amCapacity constraints: atmost(3,

[X1,X2..],Wed9am)Lecturer constraints:

alldifferent([X1,X5,…])

Page 8: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraint optimization• CSP + objective function

– E.g. objective is Profit = Income - Costs

• Find assignment of vals to vars that:– Satisfies constraints– Maximizes (minimizes) objective

• Often solved as sequence of satisfaction problems

Profit > 0, Profit > Ans1, Profit > Ans2, …

Page 9: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraint programming v. Constraint 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, …

Page 10: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraints• Constraints are tuples <S,R> where

– S is the scope, [X1,X2, … Xm]• list of variables to which constraint applies

– R is relation specifying allowed values (goods)

• Subset of D_X1 x D_X2 x … x D_Xm• May be specified intensionally or extensionally

Page 11: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraints• Extensional specification

– List of goods (or for tight constraints, nogoods)

• Intensional specification– X1 =/= X2– 5*X1 + 6*X2 < X3– alldifferent([X1,X2,X3,X4]), …

Page 12: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraint tightness• Informally, tight

constraints admit few tuples– E.g. on 0/1 vars

X1 =/= X2 is loose as half tuples satisfy

X1+X2+X3+X4+X5 <= 1 is tight as only 5 out of 32 tuples satisfy

• More formal definition later

Page 13: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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!

Page 14: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraint graph• Nodes = variables• Edge between 2 nodes

iff constraint between 2 associated variables– Few constraints, sparse

constraint graph– Lots of constraints,

dense constraint graph

Page 15: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Some non-binary examples

• Timetabling– Variables: Lecture1, Lecture2, …– Values: time1, time2, …– Constraint that lectures taught by same

lecturer do not conflict:

alldifferent(Lecture1,Lecture5,…).

Page 16: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 17: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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!

Page 18: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Modelling with non-binary constraints

• Benefits include:– Compact, declarative specifications

(discussed next)

– Efficient constraint propagation(discussed second)

Page 19: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 20: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Modelling with non-binary constraints

• It’s possible but it’s not very pleasant!

• Nor is it very compact– alldifferent([X1,…Xn]) expands into n(n-1)/2 binary not-

equals constraints, Xi \= Xj

– one non-binary constraint or O(n^2) binary constraints?

And there exist very efficient algorithms for reasoning efficiently with many specialized non-binary constraints

Page 21: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Constraint solvers• Two main approaches

– Systematic, tree search algorithms– Local search or repair based procedures

• Other more exotic possibilities– Hybrid algorithms– Quantum algorithms

Page 22: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 23: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 24: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 25: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 26: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Enforcing arc-consistency

• X2 \= X3 is AC• X1 \= X2 is not AC

– X2=1 has no support so can this value can be pruned

• X2 \= X3 is now not AC– No support for X3=2 – This value can also be

pruned

Problem is now AC

{1}

{1,2} {2,3}

\=

\=

X1

X3X2

Page 27: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 28: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 29: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

GAC on alldifferent• alldifferent(X1,X2,X3)

– Constraint is not GAC– X1=2 cannot be

extended• X2 would have to be 3• No value left then for

X3

– X1={1} is GAC

{1,2}

{2,3}{2,3}

X1

X2 X3

Page 30: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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 dBased on finding matching in “value graph”

Page 31: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Other types of constraint propagation

• (i,j)-consistency [due to Freuder, JACM 85]– Non-empty domains– Any consistent instantiation for i variables can be

extended to j others

• Describes many different consistency techniques

Page 32: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

(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

Page 33: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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} {2,3}

\=

\=

X1

X3X2

\=

Page 34: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Other types of constraint propagation

• Singleton arc-consistency (SAC)– Problem resulting from instantiating any variable

can be made AC

• Restricted path-consistency (RPC)– AC + if a value has just one support then any third

variable has a consistent value

Page 35: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Other types of consistency• problem is (1,1)-consistent (AC)• BUT is not singleton AC (SAC)

– Problem with X1=2 cannot be made AC (so value should be deleted)

• Nor is it restricted PC (RPC)– X1=2 has only one support in X2

(the value 3) but X3 then has no consistent values

– X1=2 can therefore be deleted

{1,2}

{2,3} {2,3}

\=

\=

X1

X3X2

\=

Page 36: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Other types of constraint propagation

• Neighbourhood inverse consistency (NIC)– For all vals for a var, there are consistent vals for all vars in

the immediate neighbourhood

• Bounds consistency (BC)– With ordered domains– Enforce AC just on max/min elements

Page 37: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Comparing local consistencies

• Formal definition of tightness introduced by Debruyne & Bessiere [IJCAI-97]

• A-consistency is tighter than B-consistency iffIf a problem is A-consistent -> it is B-consistent

We write A >= B

Page 38: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Properties• Partial ordering

– reflexive A A– transitive A B & B C implies A C

• Defined relations– tighter A > B iff A B & not B A– incomparable A @ B iff neither A B nor B A

Page 39: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Comparison of consistency techniques

• Exercise for the reader, prove the following identities!

Strong PC > SAC > PIC > RPC > AC > BC NIC > PICNIC @ SACNIC @ Strong PC

NB gaps can reduce search exponentially!

Page 40: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Which to choose?• For binary constraints,

AC is often chosen– Space efficient

Just prune domains (cf PC)

– Time efficient

• For non-binary constraints GAC is often chosen– If we can exploit the

constraint semantics to keep it cheap!

Page 41: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Why consider these other consistencies?

• Promising experimental results– Useful pruning for their

additional cost

• Theoretical value– E.g. GAC on non-binary

constraints may exceed SAC on equivalent binary model

Page 42: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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)– Forward checking (very restricted form of AC maintained)

Page 43: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 44: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

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

Page 45: Non-Binary Constraint Satisfaction Toby Walsh Cork Constraint Computation Center.

Summary• Constraint solving

– Constraint propagation central part of many algorithms

• Binary v non-binary constraints– Compact, more

efficient representation