Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lookahead Schemas Foundations of Constraint Processing

Similar presentations


Presentation on theme: "Lookahead Schemas Foundations of Constraint Processing"— Presentation transcript:

1 Lookahead Schemas Foundations of Constraint Processing
CSCE496/896, Fall 2011 All questions to Berthe Y. Choueiry (Shu-we-ri) Avery Hall, Room 360 Tel: +1(402)

2 Outline Looking ahead Schemas Forward checking (FC)
Directional Arc Consistency (DAC) Maintaining Arc Consistency (a.k.a. full arc-consistency)

3 Looking ahead Rationale: Techniques
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

4 Revise(Vi,CVi,Vj)=Revise(Vi, Vj)
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)

5 Revise(Vi, Vj) NOTE: only DVi may be updated
revised  nil  x  DVi found  nil  y  DVj If Check((Vi,x),(Vj,y)) Then Begin found  t Break End If found=nil Then Begin revised  t DVi  DVi \ {x} Return (revised)

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

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)

8 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)

9 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

10 Look-ahead techniques: FC, DAC, MAC
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)

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

12 (BT Search +) MAC vs. FC Reference: [Sabin & Freuder, ECAI94], [Bessière & Régin, CP97], [Sabin & Freuder, CP97], [Gent & Prosser, APES ], [Experiments by Lin XU, 2001], [Yang, MS thesis 2003] Results: (sketchy) Low tightness High tightness Low density (sparse) FC MAC High density (dense) Note: Results depend on Variable ordering (static vs. dynamic) Problem difficulty (positive relative to crossover point)


Download ppt "Lookahead Schemas Foundations of Constraint Processing"

Similar presentations


Ads by Google