Presentation is loading. Please wait.

Presentation is loading. Please wait.

Foundations of Constraint Processing All questions to Piazza

Similar presentations


Presentation on theme: "Foundations of Constraint Processing All questions to Piazza"— Presentation transcript:

1 Foundations of Constraint Processing All questions to Piazza
Lookahead Schemas Foundations of Constraint Processing CSCE421/821, Spring 2019 All questions to Piazza Berthe Y. Choueiry (Shu-we-ri) Avery Hall, Room 360 Tel: +1(402)

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

3 Looking ahead: Rationale
As decisions are made (conditioning) Revise the domain of future variables to propagate the effects of decisions (instantiations) i.e., eliminate inconsistent choices in future sub-problem Domain annihilation of a future variable avoids expansion of useless portions of the tree

4 Looking ahead: Techniques
Partial forward-checking (FC) directional arc-consistency (DAC) Full Maintaining arc-consistency (MAC) a.k.a. Real Full Lookahead (RFL) Initialize the queue with the set of (Vf,Vc) Revise(Vf,Vc), Vf future variable, Vc current variable

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

6 Revise(Vi, Vj) NOTE: only DVi may be updated
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 break false

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)= false then break false

9 Real Full Lookahead (RFL)
AC-3 Set Q  {(Vf,Vc) | Vc is the current variable, Vf ∈ Neigh(Vf )} Run AC-3(Q) AC-1 does too many checks First revise all the tuples in {(Vf,Vc)} Then, call AC-1 ({(Vi,Vj), Vi,Vj are future variables}})

10 Look-ahead techniques: FC, DAC, RFL
assumes a fixed variable ordering d RFL: 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-3({Vf}) FC(Vc); Repeat until quiescence or failure  Vf1,Vf2  {Vf}, Revise(Vf1,Vf2)

11 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

12 (BT Search +) RFL 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 RFL High density (dense) Note: Results depend on Variable ordering (static vs. dynamic) Problem difficulty (positive relative to crossover point)

13 Alert: Terminology Distinguish between MAC assumes binary branching
Real Full Lookahead (RFL) Maintaining Arc Consistency (MAC) MAC assumes binary branching


Download ppt "Foundations of Constraint Processing All questions to Piazza"

Similar presentations


Ads by Google