• Nie Znaleziono Wyników

StrukturalnewłasnościtransformatyBurrowsa-Wheeleradlapewnychklassłów WydziałMatematyki,InformatykiiMechaniki UniwersytetWarszawski

N/A
N/A
Protected

Academic year: 2021

Share "StrukturalnewłasnościtransformatyBurrowsa-Wheeleradlapewnychklassłów WydziałMatematyki,InformatykiiMechaniki UniwersytetWarszawski"

Copied!
44
0
0

Pełen tekst

(1)

Uniwersytet Warszawski

Wydział Matematyki, Informatyki i Mechaniki

Bartłomiej Romański

Nr albumu: 219543

Strukturalne własności

transformaty Burrowsa-Wheelera dla pewnych klas słów

Praca magisterska

na kierunku INFORMATYKA

Praca wykonana pod kierunkiem prof. dr. hab. Wojciecha Ryttera Instytut Informatyki UW

Wrzesień 2009

(2)

Oświadczenie kierującego pracą

Potwierdzam, że niniejsza praca została przygotowana pod moim kierunkiem i kwa- lifikuje się do przedstawienia jej w postępowaniu o nadanie tytułu zawodowego.

Data Podpis kierującego pracą

Oświadczenie autora (autorów) pracy

Świadom odpowiedzialności prawnej oświadczam, że niniejsza praca dyplomowa została napisana przeze mnie samodzielnie i nie zawiera treści uzyskanych w sposób niezgodny z obowiązującymi przepisami.

Oświadczam również, że przedstawiona praca nie była wcześniej przedmiotem pro- cedur związanych z uzyskaniem tytułu zawodowego w wyższej uczelni.

Oświadczam ponadto, że niniejsza wersja pracy jest identyczna z załączoną wersją elektroniczną.

Data Podpis autora (autorów) pracy

(3)

Streszczenie

W pracy sformułowana została hipoteza na temat stopnia kompresji słów generowanych przez morfizmy uzyskiwanego przy pomocy transformaty Burrowsa-Wheelera. W celu popar- cia hipotezy dokładnie opisana została zwarta postać BWT następujących klas słów:

• Słowa Fibonacciego

• Słowa Thuego-Morse’a

• Słowa bezkwadratowe Thuego-Morse’a

• Słowa Cantora

• Słowa Paper Folding

O ile w przypadku słów Fibonacciego oraz słów Thuego-Morse’a zaprezentowane zostały jedynie alternatywne dowody znanych rezultatów, o tyle w przypadku słów bezkwadrato- wych Thuego-Morse’a, słów Cantora oraz słów Paper Folding są to nowe wyniki. Co więcej, dla większości wykorzystywanych morfizmów przedstawione zostały szczegółowe twierdzenia opisujące, jak zmienia się postać BWT dowolnego słowa po wykonaniu na nim badanych przekształceń. Dodatkowo postawiona w pracy hipoteza została automatycznie przetestowa- na na szerokiej gamie przykładów.

Słowa kluczowe

Transformata Burrowsa-Wheelera, morfizmy słów, słowa Fibonacciego, słowa Thuego-Morse’a, słowa bezkwadratowe Thuego-Morse’a, słowa Cantora, słowa Paper Folding

Dziedzina pracy (kody wg programu Socrates-Erasmus) 11.3 Informatyka

Klasyfikacja tematyczna

G.2.1 – Mathematics of Computing : Discrete Mathematics : Combinatorics E.4 – Data : Coding And Information Theory

Tytuł pracy w języku angielskim

Structual properties of Burrows-Wheeler transform for some word classes

(4)
(5)

Spis treści

Wstęp . . . . 5

1. Wprowadzenie . . . . 7

1.1. Terminologia . . . . 7

1.1.1. Podstawowe pojęcia związane ze słowami . . . . 7

1.1.2. Porządek leksykograficzny słów . . . . 8

1.1.3. Morfizmy słów . . . . 8

1.2. Wybrane klasy słów . . . . 8

1.2.1. Słowa Fibonacciego . . . . 8

1.2.2. Słowa Thuego-Morse’a . . . . 9

1.2.3. Słowa bezkwadratowe Thuego-Morse’a . . . . 10

1.2.4. Słowa Cantora . . . . 10

1.2.5. Słowa Paper Folding . . . . 11

1.3. Transformata Burrowsa-Wheelera . . . . 12

1.3.1. Definicja . . . . 12

1.3.2. Odwracalność . . . . 13

1.3.3. Znaczenie praktyczne . . . . 13

1.3.4. Efektywne algorytmy kodowania i dekodowania . . . . 14

1.4. Hipoteza o BWT-regularności dla morfizmów . . . . 14

2. Słowa Fibonacciego . . . . 17

2.1. Słowa Sturma . . . . 19

3. Słowa Thuego-Morse’a . . . . 21

4. Słowa bezkwadratowe Thuego-Morse’a . . . . 23

5. Słowa Cantora . . . . 27

6. Słowa Paper Folding . . . . 31

7. Podsumowanie . . . . 37

7.1. Badane morfizmy . . . . 37

7.2. Morfizmy binarne . . . . 38

7.3. Pozostałe morfizmy . . . . 38

Bibliografia . . . . 42

(6)
(7)

Wstęp

Transformata Burrowsa-Wheelera (BWT) jest algorytmem powszechnie wykorzystywanym w kompresji bezstratnej. O jej popularności oraz wysokim znaczeniu praktycznym świadczy m. in. fakt, że stanowi ona podstawę działania popularnego narzędzia bzip2. Transformata oraz jej potencjalne zastosowania zostały po raz pierwszy opisane w pracy Michaela Burrowsa i Davida Wheelera stosunkowo niedawno, w 1993 roku. Bazuje ona na nieopublikowanej transformacie odkrytej przez samego Wheelera ponad 10 lat wcześniej, w 1984 roku.

Przekształcenie dokonuje jedynie permutacji liter słowa wejściowego – w słowie wyjścio- wym pojawiają się dokładnie te same symbole jednak w zmodyfikowanej kolejności. Co cie- kawe, przekształcenie ma tę interesującą własność, że w stosunkowo wielu sytuacjach słowo wyjściowe poddaje się kompresji w dużo większym stopniu niż słowo wejściowe. Dzieje się tak, gdyż w wyniku transformaty litery mają tendencję do układania się w długie bloki złożone z identycznych symboli. Istotny jest przy tym oczywiście fakt, że przy minimalnej dodat- kowej informacji, transformatę możemy odwrócić, dzięki czemu możliwa jest dekompresja przetwarzanego tekstu.

Transformata Burrowsa-Wheelera poza zastosowaniami praktycznymi związanymi z kom- presją danych ma także liczne ciekawe własności czysto teoretyczne. Okazuje się, że bardzo wiele, znanych klas słów, często o skomplikowanej budowie ma stosunkowo prostą postać BWT. Klasycznym, wręcz skrajnym, przykładem są słowa Fibonacciego (lub ogólniej, słowa Sturma), dla których wynikiem transformaty BWT jest zawsze słowo postaci 1 0 .

Efektywne obliczenie wyniku transformaty Burrowsa-Wheelera nie jest trywialne, może być jednak sprowadzone do obliczenia tablicy sufiksowej, zatem dla ustalonego alfabetu może zostać wykonane w czasie liniowym. Dekodowanie jest znacznie prostsze i również może zo- stać wykonane w czasie liniowym. Znacznie mniej wiadomo na temat tego, jak dynamicznie aktualizować wynik transformaty, jeśli oryginalny tekst ulegnie modyfikacji (np. dopisana lub usunięta zostanie pojedyncza litera).

Niniejsza praca koncentruje się na zbadaniu i opisaniu postaci BWT wybranych klas słów generowanych przez morfizmy. W pierwszych rozdziałach przytoczone są znane wyniki dla słów Fibonacciego, słów Sturma oraz słów Thuego-Morse’a. W tej części pracy na uwagę zasługuje wykorzystanie definicji opartych na odpowiednich morfizmach, zamiast na rekuren- cjach, co prowadzi do nowych, innych niż w przytaczanych pracach, dowodów. Dodatkowym wynikiem, jest dokładne opisanie, jak zmienia się postać BWT dowolnego słowa po wykona- niu na nim odpowiednich morfizmów. W dalszej części pracy szczegółowo omówiona została postać BWT dla słów bezkwadratowych Thuego-Morse’a, słów Cantora oraz słów Paper Fol- ding. Są to nowe wyniki, nie opisywane wcześniej w literaturze.

Wyniki otrzymane dla poszczególnych klas słów opisanych w pracy pozwoliły sformułować

przedstawioną w rozdziale 1.4 hipotezę na temat ogólnej postaci BWT słów generowanych

przez morfizmy. Hipoteza została sprawdzona komputerowo na możliwie szerokiej gamie przy-

kładów.

(8)
(9)

Rozdział 1

Wprowadzenie

1.1. Terminologia

Większość terminów oraz oznaczeń używanych w pracy jest powszechnie stosowana, więc powinny być one całkowicie zrozumiałe. Jednak dla pełnej jasności poniżej przedstawione zostały wybrane definicje. Szczegółowo wybrane zagadnienia związane ze słowami zostały opisane m. in. w pracach [3, 13, 14, 22].

1.1.1. Podstawowe pojęcia związane ze słowami

Definicja 1.1.1. Słowem nazywamy skończony lub nieskończony ciąg elementów ze skoń- czonego zbioru – zbiór ten nazywamy alfabetem.

Ponieważ dalsza część pracy koncentruje się na słowach skończonych, więc jeśli nie zostało wyraźnie zaznaczone, że jest inaczej, słowo należy zawsze traktować jako ciąg skończony. Sło- wa oznaczamy małymi literami alfabetu łacińskiego, alfabet najczęściej symbolem Σ, a jego elementy symbolami 0, 1, 2 . . . . Zbiór wszystkich słów nad alfabetem Σ oznaczamy symbo- lem Σ . Podstawową operacją na słowach jest ich konkatenacja (zdefiniowana analogicznie jak konkatenacja ciągów). Konkatenację słów u i v zapisujemy po prostu jako uv. Długość słowa u zapisujemy jako |u|, a liczbę liter i w słowie u jako # i (u).

W pracy istotne są także pojęcia prefiksu i sufiksu oraz rotacji cyklicznej słowa:

Definicja 1.1.2. Słowo u nazywamy prefiksem słowa v jeśli istnieje takie słowo v 0 , że v = uv 0 . Definicja 1.1.3. Słowo u nazywamy sufiksem słowa v jeśli istnieje takie słowo v 0 , że v = v 0 u.

Definicja 1.1.4. i-tą rotacją cykliczną słowa u będziemy nazywali słowo π i (u), gdzie funk- cja π : Σ 7→ Σ oznacza następujące przekształcenie (u 1 , u 2 . . . u n oznaczają kolejne litery słowa u):

π(u 1 u 2 . . . u n ) = u 2 u 3 . . . u n u 1

Zauważmy, że przekształcenie π jest odwracalne zatem zapis π i oraz określenie i-ta rotacja ma sens nie tylko dla i ­ 0, ale także dla i < 0.

Dodatkowo w pracy użyto następujących oznaczeń:

Definicja 1.1.5. Dla dowolnego słowa u ∈ Σ słowo składające się z tych samych liter, ale zapisanych w odwrotnej kolejności oznaczamy przez u R .

Definicja 1.1.6. Dla dowolnego słowa u ∈ {0, 1} słowo składające się z zanegowanych

kolejnych liter słowa u, oznaczamy przez ¯ u.

(10)

1.1.2. Porządek leksykograficzny słów

Jeśli dany jest porządek symboli alfabetu (w pracy używamy zawsze naturalnego porządku 0 < 1 < 2 . . . ), możemy określić tzw. porządek leksykograficzny słów:

Definicja 1.1.7. Mówimy, że słowo u jest mniejsze leksykograficznie od słowa v wtedy i tylko wtedy, gdy spełniony jest jeden z poniższych warunków:

• u jest prefiksem właściwym słowa v,

• istnieje słowo p oraz symbole x, y takie, że słowa px, py są prefiksami odpowiednio słów u i v oraz x < y

Łatwo zauważyć, że tak zdefiniowana relacja określa porządek liniowy na zbiorze Σ . 1.1.3. Morfizmy słów

Definicja 1.1.8. Morfizmem nazywamy takie przekształcenie φ : Σ 7→ Σ , że dla dowol- nych słów u, v ∈ Σ spełniony jest warunek:

φ(uv) = φ(u) φ(v) Wśród morfizmów możemy wyróżnić następujące klasy:

Definicja 1.1.9. Mówimy, że morfizm zachowuje porządek, jeśli dla dowolnych słów u, v ∈ Σ warunki u < v oraz φ(u) < φ(v) są równoważne.

Definicja 1.1.10. Morfizm φ : Σ 1 7→ Σ 2 nazywamy jednorodnym, jeśli dla każdej pary symboli x, y ∈ Σ 1 spełniony jest warunek |φ(x)| = |φ(y)|.

W pracy wielokrotnie wykorzystywany jest następujący, bardzo prosty fakt:

Fakt 1.1.1. Morfizm jednorodny φ zachowuje porządek wtedy i tylko wtedy, gdy:

φ(0) < φ(1) < φ(2) . . .

Warto zauważyć, że niekoniecznie jest to prawda dla morfizmów niejednorodnych.

1.2. Wybrane klasy słów

W niniejszym podrozdziale przedstawione oraz krótko omówione zostały wybrane klasy słów wykorzystywane w dalszej części pracy. Kolejne sekcje opisują słowa Fibonacciego, słowa Thuego-Morse’a, słowa bezkwadratowe Thuego-Morse’a, słowa Cantora oraz słowa Paper Folding.

1.2.1. Słowa Fibonacciego

Chyba najczęściej spotkaną w literaturze klasą słów są słowa Fibonacciego. Słowa Fibo- nacciego możemy definiować na bardzo wiele równoważnych sposobów, ale prawdopodobnie najpopularniejsza jest przedstawiona poniżej definicja rekurencyjna.

Definicja 1.2.1. i-tym słowem Fibonacciego nazywamy słowo:

f i =

 

 

1 dla i = 0,

0 dla i = 1,

f i−1 f i−2 dla i ­ 2

(11)

Dla potrzeb niniejszej pracy warto jednak przyjrzeć się także alternatywnej definicji słów Fibonacciego, wykorzystującej morfizm φ f :

Definicja 1.2.2. i-tym słowem Fibonacciego nazywamy słowo:

f i = φ f (1), gdzie φ f oznacza następujący morfizm:

φ f :

( 0 7→ 01 1 7→ 0 .

Bezpośrednio z powyższych definicji wynika następujący, prosty fakt:

Fakt 1.2.1. Niech F i oznacza i-tą liczbę Fibonacciego [10]. Wtedy:

# 0 (f i ) = F i−1 , # 1 (f i ) = F i−2 , |f i | = F i 1.2.2. Słowa Thuego-Morse’a

Niemalże równie popularną jak słowa Fibonacciego klasą słów są słowa Thuego-Morse’a. Mają one liczne ciekawe właściwości i bardzo często pojawiają się różnych, nierzadko niespodzie- wanych kontekstach. Wiele ich zastosowań zostało opisanych w pracy [2], gdzie zostały one wręcz określone jako wszędobylskie (ang. ubiquitous). Prawdopodobnie najczęściej przytacza- nym faktem na temat słów Thuego-Morse’a jest to, że są one przykładem słów overlap-free czy też 2+-free, co oznacza po prostu, że nie zawierają podsłów postaci αβαβα (dla pewnych niepustych słów α i β).

W literaturze często spotykana jest następująca definicją słów Thugo-Morse’a:

Definicja 1.2.3. i-tym słowem Thuego-Morse’a nazywamy słowo:

t i =

( 0 dla i = 0,

t i−1 t i−1 dla i > 0

Jednak podobnie jak w przypadku poprzedniej klasy słów w dalszej części pracy wygodniej będzie oprzeć się na definicji opartej o morfizmy:

Definicja 1.2.4. i-tym słowem Thuego-Morse’a nazywamy słowo:

t i = φ i t (0), gdzie φ t oznacza następujący morfizm:

φ t :

( 0 7→ 01 1 7→ 10

Tak zdefiniowane, kolejne słowa Thuego-Morse’a są równe:

t 0 = 0 t 1 = 01 t 2 = 0110 t 3 = 01101001 t 4 = 0110100110010110

t 5 = 01101001100101101001011001101001

(12)

1.2.3. Słowa bezkwadratowe Thuego-Morse’a

Bezpośrednio powiązana z opisanymi w poprzednim rozdziale słowami Thuego-Morse’a jest klasa słów bezkwadratowych Thuego-Morse’a. Do potrzeb pracy przyjmiemy następującą de- finicję (analogiczna została wykorzystana m.in. w pracy [11]):

Definicja 1.2.5. i-tym słowem bezkwadratowym Thuego-Morse’a nazywamy słowo:

s i = φ i s (2), gdzie φ s oznacza następujący morfizm:

φ s :

 

 

0 7→ 1 1 7→ 20 2 7→ 210

Tak zdefiniowane, kolejne słowa bezkwadratowe Thuego-Morse’a są równe:

s 0 = 2 s 1 = 210 s 2 = 210201 s 3 = 210201210120

s 4 = 210201210120210201202101

s 5 = 210201210120210201202101210201210120210121020120

Na pierwszy rzut oka związek słów bezkwadratowych Thuego-Morse’a z opisanymi w po- przednim rozdziale słowami Thuego-Morse’a wydawać się może niewielki. Warto jednak za- uważyć następującą prawidłowość. Niech t oznacza takie nieskończone słowo, że wszystkie słowa z ciągu t i są jego prefiksami. Analogicznie zdefiniujmy s . Okazuje się, że zliczając liczbę jedynek pomiędzy kolejnymi zerami w słowie t i zapisując wyniki w postaci kolej- nych symboli otrzymujemy właśnie słowo s . W ten sposób tradycyjnie definiowane jest nieskończone słowo bezkwadratowe Thuego-Morse’a.

Słowa bezkwadratowe Thuego-Morse’a są chyba najczęściej przytaczanym w literaturze przykładem tzw. słów bezkwadratowych [11]. Oznacza to, że nie zawierają żadnego podsłowa postaci αα (dla pewnego niepustego słowa α ∈ Σ ).

1.2.4. Słowa Cantora

Kolejną klasą słów omówioną w pracy są tzw. słowa Cantora, będące pewnego rodzaju odpo- wiednikiem, znanego z analizy, zbioru Cantora. Mówiąc nieco nieformalnie, i-te słowo Cantora powstaje w następujący sposób: rozpoczynamy od słowa długości 3 i złożonego z samych jedy- nek, a następnie wycinamy w nim dziury – dzielimy całe słowo na 3 równe części i środkową część zamieniamy na zera. Następnie bierzemy każdą z pozostałych części i postępujemy ana- logicznie dopóki nie otrzymamy pojedynczych jedynek. Przykładowo, trzecie słowo Cantora powstaje w następujący sposób:

111111111111111111111111111

111111111000000000111111111

111000111000000000111000111

101000101000000000101000101

(13)

Bardziej formalnie słowa Cantora możemy zdefiniować następująco:

Definicja 1.2.6. i-tym słowem Cantora będziemy nazywali słowo:

c i = φ i c (1), gdzie φ c oznacza następujący morfizm:

φ c :

( 0 7→ 000 1 7→ 101 1.2.5. Słowa Paper Folding

Ostatnią klasą słów, które zostały wykorzystane w pracy są tzw. słowa Paper Folding (omó- wione dokładniej m. in. w pozycji [3]). Nazwa tej klasy słów wzięła się od pewnego, ory- ginalnego sposobu ich konstrukcji. Weźmy długi pasek papieru, który wybraną liczbę razy składamy na pół – dokładnie tak jak na rysunku poniżej 1 , zawsze w tę samą stronę (w prawo).

Po rozłożeniu papieru, na pasku otrzymamy pewien ciąg zgięć, które mogą być skierowa- nych w lewo bądź w prawo. Jeśli zgięcia w lewo oznaczymy symbolem 0, a zgięcia w prawo symbolem 1, otrzymamy pewne słowo nad alfabetem binarnym. Oczywiście, im więcej zgięć wykonamy tym większa będzie długość otrzymanego słowa (dokładnie 2 i − 1, gdzie i to liczba zgięć). Okazuje się jednak, że wszystkie słowa, które możemy w ten sposób otrzymać, są pre- fiksami pewnego nieskończonego słowa p – tzw. regular paper folding sequence bądź dragon curve sequence (nazwa wywodzie się od kształtu krzywej, którą otrzymujemy po rozłożeniu, poskładanego uprzednio, paska). Dla potrzeb niniejszej pracy skoncentrujemy się jednak na nieco innej, opartej na morfizmach, definicji:

Definicja 1.2.7. i-tym słowem Paper Folding nazywamy słowo:

p i = φ 0 p ◦ φ i p (3), gdzie φ p oraz φ 0 p oznaczają następujące morfizmy:

φ p :

 

 

 

 

 

 

0 7→ 20 1 7→ 21 2 7→ 30 3 7→ 31

φ 0 p :

 

 

 

 

 

 

0 7→ 00 1 7→ 01 2 7→ 10 3 7→ 11

1

Rysunek został zaczerpnięty z artykułu [25].

(14)

Tak zdefiniowane słowa Paper Folding również są prefiksami nieskończonego słowa p , mają jednak nieco inne długości (|p i | = 2 i ). Początkowe słowa Paper Folding wyglądają następująco:

p 0 = 11 p 1 = 1101 p 2 = 11011001 p 3 = 1101100111001001

p 4 = 11011001110010011101100011001001

1.3. Transformata Burrowsa-Wheelera

1.3.1. Definicja

Podstawowym zagadnieniem, wokół którego koncentruje się niniejsza praca, jest transformata Burrowsa-Wheelera – przekształcenie powszechnie wykorzystywane w kompresji bezstratnej.

Definicja 1.3.1. Transformatą Burrowsa-Wheelera [1, 6] nazywamy przekształcenie słowa s w słowo BW T (s) będące konkatenacją ostatnich liter wszystkich rotacji cyklicznych słowa s posortowanych leksykograficznie.

Powyższą definicję prawdopodobnie najłatwiej zrozumieć, analizując działanie transfor- maty na przykładowym słowie. Niech s = 31213021. Wtedy kolejne rotacje cykliczne umiesz- czone w macierzy wyglądają następująco:

3 1 2 1 3 0 2 1 1 2 1 3 0 2 1 3 2 1 3 0 2 1 3 1 1 3 0 2 1 3 1 2 3 0 2 1 3 1 2 1 0 2 1 3 1 2 1 3 2 1 3 1 2 1 3 0 1 3 1 2 1 3 0 2

Co po posortowaniu leksykograficznym wierszy daje następujący układ:

0 2 1 3 1 2 1 3 1 2 1 3 0 2 1 3 1 3 0 2 1 3 1 2 1 3 1 2 1 3 0 2 2 1 3 0 2 1 3 1 2 1 3 1 2 1 3 0 3 0 2 1 3 1 2 1 3 1 2 1 3 0 2 1

Łącząc kolejne litery z ostatniej kolumny, otrzymujemy słowo BW T (s) = 33221011.

Definicja 1.3.2. Macierz, w której w kolejnych wierszach znajdują się kolejne posortowane

leksykograficznie rotacje cykliczne słowa s, nazywamy macierzą BWT tego słowa.

(15)

1.3.2. Odwracalność

Łatwo zauważyć, że tak zdefiniowane przekształcenie nie jest odwracalne. Jeśli słowa s 1 i s 2 są cyklicznie równoważne, to zbiory ich rotacji są identyczne, więc BW T (s 1 ) i BW T (s 2 ) również są identyczne. Jednak, co ciekawe, analogiczny fakt zachodzi również w drugą stronę.

Twierdzenie 1.3.1. Jeśli BW T (s 1 ) = BW T (s 2 ) to słowa s 1 i s 2 są cyklicznie równoważne.

Dowód. Wystarczy pokazać, że na podstawie BW T (s), czyli ostatniej kolumny macierzy BWT słowa s można w sposób jednoznaczny odtworzyć całą macierz. Zauważmy, że znając ostatnią kolumnę znamy też pierwszą – znajdują się tam dokładnie te same litery, tyle, że posortowane:

...3

7→ 0...3

...3 1...3

...2 1...2

...2 1...2

...1 2...1

...0 2...0

...1 3...1

...1 3...1

Ponieważ w kolejnych wierszach umieszczone są kolejne rotacje, możemy zawsze ostatnią kolumnę przenieść na początek i dalej ta własność zostanie zachowana. Jeśli teraz posortu- jemy kolejne wiersze, otrzymamy ponownie macierz BWT słowa s. Znamy już dwie pierwsze kolumny: 0...3

7→ 30... 7→ 02... 1...3 31... 12...

1...2 21... 13...

1...2 21... 13...

2...1 12... 21...

2...0 02... 21...

3...1 13... 30...

3...1 13... 31...

Postępując ponownie w ten sam sposób możemy odtwarzać kolejne kolumny aż do otrzy- mania pełnej macierzy: 02...3

7→ 302... 7→ 021... 12...3 312... 121...

13...2 213... 130...

13...2 213... 131...

21...1 121... 213...

21...0 021... 213...

30...1 130... 302...

31...1 131... 312...

1.3.3. Znaczenie praktyczne

Transformata Burrowsa-Wheelera jest algorytmem powszechnie wykorzystywanym w kom-

presji bezstratnej. W połączeniu z transformatą Move To Front [5] oraz kodowaniem Huffmana

[4] jest podstawą popularnego narzędzia bzip2. Pomimo, że stosunkowo ciężko jest teoretycz-

nie wykazać skuteczność kompresorów opartych na BWT (pewne wyniki zostały przedsta-

wione m. in. w pracach [9, 18, 19]) to jednak dość łatwo jest intuicyjnie zrozumieć zasadę

działania tych algorytmów.

(16)

Zauważmy, że w typowych tekstach pewne fragmenty występują znacznie częściej niż in- ne. Przykładowo w języku angielskim stosunkowo popularny jest wyraz not. Jeśli weźmiemy wszystkie rotacje cykliczne badanego tekstu to duża część tych rozpoczynających się od ot będzie kończyła się właśnie literą n. Dzięki temu w ostatniej kolumnie macierzy BWT mamy dużą szansę otrzymać stosunkowo długie bloki złożone z identycznych liter. Poniżej przedsta- wiony został fragment macierzy BWT dla tekstu zaczerpniętego z Hamleta Szekspira 2 .

ot look upon his like again. ... n ot look upon me; Lest with th ... n ot love on the wing, -- As I p ... h ot love your father; But that ... n ot made them well, they imita ... n ot madness That I have utter’ ... n ot me’? Ros. To think, my lor ... n ot me; no, nor woman neither, ... n ot me? Ham. No, by the rood, ... g ot mend his pace with beating ... n ot mine own. Besides, to be d ... n ot mine. Ham. No, nor mine no ... n ot mock me, fellow-student. I ... n ot monstrous that this player ... n ot more like. Ham. But where ... n ot more native to the heart, ... n ot more ugly to the thing tha ... n ot more, my lord. Ham. Is not ... j ot move thus. Oph. You must s ... n ot much approve me. -- Well, si ... n

Poza praktycznymi zastosowaniami w kompresji BWT może być także przydatne w teore- tycznych rozważaniach. Postać wielu słów znacznie się upraszcza po wykonaniu transformaty BWT, co czasem ułatwia odkrycie pewnych własności. Przykład pracy [20] pokazuje też, że czasem ten sam problem (w tym wypadku znalezienie algorytmu obliczania n-tej litery) okazuje się prostszy dla postaci BWT niż dla oryginalnego słowa.

1.3.4. Efektywne algorytmy kodowania i dekodowania

Należy zauważyć, że kodowanie słowa u możemy sprowadzić do obliczania tablicy sufiksowej słowa uu. Zatem dla stałego rozmiaru alfabetu może ono zostać wykonane w czasie linio- wym [12, 15]. Proces odkodowywania jest znacznie prostszy i również może zostać wykonany w czasie liniowym [6]. Zdecydowanie trudniejszy natomiast okazuje się problem dynamicznej aktualizacji wyniku BWT podczas modyfikacji oryginalnego tekstu (pewne wyniki przedsta- wiono m. in. w pracy [23]). Warto także zwrócić uwagę na fakt, że nie zawsze niezbędna jest pełna dekompresja przetwarzanego tekstu. Wybrane algorytmy działające na skompresowa- nych (nie tylko przy pomocy BWT) danych zostały przedstawione w pozycjach [1, 21].

1.4. Hipoteza o BWT-regularności dla morfizmów

Transformata Burrowsa-Wheelera pomimo licznych publikacji na swój temat nadal nie została do końca zbadana. Przykładowo, stosunkowo niewiele wiadomo na temat uzyskiwanego dla różnych klas słów stopnia kompresji. Podstawowym, bardzo ogólnym pytaniem, jakie można

2

Przykład pochodzi z pracy [1].

(17)

postawić, jest pytanie o to, które klasy słów możemy przy użyciu BWT zapisywać używając niewielkiej (np. logarytmicznej względem długości słowa) liczby symboli.

W pracy przeanalizowane zostały wybrane, klasyczne słowa generowane przez morfizmy.

Co ciekawe, we wszystkich badanych przypadkach okazało się, że postać BWT jest w pe- wien sposób regularna. Przede wszystkim, warto zauważyć, że wykorzystując BWT każde omawiane słowo możemy reprezentować używając zapisu o logarytmicznej długości.

Na podstawie tych kilku wybranych klas możemy zatem wysunąć nieco ogólniejszą hipo- tezę mówiącą, że dowolne słowo otrzymane poprzez iterację morfizmu zostanie silnie skom- presowane przy pomocy transformaty Burrowsa-Wheelera. Ściślej możemy ją sformułować następująco:

Hipoteza 1.4.1. Dla dowolnego morfizmu φ : Σ 7→ Σ oraz dowolnego symbolu początkowe- go s ∈ Σ liczba bloków w słowie φ n (s) jest rzędu 3 O(n).

Dokładniej powyższa hipoteza została omówiona w ostatnim rozdziale, gdzie zaprezento- wane zostały wyniki jej automatycznego testowania.

3

Notacja asymptotyczna została dokładnie omówiona m. in. w pracach [8] i [10].

(18)
(19)

Rozdział 2

Słowa Fibonacciego

Pierwszą klasą słów, których postać BWT przeanalizowana została w pracy są słowa Fi- bonacciego. Pomimo, że jest to znany rezultat, przedstawiony m. in. w pozycji [7] to jednak warto spojrzeć na to zagadnienie także z punktu widzenia definicji wykorzystującej morfizmy.

Pozwala to otrzymać mniej złożony, bardziej intuicyjny dowód, który dodatkowo w prosty sposób rozszerza się na słowa Sturma. Kluczem do dowodu zwartej postaci BWT słów Fibo- nacciego będzie, ciekawe samo w sobie, twierdzenie opisujące, jak zmienia się postać BWT dowolnego słowa po wykonaniu na nim morfizmu φ f .

Dla przypomnienia, definicja, na której oprzemy dalszą część pracy wygląda następująco:

Definicja 2.0.1. i-tym słowem Fibonacciego nazywamy słowo:

f i = φ f (1), gdzie φ f oznacza następujący morfizm:

φ f :

( 0 7→ 01 1 7→ 0 .

Postać BWT kilku wybranych słów Fibonacciego okazuje się być zaskakująco prosta:

BW T (t 5 ) = 11100000 BW T (t 6 ) = 1111100000000 BW T (t 7 ) = 111111110000000000000

W powyższych przykładach wszystkie symbole 1 występują przed symbolami 0. Bazując na tej obserwacji, można wysunąć hipotezę na temat ogólnej postaci BWT słów Fibonacciego:

Twierdzenie 2.0.1. Dla dowolnej liczby naturalnej i:

BW T (f i ) = 1 F

−2

0 F

i−1

Fakt ten został już przedstawiony w pracy [7]. Dowód opierał się na klasycznej definicji

słów Fibonacciego (przez konkatenację) oraz wykorzystywał pewne teorioliczbowe własności

liczb Fibonacciego. Warto jednak spojrzeć na ten problem także z punktu widzenia alterna-

tywnej definicji (przez morfizm). Takie podejście pozwala w prosty sposób sformułować oraz

udowodnić nieco ogólniejsze twierdzenie opisujące, jak zmienia się postać BWT dowolnego

słowa nad alfabetem binarnym, jeśli wykonamy na nim morfizm φ f .

(20)

Lemat 2.0.1. Dla słów równej długości warunki u < v oraz φ(v) < φ(u) są równoważne.

Dowód. Wystarczy udowodnić, że jeśli u < v to φ(v) < φ(u). Jeśli warunek u < v jest spełniony oraz |u| = |v| to istnieją takie słowa s, u 0 , v 0 , że:

u = s 0 u 0 , v = s 1 v 0 . Możliwe są trzy przypadki. Jeśli |u 0 | = |v 0 | = 0 to:

φ f (v) = φ f (s) 0 < φ f (s) 01 = φ f (u).

Jeśli v 0 = 0v 00 dla pewnego słowa v 00 to:

φ f (v) = φ f (s) 0 01 φ f (v 00 ) < φ f (s) 01 φ f (u 0 ) = φ f (u).

Jeśli v 0 = 1v 00 dla pewnego słowa v 00 to:

φ f (v) = φ f (s) 0 0 φ f (v 00 ) < φ f (s) 01 φ f (u 0 ) = φ f (u).

We wszystkich trzech przypadkach teza jest prawdziwa.

Twierdzenie 2.0.2. Dla dowolnego słowa s ∈ {0, 1} , jeśli BW T (s) = v to:

BW T (φ f (s)) = ¯ v R 0 #

1

(v)

Dowód. Przyjrzyjmy się dokładnie temu, co dzieje się z macierzą BWT słowa s podczas wykonywania morfizmu. Przykładowo dla s = 01001001 wygląda ona następująco:

0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0

Jeżeli dokonamy podstawienia poszczególnych liter zgodnie z morfizmem φ f bezpośrednio w tej macierzy, otrzymamy następujący układ:

01 01 0 01 01 0 01 0 01 01 0 01 0 01 01 0 01 0 01 01 0 01 01 0 01 0 01 01 0 01 0 01 01 0 01 0 01 01 0 01 0 01 01 0 01 0 01 01 0 01 01 0 01 0 01 01 0 01 0 01 01 0 01 01

Zauważmy, że wiersze powstałej macierzy nie muszą być posortowane oraz nie są to wszyst-

kie rotacje słowa φ f (s). Nie jest to zatem macierz BWT dla tego słowa. Okazuje się jednak,

że stosunkowo łatwo możemy ją do niej przekształcić. Dla uproszczenia w dalszej części pracy

będziemy korzystać z następującej terminologii:

(21)

Definicja 2.0.2. Starą rotacją słowa φ f (s) będziemy nazywać każdą rotację, która powstaje przez wykonanie morfizmu φ f na pewnej rotacji słowa s. Pozostałe rotacje będziemy nazywać nowymi rotacjami.

Łatwo zauważyć, że otrzymana przez nas macierz zawiera wszystkie stare rotacje, nie zawiera natomiast żadnej nowej rotacji. Co więcej, z lematu 2.0.1 wynika, że jeśli w macierzy BWT słowa s rotacje były w kolejności leksykograficznej, to w nowej macierzy odpowiadające im rotacje są w dokładnie odwrotnej kolejności. Możemy je zatem uporządkować:

0 01 0 01 01 0 01 01 0 01 01 0 01 0 01 01 0 01 01 0 01 0 01 01 01 0 01 0 01 01 0 01 01 0 01 01 0 01 0 01 01 0 01 01 0 01 01 0 01 01 0 01 0 01 01 0 01 01 0 01 01 0 01 0

Z postaci morfizmu φ f wynika, że jeśli ostatnią literą dowolnej rotacji r słowa f i było 0 to ostatnią literą φ f (r) jest 1. Analogicznie, jeśli ostatnią literą r było 0 to ostatnią φ f (r) jest 1. Z tego wynika, że ostatnia kolumna macierzy BWT słowa φ f (s) z pomiętymi nowymi rotacjami jest równa ¯ v R .

Pozostaje zbadać, co dzieje się z nowymi rotacjami. Zauważmy, że w przypadku morfizmu φ f nowe rotacje to są dokładnie te, które zaczynają się w połowie fragmentu 01 otrzymanego w trakcie przekształcenia z litery 0. Wszystkie takie rotacje zaczynają się od 1, a kończą na 0.

Ponieważ wszystkie stare rotacje zaczynają się od 0, więc nowe rotacje znajdą się w macierzy BWT za starymi:

0 01 0 01 01 0 01 01 0 01 01 0 01 0 01 01 0 01 01 0 01 0 01 01 01 0 01 0 01 01 0 01 01 0 01 01 0 01 0 01 01 0 01 01 0 01 01 0 01 01 0 01 0 01 01 0 01 01 0 01 01 0 01 0

 

 

 

 

 

 

 

 

Stare rotacje

1 0 01 0 01 01 0 01 0 1 0 01 01 0 01 0 01 0 1 0 01 01 0 01 01 0 0 1 01 0 01 0 01 01 0 0 1 01 0 01 01 0 01 0 0

 

 

 

 

Nowe rotacje

Zatem postać BWT słowa φ f (s) to ¯ v R 0 #

1

(v) .

Warto również zauważyć, że opierając się na tym twierdzeniu, do udowodnienia posta- ci BWT słów Fibonacciego wystarcza teraz zastosowanie prostej indukcji matematycznej.

Otrzymujemy zatem inny, nieco bardziej bezpośredni niż w pracy [7] dowód twierdzenia 2.0.1.

2.1. Słowa Sturma

Ciekawym uogólnieniem słów Fibonacciego są słowa standardowe Sturma. Ich klasyczna defi-

nicja oraz liczne własności zostały omówione m. in. w pracy [13]. Podobnie jak w przypadku

słów Fibonacciego warto jednak spojrzeć na, nieco mniej popularną, definicję wykorzystującą

morfizmy.

(22)

Definicja 2.1.1. Słowo nazywamy słowem standardowym Sturma (lub po prostu słowem standardowym) wtedy i tylko wtedy, gdy istnieje ciąg liczb naturalnych a 1 , a 2 . . . a n taki, że:

s = φ a

1

◦ φ a

1

◦ . . . φ a

n

(1), a 1 ­ 0, a 2 > 0, a 3 > 0, . . . a n > 0, gdzie φ i oznacza następujący morfizm:

φ i :

( 0 7→ 0 i 1 1 7→ 0

Łatwo zauważyć, że jeśli a 1 = a 2 = · · · = a n = 1 to powyższa definicja generuje n-te słowo Fibonacciego. Postać BWT słów standardowych Sturma została już dokładnie opisana w pracy [17]. Ponieważ jest to znany rezultat, a dowód byłby jedynie prostym rozszerze- niem przypadku dla słów Fibonacciego, więc poniżej przytaczam jedynie treść twierdzenia, będącego głównym wynikiem tej pracy:

Twierdzenie 2.1.1. Słowo BW T (u) jest postaci 1 0 wtedy i tylko wtedy, gdy u jest potęgą

pewnego słowa standardowego Sturma.

(23)

Rozdział 3

Słowa Thuego-Morse’a

Zwarta postać BWT słów Thuego-Morse’a została już opisana w pracy [16]. Poniżej przed- stawiony zostanie autorski dowód wykorzystujący morfizmy. Idea będzie podobna do tej wy- korzystanej w poprzednim rozdziale dla słów Fibonacciego. Najpierw opisane zostanie, jak zmienia się postać BWT dowolnego słowa po wykonaniu morfizmu φ t , a następnie na tej podstawie wywnioskowana zostanie ogólna postać BWT słów Thuego-Morse’a. Dla przypo- mnienia, słowa Thuego-Morse’a będziemy definiować następująco:

Definicja 3.0.2. i-tym słowem Thuego-Morse’a nazywamy słowo:

t i = φ i t (0), gdzie φ t oznacza następujący morfizm:

φ t :

( 0 7→ 01 1 7→ 10

Poniższe twierdzenie opisuje, jak zmienia się postać BWT słowa s, po wykonaniu na nim morfizmu φ t .

Twierdzenie 3.0.2. Dla dowolnego słowa s ∈ {0, 1} jeśli BW T (s) = v to:

BW T (φ t (s)) = 1 #

0

(v) v 0 ¯ #

1

(v)

Dowód. Podobnie jak poprzednio przyjrzyjmy się dokładnie temu, co dzieje się z macierzą BWT słowa u podczas morfizmu. Przykładowo macierz BWT słowa u = 110101 wygląda następująco:

0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 0

Dokonując podstawienia pojedynczych liter bezpośrednio w tej macierzy, otrzymujemy:

01 10 01 10 10 10

01 10 10 10 01 10

10 01 10 01 10 10

10 01 10 10 10 01

10 10 01 10 01 10

10 10 10 01 10 01

(24)

Ponieważ morfizm φ t zachowuje porządek leksykograficzny, więc tak otrzymana macierz zawiera wszystkie stare rotacje od razu we właściwej kolejności. Jeśli ostatnią literą rotacji r słowa u jest 0 to ostatnią literą słowa φ t (r) jest 1. Analogicznie w przeciwnym przypad- ku. Zatem ostatnia kolumna tak otrzymanej macierzy jest równa ¯ v. Nowe rotacje możemy podzielić na 2 kategorie.

Pierwszą grupę stanowią rotacje zaczynające się dokładnie w połowie fragmentów 01 powstałych podczas morfizmu z liter 0. Zaczynają się one na 1 i kończą na 0. Okazuje się, że te rotacje trafią na koniec macierzy BWT, za starymi rotacjami. Faktycznie wszystkie stare rotacje są nie większe od słowa (10) i , natomiast wszystkie nowe rotacje tej postaci są nie mniejsze od słowa 1(01) i−1 0. Tych rotacji jest tyle, co liter 0 w słowie v.

Drugą grupę stanowią rotacje zaczynające się w połowie fragmentów 10 powstałych pod- czas morfizmu z liter 1. Jest ich tyle, co liter 1 w słowie v, kończą się literą 1 i trafią na początek macierzy BWT. Uzasadnienie jest analogiczne jak w poprzednim przypadku.

Zatem macierz BWT słowa φ t (u) ma następującą postać:

0 01 10 01 10 10 1 0 01 10 10 10 01 1 0 10 01 10 01 10 1 0 10 10 01 10 01 1

 

 

Nowe rotacje

01 10 01 10 10 10 01 10 10 10 01 10 10 01 10 01 10 10 10 01 10 10 10 01 10 10 01 10 01 10 10 10 10 01 10 01

 

 

 

 

 

 

Stare rotacje

1 10 01 10 10 10 0 1 10 10 10 01 10 0



Nowe rotacje

Na początku znajduje się # 0 (v) nowych rotacji kończących się na 1, następnie jest słowo BW T (v) z zanegowanymi symbolami, a następnie # 1 (v) nowych rotacji kończących się literą 0. Z tego wynika, że BW T (φ t (u)) = 1 #

0

(v) v 0 ¯ #

1

(v) .

Wykorzystując powyższe twierdzenie możemy w prosty sposób określić zwartą postać BWT słów Thuego-Morse’a. Dla kilku wybranych przykładów wygląda ona następująco:

BW T (t 5 ) = 1 8 0 4 1 2 0 1 1 1 0 1 1 1 0 2 1 4 0 8 BW T (t 6 ) = 1 16 0 8 1 4 0 2 1 1 0 1 1 1 0 1 1 2 0 4 1 8 0 16 BW T (t 7 ) = 16 32 0 16 1 8 0 4 1 2 0 1 1 1 0 1 1 1 0 2 1 4 0 8 1 16 0 32 Powyższe przykłady możemy uogólnić do następującego twierdzenia:

Twierdzenie 3.0.3. Dla dowolnego i ­ 1:

BW T (t i ) =

( α i 01 α i R dla i parzystych, α i 10 α i R dla i nieparzystych, gdzie α i oznacza następujący człon:

α i =

( 1 2

i−2

0 2

i−3

. . . 1 2

0

dla i parzystych, 1 2

i−2

0 2

i−3

. . . 0 2

0

dla i nieparzystych.

Dowód. Dowód jest prostą konsekwencją twierdzenia 3.0.2.

(25)

Rozdział 4

Słowa bezkwadratowe Thuego-Morse’a

Postać BWT bezkwadratowych słów Thuego-Morse’a nie doczekała się jeszcze opisu w litera- turze. Poniżej sformułuję i udowodnię dwa twierdzenia z tymi związane: pierwsze, ogólniejsze, opisujące zależność pomiędzy BW T (φ s (u)) a BW T (u) oraz drugie, bardziej szczegółowe, po- kazujące wprost postać BWT słów bezkwadratowych Thuego-Morse’a. Dla przypomnienia poniżej przedstawiona została definicja, na której oparto dalszą część pracy:

Definicja 4.0.3. i-tym słowem bezkwadratowym Thuego-Morse’a nazywamy słowo:

s i = φ i s (2), gdzie φ s oznacza następujący morfizm:

φ s :

 

 

0 7→ 1 1 7→ 20 2 7→ 210

Poniższe twierdzenie opisuje, jak na postać BWT dowolnego słowa wpływa wykonanie na nim morfizmu φ c . Idea dowodu jest podobna jak w przypadku słów Fibonacciego oraz Thuego-Morse’a, dowód jest jednak nieco bardziej skomplikowany.

Twierdzenie 4.0.4. Dla dowolnego słowa u ∈ {0, 1, 2} jeśli BW T (u) = v to:

BW T (φ s (u)) = φ 1 (v) 2 #

2

(v) φ 2 (v), gdzie φ 1 oraz φ 2 oznaczają następujące morfizmy:

φ 1 :

 

 

0 7→  1 7→ 2 2 7→ 1

φ 2 :

 

 

0 7→ 1 1 7→ 0 2 7→ 0

Dowód. Przyjrzyjmy się dokładnie macierzy BWT słowa u. Przykładowo dla słowa u = 122010 wygląda ona następująco:

0 1 0 1 2 2

0 1 2 2 0 1

1 0 1 2 2 0

1 2 2 0 1 0

2 0 1 0 1 2

2 2 0 1 0 1

(26)

Dokonując podstawienia zgodnie z morfizmem φ s bezpośrednio w tej macierzy otrzymujemy następujący układ zawierający wszystkie stare rotacje:

1 20 1 20 210 210 1 20 210 210 1 20 20 1 20 210 210 1 20 210 210 1 20 1 210 1 20 1 20 210 210 210 1 21 1 20

Ponieważ morfizm φ s zachowuje porządek, więc stare rotacje znajdują się od razu we właściwej kolejności. Co więcej, jeśli ostatnią literą rotacji r było x, to ostatnią literą φ s (r) jest φ 2 (x).

Zatem ostatnia kolumna tak powstałej macierzy jest równa φ 2 (v). Pozostaje zbadać, co dzieje się z nowymi rotacjami.

Wszystkie nowe rotacje zaczynające się 10 rozpoczynają się po pierwszym znaku frag- mentu 210 powstałego przez morfizm litery 2, zatem kończą się na 2. Jest ich tyle co symboli 2 w słowie BW T (u) = v. Ponieważ stare rotacje mogą zaczynać się jedynie od 11, 12, 20 lub 21, więc wszystkie takie rotacje występują przed starymi rotacjami.

10 1 20 1 20 210 2 10 210 1 21 1 20 2



Nowe rotacje 1 20 1 20 210 210

1 20 210 210 1 20 20 1 20 210 210 1 20 210 210 1 20 1 210 1 20 1 20 210 210 210 1 21 1 20

 

 

 

 

 

 

Stare rotacje

Ostatnia kolumna tak otrzymanej macierzy jest równa: 2 #

2

(v) φ 2 (v). Do uzyskania pełnej macierzy BWT słowa φ s (u) pozostaje jedynie uwzględnić nowe rotacje zaczynające się od symbolu 0.

Zauważmy, że mogą one powstać na dwa różne sposoby. Mogą się zaczynać po pierwszym znaku fragmentu 20 powstałego z morfizmu litery 1 (taka rotacja kończy się wtedy na 2) lub po drugim znaku fragmentu 210 powstałego z morfizmu litery 2 (taka rotacja kończy się wtedy na 1). Aby ustalić porządek tych dwóch typów rotacji między sobą przyjrzyjmy się tym wierszom macierzy BWT słowa u, które kończą się na 1 lub 2.

0 1 0 1 2 2 0 1 2 2 0 1 2 0 1 0 1 2 2 2 0 1 0 1

Aby otrzymać interesujące nas rotacje należy dokonać na nich morfizmu φ s oraz przesunąć ostatnią kolumnę (złożoną z samych zer) na początek.

1 20 1 20 210 210 7→

0 1 20 1 20 210 21 1 20 210 210 1 20 0 1 20 210 210 1 2 210 1 20 1 20 210 0 210 1 20 1 20 21 210 210 1 21 1 20 0 210 210 1 21 1 2

Zauważmy, że w ten sposób otrzymamy wszystkie nowe rotacje zaczynające się od 0 posor- towane od razu w kolejności leksykograficznej. Co więcej, jeśli ostatnią literą pewnej rotacji słowa u było 1, to ostatnią literą odpowiadającej mu rotacji zaczynającej się od 0 jest 2.

Podobnie, jeśli ostatnią literą pewnej rotacji słowa u było 2, to ostatnią literą odpowiada-

jącej mu rotacji zaczynającej się od 0 jest 1. Zatem ostania kolumna pierwszego fragmentu

(27)

macierzy BWT słowa φ s (u) jest równa φ 1 (v). Cała macierz BWT słowa φ(u) wygląda zatem następująco:

0 1 20 1 20 210 21 0 1 20 210 210 1 2 0 210 1 20 1 20 21 0 210 210 1 21 1 2

 

 

Nowe rotacje

10 1 20 1 20 210 2 10 210 1 21 1 20 2



Nowe rotacje 1 20 1 20 210 210

1 20 210 210 1 20 20 1 20 210 210 1 20 210 210 1 20 1 210 1 20 1 20 210 210 210 1 21 1 20

 

 

 

 

 

 

Stare rotacje

Ostatnia kolumna tak powstałej macierzy jest równa BW T (u) = φ 1 (v) 2 #

2

(v) φ 2 (v).

Wykorzystując powyższe twierdzenie, zajmiemy się teraz opisem postaci BWT słów bez- kwadratowych Thuego-Morse’a. Jak pokazują pierwsze przykłady, jest ona w pewien sposób regularna:

BW T (s 0 ) = 2 1 BW T (s 1 ) = 1 1 2 1 0 1 BW T (s 2 ) = 2 1 1 1 2 1 0 2 1 1 BW T (s 3 ) = 1 1 2 1 1 1 2 3 0 3 1 2 0 1 BW T (s 4 ) = 2 1 1 1 2 1 1 3 2 6 0 6 1 3 0 2 1 1 BW T (s 5 ) = 1 1 2 1 1 1 2 3 1 6 2 12 0 12 1 6 0 3 1 2 0 1

Faktycznie, powyższe obserwacje możemy uogólnić do następującego twierdzenia:

Twierdzenie 4.0.5. Dla dowolnego i ­ 2:

BW T (s i ) =

( 212 α i β i 001 dla i parzystych, 121 α i β i 110 dla i nieparzystych, gdzie α i oraz β i oznaczają następujące człony:

α i =

( 1 3·2

0

2 3·2

1

1 3·2

2

. . . 2 3·2

(i−3)

dla i parzystych, 2 3·2

0

1 3·2

1

2 3·2

2

. . . 2 3·2

(i−3)

dla i nieparzystych,

β i =

( 0 3·2

(i−3)

1 3·2

(i−4)

0 3·2

(i−5)

. . . 1 3·2

0

dla i parzystych, 0 3·2

(i−3)

1 3·2

(i−4)

0 3·2

(i−5)

. . . 0 3·2

0

dla i nieparzystych,

Dowód. Dla i = 2 równość jest spełniona. Załóżmy, że równość jest spełniona dla pewnego i ∈ N. Rozpatrzmy jako pierwszy przypadek parzystego i. Wtedy:

BW T (s i ) = 212 α i β i 001, gdzie

α i = 1 3·2

0

2 3·2

1

1 3·2

2

. . . 2 3·2

(i−3)

,

β i = 0 3·2

(i−3)

1 3·2

(i−4)

0 3·2

(i−5)

. . . 1 3·2

0

.

(28)

Oznaczmy BW T (s i ) przez v. Wtedy na mocy twierdzenia 4.0.4 spełniona jest równość:

BW T (s i+1 ) = φ 1 (v) 2 #

2

(v) φ 2 (v)

Przyjrzyjmy się jak wyglądają kolejne człony prawej strony. Pierwszy człon:

φ 1 (v) = φ 1 (212 α i β i 001)

= φ 1 (212) φ 1 i ) φ 1 i ) φ 1 (001)

= 121 φ 1 i ) φ 1 i ) 2

= 121 φ 1 i ) 2 #

1

i

) 2

= 121 φ 1 i ) 2 #

1

i

) + 1 Drugi człon:

2 #

2

(v) = 2 #

2

(212) + #

2

i

) + #

2

i

) + #

2

(001)

= 2 2 + #

2

i

) Trzeci człon:

φ 2 (v) = φ 2 (212 α i β i 001)

= φ 2 (212) φ 2 i ) φ 2 i ) φ 2 (001)

= 000 φ 2 i ) φ 2 i ) 110

= 000 0

i

| φ 2 i ) 110

= 0

i

| + 3 φ 2 i ) 110

Łącząc kolejne człony otrzymujemy słowo:

BW T (s i+1 ) = 121 φ 1 i ) 2 #

1

i

) + 1 2 2 + #

2

i

) 0

i

| + 3 φ 2 i ) 110

= 121 φ 1 i ) 2 #

1

i

) + #

2

i

) + 3 0

i

| + 3 φ 2 i ) 110 Zauważmy, że:

# 1 i ) = 3 · 2 i−4 + 3 · 2 i−6 + . . . 3 · 2 0

# 2 i ) = 3 · 2 1 + 3 · 2 3 + . . . 3 · 2 i−3

i | = 3 · 2 0 + 3 · 2 1 + . . . 3 · 2 i−3 Zatem:

# 1 i ) + # 2 i ) + 3 = |α i | + 3 = 3 · 2 i−2 Podstawiając:

BW T (s i+1 ) = 121 φ 1 i ) 2 3·2

i−2

0 3·2

i−2

φ 2 i ) 110 Ponieważ:

φ 1 i ) 2 3·2

i−2

= α i+1 0 3·2

i−2

φ 2 i ) = β i+1 więc:

BW T (s i+1 ) = 121 α i+1 β i+1 110

Dowód dla i nieparzystego jest analogiczny.

(29)

Rozdział 5

Słowa Cantora

Kolejną klasą słów, które zostały zbadane w ramach pracy są tzw. słowa Cantora. W przy- padku tej klasy technika dowodu zwartej postaci BWT będzie istotnie inna. Zamiast badać, jak zmienia się postać BWT w kolejnych iteracjach, przeanalizujemy strukturę całego słowa oraz układ jego rotacji. Słowa Cantora są ciekawym przypadkiem, gdyż, jak łatwo można za- uważyć w trakcie dowodu, stare i nowe rotacji mieszają się w nich w bardzo wielu miejscach (w przypadku pozostałych klas słów liczba ta był najczęściej stała).

Dla przypomnienia słowa Cantora możemy zdefiniować np. w następujący sposób:

Definicja 5.0.4. i-tym słowem Cantora będziemy nazywali słowo:

c i = φ i c (1), gdzie φ c oznacza następujący morfizm:

φ c :

( 0 7→ 000 1 7→ 101

Postać BWT słów Cantora jest stosunkowo skomplikowana, zwłaszcza w porównaniu do ich dość prostej budowy. Niemniej jednak przy odrobinie wysiłku także w przypadku tej klasy słów możemy opisać ją zwartym wzorem.

Twierdzenie 5.0.6. Dla dowolnego i ­ 0:

BW T (c i ) = α i,1 α i,2 . . . α i,i 0 2

i

−i−1 10 i gdzie α i,j oznacza następujący człon:

α i,j =

( 1 2

j−1

−1 0 2

j−1

−1 10 (2

j

−1)·(3

i−j

−3

i−j−1

−1) dla j < i, 1 2

j−1

−1 0 2

j−1

−1 1 dla j = i,

Dowód. Zauważmy, że macierz BWT słowa c i możemy podzielić na dwie części: rotacje roz- poczynające się od symbolu 0 oraz rotacje rozpoczynające się od symbolu 1. Wystarczy pokazać, że ostatnią kolumną pierwszej części jest α i,1 α i,2 . . . α i,i , a ostatnią kolumną drugiej części jest 0 2

i

−i−1 10 i .

Zajmijmy się w pierwszej kolejności rotacjami rozpoczynającymi się od symbolu 0. Każda

rotacja rozpoczynająca się od symbolu 0 rozpoczyna się od prefiksu postaci 0 n 1 dla pewnego

n ∈ N – w takiej sytuacji będziemy mówić, że rotacja rozpoczyna się od bloku n zer. Za-

uważmy, że w macierzy BWT rotacje rozpoczynające się od dłuższego bloku zer występują

(30)

przed tymi, które zaczynają się od krótszego bloku zer. Podzielmy zatem wszystkie rotacje rozpoczynające się od symbolu 0 na i części (o numerach od 1 do i). Niech j-ta część zawiera rotacje rozpoczynające się od bloku zer o długościach z przedziału (3 i−j−1 , 3 i−j i. Wystarczy pokazać, że ostatnią kolumną tak zdefiniowanej j-tej części jest α i,j .

Poniżej przedstawiona jest macierz BWT dla przykładowego słowa c 3 . Pojedyncze linie oddzielają poszczególne części (zgodnie z powyższą definicją), natomiast podwójna oddziela fragment zawierający rotacje rozpoczynające się od symbolu 1.

000000000101000101101000101 000000001010001011010001010 000000010100010110100010100 000000101000101101000101000 000001010001011010001010000 000010100010110100010100000

 

 

 

 

 

 

α

3,1

= 1

21−1−1

0

21−1−1

10

(21−1)·(33−1−33−1−1−1)

000101000000000101000101101 000101000101101000101000000 000101101000101000000000101 001010000000001010001011010 001010001011010001010000000 001011010001010000000001010

 

 

 

 

 

 

α

3,2

= 1

22−1−1

0

22−1−1

10

(22−1)·(33−2−33−2−1−1)

010000000001010001011010001 010001010000000001010001011 010001011010001010000000001 010100000000010100010110100 010100010110100010100000000 010110100010100000000010100 011010001010000000001010001

 

 

 

 

 

 

 

 

α

3,3

= 1

23−1−1

0

23−1−1

1

100000000010100010110100010 100010100000000010100010110 100010110100010100000000010 101000000000101000101101000 101000101000000000101000101 101000101101000101000000000 101101000101000000000101000 110100010100000000010100010

 

 

 

 

 

 

 

 

 

 

0

23−3−1

10

3

Na początku j-tej części znajdują się rotacje zaczynające się od bloku 3 i−j zer. Zauważmy, że dokładnie 2 j−1 z tych rotacji rozpoczyna się na początku bloku dokładnie tej długości – takie rotacje kończą się symbolem 1, a dokładnie 2 j−1 − 1 rozpoczyna się wewnątrz bloku większej długości – takie rotacje kończą się symbolem 0.

Pozostaje ustalić, w jaki sposób te dwa rodzaje rotacji przeplatają się w macierzy BWT.

Zauważmy, że jeżeli rotacja rozpoczyna się od bloku zer o długości podzielnej przez 3 to jest to stara rotacja. Zatem dla każdej z nich możemy znaleźć rotację poprzedniego słowa Cantora, z której ona powstała. Ponieważ morfizm φ c zachowuje porządek, więc operacja ta nie zmienia kolejności badanych rotacji. Postępując w ten sposób i − j razy dojdziemy do rotacji rozpoczynających się jednym z następujących prefiksów: 0100, 0101, 011. Przykładowo dla początkowych rotacji z drugiej części macierzy BWT słowa c 3 otrzymujemy:

000101000000000101000101101 010001011 000101000101101000101000000 7→ 010110100 000101101000101000000000101 011010001

Zauważmy, że z postaci morfizmu φ c wynika, że rotacje rozpoczynające się od 0100 lub 011

muszą kończyć się symbolem 1, natomiast rotacje rozpoczynające się od 0101 muszą kończyć

się symbolem 0. Zauważmy też, że dokładnie jedna rotacja może zaczynać się od prefiksu 011,

(31)

gdyż fragment 11 może powstać jedynie na skutek złączenia pierwszej i ostatniej litery słowa Cantora. Wynika z tego, że ostatnia kolumna badanego fragmentu macierzy BWT ma postać 1 0 1 – tylko jedna rotacja kończąca się na 1 może trafić za rotacje kończące się na 0. Zatem ostatnia kolumna j-tej części macierzy BWT rozpoczyna się od słowa 1 2

j−1

−1 0 2

j−1

−1 1.

Zaraz za rotacjami rozpoczynającymi się od bloku 3 i−j zer w j-tej części znajdują się rotacje rozpoczynające się do bloków zer o długościach z przedziału (3 i−j−1 , 3 i−j ). Ponieważ wszystkie bloki zer w słowie Cantora mają długość będącą potęgą trójki, więc wszystkie takie rotacje kończą się symbolem 0. Takich rotacji jest dokładnie (2 i − 1) · (3 i−j − 3 i−j−1 − 1) dla j < i lub 0 dla j = i. Zatem ostatnia kolumna j-tej części macierzy BWT jest faktycznie równa α i,j .

Pozostaje zbadać, jak wygląda fragment macierzy BWT zawierający rotacje rozpoczyna- jące się od symbolu 1. Zauważmy, że takich rotacji jest dokładnie 2 i , a spośród nich dokładnie jedna (ta równa oryginalnemu słowu c i ) kończy się symbolem 1. Pokażemy, że w macierzy BWT słowa c i znajduje się ona na pozycji i + 1 od końca. Dla i = 0 oraz i = 1 teza jest prawdziwa. Załóżmy, że jest tak dla pewnego i ∈ N. Zauważmy, że podczas dokonywania morfizmu φ c stare rotacje nie zmieniają kolejności, natomiast prawie wszystkie nowe rotacje, które rozpoczynają się do 1 rozpoczynają od prefiksu 1000, a dokładnie jedna od prefiksu 1101 – jest tak, gdyż dokładnie jedna rotacja słowa c i może rozpoczynać się od prefiksu 11.

Ponieważ słowo c i+1 zawsze rozpoczyna się od 101, więc tylko ta jedna rotacja trafi za słowo

c i+1 . Zatem znajdzie się on na pozycji i + 2 od końca. Na mocy zasady indukcji teza jest

prawdziwa dla dowolnego n ∈ N, czyli ostatnia kolumna tego fragmentu macierzy BWT jest

równa 0 2

i

−i−1 10 i , co kończy dowód całego twierdzenia.

(32)

Cytaty

Powiązane dokumenty

Key words: magnetoelasticity, material surface, membrane theory, sur- face current, real electric conductor, perfect electric conductor, residual

Bardzo ważnym uzupełnieniem publikowanych w niniejszej książce autentycznych listów z epoki, które potraktować musimy jako niezwykle cenne, wręcz unikatowe – i to

dziwym aniołem). W tekstach niebiblijnych słowo anioł nabiera również znaczenia ‘zwiastun, sprawca, symbol’, por. anioł pokoju, anioł wojny, anioł śmierci itp.

Echa sporów o prawidę jako istotę rzeczy znajdujem y u św. Byt także pojęciowo wyprzedza praw dę i jest pierwszym pojęciem intelektu. Można odnieść byt do

П риведем несколько примеров употребления этого слова из соврем ен н ой печати: .... В настоящ ее врем я из английского языка

16 Сразу после такого дифирамба в честь дамы, напоминающей Клео- патру из произведения Пушкина, рассказчик меняет торжественное настроение: А продавщица в

This research focuses on optimization and redesign of the Unaccompanied Minor handling process, according to the criteria defined by KLM as reliability, customer

1) materialne możliwości państwa i samorządu terytorialnego – zdolności finansowe państwa i samorządu terytorialnego do pokrycia kosztów różnych świadczeń na