1 / 58

From Constraints to Finite Automata to Filtering Algorithms

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

Télécharger la présentation

From Constraints to Finite Automata to Filtering Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. From Constraintsto Finite Automatato Filtering Algorithms Mats Carlsson, SICS Nicolas Beldiceanu, EMN matsc@sics.se Nicolas.Beldiceanu@emn.fr

  2. 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

  3. Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004

  4. Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004

  5. Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004

  6. Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004

  7. Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004

  8. Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004

  9. Example x + y = 9 2x + 4y = 24 ESOP, March 29, 2004

  10. Constraint Propagation • Variables • feature variable domain (finite set of integers) • Propagators • implement constraints • Propagation loop • execute propagators until simultaneous fixpoint ESOP, March 29, 2004

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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, xy, 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. Signature: X lex Y ESOP, March 29, 2004

  26. Signature example: X lex Y ESOP, March 29, 2004

  27. Poset of signature letters ?   < = > E.g., a  becomes a < or a = in a ground store. ESOP, March 29, 2004

  28. 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

  29. Finite Automaton for X lex Y T1 T3 T2 $ $ $       1 2 3 4       $ F1 D1 D3 D2 ESOP, March 29, 2004

  30. 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

  31. 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

  32. Success State T3 T3 $ $    1 2 3 q   Only enforce xqyq , for < can appear in a later position. ESOP, March 29, 2004

  33. 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

  34. 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

  35. 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

  36. Incremental Restart 1 T1 T3 T2 $ $ $       1 2 3 4       $ F1 D1 D3 D2 Resume in state 1. ESOP, March 29, 2004

  37. Incremental Restart 2 T1 T3 T2 $ $ $       1 2 3 4       $ F1 D1 D3 D2 Resume in state 2. ESOP, March 29, 2004

  38. 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

  39. 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

  40. Finite Automaton for X <lex Y T1 T3 T2          1 2 3 4    $ $ $ $ F1 D1 D3 D2 ESOP, March 29, 2004

  41. 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

  42. 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

  43. 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: Alex X lexB ESOP, March 29, 2004

  44. Signature:between(A,X,B) ESOP, March 29, 2004

  45. Signature example: between(A,X,B) ESOP, March 29, 2004

  46. 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

  47. 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

  48. Success State T1:between(A,X,B) Either q=n or xq=v has support for all aqvbq. Hence we enforce aqxqbq. T1 «$ q 1 =# ESOP, March 29, 2004

  49. Success State T2:between(A,X,B) We have: X[0,r)=A[0,r)X[0,r)=B[0,r) Hence we enforce: aixibi for i[0,r). T2 <«»#$ r < 1 2 =# >= Either r=n or xr=v has support for all vbr var. Hence we enforce: xrbr xrar. ESOP, March 29, 2004

  50. 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

More Related