ASD Ćwiczenia 13: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 209: | Linia 209: | ||
=='''Zadanie 10''' == | =='''Zadanie 10''' == | ||
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> | |||
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> | ||
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> | ||
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
Rozwiązanie
Zadanie 3
Udowodnij, że w wersji on-line algorytmu KMP mamy
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 oznacza najmniejszy wspólny dzielnik p,q.
Lemat [Lemat o okresowości]
Jeśli x ma okresy p, q oraz , to 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 , to 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