A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A...
Transcript of A Synthesis on Partition Refinement: a Useful Routine for ...mpobrie3/Docs/rg_fall16.pdf · A...
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.
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
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