• Nie Znaleziono Wyników

algorytmy tekstowe

N/A
N/A
Protected

Academic year: 2021

Share "algorytmy tekstowe"

Copied!
41
0
0

Pełen tekst

(1)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Algorytmy tekstowe

zaj ˛ecia 7.

(2)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Słowa

słowodla informatyka to ci ˛ag znaków

(3)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Problemy

Najcz ˛e´sciej stawiany problem tekstowy: wyszukiwanie wzorca w tek´scie

znak

alfabet– zbiór dost ˛epnych znaków słowa– ci ˛agi znaków

(4)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Problemy

Najcz ˛e´sciej stawiany problem tekstowy: wyszukiwanie wzorca w tek´scie znak

alfabet– zbiór dost ˛epnych znaków słowa– ci ˛agi znaków

(5)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Problemy

Najcz ˛e´sciej stawiany problem tekstowy: wyszukiwanie wzorca w tek´scie znak

alfabet– zbiór dost ˛epnych znaków

(6)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Problemy

Najcz ˛e´sciej stawiany problem tekstowy:

wyszukiwaniewzorcawtek´scie

znak

alfabet– zbiór dost ˛epnych znaków

(7)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Przykład

Problem alfabet: {a, b} tekst: abbbaabaabba wzorzec: aaba

(8)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Przykład

Problem alfabet: {a, b} tekst: abbbaabaabba wzorzec: aaba Rozwi ˛azanie wyst ˛apienia: 1 abbbaabaaabaa 2 abbbaabaabaa

(9)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Pomysł

(10)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Działanie

cbadabcbaabccdba bccd bccd bccd bccd bccd bccd

(11)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Zło˙zono´s´c

n – długo´s´c tekstu m – długo´s´c wzorca O(n · m)

(12)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Zło˙zono´s´c

n – długo´s´c tekstu m – długo´s´c wzorca O(n · m)

(13)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Czy rzeczywi´scie O(n · m)?

tekst: aaaaaa . . . aaaa (długo´sci n) wzorzec: aa . . . aab (długo´sci m) ile operacji wykonuje algorytm naiwny?

(14)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Czy rzeczywi´scie O(n · m)?

tekst: aaaaaa . . . aaaa (długo´sci n) wzorzec: aa . . . aab (długo´sci m) liczba operacji: (n − m + 1) · m

(15)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Pomysł

Za ka˙zdym razem zaczynamy porównywa´c od pocz ˛atku –

(16)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Pomysł

Za ka˙zdym razem zaczynamy porównywa´c od pocz ˛atku –

tracimy cenne informacje!

Przykład

abaaaaaaaaaaaa

(17)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Pomysł

Za ka˙zdym razem zaczynamy porównywa´c od pocz ˛atku –

tracimy cenne informacje!

Przykład

abaaaaaaaaaaaa abaaaaaaaaaaaa

(18)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Trudne słowa

prefiks sufiks prefikso-sufiks

(19)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Trudne słowa

prefiks sufiks prefikso-sufiks

(20)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Trudne słowa

prefiks sufiks prefikso-sufiks

(21)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Tablica najdłu˙zszych prefikso-sufiksów – P[ ]

P[i] – długo´s´c najdłu˙zszego wła´sciwego prefikso-sufiksu prefiksu długo´sci i słowa w

(22)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Tablica najdłu˙zszych prefikso-sufiksów – P[ ]

P[i] – długo´s´c najdłu˙zszego wła´sciwego prefikso-sufiksu prefiksu długo´sci i słowa w

słowo w b a a b a b a a

i = 0 1 2 3 4 5 6 7 8

(23)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Obliczanie P[ ]

P[ ] 0 0 1 1 2 3 słowo a b a a b a b a a

(24)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Obliczanie P[ ]

P[ ] 0 0 1 1 2 3 słowo a b a a b a b a a

pasuj ˛acy prefikso-sufiks a b a

(25)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Obliczanie P[ ]

P[ ] 0 0 1 1 2 3 2 słowo a b a a b a b a a

pasuj ˛acy prefikso-sufiks a b a

kolejna pozycja a b a a

(26)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

(27)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

(28)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

(29)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

(30)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

(31)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

(32)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

(33)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

(34)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

(35)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

(36)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

a b a a b a

(37)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

a b a

(38)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

a b a a

(39)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

a b a a b

(40)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

a b

(41)

Algorytmy tekstowe Wst ˛ep Wprowadzenie Przykład Algorytm naiwny Rozwi ˛azanie Czas Algorytm KMP Tablica P

Wyszukiwanie wzorca

Wzorzec i jego tablica P[ ]: P[ ] 0 0 1 1 2 3

słowo a b a a b a

Wyszukiwanie wzorca:

tekst a a b a b a a b a a a

a

Cytaty

Powiązane dokumenty

[r]

Dla dowolnego wzz, koniunkcja w poprzedniku badanej implikacji nie mo˙ze mie´c warto´sci 1 przy tym wzz, poniewa˙z dla takiego wzz p miałaby warto´s´c 1, a implikacja p → q

Wraz ze wzrostem liczby wózków obserwowalny jest nieznaczny spadek czasu pracy algorytmu dla grup instancji TFr/5/m t oraz nieznaczny wzrost czasu pracy dla instancji z

Zatem pole magnetyczne wytwarzane przez rozpatrywan ˛ a warstw ˛e jest w rozwa˙zanym przybli˙zeniu zerowe, czyli siła oddziały- wania płyt jest równa zeru2. Ka˙zdy z

Gdy soczewka jest zwrócona do obserwatora stron ˛ a płask ˛ a, na granicy mi ˛edzy stron ˛ a płask ˛ a a powietrzem mamy zwykłe odbicie (st ˛ ad niepomniejszony obraz),

Funkcja connect() nie może być ponawiana bez uprzedniego otworzenia nowego gniazda. Przebieg współpracy z serwerem określa protokół komunikacji. TCP jest protokołem

belki skończonej będzie identyczne jak w tradycyjnej metodzie Bleicha, bo spełnia ono to samo równanie różniczkowe E-B i te same warunki brzegowe; twierdzenie o

Przykład 2.1 : chcemy przedstawić algorytm który informuje nas o tym czy wczytana dowolna wartość liczby całkowitej jest większa od zera.. Dane: dowolna liczba