a synthesis on partition refinement: a useful routine for ...mpobrie3/docs/rg_fall16.pdf · a...

55
A Synthesis on Partition Refinement: a Useful Routine for Strings, Graphs, Boolean Matrices and Automata Michel Habib, Christophe Paul, Laurent Viennot Presented by Mike O’Brien and Dr. Jon Doyle September 14, 2017

Upload: vuonghanh

Post on 12-Feb-2018

217 views

Category:

Documents


2 download

TRANSCRIPT

A Synthesis on Partition Refinement:a Useful Routine for Strings,

Graphs, Boolean Matrices and Automata

Michel Habib, Christophe Paul, Laurent ViennotPresented by Mike O’Brien and Dr. Jon Doyle

September 14, 2017

Problem Definition

• Let S be the set of integers in [1, 9]

• Partition of S :

{1, 2, 3}, {4, 5, 6}, {7, 8}, {9}

• Given pivot {2, 3, 7, 8}, refining the partition yields:

{1}, {2, 3}, {4, 5, 6}, {7, 8}, {9}

Definition (Partition Refinement)

Given partition X1,X2, . . . and pivot P, replace every Xi withXi ∩ P,Xi\P.

Background

• PepperoniA, B, E, F, G

• MushroomsA, C, F

• OlivesA, C

A

B

C

DE

F

G

H

Background

• PepperoniA, B, E, F, G

• MushroomsA, C, F

• OlivesA, C

C

B

A

GE

F

D

H

Background

• PepperoniA, B, E, F, G

• MushroomsA, C, F

• OlivesA, C

D

B

E

GA

F

C

H

Background

• PepperoniA, B, E, F, G

• MushroomsA, C, F

• OlivesA, C

D

B

E

GA

F

C

H

Data structure

A B C

(1,4) (5,5) (6,7)

x1 x2 x3 x4 x5 x6 x7

Refinement

Refine on {x2, x3, x7}

x1

D

A B C

x4x2 x3 x7

(1,4) (5,5) (6,7)

x1 x5 x6

Refinement

Refine on {x2, x3, x7}

x1

D

x2 x3 x7

D D E

A B C

x4

(1,4) (5,5) (6,7)

x1 x5 x6

Refinement

Refine on {x2, x3, x7}

x1

D

x4

x2 x3 x7

D D E

A B C

(1,2) (5,5) (6,6)

x1 x5 x6

Refinement

Refine on {x2, x3, x7}

x1

D

A B CD E

(3,4) (7,7)

x4

x2 x3 x7

D D E

(1,2) (5,5) (6,6)

x1 x5 x6

Refinement

Refine on {x2, x3, x7}

x1

D

x2 x3 x7

A B CD E

(3,4) (7,7)

x4

(1,2) (5,5) (6,6)

x1 x5 x6

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

Computing twin classes

Vertices u and v are twins if N(u) = N(v).

1 2

3

456

7

8

String sorting

(aca, cba, aaa, bba, baa, ccb, bac)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aca, cba, aaa, bba, baa, ccb, bac)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aca, aaa), (cba, bba, baa, ccb, bac)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aca, aaa), (cba, bba, baa, ccb, bac)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aca, aaa), (bba, baa, bac), (cba, ccb)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aca, aaa), (bba, baa, bac), (cba, ccb)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aaa), (aca), (baa, bac), (bba), (cba, ccb)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aaa), (aca), (baa, bac), (bba), (cba, ccb)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aaa), (aca), (baa, bac), (bba), (cba), (ccb)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aaa), (aca), (baa, bac), (bba), (cba), (ccb)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

String sorting

(aaa), (aca), (baa), (bac), (bba), (cba), (ccb)

Position 1 1 1 2 2 2 3 3 3

Letter a b c a b c a b c

Words aaa bba cba aaa bba aca aaa ccb bacaca baa ccb baa cba aca

bac bac baacba

DFA minimization

• DFA minimization: Given DFA A,find smallest DFA A′ such thatL(A) = L(A′).

• A word w separates states q, q′ iftransitioning on w from q ends inan accept state, while the sameactions from q′ end in anon-accepting state.

• Nerode equivalence class: set ofstates that are not separated byany word.

• “Redundant” states that“remember” the sameinformation.

• Minimized DFA needs exactlyone state per equivalence class.

1

2

3

4

5

6

a

b

a

b

a

b

a,b

a,b

a,b

DFA minimization

• DFA minimization: Given DFA A,find smallest DFA A′ such thatL(A) = L(A′).

• A word w separates states q, q′ iftransitioning on w from q ends inan accept state, while the sameactions from q′ end in anon-accepting state.

• Nerode equivalence class: set ofstates that are not separated byany word.

• “Redundant” states that“remember” the sameinformation.

• Minimized DFA needs exactlyone state per equivalence class.

1

2

3

4

5

6

a

a,b

a

b

a

b

a,b

a,b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

a,b 4, 5, 7, 9

a,b 1, 2, 3, 6, 8,10, 11, 12

b 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

a,b 4, 5, 7, 9

a,b 1, 2, 3, 6, 8,10, 11, 12

b 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

a,b 4, 5, 7, 9

a,b 1, 2, 3, 6, 8,10, 11, 12

b 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a,b 6, 8, 10, 11, 12

a,b 4, 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a,b 6, 8, 10, 11, 12

a,b 4, 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a,b 6, 8, 10, 11, 12

a,b 4, 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a,b 6, 8, 10, 11, 12

b 5

a,b 1, 2, 3

a,b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a,b 6, 8, 10, 11, 12

b 5

a,b 1, 2, 3

a,b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a,b 6, 8, 10, 11, 12

b 5

a,b 1, 2, 3

a,b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a,b 6, 8, 10, 11, 12

b 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a,b 6, 8, 10, 11, 12

b 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a,b 6, 8, 10, 11, 12

b 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a 8

b 5

a,b 1, 2, 3

b 4

a,b 6, 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a 8

b 5

a,b 1, 2, 3

b 4

a,b 6, 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

a 8

b 5

a,b 1, 2, 3

b 4

a,b 6, 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Classes:

b 7, 9

8

b 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

DFA minimization

1,2,3

4

5

6

7,9

8

10,11,12a

b

a

b

a

b

b

a

ab

b

a

a,b

Classes:

b 7, 9

8

b 5

a,b 1, 2, 3

b 4

a,b 10, 11, 12

a,b 6

1

2

3

4

5

6

7

8

9

10

11 12

ab

a

b a

b

a

b

ab

ba

a

bb

a

ab

a,b

a

b

a,b

Conclusions

• Data structure to compute partition refinements in O(|P|)time

• Algorithms using partition refinement to compute:• Twin classes• String sorting• DFA minimization