ASD Ćwiczenia 13: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
Linia 159: | Linia 159: | ||
dowodu poprawności algorytmu. | dowodu poprawności algorytmu. | ||
Dowód przeprowadzimy nie wprost - załóżmy, że w tym kroku kolejka | Dowód przeprowadzimy nie wprost - załóżmy, że w tym kroku kolejka | ||
się nie opróżni i że jest to pierwsze wystąpienie wzorca, którego algorytm nie | się nie opróżni i że jest to pierwsze wystąpienie wzorca, którego algorytm nie | ||
Linia 168: | Linia 167: | ||
oraz <math>|Kolejka|=0</math>. Pokażemy, że odtąd | oraz <math>|Kolejka|=0</math>. Pokażemy, że odtąd | ||
aż do miejsca wystąpienia wzorca zachodzić będzie niezmiennik | aż do miejsca wystąpienia wzorca zachodzić będzie niezmiennik | ||
< | |||
<math>|Kolejka|<m-j.</math><br> | |||
< | <center> <math>|Kolejka|<m-j.</math><br></center> | ||
Faktycznie, zastanówmy się co się może wydarzyć w dowolnym, kolejnym kroku algorytmu, | Faktycznie, zastanówmy się co się może wydarzyć w dowolnym, kolejnym kroku algorytmu, | ||
a co może zmienić wartość zmiennej <math>j</math>: | a co może zmienić wartość zmiennej <math>j</math>: | ||
Linia 181: | Linia 181: | ||
Moze być raz wywołana instrukcja <math>j:=P[j]</math>, a raz <math>j:=j+1</math> (w jakiejkolwiek | Moze być raz wywołana instrukcja <math>j:=P[j]</math>, a raz <math>j:=j+1</math> (w jakiejkolwiek | ||
kolejności). Wówczas <math>|Kolejka|</math> się nie zmienia, <math>m-j</math> pozostaje bez zmian | kolejności). Wówczas <math>|Kolejka|</math> się nie zmienia, <math>m-j</math> pozostaje bez zmian | ||
Linia 187: | Linia 186: | ||
Mogą nastąpić dwie instrukcje powiększające <math>j</math> o <math>1</math>. | |||
Wówczas <math>|Kolejka|</math> maleje o <math>2</math>, <math>m-j</math> także maleje o <math>2</math>, zatem niezmien | Wówczas <math>|Kolejka|</math> maleje o <math>2</math>, <math>m-j</math> także maleje o <math>2</math>, zatem niezmien | ||
nik | nik | ||
Linia 193: | Linia 192: | ||
Kolejka \textit{nie} może się opróżnić, gdyż zakładamy, że to nie nastąpi | Kolejka \textit{nie} może się opróżnić, gdyż zakładamy, że to nie nastąpi | ||
przed aktualnie rozważanym wystąpieniem wzorca. Instrukcja <math>j:=P[m]</math> również | przed aktualnie rozważanym wystąpieniem wzorca. Instrukcja <math>j:=P[m]</math> również | ||
Linia 200: | Linia 199: | ||
Zatem niezmiennik jest zachowany od ostatniego momentu opróżnienia kolejki | Zatem niezmiennik jest zachowany od ostatniego momentu opróżnienia kolejki | ||
do momentu niezauważonego wystąpienia wzorca. W chwili przetworzenia literki, | do momentu niezauważonego wystąpienia wzorca. W chwili przetworzenia literki, | ||
która powoduje wystąpienie zachodzi <math>j=m</math>, czyli na mocy pokazanego niezmiennika | która powoduje wystąpienie zachodzi <math>j=m</math>, czyli na mocy pokazanego niezmiennika | ||
<math>|Kolejka|<m-m=0</math>, <math>|Kolejka|<0</math>. To z kolei daje żądaną sprzeczność. | <math>|Kolejka|<m-m=0</math>, <math>|Kolejka|<0</math>. To z kolei daje żądaną sprzeczność. | ||
(Rozwiązanie opracował Jakub Radoszewski) | |||
</div> | </div> | ||
</div> | </div> |
Wersja z 10:58, 21 lis 2006
Zadanie 1
Uzasadnić poprawność algorytmu obliczającego długość najkrótszego słowa pokrywającego dany tekst.
Rozwiązanie
Zadanie 2
Udowodnić, że w wersji on-line algorytmu KMP mamy
Rozwiązanie
Zadanie 3
Udowodnić, ż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