Constraint Satisfaction Problems (CSP)

advertisement
What we will try to do ...
Constraint Satisfaction
Problems (CSP)
(Where we postpone making difficult
decisions until they become easy to make)
R&N: Chap. 5
ƒ Search techniques make choices in an often
arbitrary order. Often little information is
available to make each of them
ƒ In many
y problems,
p
, the same states can be
reached independent of the order in which
choices are made (“commutative” actions)
ƒ Can we solve such problems more efficiently
by picking the order appropriately? Can we
even avoid making any choice?
1
Constraint Propagation
2
Constraint Propagation
6
6
5
5
5 5
5 5 5 6 7
5
5
6
ƒ Place a queen in a square
ƒ Remove the attacked squares from future
consideration
ƒ Count the number of non-attacked squares in every row
and column
ƒ Place a queen in a row or column with minimum number
ƒ Remove the attacked squares from future consideration
3
Constraint Propagation
3
4
4 3
4
Constraint Propagation
3 3
3 3 4 5
3 4 3
4
4
3
3
3
5
2
3
4
ƒ Repeat
5
6
1
Constraint Propagation
3 3
Constraint Propagation
3 1
2
4
2
2
2
2
1
3
1
2 1
7
Constraint Propagation
1
8
Constraint Propagation
2
1
2
1
1
9
Constraint Propagation
10
What do we need?
ƒ More than just a successor function and a goal
test
ƒ We also need:
• A means to propagate the constraints imposed by
one queen’s position on the positions of the other
queens
• An early failure test
Æ Explicit representation of constraints
Æ Constraint propagation algorithms
11
12
2
Constraint Satisfaction Problem (CSP)
ƒ Set of variables {X1, X2, …, Xn}
ƒ Each variable Xi has a domain Di of
possible values. Usually, Di is finite
ƒ Set of constraints {C1, C2, …, Cp}
ƒ Each constraint relates a subset of
variables by specifying the valid
combinations of their values
ƒ Goal: Assign a value to every variable such
that all constraints are satisfied
Map Coloring
NT
WA
SA
V
T
WA≠NT, WA≠SA, NT≠SA, NT≠Q, SA≠Q,
SA≠NSW, SA≠V, Q≠NSW, NSW≠V
8-Queen Problem
All constraints are binary
15
1
2
3
4
The
The
The
The
The
The
The
The
The
The
The
The
The
The
∀i,j∈[1,5], i≠j, Ni ≠ Nj
Englishman lives in the Red house
∀i j∈[1 5]
∀i,j∈[1,5],
Spaniard has a Dog
Japanese is a Painter
...
Italian drinks Tea
Norwegian lives in the first house on the left
owner of the Green house drinks Coffee
Green house is on the right of the White house
Sculptor breeds Snails
Diplomat lives in the Yellow house
owner of the middle house drinks Milk
Norwegian lives next door to the Blue house
Violinist drinks Fruit juice
Fox is in the house next to the Doctor’s
Horse is next to the Diplomat’s
5
Englishman lives in the Red house
Who
Spaniard has a Dog
Who
Japanese is a Painter
Italian drinks Tea
Norwegian lives in the first house on the left
owner of the Green house drinks Coffee
Green house is on the right of the White house
Sculptor breeds Snails
Diplomat lives in the Yellow house
owner of the middle house drinks Milk
Norwegian lives next door to the Blue house
Violinist drinks Fruit juice
Fox is in the house next to the Doctor’s
Horse is next to the Diplomat’s
owns the Zebra?
drinks Water?
16
Street Puzzle
1
5
Ni = {English, Spaniard, Japanese, Italian, Norwegian}
Ci = {Red, Green, White, Yellow, Blue}
Di = {Tea, Coffee, Milk, Fruit-juice, Water}
Ji = {Painter, Sculptor, Diplomat, Violinist, Doctor}
Ai = {Dog, Snails, Fox, Horse, Zebra}
The
The
The
The
The
The
The
The
The
The
The
The
The
The
4
Ni = {English, Spaniard, Japanese, Italian, Norwegian}
Ci = {Red, Green, White, Yellow, Blue}
Di = {Tea, Coffee, Milk, Fruit-juice, Water}
Ji = {Painter, Sculptor, Diplomat, Violinist, Doctor}
Ai = {Dog, Snails, Fox, Horse, Zebra}
Street Puzzle
3
14
Street Puzzle
ƒ 8 variables Xi, i = 1 to 8
ƒ The domain of each variable is: {1,2,…,8}
ƒ Constraints are of the forms:
• Xi = k Î Xj ≠ k for all j = 1 to 8, j≠i
• Similar constraints for diagonals
2
NSW
ƒ 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:
13
1
Q
i≠j
i≠j, Ci ≠ Cj
17
2
3
4
5
Ni = {English, Spaniard, Japanese, Italian, Norwegian}
Ci = {Red, Green, White, Yellow, Blue}
Di = {Tea, Coffee, Milk, Fruit-juice, Water}
Ji = {Painter, Sculptor, Diplomat, Violinist, Doctor}
Ai = {Dog, Snails, Fox, Horse, Zebra}
The
The
The
The
The
The
The
The
The
The
The
The
The
The
(Ni = English) ⇔ (Ci = Red)
Englishman lives in the Red house
Spaniard has a Dog
(Ni = Japanese) ⇔ (Ji = Painter)
Japanese is a Painter
Italian drinks Tea
(N1 = Norwegian)
Norwegian lives in the first house on the left
owner of the Green house drinks Coffee
Green house is on the right of the White house
Sculptor breeds Snails
(Ci = White) ⇔ (Ci+1 = Green)
Diplomat lives in the Yellow house
owner of the middle house drinks Milk
(C5 ≠ White)
Norwegian lives next door to the Blue house (C1 ≠ Green)
Violinist drinks Fruit juice
Fox is in the house next to the Doctor’s
left as an exercise 18
Horse is next to the Diplomat’s
3
Street Puzzle
1
2
3
4
Street Puzzle
1
5
Ni = {English, Spaniard, Japanese, Italian, Norwegian}
Ci = {Red, Green, White, Yellow, Blue}
Di = {Tea, Coffee, Milk, Fruit-juice, Water}
Ji = {Painter, Sculptor, Diplomat, Violinist, Doctor}
Ai = {Dog, Snails, Fox, Horse, Zebra}
The
The
The
The
The
The
The
The
The
The
The
The
The
The
(Ni = English) ⇔ (Ci = Red)
Englishman lives in the Red house
Spaniard has a Dog
(Ni = Japanese) ⇔ (Ji = Painter)
Japanese is a Painter
Italian drinks Tea
(N1 = Norwegian)
Norwegian lives in the first house on the left
owner of the Green house drinks Coffee
Green house is on the right of the White house
Sculptor breeds Snails
(Ci = White) ⇔ (Ci+1 = Green)
Diplomat lives in the Yellow house
owner of the middle house drinks Milk
(C5 ≠ White)
Norwegian lives next door to the Blue house (C1 ≠ Green)
Violinist drinks Fruit juice
Fox is in the house next to the Doctor’s
unary constraints
19
Horse is next to the Diplomat’s
Street Puzzle
1
2
3
4
3
4
The
The
The
The
The
The
The
The
The
The
The
The
The
The
Englishman lives in the Red house Æ C1 ≠ Red
Spaniard has a Dog Æ A1 ≠ Dog
Japanese is a Painter
Italian drinks Tea
Norwegian lives in the first house on the left Æ N1 = Norwegian
owner of the Green house drinks Coffee
Green house is on the right of the White house
Sculptor breeds Snails
Diplomat lives in the Yellow house
owner of the middle house drinks Milk Æ D3 = Milk
Norwegian lives next door to the Blue house
Violinist drinks Fruit juice Æ J3 ≠ Violinist
Fox is in the house next to the Doctor’s
Horse is next to the Diplomat’s
5
Englishman lives in the Red house
Spaniard has a Dog
Japanese is a Painter
Italian drinks Tea
Norwegian lives in the first house on the left Æ N1 = Norwegian
owner of the Green house drinks Coffee
Green house is on the right of the White house
Sculptor breeds Snails
Diplomat lives in the Yellow house
owner of the middle house drinks Milk Æ D3 = Milk
Norwegian lives next door to the Blue house
Violinist drinks Fruit juice
Fox is in the house next to the Doctor’s
Horse is next to the Diplomat’s
20
Task Scheduling
T1
5
Ni = {English, Spaniard, Japanese, Italian, Norwegian}
Ci = {Red, Green, White, Yellow, Blue}
Di = {Tea, Coffee, Milk, Fruit-juice, Water}
Ji = {Painter, Sculptor, Diplomat, Violinist, Doctor}
Ai = {Dog, Snails, Fox, Horse, Zebra}
The
The
The
The
The
The
The
The
The
The
The
The
The
The
2
Ni = {English, Spaniard, Japanese, Italian, Norwegian}
Ci = {Red, Green, White, Yellow, Blue}
Di = {Tea, Coffee, Milk, Fruit-juice, Water}
Ji = {Painter, Sculptor, Diplomat, Violinist, Doctor}
Ai = {Dog, Snails, Fox, Horse, Zebra}
T2
T4
T3
Four tasks T1, T2, T3, and T4 are related by time constraints:
• T1 must
st be
b done
d
during
d i T3
• T2 must be achieved before T1 starts
• T2 must overlap with T3
• T4 must start after T1 is complete
ƒ Are the constraints compatible?
ƒ What are the possible time relations between two tasks?
ƒ What if the tasks use resources in limited supply?
21
3-SAT
How to formulate this problem as a CSP?
22
Finite vs. Infinite CSP
ƒ n Boolean variables u1, ..., un
ƒ Finite CSP: each variable has a finite
domain of values
ƒ Infinite CSP: some or all variables have
an infinite domain
ƒ p constraints of the form
ui* ∨ uj* ∨ uk*=
=1
where u* stands for either u or ¬u
E.g., linear programming problems over the
reals:
ƒ Known to be NP-complete
for i = 1, 2, ..., p : ai,1x1 +ai,2x2 +...+ai,n xn = ai,0
for j = 1, 2, ..., q : bj,1x1 +bj,2x2 +...+bj,n xn ≤ bj,0
ƒ We will only consider finite CSP
23
24
4
CSP as a Search Problem
ƒ n variables X1, ..., Xn
{Xi1Åvi1, ..., XikÅvik}
ƒ Valid assignment: {Xi1 Å vi1, ..., Xik Å vik}, 0≤ k ≤ n,
such that the values vi1, ..., vik satisfy all constraints
relating the variables Xi1, ..., Xik
ƒ Complete assignment: one where k = n
[if all variable domains have size d
d, there are O(dn)
complete assignments]
ƒ States: valid assignments
{Xi1Åvi1, ..., XikÅvik, Xik+1Åvik+1}
ƒ Initial state: empty assignment {}, i.e. k = 0
ƒ Successor of a state:
r = n−k variables with s values Æ r×s branching factor
{Xi1Åvi1, ..., XikÅvik} Æ {Xi1Åvi1, ..., XikÅvik, Xik+1Åvik+1}
ƒ Goal test: k = n
25
26
A Key property of CSP:
Commutativity
{Xi1Åvi1, ..., XikÅvik}
The order in which variables are assigned values
has no impact on the reachable complete valid
assignments
Hence
Hence:
1) One can expand a node N by first selecting
one variable X not in the assignment A
associated with N and then assigning every
value v in the domain of X
{Xi1Åvi1, ..., XikÅvik, Xik+1Åvik+1}
r = n−k
variables with
with ss values
values Æ
Æ r×s
s branching
factor
n-k variables
branching
factor
[Æ big reduction in branching factor]
The depth of the solutions in the search tree is un-changed (n)
27
28
A Key property of CSP:
Commutativity
ƒ 4 variables X1, ..., X4
ƒ Let the valid assignment of N be:
A = {X1 Å v1, X3 Å v3}
ƒ For example pick variable X4
ƒ Let the domain of X4 be {v4,1
4 1, v4,2
4 2, v4,3
4 3}
ƒ The successors of A are all the valid
assignments among:
{X1 Å v1, X3 Å v3 , X4 Å v4,1 }
{X1 Å v1, X3 Å v3 , X4 Å v4,2 }
{X1 Å v1, X3 Å v3 , X4 Å v4,2 }
The order in which variables are assigned values
has no impact on the reachable complete valid
assignments
Hence:
1) One can expand a node N by first selecting
one variable X not in the assignment A
associated with N and then assigning every
value v in the domain of X
[Æ big reduction in branching factor]
29
2) One need not store the path to a node
Æ Backtracking search algorithm
30
5
Backtracking Search
Backtracking Search
(3 variables)
Essentially a simplified depth-first
algorithm using recursion
Assignment = {}
31
32
Backtracking Search
Backtracking Search
(3 variables)
(3 variables)
X1
X1
v11
v11
X3
v31
Assignment = {(X1,v11)}
Assignment = {(X1,v11), (X3,v31)}
33
34
Backtracking Search
Backtracking Search
(3 variables)
(3 variables)
X1
X1
v11
X3
v31
X2
v11
Then, the search algorithm
backtracks to the previous
variable (X3) and tries another
value
X3
v31
v32
X2
Assume that no value of X2
leads to a valid assignment
Assignment = {(X1,v11), (X3,v31)}
Assignment = {(X1,v11), (X3,v32)}
35
36
6
Backtracking Search
Backtracking Search
(3 variables)
The search algorithm
backtracks to the previous
variable (X3) and tries
another value. But assume
th t X3 has
that
h s only
nl two
t
possible values. The
algorithm backtracks to X1
X1
v11
X3
v31
v32
X2
X2
(3 variables)
X1
v11
v12
X3
v31
v32
X2
X2
Assume again that no value of
X2 leads to a valid assignment
Assignment = {(X1,v11), (X3,v32)}
Assignment = {(X1,v12)}
37
38
Backtracking Search
Backtracking Search
(3 variables)
(3 variables)
X1
X1
v11
v12
v11
v12
X3
X2
X3
X2
v31
v32
X2
X2
v 21
Assignment = {(X1,v12), (X2,v21)}
v31
v32
X2
X2
v 21
The algorithm need not consider
the variables in the same order in
this sub-tree as in the other
Assignment = {(X1,v12), (X2,v21)}
39
40
Backtracking Search
Backtracking Search
(3 variables)
(3 variables)
X1
X1
v11
v12
v11
v12
X3
X2
X3
X2
v31
v32
v 21
v31
v32
v 21
X2
X2
X3
X2
X2
X3
v32
v32
Assignment = {(X1,v12), (X2,v21), (X3,v32)}
The algorithm need
not consider the values
of X3 in the same order
in this sub-tree
Assignment = {(X1,v12), (X2,v21), (X3,v32)}
41
42
7
Backtracking Search
Backtracking Algorithm
(3 variables)
CSP-BACKTRACKING(A)
1.
2.
3.
4.
X1
v11
v12
X3
X2
v31
v32
v 21
X2
X2
X3
v32
Since there are only
three variables, the
assignment is complete
a. Add
dd (XÅv)) to A
b. If A is valid then
i. result Å CSP-BACKTRACKING(A)
ii. If result ≠ failure then return result
c. Remove (XÅv) from A
5. Return failure
Call CSP-BACKTRACKING({})
Assignment = {(X1,v12), (X2,v21), (X3,v32)}
43
Critical Questions for the
Efficiency of CSP-Backtracking
[This recursive algorithm keeps too much data in memory.
An iterative version could save memory (left as an exercise)]
44
Critical Questions for the
Efficiency of CSP-Backtracking
1) Which variable X should be assigned a value
next?
CSP-BACKTRACKING(A)
1.
2
2.
3.
4.
If assignment A is complete then return A
X Å select a variable not in A
D Å select an ordering on the domain of X
For each value v in D do
The current assignment may not lead to any solution,
but the algorithm still does know it. Selecting the
g variable to which to assign
g a value may
y help
p
right
discover the contradiction more quickly
If assignment A is complete then return A
X Å select a variable not in A
D Å select an ordering on the domain of X
For each value v in D do
2) In which order should X’s values be assigned?
a. Add (XÅv) to A
b. If a is valid then
i. result Å CSP-BACKTRACKING(A)
ii. If result ≠ failure then return result
The current assignment may be part of a solution.
Selecting the right value to assign to X may help
discover this solution more quickly
c. Remove (XÅv) from A
5. Return failure
More on these questions in a short while ...
45
46
Critical Questions for the
Efficiency of CSP-Backtracking
Critical Questions for the
Efficiency of CSP-Backtracking
1) Which variable X should be assigned a value
next?
1) Which variable X should be assigned a value
next?
2) In which order should X’s values be assigned?
2) In which order should X’s values be assigned?
More on these questions in a short while ...
More on these questions in a short while ...
The current assignment may not lead to any solution,
but the algorithm does not know it yet. Selecting the
g variable X may
y help
p discover the contradiction
right
more quickly
The current assignment may be part of a solution.
Selecting the right value to assign to X may help
discover this solution more quickly
47
The current assignment may not lead to any solution,
but the algorithm does not know it yet. Selecting the
g variable X may
y help
p discover the contradiction
right
more quickly
The current assignment may be part of a solution.
Selecting the right value to assign to X may help
discover this solution more quickly
48
8
Critical Questions for the
Efficiency of CSP-Backtracking
Forward Checking
1) Which variable X should be assigned a value
next?
The current assignment may not lead to any solution,
but the algorithm does not know it yet. Selecting the
g variable X may
y help
p discover the contradiction
right
more quickly
2) In which order should X’s values be assigned?
The current assignment may be part of a solution.
Selecting the right value to assign to X may help
discover this solution more quickly
A simple constraint-propagation technique:
1
2
3
4
5
6
7
8
Assigning the value 5 to X1
l d tto removing
leads
i values
l
f
from
the domains of X2, X3, ..., X8
X1 X2 X3 X4 X5 X6 X7 X8
More on these questions very soon ...
49
Forward Checking in Map Coloring
NT
WA
Forward Checking in Map Coloring
Constraint graph
Q
NSW
SA
50
NT
WA
T
Q
NSW
SA
V
T
V
WA
NT
Q
NSW
V
SA
T
WA
NT
Q
NSW
V
SA
T
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
R
RGB
RGB
RGB
RGB
RGB
RGB
Forward checking removes the value Red of NT and of SA
51
Forward Checking in Map Coloring
NT
WA
52
Forward Checking in Map Coloring
NT
Q
NSW
SA
WA
T
Q
NSW
SA
V
T
V
WA
NT
Q
NSW
V
SA
T
WA
NT
Q
NSW
V
SA
T
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
RGB
R
GB
RGB
RGB
RGB
GB
RGB
R
GB
RGB
RGB
RGB
GB
RGB
R
GB
G
RGB
RGB
GB
RGB
R
B
G
RB
RGB
B
RGB
R
B
G
RB
B
B
RGB
53
54
9
Forward Checking (General Form)
Forward Checking in Map Coloring
Empty set: the current assignment
{(WA Å R), (Q Å G), (V Å B)}
does not lead to a solution
WA
NT
Q
NSW
V
SA
T
RGB
RGB
RGB
RGB
RGB
RGB
RGB
R
GB
RGB
RGB
RGB
GB
RGB
R
B
G
RB
RGB
B
RGB
R
B
G
RB
B
B
RGB
Whenever a pair (XÅv) is added to assignment A do:
For each variable Y not in A do:
For every constraint C relating Y to
the variables in A do:
Remove all values from Y’s domain
that do not satisfy C
55
56
Modified Backtracking
Algorithm
Modified Backtracking
Algorithm
CSP-BACKTRACKING(A, var-domains)
CSP-BACKTRACKING(A, var-domains)
1.
2.
3.
4.
If assignment A is complete then return A
X Å select a variable not in A
D Å select an ordering
g on the domain
m
of
fX
For each value v in D do
a. Add (XÅv) to A
b. var-domains Å forward checking(var-domains, X, v, A)
c. If no variable has an empty domain then
(i) result Å CSP-BACKTRACKING(A, var-domains)
(ii) If result ≠ failure then return result
d. Remove (XÅv) from A
5. Return failure
1.
2.
3.
4.
If assignment A is complete then return A
X Å select a variable not in A
D Å select an ordering
g on the domain
m
of
fX
For each value v in D do
No need any more to
a. Add (XÅv) to A
verify that A is valid
b. var-domains Å forward checking(var-domains, X, v, A)
c. If no variable has an empty domain then
(i) result Å CSP-BACKTRACKING(A, var-domains)
(ii) If result ≠ failure then return result
d. Remove (XÅv) from A
5. Return failure
57
58
Modified Backtracking
Algorithm
Modified Backtracking
Algorithm
CSP-BACKTRACKING(A, var-domains)
CSP-BACKTRACKING(A, var-domains)
1.
2.
3.
4.
If assignment A is complete then return A
X Å select a variable not in A
D Å select an ordering
g on the domain
m
of
fX
For each value v in D do
a. Add (XÅv) to A
b. var-domains Å forward checking(var-domains, X, v, A)
c. If no variable has an empty domain then
(i) result Å CSP-BACKTRACKING(A, var-domains)
(ii) If result ≠ failure then return result
d. Remove (XÅv) from A
5. Return failure
Need to pass down the
updated variable domains
59
1.
2.
3.
4.
If assignment A is complete then return A
X Å select a variable not in A
D Å select an ordering
g on the domain
m
of
fX
For each value v in D do
a. Add (XÅv) to A
b. var-domains Å forward checking(var-domains, X, v, A)
c. If no variable has an empty domain then
(i) result Å CSP-BACKTRACKING(A, var-domains)
(ii) If result ≠ failure then return result
d. Remove (XÅv) from A
5. Return failure
60
10
1) Which variable Xi should be assigned a value
next?
Æ Most-constrained-variable heuristic
Æ Most-constraining-variable heuristic
2) In which order should its values be
assigned?
Æ Least-constraining-value heuristic
Most-Constrained-Variable
Heuristic
1) Which variable Xi should be assigned a value
next?
Select the variable with the smallest
remaining domain
d
[Rationale: Minimize the branching factor]
These heuristics can be quite confusing
Keep in mind that all variables must eventually
get a value, while only one value from a domain
must be assigned to each variable
61
8-Queens
62
8-Queens
Forward checking
Forward checking
New assignment
New assignment
4
3
2 3 4
Numbers
of values for
each un-assigned
variable
3
2
1 3
New numbers
of values for
each un-assigned
variable
63
Most-Constraining-Variable
Heuristic
Map Coloring
NT
WA
1) Which variable Xi should be assigned a value
next?
Q
SA
V
64
NSW
T
ƒ SA’s remaining domain has size 1 (value Blue remaining)
ƒ Q’s remaining domain has size 2
ƒ NSW’s, V’s, and T’s remaining domains have size 3
Æ Select SA
65
Among the variables with the smallest
remaining domains (ties with respect to
the most-constrained-variable heuristic),
select the one that appears in the
largest number of constraints on
variables not in the current assignment
[Rationale: Increase future elimination of
values, to reduce future branching factors] 66
11
Least-Constraining-Value Heuristic
Map Coloring
NT
2) In which order should X’s values be assigned?
Select the value of X that removes the
smallest number of values from the
domains of those variables which are
not in the current assignment
Q
WA
SA
NSW
V
T
ƒ Before any value has been assigned, all
variables have a domain of size 3, but SA is
involved in more constraints (5) than any other
variable
Æ Select SA and assign a value to it (e.g., Blue)
67
[Rationale: Since only one value will eventually
be assigned to X, pick the least-constraining
value first, since it is the most likely not to
lead to an invalid assignment]
[Note: Using this heuristic requires performing a
forward-checking step for every value, not just for 68
the selected value]
Map Coloring
NT
Map Coloring
NT
Q
WA
SA
V
{}
WA
Q
SA
NSW
V
{Blue}
T
ƒ Q’s domain has two remaining values: Blue and Red
ƒ Assigning Blue to Q would leave 0 value for SA, while
assigning Red would leave 1 value
NSW
T
ƒ Q’s domain has two remaining values: Blue and Red
ƒ Assigning Blue to Q would leave 0 value for SA, while
assigning Red would leave 1 value
Æ So, assign Red to Q
69
70
Modified Backtracking
Algorithm
Applications of CSP
ƒ CSP techniques are widely used
ƒ Applications include:
CSP-BACKTRACKING(A, var-domains)
1.
2.
3.
4.
1) Most-constrained-variable heuristic
2) Most-constraining-variable heuristic
3) Least-constraining-value heuristic 5.
If assignment A is complete then return A
X Å select a variable not in A
D Å select an ordering on the domain of X
For each value v in D do
a.
b.
c.
d.
Add (XÅv) to A
var-domains Å forward checking(var-domains, X, v, A)
If no variable has an empty domain then
(i) result Å CSP-BACKTRACKING(A, var-domains)
(ii) If result ≠ failure then return result
Remove (XÅv) from A
Return failure
71
•
•
•
•
•
•
•
Crew assignments to flights
Management of transportation fleet
Flight/rail schedules
Job shop scheduling
Task scheduling in port operations
Design, including spatial layout design
Radiosurgical procedures
72
12
Radiosurgery
Problem
Minimally invasive procedure that uses a
beam of radiation as an ablative surgical
instrument to destroy tumors
Tumor = bad
Critical structures
= good and sensitive
Brain = good
Burn tumor without damaging healthy tissue
73
The CyberKnife
linear accelerator
74
Inputs
robot arm
1) Regions of interest
X-Ray
cameras
75
Inputs
2) Dose constraints
Tumor
Dose to critical
structure
Critical
76
Beam Sampling
Dose to tumor
Falloff of dose
around tumor
Falloff of dose
in critical structure
77
78
13
Case Results
Constraints
ƒ
T
B1
C
B2
B4
B3
2000 < Tumor < 2200
2000
2000
2000
2000
2000
2000
2000
2000
2000
<
<
<
<
<
<
<
<
<
B2
B4
B3
B3
B1
B1
B1
B1
B1
+
<
+
<
+
+
+
<
+
B4 < 2200
2200
B4 < 2200
2200
B3 + B4 < 2200
B4 < 2200
B2 + B4 < 2200
2200
B2 < 2200
ƒ
2000 ≤ Tumor ≤ 2200
2000
2000
2000
2000
2000
2000
2000
2000
2000
≤
≤
≤
≤
≤
≤
≤
≤
≤
B2
B4
B3
B3
B1
B1
B1
B1
B1
+
≤
+
≤
+
+
+
≤
+
B4 ≤ 2200
2200
B4 ≤ 2200
2200
B3 + B4 ≤ 2200
B4 ≤ 2200
B2 + B4 ≤ 2200
2200
B2 ≤ 2200
50% Isodose
Surface
0 ≤ Critical ≤ 500
0 ≤ B2 ≤ 500
80% Isodose
Surface
2000 < Tumor < 2200
2000 < B4
2000 < B3
B1 + B3 + B4 < 2200
B1 + B2 + B4 < 2200
2000 < B1
79
LINAC system
Cyberknife
80
81
14
Download