From constraints to finite automata to filtering algorithms
Download
1 / 58

From Constraints to Finite Automata to Filtering Algorithms - PowerPoint PPT Presentation


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

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha

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

matsc@sics.se

Nicolas.Beldiceanu@emn.fr


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


    ad
  • Login