Lookahead Schemas

advertisement
Lookahead Schemas
Foundations of Constraint Processing
CSCE496/896, Fall 2011
www.cse.unl.edu/~choueiry/F12-421-821/
All questions to Piazza
Berthe Y. Choueiry (Shu-we-ri)
Avery Hall, Room 360
Tel: +1(402)472-5444
Problem Solving with Constraints
Lookahead Schemas
1
Outline
• Looking ahead Schemas
– Forward checking (FC)
– Directional Arc Consistency (DAC)
– Maintaining Arc Consistency (a.k.a. full arcconsistency)
Problem Solving with Constraints
Lookahead Schemas
2
Looking ahead
• Rationale:
– As decisions are made (conditioning),
• Revise the domain of future variables to propagate the
effects of decisions
• i.e., eliminate inconsistent choices in future sub-problem
– Domain annihilation of a future variable avoids
expansion of useless portions of the tree
• Techniques
– Partial: forward-checking (FC), directional arcconsistency (DAC)
– Full: Maintaining arc-consistency (MAC)
– Use: Revise(Vf, Vc), Vf future variable, Vc current
variable
Problem Solving with Constraints
Lookahead Schemas
3
Revise the domain of Vi
• Revising the domain of Vi given a
constraint CVi,Vj on Vi (i.e., Vi  Scope(C))
• General notation: Revise(Vi,CVi,Vj)
• In a binary CSP:
Revise(Vi,CVi,Vj)=Revise(Vi, Vj)
Problem Solving with Constraints
Lookahead Schemas
4
Revise(Vi, Vj)
NOTE: only DVi may be updated
Revise(Vi, Vj)
1.
revised  nil
2.
 x  DVi
3.
found  nil
4.
 y  DVj
5.
If Check((Vi,x),(Vj,y)) Then Begin
6.
found  t
7.
Break
8.
End
9.
If found=nil Then Begin
10.
revised  t
11.
DVi  DVi \ {x}
12.
End
13. Return (revised)
Problem Solving with Constraints
Lookahead Schemas
5
Revise(Vi, Vj)
Revise(Vi, Vj)
1.
2.
3.
4.
5.
6.
7.
revised  nil
 x  Dvi
 y  DVj
If Check((Vi,x),(Vj,y)) Then Break()
revised  t
DVi  DVi \ {x}
Return (revised)
Simpler, equivalent code but not as obvious as the previous one
Problem Solving with Constraints
Lookahead Schemas
6
Domain filtering in lookahead
• Vc current variable
• Vf future variable
• {Vf} all future variables
• Revise(Vf, Vc)
• FC(Vc):
1.  Vf  {Vf} connected to Vc
2.
Revise(Vf,Vc)
3.
If DVf ={} then return(nil)
Problem Solving with Constraints
Lookahead Schemas
7
Directional Arc Consistency
• Choose an ordering d, stick to it
• After instantiating a variable at level i, do
the following
1. For k from i to (n-1) in the ordering d Do
2.
If FC(Vk)=nil then Return(nil)
Problem Solving with Constraints
Lookahead Schemas
8
Maintaining Arc Consistency
• First, FC(Vc),
• If it does not fail, then, form a queue with all constraints (Vi,Vj) and
(Vj,Vi) between future variables, and run AC
AC-1
1. Q  {(Vi,Vj),(Vj,Vi), …, (Vk,Vm), (Vm,VK)}
2. Change  true
3. While Change Do
4.
Change  false
5.
For all (Va,Vb) in Q Do
6.
If Revise(Va,Vb)
7.
Then If Dom(Va) =
8.
Then Return (nil)
9.
Else Change  true
Problem Solving with Constraints
Lookahead Schemas
9
Look-ahead techniques:
• FC:
• DAC:
–
FC, DAC, MAC
FC(Vc)
FC(Vc);
While not failure: For the next Vf in the ordering d, FC(Vf)
assumes a fixed variable ordering d
• MAC:
FC(Vc); AC({Vf})
FC(Vc);
Repeat until quiescence or failure
 Vf1,Vf2  {Vf}, Revise(Vf1,Vf2)
–
does more pruning (search may visit fewer nodes) at the
cost of more consistency checks
Problem Solving with Constraints
Lookahead Schemas
10
Terminology overload alert: FC
• FC is used to denote any of the following:
– a partial look-ahead schema
– a specific chronological backtrack search
algorithm that uses the partial look-ahead
schema
• Meaning is inferred from context
• Not a healthy situation, but a fact of reality
• Advice: state upfront the meaning of your terms
and stick to them throughout your paper
Problem Solving with Constraints
Lookahead Schemas
11
(BT Search +) MAC vs. FC
• Reference: [Sabin & Freuder, ECAI94], [Bessière & Régin,
CP97], [Sabin & Freuder, CP97], [Gent & Prosser, APES-20-2000],
[Experiments by Lin XU, 2001], [Yang, MS thesis 2003]
• Results: (sketchy)
Low tightness
High tightness
Low density (sparse)
FC
MAC
High density (dense)
FC
FC
Note: Results depend on
• Variable ordering (static vs. dynamic)
• Problem difficulty (positive relative to crossover point)
Problem Solving with Constraints
Lookahead Schemas
12
Download