1 / 22

Vyvážená dekompozícia nedeterministického automatu pre regulárne výrazy

Prírodovedecká fakulta Univerzita Pavla Jozefa Šafárika v Košiciach Ústav Informatiky. Vyvážená dekompozícia nedeterministického automatu pre regulárne výrazy. Diplomová práca. Košice 200 5 Bc. Karol Seman. Cie ľ práce.

herne
Télécharger la présentation

Vyvážená dekompozícia nedeterministického automatu pre regulárne výrazy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prírodovedecká fakulta Univerzita Pavla Jozefa Šafárika v Košiciach Ústav Informatiky Vyvážená dekompozícia nedeterministického automatu pre regulárne výrazy Diplomová práca Košice 2005 Bc. Karol Seman

  2. Cieľ práce • Analyzovať známe algoritmy a konštrukcie pre transformáciu regulárnych výrazov na nedeterministické konečnostavové automaty s dôrazom na ich popisnú zložitosť. • Navrhnúť a implementovať algoritmus pre konštrukciu nedeterministického konečnostavového automatu s bezepsilonovými prechodmi ako aj zodpovedajúceho binárneho stromu. • Navrhnúť a implementovať algoritmus pre vytváranie tabuľky separačných bodov.

  3. Rozdelenie práce • Teoretický základ • Analýza známych metód • ε-NFA metóda • Pozičný automat • Čiastočné odvodzovanie • Spoločná množina nasledovníkov • Stromová dekompozícia a ε-NFA • Získanie separačného bodu • Popis, analýza a implementácia algoritmov

  4. Regulárny výraz Regulárny výraz nad abecedou ∑ je definovaný ako konečný výraz  zložený zo symbolov z ∑ a špeciálnych symbolov  (prázdna množina) a ε (prázdny reťazec) použitím binárnych operácií + (zjednotenie) a . (zreťazenie) a unárneho operátora * (iterácia). Binárny strom V strome je každý binárny operátor reprezentovaný vnútorným vrcholom s dvoma synmi odpovedajúcimi svojim dvom podvýrazom, každý unárny operátor vnútorným vrcholom s jednym synom pre svoj jediný podvýraz a každý výskyt znaku abecedy alebo špeciálneho znaku  alebo ε reprezentovaný listom. Nedeterministický konečnostavový automat Pätica M = (Q, ∑, ∆, qs , F), kde Q je konečná množina stavov, ∑ je konečná vstupná abeceda, ∆  Q  (∑  {ε})  Q je množina prechodov, qs Q je inicializačný stav a F  Q je podmnožina konečných stavov. Tu ε znamená prázdny reťazec.

  5. Stromová dekompozícia Lemma 1.3. Označme q ako konečný binárny strom s každým vrcholom označeným ako „navštívený“ alebo „ignorovaný“. Celkový počet listov označených ako „navštívený“ je k ≥ 2. Potom existuje uzol x taký, že počet navštívených listov v podstrome pod uzlom x je najviac 2/3 · k, ale nie menej ako 1/3 · k. • Definícia 3.1. Nech tγ je stromová reprezentácia γ. Vyvážená stromová dekompozícia tγ • je získaná takto: • Vystrihneme podstrom t1 (t.j. jeden uzol a všetkých jeho nasledovníkov) tak,že má • ≥ ⅓ a ≤ ⅔ pozícií t. Nech t2 je zvyšok po vybratí t1, viď Obrázok. • 2. Použijeme ten istý postup na t1, t2 ak obsahujú viac ako 1 pozíciu γ. Výška dekompozície (počet podstromov) je najviac log3/2 n, kde n je veľkosť γ.

  6. Zníženie kvadratickej veľkosti • Zavedenie separačných bodov Kvadratická veľkosť v metóde ε-NFA je generovaná vtedy, keď pre každýznakový prechod a každú sekvenciu ε prechodov je uvedený nový znakový prechod,ktorý nim predchádza. Vo všeobecnosti je to zbytočné, pretože potrebujeme len toľkonových prechodov, že všade kde v ε-NFA sú dva znakové prechody medzi ktorými jeľubovoľný počet ε prechodov nahradíme dvomi znakovými prechodmi v novomautomate, ktoré nasledujú hneď po sebe. To čo potrebujeme je jedinečný stav tam, kde „sa môže stretnúť veľa prechodov“. Teda, pre každý znakový prechod v ε automatepotrebujeme iba niekoľko kópií v novom automate získaných z, respektíve končiacichv tých separačných stavoch, ktoré sú pomenované v [7]. Čiže cieľ: nájsť separačný stav pre každé dva znakové prechody spojené postupnosťou ε prechodov Výpočet založený na stromovej dekompozícii

  7. Dekompozícia ε-automatu. Keď sú prechody x a y spojené postupnosťou ε prechodov, sú oddelené v dekompozícii vystrihnutím podautomatu (vyvážená stromová dekompozícia vyvolá dekompozíciu automatu) exβv prípade, že počiatočný bod je v aktuálnej oblasti, inak enβ.

  8. Definícia 6.3. • Nech x, y sú dva bez-ε-ové prechody automatu zostrojeného vo Vete 5.2.. Oddeľujúci bod medzi x a y je konečný kontrolný stav sepx, yQ získaný nasledujúcim algoritmom: • Ak hrany x, y nie sú spojené cestou xy v M, hodnota sepx, y nie je definovaná (Nikdy nepočítame sepx, y pre takýto pár hrán).Tu „xy“ reprezentuje cestu začínajúcu na hrane x a končiacu na hrane y s ľubovoľným počtom ε prechodov medzi nimi (to zahŕňa aj 0). • Takže predpokladajme, že existuje cesta xy v M. Potom spustíme nasledujúce opakovanie, uschovávanie cesty aktuálnej oblasti q. Spočiatku, q je úplný graf M, t.j. q :=  - 1, , l, kde  =  - originálny regulárny výraz - a 1, , l =  - prázdny zoznam. • Nech q =  - 1, , l je aktuálna oblasť. Použitím procedúry odvodenej z Lemmy 6.2. založenej na Lemme 1.3.nájdeme ’ rozdeľujúce q na dva podregiónyq1 = ’ - ‘1, , ‘l‘ a q2 =  - ‘, ‘‘1, , ‘‘l‘‘ s rovnovážnym počtom bez-ε-ových prechodov. Teda, počet bez-ε-ových prechodov v každom podregióne je medzi 1/3 k až 2/3 k, pričom počet všetkých prechodov vo vnútri q je k ≥ 2. • Teraz použijeme dosiahnuteľnosť y z x ako kritérium vetvenia. Teda, zistíme kde cesta xy pôjde. • Ak existuje kompletná cesta xy nachádzajúca sa vo vnútri q1, t.j. vo vnútri M’, potom sa q1 stane novou aktuálnou oblasťou. Teda q := q1 (Okrem iného z toho vyplýva, že x aj y padnú dovnútra q1). • Ak existuje kompletná cesta xy nachádzajúca sa vo vnútri q2, t.j. mimo M’, potom sa q2 stane novou aktuálnou oblasťou. Teda q := q2 (V tomto prípade x a y padnú do q2). • Kroky (c) a (d) sa opakujú kým procedúra nenájde prípad, že ani q1 ani q2 neobsahujú kompletnú cestu spájajúcu x s y. Nezabudnime však, že v q cesta xy existuje. Toto je možné len vtedy, keď cesta ide cez hranice medzi q1 a q2. Tieto dve podoblasti boli oddelené hranicou nejakého automatu M’; oblasť q1 je umiestnená vo vnútri M’, zatiaľ čo q2 je mimo M’. • Ak x padne dovnútra M’, vráti hodnotu sepx, y rovnú ex’. • Obrátene, ak x je mimo M’, sepx, y bude mať hodnotu en’. • V oboch prípadoch sa sepx,y nachádza vo vnútri q, pretože celá cesta xy sa nachádza v q. Je tiež jasné, že pre xy, rozdeľovaním variant sa pokúša dosiahnuť konfiguráciu, v ktorej x, y padnú do odlišných podregiónov, pretože počet bez ε-ových hrán v aktuálnej oblasti ide náhle dole ku k = 1. Čiže, skôr či neskôr procedúra musí vrátiť hodnotu sepx,y, keď xy. Z toho však nevyplýva, že dve hrany musia ležať cez hranice M’ v odlišných oblastiach, keď chvíľa oddeľovania nastane. Obrázok č. 11 ukazuje všetky možné pozície. • Pre x = y procedúra môže skončiť s aktuálnou oblasťou, obsahujúcou jedinú bez-ε-ovú hranu x, s kompletnou cestou xy. Ak nastane tento prípad, tak podľa definície výsledná hodnota sepx, y bude uzol, na ktorý hrana x ukazuje

  9. Postup práce

  10. Štruktúra regulárneho výrazu RV → Zj$ Zj → Zr {+ Zr} Zr → El {[·] El} El → {* | ^} Pr Pr → Ps | (Zj) Ps → a | … | z Regulárny výraz ľubovoľný počet zjednotení (jedno alebo viac), ktoré sú oddelené znakom „+“ Zjednotenie jednoduchšie regulárne výrazy, v ktorých sa nevyskytuje „+“ Zreťazenie ľubovoľný počet elementárnych výrazov, ktoré môžu byť oddelené znakom „·“, ale môže sa aj vynechať Elementárny výraz ľubovoľný počet (aj nula) a kombinácia znakov „*“ a „“ nasledovaná primitívnym výrazom Primitívny výraz tvorí ho písmeno malej abecedy alebo celé zjednotenie uzavreté v zátvorkách, ktoré môže opäť obsahovať zreťazenia, elementárne výrazy, primitívne výrazy alebo písmená Písmeno písmená malej abecedy v rozpätí od „a“ po „z“

  11. Reg výraz → Binárny strom a + *(b + c · d)

  12. Reg výraz → ε-NFA Použijeme nasledujúce prepisujúce pravidlá:

  13. Príklad Binárny strom  KSA  a ∙ ◊( (*b + c) ∙ d) ∙ e + * (f ∙ ( (g ∙ h) + i)) Každý stav BUNV náhodne pomenujeme

  14. Tabuľka reprezentujúca NFA

  15. Reg výraz → Binárny strom (s en,ex) a · b + c · d

  16. Reg výraz → Separačná tab.

  17. Štruktúra výstupných dát

  18. Zložitosti algoritmov

  19. Ďakujem za pozornosť a prajem pekný deň

  20. Abstrakt V práci skúmame niekoľko metód na získanie nedeterministického konečného automatu bez ε hrán z regulárnych výrazov. Zameriame sa na veľkosť (počet prechodov) výsledného automatu a na časovú zložitosť prevodu. Ukážeme ako sa v súčasnosti [7,13] podarilo vylepšiť veľkosť výsledného automatu z O(n2) na O(n(log n)2) , taktiež O(n log n) pre ohraničenú abecedu (kde n je veľkosť regulárneho výrazu). Potom podrobne prezentujeme prevod cez ε-NFA a algoritmus na získanie separačného bodu, ktorý je srdcom dekompozície nedeterministického konečnostavového automatu a nový zovšeobecnený algoritmus na získanie všetkých separačných bodov.

  21. Veľkosť automatu O(n(log n)2) O(|Σ| n log n)

  22. Veta 5.2. • Každý regulárny výraz  dĺžky n ≥ 1 môže byť nahradený ekvivalentným nedeterministickým automatom M s najviac 2n stavmi a n prechodmi bez ε hrán nasledovne: • Pre každý podvýraz  z  odpovedajúci podstromu pod nejakým uzlom v strome reprezentujúcom , existuje podautomat M v M, ktorý je podgraf v grafe reprezentujúcom M. • Pre každý ’, podvýraz  odpovedajúci nejakému podstromu s vrchným uzlom nachádzajúcim sa v podstrome , M’ je podautomat M, t.j. podgraf vnorený do seba v podgrafe M. • M má jednoduchý vstupný bod, stav enQ a jednoduchý výstupný bod, stav exQ, kde enex, teda reťazec a1 akΣ* je v L(β) vtedy a len vtedy, keď existuje cesta spájajúca hranami, vo vnútri podgrafu M, stav en s ex nazvaná a1 ak. • Hociktorá cesta idúca do podgrafu M z okolitého prostredia musí ísť cez stav en. A takisto, M nemá hrany končiace v en. • Hociktorá cesta opúšťajúca podgraf M do okolitého prostredia musí ísť cez stav ex. A tiež, nie sú žiadne hrany z okolitého prostredia končiace v ex.

More Related