38
Relaxation Relaxation and and Hybrid constraint processing Hybrid constraint processing Different relaxation techniques Different relaxation techniques Some popular hybrid techniques Some popular hybrid techniques

Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

Embed Size (px)

Citation preview

Page 1: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

Relaxation Relaxation and and

Hybrid constraint processingHybrid constraint processing

Different relaxation techniquesDifferent relaxation techniques

Some popular hybrid techniquesSome popular hybrid techniques

Page 2: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

RelaxationRelaxation

Node consistencyNode consistency

Forward checkForward check

Lookahead checkLookahead check

AC1AC1

AC3AC3

Path-consistencyPath-consistency

Page 3: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

3

Running exampleRunning example

4 families 4 families AA, , BB, , CC and and DD live next to each other in live next to each other in houses numbered houses numbered 11, , 22, , 33 and and 44.. DD lives in a house lives in a house with lower numberwith lower number than than BB,, BB lives lives next tonext to AA in a house in a house with higher numberwith higher number,, There is There is at least one house betweenat least one house between BB andand CC,, DD does not livedoes not live in the house with number in the house with number 22,, CC does not livedoes not live in the house with number in the house with number 44..

Which family lives in which house ?Which family lives in which house ?

The 4-houses puzzle:The 4-houses puzzle:

Page 4: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

4

Representation:Representation:

The variables: The variables: AA, , BB, , CC and and DD The domains: dThe domains: dAA = d = dBB = d = dCC = d = dDD = { = { 11, , 22, , 33, , 44}}

Constraints:Constraints: unary:unary: c(c(CC) =) = CC 4 4 c(c(DD) =) = DD 22 binary:binary:

c(c(AA,,BB) =) = BB == A A + 1+ 1

c(c(BB,,DD) =) = DD BB c(c(BB,,CC) = |) = |BB -- CC| | 1 1

c(c(AA,,CC) =) = A A C C c(c(AA,,DD) = ) = A A DD c(c(CC,,DD) = ) = C C DD

Page 5: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

5

Node-consistency:Node-consistency:

Unary constraints are eliminated through Unary constraints are eliminated through domain- reductions:domain- reductions:

Or: 1-consistencyOr: 1-consistency (only 1 variable is involved)(only 1 variable is involved)

c(c(CC) =) = CC 4 4

c(c(DD) =) = DD 22

ddCC = { = { 11, , 22, , 33}}

ddDD = { = { 11, , 33,, 4 4}}

Page 6: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

6

The constraint network:The constraint network:

AA BB

DDCC

B = A + 1

A C D B

A D

|B - C| 1

C D

{ 1, 2, 3, 4} { 1, 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

Page 7: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

Weak relaxationWeak relaxation

Forward CheckForward Check

Lookahead CheckLookahead Check

Page 8: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

8

Forward Check:Forward Check: Assume we fix the value for 1 variable Assume we fix the value for 1 variable zizi: : zizi = = aa

Forward Check(Forward Check(zizi) = ) = activate each constraint c(activate each constraint c(zizi, , zjzj) or c() or c(zjzj, , zizi) once ) once

to remove the inconsistent values for to remove the inconsistent values for zizi = = aa

AA BB

DDCC

B = A + 1

A C D B

A D

|B - C| 1

C D

{2} { 1, 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

Our exampleOur example: assume : assume AA = = 22 : :

Page 9: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

9

Forward check: Forward check: weak consistencyweak consistency

Requires that 1 variable already obtained a valueRequires that 1 variable already obtained a value suggests use in combination with backtracking suggests use in combination with backtracking

AA BB

DDCC

B = A + 1

A C D B

A D

|B - C| 1

C D

{2} { 1, 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

Does not produce a Does not produce a consistent stateconsistent state not all relaxation is donenot all relaxation is done

Page 10: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

Look ahead checkLook ahead check

A stronger (weak) relaxation methodA stronger (weak) relaxation method

Page 11: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

11

Look ahead Check:Look ahead Check: Look Ahead Check = Look Ahead Check =

activate each constraint c(activate each constraint c(zizi, , zjzj) exactly ) exactly once to remove the inconsistent values from once to remove the inconsistent values from the domains the domains DiDi and and DjDj..

Our exampleOur example::

AA BB

DDCC

B = A + 1

A C D B

A D

|B - C| 1

C D

{ 1, 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

{ 1, 2, 3, 4}

Page 12: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

12

Example continued:Example continued:

AA BB

DDCC

B = A + 1

A C D B

A D

|B - C| 1

C D

{ 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

{ 1, 2, 3}

The 3 other constraintsThe 3 other constraints::

Page 13: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

13

Look ahead: final results:Look ahead: final results:

AA BB

DDCC

B = A + 1

A C D B

A D

|B - C| 1

C D

{ 3, 4}

{ 1, 2} { 1, 3}

{ 1, 2, 3}

Still does not produce a Still does not produce a consistent stateconsistent state not all relaxation is donenot all relaxation is done

Result may depend on the order in which constraints are dealt with. Result may depend on the order in which constraints are dealt with. Removing some values first may allow to find Removing some values first may allow to find others others

inconsistentinconsistent

Page 14: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

Arc consistency techniquesArc consistency techniques

Techniques that reduce domains to a state Techniques that reduce domains to a state that is consistent for each constraint (or that is consistent for each constraint (or

arc).arc).

Also calledAlso called: 2-consistency techniques: 2-consistency techniques

Page 15: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

15

AC 1 (Mackworth)AC 1 (Mackworth)AC1:AC1:

RepeatRepeat

Look ahead checkLook ahead check;; IfIf some value was removed from some value was removed from some domain some domain thenthen

Deletion_occurredDeletion_occurred := true:= true

UntilUntil (not(not Deletion_occurredDeletion_occurred))

Forces Look ahead to reach a Forces Look ahead to reach a consistent stateconsistent state by reactivating Look ahead until consistencyby reactivating Look ahead until consistency

Deletion_occurredDeletion_occurred := false ;:= false ;

Page 16: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

16

The example (1):The example (1):

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 1, 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

{ 1, 2, 3, 4}

First pass (== Look ahead check):First pass (== Look ahead check):

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 3, 4}

{ 1, 2} { 1, 3}

{ 1, 2, 3}

Deletion_occurredDeletion_occurred := true:= true

Page 17: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

17

The example (2):The example (2): Second pass:Second pass:

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 3, 4}

{ 1, 2} { 1, 3}

{ 1, 2, 3}

Deletion_occurredDeletion_occurred := true:= true

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 3, 4}

{ 1, 2} { 1, 3}

{ 2, 3}

Page 18: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

18

The example (3):The example (3): Third pass:Third pass:

Deletion_occurredDeletion_occurred := false:= false

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 3, 4}

{ 1, 2} { 1, 3}

{ 2, 3}

ResultResult: : AA ( (2 or 32 or 3) , ) , BB ( (3 or 43 or 4), ), CC ( (1 or 21 or 2), ), DD ( (1 or 31 or 3))

Consistent, but NOT REALLY A SOLUTION !!Consistent, but NOT REALLY A SOLUTION !!

Page 19: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

19

AC-3 (Mackworth)AC-3 (Mackworth)More efficient arc-consistency:More efficient arc-consistency:

AC3:AC3:

Remove Remove c(c(xx,,yy)) from from QUEUEQUEUE;;

End-WhileEnd-While

QUEUEQUEUE := {all constraints in the problem}:= {all constraints in the problem}

Remove all inconsistent values from domainsRemove all inconsistent values from domains

DDxx and and DDyy with respect to with respect to c(c(xx,,yy));;

WhileWhile not empty(not empty(QUEUEQUEUE) ) DODO

IfIf some value was removed from some value was removed from DDxx (or (or DDyy)) thenthen add all add all otherother constraints involving constraints involving

xx (or (or yy) to ) to QUEUEQUEUE;;

Page 20: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

20

The example (1):The example (1):

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 1, 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

{ 1, 2, 3, 4}

QUEUEQUEUE = {c(A,B), c(A,C), c(A,D), c(B,C), c(B,D), c(C,D)}: = {c(A,B), c(A,C), c(A,D), c(B,C), c(B,D), c(C,D)}:

QUEUEQUEUE = {c(A,C), c(A,D), c(B,C), c(B,D), c(C,D)} = {c(A,C), c(A,D), c(B,C), c(B,D), c(C,D)}

To be added: c(A,C), c(A,D), c(B,C), c(B,D)To be added: c(A,C), c(A,D), c(B,C), c(B,D)

All already inAll already in QUEUEQUEUE ! !

Page 21: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

21

The example (2):The example (2):

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

{ 1, 2, 3}

QUEUEQUEUE = {c(A,C), c(A,D), c(B,C), c(B,D), c(C,D)}: = {c(A,C), c(A,D), c(B,C), c(B,D), c(C,D)}:

QUEUEQUEUE = {c(B,C), c(B,D), c(C,D)} = {c(B,C), c(B,D), c(C,D)}

Page 22: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

22

The example (3):The example (3):

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

{ 1, 2, 3}

QUEUEQUEUE = {c(B,C), c(B,D), c(C,D)}: = {c(B,C), c(B,D), c(C,D)}:

QUEUEQUEUE = {c(B,D), c(C,D), = {c(B,D), c(C,D), c(A,B), c(A,C)c(A,B), c(A,C)}}

To be added: c(A,B), c(A,C), c(B,D), c(C,D)To be added: c(A,B), c(A,C), c(B,D), c(C,D)

Page 23: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

23

The example (4):The example (4):

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 3, 4}

{ 1, 2} { 1, 3, 4}

{ 1, 2, 3}

QUEUEQUEUE = {c(B,D), c(C,D), c(A,B), c(A,C)}: = {c(B,D), c(C,D), c(A,B), c(A,C)}:

QUEUEQUEUE = {c(C,D), c(A,B), c(A,C) = {c(C,D), c(A,B), c(A,C), c(A,D), c(A,D)}}

To be added: c(A,D), c(C,D)To be added: c(A,D), c(C,D)

Page 24: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

24

The example (5):The example (5):

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 3, 4}

{ 1, 2} { 1, 3}

{ 1, 2, 3}

QUEUEQUEUE = {c(C,D), c(A,B), c(A,C), c(A,D)}: = {c(C,D), c(A,B), c(A,C), c(A,D)}:

QUEUEQUEUE = {c(A,C), c(A,D)} = {c(A,C), c(A,D)}

To be added: c(A,C), c(A,D)To be added: c(A,C), c(A,D)

Page 25: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

25

The example (6):The example (6):

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 3, 4}

{ 1, 2} { 1, 3}

{ 2, 3}

QUEUEQUEUE = {c(A,C), c(A,D)}: = {c(A,C), c(A,D)}:

QUEUEQUEUE = empty = empty

STOP !STOP !

Page 26: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

26

Comparison:Comparison:

Same result: full arc-consistency:Same result: full arc-consistency: A = {2,3}, B = {3,4}, C= {1,2}, D = {1,3} A = {2,3}, B = {3,4}, C= {1,2}, D = {1,3}

Efficiency:Efficiency: AC1: AC1:

3 times 6 checks = 3 times 6 checks = 1818 AC3:AC3:

99 constraint checks constraint checks

Page 27: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

27

K-consistency:K-consistency: 1-consistency1-consistency (node-consistency): (node-consistency):

unary constraints (on 1 variable) are consistentunary constraints (on 1 variable) are consistent 2-consistency2-consistency (arc-consistency): (arc-consistency):

binary constraints (on 2 variables) are consistentbinary constraints (on 2 variables) are consistent 3-consistency3-consistency::

all constraints involving 3 variables are consistentall constraints involving 3 variables are consistent

AA BB

DDCC

B = A + 1

A C D BA D

|B - C| 1

C D

{ 1, 2, 3, 4}

{ 1, 2, 3} { 1, 3, 4}

{ 1, 2, 3, 4}

A value A value remainsremains in the domain if there are consistent in the domain if there are consistent values in the domains of the 2 other variables (for all values in the domains of the 2 other variables (for all connecting constraints)connecting constraints)

Example:Example:

Page 28: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

28

Practicality of k-consistency:Practicality of k-consistency:

CheckingChecking k-consistency for k k-consistency for k 2 is very hard to 2 is very hard to do efficiently !!do efficiently !!

Example:Example: 4-consistency for the 4-houses puzzle 4-consistency for the 4-houses puzzle is equivalent to finding solutions to the original is equivalent to finding solutions to the original problem.problem.

Page 29: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

Hybrid constraint processingHybrid constraint processing

Combine the power ofCombine the power of

exhaustive (backtrack) searchexhaustive (backtrack) search

with (relaxation) pruningwith (relaxation) pruning

Page 30: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

Forward checkingForward checking

Backtracking combined Backtracking combined with Forward Checkwith Forward Check

Page 31: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

31

Forward checking:Forward checking:

Forward Checking:Forward Checking:

ExecuteExecute Standard BacktrackingStandard Backtracking

AfterAfter each assignment of a each assignment of a value to a variable value to a variable zizi DODO

Forward Check(Forward Check(zizi))

BUTBUT

Page 32: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

32

11AA

Forward checking at workForward checking at work

BB

22

AA BB

CC DD

{1}{1} {1,2,3,4}{1,2,3,4}

{1,2,3}{1,2,3} {1,3,4}{1,3,4}

B=A+1B=A+1

AADDAACC

AA BB

CC DD

{1}{1} {2}{2}

{2,3}{2,3} {3,4}{3,4}

|B-C||B-C|11

DD B B

failfail

AA BB

CC DD

{2}{2} {1,2,3,4}{1,2,3,4}

{1,2,3}{1,2,3} {1,3,4}{1,3,4}

B=A+1B=A+1

AADDAACC

22

BB33

AA BB

CC DD

{2}{2} {3}{3}

{1,3}{1,3} {1,3,4}{1,3,4}

|B-C||B-C|11

DD B B

CC11

AA BB

CC DD

{4}{4} {3}{3}

{1}{1} {1}{1}CCDD

failfail

AA BB

CC DD

{3}{3} {1,2,3,4}{1,2,3,4}

{1,2,3}{1,2,3} {1,3,4}{1,3,4}

B=A+1B=A+1

AADDAACC

33

BB44

AA BB

CC DD

{3}{3} {4}{4}

{1,2}{1,2} {1,4}{1,4}

|B-C||B-C|11

DD B B

AA BB

CC DD

{3}{3} {4}{4}

{1}{1} {1}{1}CCDD

AA BB

CC DD

{3}{3} {4}{4}

{2}{2} {1}{1}CCDD

11 CC 22

failfail successsuccess

Page 33: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

Lookahead checkingLookahead checking

Backtracking combined Backtracking combined with Look ahead checkwith Look ahead check

Page 34: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

34

Lookahead checking:Lookahead checking:

ExecuteExecute Standard BacktrackingStandard Backtracking

Look Ahead CheckLook Ahead Check

BUTBUT

Look Ahead Check Look Ahead Check ;;

Lookahead Checking:Lookahead Checking:

AfterAfter each assignment of a each assignment of a value to some variable value to some variable DODO

Page 35: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

35

Lookahead checking at workLookahead checking at work

AA BB

CC DD

{1,2,3,4}{1,2,3,4} {1,2,3,4}{1,2,3,4}

{1,2,3}{1,2,3} {1,3,4}{1,3,4}

B=A+1B=A+1

AADDAACC DD B B|B-C||B-C|11CCDD

AA BB

CC DD

{1}{1} {3,4}{3,4}

{1,2}{1,2} {1,3}{1,3}

B=A+1B=A+1

failfail

AA BB

CC DD

{2}{2} {3,4}{3,4}

{1,2}{1,2} {1,3}{1,3}

B=A+1B=A+1

AADDAACC DD B B|B-C||B-C|11CCDD

failfail

AA BB

CC DD

{3}{3} {3,4}{3,4}

{1,2}{1,2} {1,3}{1,3}

B=A+1B=A+1

AADDAACC DD B B|B-C||B-C|11CCDD

AA BB

CC DD

{3}{3} {4}{4}

{2}{2} {1}{1}

DD B B|B-C||B-C|11

CCDD

AA BB

CC DD

{3}{3} {4}{4}

{2}{2} {1}{1}CCDD

11 AA

22

33

BB 44

CC22

successsuccess

Page 36: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

36

Which is best?Which is best? Forward checking:Forward checking:

does less consistency checkingdoes less consistency checking has more branchinghas more branching

closer to backtrackingcloser to backtracking

Lookahead checking:Lookahead checking: spends more work on consistencyspends more work on consistency tries less alternative valuestries less alternative values

Usually: forward checking is best trade-offUsually: forward checking is best trade-off For VERY strongly constrainted problems:For VERY strongly constrainted problems:

Lookahead checking is needed to prune moreLookahead checking is needed to prune more

Page 37: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

37

Applications:Applications:

All combinatorial search problemsAll combinatorial search problems Scheduling problems:Scheduling problems:

Ex.:Ex.: reschedule the trains when some railway reschedule the trains when some railway problem has occurredproblem has occurred

Rostering problems:Rostering problems: Ex.:Ex.: compute work-shifts, given various compute work-shifts, given various expertise constraints and personal preferencesexpertise constraints and personal preferences

Production planning:Production planning: Ex.:Ex.: schedule the optimal workfloor traversal schedule the optimal workfloor traversal

Loading problems:Loading problems: Ex.:Ex.: optimize truck-space given various types of optimize truck-space given various types of loadsloads

Page 38: Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid techniques

38

Alternative techniquesAlternative techniques Linear programmingLinear programming

numerical techniques for solving systems of linear equations (and inequalities) + optimization problemsnumerical techniques for solving systems of linear equations (and inequalities) + optimization problems Ex.:Ex.: simplex algorithm simplex algorithm

Works VERY well for ‘linear’ constraints Works VERY well for ‘linear’ constraints

4*X - 3*Y 4*X - 3*Y Z + 2 Z + 2

XX33 - 3*Y - 3*Y Z Z22 + 2 + 2

YES !YES !

NO !NO !

Works, but not VERY well, for discrete problems Works, but not VERY well, for discrete problems

In such cases:In such cases: Constraint Processing is a better option Constraint Processing is a better option

Also: for constraint problems on Also: for constraint problems on non-numerical datanon-numerical data ! !