37
Boyer-Moore-Horspool Boyer-Moore-Horspool algoritam pretraživanja teksta algoritam pretraživanja teksta Gregor Boris Banušić Gregor Boris Banušić

Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

  • Upload
    letruc

  • View
    248

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Boyer-Moore-HorspoolBoyer-Moore-Horspoolalgoritam pretraživanja tekstaalgoritam pretraživanja teksta

Gregor Boris BanušićGregor Boris Banušić

Page 2: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Kratki sadržaj

● Uvod

● Boyer-Moore algoritam

● Boyer-Moore-Horspool algoritam

● Pseudokod

● Primjeri i analiza

● Literatura

Page 3: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Uvod

● podatci nestrukturirani, u tekstualnom obliku

● velika količina digitalnih tekstualnih podataka

● sustavi za analizu i pretraživanje postaju dio informacijsko-komunikacijske infrastrukture

Pronađite OAA!!

OAAOAA t

Page 4: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Pretpostavke i oznake

● Pretražujemo tekst na engleskom jeziku, sa engleskim znakovima.

● Oznake:- veliko O je notacija za vremensku složenost.- P za traženi uzorak, T za izvorni tekst.- m = |P| i n = |T| (broj znakova u P odnosno T).- δ = |znakovi koji se mogu pojaviti u tekstu/uzorku|.

Page 5: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Boyer-Moore algoritamBoyer-Moore algoritam

Page 6: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Boyer-Moore algoritam (BM)

● efikasan u stvarnim primjenama

● Bob Boyer i J Strothert Moore 1977

● Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday (BMHS) ...

● Upotreba

Kako dobiti 5 iz OAA

Programiranje1: 2

Programiranje1: 5

Page 7: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Ideja algoritma i implementacija

● Ideja je uspoređivati znakove s desna na lijevo.

● Implementacija je ostvarena pomoću jednostavnog pretraživanja teksta uz unaprijed izračunate vrijednosti za ažuriranje pomaka:

pomak dobrog sufiksa i pomak lošeg znaka.

● Za svaki pomak biramo veći rezultat te dvije funckije.

Page 8: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Pomak dobrog sufiksa

SlikaSlika: pomak dobrog sufiksa. (a) Podniz u se ponovo pojavljuje u uzorku s time da mu prethodni znak c različit od a. (b) Podniz u se pojavljuje samo u sufiksu uzorka.

Page 9: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Pomak lošeg znaka

Slika: pomak lošeg znaka. (a) Znak b pojavljuje se u uzorku P. (b) Znak b se ne pojavljuje u uzorku P.

Page 10: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

● Prednosti:- heuristike dobrog sufiksa i lošeg znaka daju dobru vrijednost

pomaka.

● Mane:- heuristika dobrog sufiksa je teška za shvatiti i implementirati.- heuristika lošeg znaka će dati malen pomak ako dođe do

nepodudaranja nakon mnogo istih znakova.

● Vremenska složenost u fazi pripremanja tablice pomaka je O(m + δ).

● Vremenska složenost najboljeg slučaja je O(n/m).

● Vremenska složenost je O(nm).

Page 11: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Boyer-Moore-Horspool algoritamBoyer-Moore-Horspool algoritam

Page 12: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Boyer-Moore-Horspool algoritam (BMH)

● Horspool 1980. uklonio heuristiku dobrog sufiksa

● neovisan o mjestu nepodudaranja

Page 13: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Pseudokod

● U nastavku je dana funkcija za računanje tablice pomaka te algoritam BMH.

Page 14: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

● Prednosti:- lako za implementirati.- pomicanje se uvijek odrađuje na temelju zadnje znamenke

čime se postiže veća efikasnost.- koristi manje memorije od BM.

● Mane:- nekad heuristika dobrog sufiksa daje veci pomak od ostalih

heuristika.

Page 15: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Primjer po koracima...

Page 16: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Kako vrijeme raste s obzirom na veličinu teksta T ?

Page 17: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Primjer 1

najbolji slučaj

Page 18: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Primjer 1 – najbolji slučaj

grog0?

Page 19: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

Page 20: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

Page 21: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

Page 22: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Primjer 2

najgori slučaj

Page 23: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Primjer 2 – najgori slučaj

ababa?

Page 24: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

Page 25: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

Page 26: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

Page 27: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Primjer 3

srednji slučaj

Page 28: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Primjer 3 – srednji slučaj

salata?

Page 29: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

Page 30: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

Page 31: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Analiza

Page 32: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Kako vrijeme raste s obzirom na veličinu uzorka P ?

Page 33: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Usporedba algoritama

Page 34: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Zaključak

● Algoritam ima složenost O(nm).

● Prostorna složenost ne ovisi o uzorku P te iznosi O(δ).

● Vremenska složenost najboljeg slučaja je O(n/m).

● Vremenska složenost najgoreg slučaja je O(nm).

Page 35: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Teorem

Boyer-Moore-Horspool algoritam pretrage vraća mjesto prve pojave uzorka P u tekstu T ako postoji, inače vraća -1.

Vremenska složenost algoritma je O(nm).

Page 36: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Literatura

● [1] S. Ružić, Algoritmi za djelomično podudaranje znakovnih nizova, 2015.

● [2] R. Choudhary, prof. A. Rasool, dr. N. Khare, Variation of Boyer-Moore String Matching Algorithm: A Comparative Analysis, 2012.

Page 37: Boyer-Moore-Horspool algoritam pretraživanja teksta · Boyer-Moore algoritam (BM) efikasan u stvarnim primjenama Bob Boyer i J Strothert Moore 1977 Boyer-Moore-Horspool (BMH), Boyer-Moore-Horspool-Sunday

Hvala na pažnji!!!