9. előadás Veremautomaták 1.

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "9. előadás Veremautomaták 1."

Átírás

1 9. előadás 1. Dr. Kallós Gábor

2 Tartalom Motiváció Verem és végtelen automata Felépítés, konfigurációk és átmenetek Szavak felismerése, felismert nyelv Az elfogadó állapottal és az üres veremmel felismerő automaták ekvivalenciája Feladatok 2

3 Motiváció Miért van szükség veremautomatára? (Cél: CF nyelveket felismerő automata) Eddig: csak DVA (ill. NDVA) Probléma az L(G 1 ) = {a i b i i 1} nyelvvel A véges automatának nincs emlékező egysége (mit dolgoztunk fel eddig), ill. a memóriája csak az adott állapotra korlátozódik Csak úgy tud n szimbólumot megszámolni, ha végigmegy n állapoton De nem tudjuk előre megmondani, hogy hány db a lesz! Tehát: szükséges az automata felerősítése, bővítése: verem hozzáadása Elképzelt/elvárt működés Az automata az a-kat bepakolja a verembe Nem tudjuk milyen hosszú a mondat első fele (nagyon hosszú is lehet): a veremmemória elvileg végtelen (nem korlátos) (Ha a szó b-vel indul: lehal ) Ha b jön, sorra veszi ki az a-kat a veremből, és nem rak be semmit Ha b után a jön: lehal Ha az utolsó b olvasása után a verem kiürült, akkor a szót az automata elfogadta Látjuk: A veremautomata kifejező ereje nagyobb a véges automatákénál! Feladat: Hasonló módon tervezzük meg (vázlatosan) egy olyan veremautomata működését, amely azon szavakat fogadja el, amelyekben az a-k száma ugyanaz, mint a b-k száma! 3

4 Szemléltetés Eszköztár: JFLAP projekt Elemek: mint a véges automatánál + verem és veremmozgások Feladat: nézzük meg az aabb és aaaabbbb szavak (végig)olvasásának lehetőségeit! 4

5 Verem és végtelen automata Verem (stack) használata az automatáknál Veremautomata eredetileg: aritmetikai kifejezések számítógéppel történő kiértékelése (1960-as évek) (Az implementáló szoftvert levédték szabadalommal, ez volt az első védett sw az USA-ban) A verem elvileg végtelen, ezért a veremautomata már nem véges, hanem egy speciális fajtájú végtelen automata (bár állapothalmaza véges) Az L(G 1 ) nyelvet nem lehet semmilyen korlátos automatával felismerni (tárolni kell a szó első felét) A verem, mint programozási adatszerkezet, tipikusan rekurzív programozási feladatoknál jön elő [Példa: Hanoi tornyai (C-szerű pszeudokód) A forráspálcáról (source) a célpálcára (target) kell pakolni Megoldás: Segédpálcát (help) vetünk be Az egyes rudakhoz mint veremhez tudunk hozzáférni A rekurzív hívások szintén egy verem segítségével hajtódnak végre] A veremautomatának több definíciója is ismert Push-down automaton/recognizer (PDA, PDR): az új infót a régi tetejére írjuk, a régi lenyomódik, csak a legfelső adatot lehet kiolvasni ekkor ki is vesszük (Ezt az automatát tanuljuk) Stack automaton (SA): az új infót itt is a régi tetejére írjuk, de kivétel nélkül lehet olvasni belőle, és nemcsak a verem tetejéről (Nem ezt az automatát tanuljuk; ennek jelentősége kisebb) 5

6 Logikai felépítés Veremmemória: pozíciókra felosztott, egyirányban elvileg végtelen szalag Minden pozícióba egy-egy jel írható A kiolvasás (amely a fő típusnál egyúttal törlés is) a bevitelhez képest fordított sorrendben történik (LIFO: Last In First Out) A belső tartalomhoz közvetlenül nem férünk hozzá, mindig csak a verem tetején levő elemet tudjuk kiolvasni Szintén a verem tetejére helyezhetünk el újabb elemet A verem alján kezdetben csak egy speciális szimbólum van (kezdőszimbólum, Z,, v. Z 0 ) Elvileg végtelen: gyakorlatilag valójában véges, de nem korlátos A vermet vízszintes vagy függőleges elrendezésűnek is képzelhetjük Input szalag: ezen kapja meg az automata a véges bemenő szót Ezt betűnként tudja leolvasni Az input szalag lehet üres is (λ szó) Véges, iniciális nemdeterminisztikus (vagy esetleg determinisztikus (kimenő jel nélküli) automata Ez a veremautomata véges vezérlője Diszkrét időskálát követve történik a működés 6

7 Formális nyelvek Definíció: (Nemdet.) veremautomatának (push-down automatának, PDA, PDR, VA) nevezzük az R = (Q, Ʃ, Γ, δ, q 0, Z 0, F) rendszert, ahol Q egy nem üres, véges halmaz, az állapotok halmaza, Ʃ az input ábécé (szalag ábécé), Γ a veremábécé, q 0 Q a kezdőállapot, Z 0 Γ a verem kezdőszimbólum (kezdőjel), F Q a végállapotok halmaza, δ : Q (Ʃ {λ}) Γ P(Q Γ*) az átmenetfüggvény (mozgási szabályok halmaza) Megjegyzések Valamennyi fenti halmaz véges, hiszen egyébként nem lehetne véges módon leírni a nyelvet Ʃ helyett T, Γ helyett Z, δ helyett d jelölés is használatos; az R = (Q, T, Z, q 0, Z 0, δ, F) megadás is szokásos A végállapot halmaz az üres vermes felismerő automatánál kiesik (!) (lásd később) A VA alapvetően (további korlátozások nélkül) nemdeterminisztikus Ha a veremautomata következő állapota az előző állapotból és a bemenő jelből egyértelműen meghatározott, akkor determinisztikus VA-ról beszélünk Definíció: A fenti R = (Q, T, Γ, δ, q 0, Z 0, F) rendszert determinisztikus veremautomatának nevezzük, ha - minden p Q és X Γ esetén fennáll, hogy δ(p, a, X) 1, minden a (T {λ})-ra, - továbbá ha δ(p, λ, X) = 1, akkor δ(p, a, X) = 0, minden a T-re. Azaz nem lehet nem üres szavas átmenet értelmezve olyan állapot és veremszimbólum párra, amire van értelmezve üres szavas átmenet; és minden szimb. hármasra maximum egyféle átmenet van értelmezve 7

8 Formális nyelvek (Eml.: tisztázandó megadás, működés, elfogadás, grafikus reprezentáció) A működés kezdetén A veremben csak a kezdő veremszimbólum van Az input szalag olvasófeje a szalag első betűjére mutat Ha a szalagon csak az üres szó van, akkor ezt érzékeli A (veremautomatához tartozó) véges automata a kezdő állapotában van A mozgás során Új állapotba kerülünk (ez a régivel megegyező is lehet), Az olvasófej egy szimbólummal továbblép (kivéve, ha az input λ) A verem tetejére új jelsorozat íródik be A verem tetején eddig levő szimbólum megsemmisül (ha meg akarjuk tartani: vissza kell írni a verembe) Az átmenet folyamata (a δ függvény működése) Tetszőleges q Q állapot, a (Ʃ {λ}) input és a verem tetején lévő Z Γ szimbólum esetén legyen δ (q, a, Z) = {(q 1, α 1 ), (q 2, α 2 ),, (q n, α n )}, valamilyen n 0-ra, q 1, q 2,, q n Q állapotokkal és α 1, α 2,, α n Γ* veremszimbólum-sorozatokkal. (n = 0 eset: a képhalmaz üres.) Az automata a q állapotból az a input hatására (ez lehet λ is) átmegy valamelyik q i állapotba, a verem tetején levő Z-t törli, és beírja a verembe α i -t (ha ez λ, akkor nem ír be semmit, ekkor a veremben eggyel kevesebb szimbólum marad). Veremautomata belső állapota: egy pár, ami a véges automata belső állapotát és a verem tartalmát tartalmazza Mivel a veremmemória elvileg végtelen, ezért végtelen sok belső veremautomata-állapot lehetséges 8

9 Példák Nemdeterminisztikus veremautomata konstrukció, nyelvtan alapján A szabályok és a nyelv: S asb ab, L = {a i b i i 1} Három állapot, egy kezdő, egy általános- és egy végállapot A veremábécé: N T {Z 0 } Címke az éleken: input, veremből, verembe Írjuk le a megfelelő átmeneteket, pl.: δ(q 0, λ, Z 0 ) = (q 1, SZ 0 ) Mutassuk be, hogy az automata valóban nemdeterminisztikus! Kövessük le az automatán az aabb szó végigolvasását! Mutassuk be közben a verem tartalmát is! Determinisztikus veremautomata konstrukció A korábban már leírt működést valósítja meg A nyelv ugyanaz, mint fent Veremábécé és címkék: mint fent Írjuk le a megfelelő átmeneteket, pl.: δ(q 0, a, Z 0 ) = (q 1, az 0 ) Mutassuk be, hogy az automata valóban determinisztikus! Kövessük le az automatán az aabb szó végigolvasását! Mutassuk be közben a verem tartalmát is! 9

10 Az automata működésének rajzos bemutatása (már nagyrészt tudjuk) Ábrázolnunk kell az állapotokat (átmenetekkel); az inputot, ill. a verem tartalmát (+ veremből, verembe) Lehetőségek A véges elfogadó automata jelölései nyilván megtarthatók (kezdő- és végállapot) Mint a véges elfogadó automatáknál, csak az állapotok mellett feltüntetjük az inputot és a verem tartalmát (és a veremből kivételt ill. oda berakást) Valamilyen időrend vagy több ábra kell Az egyes állapotokat kiragadva ábrázoljuk, mellettük bemutatva az inputot HF: Nézzünk meg néhány különböző megoldást! F. Z. (címlap) D. P (B. I.) B. Z. JFLAP Butterfly *Tudunk jobb megoldást találni? 10

11 Definíció: A C = Q Ʃ* Γ* halmazt az R konfigurációi halmazának nevezzük Megj.: Ʃ* Q Γ* megadás is használatos Egy (q, w, γ) C konfiguráció jelentése az, hogy R a q állapotban van, w Ʃ* input szót kapja (még fel nem dolgozott input rész), és vermének tartalma γ Az input szó feldolgozása: egy lépésben egy betűt, vagy λ-t olvas be (ekkor nincs a szóban továbblépés) Ha γ = Z 1 Z 2 Z n, akkor a veremnek n cellája van kihasználva ( cellában egy szimbólum lehet), és Z 1 áll a verem tetején A konfigurációnál a következő input szimbólum és a verem tetején álló szimbólum is feltüntethető, ekkor (q, aw, Zγ) írandó Átmeneti reláció: a konfigurációk közti átmenetet írja le Ezek Descartes-szorzatán értelmezett Egy konfigurációból az automata egy vagy több másik konfigurációba léphet tovább (δ alapján) Definíció: A 1 R C C átmeneti relációt a következőképpen definiáljuk tetszőleges p, q Q, a (Ʃ {λ}), w Ʃ*, Z Γ és α, γ Γ*-ra (q, aw, Zγ) 1 R (p, w, αγ) akkor és csak akkor áll fent, ha (p, α) δ (q, a, Z) Az a = λ esetben az inputban nincs előrehaladás, ekkor az automata λ-mozgást végez Részletezve: (q, aw 1 w 2 w n, Zγ 1 γ 2 γ n ) 1 R (p, w 1 w 2 w n, αγ 1 γ 2 γ n ) Megjegyzés Ha nem akarjuk hangsúlyozni az automata nevét, akkor 1 írható (1 helyett használható a w jelölés is) Konfigurációk sorozata Mint korábban: bevezetjük 1*-ot (a reláció reflexív, tranzitív lezártja) Értelmezhető 1 n is: k 0 1 k 1 1 k k n 11

12 Felismert nyelv Egy veremautomata kétféleképpen ismerhet fel egy nyelvet: végállapotokkal vagy üres veremmel Ha a véges automata (a veremautomata véges vezérlője) a teljes input elolvasásával eljut egy végállapotba, akkor a veremautomata megáll Az input az üresszó is lehet Ekkor a veremautomata az input szót elfogadta (elfogadás végállapottal) A veremautomata akkor is megáll, ha a véges automata olyan állapotban van, amelyhez nem tartozik egyetlen alkalmas átmenet sem Nincs lehetséges átmenet a verem tetején levő jel figyelembe vételével és az input olvasásával a véges automatában Az elfogadás feltételét köthetjük a verem üres voltához is (Motiváció: Rekurzív programok esetében úgy tartjuk helyesen befejezettnek a program működését, ha kiürül a verem) Elfogadó állapotok ez esetben nem is kellenek, pusztán a mozgási szabályok megadása is teljesen specifikálja az automatát A ND veremautomata egy input szót elfogad, ha van olyan futása, hogy a bemenő szót elfogadja (emellett lehet persze olyan is, amellyel nem) Az elfogadott szavak összessége alkotja a veremautomata által elfogadott nyelvet 12

13 Felismert nyelv Definíció: A P veremautomata által végállapotokkal felismert nyelven az L f (P) = {w Ʃ* (q 0, w, Z 0 ) 1* (q, λ, γ), ahol q F és γ Γ*} nyelvet értjük Tehát: végállapotokkal P azon w input szavakat ismeri fel, amelyek hatására a q 0 kezdőállapotból a verem kezdeti Z 0 tartalma mellett az automata valamely q végállapotba kerül. A veremben végül maradhat valamilyen γ tartalom. (B. I.): Azon w szavak a nyelv mondatai, amelyek a kezdőállapottal és a verem kezdeti tartalmával olyan konfigurációt alkotnak, amelyből tetsz. számú lépésben elérhető egy olyan konf., ahol már nincs olvasásra váró jelsorozat, és az állapot elfogadó. A verem tartalma érdektelen. (V. M.): w benne van a felismert nyelvben, ha létezik olyan konfigurációsorozat, amelynek első eleme (q 0, w, Z 0 ), utolsó eleme (q, λ, γ), ahol q F és γ Γ*, és a sorozatban (az utolsót kivéve) minden konfiguráció átvihető a következőbe Definíció: A P veremautomata által üres veremmel felismert nyelven az L e (P) = {w Ʃ* (q 0, w, Z 0 )1* (q, λ, λ), ahol q Q} nyelvet értjük Tehát: üres veremmel P azon w input szavakat ismeri fel, amelyek hatására a q 0 kezdőállapotból a verem kezdeti Z 0 tartalma mellett P verme kiürül F-nek ilyenkor nincs szerepe (akár el is hagyható a definícióban) közömbös, hogy a folyamat végén elfogadó állapotban vagyunk-e Az üres veremmel elfogadó automatának is végig kell olvasnia a jelsorozatot! Egy konkrét veremautomata esetén a végállapottal, ill. az üres veremmel elfogadott nyelvek (nagyon) különbözhetnek egymástól fontos rögzíteni, hogy milyen módon akarjuk használni az automatát (!) 13

14 Példa (determinisztikus veremautomata; végállapottal és üres veremmel is elfogad) (9. slide, F. Z. 46., D. P. 170.) (Eml.: δ : Q (Ʃ {λ}) Γ P(Q Γ*) az átmenetfüggvény C = Q Ʃ* Γ* a konfigurációs halmaz) Leírása és működése R = (Q, Ʃ, Γ, δ, q 0, Z 0, F), ahol Q = {q 0, q 1, q 2 }, Ʃ = (a, b), Γ = (a, Z 0 ), F = {q 0 } δ(q 0, a, Z 0 ) = (q 1, az 0 ) (első a) δ(q 1, a, a) = (q 1, aa) (többi a) δ(q 1, b, a) = (q 2,λ) (első b) δ(q 2, b, a) = (q 2,λ) (többi b) δ(q 2, λ, Z 0 ) = (q 0,λ) (vége) Elemzendő mondat: aabb A konfigurációk sorozata (a működés egyszerűen követhető): (q 0, aabb, Z 0 ) 1 (q 1, abb, az 0 )1(q 1, bb, aaz 0 )1(q 2, b, az 0 ) 1 1(q 2, λ, Z 0 )1(q 0, λ, λ) Elemzendő mondat: abb Feladat: Mutassuk meg, hogy abb L f (R) A (q 0, b, λ) konfigurációból nem lehet továbbmenni Igazolható (pl. indukcióval), hogy L f (R) = {a n b n n 0} Itt: L f (R) L e (R), hiszen L e (R) = {a n b n n 1}, azaz L e (R) = L f (R) {λ} Ennek ellenére a két nyelvosztály közötti kapcsolat általánosan is nagyon szoros (ld. köv. slide) 14

15 Tétel: A veremautomatákkal végállapotokkal felismerhető nyelvek osztálya megegyezik a veremautomatákkal üres veremmel felismerhető nyelvek osztályával Bizonyítás (F. Z.) a) Legyen P = (Q, Ʃ, Γ, δ, q 0, Z 0, F) egy veremautomata végállapotokkal. Megmutatjuk, hogy ekkor megadható egy P' = (Q', Ʃ, Γ', δ', q 0 ', Z 0 ', F') veremautomata üres veremmel, amelyre L f (P) = L e (P'). (Ötlet: Az új P automata első lépésében átmegy a szimulálandó automata kezdőállapotának megfelelő állapotba, eközben a verembe P kezdő veremszimbólumát írja a saját kezdő veremszimbóluma fölé. Ezután az új automata P futását szimulálja, amíg az egy végállapotba jut, vagy el nem akad. Ha P egy végállapotba jutna, akkor az új P' automata átmegy egy új (vég)állapotba input olvasása nélkül, és kiüríti a verem tartalmát.) Definiáljuk P'-t úgy, hogy Q' = Q {q 0 ', q e }, ahol q 0 ' és q e új állapotok (új kezdő és új (vég)állapot) Γ' = Γ {Z 0 '}, ahol Z 0 ' egy új szimbólum (kezdő veremszimbólum) F' = (választható lenne Q' tetszőleges részhalmazának, de logikusabb) δ' az alábbi módon meghatározott: (i) δ' (q 0 ', λ, Z 0 ') = (q 0, Z 0 Z 0 ') (inicializálás) (ii) minden q Q és a (Ʃ {λ}), Z Γ esetén δ' (q, a, Z) = δ(q, a, Z) (ha a λvagy q F; szimuláció) = δ(q, a, Z) {(q e, λ)} (ha a =λés q F; szimuláció) (iii) minden Z Γ'-re δ'(q e, λ, Z) = (q e, λ) (végül: verem ürítése) 15

16 (Tétel: A veremautomatákkal végállapotokkal felismerhető nyelvek osztálya megegyezik a veremautomatákkal üres veremmel felismerhető nyelvek osztályával) Bizonyítás (folyt.) a) (folyt.) (Eml. δ' az alábbi módon meghatározott: (i) δ' (q 0 ', λ, Z 0 ') = (q 0, Z 0 Z 0 ') (inicializálás) (ii) minden q Q és a (Ʃ {λ}), Z Γ esetén δ' (q, a, Z) = δ(q, a, Z) (ha a λvagy q F; szimuláció) = δ(q, a, Z) {(q e, λ)} (ha a =λés q F; szimuláció) (iii) minden Z Γ'-re δ' (q e, λ, Z) = (q e, λ) (végül: verem ürítése)) Az L f (P) = L e (P ) igazolása: w L f (P) (q 0, w, Z 0 ) 1* P (q, λ, γ), ahol q F (q 0 ', w, Z 0 ') 1 P' (q 0, w, Z 0 Z 0 ') (definícióból) ((i) miatt) 1* P' (q, λ, γz 0 '), ahol q F ((ii) miatt; a veremben maradhat még tartalom) = (q, λ, Z 1 Z 2 Z k Z 0 ') (itt γ = Z 1 Z 2 Z k ) 1 P' (q e, λ, Z 2 Z 3 Z k Z 0 ') ((ii) miatt) 1* P' (q e, λ, λ) ((iii) miatt; itt és előbb: input olvasás nélkül ürítjük a vermet) w L e (P'). (definícióból) 16

17 Tétel: A VA-kal végállapotokkal felismerhető nyelvek osztálya megegyezik Bizonyítás (folyt.) b) Legyen P = (Q, Ʃ, Γ, δ, q 0, Z 0, ) egy VA üres veremmel. Megmutatjuk, hogy ekkor megadható egy P' = (Q', Ʃ, Γ', δ', q 0 ', Z 0 ', F') VA végállapotokkal, amelyre L f (P') = L e (P). (Ötlet: Inicializálás mint előbb. Ezután az új automata P futását szimulálja, amíg annak verme ki nem ürül (a saját kezdő veremszimbólum persze benne marad), vagy el nem akad. Ha a szimulálandó verem kiürült, akkor az új P' automata átmegy egy új végállapotba.) Definiáljuk P'-t úgy, hogy Q' = Q {q 0 ', q f }, ahol q 0 ' és q f új állapotok (új kezdőállapot és új elfogadó végállapot) Γ' = Γ {Z 0 '}, ahol Z 0 ' egy új szimbólum (kezdő veremszimbólum) F' = {q f } δ' az alábbi módon meghatározott: (i) δ' (q 0 ', λ, Z 0 ') = (q 0, Z 0 Z 0 ') (inicializálás) (ii) minden q Q és a (Ʃ {λ}), Z Γ esetén δ' (q, a, Z) = δ(q, a, Z) (szimuláció) (iii) minden q Q esetén δ' (q, λ, Z 0 ') = (q f, λ) (végül: elfogadás) Az L e (P) = L f (P') igazolása: w L e (P) (q 0, w, Z 0 ) 1* P (q, λ, λ), ahol q Q (definícióból) (q 0 ', w, Z 0 ') 1 P' (q 0, w, Z 0 Z 0 ') ((i) miatt) 1* P' (q, λ, Z 0 '), ahol q Q ((ii) miatt) 1 P' (q f, λ, λ) ((iii) miatt) w L f (P'). (definícióból) Ezek után beszélhetünk egyszerűen csak a veremautomatákkal felismerhető nyelvek osztályáról Függetlenül attól, hogy a felismerés végállapottal vagy üres veremmel történik-e 17

18 Átalakító algoritmus (üres veremmel felismerő végállapottal felismerő) (B. Z.) Az eredeti automata: M 1 = (Q 1, Ʃ, Γ, δ 1, q 0, z) Az új automata: M 2 = (Q 2, Ʃ, Γ {x}, δ 2, p 0, x, F) Példa: üres veremmel felismerő veremautomata átalakítása, L e (M 1 ) = {0 n 1 n n 1} M 1 kezdőszimbóluma: z, M 2 kezdőszimbóluma: t Az új automata egyik átmenete elhagyható. Melyik? 18

19 Átalakító algoritmus (végállapottal felismerő üres veremmel felismerő) (B. Z.) Az eredeti automata: M 1 = (Q 1, Ʃ, Γ, δ 1, q 0, z, F) Az új automata: M 2 = (Q 2, Ʃ, Γ {x}, δ 2, p 0, x) Példa: végállapottal felismerő veremautomata átalakítása, L f (M 1 ) = {0 n 1 n n 1} M 1 kezdőszimbóluma: z, M 2 kezdőszimbóluma: t Az első automata végállapottal és egyben üres veremmel ismer fel, ezért az átalakítás nem is lett volna szükséges 19

20 Feladatok Készítsünk olyan veremautomatát, amely az L = {a n b n+2 n > 0} nyelvet ismeri fel! Ötlet (eml.): az a n b n szavakat felismerő automatánál úgy dolgoztunk, hogy a kezdőállapotból az első a olvasására átmentünk q 1 -be, további a-k olvasásánál q 1 -ben maradtunk, és minden olvasáskor a-t írtunk pluszban a verembe. Az első b olvasásánál átmentünk q 2 -be, a további b-k olvasásánál q 2 -ben maradtunk, és minden olvasáskor a-t olvastunk a veremből. Ugyanezt az ötletet alkalmazzuk most is, csak a végén még két további b beolvasását biztosítani kell. Ehhez új állapotokat vetünk be, q 3 és q 4 is egy-egy b beolvasása után érhető el (a verem ekkor már nincs felhasználva), az utolsó állapot elfogadó. Az átmenetek: δ(q 0, a, Z 0 ) = (q 1, az 0 ), δ(q 1, a, a) = (q 1, aa) % a-k δ(q 1, b, a) = (q 2,λ) δ(q 2, b, a) = (q 2,λ) % normál b-k δ(q 2, b, Z 0 ) = (q 3, Z 0 ) δ(q 3, b, Z 0 ) = (q 4, Z 0 ) % extra b-k Itt q 4 elfogadó állapot Mutassuk be az automata működését az aabbbb szóra! 20

21 Feladatok Készítsünk olyan veremautomatát, amely az L = {a n b m 0 n m 2n} nyelvet ismeri fel! Ötlet: Az automata az a n b n szavakat felismerő automata módosításával áll elő. A kiindulás tehát ugyanaz, mint az előbb, csak az első és a további a-k olvasása tér el a prototípustól. Nemdeterminisztikusan egy vagy két a-t írhatunk a verembe minden ilyen esetben. (D. P. 171.) Készítsünk olyan üres veremmel elfogadó veremautomatát, amely az {a, b} ábécé feletti helyes zárójelek nyelvét (a Dyck-nyelvet) ismeri fel! (Itt a a nyitó, b a záró zárójel; az a betűk párban meg kell, hogy előzzék a b betűket) Megoldás (csak egy állapot kell): Ha a betűt olvasunk a szalagon, akkor a verembe írjuk Ha b betűt olvasunk a szalagon, akkor törlünk egy a-t Ha Z 0 -t olvasunk a veremből, akkor kiüríthetjük a vermet (elfogadás), vagy folytathatjuk a olvasásával is (a szalagról, ekkor Z 0 visszaírandó a verembe) (D. P. 174.) Rajzoljuk is le az automatákat, és néhány tesztszóval ellenőrizzük, hogy valóban jó lett a megoldásunk! 21

22 Feladatok Készítsünk olyan veremautomatát, amely az L = { w w a = w b } nyelvet ismeri fel (szavak, amelyekben az a és b betűk száma megegyezik)! Megoldási ötlet: A veremben csak egyféle Z 0 -tól eltérő szimbólum lehet Ha csak Z 0 van a veremben: ugyanannyi a és b betűt olvastunk be eddig Ha k darab a betű van Z 0 felett: eddig k-val több a-t olvastunk be Ha k darab b betű van Z 0 felett: eddig k-val több b-t olvastunk be Az automata működése: Ha a veremben csak Z 0 van, akkor a szalagról olvasott jelet tegyük a verem tetejére Ha a verem tetején levő és a beolvasott jel egyforma, akkor ezek számát a veremben növeljük eggyel Ha a verem tetején levő és a beolvasott jel eltérő, akkor a veremben levő jelek számát eggyel csökkentjük Ha a veremben csak Z 0 van, akkor veremürítés, és átmegyünk végállapotba (rajz: D. P. 172.) Külön köszönet: a hivatkozott jegyzetek szerzőinek 22

6. előadás Környezetfüggetlen nyelvtanok/1.

6. előadás Környezetfüggetlen nyelvtanok/1. 6. előadás Környezetfüggetlen nyelvtanok/1. Dr. Kallós Gábor 2013 2014 1 Tartalom Bevezetés CF nyelv példák Nyelvek és nyelvtanok egy- és többértelműsége Bal- és jobboldali levezetések Levezetési fák A

Részletesebben

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

A számítógépes nyelvészet elmélete és gyakorlata. Automaták A számítógépes nyelvészet elmélete és gyakorlata Automaták Nyelvek és automaták A nyelvek automatákkal is jellemezhetőek Automaták hierarchiája Chomsky-féle hierarchia Automata: új eszköz a nyelvek komplexitásának

Részletesebben

Automaták mint elfogadók (akceptorok)

Automaták mint elfogadók (akceptorok) Automaták mint elfogadók (akceptorok) Ha egy iniciális Moore-automatában a kimenőjelek halmaza csupán kételemű: {elfogadom, nem fogadom el}, és az utolsó kimenőjel dönti el azt a kérdést, hogy elfogadható-e

Részletesebben

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt kis kérdés megválaszolása egyenként 6 pontért, melyet minimum 12

Részletesebben

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: A Formális nyelvek vizsga teljesítése a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon: 1. Öt rövid kérdés megválaszolása egyenként 6 pontért, melyet minimum

Részletesebben

6. előadás A reguláris nyelvek jellemzése 2.

6. előadás A reguláris nyelvek jellemzése 2. 6. előadás A reguláris nyelvek jellemzése 2. Dr. Kallós Gábor 2014 2015 1 Tartalom A reguláris nyelvek osztályának jellemzése a körbebizonyítás Láncszabályok A 2. állítás és igazolása Ekvivalens 3-típusú

Részletesebben

Számításelmélet. Második előadás

Számításelmélet. Második előadás Számításelmélet Második előadás Többszalagos Turing-gép Turing-gép k (konstans) számú szalaggal A szalagok mindegyike rendelkezik egy független író / olvasó fejjel A bemenet az első szalagra kerül, a többi

Részletesebben

Algoritmuselmélet 12. előadás

Algoritmuselmélet 12. előadás Algoritmuselmélet 12. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Április 9. ALGORITMUSELMÉLET 12. ELŐADÁS 1 Turing-gépek

Részletesebben

Turing-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1

Turing-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1 Turing-gépek Logika és számításelmélet, 7. gyakorlat 2009/10 II. félév Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1 A Turing-gép Az algoritmus fogalmának egy intuitív definíciója:

Részletesebben

A digitális számítás elmélete

A digitális számítás elmélete A digitális számítás elmélete 8. előadás ápr. 16. Turing gépek és nyelvtanok A nyelvosztályok áttekintése Turing gépek és a természetes számokon értelmezett függvények Áttekintés Dominó Bizonyítások: L

Részletesebben

Véges automaták, reguláris nyelvek

Véges automaták, reguláris nyelvek Véges automaták, reguláris nyelvek Kiegészítő anyag az lgoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: lgoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 27. augusztus 3. véges automata

Részletesebben

Formális nyelvek - 9.

Formális nyelvek - 9. Formális nyelvek - 9. Csuhaj Varjú Erzsébet Algoritmusok és Alkalmazásaik Tanszék Informatikai Kar Eötvös Loránd Tudományegyetem H-1117 Budapest Pázmány Péter sétány 1/c E-mail: csuhaj@inf.elte.hu 1 Véges

Részletesebben

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések 1. Feladat Az első feladatban szereplő - kérdések 1 Minden környezet független nyelv felismerhető veremautomatával. Minden környezet független nyelv felismerhető 1 veremmel. Minden 3. típusú nyelv felismerhető

Részletesebben

6. előadás A reguláris nyelvek jellemzése 2.

6. előadás A reguláris nyelvek jellemzése 2. 6. előadás A reguláris nyelvek jellemzése 2. Dr. Kallós Gábor 2015 2016 1 Tartalom A reguláris nyelvek osztályának jellemzése a körbebizonyítás Láncszabályok A 2. állítás és igazolása Ekvivalens 3-típusú

Részletesebben

Dicsőségtabló Beadós programozási feladatok

Dicsőségtabló Beadós programozási feladatok Dicsőségtabló Beadós programozási feladatok Hallgatói munkák 2017 2018 Szavak kiírása ábécé felett Készítő: Maurer Márton (GI, nappali, 2017) Elméleti háttér Adott véges Ʃ ábécé felett megszámlálhatóan

Részletesebben

Atomataelmélet: A Rabin Scott-automata

Atomataelmélet: A Rabin Scott-automata A 19. óra vázlata: Atomataelmélet: A Rabin Scott-automata Az eddigieken a formális nyelveket generatív szempontból vizsgáltuk, vagyis a nyelvtan (generatív grammatika) szemszögéből. A generatív grammatika

Részletesebben

ZH feladatok megoldásai

ZH feladatok megoldásai ZH feladatok megoldásai A CSOPORT 5. Írja le, hogy milyen szabályokat tartalmazhatnak az egyes Chomskynyelvosztályok (03 típusú nyelvek)! (4 pont) 3. típusú, vagy reguláris nyelvek szabályai A ab, A a

Részletesebben

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként. Számításelmélet Kiszámítási problémának nevezünk egy olyan, a matematika nyelvén megfogalmazott kérdést, amire számítógéppel szeretnénk megadni a választ. (A matematika nyelvén precízen megfogalmazott

Részletesebben

A Turing-gép. Formális nyelvek III.

A Turing-gép. Formális nyelvek III. Formális nyelvek III. Általános és környezetfüggő nyelvek Fülöp Zoltán SZTE TTIK Informatikai Intézet Számítástudomány Alapjai Tanszék 6720 Szeged, Árpád tér 2. Definíció. Egy Turing-gép egy M = (Q,Σ,Γ,

Részletesebben

Verem Verem mutató 01

Verem Verem mutató 01 A számítástechnikában a verem (stack) egy speciális adatszerkezet, amiben csak kétféle művelet van. A berak (push) egy elemet a verembe rak, a kivesz (pop) egy elemet elvesz a verem tetejéről. Mindig az

Részletesebben

MintaFeladatok 2.ZH Megoldások

MintaFeladatok 2.ZH Megoldások 1. feladat Kérem e-mail-ben jelezze, ha hibát talál: (veanna@inf.elte.hu, vagy veanna@elte.hu ) P={ } S A B C AB SC AC a c BC b CS SS c S a kezdőjel Mivel a piramis tetején lévő kocka a mondatkezdő szimbólumot

Részletesebben

Logika és számításelmélet. 10. előadás

Logika és számításelmélet. 10. előadás Logika és számításelmélet 10. előadás Rice tétel Rekurzíve felsorolható nyelvek tulajdonságai Tetszőleges P RE halmazt a rekurzívan felsorolható nyelvek egy tulajdonságának nevezzük. P triviális, ha P

Részletesebben

Turing-gép május 31. Turing-gép 1. 1

Turing-gép május 31. Turing-gép 1. 1 Turing-gép 2007. május 31. Turing-gép 1. 1 Témavázlat Turing-gép Determinisztikus, 1-szalagos Turing-gép A gép leírása, példák k-szalagos Turing-gép Univerzális Turing-gép Egyéb Turing-gépek Nemdeterminisztikus

Részletesebben

Formális nyelvek és automaták előadások

Formális nyelvek és automaták előadások VÁRTERÉSZ MAGDA Formális nyelvek és automaták előadások 2005/06-os tanév 1. félév Tartalomjegyzék 1. Előzetes tudnivalók 4 2. Bevezetés 15 3. Ábécé, szó, formális nyelv 17 4. Műveletek nyelvekkel 24 4.1.

Részletesebben

Deníciók és tételek a beugró vizsgára

Deníciók és tételek a beugró vizsgára Deníciók és tételek a beugró vizsgára (a szóbeli viszgázás jogáért) Utolsó módosítás: 2008. december 2. 2 Bevezetés Számítási problémának nevezünk egy olyan, a matematika nyelvén megfogalmazott kérdést,

Részletesebben

Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2)

Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2) Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2) ábécé: Ábécének nevezünk egy tetszőleges véges szimbólumhalmazt. Jelölése: X, Y betű: Az ábécé elemeit betűknek hívjuk. szó: Az X ábécé elemeinek

Részletesebben

Automaták és formális nyelvek

Automaták és formális nyelvek Automaták és formális nyelvek Bevezetés a számítástudomány alapjaiba 1. Formális nyelvek 2006.11.13. 1 Automaták és formális nyelvek - bevezetés Automaták elmélete: információs gépek általános absztrakt

Részletesebben

Környezetfüggetlen nyelvtan. Formális nyelvek II. Környezetfüggetlen nyelvek és veremautomaták. Backus-Naur forma

Környezetfüggetlen nyelvtan. Formális nyelvek II. Környezetfüggetlen nyelvek és veremautomaták. Backus-Naur forma Formális nyelvek II. Környezetfüggetlen nyelvek és veremautomaták Környezetfüggetlen nyelvtan Egy G = (N,Σ,P,S) nyelvtan környezetfüggetlen, ha minden szabálya A α alakú. Példák: 1) Az S asb ε nyelvtan,

Részletesebben

FORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK. LABORGYAKORLATOK

FORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK. LABORGYAKORLATOK FORMÁLIS NYELVEK ÉS FORDÍTÓPROGRAMOK LABORGYAKORLATOK http://www.ms.sapientia.ro/~kasa/formalis.htm 0 Formális nyelvek és fordítóprogramok http://www.ms.sapientia.ro/~kasa/formalis.htm Jelenlét kötelezõ!

Részletesebben

5. előadás Reguláris kifejezések, a reguláris nyelvek jellemzése 1.

5. előadás Reguláris kifejezések, a reguláris nyelvek jellemzése 1. 5. előadás Reguláris kifejezések, a reguláris nyelvek jellemzése 1. Dr. Kallós Gábor 2014 2015 1 Tartalom Reguláris kifejezések Meghatározás, tulajdonságok Kapcsolat a reguláris nyelvekkel A reguláris

Részletesebben

Chomsky-féle hierarchia

Chomsky-féle hierarchia http://www.ms.sapientia.ro/ kasa/formalis.htm Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezetű), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.

Részletesebben

Formális nyelvek és automaták

Formális nyelvek és automaták Formális nyelvek és automaták Nagy Sára gyakorlatai alapján Készítette: Nagy Krisztián Utolsó óra MINTA ZH Eötvös Loránd Tudományegyetem Informatikai Kar 2012.05.18 1. feladat: KMP (Knuth-Morris-Prett)

Részletesebben

Programozási módszertan

Programozási módszertan 1 Programozási módszertan 1. Alapfogalmak Feldhoffer Gergely 2012 Féléves tananyag terve 2 Program helyességének bizonyítása Reprezentáció Logikai-matematikai eszköztár Programozási tételek bizonyítása

Részletesebben

Környezetfüggetlen nyelvtan. Formális nyelvek II. Környezetfüggetlen nyelvek és veremautomaták. Backus-Naur forma

Környezetfüggetlen nyelvtan. Formális nyelvek II. Környezetfüggetlen nyelvek és veremautomaták. Backus-Naur forma Formális nyelvek II. Környezetfüggetlen nyelvek és veremautomaták Környezetfüggetlen nyelvtan Egy G = (N,Σ,P,S) nyelvtan környezetfüggetlen, ha minden szabálya A α alakú. Példák: 1) Az S asb ε nyelvtan,

Részletesebben

9. előadás Környezetfüggetlen nyelvek

9. előadás Környezetfüggetlen nyelvek 9. előadás Környezetfüggetlen nyelvek Dr. Kallós Gábor 2015 2016 1 Tartalom Bevezetés CF nyelv példák Nyelvek és nyelvtanok egy- és többértelműsége Bal- és jobboldali levezetések A fák magassága és határa

Részletesebben

A Számítástudomány alapjai

A Számítástudomány alapjai Mechatronika, Optika és Gépészeti Informatika Tanszék A Számítástudomány alapjai Szemelvények az Elméleti Számítástudomány területéről Fogalmak: Számítástechnika Realizáció, technológia Elméleti számítástudomány

Részletesebben

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Program verifikálás Konkurens programozási megoldások terjedése -> verifikálás szükséges, (nehéz) logika Legszélesebb körben alkalmazott

Részletesebben

Nyelvek és automaták augusztus

Nyelvek és automaták augusztus Nyelvek és automaták Csima Judit Friedl Katalin 2013. augusztus Ez a jegyzet a Budapesti Műszaki és Gazdaságtudományi Egyetem mérnökinformatikus hallgatói számára tartott Nyelvek és Automaták tantárgy

Részletesebben

7. előadás Környezetfüggetlen nyelvtanok

7. előadás Környezetfüggetlen nyelvtanok 7. előadás dr. Kallós Gábor 2017 2018 Tartalom Bevezető Deriváció Előállított szó és nyelv Levezetési sorozat Reguláris nyelvtanok Reguláris nyelvekre vonatkozó 2. ekvivalencia tétel Konstrukciók (NVA

Részletesebben

A számítógépes nyelvészet elmélete és gyakorlata. Formális nyelvek elmélete

A számítógépes nyelvészet elmélete és gyakorlata. Formális nyelvek elmélete A számítógépes nyelvészet elmélete és gyakorlata Formális nyelvek elmélete Nyelv Nyelvnek tekintem a mondatok valamely (véges vagy végtelen) halmazát; minden egyes mondat véges hosszúságú, és elemek véges

Részletesebben

Algoritmusok bonyolultsága

Algoritmusok bonyolultsága Algoritmusok bonyolultsága 11. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm () 1 / 1 NP-telesség Egy L nyelv NP-teles, ha L NP és minden L NP-re L L. Egy Π döntési feladat NP-teles, ha Π NP és

Részletesebben

MintaFeladatok 2.ZH Megoldások

MintaFeladatok 2.ZH Megoldások Kérem e-mail-ben jelezze, ha hibát talál: (veanna@inf.elte.hu, vagy veanna@elte.hu ) 1. feladat megoldása a b 1 2 3 2 4 2 3 2 1 4 6 3 5 10 6 6 8 7 7 9 7 8 8 9 9 8 8 10 5 1 I. Összefüggőség vizsgálat. H0={1}

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 3 III. MEGFELELTETÉSEk, RELÁCIÓk 1. BEVEZETÉS Emlékeztetünk arra, hogy az rendezett párok halmazát az és halmazok Descartes-féle szorzatának nevezzük. Más szóval az és halmazok

Részletesebben

Chomsky-féle hierarchia

Chomsky-féle hierarchia http://www.cs.ubbcluj.ro/~kasa/formalis.html Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezet ), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.

Részletesebben

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek! Feladatok 1. A CYK algoritmus segítségével döntsük el, hogy cabcab eleme-e a G = {a, b, c}, {S, A, B, C, D, E}, P, S nyelvtan által generált nyelvnek! P: S AD EB SS A AB a B DD b C CB c D EC a E AD b 2.

Részletesebben

A digitális számítás elmélete

A digitális számítás elmélete A digitális számítás elmélete 1. előadás szept. 19. Determinisztikus véges automaták 1. Példa: Fotocellás ajtó m m m k b s = mindkét helyen = kint = bent = sehol k k b s m csukva b nyitva csukva nyitva

Részletesebben

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum. Programozási tételek Programozási feladatok megoldásakor a top-down (strukturált) programtervezés esetén három vezérlési szerkezetet használunk: - szekvencia - elágazás - ciklus Eddig megismertük az alábbi

Részletesebben

NP-teljesség röviden

NP-teljesség röviden NP-teljesség röviden Bucsay Balázs earthquake[at]rycon[dot]hu http://rycon.hu 1 Turing gépek 1/3 Mi a turing gép? 1. Definíció. [Turing gép] Egy Turing-gép formálisan egy M = (K, Σ, δ, s) rendezett négyessel

Részletesebben

2014. szeptember 24. és 26. Dr. Vincze Szilvia

2014. szeptember 24. és 26. Dr. Vincze Szilvia 2014. szeptember 24. és 26. Dr. Vincze Szilvia Mind a hétköznapi, mind a tudományos életben gyakran előfordul, hogy bizonyos halmazok elemei között kapcsolat figyelhető meg. A kapcsolat fogalmának matematikai

Részletesebben

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex

A sorozat fogalma. függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet. az értékkészlet a komplex számok halmaza, akkor komplex A sorozat fogalma Definíció. A természetes számok N halmazán értelmezett függvényeket sorozatoknak nevezzük. Amennyiben az értékkészlet a valós számok halmaza, valós számsorozatról beszélünk, mígha az

Részletesebben

A SZÁMÍTÁSTUDOMÁNY ALAPJAI

A SZÁMÍTÁSTUDOMÁNY ALAPJAI Írta: ÉSIK ZOLTÁN A SZÁMÍTÁSTUDOMÁNY ALAPJAI Egyetemi tananyag 2011 COPYRIGHT: 2011 2016, Dr. Ésik Zoltán, Szegedi Tudományegyetem Természettudományi és Informatikai Kar Számítástudomány Alapjai Tanszék

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2009. november 13. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek, adatok ábrázolása, típusabsztakció Vezérlési szerkezetek Függvények, paraméterátadás, rekurziók

Részletesebben

(2004) by Data parancsnok Based on (not so much auditted) lectures of Dr. Radelecki Sándor

(2004) by Data parancsnok Based on (not so much auditted) lectures of Dr. Radelecki Sándor Automaták és Formális nyelvek (2004) by Data parancsnok Based on (not so much auditted) lectures of Dr. Radelecki Sándor Determinisztikus véges automata (DFA Deterministic Final Automata) Elmélet: A DFA

Részletesebben

Informatika 1 2. el adás: Absztrakt számítógépek

Informatika 1 2. el adás: Absztrakt számítógépek Informatika 1 2. el adás: Budapesti M szaki és Gazdaságtudományi Egyetem 2015-09-08 1 2 3 A egy M = Q, Γ, b, Σ, δ, q 0, F hetes, ahol Q az 'állapotok' nem üres halmaza, Γ a 'szalag ábécé' véges, nem üres

Részletesebben

Rekurzió. Dr. Iványi Péter

Rekurzió. Dr. Iványi Péter Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(

Részletesebben

Formális nyelvek előadások tavaszi félév

Formális nyelvek előadások tavaszi félév Formális nyelvek előadások 2018. tavaszi félév Követelmények Az aláírást mindenki megkapja ajándékba. A vizsga két részből áll, írásbeli és szóbeli vizsgából. Az írásbeli elégséges szintű teljesítése esetén

Részletesebben

1 2. gyakorlat Matematikai és nyelvi alapfogalmak. dr. Kallós Gábor

1 2. gyakorlat Matematikai és nyelvi alapfogalmak. dr. Kallós Gábor 1 2. gyakorlat Matematikai és nyelvi alapfogalmak dr. Kallós Gábor 2017 2018 Köszönetnyilvánítás Köszönetnyilvánítás (Acknowledgement) Ez a gyakorlati feladatsor nagyban épít a következő könyvre Elements

Részletesebben

Kiterjesztések sek szemantikája

Kiterjesztések sek szemantikája Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból

Részletesebben

Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására

Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására Nyelvek használata adatszerkezetek, képek leírására Formális nyelvek, 2. gyakorlat 1. feladat Módosított : belsejében lehet _ jel is. Kezdődhet, de nem végződhet vele, két aláhúzás nem lehet egymás mellett.

Részletesebben

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1 Halmazok 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 2 A fejezet legfontosabb elemei Halmaz megadási módjai Halmazok közti műveletek (metszet,

Részletesebben

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. HA 1 Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) HA 2 Halmazok HA 3 Megjegyzések A halmaz, az elem és az eleme fogalmakat nem definiáljuk, hanem alapfogalmaknak

Részletesebben

Átlátható veremautomaták és nyelvek

Átlátható veremautomaták és nyelvek Átlátható veremautomaták és nyelvek Visibly pushdown automata and languages Németh L. Zoltán Számítástudomány Alapjai Tanszék SZTE, Informatikai Tanszékcsoport 2007. április 23. Tartalom 1 Motiváció: modellellenőrzés

Részletesebben

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai

Részletesebben

HALMAZELMÉLET feladatsor 1.

HALMAZELMÉLET feladatsor 1. HALMAZELMÉLET feladatsor 1. Egy (H,, ) algebrai struktúra háló, ha (H, ) és (H, ) kommutatív félcsoport, és teljesül az ún. elnyelési tulajdonság: A, B H: A (A B) = A, A (A B) = A. A (H,, ) háló korlátos,

Részletesebben

Aritmetikai kifejezések lengyelformára hozása

Aritmetikai kifejezések lengyelformára hozása Aritmetikai kifejezések lengyelformára hozása Készítették: Santák Csaba és Kovács Péter, 2005 ELTE IK programtervező matematikus szak Aritmetikai kifejezések kiértékelése - Gyakran felmerülő programozási

Részletesebben

Az informatika elméleti alapjai 2 elővizsga december 19.

Az informatika elméleti alapjai 2 elővizsga december 19. Név (aláírás): Az informatika elméleti alapjai 2 elővizsga 2017. december 19. A vizsgadolgozat 1. feladatára helyes válaszonként 1-1 pont kapható, a 2-3. feladatok megoldásáért 6-6 pont, a 4. feladatra

Részletesebben

2. Ítéletkalkulus szintaxisa

2. Ítéletkalkulus szintaxisa 2. Ítéletkalkulus szintaxisa (4.1) 2.1 Az ítéletlogika abc-je: V 0 V 0 A következő szimbólumokat tartalmazza: ítélet- vagy állításváltozók (az állítások szimbolizálására). Esetenként logikai változónak

Részletesebben

Diszkrét matematika II., 8. előadás. Vektorterek

Diszkrét matematika II., 8. előadás. Vektorterek 1 Diszkrét matematika II., 8. előadás Vektorterek Dr. Takách Géza NyME FMK Informatikai Intézet takach@inf.nyme.hu http://inf.nyme.hu/ takach/ 2007.??? Vektorterek Legyen T egy test (pl. R, Q, F p ). Definíció.

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 1 I. HALmAZOk 1. JELÖLÉSEk A halmaz fogalmát tulajdonságait gyakran használjuk a matematikában. A halmazt nem definiáljuk, ezt alapfogalomnak tekintjük. Ez nem szokatlan, hiszen

Részletesebben

Emlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések)

Emlékeztető: LR(0) elemzés. LR elemzések (SLR(1) és LR(1) elemzések) Emlékeztető Emlékeztető: LR(0) elemzés A lexikális által előállított szimbólumsorozatot balról jobbra olvassuk, a szimbólumokat az vermébe tesszük. LR elemzések (SLR() és LR() elemzések) Fordítóprogramok

Részletesebben

Nyelv hatványa: Legyen L egy nyelv, nemnegatív egész hatványai,,. (rek. definició) Nyelv lezártja (iteráltja): Legyen L egy nyelv. L nyelv lezártja.

Nyelv hatványa: Legyen L egy nyelv, nemnegatív egész hatványai,,. (rek. definició) Nyelv lezártja (iteráltja): Legyen L egy nyelv. L nyelv lezártja. Univerzális ábécé: Szimbólumok egy megszámlálhatóan végtelen halmazát univerzális ábécének nevezzük Ábécé: Ábécének nevezzük az univerzális ábécé egy tetszőleges véges részhalmazát Betű: Az ábécé elemeit

Részletesebben

Itt és a továbbiakban a számhalmazokra az alábbi jelöléseket használjuk:

Itt és a továbbiakban a számhalmazokra az alábbi jelöléseket használjuk: 1. Halmazok, relációk, függvények 1.A. Halmazok A halmaz bizonyos jól meghatározott dolgok (tárgyak, fogalmak), a halmaz elemeinek az összessége. Azt, hogy az a elem hozzátartozik az A halmazhoz így jelöljük:

Részletesebben

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21 Bonyolultságelmélet Thursday 1 st December, 2016, 22:21 Tárbonyolultság A futásidő mellett a felhasznált tárterület a másik fontos erőforrás. Ismét igaz, hogy egy Ram-program esetében ha csak a használt

Részletesebben

Felismerhető nyelvek zártsági tulajdonságai II... slide #30. Véges nemdeterminisztikus automata... slide #21

Felismerhető nyelvek zártsági tulajdonságai II... slide #30. Véges nemdeterminisztikus automata... slide #21 A számítástudomány alapjai Ésik Zoltán SZTE, Számítástudomány Alapjai Tanszék Bevezetes Bevezetés.................................................... slide #2 Automaták és formális nyelvek Szavak és nyelvek...............................................

Részletesebben

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk 1. Kódelmélet Legyen X = {x 1,..., x n } egy véges, nemüres halmaz. X-et ábécének, elemeit betűknek hívjuk. Az X elemeiből képzett v = y 1... y m sorozatokat X feletti szavaknak nevezzük; egy szó hosszán

Részletesebben

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek Tömb Ugyanolyan típusú elemeket tárol A mérete előre definiált kell legyen és nem lehet megváltoztatni futás során Legyen n a tömb mérete. Ekkor:

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel! függvények RE 1 Relációk Függvények függvények RE 2 Definíció Ha A, B és ρ A B, akkor azt mondjuk, hogy ρ reláció A és B között, vagy azt, hogy ρ leképezés A-ból B-be. Ha speciálisan A=B, azaz ρ A A, akkor

Részletesebben

Alap fatranszformátorok I. Oyamaguchi [3], Dauchet és társai [1] és Engelfriet [2] bebizonyították hogy egy tetszőleges alap

Alap fatranszformátorok I. Oyamaguchi [3], Dauchet és társai [1] és Engelfriet [2] bebizonyították hogy egy tetszőleges alap Alap fatranszformátorok I Vágvölgyi Sándor Oyamaguchi [3], Dauchet és társai [1] és Engelfriet [2] bebizonyították hogy egy tetszőleges alap termátíró rendszerről eldönthető hogy összefolyó-e. Mindannyian

Részletesebben

ALGEBRAI AUTOMATAELMÉLET

ALGEBRAI AUTOMATAELMÉLET Babcsányi István ALGEBRAI AUTOMATAELMÉLET 2011 Ismertető Tartalomjegyzék Pályázati támogatás Gondozó Szakmai vezető Lektor Technikai szerkesztő Copyright A jegyzet az automaták algebrai elméletének alapjait

Részletesebben

Nagy Gábor compalg.inf.elte.hu/ nagy

Nagy Gábor  compalg.inf.elte.hu/ nagy Diszkrét matematika 3. estis képzés 2018. ősz 1. Diszkrét matematika 3. estis képzés 10. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT augusztus 16.

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT augusztus 16. Turing-gépek Kiegészítő anyag az Algoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: Algoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 2017. augusztus 16. A veremautomatáknál az, hogy

Részletesebben

RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

RE 1. Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel! RE 1 Relációk Függvények RE 2 Definíció: Ha A, B és ρ A B, akkor azt mondjuk, hogy ρ reláció A és B között, vagy azt, hogy ρ leképezés A-ból B-be. Ha speciálisan A=B, azaz ρ A A, akkor azt mondjuk, hogy

Részletesebben

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális vagy félformális tervek Informális követelmények Formális modell: KS, LTS, TA

Részletesebben

HALMAZOK. A racionális számok halmazát olyan számok alkotják, amelyek felírhatók b. jele:. A racionális számok halmazának végtelen sok eleme van.

HALMAZOK. A racionális számok halmazát olyan számok alkotják, amelyek felírhatók b. jele:. A racionális számok halmazának végtelen sok eleme van. HALMAZOK Tanulási cél Halmazok megadása, halmazműveletek megismerése és alkalmazása, halmazok ábrázolása Venn diagramon. Motivációs példa Egy fogyasztó 80 000 pénzegység jövedelmet fordít két termék, x

Részletesebben

Fogalomtár a Formális nyelvek és

Fogalomtár a Formális nyelvek és Fogalomtár a Formális nyelvek és automaták tárgyhoz (A törzsanyaghoz tartozó definíciókat és tételeket jelöli.) Definíciók Univerzális ábécé: Szimbólumok egy megszámlálhatóan végtelen halmazát univerzális

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Temporális logikák és modell ellenırzés

Temporális logikák és modell ellenırzés Temporális logikák és modell ellenırzés Temporális logikák Modális logika: kijelentések különböző módjainak tanulmányozására vezették be (eredetileg filozófusok). Ilyen módok: esetleg, mindig, szükségszerűen,

Részletesebben

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat

Részletesebben

1. előadás: Halmazelmélet, számfogalom, teljes

1. előadás: Halmazelmélet, számfogalom, teljes 1. előadás: Halmazelmélet, számfogalom, teljes indukció Szabó Szilárd Halmazok Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) összessége. Egy halmaz akkor adott, ha minden objektumról eldönthető,

Részletesebben

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz VIII. Friedl Katalin BME SZIT március 18.

Turing-gépek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz VIII. Friedl Katalin BME SZIT március 18. Turing-gépek Kiegészítő anyag az Algoritmuselmélet tárgyhoz VIII. (a Rónyai Ivanyos Szabó: Algoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 2016. március 18. A veremautomatáknál az hogy

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:

Részletesebben

10. fejezet Az adatkapcsolati réteg

10. fejezet Az adatkapcsolati réteg 10. fejezet Az adatkapcsolati réteg Az adatkapcsolati réteg (Data Link Layer) Előzetesen összefoglalva, az adatkapcsolati réteg feladata abban áll, hogy biztosítsa azt, hogy az adó oldali adatok a vevő

Részletesebben

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,

Részletesebben

Dr. Mileff Péter

Dr. Mileff Péter Dr. Mileff Péter 1 2 1 Szekvencia diagram Szekvencia diagram Feladata: objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé

Részletesebben

Időzített átmeneti rendszerek

Időzített átmeneti rendszerek Időzített átmeneti rendszerek Legyen A egy ábécé, A = A { (d) d R 0 }. A feletti (valós idejű) időzített átmeneti rendszer olyan A = (S, T,,, ) címkézett átmeneti rendszert ( : T A ), melyre teljesülnek

Részletesebben

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK Sorozat fogalma Definíció: Számsorozaton olyan függvényt értünk, amelynek értelmezési tartománya a pozitív egész

Részletesebben

Alap fatranszformátorok II

Alap fatranszformátorok II Alap fatranszformátorok II Vágvölgyi Sándor Fülöp Zoltán és Vágvölgyi Sándor [2, 3] közös eredményeit ismertetjük. Fogalmak, jelölések A Σ feletti alaptermek TA = (T Σ, Σ) Σ algebráját tekintjük. Minden

Részletesebben

Számításelmélet. Will június 13. A kiszámíthatóság fogalma és a Church-Turing tézis

Számításelmélet. Will június 13. A kiszámíthatóság fogalma és a Church-Turing tézis Számításelmélet Will 2010. június 13. A kiszámíthatóság fogalma és a Church-Turing tézis. A Turing gép, mint algoritmus modell. A rekurzív és a rekurzívan felsorolható nyelvek. Algoritmikusan eldönthet

Részletesebben