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

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

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

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

Matematikai logika és halmazelmélet

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

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

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

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 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:

Formális Nyelvek - 1.

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

Metrikus terek, többváltozós függvények

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

2010. október 12. Dr. Vincze Szilvia

A matematika nyelvér l bevezetés

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

1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata.

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

Készítette: Ernyei Kitti. Halmazok

Automaták és formális nyelvek

Formális nyelvek - 9.

Elsőrendű logika szintaktikája és szemantikája. Logika (3. gyakorlat) 0-adrendű szemantika 2009/10 II. félév 1 / 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!

Funkcionálanalízis. n=1. n=1. x n y n. n=1

2018, Diszkrét matematika

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 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:

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

7. BINÁRIS FÁK 7.1. A bináris fa absztrakt adattípus 7.2. A bináris fa absztrakt adatszerkezet

Diszkrét matematika 1. középszint

Diszkrét matematika I.

Jármőtervezés és vizsgálat I. VALÓSZÍNŐSÉGSZÁMÍTÁSI ALAPFOGALMAK Dr. Márialigeti János

Feladatok. BNF,EBNF,szintaxisgráf

KOVÁCS BÉLA, MATEMATIKA I.

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.

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

Komplex számok. A komplex számok algebrai alakja

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

Struktúra nélküli adatszerkezetek

Diszkrét matematika I.

Rekurzió. Dr. Iványi Péter

2. Rekurzió. = 2P2(n,n) 2 < 2P2(n,n) 1

Kiterjesztések sek szemantikája

Formális nyelvek és automaták

Véges automaták, reguláris nyelvek

Automaták mint elfogadók (akceptorok)

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

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

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

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

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

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

Hozzárendelés, lineáris függvény

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Absztrakt adatstruktúrák A bináris fák

ZH feladatok megoldásai

Felügyelt önálló tanulás - Analízis III.

BOOLE ALGEBRA Logika: A konjunkció és diszjunkció tulajdonságai

Komputeralgebra Rendszerek

Algoritmuselmélet 2. előadás

Alap fatranszformátorok II

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Reguláris kifejezések 1.

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

7 7, ,22 13,22 13, ,28

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

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 számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

Halmazelméleti alapfogalmak

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Fák Témakörök. Fa definíciója. Rekurzív típusok, fa adatszerkezet Bináris keresőfa, bejárások Bináris keresőfa, módosítás B-fa

FUNKCIONÁLIS PROGRAMOZÁS

Formális Nyelvek - 1. Előadás

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

Algoritmusok és adatszerkezetek gyakorlat 07

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

Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján

Fogalomtár a Formális nyelvek és

Valószínűségi változók. Várható érték és szórás

Formális szemantika. Kifejezések szemantikája. Horpácsi Dániel ELTE Informatikai Kar

1.1. Alapfogalmak. Vektor: R 2 beli elemek vektorok. Pl.: (2, 3) egy olyan vektor aminek a kezdo pontja a (0, 0) pont és a végpontja a

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.

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

Adatszerkezetek 7a. Dr. IványiPéter

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma

Amortizációs költségelemzés

FRAKTÁLGEOMETRIA Feladatok. Czirbusz Sándor április 16. A feladatok végén zárójelben a feladat pontértéke található.

Adatszerkezetek és algoritmusok

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

Elemi adatszerkezetek

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!

5. A kiterjesztési elv, nyelvi változók

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.

Gráfelméleti alapfogalmak

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

Matematikai alapok és valószínőségszámítás. Valószínőségszámítási alapok

Knuth-Morris-Pratt algoritmus

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

Programok értelmezése

Átírás:

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. Van nem "_" karaktere és első nem "_" karakter betű. Írjuk fel (E)BNF formulákkal! Célja: A formális nyelvek elmélete alapfogalmainak gyakorlása, formális nyelvek néhány alkalmazási lehetőségének bemutatása (adatszerkezetek szintaktikus leírása, teknőc grafika képek reprezentálása, fák és nyelvek). Fogalmak: A formális nyelvek elmélete alapfogalmainak gyakorlása, formális nyelvek néhány alkalmazási lehetőségének bemutatása (adatszerkezetek szintaktikus leírása, teknőc grafika képek reprezentálása, fák és nyelvek). Feladatok jellege: A lista és a fa adatszerkezet leírása kétszintű nyelvtannal, a Koch-szigetek teknőc-grafikával való leírásának tanulmányozása, fák reprezentációja szelektorhalmazukkal, faosztályok leírása nyelveken értelmezett rekurzióval Megoldás: (az első nem _ szimbólum betű) jegy betű 2008/09 I. félév Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 1 / 18 betű ::={ _} betű @{{ _}{ betű jegy }} Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 2 / 18 egyszerű program utasítás ; X Y utasítás : READ WRITE LET GOTO = IF Z jegy jegy jegy jegy 1. 2. 12. Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 3 / 18 Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 4 / 18

3. feladat A kiadott PASCAL szintaxis tanulmányozása. A ek átírása (E)BNF-re. + tényező + tag ( ) tag tényező / Megoldás: ::= egyszerű { relop egyszerű } relop ::= = < > <> <= >= IN egyszerű ::={ + } tag @{ addop tag } addop ::= + OR tag ::= tényező @{ mpop tényező } mpop ::= / DIV MOD AND tényező ::= előjel nélküli konstans változó függvénynév { ( @{, })} ( ) NOT tényező [ ] [ {.. }@{, {.. }}] és így tovább... Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 5 / 18 Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 6 / 18 4. feladat Kifejezések fogalmának leírása W nyelvtannal. Megoldás: Metaszabályok: ˆX ::= ˆX tag @{ ˆX addop ˆX tag } ˆX tag ::= ˆX tényező @{ ˆX mpop ˆX tényező } ˆX tényező ::= ˆX ( ˆX ) Hiperszabály: ˆX:= egész valós Boole Boole addop ::= OR Boole mpop ::= AND egész addop ::= + egész mpop ::= / Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 7 / 18 Szavak, nyelvek, konkatenáció Ha H egy halmaz, jelölje H a H elemeiből képezhető összes véges sorozatok halmazát (beleértve az ε-nal jelölt üres sorozatot is). Rögzítsünk egy U meglálhatóan végtelen osságú halmazt, melyet univerzális ábécének nevezünk és feltesszük, hogy tartalmaz minden unkra szükséges karaktert. T U, ha T véges ábécé t T a T ábécé egy betűje u T a T ábécé feletti szó L 2 T (vagyis L T ) a T ábécé feletti nyelv L 2 T nyelvcsalád (nyelvek egy összessége) T U, T < Ha u = a 1 a n (a i T, 1 i n) és v = b 1 b m (b i T, 1 i m), akkor az uv= a 1 a n b 1 b m szót az u és v szavak konkatenációjának nevezzük. Általában uv vu. Ha a T és L T, jelölje al= {au u L}. Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 8 / 18

Prefixek és suffixek r-áris fák Legyen rögzítve egy T ábécé. Prefix és suffix v T prefixe u T -nak v T u = v v v T suffixe u T -nak v T u = v v pre(u, l) ill. suf(u, l) az u l hosszú prefixe ill. suffixe. v valódi prefix ill. suffix, ha v ε, u. Pre(u)={v; v prefixe u-nak} Pre(L)= Pre(u) u L Suf(u)={v; v suffixe u-nak} Suf(L)= Suf(u) u L Azt mondjuk, hogy L zárt a prefix illetve suffix képzésre, ha Pre(L) = L illetve Suf(L) = L teljesül. Például: suf(abbaba, 4) = baba, Pre(abbaa) = {ε, a, ab, abb, abba, abbaa}, Suf({ab, abb, bb}) = {ε, b, ab, bb, abb} Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 9 / 18 r-áris fa: Olyan gyökeres fa, ahol minden csúcsnak legfeljebb r gyereke van, a gyerekekhez vezető élek a 0, 1,..., r 1 ok valamelyikével vannak címkézve. Egy csúcs gyerekeihez induló élek címkéje különböző. Elemi szelektor: a {0, 1,..., r 1} halmaz egy eleme. Szelektor: a {0, 1,..., r 1} halmaz egy eleme, azaz elemi szelektorok egy véges sorozata. Egy r-áris fában egy élhez tartozó elemi szelektor: az él címkéje. Egy r-áris fában egy csúcshoz tartozó szelektor: A gyökérből a csúcsba vezető élsorozat éleihez tartozó elemi szelektorok sorozata. Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 10 / 18 r-áris fák szelektorai Példa t 2 0 1 1 2 2 t 4 5 0 5 c 0 2 3 4 t 6-áris fa Mi a c csúcshoz tartozó ω szelektor? ω =40 A t fa szelektorainak halmazát jelölje Sel(t). Sel(t) a {0, 1,..., r 1} ábécé feletti prefixképzésre zárt nyelv. Sel(t)= {ε, 0, 1, 2, 4, 5, 11, 12, 40, 45, 122, 400, 402, 403, 404} Sel(t )={ω {0, 1,..., 5} 40ω Sel(t)} = {ε, 0, 2, 3, 4} r-áris fák megadása szelektorainak halmazával Legyen L {0, 1,..., r 1} prefixképzésre zárt véges nyelv. Ekkor egyértelműen konstruálható egy olyan r-áris t fa, melyre Sel(t) = L. t rekurzívan építhető fel. Ha L, akkor legyen t 0 az egyetlen csúcsból álló fa. Ha már felépítettünk egy t k k magasságú fát, melyre Sel(t k ) éppen L legfeljebb k hosszú szavait tartalmazza, akkor t k+1 legyen a következõ. Ha u = u a egy (k+1) hosszú szó (azaz u utolsó betűje a T ), akkor u Pre(u), és így u L miatt van t k -nak egy levele, melyhez tartozó szelektor u. Legyen ennek egy gyermekéhez vezető él címkéje a, így ennek a gyermeknek a szelektora éppen u lesz. Ha k elég nagy, Sel(t k ) = L. Tehát létezik egy kölcsönösen egyértelmű megfeleltetés az r-áris fák és {0, 1,... r 1} prefixképzésre zárt véges részhalmazai között: t Sel(t) {0, 1,..., r 1}. Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 11 / 18 Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 12 / 18

Bináris fák nyelvcsaládja Teknőcgrafika Szabályok L Bin ={L; L {0, 1} L zárt a prefix képzésre} L Bin (bináris fák nyelvcsaládja) rekurzív definíciója: 1. L Bin 2. L 1, L 2 L Bin, akkor {ε} 0L 1 1L 2 L Bin Ugyanis L = megfelel az üres fának. Tegyük fel, hogy minden n-nél kisebb magasságú fát már definiáltunk. Ha egy t n magasságú fa baloldali t 1 illetve jobboldali t 2 részfájának szelektorait az L 1 illetve L 2 nyelv írja le, akkor {ε} 0L 1 1L 2 írja le a t fa szelektorait. Teknőcgrafika: Toll a papír felett, valamilyen irányban áll. F, d az adott pontból az adott irányba d hosszú vonalat húz véghelyzet: ahol a vonal végetér, irány változatlan f, d mint előbb, de nem húz vonalat +, δ δ szöggel balra fordul (óramutató járásával ellentétesen), δ δ szöggel jobbra fordul Ha d és δ rögzített, nem írjuk ki. Pl. d = 1, δ = 90. Kezdőirány: vízszintes, kezdőpont: origó. Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 13 / 18 Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 14 / 18 Teknőcgrafika Képek, mint a Koch nyelv szavai Homomorfizmus h : T 1 T 2 homomorfizmus, ha h(t 1 t n ) = h(t 1 ) h(t n ) minden t 1 t n T 1 szóra. (A konkatenációtartás miatt tehát elég a betûk képét megadni.) Álljon az L Koch nyelv a következő szavakból: ω 0 = F F F F négyzet Legyen a h : (F, f, +. ) (F, f, +. ) homomorfizmus a következő: h(f) = F F+F+FF F F+F, h(f ) = f, h(+) = +, h( ) =. L Koch további szavai (Koch szigetek): ω 1 = h(ω 0 ), ω 2 = h 2 (ω 0 ),... Pl. ω 1 =h(f)h( )h(f)h( )h(f)h( )h(f) = h(f) h(f) h(f) h(f) = F F+F+FF F F+F F F+F+FF F F+F F F+F+FF F F+F F F+F+FF F F+F. Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 15 / 18 Műveletek nyelvek között Unió, metszet, konkatenáció,... L 1 L 2 metszet L 1 L 2 unió L 1 \ L 2 különbség Ezeket, mint halmazműveleteket értelmezzük. L 1 L 2 = {uv u L 1, v L 2 } a két nyelv konkatenációja. L 0 = {ε}, L 1 = L, L k = L k 1 L. L = L i : az L nyelv lezártja. i=0 L + = L i. i=1 Egy u = t 1 t k, t i T, (1 i k) szó megfordítása u 1 = t k t 1. Egy L nyelv megfordítása L 1 = {u 1 u L}. Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 16 / 18

Műveletek nyelvek között Példák Házi feladat Példa: T = {a, b} L 1 = {a n b n n 0} L 2 = {a 2n+1 b n 0} L 3 = {a 2n n 0} 1. L 1 L 2 =? {x (x=a n b n n 0) (x=a 2n+1 b n 1)}, 2. L 1 L 2 =? {ab}, 3. L 1 L 2 =? {a n b n a 2k+1 b n 0 k 0}, 4. L 2 L 3 =?, 5. L 1 L 3 =? {ε}, 6. L 2 =? {a2k1+1 b a 2kn+1 b n, k 1,..., k n 0}. 1. Írjunk programot, mely kirajzolja n = 4-ig a. a Koch szigeteket b. az L = {ω 0, ω 1...} nyelv szavait, ahol: ω 0 = F +F +F+F, ω i+1 = h(ω i ), ahol h(f) = F+f FF +F+FF+Ff +FF f +FF F FF Ff FFF h(f ) = ffffff, h(+) = +, h( ) =. 2. (L 1 L 2 ) 1 = L 1 2 L 1 1. 3. x palindrom x k palindrom (k 1). (x palindrom, ha x = x 1 ) Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 17 / 18 Formális nyelvek (2. gyakorlat) Nyelvek használata... 2008/09 I. félév 18 / 18