ALG!0

ALG!0



210 Rozdział 8. Przeszukiwanie tekstów

Zaprezentowany w tym paragrafie algorytm wykorzystuje komputer jako bezmyślne, ale sprawne liczydłoó. Jego złożoność obliczeniowa eliminuje go w praktyce z przeszukiwania tekstów binarnych, w których może wystąpić wiele niekorzystnych konfiguracji danych. Jedyną zaletą algorytmu jest jego prostota, co i tak nie czyni go na tyle atrakcyjnym, by dać się zamęczyć jego powolnym działaniem.

8.2. Nowe algorytmy poszukiwań

Algorytm, o którym będzie mowa w tym rozdziale, posiada ciekawą historię, którą w' formie anegdoty warto przytoczyć. Otóż w 1970 roku S. A. Cook udowodnił teoretyczny rezultat dotyczący pewnej abstrakcyjnej maszyny. Wynikało z niego, że istniał algorytm poszukiwania wzorca w tekście, który działał w czasie proporcjonalnym do M+N w najgorszym przypadku. Rezultat pracy Cooka wcale nie byl przewidziany do praktycznych celów, niemniej D. E. Knuth i V. R. Pratt otrzymali na jego podstawie algorytm, który byl łatwo implcmentowalny praktycznie — ukazując przy okazji, iż pomiędzy praktycznymi realizacjami a rozważaniami teoretycznymi wcale nic istnieje aż tak ogromna przepaść, jakby się to mogło wydawać. W tym samym czasie J. H. Morris „odkrył” dokładnie ten sam algorytm jako rozwiązanie problemu, który napotkał podczas praktycznej implementacji edytora tekstu. Algorytm K-M-P - bo tak będziemy go dalej zwali-jest jednym z przykładów' dość częstych w nauce „odkryć równoległych”: z jakichś niewiadomych powodów nagle kilku pracujących osobno ludzi dochodzi do tego samego dobrego rezultatu. Prawda, że jest w tym coś niesamowitego i aż się prosi ojakieś metafizyczne hipotezy?

Knuth. Morris i Pratt opublikowali swój algorytm dopiero w 1976 roku. W międzyczasie pojawił się kolejny „cudowny” algorytm, tym razem autorstwa R. S. Boyera i J. S. Moore’a, który okazał się w pewnych zastosowaniach znacznie szybszy od algorytmu K-M-P. Został on również równolegle wynaleziony (odkryty?) przez R. W. Gospera. Oba te algorytmy sąjednak dość trudne do zrozumienia bez pogłębionej analizy, co utrudniło ich rozpropagowanie.

W roku 1980 R. M. Karp i M. O. Rabin doszli do wniosku, że przeszukiwanie tekstów nie jest aż tak dalekie od standardowych metod przeszukiwania i wynaleźli algorytm, który działając ciągle w czasie proporcjonalnym do M+N, jest ideowo zbliżony do poznanego już przez nas algorytmu typu brute-force. Na

6 Termin brute-force jeden z moich znajomych ślicznie przetłumaczył jako „metodę ma-stodonta".


Wyszukiwarka

Podobne podstrony:
ALG 8 8.‘ 208 Rozdział 8. Przeszukiwanie tekstów Rys. H - 1. Algorytm typu
ALG!8 218 Rozdział 8. Przeszukiwanie tekstów for(i—M 1,j —M-l; j>0; i — , j—) while(t[i]!=włj)) (
ALG!2 212 Rozdział 8. Przeszukiwanie teksfe Rys. 8 - 3. 1 Wyszukiwanie tekst przebadany tekst do
ALG!4 214 Rozdział 8. Przeszukiwanie tekstdw inicjacji tej tablicy. Funkcja inicjująca tablicę jest
ALG!6 216 Rozdział 8. Przeszukiwanie tekslói8.2.2.Algorytm Boyera i Moore’a Kolejny algorytm, który
ALG 0 220 Rozdział 8. Przeszukiwanie tekstwI iLi kowej i przenosząc otrzymaną wartość do następnego
ALG9 3.7. Analiza programów rekurencyjnych 69 W tym paragrafie przedstawiona zostanie metoda mająca
pism krytyka, ułożyła 15 tekstów poświęconych tym związkom w odrębny rozdział, który mógłby być
ALG 3 Rozdział 5Struktury danych Nikogo nie trzeba chyba przekonywać o wadze tematu, który zostanie
ALG9 Rozdział 7Algorytmy przeszukiwania Pojęcie „przeszukiwania” pojawiało się w tej książce już ki
ALG6 Rozdział 7. Algorytmy przeszukiwania r > dzielenie modulo RmM: H(v) = v% Rmax Przykład: Dla
ALG 0 200 Rozdział 7. Algorytmy przeszukiwania Rekordy E i F zostały zapamiętane w momencie stwierdz
ALG 2 202 Rozdział 7. Algorytmy przeszukiwani! gdzie a jest współczynnikiem zapełnienia tablicy T. A
ALG 4 204 Rozdział 7. Algorytmy przeszukiwania i (gdzie a jest, tak jak poprzednio, współczynnikiem
ALG 7 Rozdział 8Przeszukiwanie tekstów Zanim na dobre zanurzymy się w lekturę nowego rozdziału, nale
ALG$3 9,4. Uwagi bibliograficzne 2439.4. Uwagi bibliograficzne W tym rozdziale mieliśmy okazję pozna
ALG 8 258 Rozdział 10. Elementy algorytmiki grafa 1 Rys. 10- 10. Przeszukiwanie grafu „ w głąb Listu
ALG&0 260 Rozdział 10. Elementy algorytmiki grafów przebadane podczas przeszukiwania. Dopiero potem

więcej podobnych podstron