Title: Foundations of Constraint Processing
1Lookahead Schemas
-
- Foundations of Constraint Processing
- CSCE421/821, Spring 2011
-
- www.cse.unl.edu/choueiry/S11-421-821/
- All questions to cse421_at_cse.unl.edu
- Berthe Y. Choueiry (Shu-we-ri)
- Avery Hall, Room 360
- choueiry_at_cse.unl.edu
- Tel 1(402)472-5444
2Outline
- Looking ahead Schemas
- Forward checking (FC)
- Directional Arc Consistency (DAC)
- Maintaining Arc Consistency (a.k.a. full
arc-consistency)
3Looking 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
4Revise 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)
5Revise(Vi, Vj) NOTE only DVi may be
updated
- Revise(Vi, Vj)
- revised ? nil
- ? x ? DVi
- found ? nil
- ? y ? DVj
- If Check((Vi,x),(Vj,y)) Then
Begin -
found ? t -
Break -
End - If foundnil Then Begin
- revised ? t
- DVi ? DVi \
x - End
- Return (revised)
6Revise(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
7Domain 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)
8Directional 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)
9Maintaining 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
10Look-ahead techniques FC, DAC, MAC
- FC
- DAC
- assumes a fixed variable ordering d
- MAC
- does more pruning (search may visit fewer nodes)
at the cost of more consistency checks
FC(Vc)
FC(Vc) While not failure For the next Vf in
the ordering d, FC(Vf)
FC(Vc) AC(Vf)
FC(Vc) Repeat until quiescence or failure
? Vf1,Vf2 ? Vf, Revise(Vf1,Vf2)
11Terminology 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
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)