Környezetfüggetlen nyelvek

Hasonló dokumentumok
Környezetfüggetlen nyelvek

Házi feladatok megoldása. Veremautomaták. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 12. gyakorlat

Házi feladatok megoldása. Harmadik típusú nyelvek és véges automaták. Házi feladatok megoldása. VDA-hoz 3NF nyelvtan készítése

4. Legyen Σ = {0, 1}. Adjon meg egy determinisztikus véges automatát, amely azokat a szavakat fogadja el,

Irodalom. Formális nyelvek I. Véges automaták és reguláris nyelvek. A formális nyelvek egy alkalmazása. Polygon, 2004.

Irodalom. Formális nyelvek I/1. Véges automaták és reguláris nyelvek. A formális nyelvek egy alkalmazása. Polygon, 2004.

Házi feladatok megoldása. Automaták analízise, szintézise és minimalizálása. Házi feladatok megoldása. Házi feladatok megoldása

Formális nyelvek. Aszalós László, Mihálydeák Tamás. Számítógéptudományi Tanszék. December 6, 2017

Országos Középiskolai Tanulmányi Verseny 2010/2011 Matematika I. kategória (SZAKKÖZÉPISKOLA) Az 1. forduló feladatainak megoldása

Vektortér fogalma vektortér lineáris tér x, y x, y x, y, z x, y x + y) y; 7.)

Lineáris egyenletrendszerek

5. Logaritmus. I. Nulladik ZH-ban láttuk: 125 -öt kapjunk. A 3 5 -nek a 3. hatványa 5, log. x Mennyi a log kifejezés értéke?

Az LR elemző felépítése. Léptetés. Redukálás. Kiegészített grammatika. Mit kell redukálni? Kiegészített grammatika. elemző. elemző.

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Formális nyelvek I/2.

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

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

PÉLDA: Négyezer-hatszázöt Jel Szám

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Fonya ZH recap szabivános typo lehet, bocs

KIEGÉSZÍTÉS A VONALINTEGRÁLHOZ

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

IX. A TRIGONOMETRIA ALKALMAZÁSA A GEOMETRIÁBAN

Nyelvek és Automaták

A Riemann-integrál intervallumon I.

FELVÉTELI VIZSGA, július 15.

5. A logaritmus fogalma, a logaritmus azonosságai

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

7. tétel: Elsı- és másodfokú egyenletek és egyenletrendszerek megoldási módszerei

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

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

2014/2015-ös tanév II. féléves tematika

M. 2. Döntsük el, hogy a következő két szám közül melyik a nagyobb:

PÉLDA: Négyezer-hatszázöt Jel Szám

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Juhász István Orosz Gyula Paróczay József Szászné Dr. Simon Judit MATEMATIKA 10. Az érthetõ matematika tankönyv feladatainak megoldásai

1. Végezd el a kijelölt mûveleteket a betûk helyére írt számokkal! Húzd alá azokat a mûveleteket,

1. feladat Oldja meg a valós számok halmazán a következő egyenletet: 3. x log3 2

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Kombinációs hálózatok egyszerűsítése

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Exponenciális és Logaritmusos feladatok

Chomsky-féle hierarchia

Vektoralgebra. Ebben a részben a vektorokat aláhúzással jelöljü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!

2010/2011 es tanév II. féléves tematika

Lineáris programozás

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Automaták és formális nyelvek

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Egy látószög - feladat

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

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:

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

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

l.ch TÖBBVÁLTOZÓS FÜGGVÉNYEK HATÁRÉRTÉKE ÉS DIFFERENCIÁLHATÓSÁGA

Improprius integrálás

Vektorok. Vektoron irányított szakaszt értünk.

VI.8. PITI FELFEDEZÉSEK. A feladatsor jellemzői

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

9. Exponenciális és logaritmusos egyenletek, egyenlőtlenségek

4. előadás: A vetületek általános elmélete

GAZDASÁGI MATEMATIKA I.

MATEMATIKA FELADATLAP a 4. évfolyamosok számára

4. Hatványozás, gyökvonás

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

I. HALMAZOK, KOMBINATORIKA

Konfár László Kozmáné Jakab Ágnes Pintér Klára. sokszínû. munkafüzet. Harmadik, változatlan kiadás. Mozaik Kiadó Szeged, 2012

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Formális nyelvek - 5.

823. A helyesen kitöltött keresztrejtvény: 823. ábra A prímek összege: = 9; 824. a) 2 1, 2 4, 5 3, 3 5, 2$ 825.

Gyökvonás. Hatvány, gyök, logaritmus áttekintés

Szinusz- és koszinusztétel

Középiskolás leszek! matematika. 13. feladatsor

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

Improprius integrálás

Bevezetés a programozásba. 3. Előadás Algoritmusok, tételek

Formális nyelvek és automaták

A Gauss elimináció M [ ]...

1. MECHANIKA-SZILÁRDSÁGTAN GYAKORLAT (kidolgozta: Szüle Veronika, egy. Ts; Tarnai Gábor mérnöktanár.) Matematikai összefoglaló, kiinduló feladatok

0.1 Deníció. Egy (X, A, µ) téren értelmezett mérhet függvényekb l álló valamely (f α ) α egyenletesen integrálhatónak mondunk, ha

Határozzuk meg, hogy a következő függvényeknek van-e és hol zérushelye, továbbá helyi szélsőértéke és abszolút szélsőértéke (

A valós számok halmaza

f (ξ i ) (x i x i 1 )

2000. évi XXV. törvény a kémiai biztonságról1

Véges automaták, reguláris nyelvek

TERMOELEKTROMOS HŰTŐELEMEK VIZSGÁLATA

Átírás:

Környezetfüggetlen nyelvek Kiegészítő nyg z Algoritmuselmélet tárgyhoz VI. ( ónyi Ivnyos Szó: Algoritmusok könyv mellé) Friedl Ktlin BM SZI friedl@cs.me.hu 2016. feruár 24. A reguláris nyelveket véges utomtákkl vgy reguláris kifejezésekkel dtuk meg. Vn továi lehetőség is, ezek formális nyelvtnok vgy röviden nyelvtnok. A formális nyelvtnok nem egészen olynok, mint például mgyr nyelvtn. Bár eredetileg természetes nyelvek szályink leírásár készültek, de inká hsználhtók mesterséges nyelvek, például progrmozási nyelvek pontos megdásár, mint egy eszélt nyelv helyes mondtink tökéletes leírásár. A formális nyelvtnok lényegéen átírási szályokt dnk meg, mikkel egy kezdő szimólumól kiindulv szvkt tudunk előállítni. zeknek itt csk egy speciális, tlán leggykrn hsznált fjtájávl fogllkozunk. 1. Definíció. gy környezetfüggetlen nyelvtn (röviden CF nyelvtn) ltt egy olyn G = (V, Σ, S, P ) rendszert értünk, hol V egy véges, nem üres hlmz, változók (vgy nemterminálisok) hlmz, Σ egy áécé, mire V Σ =, krkterek (vgy terminálisok) hlmz S V kezdő változó, P egy véges hlmz, z ún. levezetési (vgy produkciós, illetve átírási) szályok hlmz. P elemei A α lkúk, hol A V egy változó, α (V Σ) egy változókól és Σ elemeiől álló tetszőleges, véges hosszú sorozt. 1. Péld. Legyen V = {A}, Σ = {, }, kezdő változó természetesen z A, levezetési szályok hlmz pedig P = {A A, A ε} 1

A nyelvtnok megdásánál sokszor nem írjuk ki z összes prmétert, csk levezetési szályokt soroljuk fel. H mást nem mondunk, kkor szályokn szereplő kisetűk Σ elemei, ngyetűk változók, z első szály l oldl kezdő változó. ováá zok szályok, melyeknek l oldlán ugynz áll, összevonhtók, függőleges vonlll elválsztv különöző jo oldlkt, en formán z előző nyelvtn így néz ki: A A ε 2. Definíció. gy G = (V, Σ, S, P ) nyelvtnnál levezetés ltt egy olyn γ 0 γ 1 γ 2 γ n véges hosszú soroztot értünk (n 0), melyen γ 0 = S, továá γ i (V Σ), és mindegyik γ i+1 megkphtó γ i -ől egy levezetési szály lklmzásávl. z zt jelenti, hogy minden 0 i < n esetén γ i felírhtó γ i = δ 1 Aδ 2 lkn, hol δ 1, δ 2 (V Σ) és A V úgy, hogy és γ i+1 = δ 1 αδ 2 hol A α egy P -hez trtozó levezetési szály. 2. Péld. Az előző nyelvtn esetén egy levezetés pl. z lái A A A A ε Az így levezetett szó z. Könnyű látni, hogy eől nyelvtnól pontosn zok szvk vezethetők le, melyek n n lkúk (n 0). A levezetések közül zok lesznek számunkr érdekesek, melyeken kezdő változóól indulv végül egy olyn sorozthoz jutunk, mien már nincsenek változók. 3. Definíció. A G = (V, Σ, S, P ) nyelvtn áltl generált L(G) nyelv zokól w Σ szvkól áll, melyekhez vlmilyen n 0 számr vn olyn S γ 1 γ 2 γ n levezetés, hol γ n = w 1. Megjegyzés. Vegyük észre, hogy h egy levezetés során eljutunk egy w Σ szóhoz, kkor levezetés tová már iztos nem folytthtó, w nem trtlmz változót, tehát ilyenkor már egyetlen szály sem lklmzhtó. 3. Péld. ekintsük z lái nyelvtnt! S S S Itt tehát z egyetlen változó z S, z áécé z {, }. A nyelvtnól levezethető pl. z szó: S S Az is látszik, hogy nyelvtn áltl generált nyelv {, } -ól z összes nem üres szót trtlmzz, zz L = {, } \ {ε}. z zért igz, mert egy tetszőleges, leglá 1 hosszú w {, } szóhoz előről kezdve egymás után tudjuk generálni krktereit: míg nem z utolsó krkterről vn szó, ddig z első vgy második szállyl, z utolsó krkter pedig 3. vgy 4. szállyl állíthtó elő. 2

1. Feldt. Mely szvkól áll z lái nyelvtn áltl generált nyelv? S ε Megoldás: Világos, hogy S-ől csk olyn szó vezethető le, mi nem üres, továá z első és z utolsó krktere megegyezik. Megmuttjuk, hogy generált nyelv z összes ilyen szóól áll. hhez vegyük észre, hogy -ől minden és etűkől álló sorozt előállíthtó z előző példához hsonlón. Az S szályi lehetővé teszik, hogy szó első és utolsó krkterét generáljuk. H 1-nél hossz szót krunk, kkor ezek közé -ől tetszőleges krktersoroztot előállíthtunk. 2. Feldt. Legyen Σ = {, } és L álljon zokól szvkól, melyeken z etűk szám megegyezik etűk számávl. Adjunk olyn G nyelvtnt, mire L(G) = L. Megoldás: gy lehetséges megoldás: S SS SS ε Ahhoz, hogy ez vlón jó nyelvtn, először is vegyük észre, hogy minden eseten, mikor vlmelyik szályt lklmzzuk, ugynnnyi -t generálunk, mint hány -t ezért L(G) L. Azt kell még megmuttni, hogy minden w L szó levezethető nyelvtnól. zt w hossz szerinti indukcióvl látjuk e. Nyilván ez igz 0 hosszú w = ε szór. gy hosszú szó nincs z L nyelven. A kettő hosszú szvkr is könnyű látni, mert vgy z első vgy második szály egyszeri lklmzás után hrmdik szályt kétszer hsználv megkphtjuk w szót. együk fel, hogy L legfelje k hosszú szviról már tudjuk, hogy levezethetők és legyen w = k + 1. ö eset lehetséges: mennyien w = w, kkor w L és een z eseten z S SS kezdés után S első előfordulásáól, z indukciós feltevés szerint w levezethető, miután második S etűre z S ε szályt lklmzv megkpjuk w szót. Hsonlón járhtunk el, mennyien w = w. H viszont w első és utolsó etűje megegyezik, és ez etű mondjuk, kkor vegyük w-nek egy legrövide kezdőszeletét, mien ugynnnyi vn mint, legyen ez x és w = xy. kkor egyrészt x, y L, másrészt x szükség szerűen -re végződik, zz x = z lkú, hol z L. gy ilyen w-re jó levezetést kpunk, h z S SS lépés után z első S-ől z x-et, másodikól z y-t vezetjük le (mi z indukciós feltevés mitt lehetséges). Hsonlón járhtunk el kkor is, mikor w első ezűje, csk ilyenkor levezetés z S SS szállyl indul. Nézzünk egy kicsit onyolult nyelvtnt! 3

4. Péld. S (1-2) S (3-4) ε (5-7) (8-9) z is környezetfüggetlen nyelvtn, hol kezdő változó z. Az lái levezetésen z láhúzott rész jelöli következőként lklmzott szály l oldlát, nyíl feletti szám szály sorszámát. 1 1 2 S 8 S 9 S 8 9 S 8 S 3 5 7 9 ehát kpott szó L(G). A fenti levezetés során tö válsztásunk is volt, hogy melyik változót melyik szály lpján helyettesítsük. gy levezetés sokszor jon áttekinthető h lépéseket egy fá rendezzük. 4. Definíció. Legyen G egy környezetfüggetlen nyelvtn és x egy szó. Az x levezetési fáj G-en egy gyökeres f, melyen gyökér kezdő változóvl, minden nem levél csúcs egy-egy változóvl, minden levél pedig Σ egy-egy elemével (vgy ε-nl) vn címkézve. H egy A csúcs gyerekei lról jor olvsv B 1, B 2,..., B k, kkor nyelvtnnk vn A B 1 B 2... B k szály. (Itt B i Σ V {ε}.) A levelek lról jor olvsv éppen z x szót dják. A definícióól világos, hogy egy x L(G) szó tetszőleges levezetéséől lehet levezetési fát készíteni, és levezetési fáól is kiolvshtó leglá egy levezetés. Fontos zonn megjegyezni, hogy míg levezetés egyértelműen meghtározz fát, visszfelé ez nem igz, áltlán egy levezetési fáól ugynnnk szónk tö levezetése is kiolvshtó. 5. Definíció. gy x L(G) szó l-levezetése egy olyn levezetés, mikor minden lépésen γ i elejéhez legközelei változót helyettesítjük egy megfelelő nyelvtni szály lpján. rre már igz, hogy egy levezetési fáól egyetlen l-levezetés olvshtó ki. 4

5. Péld. Az előző példán leírt levezetéshez trtozó levezetési f. ől töféle levezetés is leolvhtó, l-levezetés szályi sorrenden: 1, 8, 1, 9, 2, 3, 5, 9, 7, 9, 8, 8. Jo oldlt egy ugynehhez szóhoz trtozó másik levezetési f láthtó. S S ε ε 6. Definíció. gy w Σ szó egyértelműen levezethető G nyelvtnól, h G-en csk egy levezetési fáj vn. A G nyelvtn egyértelmű, h G-ől minden w L(G) szó egyértelműen levezethető. Az L nyelv egyértelmű, h létezik egyértelmű nyelvtn. zek szerint z előző példeli szó nem egyértelműen levezethető, hiszen két különöző levezetési fáj is vn. Így persze nyelvtn sem egyértelmű. 2. Megjegyzés. Az egyértelműen levezethetőség fenti definíciój ekvivlens zzl, hogy szó l-levezetése egyértelmű. Lássunk most egy fontos példát, z ritmetiki kifejezések nyelvét. Az egyszerűség kedvéért csk összedást és szorzást fogunk enne hsználni, de kiegészíthető továi műveletekkel is. + () (1) Itt z egyetlen változó, z áécé elemei pedig +,,, vlmint nyitó és csukó zárójel. z egy nem egyértelmű nyelvtn, hiszen például z + kifejezéshez két különöző levezetési f is trtozik, 5

+ + 3. Megjegyzés. H erre két fár nem mint levezetési fákr, hnem mint kifejezés kiértékelésének módját megdó fákr gondolunk, kkor látszik, hogy míg z első megfelel z ritmetiki kifejezések szokásos kirétékelésének (elő szorzást végezzük el, után z összedást) második,,rossz sorrenden végzi műveleteket. 1. étel. Az ritmetiki kifejezésekre dott fenti G egyszerű nyelvtn (1) nem egyértelmű, de z áltl generált L(G) nyelv egyértelmű nyelv. Bizonyítás vázlt: Az elő már láttuk, hogy nyelvtn nem egyértelmű. A nyelv egyértelműségéhez muttnunk kell egy G egyértelmű nyelvtnt, mire L(G ) = L(G). Legyen G következő: + F F F () Világos, hogy G nyelvtnnl levezethető ritmetiki kifejezések levezethetők z eredeti nyelvtnól is. Azt kell megmuttni, hogy h w L(G), kkor w L(G ) is teljesül, sőt G -eli levezetési fáj egyértelmű. zt w hossz szerinti indukcióvl mutthtjuk meg. H w = 1, kkor csk w = lehet, és ez egyedül z F lépésekkel kphtó meg G nyelvtnn. Hossz szvkr zt kell észrevenni, hogy h vnnk zárójelen kívüli + jelek, kkor először ezeket kell generálni (sorrenden visszfelé) z első szály segítségével, után zárójelen kívüli jeleket, mjd zárójeleken levő kifejezéseket. 4. Megjegyzés. Vegyük észre, hogy een módosított nyelvtnn h levezetési fát kiértékelési fánk tekintjük, kkor műveletek sorrendje is szokásos lesz. 6