Formális nyelvek és automaták

Hasonló dokumentumok
Automaták és formális nyelvek

Formális nyelvek és automaták

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

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

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

7. Számelmélet. 1. Lehet-e négyzetszám az a pozitív egész szám, amelynek tízes számrendszerbeli alakjában 510 darab 1-es és valahány 0 szerepel?

Elemi matematika szakkör

Chomsky-féle hierarchia

Számelmélet Megoldások

Chomsky-féle hierarchia

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

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

Bevezetés a matematikába (2009. ősz) 1. röpdolgozat

7! (7 2)! = 7! 5! = 7 6 5! 5 = = ből 4 elem A lehetőségek száma megegyezik az 5 elem negyedosztályú variációjának számával:

ZH feladatok megoldásai

Formális nyelvek - 5.

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Negatív alapú számrendszerek

Formális nyelvek és automaták

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!

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

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

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Számelmélet

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

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:

Véges automaták, reguláris nyelvek

Reguláris kifejezések 1.

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:

Szakács Lili Kata megoldása

Logika es sz am ıt aselm elet I. r esz Logika Harmadik el oad as 1/33

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

OSZTHATÓSÁG. Osztók és többszörösök : a 3 többszörösei : a 4 többszörösei Ahol mindkét jel megtalálható a 12 többszöröseit találjuk.

Atomataelmélet: A Rabin Scott-automata

Számrendszerek. Bináris, hexadecimális

Harmadik gyakorlat. Számrendszerek

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

Kombinatorika. Permutáció

Hatványozás. A hatványozás azonosságai

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Számelmélet

Feladatok: 1. Add meg a következ balreguláris nyelvtannak megfelel jobbreguláris nyelvtant!

Kedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

Logika es sz am ıt aselm elet I. r esz Logika 1/36

Egészrészes feladatok

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Arany Dániel Matematikai Tanulóverseny 2016/2017-es tanév Kezdők III. kategória I. forduló

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

Gauss-Seidel iteráció

Csima Judit október 24.

Példák. Ismert a római számok halmaza, amely intuitív szintaxissal rendelkezik, hiszen pl.

1. Halmazok, számhalmazok, alapműveletek

æ A GYAKORLAT (* feladatok nem kötelezőek)

illetve a n 3 illetve a 2n 5

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

Bizonyítási módszerek - megoldások. 1. Igazoljuk, hogy menden természetes szám esetén ha. Megoldás: 9 n n = 9k = 3 3k 3 n.

Diszkrét matematika 2.C szakirány

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

HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet:

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

A szimplex algoritmus

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

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

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

A törzsszámok sorozatáról

Arany Dániel Matematikai Tanulóverseny 2014/2015-ös tanév első (iskolai) forduló Haladók II. kategória

Varga Tamás Matematikaverseny Javítási útmutató Iskolai forduló 2016/ osztály

Diszkrét matematika 2.

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

BASH SCRIPT SHELL JEGYZETEK

Gazdasági informatika gyakorlat

Házi feladatok megoldása. Nyelvek felismerése. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 5. gyakorlat

Adatbázisok elmélete 12. előadás

Formális nyelvek - 9.

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Abszolútértékes egyenlôtlenségek

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

Sarokba a bástyát! = nim

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2. estis képzés

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

Diszkrét matematika 2.

Függvény határérték összefoglalás

Az Országos Középiskolai Tanulmányi Verseny tanévi első fordulójának feladatmegoldásai

Számrendszerek. A római számok írására csak hét jelt használtak. Ezek segítségével, jól meghatározott szabályok szerint képezték a különböz számokat.

Kombinatorika - kidolgozott típuspéldák

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Matematikai logika és halmazelmélet

Házi feladatok megoldása. Nyelvtani transzformációk. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 6. gyakorlat.

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Hibajavító kódok május 31. Hibajavító kódok 1. 1

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

Következik, hogy B-nek minden prímosztója 4k + 1 alakú, de akkor B maga is 4k + 1 alakú, s ez ellentmondás.

A 2014/2015. tanévi Országos Középiskolai Tanulmányi Verseny első forduló MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA) Javítási-értékelési útmutató

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

1. A polinom fogalma. Számolás formális kifejezésekkel. Feladat Oldjuk meg az x2 + x + 1 x + 1. = x egyenletet.

Matematika III. 2. Eseményalgebra Prof. Dr. Závoti, József

1. melléklet: A tanárokkal készített interjúk főbb kérdései

Algoritmusok és adatszerkezetek 2.

Operációs Rendszerek Gyakorlat

24. szakkör (Csoportelméleti alapfogalmak 3.)

HALMAZOK TULAJDONSÁGAI,

Átírás:

Formális nyelvek és automaták Nagy Sára gyakorlatai alapján Készítette: Nagy Krisztián 2. gyakorlat Ismétlés: Megjegyzés: Az ismétlés egy része nem szerepel a dokumentumban, mivel lényegében a teljes 1. gyakorlat elméletibb részét foglalja magában. Reguláris műveletek nyelveken: - unio - konkatenáció - lezárás Reguláris nyelvek családja: - elemi reguláris nyelvek - reguláris nyelv az elemi reguláris nyelvekből a reguláris műveletek véges sokszori alkalmazásával előállíthatók Feladatok: - -val kezdődik ezért a reguláris kifejezésünknek is azzal kell kezdődnie, továbbá a hatvány miatt fel tudjuk bontani a úgy, hogy, ezt tovább lehet bontani úgy, hogy és mivel 0-nál nagyobb vagy egyenlő ezért képzeljük el iterációként. Lényegében nekünk az -val kezdődő és páratlan -re végződő szavak halmazát kell meghatároznunk. A felbontásból adódóan ha -t *-al helyettesítjük, akkor az iteráció szempontjából ez az alábbit jelenti:, azaz páros komponenseket gyárt számunkra. Mivel nekünk páratlan komponensekre van szükségünk, így hozzá kell konkatenálnunk egy -t az iterációnkhoz. Így a reguláris kifejezésünk esetén hoz -t kell konkatenálnunk. Reguláris kifejezés: - elemei: - ha is reguláris kifejezés - nincs más reguláris kifejezés

1. feladat: 2. feladat: Az 1. feladat-beli nyelveket használjuk fel és határzzuk meg -t és -t 3. feladat: Írjuk le reguláris kifejezésekkel a néggyel osztható bit sorozatokat (bináris számokat) leíró nyelvet! További megkötés: Ne legyenek vezető 0-ák (Azaz ne legyen ilyesmi: 0000, 00010, 01001) (Megjegyzés: Kettes számrendszer! ) Jelen esetünkben Néggyel osztható egy bináris szám, ha vagy csak 0 vagy 00-ra végződik. Ezek alapján két esetre tudjuk bontani a feladatunkat. A vagy. vagy szófordulat alapján a művelettel fogjuk a megoldásokat felírni. Az első eset, ha vagy csak 0 a bináris számunk. Ez a megoldás egyszerű, mivel binárisan a 0 az 0. A második esetben, mivel nem engedjük meg a vezető 0-ákat, ezért biztos, hogy 1-el fog kezdődni a bit sorozatunk (így a reguláris kifejezésünk is.) Ezek után tetszőlegesen sok 0 vagy 1-es állhat és mivel néggyel oszthatónak kell lennie, ezért 00-ra kell végződnie. Egy reguláris kifejezést több féle képpen is fel lehet írni, így ennél a feladatnál két féle lehetséges megoldást is adunk, hogy szemléltessük ezt. Bármelyik választás helyes. A két megoldás végeredményeként ugyan azt a nyelvet kapjuk. A különbség annyi, hogy az első esetben a miatt, ha a nyelvet egy program konstruálná, egyesével tudna választani, hogy az iteráción belül milyen elemek jöjjenek. Hogy szemléltessem: esetén vagy 0-át vagy egyet választhat a programunk tetszőlegesen sokszor, míg a másik esetben (a megoldásunkban) tetszőlegesen sok 0 és tetszőlegesen sok 1-esből választhat tetszőlegesen sokat. Azonosítós feladatok: A feladatok során legyen betű, számjegy és aláhúzás (_) 1. feladat: Írjuk fel reguláris kifejezésekkel a betűvel kezdődő és betűre vagy számjegyre végződő azonosítókat leíró nyelvet! 2. feladat: Írjuk fel reguláris kifejezésekkel azt az aláhúzást tartalmazható azonosítókat leíró nyelvet, melyek betűvel kezdődnek, számokat is tartalmazhatnak, továbbá aláhúzás nem áll az azonosító végén és nem szerepel több aláhúzás egymás mellett!

Grammatikák: /Forrás: Hunyadvári László Manhertz Tamás Automaták és Formális Nyelvek című könyve./ Próbáljuk a fentebbi két definíciót felfogni feladatokkal.

1. Feladat: Legyen. Az első gyakorlaton láttuk, hogy ez a nyelv nem reguláris. A most megtanult módszerrel viszont fel tudjuk írni. Adjuk meg a grammatikáját! A fenti definíció alapján láthatjuk, hogy jelre is szükségünk lenne, azt a nem terminálisokhoz írjuk. Ezért:., amennyiben más nyelvtani A gondolkodás mód: Vizsgáljuk meg a felírt szabályrendszer alapján, hogy meg kapjuk-e az található szavakat. -ban Nézzük először -t: Most nézzük meg -t: szabályunk miatt megkapjuk. Nézzük meg -t: Az utóbbi lépést az szabályunk miatt kaptuk míg előtte folyamatosan az szabályt alkalmaztuk. Ezek alapján látható, hogy a szabályrendszerünk helyes, így a feladatunk is készen van. 2. Feladat: Legyen. Adjuk meg a grammatikáját! Emlékezzünk vissza a régi feladatunkra amiben szerepelt ez a nyelv: [Írjuk fel reguláris kifejezésekkel a betűvel kezdődő és betűre vagy számjegyre végződő azonosítókat leíró nyelvet! (b betű, s-számjegy)] Azt tudjuk, hogy jelen esetben a Terminális jelek ábécéje a és azt is, hogy Ki kell találnunk a szabályrendszert! Tudjuk, hogy betűvel kell kezdődni-e az azonosítóknak, így definiáljuk ezt az első szabályunkba, a feladat többi részét (betűre vagy számjegyre végződjön az azonosító) egy másik szabályba írjuk le:. Ebben az esetben létre hoztunk egy nyelvtani jelet (,amely a nem terminálisokhoz tartozik). Most, hogy definiáltuk azt, hogy betűvel kezdődjön az azonosítónk meg kell határoznunk, hogy -t hogyan szeretnénk használni a szabályrendszerünkben. -ból láthatjuk, hogy vagy betűre vagy számjegyre végződik az azonosítónk vagy pedig a lezárás művelet miatt -ra [azaz kimarad az azonosítonkból a rész], továbbá a lezárás miatt tetszőlegesen sokszor felhasználhatjuk a betűket és a számjegyeket. Ezeket a megállapításokat kell -ból levezetni. Amennyiben egy adott szabály jobb és bal oldalán is szerepel ugyan az a nem terminálisunk, továbbá a jobboldalon terminális is szerepel (tetszőleges mennyiségben) úgy egy iterációt tudunk létrehozni, ami végtelen sokszor ismétli ön magát, viszont ilyen esetben szükségünk van egy -ra is, hogy az iteráció bármikor ki tudjon lépni. Ezek alapján az alábbi szabályokat tudjuk felírni -ra:

Mivel az adott nem terminális többször szerepel a szabály bal oldalán, ezért műveletünkkel fel tudjuk írni egyben ezeket a lehetőségeket: Ezzel meg is oldottuk a feladatunkat. A grammatikánk így néz ki: Feladat: Írjuk fel az előző feladatban leírt grammatikánkat BNF-el. BNF: <valami> - nem tárminálisokat jelöl Ha nincs <>-ben, akkor terminálisokat jelöl továbbá ::= választja el a szabályrendszer bal és jobb oldalát. Bal oldalon csak nem terminális szerepel. Ezek alapján: <azonosító>::=<betű><azonosító_vége> <betű>::= a b c z <azonosító_vége>::=<betű><azonosító_vége> <számjegy><azonosító_vége> <számjegy>::= 0 1 2 9 Feladat: Vezessük le b12-t az előző két feladat alapján (grammatika,bnf) Grammatika alapján: - b betű és az 1 és a 2 számjegy, tehát készen vagyunk. BNF: <azonosító> <betű><azonosító_vége> b< azonosító_vége> b<számjegy><azonosító_vége> b<számjegy><számjegy><azonosító_vége> b12

Feladat: Milyen nyelvet generál az alábbi grammatika? Induljunk el a kezdő szimbólumunkból és próbáljunk észrevenni valami logikát: Nézzük meg a többi szabályt: Nézzük meg az esetre: Nézzük meg a szabályt: Mint láthatjuk a szabályrendszerünkben az szabály egy iteráció, ami ugyan annyi -t iterál, mint -t, továbbá az szabály egy felcserélés melynek segítségével a nem terminálisokat a szavaink elejére csúsztatja, majd a kicsréli a nem terminális - ket terminális -k re. Ezek alapján egy olyan nyelvet ír le, amelyek tetszőlegesen sok terminálisokból állnak és ugyan annyi terminális található a szavakban, mint terminális, ezért ez a grammatika az egyenlő hosszúságú betűkből álló szavakat generáló nyelvet írja le. Formálisan: