1 / 32

REGULÁ RNE JAZYKY

REGULÁ RNE JAZYKY. Špecifikácia. Generatívne - Regulárnymi gramatikami Akceptačne - Kon e čnými automatmi. Kone č n ý automat df. Konečným automatom (KA) M budeme nazývať päticu M = (Q, T, , q 0 , F ) Kde Q je konečná množina (vnútorných) stavov automatu M

koko
Download Presentation

REGULÁ RNE JAZYKY

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. REGULÁRNE JAZYKY

  2. Špecifikácia • Generatívne - Regulárnymi gramatikami • Akceptačne - Konečnými automatmi

  3. Konečný automat df Konečným automatom (KA) M budeme nazývať päticu M = (Q, T, , q0, F) Kde Q je konečná množina (vnútorných) stavov automatu M T konečná množina (prípustných) vstupných symbolov q0 je začiatočný stav automatu, q0  Q F je množina koncových stavov, F  Q  je prechodové zobrazenie, pričom  : Q x T  Q – pre deterministický KA  : Q x T  2Q – pre nedeterministický KA Poznámka: 2Q je potenčná množina (množina všetkých podmnožín)

  4. Konfigurácia automatu df Nech M = (Q, T, , q0, F) je KA. Potom dvojicu (q, w)  Q x T* nazývame konfiguráciou KA M. Začiatočná konfigurácia: (q0 , w), kde w je vstupný reťazec Koncová konfigurácia: (qf , e) kde qf  F je koncový stav.

  5. Relácia prechodu df Nech M = (Q, T, , q0, F) je KA. Potom nad množinou konfigurácií Q x T* definujeme reláciu prechodu  nasledujúcim spôsobom: Ak q  Q , p Q, w  T* , a  T Potom ( q , aw)  (p, w) práve vtedy ak  (q, a) = p - pre deterministický KA (DKA)  (q, a) obsahuje p - pre nedetrministický KA Analogický ako pre deriváciu možno definovať stupeň a uzávery relácie prechodu n , * , +

  6. Akceptácia reťazca, špecifikácia jazyka konečným automatom Nech M = (Q, T, , q0, F) je KA. Potom hovoríme, že KA M akceptuje / prijíma reťazec w  T* , ak platí (q0 , w) * (qf , e) pre nejaké q  F Jazyk L(M) špecifikovaný automatom M je množina reťazcov, ktoré KA M akceptuje. Formálne L(M) = {w / (q0 , w) * (qf , e), w  T*, qf  F }

  7. Príklad Daný je KA M = ({q0, q1 , q2 , q3}, {0, 1 },  , q0, {q0 }) : (q0 , 0) = q2 (q0 , 1) = q1 (q1 , 0) = q3 (q1 , 1) = q0 (q2 , 0) = q0 (q2 , 1) = q3 (q3 , 0) = q1 (q3 , 1) = q2 Potom prijatie reťazca 10101010 sa uskutočňuje nasledujúcim spôsobom:

  8. (q0 , 0) = q2 (q0 , 1) = q1(q1 , 0) = q3 (q1 , 1) = q0(q2 , 0) = q0 (q2 , 1) = q3(q3 , 0) = q1 (q3 , 1) = q2 (q0 , 10101010) (q1 , 0101010) (q3 , 101010) (q2 , 01010) (q0 , 1010) (q1 , 010) (q3 , 10) (q2 , 0) (q0 , e)

  9. Zastavenie v nekoncovej konfigurácii Automat sa môže dostať do stavu, že z danej konfigurácie nie je definovaný prechod. Hovoríme, že automat zastavil neštandardným spôsobom. Dôsledok: analyzovaný reťazec nie je akceptovaný a teda nepatrí do daného jazyka

  10. Príklad Skúsme predložiť automatu z predchádzajúceho príkladu vstupné reťazce 101010 a 1012 Akceptácia prvého reťazca je nasledujúca:

  11. (q0 , 0) = q2 (q0 , 1) = q1(q1 , 0) = q3 (q1 , 1) = q0(q2 , 0) = q0 (q2 , 1) = q3(q3 , 0) = q1 (q3 , 1) = q2 (q0 , 101010) (q1 , 01010) (q3 , 1010) (q2 , 010) (q0 , 10) (q1 , 0) (q3 , e) Vstup je prázdny, ale pre danú konfiguráciu, ktorá nie je koncová, neexistuje prechod, preto reťazec 101010 nepatrí do jazyka L(M).

  12. (q0 , 0) = q2 (q0 , 1) = q1(q1 , 0) = q3 (q1 , 1) = q0(q2 , 0) = q0 (q2 , 1) = q3(q3 , 0) = q1 (q3 , 1) = q2 Druhý reťazec už na prvý pohľad nepatrí do jazyka L(M), pretože nie je z T* (obsahuje symbol 2). Priebeh akceptácie: (q0 , 1012) (q1 , 012) (q3 , 12) (q2 , 2)Ďalší prechod nie je definovaný.

  13. Reprezentácia prechodového zobrazenia Na reprezentácie prechodového zobrazenia používame najčastejšie Prechodovú tabuľku, Stavový diagram.

  14. Prechodová tabuľka Prechodová tabuľka P pre prechodové zobrazenie , množinu stavov Q Q = {q0 ,q1 , … , qn}, množinu vstupných symbolov T T = {t0 , t1 , … , tm}, je tabuľka s n riadkami a m stľpcam a prvky zodpovedajú prechodovému zobrazeniu , teda P[i, j] =  (qi, tj ) Poznámka: v prípade nedeterministického KA sú prvkami tabuľky množiny

  15. Stavový diagram Stavový diagram je orientovaný graf, v ktorom vrcholy sú ohodnotené stavmi automatu, hrany symbolmi vstupnej abecedy tak, že ak  (q, t) = p Potom existuje orientovaná hrana medzi q a p, ktorá je ohodnotená symbolom t. Začiatočný a koncový stav / vrchol je označený špeciálnym spôsobom – začiatočný zvyčajne ako ŠTART, koncový dvojitým krúžkom. Činnosť – akceptácia – prechádzanie diagramom po orientovaných hranách na základe prechodového zobrazenia.

  16. Príklad - tabuľka Majme znova automat z predchádzajúceho príkladu. Potom reprezentácia prechodovou tabuľkou je nasledujúca: Pôvodné zobrazenie: (q0 , 0) = q2 (q0 , 1) = q1(q1 , 0) = q3 (q1 , 1) = q0(q2 , 0) = q0 (q2 , 1) = q3(q3 , 0) = q1 (q3 , 1) = q2

  17. Príklad – diagram Majme znova automat z predchádzajúceho príkladu. Potom reprezentácia stavovým diagramom je nasledujúca:

  18. (q0 , 0) = q2 (q0 , 1) = q1(q1 , 0) = q3 (q1 , 1) = q0(q2 , 0) = q0 (q2 , 1) = q3(q3 , 0) = q1 (q3 , 1) = q2 Stavový diagram 1 q1 q0 1 0 0 0 0 1 q2 q3 1

  19. Príklad NDKA Daný je KA M M = ( {q0 ,q1 ,qf}, {+, -, 0, 1, 2, 3, 4, 5, 6, 7, 8 , 9},  , {qf} )  :

  20. Stavový diagram ŠTART qf 0 | 1 | … | 9 0 | 1 | … | 9 0 | 1 | … | 9 0 | 1 | … | 9 q1 q0 + | -

  21. Poznámky Predchádzajúci KA • je nedeterministický • Rozpoznáva celé čísla so znamienkom a nevýznamnými nulami zľava

  22. Vzťah DKA a NDKA Ak L je množina slov akceptovaná nejakým NDKA, potom existuje DKA, ktorý akceptuje práve množinu L.

  23. Vlastnosti KA Množina slov prijatých KA s n stavmi je: • Neprázdna vtedy a len vtedy, ak KA prijme slovo dĺžky menšej ako n, • Nekonečná vtedy a len vtedy, ak KA prijme slovo dĺžky d, pre ktoré platí n  d  2n Nech L je regulárny jazyk. Potom existuje taká konštanta p, že pre w  L a |w|  p možno w písať v tvare w = w1w2w3, kde 1 |w2| p a w1w2iw3  L pre všetky i  0.

  24. Vzťah KA a RG Nech G = (N, T, P, S) je RG. Potom existuje KA M = (Q, T, , q0, F) taký, že L(M) = L(G) Konštrukcia: Q = N  {A}, pričom A  N T = T q0 = S F = {S, A} ak S  e  P ; inak F = { A }  : pre všetky a  T, B  N, C  N platí: ak B  a  P tak A   (B, a) ak B  aC  P tak C   (B, a)  (A, a) = ø Poznámka: uvedená vlastnosť platí aj obrátene.

  25. Príklad Majme RG G = ({C, D}, {+, -, 0, 1, … , 9}, P, C) kde P: C | +D |-D | 0 | 1 | … | 9 | 0D | … | 9D D  0 | 1 | … | 9 | 0D | … | 9D Skonštruujeme teraz ekvivalentný KA M = (Q, T, , q0, F) , taký, že L(M) = L(G) Q = N  {A} = {A, C, D} T zostáva z G q0 = C F = { A }

  26. C | +D |-D | 0 | 1 | … | 9 | 0D | … | 9DD  0 | 1 | … | 9 | 0D | … | 9D  :  ( D, x ) = { A } kde x = 0 | 1 | … | 9 - prvá časť pravidla  ( D, x ) = { D } kde x = 0 | 1 | … | 9 - druhá časť pravidla Teda  ( D, x ) = { A, D }  ( C, x ) = { D }kde x = + | - | 0 | 1 | … | 9  ( C, x ) = { A }kde x = 0 | 1 | … | 9 Teda  ( C, x ) = { A, D }

  27. Stavový diagram  :  ( C, x ) = { D }kde x = + | - | 0 | 1 | … | 9  ( C, x ) = { A }kde x = 0 | 1 | … | 9  ( D, x ) = { A } kde x = 0 | 1 | … | 9  ( D, x ) = { D } kde x = 0 | 1 | … | 9 0 | 1 | … | 9 ŠTART 0 | 1 | … | 9 + | - | 0 | 1 | … | 9 D A C 0 | 1 | … | 9

  28. Regulárne množiny a regulárne výrazy • Regulárne množiny a regulárne výrazy sú ďalším špecifikačným prostriedkom regulárnych jazykov

  29. Regulárne množiny • Nech T je konečná abeceda. Potom regulárnou množinou (RM) nad T rozumieme množinu definovanú nasledujúcim spôsobom: • 1. Ø je RM nad T • 2. { e } kde e je prázdny reťazec, je RM nad T • 3. { t } kde t  T je RM nad T • 4. Ak A, B sú RM nad T, potom RM nad sú aj množiny • A  B • AB • A* • 5. RM nad T sú iba množiny definované podľa krokov 1– 4.

  30. Regulárne výrazy • Regulárne výrazy (RV) používame naoznačenie regulárnych množín a sú definované takto: • 1. Ø je RV a označuje RM Ø • 2. e je RV a označuje RM { e } • 3. t  T je RV a označuje RM { t } • 4. Ak a, b sú RV označujúce RM A, B , potom • (a + b) je RV a označuje RM A  B • (ab) je RV a označuje RM AB • (a)* je RV a označuje RM A* • 5. RV je iba výraz vytvorený podľa krokov 1.– 4.

  31. OK

More Related