130 likes | 151 Views
Explore the fundamentals of non-binary constraint processing, including definitions, examples, and properties. Learn about filtering techniques and effectiveness. Recommended reading resources provided.
E N D
FC for Non-Binary CSPs Foundations of Constraint Processing CSCE421/821, Spring 2008: www.cse.unl.edu/~choueiry/S08-421-821/ Berthe Y. Choueiry (Shu-we-ri) Avery Hall, Room 123B choueiry@cse.unl.edu Tel: +1(402)472-5444 nFCi
Recommended reading • (short, preliminary version) On forward checking for non-binary constraint satisfaction, by Christian Bessière, Pedro Meseguer, Eugene C Freuder, Javier Larrosa, CP 1999 • (longer, more complete version) On forward checking for non-binary constraint satisfaction, by Christian Bessière, Pedro Meseguer, Eugene C Freuder, Javier Larrosa, AIJ 2002 nFCi
Non-binary FC • Definitions • Example • Properties nFCi
nFC0 and nFC1 Cc,1: Constraints involving the current variable and exaclty one future variable Cc,1: Set of constraint projections involving the current variable and exactly one future variable nFC0: Apply AC on each constraint in Cc,1 (one pass) nFC1: Apply AC to each constraint in Cc,1 and Cc,1 (one pass) nFCi
nFC2, nFC3, nFC4, nFC5 Cc,f: set of constraints involving the current variable and at least one future variable Cp,f: set of constraints involving at least one past variable and at least one future variable nFC2: Apply AC to each constraint in Cc,f nFC3: Make Cc,f arc-consistent nFC4: Apply AC to each constraint in Cp,f nFC5: Make Cp,f arc-consistent nFCi
Non-binary FC • Definitions • Example • Properties nFCi
Filtering for x a x a, b, c • nFC0 does no filtering • nFC1 applies AC on c1 {x,y}, {x.z}, and and c3 on {x,y} and {x,w}. It removes c from D(y), b from D(w) • nFC2 applies AC on c1, then on c3. Same pruning as nFC1. A different ordering of constraints yields different filtering c1 y a, b, c c3 z a, b, c u a, b, c c2 v a, b, c w a, b, c X a nFCi
Filtering for x a x a, b, c • nFC3 applies AC on {c1,c3}. Same filtering as nfC2, but also, removes b from D(z). • nFC4 applied AC on c1 then c3 (like nFC2). Same filtering as nFC2 because x is the first variable. • nfC5 yields the same filtering as nFC3 because x is the first variable. c1 y a, b, c c3 z a, b, c u a, b, c c2 v a, b, c w a, b, c X a nFCi
Filtering for u a x a, b, c • nFC0 does no filtering • nFC1 applies AC on c1 on {u,v}, {u,w}. It removes c from D(v), c from D(w) • nFC2 applies AC on c2. It removes b and c from D(v) and c from D(w) c1 y a, b, c c3 z a, b, c u a, b, c c2 v a, b, c w a, b, c X a nFCi
Filtering for u a x a, b, c • nFC3 applies AC on {c2}. Same filtering as nFC2 • nFC4 applies AC on c1, c2, then c3. It removes b from D(y) and D(z), b and c from D(v) and c from D(w). • nfC5 does AC on {c1, c2, c3}. It removes b from D(y), c from D(z), b and c from D(v), and c from D(w) c1 y a, b, c c3 z a, b, c u a, b, c c2 v a, b, c w a, b, c u a nFCi
Non-binary FC • Definitions • Example • Properties nFCi
Filtering effectiveness Let (nFCi, k) be the set of (x,a) where a is removed from D(x) • (nFC0,k) (nFC1,k) (nFC2,k) • (nFC2,k) (nFC3,k) (nFC5,k) • (nFC2,k) (nFC4,k) (nFC5,k) nFCi
Nodes visited by nFCi • nodes(nFC2,k) nodes(nFC1,k) nodes(nFC0,k) • nodes(nFC5k) nodes(nFC3,k) nodes(nFC2,k) • nodes(nFC5,k) nodes(nFC4,k) nodes(nFC2,k) • nFC1 visits exactly the same nodes as FC+ on the hidden variable representation nFCi