Problem Solving With Constraints CSCE421/821, Spring 2011 cse.unl/~ choueiry/F11-496-896
Foundations of Constraint Processing CSCE421/821, Spring 2011
-
Upload
herman-stout -
Category
Documents
-
view
36 -
download
1
description
Transcript of Foundations of Constraint Processing CSCE421/821, Spring 2011
Foundations of Constraint Processing
Lookahead Schemas 1
Foundations of Constraint Processing
CSCE421/821, Spring 2011
www.cse.unl.edu/~choueiry/S11-421-821/
All questions to [email protected]
Berthe Y. Choueiry (Shu-we-ri)
Avery Hall, Room 360
Tel: +1(402)472-5444
Lookahead Schemas
Foundations of Constraint Processing
Lookahead Schemas 2
Outline
• Looking ahead Schemas– Forward checking (FC)– Directional Arc Consistency (DAC)– Maintaining Arc Consistency (a.k.a. full arc-
consistency)
Foundations of Constraint Processing
Lookahead Schemas 3
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 arc-
consistency (DAC)– Full: Maintaining arc-consistency (MAC)– Use: Revise(Vf, Vc), Vf future variable, Vc current
variable
Foundations of Constraint Processing
Lookahead Schemas 4
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 5
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. Break8. 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 6
Revise(Vi, Vj) Revise(Vi, Vj)
– 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 7
Domain filtering in lookahead
• Vc current variable
• Vf future variable
• {Vf} all future variables
• Revise(Vf, Vc)
• FC(Vc):
– Vf {Vf} connected to Vc
– Revise(Vf,Vc)
– If DVf ={} then return(nil)
Foundations of Constraint Processing
Lookahead Schemas
Directional Arc Consistency
• Choose an ordering d, stick to it
• After instantiating a variable at level i, do the following– For k from i to (n-1) in the ordering d Do
– If FC(Vk)=nil then Return(nil)
8
Foundations of Constraint Processing
Lookahead Schemas
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• Q {(Vi,Vj),(Vj,Vi), …, (Vk,Vm), (Vm,VK)}
• Change true• While Change Do• Change false
• For all (Va,Vb) in Q Do
• If Revise(Va,Vb)
• Then If Dom(Va) =
• Then Return (nil) • Else Change true
9
Foundations of Constraint Processing
Lookahead Schemas 10
• FC:
• DAC:
– assumes a fixed variable ordering d
• MAC:
– does more pruning (search may visit fewer nodes) at the cost of more consistency checks
Look-ahead techniques: FC, DAC, MAC
FC(Vc); While not failure: For the next Vf in the ordering d, FC(Vf)
FC(Vc); AC({Vf})
FC(Vc)
FC(Vc);
Repeat until quiescence or failure
Vf1,Vf2 {Vf}, Revise(Vf1,Vf2)
Foundations of Constraint Processing
Lookahead Schemas 11
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
Foundations of Constraint Processing
Lookahead Schemas 12
(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)