ASD Ćwiczenia 13: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Rytter (dyskusja | edycje)
Nie podano opisu zmian
Rytter (dyskusja | edycje)
Linia 209: Linia 209:
=='''Zadanie 10''' ==
=='''Zadanie 10''' ==


Udowdnij że algorytm Oszczędny KMP wykonuje co najwyżej 3/2 n porównań
Przprowadź dokładny dowód tego, że algorytm Oszczędny KMP wykonuje co najwyżej 3/2 n porównań
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
<div class="mw-collapsible mw-made=collapsible mw-collapsed">
Rozwiązanie
Rozwiązanie
Linia 231: Linia 231:
na tych pozycjach, gdzie wcześniej szukaliśmy litery <math> b</math>  --- pierwszej litery
na tych pozycjach, gdzie wcześniej szukaliśmy litery <math> b</math>  --- pierwszej litery
wzorca <math> x'</math>  --- i nie znaleźliśmy jej.
wzorca <math> x'</math>  --- i nie znaleźliśmy jej.
<br><br>
<br>


Do szufladki <math> B</math>  wrzucamy wszystkie pozostałe porównania, czyli:
Do szufladki <math> B</math>  wrzucamy wszystkie pozostałe porównania, czyli:


<br>  
<br>  
Linia 243: Linia 242:
<br> Porównania początkowych liter <math> a</math>  na tych pozycjach, gdzie wcześniej
<br> Porównania początkowych liter <math> a</math>  na tych pozycjach, gdzie wcześniej
szukaliśmy litery <math> b</math>  i nie znaleźliśmy jej.
szukaliśmy litery <math> b</math>  i nie znaleźliśmy jej.
<br><br>
<br>
 


Zauważmy, że w algorytmie MP pozycje tekstu, na których nigdy nie było
Zauważmy, że w algorytmie MP pozycje tekstu, na których nigdy nie było
Linia 279: Linia 277:
wskaźnik przesunął się o conajmniej <math> k+1+L \geq 2L</math> , gdzie <math> L</math>  to liczba
wskaźnik przesunął się o conajmniej <math> k+1+L \geq 2L</math> , gdzie <math> L</math>  to liczba
takich porównań liter <math> a</math>  w jednej próbie znalezienia wzorca <math> x</math> .
takich porównań liter <math> a</math>  w jednej próbie znalezienia wzorca <math> x</math> .
<br><br>
<br>
 
Czyli każde porównanie z szufladki <math> B</math>  przesuwa wskaźnik ,,gdzie teraz
Czyli każde porównanie z szufladki <math> B</math>  przesuwa wskaźnik ,,gdzie teraz
szukamy'' o conajmniej <math> 2</math> , czyli tych porównań jest nie więcej niż
szukamy'' o conajmniej <math> 2</math> , czyli tych porównań jest nie więcej niż

Wersja z 17:58, 18 gru 2006

Zadanie 1

Uzasadnij poprawność algorytmu obliczającego długość najkrótszego słowa pokrywającego dany tekst.

Rozwiązanie


Zadanie 2

Udowodnij, że w wersji on-line algorytmu KMP mamy delay=O(logm)

Rozwiązanie



Zadanie 3

Udowodnij, że w wersji on-line algorytmu KMP mamy delay=Ω(logm)

Rozwiązanie



Zadanie 4

Udowodnij poprawność algorytmu na cykliczną równoważność słów.

Rozwiązanie


Zadanie 5

Dla jakich tekstów algorytm na cykliczną równoważność słów wykonuje maksymalną liczbę porównan symboli?

Rozwiązanie

Zadanie 6

Mamy zbiór słów, każde długości dwa, obliczyć długość minimalnego tekstu który zawiera wszystkie słowa.

Rozwiązanie



Zadanie 7

Udowodnij następującą ciekawą własność kombinatoryczną okresowości w tekstach. Niech nwd(p,q) oznacza najmniejszy wspólny dzielnik p,q.


Lemat [Lemat o okresowości]

Jeśli x ma okresy p, q oraz p+q|x|, to nwd(p,q) jest również okresem x.


Rozwiązanie


Zadanie 8

Lemat o okresowości można wzmocnić, osłabiając założenia. Udowodnij następujący lemat.

Lemat [Silny lemat o okresowości]

Jeśli x ma okresy p, q oraz p+q|x|+nwd(p,q), to nwd(p,q) jest również okresem x.

Rozwiązanie

Zadanie 9

Udowdnij poprawność algorytmu KMP realtime

Rozwiązanie

Zadanie 10

Przprowadź dokładny dowód tego, że algorytm Oszczędny KMP wykonuje co najwyżej 3/2 n porównań

Rozwiązanie