Algoritmi za djelomično podudaranje znakovnih nizova

Uloženo v:
Podrobná bibliografie
Název: Algoritmi za djelomično podudaranje znakovnih nizova
Autoři: Ružić, Sanjin
Přispěvatelé: Nogo, Goranka
Informace o vydavateli: Sveučilište u Zagrebu. Prirodoslovno-matematički fakultet. Matematički odsjek.
University of Zagreb. Faculty of Science. Department of Mathematics.
Rok vydání: 2015
Sbírka: Croatian Digital Theses Repository (National and University Library in Zagreb)
Témata: problem egzaktnog podudaranja, problem aproksimativnog podudaranja, problem podudaranja sa zamjenskim znakovima, dinamičko programiranje, programski jezik Java, exact string matching, approximate string matching, wildcard string matching, dynamic programming, programming language Java, PRIRODNE ZNANOSTI. Matematika, NATURAL SCIENCES. Mathematics
Popis: U ovom radu obradili smo algoritme koji rješavaju problem podudaranja znakovnih nizova. Promatrali smo tri različita problema: problem egzaktnog podudaranja, problem aproksimativnog podudaranja te problem podudaranja sa zamjenskim znakovima. Pritom smo se vise usredotočili na posljednje dvije klase problema. Za svaku od klasa naveli smo jedan ili vise najznačajnijih algoritama koji rješava dotični problem. Tako smo za problem egzaktnog podudaranja znakovnih nizova, uz naivni algoritam, analizirali i klasične algoritme kao sto su Rabin-Karpov, Knuth-Morris-Prattov te Boyer-Mooreov. Za svaki od njih objasnili smo osnovnu ideju te pokazali vremensku složenost. Za problem aproksimativnog podudaranja znakovnih nizova odabrali smo Wagner-Fischerov algoritam temeljen na ideji dinamičkog programiranja koji računa edit-udaljenost između dvaju stringova. Detaljno smo dokazali njegovu korektnost te vremensku složenost. Iako on sam ne rješava problem aproksimativnog podudaranja znakovnih nizova kako smo ga mi u radu definirali, vidjeli smo da se njegovom sitnom modifikacijom koju je uveo Sellers moze rješiti i naš problem. Na kraju, za problem podudaranja stringova sa zamjenskim znakovima predstavili smo tri rješenja. Prvo rješenje se zasniva na regularnim izrazima koji su zapravo puno ekspresivniji nego je nama potrebno pa imaju relativno veliku vremensku složenost. Drugo rješenje je dobiveno rekurzivnim algoritmom koji smo optimizirali koristeći dinamičko programiranje. Posljednje rješenje se zasniva na ideji backtrackinga, a u usporedbi s preostala dva ima najmanju prosječnu vremensku složenost. Sve spomenute algoritme smo implementirali u programskom jeziku Java uz zaključak da se dobiveni eksperimentalni rezultati podudaraju s teoretskim. ; In this thesis we studied string matching algorithms. We analyzed three different problems: exact, approximate and wildcard string matching. We focused on last two classes of algorithms. We mentioned one or more most significant representatives of each class. For exact string ...
Druh dokumentu: master thesis
Popis souboru: application/pdf
Jazyk: Croatian
Relation: https://zir.nsk.hr/islandora/object/pmf:5450; https://urn.nsk.hr/urn:nbn:hr:217:400399; https://repozitorij.unizg.hr/islandora/object/pmf:5450; https://repozitorij.unizg.hr/islandora/object/pmf:5450/datastream/PDF
Dostupnost: https://zir.nsk.hr/islandora/object/pmf:5450
https://urn.nsk.hr/urn:nbn:hr:217:400399
https://repozitorij.unizg.hr/islandora/object/pmf:5450
https://repozitorij.unizg.hr/islandora/object/pmf:5450/datastream/PDF
Rights: http://rightsstatements.org/vocab/InC/1.0/ ; info:eu-repo/semantics/openAccess
Přístupové číslo: edsbas.E374D043
Databáze: BASE
Popis
Abstrakt:U ovom radu obradili smo algoritme koji rješavaju problem podudaranja znakovnih nizova. Promatrali smo tri različita problema: problem egzaktnog podudaranja, problem aproksimativnog podudaranja te problem podudaranja sa zamjenskim znakovima. Pritom smo se vise usredotočili na posljednje dvije klase problema. Za svaku od klasa naveli smo jedan ili vise najznačajnijih algoritama koji rješava dotični problem. Tako smo za problem egzaktnog podudaranja znakovnih nizova, uz naivni algoritam, analizirali i klasične algoritme kao sto su Rabin-Karpov, Knuth-Morris-Prattov te Boyer-Mooreov. Za svaki od njih objasnili smo osnovnu ideju te pokazali vremensku složenost. Za problem aproksimativnog podudaranja znakovnih nizova odabrali smo Wagner-Fischerov algoritam temeljen na ideji dinamičkog programiranja koji računa edit-udaljenost između dvaju stringova. Detaljno smo dokazali njegovu korektnost te vremensku složenost. Iako on sam ne rješava problem aproksimativnog podudaranja znakovnih nizova kako smo ga mi u radu definirali, vidjeli smo da se njegovom sitnom modifikacijom koju je uveo Sellers moze rješiti i naš problem. Na kraju, za problem podudaranja stringova sa zamjenskim znakovima predstavili smo tri rješenja. Prvo rješenje se zasniva na regularnim izrazima koji su zapravo puno ekspresivniji nego je nama potrebno pa imaju relativno veliku vremensku složenost. Drugo rješenje je dobiveno rekurzivnim algoritmom koji smo optimizirali koristeći dinamičko programiranje. Posljednje rješenje se zasniva na ideji backtrackinga, a u usporedbi s preostala dva ima najmanju prosječnu vremensku složenost. Sve spomenute algoritme smo implementirali u programskom jeziku Java uz zaključak da se dobiveni eksperimentalni rezultati podudaraju s teoretskim. ; In this thesis we studied string matching algorithms. We analyzed three different problems: exact, approximate and wildcard string matching. We focused on last two classes of algorithms. We mentioned one or more most significant representatives of each class. For exact string ...