Algoritm haqda tushuncha


)Knut-Morris-Pratt algoritmi va uning murakkabligi


Download 271.88 Kb.
bet3/5
Sana19.06.2023
Hajmi271.88 Kb.
#1611711
1   2   3   4   5
Bog'liq
2-modul Muhammadiyev Sherxon mustaqiil ish algooritm

3)Knut-Morris-Pratt algoritmi va uning murakkabligi


Matn ichida qidiruv uchun brute-force yondashuvining kamchiligi – pattern’dagi belgilardan biri qidiruvda mos kelmay qolganda, qidiruvni boshqatdan boshlashi kerak. Shuning uchun worst case O(N*M) bo’lib ketadi. Misol uchun, bizda matn A B A A A A B A A A A A A A A A bo’lsin. Pattern esa BAAAAAAAAA.
Qidiruv jarayoni:
A B A A A A B A A A A A A A A A
B A A A A A A A A A
B A A A A A A A A A
B A A A A A A A A A
B A A A A A A A A A
B A A A A A A A A A
B A A A A A A A A A
B A A A A A A A A A
E’tibor bergan bo’lsangiz, ikkinchi siklda patternning 6-belgisi mos kelmay qoldi. Demak biz text’dagi biz ko’rib o’tgan ohirgi 6 belgi BAAAAB ekanini bilamiz. Nima uchun qidiruvni yana boshqatdan boshlashimiz kerak? 3-6 sikllarni tushirib qoldirib, 7-sikldan davom ettirishning imkoni bormi?
Knuth-MorrisPratt (KMP) algoritmi mana shu muammoga yechim sifatida kelib, qidiruvni boshqatdan boshlamaslikning imkonini beradi. U Deterministic Finite Automaton g’oyasiga asoslangan.
Deterministic Finite Automaton
Deterministic finite automaton (DFA) – kompyuter nazariyasida (computer science) abstrakt string qidiruvchi mashina. U holatlarning aniq bir to’plami bo’lib, berilgan (yoki tekshirilayotgan) input qiymatiga qarab, bir holatdan ikkinchi holatga o’tishi mumkin. U asil holatdan boshlanib, ohirgi holatga yetganda tugaydi.
Oson misol bilan tushuntirishga harakat qilaman. Bizda quyidagi ro’yhat bor:
[ 'A', 'AA', 'BAC', 'DBCA', 'AFAB', 'AWAVABBBB', 'ABABAB', 'GAAAA', 'FRBABA', 'AJECB' ]
Biz ular ichidan A dan boshlanadiganlarini topishimiz kerak.
Shart asosida DFAni yasaymiz. Shartga ko’ra, stringning birinchi belgisi A bo’lishi kerak, shunda keyingi belgilarni tekshirishni davom ettiradi. Aks holda dastlabki holatda qoladi.

Ro’yhatdan stringlarni tekshirib chiqamiz:
A. 0 holatdan 1 holatga o’tdi. Qidiruv yakunlandi. 1 holatga o’tgani uchun string topilgan hisoblanadi.

Download 271.88 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling