Constraint satisfaction problems
Download
1 / 57

Constraint Satisfaction Problems - PowerPoint PPT Presentation


  • 64 Views
  • Uploaded on

Constraint Satisfaction Problems. Russell and Norvig: Chapter 3, Section 3.7 Chapter 4, Pages 104-105 Slides adapted from: robotics.stanford.edu/~latombe/cs121/2003/home.htm. Intro Example: 8-Queens. Generate-and-test, with no redundancies  “only” 8 8 combinations.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Constraint Satisfaction Problems' - drake


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Constraint satisfaction problems

Constraint Satisfaction Problems

Russell 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 queens
Intro Example: 8-Queens

Generate-and-test, with no

redundancies  “only” 88 combinations



What is needed
What is Needed?

  • Not just a successor function and goal test

  • But 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 problem
Constraint Satisfaction Problem

  • 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 problem
Example: 8-Queens Problem

  • 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, ji

    • Xi = ki, Xj= kj |i-j| | ki - kj|

      • for all j = 1 to 8, ji


Example map coloring

NT

Q

WA

SA

NT

NSW

Q

V

WA

SA

T

NSW

V

T

Example: 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:

  • WANT, WASA, NTSA, NTQ, SAQ, SANSW, SAV,QNSW, NSWV


Example task scheduling

T1

T2

T4

T3

Example: Task Scheduling

T1 must be done during T3

T2 must be achieved before T1 starts

T2 must overlap with T3

T4 must start after T1 is complete


Constraint graph

Binary constraints

NT

T1

Q

WA

T2

NSW

T4

SA

V

T3

T

Constraint Graph

Two variables are adjacent or neighbors if they

are connected by an edge or an arc


Csp as a search problem
CSP as a Search Problem

  • Initial state: empty assignment

  • Successor function: a value is assigned to any unassigned variable, which does not conflict with the currently assigned variables

  • Goal test: the assignment is complete

  • Path cost: irrelevant


Example map coloring1
Example: Map Coloring

s0 = ???????

successors(s0) = {R??????, G??????, B??????}

What search algorithms could we use?

BFS? DFS?


Remark
Remark

  • 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 coloring

{}

NT

Q

WA

WA=red

WA=green

WA=blue

SA

NSW

V

WA=red

NT=green

WA=red

NT=blue

T

WA=red

NT=green

Q=red

WA=red

NT=green

Q=blue

Map Coloring


Backtracking algorithm
Backtracking Algorithm

CSP-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({})


Questions
Questions

  • Which variable X should be assigned a value next?

  • In which order should its domain D be sorted?

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


Choice of variable

NT

WA

NT

Q

WA

SA

SA

NSW

V

T

Choice of Variable

  • Map coloring



Choice of variable2
Choice of Variable

Most-constrained-variable heuristic:

Select a variable with the fewest remaining values


Choice of variable3

NT

Q

WA

SA

SA

NSW

V

T

Choice of Variable

Most-constraining-variable heuristic:

Select the variable that is involved in the largest number of constraints on other unassigned variables


Choice of value

NT

WA

NT

Q

WA

SA

NSW

V

{}

T

Choice of Value


Choice of value1

NT

WA

NT

Q

WA

SA

NSW

V

{blue}

T

Choice of Value

Least-constraining-value heuristic:

Prefer the value that leaves the largest subset of legal values for other unassigned variables


Constraint propagation
Constraint Propagation …

… is the process of determining how the possible values of one variable affect the possible values of other variables


Forward checking
Forward 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 coloring1

NT

Q

WA

NSW

SA

T

V

Map Coloring


Map coloring2

NT

Q

WA

NSW

SA

T

V

Map Coloring


Map coloring3

NT

Q

WA

NSW

SA

T

V

Map Coloring


Map coloring4

NT

Q

WA

NSW

SA

T

V

Impossible assignments that forward

checking do not detect

Map Coloring


Edge labeling in computer vision
Edge Labeling in Computer Vision

Russell and Norvig: Chapter 24, pages 745-749




Labels of edges
Labels of Edges

  • Convex 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 labeling3

+

+

+

+

+

-

-

+

+

+

+

+

Edge Labeling


Junction label sets

-

-

+

+

-

+

+

-

-

+

+

-

-

-

-

+

+

+

-

+

Junction Label Sets

(Waltz, 1975; Mackworth, 1977)


Edge labeling as a csp
Edge Labeling as a CSP

  • A variable is associated with each junction

  • The domain of a variable is the label set of the corresponding junction

  • Each constraint imposes that the values given to two adjacent junctions give the same label to the joining edge


Edge labeling4

-

+

+

-

-

+

+

-

+

Edge Labeling


Edge labeling5

+

-

-

+

+

-

-

-

-

+

+

Edge Labeling


Edge labeling6

+

+

+

+

-

+

+

-

-

+

+

Edge Labeling

+

+


Edge labeling7

-

-

+

+

+

+

+

-

-

Edge Labeling

+

+


Removal of arc inconsistencies
Removal of Arc Inconsistencies

REMOVE-ARC-INCONSISTENCIES(J,K)

  • removed  false

  • X  label set of J

  • Y  label set of K

  • For 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  Y

  • Return removed


Cp algorithm for edge labeling
CP Algorithm for Edge Labeling

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


General cp for binary constraints
General CP for Binary Constraints

Algorithm AC3

  • contradiction false

  • Q stack of all variables

  • while Q is not empty and not contradiction do

    • X UNSTACK(Q)

    • For every variable Y adjacent to X do

      • If REMOVE-ARC-INCONSISTENCIES(X,Y) then

        • If Y’s domain is non-empty then STACK(Y,Q)

        • Else return false


Complexity analysis of ac3
Complexity Analysis of AC3

  • e = number of constraints (edges)

  • d = number of values per variable

  • Each variables is inserted in Q up to d times

  • REMOVE-ARC-INCONSISTENCY takes O(d2) time

  • CP takes O(ed3) time


Is ac3 all what is needed

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

Is AC3 All What is Needed?


Solving a csp
Solving a CSP

  • Search:

    • can find good solutions, but must examine non-solutions along the way

  • Constraint Propagation:

    • can rule out non-solutions, but this is not the same as finding solutions:

  • Interweave constraint propagation and search

    • Perform constraint propagation at each search step.


Constraint satisfaction problems

1

1

1

1

2

2

2

2

3

3

3

3

4

4

4

4

1

1

1

1

2

2

2

2

3

3

3

3

4

4

4

4


4 queens problem

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

4-Queens Problem


4 queens problem1

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

4-Queens Problem


4 queens problem2

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

4-Queens Problem


4 queens problem3

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

4-Queens Problem


4 queens problem4

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

4-Queens Problem


4 queens problem5

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

4-Queens Problem


4 queens problem6

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

4-Queens Problem


4 queens problem7

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

4-Queens Problem


4 queens problem8

X1

{1,2,3,4}

X2

{1,2,3,4}

1

2

3

4

1

2

3

4

X3

{1,2,3,4}

X4

{1,2,3,4}

4-Queens Problem


Summary
Summary

  • Constraint Satisfaction Problems (CSP)

  • CSP as a search problem

    • Backtracking algorithm

    • General heuristics

  • Forward checking

  • Constraint propagation

  • Edge labeling in Computer Vision

  • Interweaving CP and backtracking