Lookahead Schemas (PPT)

Download Report

Transcript Lookahead Schemas (PPT)

Lookahead Schemas
Foundations of Constraint Processing
CSCE421/821, Fall 2015
www.cse.unl.edu/~choueiry/F15-421-821/
All questions to Piazza
Berthe Y. Choueiry (Shu-we-ri)
Avery Hall, Room 360
Tel: +1(402)472-5444
Foundations of Constraint Processing
Lookahead Schemas
1
Outline: Lookahead Schemas
• Forward checking (FC)
• Directional Arc Consistency (DAC)
• Maintaining Arc Consistency (a.k.a. full
arc-consistency)
Foundations of Constraint Processing
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), Real Full
Lookahead (RFL)
– Use: Revise(Vf, Vc), Vf future variable, Vc current
variable
Foundations of Constraint Processing
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)
Foundations of Constraint Processing
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)
Foundations of Constraint Processing
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
Foundations of Constraint Processing
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)
Foundations of Constraint Processing
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)
Foundations of Constraint Processing
Lookahead Schemas
8
Real Full Lookahead (RFL)
• 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
Foundations of Constraint Processing
Lookahead Schemas
9
Look-ahead techniques:
• FC:
• DAC:
–
FC, DAC, RFL
FC(Vc)
FC(Vc);
While not failure: For the next Vf in the ordering d, FC(Vf)
assumes a fixed variable ordering d
• RFL:
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
Foundations of Constraint Processing
Lookahead Schemas
10
Terminology overload alert: FC
• FC is used to denote one 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
Foundations of Constraint Processing
Lookahead Schemas
11
(BT Search +) RFL 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
RFL
High density (dense)
FC
FC
Note: Results depend on
• Variable ordering (static vs. dynamic)
• Problem difficulty (positive relative to crossover point)
Foundations of Constraint Processing
Lookahead Schemas
12
Alert: Terminology
• Distinguish between
– Real Full Lookahead (RFL)
– Maintaining Arc Consistency (MAC)
• MAC assumes binary branching
Foundations of Constraint Processing
Lookahead Schemas
13