Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Véges automaták Csink László, 2018.

Hasonló előadás


Az előadások a következő témára: "Véges automaták Csink László, 2018."— Előadás másolata:

1 Véges automaták Csink László, 2018

2 Acknowledgement based on Stanford InfoLab Ajánlott könyv: Automata Theory, Languages, and Computation by Hopcroft, Motwani, and Ullman, Addison-Wesley, A diák az alábbiak felhasználásával készültek: html#LECTURE%20NOTES

3 Informális bevezetés based on Stanford InfoLab A véges automatáknak állapotai vannak, melyek közötti átmeneteket függvény írja le. Számos szoftvert lehet véges automatával modellezni.

4 Véges automata reprezentációja
based on Stanford InfoLab Leginkább gráffal írjuk le csúcs= állapot él=átmenet él súlya= mi okozza az átmenetet

5 Példa: különös bolygó A példa Jay Misra ötlete
based on Stanford InfoLab A példa Jay Misra ötlete Egy távoli bolygón három állatfaj él, jelölje őket: a, b, és c. Bármely két különböző faj párosodhat. Ha ez történik: A párosodók meghalnak. Két egyed születik a harmadik fajból.

6 különös bolygó – (2) Megfigyelés: az egyedek száma nem változik.
based on Stanford InfoLab Megfigyelés: az egyedek száma nem változik. A bolygó terminál ha az összes egyed ugyanahhoz a fajhoz tartozik. Ugyanis a szaporodás nem lehetséges. Állapot = három egész sorozata: az a, b, és c fajok egyedszámai.

7 különös bolygó – kérdések
based on Stanford InfoLab Egy adott állapotból kiindulva törvényszerű-e, hogy a bolygó valamikor terminál? Egy adott állapotból kiindulva lehetséges-e, hogy a bolygó terminál, ha a szaporodáskor nem megfelelő párválasztás történik?

8 kérdések– (2) based on Stanford InfoLab A fenti kérdések emlékeztetnek protokollokkal kapcsolatos igazi kérdésekre “Terminálhat-e a bolygó?” megfelel annak, hogy egy protokoll nem kívánt vagy hiba állapotba kerülhet-e. “Törvényszerű-e, hogy a bolygó terminál?” megfelel annak, hogy a protokoll garantáltan terminál.

9 különös bolygó – átmenetek
based on Stanford InfoLab a-esemény alatt azt értjük, hogy b és c fajok egyedei párosodnak, meghalnak és két a születik. hasonlóan: b-esemény és c-esemény. Az eseményeket a, b, és c szimbólumokkal jelöljük

10 különös bolygó 2 egyeddel
based on Stanford InfoLab 200 020 002 a b c 011 101 110 megfigyelés: minden állapot termináláshoz vezet.

11 különös bolygó 3 egyeddel
111 a c based on Stanford InfoLab b 300 030 003 a a 210 102 021 201 120 012 c b b c megfigyelés: négy “must-fail” állapot van. A többi “can’t-fail” állapot. A 111 állapotból több átmenet lehetséges.

12 különös bolygó 4 egyeddel
400 022 130 103 211 a c b 040 202 013 310 121 b a c 004 220 301 031 112 c b a based on Stanford InfoLab Megfigyelés: 400, 040, 004 ”must-fail” állapotok. Minden más állapot “might-fail” állapot, azaz belőlük indulva a terminálás lehetséges, de nem szükségszerű.

13 A szimmetria kihasználása
based on Stanford InfoLab A tzerminlás a három faj elemeinek számától függ csak és az mindegy, hogy melyik fajokhoz tartozik a három egyedszám. Ezért azonosnak tekintjük azokat az állapotokat, amelyekben a három egész szám megegyezik, és az egyértelműség kedvéért csökkenő sorrendben írjuk ahárom számot. Így egyetlen átviteli szimbólum lesz csak: x.

14 A 2, 3, 4 esetek based on Stanford InfoLab x 211 400 110 111 x x x x 200 300 310 x 210 220 x Megfigyelés: n = 4 eset nemdeterminisztikus, több átmenet lehetséges 211-ből ugyanarra az inputra.

15 5 egyed based on Stanford InfoLab 500 410 221 320 311 Megfigyelés: 500 ”must-fail” állapot, az összes többi ”might-fail” állapot

16 6 egyed 600 based on Stanford InfoLab 510 222 420 321 411 330 Megfigyelés: 600 ”must-fail” állapot; 510, 420, és 321 ”can’t-fail” állapotok; 411, 330, és 222 “might-fail” állapotok.

17 7 egyed 700 322 based on Stanford InfoLab 610 331 520 421 511 430 Megfigyelés: 700 ”must-fail” állapot, az összes többi ”might-fail” állapot.

18 kérdések Szimmetria nélkül, hány állapot van n egyed estén?
based on Stanford InfoLab Szimmetria nélkül, hány állapot van n egyed estén? Mi a helyzet a szimmetria figyelembe vételével? n egyed esetén, hogyan dönthető el, hogy egy állapot “must-fail,” “might-fail,” vagy “can’t-fail”?

19 Az 11-t nem tartalmazó bináris nyelv
Példa: két eegymást követ 1-t nem tartalmazó bináris nyelv. L = {ɛ , 0, 1, 00, 01, 10, 000, 001, 010, 100, 101, 0000, 0001, 0010, 0100, 0101, 1000, 1001, 1010, } 0-hosszú szó 1 can, -hosszú 2 van, 2-hosszú 3 vaqn, 3-hosszú 5 van. És tovább??? based on Stanford InfoLab Következő dia átugrása

20 n-hosszú, 11-t nem tartalmazó bináris stringek száma
based on Stanford InfoLab

21 DFA: determinisztikus véges automata
based on Stanford InfoLab A DFA alkotórészei:: állapotok véges halmaza (Q). input ábécé (Σ). átmenet függvény (δ). kezdőállapot (q0  Q). végállapotok halmaza (F ⊆ Q). “végállapot” és “elfogadó állapot” ugyanazt jelenti.

22 Átmenet függvény based on Stanford InfoLab Két argumentuma van: q állapot és egy a input szimbólum. δ(q, a) = azt az állapotot jelöli, amelybe a DFA megy a q állapotból, ha a szimbólumot olvas.

23 A DFA gráf reprezentációja
based on Stanford InfoLab csúcs= állapot. Az élek az átmenet függvényt írják le. A p-ből q-ba vezető él súlya ama input állapot(ok)ból áll, melyet (melyek valamelyikét) olvasva p állapotban az automata q állapotba kerül. Nyíllal megjelöljük az egyetlen kezdőállapotot. A végállapotokat duplán bekarikázzuk.

24 Példa: DFA gráfja Elfogadja az 11-t nem tartalmazó szavakat (és mást nem). based on Stanford InfoLab Start 1 A C B 0,1 11 már előfordult előző string OK, a vége nem 1. előző string OK, a vége 1. Csak ezek az esetek vannak!

25 Alternatív reprezentáció: átmeneti táblázat
based on Stanford InfoLab végállapot csillagozva oszlopok = input szimbólumok 1 nyíl jelöli a Kezdőállapotot →*A A B * B A C C C C sorok= állapotok

26 Kiterjesztett átmenet függvény
based on Stanford InfoLab Mi a helyzet, ha nemcsak egy szimbólumot, de egy egész szót olvasunk? Indukciót alkalmazunk a szó (string) hosszára. Alap: δ(q, ɛ ) = q Indukció: δ(q,wa) = δ(δ(q,w),a) w string; a input szimbólum.

27 Kiterjesztett δ: Intuíció
konvenció: … w, x, y, x stringek. a, b, c,… szimbólumok. A kiterjesztett δ ki lesz számolva q állapotra és a1a2…an inputra, követve egy utat az átmeneti gráfban, amely út q állapotnál kezdődik és rendre az a1, a2,…,an szimbólumokkal címkézett (súlyozott) éleket választjuk. based on Stanford InfoLab

28 példa: kiterjesztett delta
based on Stanford InfoLab 1 A A B B A C C C C δ(B,011) = δ(δ(B,01),1) = δ(δ(δ(B,0),1),1) = δ(δ(A,1),1) = δ(B,1) = C

29 Delta-kalap based on Stanford InfoLab A könyvben a kiterjesztett δ “kalappal” van ellátva, hogy megkülönböztessük a δ függvénytől (a diákon pirossal jelöltük: δ). Igazából sem a kalap nem kell, sem a piros, nyugodtan azonosíthatjuk a két deltát, mert az 1-hosszú szavakon ugyanúgí működnek. δ(q, a) = δ(δ(q, ɛ ), a) = δ(q, a)

30 A DFA nyelve Minden automata meghatároz egy nyelvet.
based on Stanford InfoLab Minden automata meghatároz egy nyelvet. Ha A egy automata, akkor L(A) jelöli a nyelvét. L(A) azokat a szavakat tartalmazza, amelyek a kezdőállapotból valamely végállapotba vezető utak éleit címző szimbólumok egybeolvasásából adódnak. Formálisan: L(A) = ama w stringek halmaza, melyekre δ(q0, w) eleme az F végállapot-halmaznak.

31 Példa: szó (string) a nyelvben
based on Stanford InfoLab 101 az alábbi DFA nyelvének eleme. Kezdünk az A állapotban. Start 1 A C B 0,1

32 Példa: szó (string) a nyelvben
based on Stanford InfoLab 101 Kövessük az 1 élt. 0,1 1 1 A B C Start

33 Példa: szó (string) a nyelvben
based on Stanford InfoLab 101 Kövessük a 0 élt B állapotból. 0,1 1 1 A B C Start

34 Példa: szó (string) a nyelvben
101 based on Stanford InfoLab Kövessük az 1 élt A-ból. Elfogadó (=vég) állapotba Jutottunk, így 101 szava a nyelvnek. 0,1 1 1 A B C Start

35 Példa – konklúzió A példában szereplő DFA nyelve:
based on Stanford InfoLab A példában szereplő DFA nyelve: {w | w  {0,1}* és w nem tartalmaz 11-t}

36 DFA nyelve – bizonyítás
based on Stanford InfoLab Ha S és T halmazok, és az állítás S=T, akkor két dolgot kell bizonyítani: S ⊆ T és T ⊆ S. Azaz: Ha w eleme S-nek, akkor w eleme T-nek is. Ha w eleme T-nek, akkor w eleme S-nek is. Legyen S = az előbbi DFA nyelve, és T = “11-t nem tartalmazó bináris szavak.”

37 1. rész S ⊆ T Start 1 A C B 0,1 Bizonyítandó: ha w-t elfogadja a DFA
A C B 0,1 1. rész S ⊆ T based on Stanford InfoLab Bizonyítandó: ha w-t elfogadja a DFA akkor w nem tartalmazza 11-t. Indukcióval w hosszára. Fontos trükk: az indukciós hipotézist kicsit általánosítjuk.

38 Az IH Ha δ(A, w) = A, akkor w nem tartalmaz 11-t és nem 1-re végződik.
Start 1 A C B 0,1 Az IH based on Stanford InfoLab Ha δ(A, w) = A, akkor w nem tartalmaz 11-t és nem 1-re végződik. Ha δ(A, w) = B, akkor w nem tartalmaz 11-t és egyetlen 1-re végződik. Alap: |w| = 0; i.e., w = ɛ . (1) igaz, mert ε nem tartalmaz1-t egyáltalán. (2) igaz, mert δ(A, ɛ ) nem B. hossz Fontos (2) esetében: Ha az “if” része a “if..then” –nek hamis, akkor az állítás igaz..

39 Indukciós lépés Start 1 A C B 0,1
A C B 0,1 Indukciós lépés based on Stanford InfoLab Tegyük fel, hogy (1) és (2) fennállnak w-nél rövidebb stringekre, ahol |w| hossza legalább 1. Mivel w≠ɛ, ezért w = xa alakú, ahol a az utolsó szimbóluma w-nek és x az előtte levő rész. IH (indukciós hipotézis) igaz x-re

40 Indukciós lépés– (2) Start 1 A C B 0,1
A C B 0,1 Indukciós lépés– (2) based on Stanford InfoLab Bizonyítandó, hogy (1) és (2) igazak w = xa stringre. (1): Ha δ(A, w) = A, akkor w nem tartalmaz 11-t és 0-ra végződik (nem 1-re). Mivel δ(A, w) = A; δ(A, x) vagy A vagy B (C nem lehet), és a csak 0 lehet (látszik a gráfon). Az IH szerint x nem tartalmaz 11-t. Mivel w 0-ra is végződik, így 11-t nem tartalmaz w sem.

41 Indukciós lépés– (3) Start 1 A C B 0,1
A C B 0,1 Indukciós lépés– (3) based on Stanford InfoLab (2) bizonyítása w = xa szóra: haf δ(A, w) = B, akkor w nem tartalmaz 11-t és 1-re végződik. Mivel δ(A, w) = B; δ(A, x) csak A lehet, és a csak 1 lehet (látszik a gráfon). Az IH szerint x nem tartalmaz 11-t és nem végződik 1-re. Ezért w sem tartalmaz 1-t és 1-re végződik.

42 Start 1 A C B 0,1 2. rész: T ⊆ S X based on Stanford InfoLab Bizonyítandó, hogy ha w nem tartalmaz 11-t, akkor w-t elfogadja az a DFA indirekt: ha w-t nem fogadja el a DFA, akkor w- ben előfordul 11. Y Indirekt bizonyítás alapötlete: X és Y ekvivalensek

43 Start 1 A C B 0,1 indirekt based on Stanford InfoLab Minden w szó a fenti DFA-t egyetlen állapotba viszi. Az indukciós bizonyítást a következőre alapozzuk: Minden állapotban egy átmenet lehetséges 1-re és egy átmenet 0-ra. Az egyetlen lehetőség, hogy w-t ne fogadja el az automata az, hogy C állapotba kerül.

44 indirekt – (2) Start 1 A C B 0,1 based on Stanford InfoLab Az egyetlen mód C-be jutni A-ból, δ(A,w) = C, az, hogy w = x1y, x-et olvasva B-be jutunk, onnan 1-t olvasva C-be, majd y-t olvasva C-ben maradunk. Ha δ(A,x) = B akkor x = z1 valamilyen z-re. Így tehát, w = z11y tartalmaz 11-t.

45 Reguláris nyelvek based on Stanford InfoLab Egy L nyelv reguláris ha a nyelvet egy DFA elfogadja. Megjegyzés: a DFA elfogadja L minden szavát, de csak azokat. Vannak nem reguláris nyelvek is. A reguláris nyelvek nem képviselhetnek tetszőlegesen nagy egészeket

46 Példa nem reguláris nyelvre
based on Stanford InfoLab L1 = {0n1n | n ≥ 1} Azaz: L1 = {01, 0011, ,…}

47 Másik példa nem reguláris nyelvre
based on Stanford InfoLab L2 = {w | w  {(, )}* és a zárójelezés helyes} E.g.: (), ()(), (()), (()()),…

48 Viszont sok nyelv reguláris
based on Stanford InfoLab A reguláris nyelvek leírhatók reguláris kifejezésekkel. Példa: a lebegő pontos számok egy programozási nyelvben reguláris nyelvet alkotnak.

49 Példa reguláris nyelvre
based on Stanford InfoLab L3 = { w | w  {0,1}* és w mint bináris egész osztható 23-mal} Az elfogadó DFA: 23 állapot, a nevük 0, 1,…,22. Az állapotok megfelelnek a 23-mal való osztás maradékainak. Kezdő- és egyetlen végállapot a 0.

50 Az átmeneti függvény Ha w bináris szó értéke az i egész, akkor legyen δ(0, w) = i%23. (% = modulo) Ekkor w0 (w konkatenálva 0-val) értéke 2×i, tehát δ(i%23, 0) =δ(δ(0, w),0)=δ(0, w0)= (2×i)%23. hasonlóan: w1 értéke 2×i+1, tehát δ(i%23, 1) = (2×i+1)%23. Példa: δ(15,0) = 30%23 = 7; δ(11,1) = 23%23 = 0. based on Stanford InfoLab e.g. if w=”101101” is decimal i=45, then delta(0,”101101”)=45%23=22 Since w0=”101101”+”0”=2*45+0, so delta(0,w0)=delta( ötlet: a DFA tervezésekor egy állapot azt mutatja, hogy „mire emlékszik” a múltból.

51 A 0 végállapotba kell jutnunk.
Tekintsük a 46 decimális számot (osztható 23-mal. A bináris alakja A 0 végállapotba kell jutnunk. based on Stanford InfoLab Tekintsük a 34 decimális számot (nem osztható 23-mal). A bináris alak Nem jutunk végállapotba.

52 Másik példa based on Stanford InfoLab L4 = { w | w  {0,1}* és w, mint egy bináris szám fordítottja osztható 23-mal}  L4, mert a fordítottja, értéke 46, amely osztható 23-mal. Nehéz megkonstruálni a DFA-t. Viszont van olyan tétel, hogy reguláris nyelv megfordítottja is reguláris.

53 Nemdeterminisztikus véges automaták
based on Stanford InfoLab A nemdeterminisztikus véges automata (NFA) képes több állapotban lenni egyszerre Az átmenet egy állapotból, egy jel olvasása esetén egy állapothalmaz bármely elemébe történhet

54 Kezdünk az egyetlen kezdőállapotban.
based on Stanford InfoLab Kezdünk az egyetlen kezdőállapotban. Elfogadunk egy szót, ha annak olvasása során – bármely menetközbeni döntés esetén – egy végállapotba jutunk. Intuitíven: az NFA mindig “tudja, merre menjen.”

55 Példa: egyszerű sakktábla
based on Stanford InfoLab állapotok= a sakktábla mezői. Input = r (mozgás egy szomszédos piros(red) mezőre) és b (mozgás egy szomszédos fekete (black) mezőre). A kezdő illetve végállapot a tábla ellentétes sarkai.

56 Példa: sakktábla– (2) r b 2,4 5 4,6 1,3,5 2,6 5 2,8 1,5,7
2, 4, ,3,5 2, 2, ,5,7 2,4,6,8 1,3,7,9 2, ,5,9 4, 4, ,7,9 6, * 1 2 5 7 9 3 4 8 6 based on Stanford InfoLab 1 r b 4 2 1 5 3 5 7 1 3 9 7 Elfogadás, mert 9 végállapot

57 NFA definíció Állapotok véges halmaza: Q. input ábécé: Σ.
based on Stanford InfoLab Állapotok véges halmaza: Q. input ábécé: Σ. Átmeneti függvény: δ. Kezdőállapot: q0  Q Végállapotok halmaza: F ⊆ Q.

58 Az NFA átmeneti függvénye
based on Stanford InfoLab δ(q, a) állapotok halmaza. Szavakra kiterjesztve: Alap: δ(q, ɛ ) = {q} Indukció: δ(q, wa) = uniója ama δ(p, a) állapotoknak, melyekre p benne van δ(q, w)–ben Formálisan:

59 Az NFA nyelve based on Stanford InfoLab Egy w szót elfogad az NFA ha δ(q0, w) tartalmaz (legalább egy) végállapotot. Az NFA nyelve az elfogadott szavak halmaza.

60 Példa: NFA nyelve based on Stanford InfoLab Láttuk, hogy a sakktábla NFA elfogadja a rbb szót. Ha az input csak b-t tartalmaz, az elérhető állapotok halmaza {5} illetve {1,3,7,9}, ezért csak a páros hosszú, nemüres, csupa b-t tartalmazó szavak leszenk elfogadva. Mi a helyzet, ha van a szóban legalább egy r? 1 2 5 7 9 3 4 8 6

61 DFA és NFA ekvivalenciája
based on Stanford InfoLab Egy DFA egyszerűen átalakítható NFA-ra, amely ugyanazt a nyelvet fogadja el. Ha δD(q, a) = p, akkor az NFA átmenete legyen δN(q, a) = {p}.

62 Ekvivalencia – (2) based on Stanford InfoLab Megfordítva, minden NFA-hoz konstruálható egy DFA amely ugyanazt a nyelvet fogadja el. A bizonyítás a részhalmaz konstrukció. A DFA állapotainak száma exponenciálisan nagy lehet az NFA állapotszámához képest. Következésképpen, az NFA szintén a reguláris nyelvek elfogadó automatája.

63 Részhalmaz konstrukció
based on Stanford InfoLab Adott egy NFA, állapotai Q, input ábécé Σ, átmeneti függvénye δN, kezdőállapota q0, végállapot halmaza F; konstruáljuk meg az ekvivalens DFA-t a következőképpen: Állapotok 2Q (az összes részhalmaza a Q-nk). Input ábécé Σ. kezdőállapot {q0}. végállapotok= ama állapotai az NFA-nak, melyek tartalmaznak F-beli DFA állapotot.

64 Fontos észrevétel A DFA állapotok NFA állapotok halmazai.
based on Stanford InfoLab A DFA állapotok NFA állapotok halmazai. De egy DFA állapot, például {p,q}, egyetlen állapotnak számít, nem halmaznak.

65 Részhalmaz konstrukció – (2)
A δD átmenet függvlny definíciója δD({q1,…,qk}, a) az uniója δN(qi, a)nak i = 1,…,k. Formálisan: Példa: elkészítjük a sakktábla NFA- val ekvivalens DFA-t. based on Stanford InfoLab

66 Példa: részhalmaz konstrukció
1 2 5 7 9 3 4 8 6 Példa: részhalmaz konstrukció r b 2, 4, ,3,5 2, 2, ,5,7 2,4,6,8 1,3,7,9 2, ,5,9 4, 4, ,7,9 6, r b based on Stanford InfoLab {1} {2,4} {5} {2,4} {5} Megj.: ez az úgynevezettlusta konstrukció, csak akkor csinálunk meg egy állapotot, ha muszáj. *

67 Példa: részhalmaz konstrukció
1 2 5 7 9 3 4 8 6 Példa: részhalmaz konstrukció r b 2, 4, ,3,5 2, 2, ,5,7 2,4,6,8 1,3,7,9 2, ,5,9 4, 4, ,7,9 6, * r b based on Stanford InfoLab {1} {2,4} {5} {2,4} {2,4,6,8} {1,3,5,7} {5} {2,4,6,8} {1,3,5,7}

68 Példa: részhalmaz konstrukció
1 2 5 7 9 3 4 8 6 Példa: részhalmaz konstrukció r b 2, 4, ,3,5 2, 2, ,5,7 2,4,6,8 1,3,7,9 2, ,5,9 4, 4, ,7,9 6, * r b based on Stanford InfoLab {1} {2,4} {5} {2,4} {2,4,6,8} {1,3,5,7} {5} {2,4,6,8} {1,3,7,9} {2,4,6,8} {1,3,5,7} * {1,3,7,9}

69 Példa: részhalmaz konstrukció
1 2 5 7 9 3 4 8 6 Példa: részhalmaz konstrukció r b 2, 4, ,3,5 2, 2, ,5,7 2,4,6,8 1,3,7,9 2, ,5,9 4, 4, ,7,9 6, * r b based on Stanford InfoLab {1} {2,4} {5} {2,4} {2,4,6,8} {1,3,5,7} {5} {2,4,6,8} {1,3,7,9} {2,4,6,8} {2,4,6,8} {1,3,5,7,9} {1,3,5,7} * {1,3,7,9} * {1,3,5,7,9}

70 Példa: részhalmaz konstrukció
1 2 5 7 9 3 4 8 6 Példa: részhalmaz konstrukció r b 2, 4, ,3,5 2, 2, ,5,7 2,4,6,8 1,3,7,9 2, ,5,9 4, 4, ,7,9 6, * r b based on Stanford InfoLab {1} {2,4} {5} {2,4} {2,4,6,8} {1,3,5,7} {5} {2,4,6,8} {1,3,7,9} {2,4,6,8} {2,4,6,8} {1,3,5,7,9} {1,3,5,7} {2,4,6,8} {1,3,5,7,9} * {1,3,7,9} * {1,3,5,7,9}

71 Példa: részhalmaz konstrukció
1 2 5 7 9 3 4 8 6 Példa: részhalmaz konstrukció r b 2, 4, ,3,5 2, 2, ,5,7 2,4,6,8 1,3,7,9 2, ,5,9 4, 4, ,7,9 6, * r b based on Stanford InfoLab {1} {2,4} {5} {2,4} {2,4,6,8} {1,3,5,7} {5} {2,4,6,8} {1,3,7,9} {2,4,6,8} {2,4,6,8} {1,3,5,7,9} {1,3,5,7} {2,4,6,8} {1,3,5,7,9} * {1,3,7,9} {2,4,6,8} {5} * {1,3,5,7,9}

72 Példa: részhalmaz konstrukció
1 2 5 7 9 3 4 8 6 Példa: részhalmaz konstrukció r b 2, 4, ,3,5 2, 2, ,5,7 2,4,6,8 1,3,7,9 2, ,5,9 4, 4, ,7,9 6, * r b {1} * {1,3,5,7,9} {2,4,6,8} {1,3,5,7,9} * {1,3,7,9} {2,4,6,8} {5} {2,4,6,8} {2,4,6,8} {1,3,7,9} {5} {2,4} {2,4,6,8} {1,3,5,7} {1,3,5,7} {2,4} {5} based on Stanford InfoLab

73 Ekvivalencia bizonyítása
based on Stanford InfoLab w hosszára való teljes indukcióval bizonyítandó, hogy δN(q0, w) = δD({q0}, w) A bizonyítás a könyv 64. oldalán Pun= szójáték

74 NFA ɛ-átmenettel based on Stanford InfoLab Megengedünk állapot átmenetet olvasás nélkül is (ɛ olvasással). Ezek az átmenetek spontán történnek, anélkül, hogy az input szót megnéznénk. Az ɛ-átmenet néha kényelmes, de „többletet” nem ad: továbbra is a reguláris nyelvek lesznek elfogadva.

75 Péda: ɛ-NFA ɛ 0 1 ε A {E} {B} ∅ B ∅ {C} {D} C ∅ {D} ∅ D ∅ ∅ ∅
ε A {E} {B} ∅ B ∅ {C} {D} C ∅ {D} ∅ D ∅ ∅ ∅ E {F} ∅ {B, C} F {D} ∅ ∅ * based on Stanford InfoLab C E F A B D 1 ɛ

76 Állapotok lezárása ɛ C E F A B D 1
based on Stanford InfoLab CL(q) = ama állapotok halmaza, melyeket q-ból el lehet érni kizárólag ɛ címkéjű éleken haladva. Példa: CL(A) = {A}; CL(E) = {B, C, D, E}. Állapot halmaz lezárása= a halmaz elemeit mint állapotokat lezárjuk, és ezek uniója. C E F A B D 1 ɛ

77 Kiterjesztett delta (delta-kalap a könyvben, itt piros delta)
δ Alap: (q, ɛ ) = CL(q). Indukció: (q, xa) kiszámítása: Kezdetben S=δ(q, x). Vegyük az unióit CL(δ(p, a)) halmazoknak, minden p  S. Intuícióion: (q, w) ama állapotok halmaza, melyeket q-ból el lehet érni olyan úton, melynek éleit w szimbólumai címkézik. based on Stanford InfoLab δ δ

78 Példa: kiterjesztett delta
C E F A B D 1 ε based on Stanford InfoLab δ(A, ε) = CL(A) = {A}. δ(A, 0) = CL({E}) = {B, C, D, E}. δ(A, 01) = CL({C, D}) = {C, D}. Az ɛ-NFA nyelve ama w szavakat tartalmazza, melyekre δ(q0, w) tartalmaz egy végállapotot.

79 NFA és ɛ-NFA ekvivalencia
based on Stanford InfoLab Minden NFA egyben ɛ-NFA is. Csak nincs benne ɛ átmenet. Megfordítva: vegyünk egy ɛ-NFA automatát és megkonstruáljuk az ugyanazt a nyelvet elfogadó NFA automatát. Az ɛ-átmenetet kombináljuk a következő átmenettel, amelyik „igazi” input hatására történik.

80 ɛ-átmenet eltávolítása
based on Stanford InfoLab a a a ɛ átmenetek ɛ átmenetek

81 ɛ-átmenet eltávolítása
Idáig tart a szöveg, Részhalmaz konstrukció Itt kezdődik a szöveg based on Stanford InfoLab a a a ɛ -átmenetek ɛ -átmenetek

82 ɛ-átmenet eltávolítása
Idáig, részhalmaz Konstrukció nélkül based on Stanford InfoLab a Itt indulunk a a ɛ átmenetek ɛ átmenetek

83 Ekvivalencia – (2) based on Stanford InfoLab Vegyünk egy ɛ-NFA automatát Q állapotokkal, Σ ábécével, q0 kezdőállapottal, F végállapot halmazzal, és δE átmenet függvénnyel. Készítünk egy “rendes” NFA automatát Q állapotokkal, Σ ábécével, q0 kezdőállapottal, F’ (jelölés: F vessző) végállapot halmazzal, és δN átmenet függvénnyel.

84 Ekvivalencia – (3) δN(q, a) számítása: Legyen S = CL(q).
δN(q, a) legyen (minden p  S-re) δE(p, a) halmazok uniója. F’ = ama q állapotok halmaza, melyekre CL(q) tartalmaz egy F-beli végállapotot. Intuíció: δN megcsinálja az összes ɛ–átmenetet mielőtt a-t olvassa, de utána nem! 𝜕 𝑁 𝑞,𝑎 = 𝑝∈𝐶𝐿 𝑞 𝜕 𝐸 𝑝,𝑎 based on Stanford InfoLab 𝐹 ′ = 𝑞 | 𝐶𝐿(𝑞)∩𝐹≠∅

85 Ekvivalencia – (4) based on Stanford InfoLab A w szó hosszára való indukcióval bizonyítsuk be, hogy CL(δN(q0, w)) = E(q0, w). Így az ɛ-NFA pontosan azokat a w szavakat fogadja el, amelyeket a “rendes” NFA elfogad. δ

86 ɛ ε-NFA példa: ε-NFA →NFA C E F A B D 1 𝜕 𝑁 𝑞,𝑎 = 𝑝∈𝐶𝐿 𝑞 𝜕 𝐸 𝑝,𝑎 0 1 ε
ɛ példa: ε-NFA →NFA CL(A)={A}, CL(C)={C},CL(F)={F}, CL(D)={D}, CL(B)= {B,D}; CL(E)= {B,C,D,E} 𝜕 𝑁 𝑞,𝑎 = 𝑝∈𝐶𝐿 𝑞 𝜕 𝐸 𝑝,𝑎 ε-NFA ε A {E} {B} ∅ B ∅ {C} {D} C ∅ {D} ∅ D ∅ ∅ ∅ E {F} ∅ {B, C} F {D} ∅ ∅ * NFA based on Stanford InfoLab A {E} {B} B ∅ {C} C ∅ {D} D ∅ ∅ E {F} {C, D} F {D} ∅ * Mivel B, D és E lezárásai Tartalmazzák a D végállapotot. * * Mivel E lezárása tartalmazza B-t és C-t; melyek 1-átmenete C-be illetve D-be visz. 𝐹 ′ = 𝑞 | 𝐶𝐿(𝑞)∩𝐹≠∅

87 Összefoglalás based on Stanford InfoLab DFA, NFA, és ɛ–NFA mind ugyanazokat a nyelveket fogadják el: a reguláris nyelveket Az NFA könnyebben tervezhető és általában jóval kevesebb állapotból áll, mint a DFA. De implementálni csak a DFA-t lehet!

88 based on Stanford InfoLab
Vége


Letölteni ppt "Véges automaták Csink László, 2018."

Hasonló előadás


Google Hirdetések