Cvičenie 3 - Nedeterministické konečné automaty

Podobné dokumenty
Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

Prenosový kanál a jeho kapacita

Axióma výberu

Matematický model činnosti sekvenčného obvodu 7 MATEMATICKÝ MODEL ČINNOSTI SEKVENČNÉHO OBVODU Konečný automat predstavuje matematický model sekvenčnéh

Microsoft Word - skripta3b.doc

III. Diferenciálny počet funkcie viac premenných (Prezentácia k prednáškam, čast B) Matematická analýza IV (ÚMV/MAN2d/10) RNDr. Lenka Halčinová, PhD.

Poznámky k cvičeniu č. 2

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

Cvičenie 9 Riešené príklady 1. Príklad min f(x 1, x 2 ) = x x x 1 s.t. x 1 80 x 1 + x Pre riešenie úlohy vykonáme nasledujúce kroky

Metrické konštrukcie elipsy Soňa Kudličková, Alžbeta Mackovová Elipsu, ako regulárnu kužeľosečku, môžeme študovať synteticky (konštrukcie bodov elipsy

Paralelné algoritmy, cast c. 3

Microsoft Word - Transparencies03.doc

8 Cvičenie 1.1 Dokážte, že pre ľubovoľné body X, Y, Z platí X + Y Z = Z + Y X. 1.2 Dokážte, že pre ľubovoľné body A, B, D, E, F, G afinného priestoru

Metódy násobenie v stredoveku

Aplikace matematiky- záverečná práca Juraj Bodík 28. septembra 2017 Definície Žena - objekt ohodnotený celým číslom. Každé dve ženy sa dajú porovnat a

SK MATEMATICKA OLYMPIADA 2010/ ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak,

Paralelné algoritmy, cast c. 2

1

Microsoft Word - Zaver.pisomka_januar2010.doc

SK MATEMATICKÁOLYMPIÁDA skmo.sk 63. ročník Matematickej olympiády 2013/2014 Riešenia úloh česko-poľsko-slovenského stretnutia 1. Dokážte, že kladné re

Priebeh funkcie

Paralelné algoritmy, cast c. 3

(Microsoft Word - Tuzemsk\341 a zahrani\350n\341 jazda \232tandardn\341 jazda.docx)

Microsoft Word - Argumentation_presentation.doc

Microsoft Word - 8.cvicenie.doc

SK MATEMATICKÁOLYMPIÁDA skmo.sk 2009/ ročník MO Riešenia úloh česko-poľsko-slovenského stretnutia 1. Určte všetky trojice (a, b, c) kladných r

Ďalšie vlastnosti goniometrických funkcií

Microsoft Word - 6 Výrazy a vzorce.doc

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

Zeszyty Naukowe PWSZ, Nowy Sącz 2013 Konštrukcie magických obdĺžnikov Marián Trenkler Faculty of Education, Catholic University in Ružomberok Hrabovsk

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

7/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min

Microsoft Word - Príloha P2 - zadania pracovných listov pre 6. ročník

Relačné a logické bázy dát

Oceňovanie amerických opcií p. 1/17 Oceňovanie amerických opcií Beáta Stehlíková Finančné deriváty, FMFI UK Bratislava

Microsoft Word - Zmeny v dlhodobom majetku.docx

Preco kocka stací? - o tom, ako sú rozdelené vlastné hodnoty laplasiánu v limite, ked sú velké

Klasická metóda CPM

Teória pravdepodobnosti Zákony velkých císel

QFH anténa pre príjem skcube Publikované: , Kategória: HAM - Technika Vypustenie družice SkCube určíte pritiahlo pozorno

1. KOMPLEXNÉ ČÍSLA 1. Nájdite výsledok operácie v tvare x+yi, kde x, y R. a i (5 2i)(4 i) b. i(1 + i)(1 i)(1 + 2i)(1 2i) (1 7i) c. (2+3i) a+bi d

O babirusách

Autoregresné (AR) procesy Beáta Stehlíková Časové rady, FMFI UK Autoregresné(AR) procesy p.1/22

trafo

Matematika 2 - cast: Funkcia viac premenných

1 Rekurencie este raz riesenia niektorych rekurencii z cvik. mame danu rekurenciu napr T (n) = at ( n b ) + k. idea postupu je postupne rozpisovat cle

Žiadosť o licenčnú zmluvu na podujatie Na adrese v sekcii hlavného menu kliknete na položku Používatelia. Zobrazí sa blokové menu,

Microsoft Word - Diskusia11.doc

N desitka.indd

1

Klasické a kvantové vĺny na rozhraniach. Peter Markoš, KF FEI STU April 14, 2008 Typeset by FoilTEX

4. Pravidlo ret azenia. Často sa stretávame so skupinami premenných, ktoré zložitým spôsobom závisia od iných skupín premenných. Pravidlo ret azenia p

M59dkZ9ri10

Neineárne programovanie zimný semester 2018/19 M. Trnovská, KAMŠ, FMFI UK 1

Úvod do lineárnej algebry Monika Molnárová Prednášky 2006

Microsoft Word - mnohouholnik.doc

Microsoft Word - MAT_2018_1 kolo.docx

Digitálne technológie v každodennom živote 3. ročník akademický rok 2019/2020 Harmonogram prednášok

Snímka 1

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž

Základné stochastické procesy vo financiách

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Katedra informatiky PLATNOSŤ BERGE-FULKERSONOVEJ HYPOTÉZY PRE ŠPECIÁLNE TR

Dirichletov princíp 4. kapitola. Kódovanie In: Lev Bukovský (author); Igor Kluvánek (author): Dirichletov princíp. (Slovak). Praha: Mladá fronta, 1969

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Metodika archivácie verzií HW Tímový projekt Stratos FIIT M

Siete vytvorené z korelácií casových radov

Bariéra, rezonančné tunelovanie Peter Markoš, KF FEI STU February 25, 2008 Typeset by FoilTEX

Snímka 1

Analýza sociálnych sietí Geografická lokalizácia krajín EU

SK MATEMATICKÁOLYMPIÁDA skmo.sk 2009/ ročník Matematickej olympiády Riešenia úloh IMO 1. Určte všetky funkcie f: R R také, že rovnosť f ( x y

Príklad 5 - Benzén 3. Bilančná schéma 1. Zadanie príkladu n 1 = kmol/h Definovaný základ výpočtu. Na základe informácií zo zadania si ho bude v

Pokrocilé programovanie II - Nelineárne iteracné schémy, chaos, fraktály

Sprievodný list SofComs.r.o., Priemyselná 1, Liptovský Mikuláš Program basic.sk Verzia ( ) Dátum Autor Ing. J. Malíček

SK MATEMATICKÁOLYMPIÁDA skmo.sk 66. ročník Matematickej olympiády 2016/2017 Riešenia úloh domáceho kola kategórie Z9 1. Vo všetkých deviatich políčkac

1)

OBECNÉ ZASTUPITEĽSTVO V ŠENKVICIACH Dňa: číslo: 12. Por. č.: 12. Návrh VZN Obce Šenkvice o vyhradení miesta a ustanovení podmienok na umies

Pokrocilé programovanie XI - Diagonalizácia matíc

Informačné technológie

1.1 Základné princípy práce Turingovho stroja 1 1 Turingove stroje 1.1 Základné princípy práce Turingovho stroja Predstavme si kol ajnice pevný, na je

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx

1 Portál pre odborné publikovanie ISSN Heuristický adaptívny PSD regulátor založený na miere kmitavosti Šlezárová Alexandra Elektrotechnika

TSS GROUP A.S. UŽÍVATEL SKÝ MANUÁL EČV 2: Basic a Light Plate recognition software Október 2015 V Dubnica nad Váhom, dňa Róbert Sokol

Snímka 1

Problémové správanie žiakov stredných škôl;

1 Interpret Pythonu Interpret Pythonu sa typicky spustí volaním programu python, ale je lepšie využit nejaké vývojové prostredie. Takýchto vývojových

Obsah 1 Úvod Predhovor Sylaby a literatúra Základné označenia

Obsah 1 Úvod Predhovor Sylaby a literatúra Základné označenia

Microsoft Word - typ_S_1_Priklad.doc

9.1 MOMENTY ZOTRVACNOSTI \(KVADRATICKÉ MOMENTY\) A DEVIACNÝ MOMENT PRIEREZU

(ıkolské kolo-PYT)

Snímka 1

Dejepis extra 12/2018 Časopis nie iba pre tých, čo majú radi históriu... Pred budovou Národnej banky Slovenska.

Príklad 9 - Lisovanie+ Vylúhovanie+ Sušenie 3. Bilančná schéma 1. Zadanie príkladu Bilančná schéma: m6 =? w6a = m4 =? kg 0.1 Zvolený základ výpočtu: w

DediĊnosť

Meno: Škola: Ekonomická olympiáda 2017/2018 Test krajského kola SÚŤAŽ REALIZUJE PARTNERI PROJEKTU

Čísla Nájdite všetky dvojice prirodzených čísiel, ktoré vyhovujú rovnici: 2 ( a+ b) ( a b) + 2b ( a+ 2b) 2b = 49 RIEŠENIE ( ) ( ) ( ) 2 a+ b a

TEORETICKÉ ÚLOHY

Republika Srbsko MINISTERSTVO OSVETY, VEDY A TECHNOLOGICKÉHO ROZVOJA ÚSTAV PRE HODNOTENIE KVALITY VZDELÁVANIA A VÝCHOVY VOJVODINSKÝ PEDAGOGICKÝ ÚSTAV

SK MATEMATICKÁOLYMPIÁDA skmo.sk 64. ročník Matematickej olympiády 2014/2015 Riešenia úloh domáceho kola kategórie Z8 1. Písmenkový logik je hra pre dv

Prepis:

1 / 68 Cvičenie 3 - Nedeterministické konečné automaty Ing. Viliam Hromada, PhD. C-510 Ústav informatiky a matematiky FEI STU viliam.hromada@stuba.sk 7.10.2020

2 / 68 Determinizácia 1 Determinizujte nasledovný NKA. Určte, aký jazyk akceptuje daný NKA (DKA). 0 Start q 0 q 1 0 1

3 / 68 Vidíme, že automat na obrázku je nedeterministický, pretože zo stavu q 0 sú na symbol 0 definované prechody do 2 rôznych stavov: {q 0, q 1 }. Taktiež v stave q 0 nie je definovaný prechod na symbol 1 a v stave q 1 nie je definovaný prechod na symbol 0. Formálne by sme daný NKA mohli popísat ako päticu ({q 0, q 1 }, {0, 1}, δ, q 0, {q 1 }), kde prechodová funkcia δ: δ(q 0, 0) = {q 0, q 1 } δ(q 0, 1) = δ(q 1, 0) = δ(q 1, 1) = {q 1 } Respektíve pomocou prechodovej tabul ky: 0 1 q 0 {q 0, q 1 } q 1 {q 1 }

4 / 68 Determinizáciu (t.j. vyrobenie ekvivalentného DKA) vykonáme pomocou tzv. subset-konštrukcie (Prednáška č. 3, slajdy 24-27). Stavy DKA budú všetky možné množiny stavov NKA. Počiatočný stav DKA bude stav obsahujúci len q 0, t.j. {q 0 } Akceptačné stavy DKA budú tie stavy, ktoré obsahujú aspoň 1 akceptačný stav NKA, t.j. v našom prípade {q 1 }, {q 0, q 1 }: Zostáva už len určit obsah prechodovej tabul ky: {q 0 } {q 1 } {q 0, q 1 } 0 1

5 / 68 Pre pripomenutie, prechody v DKA určíme podl a nasledovného "návodu": na výpočet prechodu zo stavu S na vstupný symbol a sa pozrieme na stavy p S, do akých stavov vedel prejst NKA zo stavov p na symbol a a tieto stavy zjednotíme. Formálne δ D (S, a) = δ N (p, a), kde δ N je prechodová funkcia NKA. p S Toto urobíme pre všetky stavy DKA, aby sme postupne vyplnili tabul ku 0 1 {q 0 } {q 1 } {q 0, q 1 }

6 / 68 Uvažujme S = a postupne symboly 0 a 1. V oboch prípadoch: δ D (, 0) = p δ D (, 1) = p 0 1 {q 0 } {q 1 } {q 0, q 1 } δ N (p, 0) = δ N (p, 1) =

7 / 68 Uvažujme S = {q 0 } a postupne symboly 0 a 1. δ D ({q 0 }, 0) = δ D ({q 0 }, 1) = p {q 0 } p {q 0 } 0 1 {q 0 } {q 0, q 1 } {q 1 } {q 0, q 1 } δ N (p, 0) = δ N (q 0, 0) = {q 0, q 1 } δ N (p, 1) = δ N (q 0, 1) =

8 / 68 Uvažujme S = {q 1 } a postupne symboly 0 a 1. δ D ({q 1 }, 0) = δ D ({q 1 }, 1) = p {q 1 } p {q 1 } 0 1 {q 0 } {q 0, q 1 } {q 1 } {q 1 } {q 0, q 1 } δ N (p, 0) = δ N (q 1, 0) = δ N (p, 1) = δ N (q 1, 1) = {q 1 }

9 / 68 Uvažujme S = {q 0, q 1 } a postupne symboly 0 a 1. δ D ({q 0, q 1 }, 0) = δ D ({q 0, q 1 }, 1) = p {q 0,q 1 } p {q 0,q 1 } 0 1 {q 0 } {q 0, q 1 } {q 1 } {q 1 } {q 0, q 1 } {q 0, q 1 } {q 1 } δ N (p, 0) = δ N (q 0, 0) δ N (q 1, 0) = {q 0, q 1 } = {q 0, q 1 } δ N (p, 1) = δ N (q 0, 1) δ N (q 1, 1) = {q 1 } = {q 1 }

10 / 68 Výsledný DKA má teda prechodovú tabul ku: Prechodový diagram: 0 1 {q 0 } {q 0, q 1 } {q 1 } {q 1 } {q 0, q 1 } {q 0, q 1 } {q 1 } {q 0, q 1 } 0 Start 0 1 {q 0 } {q 1 } 0 1 0, 1 1

Vyskúšajme si správanie oboch automatov pre rôzne vstupné ret azce w. ˆδ N bude rozšírená prechodová funkcia NKA, ˆδ D bude rozšírená prechodová funkcia DKA. w = 0 ˆδN (q 0, 0) = {q 0, q 1 }. q 1 je akceptačný stav NKA, t.j. 0 NKA akceptuje. ˆδ D ({q 0 }, 0) = {q 0, q 1 } {q 0, q 1 } je akceptačný stav DKA, t.j. 0 DKA akceptuje. w = 00 ˆδN (q 0, 00) = {q 0, q 1 }. q 1 je akceptačný stav NKA, t.j. 00 NKA akceptuje. ˆδD ({q 0 }, 00) = {q 0, q 1 }. {q 0, q 1 } je akceptačný stav DKA, t.j. 00 DKA akceptuje. w = 001 ˆδN (q 0, 001) = {q 1 }. q 1 F N, 001 L(N). ˆδD ({q 0 }, 001) = {q 1 }. {q 1 } F D, 001 L(D). w = 0011 ˆδ N (q 0, 0011) = {q 1 }. q 1 F N, 0011 L(N). ˆδD ({q 0 }, 0011) = {q 1 }. {q 1 } F D, 0011 L(D). 11 / 68

12 / 68 Spracovanie ret azca 0011 v NKA si vieme demonštrovat aj takto: Ked že po spracovaní ret azca sa vie NKA dostat do akceptačného stavu q 1, tak ret azec akceptujeme. Všimnite si, že to isté musí nastat aj pri DKA.

13 / 68 Ak chceme zistit, aký jazyk NKA (DKA) akceptuje, tentokrát to možno bude jednoduchšie z pohl adu na NKA: Na začiatku môže byt nejaká postupnost núl, pre ktorú by bol NKA stále v stave q 0. Potom sa môže pomocou jednej nuly presunút do q 1. A následne môže nasledovat postupnost jednotiek, ktorá bude stále súčast akceptovaného ret azca. Čiže akceptované ret azce začínajú postupnost ou núl dĺžky aspoň 1, za ktorými ide postupnost jednotiek dĺžky aspoň nula. L(N) = L(D) = 0 + 1, prípadne L(N) = L(D) = {0 i 1 j i 1, j 0, i, j Z}.

14 / 68 Determinizácia 2 Determinizujte nasledovný NKA nad abecedou {a, b, c}. Určte, aký jazyk akceptuje daný NKA (DKA). a b c Start q 0 q 1 q a 2 b

Vidíme, že automat na obrázku je nedeterministický, pretože zo stavu q 0 sú na symbol a definované prechody do 2 rôznych stavov: {q 0, q 1 }, podobne zo stavu q 1 sú na symbol b definované prechody do 2 rôznych stavov q 1, q 2. Taktiež v stave q 0 nie sú definované prechody na symboly b, c, v stave q 1 nie sú definované prechody na symboly a, c a v stave q 2 nie sú definované prechody na symboly a, b. Formálne by sme daný NKA mohli popísat ako päticu ({q 0, q 1, q 2 }, {a, b, c}, δ, q 0, {q 1, q 2 }), kde prechodová funkcia δ: δ(q 0, a) = {q 0, q 1 } δ(q 0, b) = δ(q 0, c) = δ(q 1, a) = δ(q 1, b) = {q 1, q 2 } δ(q 1, c) = δ(q 2, a) = δ(q 2, b) = δ(q 2, c) = {q 2 } 15 / 68

16 / 68 Popis prechodovou tabul kou: a b c q 0 {q 0, q 1 } q 1 {q 1, q 2 } q 2 {q 2 }

17 / 68 Determinizáciu (t.j. vyrobenie ekvivalentného DKA) znovu vykonáme pomocou tzv. subset-konštrukcie. Predpripravená tabul ka: (s označenými počiatočným a akceptačnými stavmi). a b c {q 0 } {q 1 } {q 2 } {q 0, q 1 } {q 0, q 2 } {q 1, q 2 } {q 0, q 1, q 2 }

Uvažujme S = a postupne symboly a, b a c. δ D (, a) = δ N (p, a) = p δ D (, b) = p δ D (, c) = p δ N (p, b) = δ N (p, c) = a b c {q 0 } {q 1 } {q 2 } {q 0, q 1 } {q 0, q 2 } {q 1, q 2 } {q, q, q } 18 / 68

Uvažujme S = {q 0 }. δ D ({q 0 }, a) = δ N (p, a) = δ N (q 0, a) = {q 0, q 1 } δ D ({q 0 }, b) = δ D ({q 0 }, c) = p {q 0 } p {q 0 } p {q 0 } δ N (p, b) = δ N (q 0, b) = δ N (p, c) = δ N (q 0, c) = a b c {q 0 } {q 0, q 1 } {q 1 } {q 2 } {q 0, q 1 } {q 0, q 2 } {q 1, q 2 } 19 / 68

δ D ({q 1 }, a) = δ N (p, a) = δ N (q 1, a) = δ D ({q 1 }, b) = δ D ({q 1 }, c) = p {q 1 } p {q 1 } p {q 1 } δ N (p, b) = δ N (q 1, b) = {q 1, q 2 } δ N (p, c) = δ N (q 1, c) = a b c {q 0 } {q 0, q 1 } {q 1 } {q 1, q 2 } {q 2 } {q 0, q 1 } {q 0, q 2 } {q 1, q 2 } {q 0, q 1, q 2 } 20 / 68

δ D ({q 2 }, a) = δ N (p, a) = δ N (q 2, a) = δ D ({q 2 }, b) = δ D ({q 2 }, c) = p {q 2 } p {q 2 } p {q 2 } δ N (p, b) = δ N (q 2, b) = δ N (p, c) = δ N (q 2, c) = {q 2 } a b c {q 0 } {q 0, q 1 } {q 1 } {q 1, q 2 } {q 2 } {q 2 } {q 0, q 1 } {q 0, q 2 } {q 1, q 2 } {q 0, q 1, q 2 } 21 / 68

δ D ({q 0, q 1 }, a) = δ N (p, a) = δ N (q 0, a) δ N (q 1, a) = {q 0, q 1 } = {q 0, q 1 } δ D ({q 0, q 1 }, b) = δ D ({q 0, q 1 }, c) = p {q 0,q 1 } p {q 0,q 1 } p {q 0,q 1 } δ N (p, b) = δ N (q 0, b) δ N (q 1, b) = {q 1, q 2 } = {q 1, q 2 } δ N (p, c) = δ N (q 0, c) δ N (q 1, c) = = a b c {q 0 } {q 0, q 1 } {q 1 } {q 1, q 2 } {q 2 } {q 2 } {q 0, q 1 } {q 0, q 1 } {q 1, q 2 } {q 0, q 2 } {q 1, q 2 } {q 0, q 1, q 2 } 22 / 68

δ D ({q 0, q 2 }, a) = δ N (p, a) = δ N (q 0, a) δ N (q 2, a) = {q 0, q 1 } = {q 0, q 1 } δ D ({q 0, q 2 }, b) = δ D ({q 0, q 2 }, c) = p {q 0,q 2 } p {q 0,q 2 } p {q 0,q 2 } δ N (p, b) = δ N (q 0, b) δ N (q 2, b) = = δ N (p, c) = δ N (q 0, c) δ N (q 2, c) = {q 2 } = {q 2 } a b c {q 0 } {q 0, q 1 } {q 1 } {q 1, q 2 } {q 2 } {q 2 } {q 0, q 1 } {q 0, q 1 } {q 1, q 2 } {q 0, q 2 } {q 0, q 1 } {q 2 } {q 1, q 2 } {q 0, q 1, q 2 } 23 / 68

δ D ({q 1, q 2 }, a) = δ N (p, a) = δ N (q 1, a) δ N (q 2, a) = = δ D ({q 1, q 2 }, b) = δ D ({q 1, q 2 }, c) = p {q 1,q 2 } p {q 1,q 2 } p {q 1,q 2 } δ N (p, b) = δ N (q 1, b) δ N (q 2, b) = {q 1, q 2 } = {q 1, q 2 } δ N (p, c) = δ N (q 1, c) δ N (q 2, c) = {q 2 } = {q 2 } a b c {q 0 } {q 0, q 1 } {q 1 } {q 1, q 2 } {q 2 } {q 2 } {q 0, q 1 } {q 0, q 1 } {q 1, q 2 } {q 0, q 2 } {q 0, q 1 } {q 2 } {q 1, q 2 } {q 1, q 2 } {q 2 } {q 0, q 1, q 2 } 24 / 68

25 / 68 δ D ({q 0, q 1, q 2 }, a) = δ N (p, a) = δ N (q 0, a) δ N (q 1, a) δ N (q 2, a) = p {q 0,q 1,q 2 } {q 0, q 1 } = {q 0, q 1 } δ D ({q 0, q 1, q 2 }, b) = δ N (p, b) = δ N (q 0, b) δ N (q 1, b) δ N (q 2, b) = p {q 0,q 1,q 2 } {q 1, q 2 } = {q 1, q 2 } δ D ({q 0, q 1, q 2 }, c) = δ N (p, c) = δ N (q 0, c) δ N (q 1, c) δ N (q 2, c) = {q 2 } = {q 2 } p {q 0,q 1,q 2 }

26 / 68 a b c {q 0 } {q 0, q 1 } {q 1 } {q 1, q 2 } {q 2 } {q 2 } {q 0, q 1 } {q 0, q 1 } {q 1, q 2 } {q 0, q 2 } {q 0, q 1 } {q 2 } {q 1, q 2 } {q 1, q 2 } {q 2 } {q 0, q 1, q 2 } {q 0, q 1 } {q 1, q 2 } {q 2 }

27 / 68 Správanie sa NKA pre ret azec aa: T.j. ˆδ N (q 0, aa) = {q 0, q 1 }. Vidíme, že NKA sa vie dostat po spracovaní ret azca aa do jedného zo stavov {q 0, q 1 }. Ekvivalentne, v DKA: ˆδ D ({q 0 }, aa) = {q 0, q 1 }. V oboch automatoch by sme samozrejme aa akceptovali.

28 / 68 Správanie sa NKA pre ret azec aba: T.j. ˆδ N (q 0, aba) =. Vidíme, že NKA sa nevie dostat spracovaním aba do žiadneho stavu, pretože sa pre všetky možné výpočty zasekne. Ekvivalentne, v DKA: ˆδ D ({q 0 }, aba) =. V oboch automatoch by sme samozrejme aba neakceptovali.

29 / 68 Pri pohl ade na NKA (alebo aj DKA) vidíme, že tieto automaty akceptujú jazyk: L(N) = L(D) = {a i b j c k i 1, j 0, k 0, i, j, k Z} ekvivalentne: L(N) = L(D) = a + b c.

30 / 68 Efektívnejšia determinizácia DKA, ktorý sme dostali, má až 8 stavov, ked že pôvodný NKA mal 3 (2 3 = 8). Vo vzniknutom DKA sú však stavy {q 1 }, {q 0, q 2 }, {q 0, q 1, q 2 } nedosiahnutel né, t.j. neexistuje vstupné slovo, pri ktorého spracovaní by sa automat vedel dostat do jedného z týchto 3 stavov. Preto sú v automate nadbytočné. Preto môžeme uvažovat upravený algoritmus determinizácie, pri ktorom nevytvoríme všetky stavy DKA hned, ale konštruujeme ich "on-the-fly" počas determinizácie podl a toho, či sú alebo nie sú dosiahnutel né.

31 / 68 Efektívnejšia determinizácia Začnime teda znovu z daného NKA: a b c Start q 0 q 1 q a 2 b Na začiatku vieme, že v DKA bude určite dosiahnutel ný jeho počiatočný stav {q 0 }. Preto vyšetríme prechody z neho a každý stav, ktorý takto dostaneme bude tiež dosiahnutel ný. a b c {q 0 }

32 / 68 a b c {q 0 } {q 0, q 1 } Vidíme, že aj stavy a {q 0, q 1 } sú dosiahnutel né, tak ich pridáme do prechodovej tabul ky a vyšetríme prechody aj pre ne: a b c {q 0 } {q 0, q 1 } {q 0, q 1 } {q 0, q 1 } {q 1, q 2 } Pribudol d alší dosiahnutel ný stav {q 1, q 2 }. Vyšetríme aj jeho prechody:

33 / 68 a b c {q 0 } {q 0, q 1 } {q 0, q 1 } {q 0, q 1 } {q 1, q 2 } {q 1, q 2 } {q 1, q 2 } {q 2 } Pribudol d alší dosiahnutel ný stav {q 2 }, vyšetríme aj ten: a b c {q 0 } {q 0, q 1 } {q 0, q 1 } {q 0, q 1 } {q 1, q 2 } {q 1, q 2 } {q 1, q 2 } {q 2 } {q 2 } {q 2 }

34 / 68 Ked že už žiadne d alšie dosiahnutel né stavy nepribudli, máme DKA ekvivalentný k zadanému NKA, pričom počet stavov je 5, čo je menej než 8, získaných pôvodnou subset konštrukciou. Samozrejme, oba DKA sú ekvivalentné.

35 / 68 Príklad 3 Determinizujte nasledovný NKA. Určte, aký jazyk akceptuje daný NKA (DKA). b q 1 Start q 0 a, b b b a q 2

36 / 68 Vykonáme rýchlu determinizáciu. T.j. začneme s počiatočným stavom {q 0 } v DKA a hl adáme z neho dosiahnutel né stavy. a b {q 0 } δ D ({q 0 }, a) = δ D ({q 0 }, b) = p {q 0 } p {q 0 } δ N (p, a) = δ N (q 0, a) = {q 1, q 2 } δ N (p, b) = δ N (q 0, b) = {q 1 } Doplníme do prechodovej tabul ky a zároveň vidíme, že dosiahnutel né sú 2 nové stavy: {q 1, q 2 } a {q 1 }. Oba sú zároveň aj akceptačné.

37 / 68 a {q 0 } {q 1, q 2 } {q 1 } {q 1, q 2 } {q 1 } Najprv zistíme prechody zo stavu {q 1, q 2 }: δ D ({q 1, q 2 }, a) = δ D ({q 1, q 2 }, b) = {q 0, q 1, q 2 } p {q 1,q 2 } p {q 1,q 2 } b δ N (p, a) = δ N (q 1, a) δ N (q 2, a) = = δ N (p, b) = δ N (q 1, b) δ N (q 2, b) = {q 1 } {q 0, q 2 } = Doplníme do prechodovej tabul ky a zároveň vidíme, že dosiahnutel né sú 2 nové stavy: (neakceptačný) a {q 0, q 1, q 2 } (akceptačný).

38 / 68 a {q 0 } {q 1, q 2 } {q 1 } {q 1, q 2 } {q 0, q 1, q 2 } {q 1 } {q 0, q 1, q 2 } Zistíme prechody zo stavu {q 1 }: δ D ({q 1 }, a) = δ D ({q 1 }, b) = p {q 1 } p {q 1 } b δ N (p, a) = δ N (q 1, a) = δ N (p, b) = δ N (q 1, b) = {q 1 } Doplníme do prechodovej tabul ky. Vidíme, že oba stavy už v tabul ke máme, čiže sme nenašli nový dosiahnutel ný stav.

a {q 0 } {q 1, q 2 } {q 1 } {q 1, q 2 } {q 0, q 1, q 2 } {q 1 } {q 1 } {q 0, q 1, q 2 } Zistíme prechody zo stavu : δ D (, a) = p δ D (, b) = p δ N (p, a) = δ N (p, b) = b Doplníme do prechodovej tabul ky. Vidíme, že sme nenašli nový dosiahnutel ný stav. 39 / 68

Doplníme do prechodovej tabul ky. Vidíme, že sme nenašli nový dosiahnutel ný stav. 40 / 68 a {q 0 } {q 1, q 2 } {q 1 } {q 1, q 2 } {q 0, q 1, q 2 } {q 1 } {q 1 } {q 0, q 1, q 2 } b Zistíme prechody zo stavu {q 0, q 1, q 2 }: δ D ({q 0, q 1, q 2 }, a) = δ N (p, a) = δ N (q 0, a) δ N (q 1, a) δ N (q 2, a) = p {q 0,q 1,q 2 } {q 1, q 2 } = {q 1, q 2 } δ D ({q 0, q 1, q 2 }, b) = p {q 0,q 1,q 2 } {q 1 } {q 1 } {q 0, q 2 } = {q 0, q 1, q 2 } δ N (p, b) = δ N (q 0, b) δ N (q 1, b) δ N (q 2, b) =

41 / 68 a {q 0 } {q 1, q 2 } {q 1 } {q 1, q 2 } {q 0, q 1, q 2 } {q 1 } {q 1 } {q 0, q 1, q 2 } {q 1, q 2 } {q 0, q 1, q 2 } b Ked že tabul ka je celá vyplnená a každý stav sme vyšetrili, dostávame výslednú prechodovú tabul ku DKA, ktorý je ekvivalentný zadanému NKA. Čiže z maximálneho počtu 8 stavov má tento DKA stavov len 5.

42 / 68

43 / 68 Výpočet slova abbab v NKA: Vidíme, že existuje 6 rôznych spôsobov, akými môže NKA spracovat vstup abbab.

44 / 68 Pre porovnanie výpočet slova abbab v príslušnom DKA: Ked že je to DKA, tu existuje len 1 spôsob, ako možno spracovat vstup abbab.

45 / 68 Ak by sme chceli určit jazyk, ktorý NKA / DKA akceptujú, tak jednoduchšie je to z pohl adu na NKA: Slovo akceptujem tak, že sa z q0 viem jeho prečítaním dostat do q 1, t.j. určite na jeho konci je jedno a / jedno b (cesta z q 0 do q 1 ), za ktorými môže nasledovat postupnost b (slučka v q 1 ). Ale navyše, je možné ešte predtým íst z q 0 cez q 2 naspät do q 0 l ubovol ný počet krát, t.j. na začiatku slova sa môžu opakovat a (t.j. z q 0 do q 2 ), za ním môže byt l ubovol ná postupnost b (slučka v q 2 ) a následne 1 b (z q 2 do q 0 ). Čiže celkovo ret azce, ktoré automaty akceptujú, sú v tvare: {{a}{b} {b}} {a, b}{b}

46 / 68 Príklad 4 Nájdite NKA, ktorý akceptuje jazyk L nad abecedou {0, 1}, kde L = {0w1 w {0, 1} } inými slovami: L = {w w začína nulou a končí jednotkou } Ret azce z jazyka: L = {01, 001, 011, 0001, 0011, 0101, 0111,...}

NKA sú ideálne pre popis takýchto jazykov, ked že sú často jednoduchšie na zostrojenie než DKA. Najmä v NKA nemusíme uvažovat, či je prechod na jednotku súčast ou časti w alebo je to posledná jednotka. Proste definujeme aj taký, aj taký prechod a NKA sa "postará" o zvyšok. Ked že w má označovat l ubovol ný ret azec z núl a jednotiek, v NKA to vieme realizovat vel mi jednoducho pomocou slučky na všetky symboly. 47 / 68

48 / 68 0, 1 Start q 0 q 1 q 2 0 1

49 / 68 DKA vytvorený z NKA by vyzeral nasledovne: 0 1 0 Start {q 0 } {q 1 } {q 1, q 2 } 0 1 1 0, 1

50 / 68 Príklad 5 Nájdite NKA, ktorý akceptuje jazyk L nad abecedou {a, b}, kde L = {xayb x, y {a, b} } Ret azce z jazyka: L = {ab, aab, aabb, baab, babb,...}

51 / 68 a, b a, b Start q 0 q 1 q a 2 b

52 / 68 Príklad 6 Na predchádzajúcom cvičení bola medzi náročnejšími úlohami úloha nájst DKA, ktorý akceptuje nasledovný jazyk nad abecedou {0, 1}: L = {w tretí symbol w od konca je jednotka } Táto úloha sa ovel a jednoduchšie rieši tak, že sa nájde NKA a ten sa potom skonvertuje na DKA, než že sa nájde DKA priamo.

53 / 68 Skonštruujeme NKA, ktorý dokáže rozpoznat, že tretí symbol od konca je jednotka. To znamená, že prečíta akýkol vek prefix pred touto jednotkou a následne zistí, že tretí symbol od konca je jednotka a za ňou ešte dva l ubovol né symboly. Tento jazyk sa dá totižto prepísat aj nasledovne: {0, 1} 1{0, 1} 2 A to pomocou NKA zostrojíme pomerne jednoducho:

54 / 68 0, 1 Start q 0 q 1 q 2 q 3 1 0, 1 0, 1

Príslušný DKA by vyzeral nasledovne (pozor, v obrázku to nie je dobre vidiet, ale zo stavu q3 je prechod do stavu q6 na symbol 0) 55 / 68

Ďalšie 2 zaujímavé úlohy (obe sú variantou úloh z knihy [1], odporúčam sa pozriet na d alšie úlohy v spomínanej literatúre v kapitole 2.3.7, kde sú úlohy na NKA). 1. Množina ret azcov nad abecedou {0, 1, 2} taká, že ich posledný symbol sa v ret azci vyskytuje ešte aspoň jeden krát. Do jazyka patria napríklad 00, 0120, 0121, 0122, 122, 212, 222,... Do jazyka nepatria napríklad 0, 1, 2, 01, 12, 20, 012, 210,... 2. Množina ret azcov nad abecedou {0, 1} taká, že sa v nich nachádzajú dve nuly, ktoré sú od seba oddelené počtom pozícií, ktorý je násobok trojky. Do jazyka patria napríklad 11100, 01110, 00100, 00101010, 1001, 101000,... Do jazyka nepatria napríklad 010, 111, 0110,... 56 / 68

57 / 68 A pre vel ký úspech dôkazová úloha Pre jazyk L = {0w1 w {0, 1} } sme zostrojili NKA: 0, 1 Start q 0 q 1 q 2 0 1 Dokážme, že tento automat naozaj akceptuje daný jazyk a teda, že akceptačný výpočet (t.j. taký, ktorý po prečítaní skončí v stave q 2 ) existuje práve také ret azce, ktoré začínajú nulou a končia jednotkou.

58 / 68 Chceme teda dokázat, že pre náš automat platí tvrdenie: S 3 : q 2 ˆδ N (q 0, w) vtedy a len vtedy, ak w začína nulou a končí jednotkou. Na dôkaz si pomôžeme d alšími dvomi tvrdeniami o zvyšných 2 stavoch: S 2 : q 1 ˆδ N (q 0, w) vtedy a len vtedy, ak w začína nulou. S 1 : q 0 ˆδ N (q 0, w) vtedy a len vtedy, ak w = ε. Tvrdenia S 2, S 3 sa týkajú ret azcov l ubovol nej dĺžky, tie budeme dokazovat matematickou indukciou. Tvrdenie S 1 je možné dokázat bez indukcie.

59 / 68 Dôkaz S 1 : q 0 ˆδ N (q 0, w) vtedy a len vtedy, ak w = ε. 1. Ak w = ε, potom q 0 ˆδ N (q 0, w). Nech w = ε. Potom ˆδ N (q 0, w) = ˆδ N (q 0, ε), čo podl a definície je rovné {q 0 }. T.j. platí, že q 0 ˆδ N (q 0, w). 2. Ak q 0 ˆδ N (q 0, w), potom w = ε. Nech q 0 ˆδ N (q 0, w). Z pohl adu na automat, takýto ret azec w nemôže mat prvý symbol 0, lebo by q 0 nebolo možné výpočtom dosiahnut. Taktiež ak by bol prvý symbol 1, automat by sa zasekol. Preto je w ret azec "bez prvého symbolu" a teda prázdny ret azec, t.j. w = ε.

60 / 68 Dôkaz S 2 : q 1 ˆδ N (q 0, w) vtedy a len vtedy, ak w začína nulou. Základný krok, n = 0 1. Ak w začína nulou, potom q 1 ˆδ N (q 0, w). Máme w = ε. Takéto w nulou však začínat nemôže. Predpoklad je teda nesplnený a celé tvrdenie považujeme v tomto prípade za platné. 2. Ak q 1 ˆδ N (q 0, w), potom w začína nulou. Máme w = ε. V takom prípade sa však nemôže stat, že q 1 ˆδ N (q 0, w), čiže predpoklad je nesplnený. V takom prípade je však celé tvrdenie platné.

61 / 68 Dôkaz S 3 : q 2 ˆδ N (q 0, w) vtedy a len vtedy, ak w začína nulou a končí jednotkou. Základný krok, n = 0 1. Ak w začína nulou a končí jednotkou, potom q 2 ˆδ N (q 0, w). Máme w = ε. Takéto w však nemôže začínat nulou a končit jednotkou. Predpoklad je teda nesplnený a celé tvrdenie považujeme v tomto prípade za platné. 2. Ak q 2 ˆδ N (q 0, w), potom w začína nulou a končí jednotkou. Máme w = ε. V takom prípade sa však nemôže stat, že q 2 ˆδ N (q 0, w), čiže predpoklad je nesplnený. V takom prípade je však celé tvrdenie platné.

Základné prípady S 2, S 3 platia, vyslovme teda indukčný predpoklad, že tvrdenia platia pre ret azce dĺžky n a dokážme, že platia pre ret azce dĺžky n + 1. 62 / 68

63 / 68 Dôkaz S 2 : q 1 ˆδ N (q 0, w) vtedy a len vtedy, ak w začína nulou. w = n + 1 1. Ak w začína nulou, potom q 1 ˆδ N (q 0, w). Nech w = xa, x = n, a {0, 1}. Ked že w začína nulou, tým pádom aj x začína nulou a navyše x je dĺžky n. Z indukčného predpokladu vieme, že q 1 ˆδ N (q 0, x). A z obrázka automatu je zrejmé, že q 1 δ N (q 1, a) aj pre a = 0, aj pre a = 1. Preto teda aj q 1 ˆδ N (q 0, w). 2. Ak q 1 ˆδ N (q 0, w), potom w začína nulou. (Dôkaz na d alšom slajde)

Ak q 1 ˆδ N (q 0, w), potom w začína nulou. w = n + 1 w = xa, x = n, a {0, 1}. Ak q 1 ˆδ N (q 0, w), potom uvažujme, ako sa tam q 1 dostalo: Nech a = 0. V takom prípade po ret azci x musí byt NKA v takých stavoch, z ktorých sa prečítaním nuly dá íst do q 1. Teda q 0 ˆδ N (q 0, x), aj q 1 ˆδ N (q 0, x). Ak q 0 ˆδ N (q 0, x), tak vieme, že musí platit, že x = ε. A v tom prípade w = xa = 0, čiže ret azec začínajúci nulou. Ak q 1 ˆδ N (q 0, x), tak z indukčného predpokladu musí platit, že x začína nulou. Lenže v takom prípade aj w začína nulou. Nech a = 1. V takom prípade po ret azci x musí byt NKA v takých stavoch, z ktorých sa prečítaním nuly dá íst do q 1. Teda q 1 ˆδ N (q 0, x). Z indukčného predpokladu vieme, že x musí v takom prípade začínat nulou a teda aj w bude začínat nulou. Analýzou všetkých možností sme dospeli k tomu, že ak q 1 ˆδ N (q 0, w), tak potom určite w bude začínat nulou. 64 / 68

65 / 68 Dôkaz S 3 : q 2 ˆδ N (q 0, w) vtedy a len vtedy, ak w začína nulou a končí jednotkou. w = n + 1 1. Ak w začína nulou a končí jednotkou, potom q 2 ˆδ N (q 0, w). Nech w = x1, x = n. Ked že w začína nulou, tým pádom aj x začína nulou a navyše x je dĺžky n. Z indukčného predpokladu vieme, že q 1 ˆδ N (q 0, x). A z obrázka automatu je zrejmé, že q 2 δ N (q 1, 1). Preto teda aj q 2 ˆδ N (q 0, w). 2. Ak q 2 ˆδ N (q 0, w), potom w začína nulou a končí jednotkou. (Dôkaz na d alšom slajde)

66 / 68 Ak q 2 ˆδ N (q 0, w), potom w začína nulou a končí jednotkou. w = n + 1 w = xa, x = n, a {0, 1}. Ak q 2 ˆδ N (q 0, w), potom uvažujme, ako sa tam q 2 dostalo: Nech a = 0. Z pohl adu na obrázok automatu je zrejmé, že nie je možné, aby ret azec, ktorého posledný symbol bol 0, skončil v stave q 2, pretože zo žiadneho stavu nie je možný prechod do stavu q 2 na symbol 0. Preto posledný symbol w nemôže byt nula. Nech a = 1. V takom prípade po ret azci x musí byt NKA v takých stavoch, z ktorých sa prečítaním jednotky dá íst do q 2. Taký stav je len q 1. To znamená, že x má tú vlastnost, že q 1 ˆδ N (q 0, x). Z indukčného predpokladu však vyplýva, že v takom prípade musí x začínat nulou. A teda aj w musí začínat nulou. Čiže v tomto prípade w začína nulou a končí jednotkou! Analýzou všetkých možností sme dospeli k tomu, že ak q 2 ˆδ N (q 0, w), tak potom určite w bude začínat nulou a končit jednotkou.

67 / 68 Tým sme dokázali platnost 3 tvrdení: S 3 : q 2 ˆδ N (q 0, w) vtedy a len vtedy, ak w začína nulou a končí jednotkou. Na dôkaz si pomôžeme d alšími dvomi tvrdeniami o zvyšných 2 stavoch: S 2 : q 1 ˆδ N (q 0, w) vtedy a len vtedy, ak w začína nulou. S 1 : q 0 ˆδ N (q 0, w) vtedy a len vtedy, ak w = ε. Z tvrdenia S 3 vyplýva, že jazyk tohto automatu tvoria práve ret azce, ktoré začínajú 0 a končia 1, lebo to sú práve tie ret azce, pre ktoré existuje výpočet do akceptačného stavu q 2.

68 / 68 Použitá literatúra 1 Hopcroft, Motwani, Ullman - Introduction to Automata Theory, Languages and Computations, 3rd Ed.