algorytmy tekstowe id 57778 Nieznany (2)

background image

Algorytmy

tekstowe

Wst ˛ep

Wprowadzenie

Przykład

Algorytm
naiwny

Rozwi ˛

azanie

Czas

Algorytm KMP

Tablica P

Algorytmy tekstowe

zaj ˛ecia 7.

Bartosz Górski, Tomasz Kulczy ´nski, Bła˙zej Osi ´nski

background image

Algorytmy

tekstowe

Wst ˛ep

Wprowadzenie

Przykład

Algorytm
naiwny

Rozwi ˛

azanie

Czas

Algorytm KMP

Tablica P

Słowa

słowo

dla informatyka to ci ˛

ag znaków

nie musi mie´c sensu w ˙zadnym u˙zywanym j ˛ezyku

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

abbb

aaba

aabaa

2

abbbaab

aaba

a

background image

Algorytmy

tekstowe

Wst ˛ep

Wprowadzenie

Przykład

Algorytm
naiwny

Rozwi ˛

azanie

Czas

Algorytm KMP

Tablica P

Pomysł

Spróbujmy w ka˙zdym miejscu dopasowa´c wzorzec.

background image

Algorytmy

tekstowe

Wst ˛ep

Wprowadzenie

Przykład

Algorytm
naiwny

Rozwi ˛

azanie

Czas

Algorytm KMP

Tablica P

Działanie

c

b

ada

bc

baabccdba

bccd

b

ccd

bccd

bccd

bccd

bc

cd

background image

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)

background image

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)

W praktyce

znacznie

lepiej!

background image

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?

background image

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

background image

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!

background image

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

ab

aaa

aaaaaaaaa

aaa

b

background image

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

ab

aaa

aaaaaaaaa

aba

aa

aaaaaaaaa

aaa

b

aa

ab

background image

Algorytmy

tekstowe

Wst ˛ep

Wprowadzenie

Przykład

Algorytm
naiwny

Rozwi ˛

azanie

Czas

Algorytm KMP

Tablica P

Trudne słowa

prefiks

sufiks

prefikso-sufiks

background image

Algorytmy

tekstowe

Wst ˛ep

Wprowadzenie

Przykład

Algorytm
naiwny

Rozwi ˛

azanie

Czas

Algorytm KMP

Tablica P

Trudne słowa

prefiks

sufiks

prefikso-sufiks

background image

Algorytmy

tekstowe

Wst ˛ep

Wprowadzenie

Przykład

Algorytm
naiwny

Rozwi ˛

azanie

Czas

Algorytm KMP

Tablica P

Trudne słowa

prefiks

sufiks

prefikso-sufiks

background image

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

background image

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

P[i] =

0

0

0

0

1

2

1

2

3

background image

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

background image

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

kolejna pozycja

a

b

a

a

background image

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

a

b

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

Trafienie! aab

abaaba

aa

background image

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

Trafienie! aab

abaaba

aa

background image

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

Trafienie! aab

abaaba

aa

background image

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

Trafienie! aab

abaaba

aa

background image

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

Trafienie! aab

abaaba

aa

background image

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

Trafienie! aab

abaaba

aa


Document Outline


Wyszukiwarka

Podobne podstrony:
algorytmy sortujace id 57762 Nieznany
Algorytmy obliczen id 57749 Nieznany
Algorytmy zadania id 51150 Nieznany (2)
3 3 BK Algorytmy parsingu id 34 Nieznany (2)
Algorytmy genetyczne 2 id 57672 Nieznany (2)
Cw1 excel f tekstowe id 122815 Nieznany
Algorytmy wyklad 1 id 57804 Nieznany
algorytmy ewolucyjne id 57660 Nieznany
Algorytm Simplex id 57544 Nieznany (2)
Algorytmy wyklad 6 7 id 57806 Nieznany
Algorytm RSA id 57542 Nieznany
Algorytmy wyklad 4 5 id 57805 Nieznany
algorytm simplex 3 id 57546 Nieznany
algorytm lvq id 57514 Nieznany (2)
ALGORYTM BANKOMATU id 57487 Nieznany (2)
algorytmy sortujace id 57762 Nieznany
Algorytmy obliczen id 57749 Nieznany
ALGORYTM id 57461 Nieznany
algorytmika id 57568 Nieznany (2)

więcej podobnych podstron