• No results found

Solving Constraint Satisfaction Problems: Forward Checking. CSPS and Encoding 4 Queens

N/A
N/A
Protected

Academic year: 2022

Share "Solving Constraint Satisfaction Problems: Forward Checking. CSPS and Encoding 4 Queens"

Copied!
19
0
0

Loading.... (view fulltext now)

Full text

(1)

1

Solving Constraint Satisfaction Problems:

Forward Checking

1

Brian C. Williams 16.410

October 1st, 2003 Slides adapted from:

6.034 Tomas Lozano Perez With help from:

Stuart Russell & Peter Norvig

CSPS and Encoding 4 Queens

Variables V

Constraints C Q

i

<> Q

j

On different rows Domains D {1, 2, 3, 4}

Q

1

, Q

2

, Q

3

, Q

4

,

1 2 3 4

1 2 3 4

Q

Problem: Place queens so that none can attack the other.

Q

Q Q

A Constraint Satisfaction Problem is a triple <V,D,C>:

|Q

i

- Q

j

| <> |i-j| Stay off the diagonals Example: C

1,2

= {(1,3) (1,4) (2,4) (3,1) (4,1) (4,2)}

• Assume one queen per column.

• What row should each queen be in?

CSP solution: any assignment to V, such that all constraints in C are satisfied.

(2)

3

Achieving Arc Consistency via Constraint Propagation

• Directed arc (Vi, Vj) is arc consistentif

∀x∈Di∃y∈Djsuch that (x,y) is allowed by constraint Cij Arc consistency eliminates values of each variable domain that can never satisfy a particular constraint (an arc).

Constraint propagation: To achieve arc consistency:

• Delete every value from each tail domain Diof each arc that fails this condition.

•Repeatuntil quiescence:

• If element deleted from Di then

check directed arc consistency for each arc with head Di

• Maintain arcs to be checked on FIFO queue (no duplicates).

Vi Vj

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

Constraint Propagation Example

R,G,B

G R, G

Different-color constraint V1

V2

V3

none V3>V1

none V2>V1

V1(R) V2-V1

V2(G) V2 -V3

V1(G) V1-V3

none V1 – V2

Value deleted Arc examined

Graph Coloring

Initial Domains

B

G R

V2

V3 V1

Arcs to examine

IF examination queue is empty

(3)

5

To Solve CSPs we combine arc consistency and search

1. Arc consistency (Constraint propagation),

• eliminates values that are shown locally to not be a part of any solution.

2. Search

• explores consequences of committing to particular assignments.

Methods Incorporating Search:

• Standard Search

• Back Track search (BT)

• BT with Forward Checking (FC)

• Dynamic Variable Ordering (DV)

• Iterative Repair

• Backjumping (BJ)

Solving CSPs with Standard Search

• State

• Initial State

• Operator

• Goal Test

• Variables assigned thus far

• No assignments

• Assign value to anyunassigned variable

• All variables assigned

• All constraints satisfied

• Branching factor?

ÎSumof domain size of allvariables O(v*d)

• Performance?

Î exponential in branching factor R, G R, G R, G, B V1

V3 V2

(4)

7

Search Performance on N Queens

• Standard Search

• Backtracking

• A handful of queens 1

2 3

4 Q

Q

Q Q

Solving CSPs with Standard Search

Standard Search:

• Children select any value to anyvariable [O(v*d)]

• Test complete assignments against CSP

Observations:

1. The order in which variables are assigned does not change the solution.

Î Many paths denote the same solution (n!), Î so expand only one path.

2. We can identify a dead end before assigning all variables Î Extensions to inconsistent partial assignments are always

inconsistent

Î So check after each assignment.

R, G R, G R, G, B V1

V3 V2

(5)

9

BackTrack Search (BT)

1. Expand the assignments of only one variableat each step.

2. Pursue depth first.

3. Check consistency after each expansion, and backup.

R, G R, G R, G, B V1

V3 V2

V1assignments V2assignments

V3assignments

Select variable ordering to assign

R G B

Expand designated variable

BackTrack Search (BT)

1. Expand the assignments of only one variable at each step.

2. Pursue depth first.

3. Check consistency after each expansion, and backup.

R, G R, G R, G, B

R G

R G

V1

V3 V2

R G

R G

R G B

R G

R G R G

Assign designated variable V1assignments

V2assignments

V3assignments

Select variable ordering to assign

Backup at inconsistent assignment

(6)

11

Search Performance on N Queens

• Standard Search

• Backtracking

• A handful of queens

• About 15 queens 1

2 3

4 Q

Q

Q Q

Search Performance on N Queens

• Standard Search

• Backtracking

• BT with Forward Checking

• A handful of queens

• About 15 queens 1

2 3

4 Q

Q

Q Q

(7)

13

Combine Backtracking & Limited Constraint Propagation

Initially: Prune domains using constraint propagation Loop:

• If complete consistent assignment, then return.

• Choose unassigned variable

• Choose assignment from pruneddomain

•Prune domains using constraint propagation

• if a domain has no remaining elements, then backtrack.

Question: Full propagation is O(ed3),

How much propagation should we do?

Very little:

•Just check arc consistency for those arcs terminating on the new assignment O(ed).

• called forward checking (FC).

Backtracking with Forward Checking (BT-FC)

R, G R, G R, G, B V1

V3 V2

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

V1assignments R

V2assignments

V3assignments

1. Perform initial pruning.

(8)

15

Backtracking with Forward Checking (BT-FC)

R, G R, G R V1

V3 V2

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

V1assignments R

V2assignments

V3assignments

1. Perform initial pruning.

Backtracking with Forward Checking (BT-FC)

G G

R V1

V3 V2

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

V1assignments R

V2assignments

V3assignments

1. Perform initial pruning.

(9)

17

Backtracking with Forward Checking (BT-FC)

G G

R V1

V3 V2

V1assignments R

V2assignments

V3assignments

G

1. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

Backtracking with Forward Checking (BT-FC)

G

R V1

V3 V2

V1assignments R

V2assignments

V3assignments

G

x

3. We have a conflict whenever a domain becomes empty.

• Back track

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

x

(10)

19

Backtracking with Forward Checking (BT-FC)

R, G R, G R, G, B V1

V3 V2

G V1assignments

V2assignments

V3assignments

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

Backtracking with Forward Checking (BT-FC)

R, G R, G G V1

V3 V2

G V1assignments

V2assignments

V3assignments

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

(11)

21

Backtracking with Forward Checking (BT-FC)

R R

G V1

V3 V2

G V1assignments

V2assignments

V3assignments

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

Backtracking with Forward Checking (BT-FC)

R R

G V1

V3 V2

G R V1assignments

V2assignments

V3assignments

Note: No need to check new

assignment against previous assignments 3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

(12)

23

Backtracking with Forward Checking (BT-FC)

R

G V1

V3 V2

G R V1assignments

V2assignments

V3assignments

x

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

Backtracking with Forward Checking (BT-FC)

R, G R, G R, G, B V1

V3 V2

V1assignments B

V2assignments

V3assignments

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

(13)

25

Backtracking with Forward Checking (BT-FC)

R, G R, G B V1

V3 V2

V1assignments B

V2assignments

V3assignments

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

Backtracking with Forward Checking (BT-FC)

R R, G

B V1

V3 V2

B

R V1assignments

V2assignments

V3assignments

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

(14)

27

Backtracking with Forward Checking (BT-FC)

R G

B V1

V3 V2

B

R V1assignments

V2assignments

V3assignments

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

Backtracking with Forward Checking (BT-FC)

R G

B V1

V3 V2

B

R V1assignments

V2assignments

V3assignments G

Solution!

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

(15)

29

Backtracking with Forward Checking (BT-FC)

G R

B V1

V3 V2

B

G V1assignments

V2assignments

V3assignments R

BT-FC is generally faster than pure BT because it avoids rediscovering inconsistencies.

3. We have a conflict whenever a domain becomes empty.

• Back track

• Restore domain values

2. After selecting each assignment, remove any values of

neighboring domains that are inconsistent with the new assignment.

1. Perform initial pruning.

Search Performance on N Queens

• Standard Search

Backtracking

BT with Forward Checking

• A handful of queens

• About 15 queens

• About 30 queens 1

2 3

4 Q

Q

Q Q

(16)

31

BT-FC with dynamic ordering

Traditional backtracking uses fixed ordering of variables & values

Typically better to choose ordering dynamically as search proceeds.

• Most constrained variable

when doing forward-checking, pick variable with fewest legal values to assign next (minimizes branching factor)

• Least constraining value

choose value that rules out the smallest number of values in variables connected to the chosen variable by constraints.

Which country should we color next E most-constrained variable (smallest domain)

What color should we pick for it? REDleast-constraining value (eliminates fewest values from neighboring domains)

A

B

E D

Colors: R, G, B, Y

C

R, Y G,B, Y

F R, B, Y

(17)

33

Search Performance on N Queens

Standard Search

Backtracking

BT with Forward Checking

Dynamic Variable Ordering

• A handful of queens

• About 15 queens

• About 30 queens

• About 1,000 queens 1

2 3

4 Q

Q

Q Q

Back jumping

Backtracking At dead end backup to most recent variable, Backjumping At dead end backup to most recent variable that eliminated a value in the current (empty) domain.

1 2 3 4 5 6

1 2 3 4 5 6

Q 2 2

2 2

2 2 Q 1

1

1 1

1 1

1 1

1 1

Q 3

3 3

3

3

6-Queens

variables: board columns domains: board rows

25 253

5 2 3 4

6

(18)

35

Back jumping

1 2 3 4 5 6

1 2 3 4 5 6

Q

Q 1

2 1

1 1

1 Q

2 2

1 2 3 1

3 1 3

2 1

2 1 3

3

25

2536 253

5 2 3 4

6

6-Queens

variables: board columns domains: board rows

Q

4 4

4

Backtracking At dead end backup to most recent variable, Backjumping At dead end backup to most recent variable that eliminated a value in the current (empty) domain.

Back jumping

1 2 3 4 5 6

1 2 3 4 5 6

Q

Q 1

2 1

1 1

1 Q

2 2

1 2 3 1

3 1 3

2 1

2 1 3

3

25

2536

25364 253

5 2 3 4

6

6-Queens

variables: board columns domains: board rows

Q

4 4

4

Q

Failures here should look to variable 4. Changing variable 5 won’t help

Backtracking At dead end backup to most recent variable, Backjumping At dead end backup to most recent variable that eliminated a value in the current (empty) domain.

(19)

37

Search Performance on N Queens

Standard Search

Backtracking

Backjumping

BT with Forward Checking

Dynamic Variable Ordering

Iterative Repair

• A handful of queens

• About 15 queens

• ???

• About 30 queens

• About 1,000 queens

• About 10,000,000 queens (except truly hard problems) 1

2 3

4 Q

Q

Q Q

References

Related documents

The findings have shown that, in the process of institutionalisation at Tsingtao Brewery, although the BSC has changed considerably from the original design staff have become used

The client detector performs detection at the side of innocent hosts and this is quite different from current methods which are often deployed at the sides of the victim server or

In a backwards stepwise regression, the variable which would produce the smallest decrease in R 2 (i.e. the variable with the smallest semipartial correlation) is dropped

Spells per Day When an arcane investigator level is gained, the character gains new spells per day as if he had also gained a level in a spellcasting class he belonged to

The Division of Medical Services (DMS), the State Medicaid agency, has overall responsibility for administrative and financial authority, policy development, quality

A DT: Androgen Deprivation Therapy Ago: Argonaute AR: Androgen Receptor ASO: Antisense Oligonucleotides AUC: Area Under the Curve BPH: Benign Prostate Hyperplasia CDK:

For example, using the Portuguese data set we obtained, considering partial independence and no smoothing of the discrete indicators, credible intervals with width of about 26

If a mechanism is truthful with the additional constraint that a base station must belong to one and only one group then, given the allocation rule, there also exists a truthful