580 likes | 710 Views
From Constraints to Finite Automata to Filtering Algorithms. Mats Carlsson, SICS Nicolas Beldiceanu, EMN matsc@sics.se Nicolas.Beldiceanu@emn.fr. Outline. Constraint Propagation: Example & Model Constraints and Key Notions Case Study: X lex Y Definition and signature Finite automaton
E N D
From Constraintsto Finite Automatato Filtering Algorithms Mats Carlsson, SICS Nicolas Beldiceanu, EMN matsc@sics.se Nicolas.Beldiceanu@emn.fr
Outline • Constraint Propagation: Example & Model • Constraints and Key Notions • Case Study: X lex Y • Definition and signature • Finite automaton • Filtering algorithm • Case Study: lex_chain(X0,…,Xm-1) • Definition and signature • Finite automaton • Filtering algorithm • Conclusion ESOP, March 29, 2004
Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004
Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004
Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004
Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004
Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004
Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004
Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004
Constraint Propagation • Variables • feature variable domain (finite set of integers) • Propagators • implement constraints • Propagation loop • execute propagators until simultaneous fixpoint ESOP, March 29, 2004
Propagator • Propagator p is a procedure (coroutine) • implements constraint con(p) its semantics (set of tuples) • computes on set of variables var(p) • Execution of propagator p • filters domains of variables in var(p) • signals failure • signals entailment ESOP, March 29, 2004
Propagators Are Intensional • Propagators implement filtering • aka: narrowing, domain reduction, value removal • No extensional representation of con(p) • impractical in most cases (space) • Extensional representation of constraint • can be provided by special propagator • often: “element” constraint, “relation” constraint, … ESOP, March 29, 2004
Propagation Events • Normally, a propagator p is resumed whenever some value in a domain of var(p) has been removed. • In some cases, some events (e.g. removing internal values) are irrelevant whilst other (bounds adjustments) are relevant. ESOP, March 29, 2004
Idempotent Propagators • A propagator is idempotent if it always computes a fixpoint. • Most constraint programming systems can accommodate both idempotent and non-idempotent propagators. ESOP, March 29, 2004
Implementing Propagators • Implementation uses operations on variables • reading domain information • filtering domains (removing values) • Variables are the only communication channels between propagators • Algorithms for • Domain filtering • Failure detection • Entailment detection ESOP, March 29, 2004
Outline • Constraint Propagation: Example & Model • Constraints and Key Notions • Case Study: X lex Y • Definition and signature • Finite automaton • Filtering algorithm • Case Study: lex_chain(X0,…,Xm-1) • Definition and signature • Finite automaton • Filtering algorithm • Conclusion ESOP, March 29, 2004
Classes of Constraints • Basic constraints • Constraints for which the solver is complete • x D, x = v, x = y (variable aliasing) • Primitive constraints (need propagators) • Non-decomposable constraints • x<y, xy, x+y = z, x*y = z, … • Global constraints (need propagators) • Subsume a set of basic or primitive constraints, usually providing stronger consistency ESOP, March 29, 2004
Support and Consistency • Given: constraint C, variable x var(C), its domain D(x), integer v. • x=vhas support for Ciff • v D(x) • C has a solution such that x=v • Cis hyperarc consistent iff • x var(C) v D(x) x=v has support for C • Maintaining hyperarc consistency may not be possible with polynomial algorithms (e.g. diophantine equations) ESOP, March 29, 2004
Entailment • A constraint con(p) is entailed if it holds for any combination of values in the current domains. • Consequences for its propagator p: • It has no more work to do • It should not be resumed any more (up to backtracking) • It is usually reponsible for detecting entailment ESOP, March 29, 2004
Failure • A constraint con(p) is false if it does not hold for any combination of values in the current domains. • Consequences for its propagator p: • It should signal inconsistency, e.g. by instigating backtracking • It is reponsible for detecting failure ESOP, March 29, 2004
Notation • Vectors and subvectors • X = (x0,…,xn-1) • X[0,r) = (x0,…,xr-1), r n • Domain variables • D(x), the domain of x (set of integers) • min(x), lower bound of x, O(1) • max(x), upper bound of x, O(1) • prev(x,b) = max{y D(x) | y<b}, O(d) • next(x,b) = min{y D(x) | y>b}, O(d) ESOP, March 29, 2004
Constraint Signatures • The constraint store is the set of all domains D(x) • For alphabet A, constraint C, constraint store G, let S(C,G,A) be the signature of C wrt. G and A. • The filtering algorithm is derived from a finite automaton for signatures. ESOP, March 29, 2004
Outline • Constraint Propagation: Example & Model • Constraints and Key Notions • Case Study: X lex Y • Definition and signature • Finite automaton • Filtering algorithm • Case Study: lex_chain(X0,…,Xm-1) • Definition and signature • Finite automaton • Filtering algorithm • Conclusion ESOP, March 29, 2004
Definition:X lex Y • Let: • X = (x0,…,xn-1) • Y = (y0,…,yn-1) • xi, yi domain variables or integers • X lex Y holds iff • n=0, or • x0<y0, or • x0=y0 (x1,…,xn-1) lex(y1,…,yn-1). ESOP, March 29, 2004
Signature: X lex Y ESOP, March 29, 2004
Signature example: X lex Y ESOP, March 29, 2004
Poset of signature letters ? < = > E.g., a becomes a < or a = in a ground store. ESOP, March 29, 2004
Outline • Constraint Propagation: Example & Model • Constraints and Key Notions • Case Study: X lex Y • Definition and signature • Finite automaton • Filtering algorithm • Case Study: lex_chain(X0,…,Xm-1) • Definition and signature • Finite automaton • Filtering algorithm • Conclusion ESOP, March 29, 2004
Finite Automaton for X lex Y T1 T3 T2 $ $ $ 1 2 3 4 $ F1 D1 D3 D2 ESOP, March 29, 2004
Success State T1 T1 $ 1 Enforce xi=yi in the leading prefix for C to hold. Afterwards, the leading prefix is ground and equal. ESOP, March 29, 2004
Success State T2 T2 < 1 2 4 q Enforce xq<yq in order for there to be at least one < preceding the first >. ESOP, March 29, 2004
Success State T3 T3 $ $ 1 2 3 q Only enforce xqyq , for < can appear in a later position. ESOP, March 29, 2004
Delay States T1 T3 T2 $ $ $ 1 2 3 4 q $ D1 D3 D2 Not yet enough information to know what to do at position q. ESOP, March 29, 2004
Outline • Constraint Propagation: Example & Model • Constraints and Key Notions • Case Study: X lex Y • Definition and signature • Finite automaton • Filtering algorithm • Case Study: lex_chain(X0,…,Xm-1) • Definition and signature • Finite automaton • Filtering algorithm • Conclusion ESOP, March 29, 2004
Filtering Algorithms • Non-incremental, O(n) • Run finite automaton from scratch • Consider all letters from scratch • Incremental, amortized O(1) • Deal with one letter change at a time • Needs to know what letter has changed, in what state ESOP, March 29, 2004
Incremental Restart 1 T1 T3 T2 $ $ $ 1 2 3 4 $ F1 D1 D3 D2 Resume in state 1. ESOP, March 29, 2004
Incremental Restart 2 T1 T3 T2 $ $ $ 1 2 3 4 $ F1 D1 D3 D2 Resume in state 2. ESOP, March 29, 2004
Incremental Restart 3 T1 T3 T2 $ $ $ 1 2 3 4 $ F1 D1 D3 D2 Resume in state 3 or 4, resp. ESOP, March 29, 2004
Incremental Restart 4 T1 T3 T2 $ $ $ 1 2 3 4 $ F1 D1 D3 D2 If changed to =, no-op. Otherwise, resume in state 3 or 4, resp. ESOP, March 29, 2004
Finite Automaton for X <lex Y T1 T3 T2 1 2 3 4 $ $ $ $ F1 D1 D3 D2 ESOP, March 29, 2004
Outline • Constraint Propagation: Example & Model • Constraints and Key Notions • Case Study: X lex Y • Definition and signature • Finite automaton • Filtering algorithm • Case Study: lex_chain(X0,…,Xm-1) • Definition and signature • Finite automaton • Filtering algorithm • Conclusion ESOP, March 29, 2004
Definition:lex_chain(X0,…,Xm-1) • Let: • Xi = (xi0,…,xin-1) • xij domain variables or integers • lex_chain(X0,…,Xm-1) holds iff X0 lex… lexXm-1 ESOP, March 29, 2004
Internal constraint:between(A,X,B) • Preconditions: • A = (a0,…,an-1), B = (b0,…,bn-1) • X = (x0,…,xn-1) • ai,bi integers; xi domain variables • i[0,n) : ai D(xi), bi D(xi) • Holds iff: Alex X lexB ESOP, March 29, 2004
Signature:between(A,X,B) ESOP, March 29, 2004
Signature example: between(A,X,B) ESOP, March 29, 2004
Outline • Constraint Propagation: Example & Model • Constraints and Key Notions • Case Study: X lex Y • Definition and signature • Finite automaton • Filtering algorithm • Case Study: lex_chain(X0,…,Xm-1) • Definition and signature • Finite automaton • Filtering algorithm • Conclusion ESOP, March 29, 2004
Finite Automaton:between(A,X,B) State 1 denotes a prefix in which ai=bi. Hence we must enforce xi=ai=bi there. T1 T2 «$ <«»#$ < 1 2 =# >= >» F1 ESOP, March 29, 2004
Success State T1:between(A,X,B) Either q=n or xq=v has support for all aqvbq. Hence we enforce aqxqbq. T1 «$ q 1 =# ESOP, March 29, 2004
Success State T2:between(A,X,B) We have: X[0,r)=A[0,r)X[0,r)=B[0,r) Hence we enforce: aixibi for i[0,r). T2 <«»#$ r < 1 2 =# >= Either r=n or xr=v has support for all vbr var. Hence we enforce: xrbr xrar. ESOP, March 29, 2004
Outline • Constraint Propagation: Example & Model • Constraints and Key Notions • Case Study: X lex Y • Definition and signature • Finite automaton • Filtering algorithm • Case Study: lex_chain(X0,…,Xm-1) • Definition and signature • Finite automaton • Filtering algorithm • Conclusion ESOP, March 29, 2004