Top Banner
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
55

A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Feb 12, 2018

Download

Documents

vuonghanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 2: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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.

Page 3: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Background

• PepperoniA, B, E, F, G

• MushroomsA, C, F

• OlivesA, C

A

B

C

DE

F

G

H

Page 4: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Background

• PepperoniA, B, E, F, G

• MushroomsA, C, F

• OlivesA, C

C

B

A

GE

F

D

H

Page 5: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Background

• PepperoniA, B, E, F, G

• MushroomsA, C, F

• OlivesA, C

D

B

E

GA

F

C

H

Page 6: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Background

• PepperoniA, B, E, F, G

• MushroomsA, C, F

• OlivesA, C

D

B

E

GA

F

C

H

Page 7: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Data structure

A B C

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

x1 x2 x3 x4 x5 x6 x7

Page 8: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Refinement

Refine on {x2, x3, x7}

x1

D

A B C

x4x2 x3 x7

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

x1 x5 x6

Page 9: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 10: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 11: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 12: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 13: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 14: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 15: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 16: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 17: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 18: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 19: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 20: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 21: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 22: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 23: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 24: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Computing twin classes

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

1 2

3

456

7

8

Page 25: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 26: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 27: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 28: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 29: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 30: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 31: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 32: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 33: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 34: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 35: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 36: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 37: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 38: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 39: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 40: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 41: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 42: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 43: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 44: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 45: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 46: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 47: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 48: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 49: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 50: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 51: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 52: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 53: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 54: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

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

Page 55: A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A Synthesis on Partition Re nement: a Useful Routine for Strings, Graphs, Boolean Matrices

Conclusions

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

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