+ All Categories
Home > Documents > Relaxation and Hybrid constraint processing Different relaxation techniques Some popular hybrid...

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

Date post: 29-Dec-2015
Category:
Upload: alan-stokes
View: 218 times
Download: 1 times
Share this document with a friend
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
Transcript
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 ! !


Recommended