1 / 58

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

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

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

## PowerPoint Slideshow about ' From Constraints to Finite Automata to Filtering Algorithms' - mira-whitehead

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 Constraintsto Finite Automatato Filtering Algorithms

Mats Carlsson, SICS

Nicolas Beldiceanu, EMN

• 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

x + y = 9 2x + 4y = 24

ESOP, March 29, 2004

x + y = 9 2x + 4y = 24

ESOP, March 29, 2004

x + y = 9 2x + 4y = 24

ESOP, March 29, 2004

x + y = 9 2x + 4y = 24

ESOP, March 29, 2004

x + y = 9 2x + 4y = 24

ESOP, March 29, 2004

x + y = 9 2x + 4y = 24

ESOP, March 29, 2004

x + y = 9 2x + 4y = 24

ESOP, March 29, 2004

• Variables

• feature variable domain (finite set of integers)

• Propagators

• implement constraints

• Propagation loop

• execute propagators until simultaneous fixpoint

• ESOP, March 29, 2004

• 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 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

• 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

• 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

• Implementation uses operations on variables

• filtering domains (removing values)

• Variables are the only communication channels between propagators

• Algorithms for

• Domain filtering

• Failure detection

• Entailment detection

• ESOP, March 29, 2004

• 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

• 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

• 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

• 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

• 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

• 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

• 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

• 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

?

<

=

>

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

ESOP, March 29, 2004

• 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

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

T2



<

1

2

4

q



Enforce xq<yq in order for there to be at least one <

preceding the first >.

ESOP, March 29, 2004

T3

\$

\$





1

2

3

q



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

ESOP, March 29, 2004

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

• 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

• 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

T1

T3

T2

\$

\$

\$







1

2

3

4





\$

F1

D1

D3

D2

Resume in state 1.

ESOP, March 29, 2004

T1

T3

T2

\$

\$

\$







1

2

3

4





\$

F1

D1

D3

D2

Resume in state 2.

ESOP, March 29, 2004

T1

T3

T2

\$

\$

\$







1

2

3

4





\$

F1

D1

D3

D2

Resume in state 3 or 4, resp.

ESOP, March 29, 2004

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

T1

T3

T2







1

2

3

4



\$

\$

\$

\$

F1

D1

D3

D2

ESOP, March 29, 2004

• 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:

Alex X lexB

ESOP, March 29, 2004

Signature:between(A,X,B)

ESOP, March 29, 2004

ESOP, March 29, 2004

• 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 aqvbq.

Hence we enforce aqxqbq.

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:

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

• 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

• 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

• 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(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

• 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

• 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

• 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

• 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

• 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