580 likes | 702 Views
This paper by Mats Carlsson and Nicolas Beldiceanu explores the intricate relationship between constraint propagation and finite automata. It discusses fundamental concepts and key notions, providing a case study on X ≤ lex Y and the associated definitions, signatures, and filtering algorithms. Additionally, it presents a detailed examination of concepts such as propagators, entailment, and failure detection. By examining the implementation of filtering algorithms, the paper sheds light on the efficiency and effectiveness of constraint programming, ultimately contributing to advancements in automation and computational theory.
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