Zadanie 1
Słowem pokrywającym tekst x taki tekst y, którego wystąpienia w x
pokrywają cały tekst x. Na przykład aba pokrywa ababaaba, natomiast nie pokrywa tekstu abaaababa.
Obliczyć długość najkrótszego słowa pkrywającego dany tekst x.
Rozwiązanie
Niech
będzie rozmiarem minimalnego pokrywajćego słowa dla prefiksu . Algorytm wykorzystuje następujący
fakt: \ \ Następujący algorytm liczy długość minimalnego słowa
pokrywającego tekstu x. Liczymy wartości najmniejszej długości minimalnego słowa pokrywającego dla każdego .
W -tej
iteracji algorytm pamięta jaki jest ``znany zakres każdego minimalnego słowa pokrywającego.

Rysunek 3: -ta iteracja algorytmu, dla , oraz słowa . Tuż przed
rozpoczęciem tej iteracji mamy , , . Po zakończeniu -tej iteracji
mamy , ponieważ .
Algorytm Rozmiar-Minimalnego-Pokrycia
for to do
for to do
if oraz then
; ;
return ;
Zadanie 2
Udowodnić, że w wersji on-line algorytmu KMP mamy
Rozwiązanie
Wystarczy wykazać, że
Fakt ten wynika z lematu o okresowości i z definicji tablicy P'.
Zadanie 3
Udowdnij poprawność algorytmu na cykliczną równoważność słów.
Rozwiązanie
Zdefiniujmy:
oraz dla pewnego ,
oraz dla pewnego .
Skorzystamy z prostego faktu:
Jeśli lub , to nie są równoważne.
Poprawność algorytmu wynika teraz z tego, że po każdej głównej iteracji zachodzi niezmiennik:
\ oraz \ .
Zadanie 3
Dla jakich tekstów algorytm na cykliczną równoważność słów wykonuje maksymalną liczbę porównan symboli
Rozwiązanie
Dla tekstów postaci o tej samej długości.
Zadanie ?
???????
Zadanie ?
???????
Zadanie ?
???????