Badanie regularnosci w słowach - Przypadek sekwencyjny

Transkrypt

Badanie regularnosci w słowach - Przypadek sekwencyjny
Badanie regularności w słowach
Przypadek sekwencyjny
Marcin Piątkowski
Wydział Matematyki i Informatyki
Uniwersytet Mikołaja Kopernika
Edsger Wybe Dijkstra (1930 – 2002)
Computer science is no more about computers
than astronomy is about telescopes, biology is
about microscopes or chemistry is about beakers
and test tubes. Science is not about tools, it is
about how we use them and what we find out
when we do.
Badanie regularności w słowach
N
2 / 41
Wstęp
Alfabety i słowa
alfabet Σ – skończony zbiór symboli
słowo – skończony ciąg symboli ze zbioru Σ
Przykłady
Σ = {1, 2, 3, 4, 5, 6, 7, 8, 9}
15432,
48, 5830281,
301528
Σ = {a, b, c, d , e, f , g , h, i, j, k, l , m, n, o, p, r , s, t, u, w , z}
kot, pies, dom, drzewo
Σ = {♠, F, , z, ♣, -}
FFzFz, ♣-F, ♠-♣-, -Fz
N
Badanie regularności w słowach
3 / 41
Wstęp
Monoid słów
Σ∗ – zbiór wszystkich skończonych słów nad alfabetem Σ
Konkatenacja:
a1 a2 . . . am · b1 b2 . . . bn = a1 a2 . . . am b1 b2 . . . bn
Łączność: (x · y ) · z = x · (y · z)
Element neutralny ε (słowo puste): x · ε = ε · x = x
Badanie regularności w słowach
N
4 / 41
Wstęp
Faktor
Słowo w jest faktorem słowa u jeśli u = x · w · y
Przykład:
faktor:
ababaabababaabababaabababaababaab
prefiks:
ababaabababaabababaabababaababaab
sufiks:
ababaabababaabababaabababaababaab
Badanie regularności w słowach
N
5 / 41
Wstęp
Morfizm
φ : M1 −→ M2
∀x, y ∈ M φ(x · y ) = φ(x) ◦ φ(y )
Przykład
M1 = (Σ∗ , ·),
M2 = (Z, +)
φ : M1 −→ M2
φ(x) = |x|
Badanie regularności w słowach
N
6 / 41
Maksymalne powtórzenia
Maksymalne powtórzenia
ababaabababaabababaabababaababaab
Badanie regularności w słowach
N
7 / 41
Maksymalne powtórzenia
Maksymalne powtórzenia
ababaabababaabababaabababaababaab
Badanie regularności w słowach
N
7 / 41
Maksymalne powtórzenia
Maksymalne powtórzenia
ababaabababaabababaabababaababaab
Badanie regularności w słowach
N
7 / 41
Maksymalne powtórzenia
Maksymalne powtórzenia
ababaabababaabababaabababaababaab
Oznaczenia
ρ(w ) – liczba maksymalnych powtórzeń w słowie w
n
o
ρ(n) = max ρ(w ) : |w | = n
Badanie regularności w słowach
N
7 / 41
Maksymalne powtórzenia
a b a b a a b a b a b a a b a b a b a a b a b a a b
a b a b a a b a b a b a a b a b a b a a b a b a a b
a b a b a a b a b a b a a b a b a b a a b a b a a b
a b a b a a b a b a b a a b a b a b a a b a b a a b
a b a b a a b a b a b a a b a b a b a a b a b a a b
Badanie regularności w słowach
N
8 / 41
Maksymalne powtórzenia
Wartości ρ(n) dla 10 ¬ n ¬ 20
n
10
11
12
13
14
15
16
17
18
19
20
ρ(n)
6
7
8
8
10
10
11
12
13
14
15
ρ(n)/n
0.6
0.636364
0.666667
0.615385
0,714286
0.666667
0.6875
0.705882
0.722222
0.736842
0.75
Słowo
aabaabbaab
aabaabbaabb
aabaabbaabaa
aaabaabbaabaa
aabaabbaabaabb
aaabaabbaabaabb
aabaabbaabaabbaa
aabaababbabaababb
aabaabbaabaabbaabb
aabaabbaabaabbaabaa
aababaababbabaababaa
Badanie regularności w słowach
N
9 / 41
Maksymalne powtórzenia
Wartości ρ(n) dla 21 ¬ n ¬ 31
n
21
22
23
24
25
26
27
28
29
30
31
ρ(n)
15
16
17
18
19
20
21
22
23
24
25
ρ(n)/n
0.714286
0.727273
0.73913
0.75
0.76
0.769231
0.777778
0.785714
0.793103
0.8
0.806457
Słowo
aaababaababbabaababaa
aabaababaababbabaababb
aabaababaababbabaababaa
aabaabbaabaabbabbaabbabb
aabaabbaabaaabaabbaabaabb
aababaababbabaababaababbab
aabaababaababbabaababaababb
aababaababbabaababaababbabaa
aababaababbabaababaababbababb
aababbabaababbababbabaababbaba
aababaababbabaababaababbabaabab
Badanie regularności w słowach
N
10 / 41
Maksymalne powtórzenia – oszacowanie
R. Kolpakov, G. Kucherov (1999)
∀n>0 ρ(n) ¬ c · n
Algorytm znajdowania wszystkich maksymalnych powtórzeń
w słowie długości n działający w czasie O(n)
Hipoteza
∀n>0 ρ(n) ¬ n
Badanie regularności w słowach
N
11 / 41
Maksymalne powtórzenia – oszacowanie
n
Badanie regularności w słowach
N
12 / 41
Maksymalne powtórzenia – oszacowanie
5n
Rytter (2006)
n
Badanie regularności w słowach
N
12 / 41
Maksymalne powtórzenia – oszacowanie
5n
Rytter (2006)
3.44n
Rytter (2007)
n
Badanie regularności w słowach
N
12 / 41
Maksymalne powtórzenia – oszacowanie
5n
Rytter (2006)
3.48n
Puglisi et al. (2008)
3.44n
Rytter (2007)
n
Badanie regularności w słowach
N
12 / 41
Maksymalne powtórzenia – oszacowanie
5n
Rytter (2006)
3.48n
Puglisi et al. (2008)
3.44n
Rytter (2007)
1.6n
Crochemore, Ilie (2008)
n
Badanie regularności w słowach
N
12 / 41
Maksymalne powtórzenia – oszacowanie
5n
Rytter (2006)
3.48n
Puglisi et al. (2008)
3.44n
Rytter (2007)
1.6n
Crochemore, Ilie (2008)
n
1.048n
Crochemore et al. (2008)
Badanie regularności w słowach
N
12 / 41
Maksymalne powtórzenia – oszacowanie
5n
Rytter (2006)
3.48n
Puglisi et al. (2008)
3.44n
Rytter (2007)
1.6n
Crochemore, Ilie (2008)
1.048n
Crochemore et al. (2008)
n
0.927. . . n
Franek et al. (2003)
Badanie regularności w słowach
N
12 / 41
Maksymalne powtórzenia – oszacowanie
5n
Rytter (2006)
3.48n
Puglisi et al. (2008)
3.44n
Rytter (2007)
1.6n
Crochemore, Ilie (2008)
1.048n
Crochemore et al. (2008)
n
0.944542. . . n
Kusano et al. (2008)
0.927. . . n
Franek et al. (2003)
Badanie regularności w słowach
N
12 / 41
Maksymalne powtórzenia – oszacowanie
5n
Rytter (2006)
3.48n
Puglisi et al. (2008)
3.44n
Rytter (2007)
1.6n
Crochemore, Ilie (2008)
1.048n
Crochemore et al. (2008)
0.944542. . . n
Kusano et al. (2008)
0.927. . . n
Franek et al. (2003)
Badanie regularności w słowach
N
12 / 41
Miary regularności słów
Liczba maksymalnych powtórzeń
0.944n ¬ ρ(n) ¬ 1.048n
Badanie regularności w słowach
N
13 / 41
Miary regularności słów
Liczba maksymalnych powtórzeń
0.944n ¬ ρ(n) ¬ 1.048n
Liczba maksymalnych powtórzeń kubicznych
0.41n ¬ ρ(3) (n) ¬ 0.5n
(Crochemore et al., 2010)
Badanie regularności w słowach
N
13 / 41
Miary regularności słów
Liczba maksymalnych powtórzeń
0.944n ¬ ρ(n) ¬ 1.048n
Liczba maksymalnych powtórzeń kubicznych
0.41n ¬ ρ(3) (n) ¬ 0.5n
(Crochemore et al., 2010)
Suma wykładników maksymalnych powtórzeń
2.035n ¬ se(n) ¬ 4.1n
(Crochemore et al., 2011)
Badanie regularności w słowach
N
13 / 41
Miary regularności słów
Liczba maksymalnych powtórzeń
0.944n ¬ ρ(n) ¬ 1.048n
Liczba maksymalnych powtórzeń kubicznych
0.41n ¬ ρ(3) (n) ¬ 0.5n
(Crochemore et al., 2010)
Suma wykładników maksymalnych powtórzeń
2.035n ¬ se(n) ¬ 4.1n
(Crochemore et al., 2011)
Całkowita długość maksymalnych powtórzeń
n2
47n2
¬ TRL(n) ¬
8
72
(Glenn et al., 2013)
Badanie regularności w słowach
N
13 / 41
Słowa Fibonacciego
Definicja
F−1 = b
F0 = a
Fn = Fn−1 · Fn−2
Przykład
F1 = ab
f1 = 2
F2 = aba
f2 = 3
F3 = abaab
f3 = 5
F4 = abaababa
f4 = 8
F5 = abaababaabaab
f5 = 13
F6 = abaababaabaababaababa
f6 = 21
F7 = abaababaabaababaababaabaababaabaab
f7 = 34
Badanie regularności w słowach
N
14 / 41
Słowa Fibonacciego
R. Kolpakov, G. Kucherov (1999)
∀n­4 ρ(Fn ) = 2|Fn−2 | − 3
Asymptotyka
lim
n→∞
ρ(Fn )
= 0.763932 . . .
|Fn |
Badanie regularności w słowach
N
15 / 41
Słowa standardowe
Słowa Fibonacciego
F−1 = b
F0 = a
Fk = Fk−1 · Fk−2
Słowa standardowe – Sw(γ0 , γ1 , . . . , γn )
x−1 = b
x0 = a
xk = xk−1 · xk−1 · . . . · xk−1 ·xk−2
|
{z
}
γk−1
Badanie regularności w słowach
N
16 / 41
Słowa standardowe
γ = (1, 2, 1, 3, 1)
x−1 = b
x0 = a
x1 = (x0 )1 · x−1 = a · b
x2 = (x1 )2 · x0 = ab · ab · a
x3 = (x2 )1 · x1 = ababa · ab
x4 = (x3 )3 · x2 = ababaab · ababaab · ababaab · ababa
x5 = (x4 )1 · x3 = ababaabababaabababaabababa · ababaab
Sw(1, 2, 1, 3, 1) = ababaabababaabababaabababaababaab
Badanie regularności w słowach
N
17 / 41
Słowa standardowe
Definicja
Dla ciągu kierunkowego γ = (γ0 , γ1 , . . . , γn ) określamy
(
hγi :
a −→ aγi b
b −→ a
dla 0 ¬ i ¬ n.
Badanie regularności w słowach
N
18 / 41
Słowa standardowe
Definicja
Dla ciągu kierunkowego γ = (γ0 , γ1 , . . . , γn ) określamy
a −→ aγi b
(
hγi :
b −→ a
Sw(1) = h1 (a)
Sw(3, 1) = h3 Sw(1)
dla 0 ¬ i ¬ n.
= ab
= aaaba
Sw(1, 3, 1) = h1 Sw(3, 1)
= abababaab
Sw(2, 1, 3, 1) = h2 Sw(1, 3, 1)
= aabaaabaaabaaabaaba
Sw(1, 2, 1, 3, 1) = h1 Sw(2, 1, 3, 1) = ababaabababaabababaabababaababaab
Badanie regularności w słowach
N
18 / 41
|w| = 33
|w|a = 19
|w|b = 14
a
b
b
a
b
a
Słowo Christoffela (dolne):
a
b
a
a
a
b
a
bababaabababaabababaabababaababaa
b
a
b
a
b
b
a
b
a
a
Słowo Christoffela (górne):
a
b
a
a
b
a
b
b
a
b
b
a
aababaabababaabababaabababaababab
a
a
a
Słowa standardowe:
b
a
a
b
a
b
b
a
ababaabababaabababaabababaababaab
a
a
b
b
b
a
a
b
a
ababaabababaabababaabababaabababa
a
a
a
b
a
b
a
b
a
a
b
Badanie regularności w słowach
N
19 / 41
|w| = 33
28
|w|a = 19
0
14
|w|b = 14
b
19
5
9
24
23
10
4
29
18
15
32
1
13
20
27
6
8
25
11
22
3
30
17
16
31
2
12
26
7
21
b
Badanie regularności w słowach
N
20 / 41
|w| = 33
28
|w|a = 19
0
14
b
|w|b = 14
19 a
5
9
24
23
10
4
29
18
15
32
1
13
20
27
6
8
25
11
22
3
30
17
16
31
2
12
26
7
21
ba
Badanie regularności w słowach
N
20 / 41
|w| = 33
28
|w|a = 19
0
14
b
|w|b = 14
19 a
5 b
9
24
23
10
4
29
18
15
32
1
13
20
27
6
8
25
11
22
3
30
17
16
31
2
12
26
7
21
bab
Badanie regularności w słowach
N
20 / 41
|w| = 33
28
|w|a = 19
0
14
b
|w|b = 14
19 a
5 b
9
24 a
23
10
4
29
18
15
32
1
13
20
27
6
8
25
11
22
3
30
17
16
31
2
12
26
7
21
baba
Badanie regularności w słowach
N
20 / 41
|w| = 33
28
|w|a = 19
0
14
b
|w|b = 14
19 a
5 b
9
24 a
10 b
29
23
4
18
15
32
1
13
20
27
6
8
25
11
22
3
30
17
16
31
2
12
26
7
21
babab
Badanie regularności w słowach
N
20 / 41
|w| = 33
28
|w|a = 19
0
14
b
|w|b = 14
19 a
5 b
9
24 a
10 b
29
23
4
a
18
15
32
1
13
20
27
6
8
25
11
22
3
30
17
16
31
2
12
26
7
21
bababa
Badanie regularności w słowach
N
20 / 41
|w| = 33
28
|w|a = 19
0
14
b
|w|b = 14
19 a
5 b
9
24 a
10 b
29
23
4
a
18
15
a
32
1
13
20
27
6
8
25
11
22
3
30
17
16
31
2
12
26
7
21
bababaa
Badanie regularności w słowach
N
20 / 41
|w| = 33
|w|a = 19
a
b 28
a
14
0
b
19 a
|w|b = 14
5 b
a 9
b
24 a
23
10 b
29
a 4
a
18
15
a
a
1
32
b
b
13
20
a
a
6
27
b
b
8
25
a
a
11
22
b 3
a
30
17
a 31
b 12
16
2 a
b
a
21 b
a 26 b 7 a
bababaabababaabababaabababaababaa
Badanie regularności w słowach
N
20 / 41
Ułamki łańcuchowe
Definicja
Ułamkiem łańcuchowym nazywamy wyrażenie postaci:
1
a0 +
,
1
a1 +
a2 +
1
a3 + .
.. + 1
an
zapisywane w uproszczeniu jako [a0 ; a1 , a2 , a3 , . . . , an ].
Badanie regularności w słowach
N
21 / 41
Ułamki łańcuchowe
Przykład
19
14
Badanie regularności w słowach
N
22 / 41
Ułamki łańcuchowe
Przykład
19
5
= 1+
14
14
Badanie regularności w słowach
N
22 / 41
Ułamki łańcuchowe
Przykład
19
5
= 1+
= 1+
14
14
1
2+
4
5
Badanie regularności w słowach
N
22 / 41
Ułamki łańcuchowe
Przykład
19
5
= 1+
= 1+
14
14
1
2+
4
5
1
= 1+
2+
1
1+
1
4
[1; 2, 1, 4]
Badanie regularności w słowach
N
22 / 41
Ułamki łańcuchowe
Przykład
19
5
= 1+
= 1+
14
14
1
2+
4
5
1
= 1+
2+
1
1+
1
= 1+
1
4
1
2+
1+
1
3+
1
1
[1; 2, 1, 4]
[1; 2, 1, 3, 1]
Badanie regularności w słowach
N
22 / 41
Słowa standardowe
Fakt
Dla qp = [γ0 ; γ1 , . . . , γn ], gdzie p, q są względnie pierwsze, istnieje
jednoznacznie wyznaczone słowo w ∈ {a, b}∗ takie, że:
1
|w |a = p − 1
2
|w |b = q − 1
3
Słowo b · w · a jest dolnym słowem Christoffela.
4
Słowo a · w · b jest górnym słowem Christoffela.
5
Jedno ze słów w · a · b lub w · b · a jest słowem standardowym
zadanym przez ciąg kierunkowy γ = (γ0 , . . . , γn )
Badanie regularności w słowach
N
23 / 41
Słowa Sturma
Definicja
Słowa Sturma to nieskończone słowa binarne, które zawierają dokładnie n + 1 różnych podsłów długości n ­ 0.
ababaabababaabababaabababaababaab ...
1
ababaabababaabababaabababaababaab...
2
ababaabababaabababaabababaababaab ...
3
ababaabababaabababaabababaababaab ...
4
ababaabababaabababaabababaababaab ...
Badanie regularności w słowach
N
24 / 41
Słowa standardowe – maksymalne powtórzenia
P. Baturo, M. Piątkowski, W. Rytter – 2008
Okres każdego maksymalnego powtórzenia w słowie standardowym Sw(γ0 , γ1 , . . . , γn ) jest postaci
u = (xi )j · xi−1 ,
gdzie 0 ¬ i ¬ n oraz 0 ¬ j < γi .
Oznaczenia:
Maksymalne powtórzenia z okresem nie dłuższym niż |x1 | nazywamy
krótkimi
Maksymalne powtórzenia z okresem dłuższym niż |x2 | nazywamy
długimi
Pozostałe maksymalne powtórzenia nazywamy średnimi
Badanie regularności w słowach
N
25 / 41
Słowa standardowe – maksymalne powtórzenia
a b a b a a b a b a b a a b a b a b a a b a b a a b
a b a b a a b a b a b a a b a b a b a a b a b a a b
a b a b a a b a b a b a a b a b a b a a b a b a a b
a b a b a a b a b a b a a b a b a b a a b a b a a b
a b a b a a b a b a b a a b a b a b a a b a b a a b
Badanie regularności w słowach
N
26 / 41
Słowa standardowe – maksymalne powtórzenia
Zliczanie maksymalnych powtórzeń
Wzór na liczbę krótkich maksymalnych powtórzeń wyznaczony
w sposób bezpośredni.
Wzór na liczbę średnich maksymalnych powtórzeń wyznaczony
w sposób bezpośredni.
Rekurencyjna zależność dla długich maksymalnych powtórzeń.
Badanie regularności w słowach
N
27 / 41
Słowa standardowe – maksymalne powtórzenia
i-partition
Każde słowo standardowe Sw(γ0 , . . . , γn ) może być reprezentowane
w jednej z dwóch postaci:
xiα1 xi−1 xiα2 xi−1 . . . xiαs xi−1 xi
lub xiβ1 xi−1 xiβ2 xi−1 . . . xiβs xi−1 ,
gdzie αk , βk ∈ {γi , γi + 1}.
x1
x1
x0
x1
x1
x1
x0
x1
x1
x1
x0
x1
x1
x1
x0
x1
x1
x0
x1
a b a b a a b a b a b a a b a b a b a a b a b a b a a b a b a a b
x2
x1
x3
x2
x1
x3
x2
x2
x1
x3
x2
x2
x1
x3
a b a b a a b a b a b a a b a b a b a a b a b a b a a b a b a a b
x4
x3
Badanie regularności w słowach
N
28 / 41
Słowa standardowe – maksymalne powtórzenia
Fakt
Struktura wystąpień bloków xi (równoważnie xi−1 ) w reprezentacji i-partition słowa standardowego Sw(γ0 , . . . , γn ) odpowiada strukturze wystąpień liter a (równoważnie liter b) w słowie
Sw(γm , . . . , γn ).
i i-partition
Sw(γm , . . . , γn )
1
2
3
4
aabaaabaaabaaabaaba
abababaab
aaaba
ab
ab·ab·a·ab·ab·ab·a·ab·ab·ab·a·ab·ab·ab·a·ab·ab·a·ab
ababa·ab·ababa·ab·ababa·ab·ababa·ababa·ab
ababaab·ababaab·ababaab·ababa·ababaab
ababaabababaabababaabababa·ababaab
Badanie regularności w słowach
N
29 / 41
Słowa standardowe – maksymalne powtórzenia
P. Baturo, M. Piątkowski, W. Rytter – 2008
Okresy długich maksymalnych powtórzeń w słowach standardowych synchronizują się z morfizmami hi
aaba
a
a
b
a
a
a
b
a
a
a
b
a
a
a
b
a
a
b
a
a b
a b
a
a b
a b
a b
a
a b
a b
a b
a
a b
a b
a b
a
a b
a b
a
a b
h0
aba
ababa
ababaab
Badanie regularności w słowach
N
30 / 41
Słowa standardowe – maksymalne powtórzenia
P. Baturo, M. Piątkowski, W. Rytter – 2008
ρ(w ) =


2A + 2B + ∆(γ) − 1






γ0 = γ1 = 1
(γ1 + 2)A + B + ∆(γ) − odd(n)
γ0 = 1; γ1 > 1


2A + 3B + ∆(γ) − even(n)




 (2γ + 1)A + 2B + ∆(γ)
1
γ0 > 1; γ1 = 1
γ0 > 1; γ1 > 1
A = |Sw(γ2 , γ3 , . . . , γn )|a
B = |Sw(γ3 , γ4 , . . . , γn )|a
∆(γ) = n − 1 − (γ1 + . . . + γn ) − unary(γn )
Badanie regularności w słowach
N
31 / 41
Słowa standardowe – maksymalne powtórzenia
Wyznaczenie wartości |Sw(γ0 , . . . , γn )|a
|x−1 |a ← 0
|x0 |a ← 1
|x1 |a ← γ0 |x0 |a + |x−1 |a
|x2 |a ← γ1 |x1 |a + |x0 |a
..
.
|xn+1 |a ← γn |xn |a + |xn−1 |a
Badanie regularności w słowach
N
32 / 41
Słowa standardowe – maksymalne powtórzenia
Wyznaczenie wartości |Sw(γ0 , . . . , γn )|a
|x−1 |a ← 0
|x0 |a ← 1
|x1 |a ← γ0 |x0 |a + |x−1 |a
|x2 |a ← γ1 |x1 |a + |x0 |a
..
.
|xn+1 |a ← γn |xn |a + |xn−1 |a








(n + 1) razy







Badanie regularności w słowach
N
32 / 41
Słowa standardowe – maksymalne powtórzenia
Słowa z dużą liczbą maksymalnych powtórzeń
vk = Sw (1, 2, k, k)
vk =
(ababa)k ab
k
ababa
|vk | = 5k 2 + 2k + 5
ρ(vk ) = 4k 2 − k + 3
ρ(vk )
8
−→
|vk |
10
Badanie regularności w słowach
N
33 / 41
Słowa standardowe – maksymalne powtórzenia
P. Baturo, M. Piątkowski, W. Rytter – 2008
∀n>0 ρ(n) ¬ 0.8 n
lim
n→∞
ρ(n)
= 0.8
n
Badanie regularności w słowach
N
34 / 41
Słowa standardowe – maksymalne powtórzenia
P. Baturo, M. Piątkowski, W. Rytter – 2008
∀n>0 ρ(n) ¬ 0.8 n
lim
n→∞
ρ(n)
= 0.8
n
M. Piątkowski, W. Rytter – 2011
Zwarty wzór na liczbę maksymalnych powtórzeń kubicznych w
słowach standardowych
ρ(3) (n)
= 0.36924841 . . .
n→∞
n
lim
Badanie regularności w słowach
N
34 / 41
Burrows-Wheeler Transform
BWT
Podstawy teoretyczne – David Wheeler, 1983
Zastosowanie praktyczne – Michael Burrows, 1994
Podstawa algorytmu kompresji bzip2
Badanie regularności w słowach
N
35 / 41
Burrows-Wheeler Transform
Algorytm
ABRAKADABRA
Wyznacz macierz M zawierającą
wszystkie cykliczne przesunięcia słowa
wejściowego
Posortuj wiersze M leksykograficznie
Zwróć zawartość ostatniej kolumny M
oraz numer wiersza zawierającego słowo
wejściowe
Badanie regularności w słowach
N
36 / 41
Burrows-Wheeler Transform
Algorytm
ABRAKADABRA
Wyznacz macierz M zawierającą
wszystkie cykliczne przesunięcia słowa
wejściowego
AABRAKADABR
Posortuj wiersze M leksykograficznie
ABRAABRAKAD
Zwróć zawartość ostatniej kolumny M
oraz numer wiersza zawierającego słowo
wejściowe
DABRAABRAKA
RAABRAKADAB
BRAABRAKADA
ADABRAABRAK
KADABRAABRA
AKADABRAABR
RAKADABRAAB
BRAKADABRAA
Badanie regularności w słowach
N
36 / 41
Burrows-Wheeler Transform
Algorytm
AABRAKADABR
Wyznacz macierz M zawierającą
wszystkie cykliczne przesunięcia słowa
wejściowego
ABRAABRAKAD
Posortuj wiersze M leksykograficznie
AKADABRAABR
Zwróć zawartość ostatniej kolumny M
oraz numer wiersza zawierającego słowo
wejściowe
BRAABRAKADA
ABRAKADABRA
ADABRAABRAK
BRAKADABRAA
DABRAABRAKA
KADABRAABRA
RAABRAKADAB
RAKADABRAAB
Badanie regularności w słowach
N
36 / 41
Burrows-Wheeler Transform
Algorytm
AABRAKADABR
Wyznacz macierz M zawierającą
wszystkie cykliczne przesunięcia słowa
wejściowego
ABRAABRAKAD
Posortuj wiersze M leksykograficznie
AKADABRAABR
Zwróć zawartość ostatniej kolumny M
oraz numer wiersza zawierającego słowo
wejściowe
BRAABRAKADA
ABRAKADABRA
ADABRAABRAK
BRAKADABRAA
DABRAABRAKA
KADABRAABRA
Wynik
(R D A K R A A A A B B, 3)
RAABRAKADAB
RAKADABRAAB
Badanie regularności w słowach
N
36 / 41
Burrows-Wheeler Transform
Własności BWT
Można pozbyć się numeru wiersza w wyniku dodając na końcu
kodowanego słowa znak specjalny.
Użycie samej tranformaty nie powoduje kompresji.
Zmienia strukturę przetwarzanych danych powodując
grupowanie identycznych znaków w bloki.
Pozwala zwiększyć stopień kompresji przy użyciu innych
algorytmów.
Badanie regularności w słowach
N
37 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
R
D
A
K
R
A
A
A
A
B
B
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
A
A
A
A
B
B
D
K
R
R
R
D
A
K
R
A
A
A
A
B
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - - - - - A
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - - - - - A
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - - - - RA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - - - - RA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - - - BRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - - - BRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - - ABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - - ABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - DABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - - DABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - ADABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - - ADABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - KADABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - - KADABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - AKADABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- - AKADABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- RAKADABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
A- RAKADABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – odwracanie
Wejście
(R D A K R A A A A B B, 3)
Algorytm
Umieść słowo wejściowe w ostatniej
kolumnie macierzy M
Odzyskaj pierwszą kolumnę przez
sortowanie zawartości ostatniej
Wykorzystując dwie znane kolumny
odzyskaj kolejne elementy wiersza
zawierającego słowo wejściowe
A
R
A
D
ABRAKADABRA
A
K
A
R
B
A
B
A
D
A
K
A
R
B
R
B
Badanie regularności w słowach
N
38 / 41
Burrows-Wheeler Transform – słowa standardowe
abaababaabaab
Badanie regularności w słowach
N
39 / 41
Burrows-Wheeler Transform – słowa standardowe
a
b
a
a
b
a
a
b
a
b
a
a
b
b
a
b
a
a
b
a
a
b
a
b
a
a
a
b
a
b
a
a
b
a
a
b
a
b
a
a
a
b
a
b
a
a
b
a
a
b
a
b
b
a
a
b
a
b
a
a
b
a
a
b
a
a
b
a
a
b
a
b
a
a
b
a
a
b
b
a
b
a
a
b
a
b
a
a
b
a
a
a
b
a
b
a
a
b
a
b
a
a
b
a
a
a
b
a
b
a
a
b
a
b
a
a
b
b
a
a
b
a
b
a
a
b
a
b
a
a
a
b
a
a
b
a
b
a
a
b
a
b
a
a
a
b
a
a
b
a
b
a
a
b
a
b
b
a
a
b
a
a
b
a
b
a
a
b
a
Badanie regularności w słowach
N
39 / 41
Burrows-Wheeler Transform – słowa standardowe
a
b
a
a
b
a
a
b
a
b
a
a
b
b
a
b
a
a
b
a
a
b
a
b
a
a
a
b
a
b
a
a
b
a
a
b
a
b
a
a
a
b
a
b
a
a
b
a
a
b
a
b
b
a
a
b
a
b
a
a
b
a
a
b
a
a
b
a
a
b
a
b
a
a
b
a
a
b
b
a
b
a
a
b
a
b
a
a
b
a
a
a
b
a
b
a
a
b
a
b
a
a
b
a
a
a
b
a
b
a
a
b
a
b
a
a
b
b
a
a
b
a
b
a
a
b
a
b
a
a
a
b
a
a
b
a
b
a
a
b
a
b
a
a
a
b
a
a
b
a
b
a
a
b
a
b
b
a
a
b
a
a
b
a
b
a
a
b
a
a
a
a
a
a
a
a
a
b
b
b
b
b
a
a
a
b
b
b
b
b
a
a
a
a
a
b
b
b
a
a
a
a
a
a
a
a
b
b
a
a
a
a
a
a
b
b
b
b
b
a
a
a
b
b
b
b
b
a
a
a
a
a
a
a
b
a
a
a
a
a
a
a
a
b
b
b
b
a
a
a
a
b
b
b
b
b
a
a
a
a
b
b
b
b
a
a
a
a
a
a
a
a
b
a
a
a
a
a
a
a
b
b
b
b
b
a
a
a
b
b
b
b
b
a
a
a
a
a
a
b
b
a
a
a
a
a
a
a
a
b
b
b
Badanie regularności w słowach
N
a
a
a
a
a
b
b
b
b
b
a
a
a
b
b
b
b
b
a
a
a
a
a
a
a
a
39 / 41
Burrows-Wheeler Transform – słowa standardowe
a
b
a
a
b
a
a
b
a
b
a
a
b
b
a
b
a
a
b
a
a
b
a
b
a
a
a
b
a
b
a
a
b
a
a
b
a
b
a
a
a
b
a
b
a
a
b
a
a
b
a
b
b
a
a
b
a
b
a
a
b
a
a
b
a
a
b
a
a
b
a
b
a
a
b
a
a
b
b
a
b
a
a
b
a
b
a
a
b
a
a
a
b
a
b
a
a
b
a
b
a
a
b
a
a
a
b
a
b
a
a
b
a
b
a
a
b
b
a
a
b
a
b
a
a
b
a
b
a
a
a
b
a
a
b
a
b
a
a
b
a
b
a
a
a
b
a
a
b
a
b
a
a
b
a
b
b
a
a
b
a
a
b
a
b
a
a
b
a
a
a
a
a
a
a
a
a
b
b
b
b
b
a
a
a
b
b
b
b
b
a
a
a
a
a
b
b
b
a
a
a
a
a
a
a
a
b
b
a
a
a
a
a
a
b
b
b
b
b
a
a
a
b
b
b
b
b
a
a
a
a
a
a
a
b
a
a
a
a
a
a
a
a
b
b
b
b
a
a
a
a
b
b
b
b
b
a
a
a
a
b
b
b
b
a
a
a
a
a
a
a
a
b
a
a
a
a
a
a
a
b
b
b
b
b
a
a
a
b
b
b
b
b
a
a
a
a
a
a
b
b
a
a
a
a
a
a
a
a
b
b
b
Badanie regularności w słowach
N
a
a
a
a
a
b
b
b
b
b
a
a
a
b
b
b
b
b
a
a
a
a
a
a
a
a
39 / 41
Burrows-Wheeler Transform – słowa standardowe
Fakt
Dla dowolnego słowa standardowego w :
BWT (w ) = bn ak
Badanie regularności w słowach
N
40 / 41
Dziękuję za uwagę