Loading in 5 sec....

From Constraints to Finite Automata to Filtering AlgorithmsPowerPoint Presentation

From Constraints to Finite Automata to Filtering Algorithms

- 64 Views
- Uploaded on

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

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

Outline Case Study: lex_chain(X0,…,Xm-1) Conclusion

Outline Case Study: lex_chain(X0,…,Xm-1) Conclusion

Outline Case Study: lex_chain(X0,…,Xm-1) Conclusion

Outline Case Study: lex_chain(X0,…,Xm-1) Conclusion

Outline Case Study: lex_chain(X0,…,Xm-1) Conclusion

Outline Case Study: lex_chain(X0,…,Xm-1) Conclusion

Mats Carlsson, SICS

Nicolas Beldiceanu, EMN

Outline Case Study: lex_chain(X0,…,Xm-1) Conclusion

- Constraint Propagation: Example & Model
- Constraints and Key Notions
- Case Study: X lex Y
- Definition and signature
- Finite automaton
- Filtering algorithm

- Definition and signature
- Finite automaton
- Filtering algorithm

ESOP, March 29, 2004

Constraint Propagation Propagators Propagation loop

- Variables
- feature variable domain (finite set of integers)

- implement constraints

- execute propagators until simultaneous fixpoint

ESOP, March 29, 2004

Propagator Execution of propagator p

- Propagator p is a procedure (coroutine)
- implements constraint con(p)
its semantics (set of tuples)

- computes on set of variables var(p)

- implements constraint con(p)

- filters domains of variables in var(p)
- signals failure
- signals entailment

ESOP, March 29, 2004

Propagators Are Intensional No extensional representation of con(p) Extensional representation of constraint

- Propagators implement filtering
- aka: narrowing, domain reduction, value removal

- impractical in most cases (space)

- 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 Variables are the only communication channels between propagators Algorithms for

- Implementation uses operations on variables
- reading domain information
- filtering domains (removing values)

- Domain filtering
- Failure detection
- Entailment detection

ESOP, March 29, 2004

Outline Case Study: lex_chain(X0,…,Xm-1) Conclusion

- Constraint Propagation: Example & Model
- Constraints and Key Notions
- Case Study: X lex Y
- Definition and signature
- Finite automaton
- Filtering algorithm

- Definition and signature
- Finite automaton
- Filtering algorithm

ESOP, March 29, 2004

Classes of Constraints

- Basic constraints
- Constraints for which the solver is complete
- x D, x = v, x = y (variable aliasing)

- Constraints for which the solver is complete
- Primitive constraints (need propagators)
- Non-decomposable constraints
- x<y, xy, x+y = z, x*y = z, …

- Non-decomposable constraints
- Global constraints (need propagators)
- Subsume a set of basic or primitive constraints, usually providing stronger consistency

ESOP, March 29, 2004

Support and Consistency Cis hyperarc consistent iff Maintaining hyperarc consistency may not be possible with polynomial algorithms (e.g. diophantine equations)

- 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

- x var(C) v D(x) x=v has support for C

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 Case Study: lex_chain(X0,…,Xm-1) Conclusion

- Constraint Propagation: Example & Model
- Constraints and Key Notions
- Case Study: X lex Y
- Definition and signature
- Finite automaton
- Filtering algorithm

- Definition and signature
- Finite automaton
- Filtering algorithm

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

- Constraint Propagation: Example & Model
- Constraints and Key Notions
- Case Study: X lex Y
- Definition and signature
- Finite automaton
- Filtering algorithm

- Definition and signature
- Finite automaton
- Filtering algorithm

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

- Constraint Propagation: Example & Model
- Constraints and Key Notions
- Case Study: X lex Y
- Definition and signature
- Finite automaton
- Filtering algorithm

- Definition and signature
- Finite automaton
- Filtering algorithm

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

- Constraint Propagation: Example & Model
- Constraints and Key Notions
- Case Study: X lex Y
- Definition and signature
- Finite automaton
- Filtering algorithm

- Definition and signature
- Finite automaton
- Filtering algorithm

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

- Constraint Propagation: Example & Model
- Constraints and Key Notions
- Case Study: X lex Y
- Definition and signature
- Finite automaton
- Filtering algorithm

- Definition and signature
- Finite automaton
- Filtering algorithm

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

- Constraint Propagation: Example & Model
- Constraints and Key Notions
- Case Study: X lex Y
- Definition and signature
- Finite automaton
- Filtering algorithm

- Definition and signature
- Finite automaton
- Filtering algorithm

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

- Definition and signature
- Finite automaton
- Filtering algorithm

ESOP, March 29, 2004

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

- 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

- 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

- 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

Download Presentation

Connecting to Server..