From constraints to finite automata to filtering algorithms
This presentation is the property of its rightful owner.
Sponsored Links
1 / 58

From Constraints to Finite Automata to Filtering Algorithms PowerPoint PPT Presentation


  • 42 Views
  • Uploaded on
  • Presentation posted in: General

From Constraints to Finite Automata to Filtering Algorithms. Mats Carlsson, SICS Nicolas Beldiceanu, EMN [email protected] [email protected] Outline. Constraint Propagation: Example & Model Constraints and Key Notions Case Study: X  lex Y Definition and signature Finite automaton

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


From constraints to finite automata to filtering algorithms

From Constraintsto Finite Automatato Filtering Algorithms

Mats Carlsson, SICS

Nicolas Beldiceanu, EMN

[email protected]

[email protected]


Outline

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

    Example

    x + y = 92x + 4y = 24

    ESOP, March 29, 2004


    Example1

    Example

    x + y = 92x + 4y = 24

    ESOP, March 29, 2004


    Example2

    Example

    x + y = 92x + 4y = 24

    ESOP, March 29, 2004


    Example3

    Example

    x + y = 92x + 4y = 24

    ESOP, March 29, 2004


    Example4

    Example

    x + y = 92x + 4y = 24

    ESOP, March 29, 2004


    Example5

    Example

    x + y = 92x + 4y = 24

    ESOP, March 29, 2004


    Example6

    Example

    x + y = 92x + 4y = 24

    ESOP, March 29, 2004


    Constraint propagation

    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

    • Propagator p is a procedure (coroutine)

      • implements constraintcon(p)

        its semantics (set of tuples)

      • computes on set of variablesvar(p)

  • Execution of propagator p

    • filters domains of variables in var(p)

    • signals failure

    • signals entailment

  • ESOP, March 29, 2004


    Propagators are intensional

    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

    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

    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

    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


    Outline1

    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

    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


    Support and consistency

    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

    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

    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

    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

    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


    Outline2

    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

    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

    Signature: X lex Y

    ESOP, March 29, 2004


    Signature example x lex y

    Signature example: X lex Y

    ESOP, March 29, 2004


    Poset of signature letters

    Poset of signature letters

    ?

    <

    =

    >

    E.g., a  becomes a < or a = in a ground store.

    ESOP, March 29, 2004


    Outline3

    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

    Finite Automaton for X lex Y

    T1

    T3

    T2

    $

    $

    $

    

    

    

    1

    2

    3

    4

    

    

    $

    F1

    D1

    D3

    D2

    ESOP, March 29, 2004


    Success state t1

    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

    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

    Success State T3

    T3

    $

    $

    

    

    1

    2

    3

    q

    

    Only enforce xqyq , for < can appear in a later position.

    ESOP, March 29, 2004


    Delay states

    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


    Outline4

    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

    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

    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

    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

    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

    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 y1

    Finite Automaton for X <lex Y

    T1

    T3

    T2

    

    

    

    1

    2

    3

    4

    

    $

    $

    $

    $

    F1

    D1

    D3

    D2

    ESOP, March 29, 2004


    Outline5

    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 x 0 x m 1

    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

    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


    Signature between a x b

    Signature:between(A,X,B)

    ESOP, March 29, 2004


    Signature example between a x b

    Signature example: between(A,X,B)

    ESOP, March 29, 2004


    Outline6

    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

    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

    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


    Success state t2 between a x b

    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


    Outline7

    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


    Feasible upper bound problem

    Feasible Upper Bound:Problem

    • Given X and B, compute the lexicographically largest U such that:

      U lex B i[0,n) : ui  D(xi)

    • Similarly for feasible lowest bound

    ESOP, March 29, 2004


    Feasible upper bound algorithm

    Feasible Upper Bound:Algorithm

    • Compute  as the smallest i such that

      U[0,i)B[0,i)

    • Compute:

      • ui = bi, if i < 

      • ui = prev(xi,bi), if i = 

      • ui = max(xi), if i > 

    • Similarly for feasible lowest bound

    ESOP, March 29, 2004


    Filtering lex chain x 0 x m 1

    Filtering:lex_chain(X0,…,Xm-1)

    • Compute feasible upper bound Bi for Xi from i=m-1 down to i=0.

    • Compute feasible lower bound Ai for Xi from i=0 to i=m-1.

    • Enforce AilexXilex Bi for all i.

      Arc-consistency in O(nmd) time.

    ESOP, March 29, 2004


    Outline8

    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


    Results

    Results

    • An approach to designing filtering algorithms by derivation from FAs on constraint signatures

    • Case studies and hyperarc consistency algorithms for two constraints:

      • X lex Y, running in amortized O(1) time per propagation event

      • lex_chain(X0,…,Xm-1), running in O(nmd) time per invocation

    ESOP, March 29, 2004


    Future work

    Future Work

    • What constraints are amenable to the approach?

    • Where does the alphabet come from?

    • Where does the automaton come from?

    • Where do the pruning rules come from?

    • How do we make the algorithms incremental?

    ESOP, March 29, 2004


    References and proofs

    References and proofs

    • SICS T2002-17:Revisiting the Lexicographic Ordering Constraint, Mats Carlsson, Nicolas Beldiceanu.

    • SICS T2002-18:Arc-Consistency for a Chain of Lexicographic Ordering Constraints, Mats Carlsson, Nicolas Beldiceanu.

    • http://www.sics.se/libindex.html

    ESOP, March 29, 2004


    Related work

    Related Work

    • Global constraints for lexicographic orderings. A. Frisch, B. Hnich, Z. Kızıltan, I. Miguel, T. Walsh. Proc. CP’2002. LNCS 2470, pp. 93-108, Springer, 2002.

    ESOP, March 29, 2004


  • Login