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)
Nie podano opisu zmian
Linia 207: Linia 207:
</div>
</div>


=='''Zadanie 9''' ==
=='''Zadanie 10''' ==


Udowdnij że algorytm Oszczędny KMP wykonuje co najwyżej 3/2 n porównań
Udowdnij że algorytm Oszczędny KMP wykonuje co najwyżej 3/2 n porównań
Linia 219: Linia 219:
w szufladce <math> A</math>  będzie co najwyżej <math> n</math>  porównań, a w szufladce <math> B</math>  co najwyżej
w szufladce <math> A</math>  będzie co najwyżej <math> n</math>  porównań, a w szufladce <math> B</math>  co najwyżej
<math> \frac{n}{2}</math>  porównań.
<math> \frac{n}{2}</math>  porównań.
Do szufladki <math> A</math>  wrzucamy:
Do szufladki <math> A</math>  wrzucamy:


Linia 241: Linia 240:
za wyjątkiem nieudanych porównań pierwszej litery; są to nieudane porównania
za wyjątkiem nieudanych porównań pierwszej litery; są to nieudane porównania
dokonywane w momencie, gdy znaleźliśmy już jakiś niepusty prefiks <math> x'</math> .
dokonywane w momencie, gdy znaleźliśmy już jakiś niepusty prefiks <math> x'</math> .


<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
Linia 270: Linia 268:


W związku z tym:
W związku z tym:
<br>
<br>
Porównania z szufladki <math> B</math> , podpunkt <math> 1</math>  przesuwają wskaźnik o conajmniej
Porównania z szufladki <math> B</math> , podpunkt <math> 1</math>  przesuwają wskaźnik o conajmniej
<math> k+1 \geq 2</math> .
<math> k+1 \geq 2</math> .


<br>
<br>
Linia 285: Linia 280:
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><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ż
<math> \frac{n}{2}</math> .
<math> \frac{n}{2}</math> .


''(Rozwiązanie opracował Marcin Pilipczuk)''
''(Rozwiązanie opracował Marcin Pilipczuk)''
</div>
</div>
</div>
</div>

Wersja z 17:31, 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

Udowdnij że algorytm Oszczędny KMP wykonuje co najwyżej 3/2 n porównań

Rozwiązanie