Constraint Satisfaction Problems Rich and Knight: 3.5 Russell and Norvig: Chapter 3, Section 3.7 Chapter 4, Pages 104-105 Slides adapted from: latombe/cs121/2003/home.htm.

Post on 18-Jan-2018

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Intro Example: 8-Queens

Transcript

Constraint Satisfaction Constraint Satisfaction ProblemsProblems

Rich and Knight: 3.5Russell and Norvig: Chapter 3, Section 3.7Chapter 4, Pages 104-105

Slides adapted from:robotics.stanford.edu/~latombe/cs121/2003/home.htm

Intro Example: 8-QueensIntro Example: 8-Queens

Generate-and-test, with noredundancies “only” 88 combinations

Intro Example: 8-QueensIntro Example: 8-Queens

What is Needed?What is Needed?

Not just a successor function and goal testBut also a means to propagate the constraints imposed by one queen on the others and an early failure test Explicit representation of constraints and constraint manipulation algorithms

Constraint Satisfaction Constraint Satisfaction ProblemProblem

Set of variables {X1, X2, …, Xn}Each variable Xi has a domain Di of possible values Usually Di is discrete and finite

Set of constraints {C1, C2, …, Cp} Each constraint Ck involves a subset of

variables and specifies the allowable combinations of values of these variables

Assign a value to every variable such that all constraints are satisfied

Example: 8-Queens Example: 8-Queens ProblemProblem

8 variables Xi, i = 1 to 8 Domain for each variable {1,2,…,8} Constraints are of the forms: Xi = k Xj k for all j = 1 to 8, ji Xi = ki, Xj = kj |i-j| | ki - kj|

for all j = 1 to 8, ji

Example: Map ColoringExample: Map Coloring

• 7 variables {WA,NT,SA,Q,NSW,V,T}• Each variable has the same domain {red, green, blue}• No two adjacent variables have the same value: WANT, WASA, NTSA, NTQ, SAQ, SANSW, SAV,QNSW, NSWV

WA

NT

SA

Q

NSWV

T

WA

NT

SA

Q

NSWV

T

Example: Task SchedulingExample: Task Scheduling

T1 must be done during T3T2 must be achieved before T1 startsT2 must overlap with T3T4 must start after T1 is complete

T1T2

T3

T4

Constraint GraphConstraint GraphBinary constraints

T

WA

NT

SA

Q

NSWV

Two variables are adjacent or neighbors if theyare connected by an edge or an arc

T1T2

T3

T4

Example: Map Colorings0 = ???????successors(s0) = {R??????, G??????,

B??????}What search algorithms could we use?BFS? DFS?

RemarkRemark

Finite CSP include 3SAT as a special case 3SAT is known to be NP-complete So, in the worst-case, we cannot expect to solve a finite CSP in less than exponential time

Map ColoringMap Coloring{}

WA=red WA=green WA=blue

WA=redNT=green

WA=redNT=blue

WA=redNT=greenQ=red

WA=redNT=greenQ=blue

WA

NT

SA

Q

NSWV

T

Backtracking AlgorithmBacktracking AlgorithmCSP-BACKTRACKING(PartialAssignment a)

If a is complete then return a X select an unassigned variable D select an ordering for the domain of X For each value v in D do

If v is consistent with a then Add (X= v) to a result CSP-BACKTRACKING(a) If result failure then return result

Return failure

CSP-BACKTRACKING({})

QuestionsQuestions

1. Which variable X should be assigned a value next?

2. In which order should its domain D be sorted?

3. What are the implications of a partial assignment for yet unassigned variables?

Choice of VariableChoice of Variable

Map coloring

WA

NT

SA

Q

NSWV

T

WA

NT

SA

Choice of VariableChoice of Variable

8-queen

Choice of VariableChoice of Variable

Most-constrained-variable heuristic: Select a variable with the fewest

remaining values

= Fail First Principle

Choice of VariableChoice of Variable

Most-constraining-variable heuristic: Select the variable that is involved in the largest

number of constraints on other unassigned variables= Fail First Principle again

WA

NT

SA

Q

NSWV

T

SA

{}

Choice of ValueChoice of Value

WA

NT

SA

Q

NSWV

T

WA

NT

Choice of ValueChoice of Value

Least-constraining-value heuristic: Prefer the value that leaves the largest subset

of legal values for other unassigned variables

{blue}

WA

NT

SA

Q

NSWV

T

WA

NT

Choice of Constraint to Choice of Constraint to TestTest

Most-constraining-Constraint: Prefer testing constraints that are

more difficult to satisfy= Fail First Principle

Constraint Propagation …Constraint Propagation … … is the process of determining

how the possible values of one variable affect the possible values of other variables

Forward CheckingForward Checking After a variable X is assigned a value v,

look at each unassigned variable Y that is connected to X by a constraint and deletes from Y’s domain any value that is inconsistent with v

Map ColoringMap Coloring

WA NT Q NSW V SA TRGB RGB RGB RGB RGB RGB RGB

TWA

NT

SA

Q

NSWV

Map ColoringMap Coloring

WA NT Q NSW V SA TRGB RGB RGB RGB RGB RGB RGBR GB RGB RGB RGB GB RGB

TWA

NT

SA

Q

NSWV

WA NT Q NSW V SA TRGB RGB RGB RGB RGB RGB RGBR GB RGB RGB RGB GB RGBR B G RB RGB B RGB

Map ColoringMap Coloring

TWA

NT

SA

Q

NSWV

Map ColoringMap Coloring

WA NT Q NSW V SA TRGB RGB RGB RGB RGB RGB RGBR GB RGB RGB RGB GB RGBR B G RB RGB B RGBR B G R B RGB

Impossible assignments that forward checking do not detect

TWA

NT

SA

Q

NSWV

Edge Labeling in Computer Edge Labeling in Computer VisionVision

Rich and Knight: Chapter 14, Pages 367-375Russell and Norvig: Chapter 24, pages 745-749

Edge LabelingEdge Labeling

Trihedral ObjectsObjects in which exactly three plane surfaces come together at each vertex. Goal: label a 2-D object to produce a 3-D object

Edge LabelingEdge Labeling

Labels of EdgesConvex edge: two surfaces intersecting at an angle greater than

180°Concave edge two surfaces intersecting at an angle less than 180°

+ convex edge, both surfaces visible− concave edge, both surfaces visible convex edge, only one surface is visible and it is on the right side of

Edge LabelingEdge Labeling

Edge LabelingEdge Labeling

+

++

+

+

+

+

+

++

--

Junction Label SetsJunction Label Sets

+ + --

-- - + +

++ ++

+

--

--

-+

(Waltz, 1975; Mackworth, 1977)

Edge Labeling as a CSPEdge Labeling as a CSPA variable is associated with each junctionThe domain of a variable is the label set of the corresponding junctionEach constraint imposes that the values given to two adjacent junctions give the same label to the joining edge

Edge LabelingEdge Labeling

+ -

+-

+- -++

Edge LabelingEdge Labeling +

++

+---

-- -

+

Edge LabelingEdge Labeling

++

+

++

+

-- - + +

++

Edge LabelingEdge Labeling

++

+

- -++

+ + --

Removal of Arc Removal of Arc InconsistenciesInconsistencies

REMOVE-ARC-INCONSISTENCIES(J,K)removed falseX label set of JY label set of KFor every label y in Y do If there exists no label x in X such that the

constraint (x,y) is satisfied then Remove y from Y If Y is empty then contradiction true removed true

Label set of K YReturn removed

CP Algorithm for Edge CP Algorithm for Edge LabelingLabeling

Associate with every junction its label set Q stack of all junctions while Q is not empty do J UNSTACK(Q) For every junction K adjacent to J do

If REMOVE-ARC-INCONSISTENCIES(J,K) then If K’s domain is non-empty then

STACK(K,Q) Else return false

(Waltz, 1975; Mackworth, 1977)

top related