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