1 2. előadás 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 az előadás-sorozat és a hozzá tartozó gyakorlati feladatsor nagyban épít a következő könyvre Elements of the Theory of Computation (Prentice-Hall), 2 nd ed. Szerzők: Harry R. Lewis, Christos H. Papadimitriou (Profs.); illetve a Pannon Egyetemen (Veszprém) használt Digitális számítás elmélete c. előadások és gyakorlatok fóliáira, Ennek szerzői: dr. Heckl István (előadó, tantárgyfelelős) és dr. Hegyháti Máté A szerző köszönetet mond az anyagok felhasználásának engedélyezéséért és a tananyag kidolgozása során kapott sok segítségért A köszönetnyilvánítás a további előadások és gyakorlatok fejlécében nem szerepel külön, de természetesen azokra is vonatkozik 2
Tartalom Halmazok, műveletek Rendezett párok, Descartes-szorzat Relációk, függvények Számosságok, végtelenek Nyelvi alapfogalmak Ábécé, szavak, nyelvek Műveletek szavakkal és nyelvekkel 3
Definíciók (halmaz) Lehetne: axiomatikus felépítésű halmazelmélet (alapfogalmak, definíciók, axiómák, állítások, ) Halmaz: objektumok kollekciója (gyűjteménye) Kollekció = halmaz; Objektumok = elemek, tagok Példák: L = {a, b, c, d}, S = színek halmaza Jelölések b eleme L-nek: b L z nem eleme L-nek: z L Megjegyzések Elemek ismétlődése nem megengedett, pl. {piros, kék, piros} = {piros, kék} Az elemek sorrendje nem lényeges, pl. {1, 3, 9} = {9, 3, 1} = {3, 1, 9} red blue Az elemek maguk is lehetnek halmazok, pl. {2, piros, {kék, d}} pink yellow black 4
Halmazok megadása Összes elemének listázásával Pl. M = {xx, yy, zz} Mint előbb, de használatával Pl. N = {0, 1, 2, 3, } Végtelen halmazoknál azonban ez gyakran nem működik! Tulajdonság megadásával, amely minden elemre érvényes (vagy nem érvényes) Példák: H = {x R x > 2}; K = {x N x nem osztható 2-vel}; A = { magyar településnevek, amelyek tartalmazzák az a betűt }. Általánosan: B = {x A x-re teljesül P tulajdonság} Megj.: Ilyen tulajdonság nem mindig adható meg! Halmaz elemszáma (jelölés): H 5
Definíciók (halmazok egyenlősége, üres halmaz, részhalmaz) Halmazok egyenlősége: Két halmaz egyenlő elemeik ugyanazok Üres halmaz: nincs eleme L = 0; Pl.: L = Ø vagy L = {} De: Ø = {} { {} } Singleton (egy elemű halmaz) L = 1; Pl.: L = {a} Részhalmaz: A részhalmaza B-nek, ha A minden eleme B-nek is eleme Jelölés: A B Tulajdonságok Ø minden halmaznak részhalmaza Minden halmaz részhalmaza saját magának Valódi részhalmaz: Ha A B és A B Jelölés: A B (Vagy egyenlőség áthúzva) Részhalmaz állítás: A B és B A A = B A B 6
Példák, kérdések (elem, részhalmaz) Igazak-e a következők? 5 {5, 6, 7} (Y) 6 {5, 7, 9} (N) {5, 6} {5, 6, {5, 6}} (Y) {5, 6} {5, 6, 7} (N) a {{a}} (N) {a, b} {a, {a, b}, b} (Y) Ø Ø (N) Ø {Ø} (Y) {5, 6} {5, 6, 7} (Y) {6, 8} {5, 6, 7} (N) {a, b} {a, b} (Y) {a, b} {a, b, {a, b}} (Y) a {a, b, {a, b}} (N) Ø Ø (Y) Ø {Ø} (Y) 7
Definíciók (halmaz műveletek) Halmazok uniója: az a halmaz, amely mindkét halmazból az összes elemet tartalmazza; A B = { x x A vagy x B } Példák {piros, zöld} {kék} = {piros, zöld, kék} {1, 3, 9} {3, 5, 7} = {1, 3, 5, 7, 9} Halmazok metszete: az a halmaz, amely a két halmaz közös elemeit tartalmazza; A B = { x x A és x B } Példák {1, 3, 9} {3, 5, 7} = {3} {piros, zöld} {kék} = Ø 8
Definíciók (halmaz műveletek) A és B halmaz különbsége: az a halmaz, amely A minden nem B-beli elemét tartalmazza; A \ B = { x x A és x B } Példák Megj.: A művelet jelölhető jellel is {1, 3, 9} \ {3, 5, 7} = {1, 9} {piros, zöld} \ {kék} = {piros, zöld} Diszjunkt halmazok: nincs közös elemük; A B= Ø Példák A = kutyák halmaza, B = macskák h. A = {1, 4, 33}, B = {2, 6, 12} Komplementer halmaz ( alaphalmaz): A C = { x x eleme az alaphalmaznak, de x A} Példa Megj.: A C jelölhető felülvonással is B = {1, 3, 5}, A = {1, 3}, A B és A C = {5} 9
Tulajdonságok (halmaz műveletek) Az unió és metszet idempotens: A A = A, A A= A kommutatív: A B = B A, A B= B A asszociatív: (A B) C = A (B C), (A B) C = A (B C) Továbbá teljesül(nek) a disztributív tulajdonság: A (B C) = (A B) (A C), A (B C) = (A B) (A C) az abszorpció: A (A B) = A, A (A B) = A a De Morgan szabályok: AI B = AU B, AU B = AI B 10
Példa (De Morgan szabályok) AI B = AU B -t szemléltetjük nyelvi környezetben Alaphalmaz: összes szó valamely ábécé felett, Ʃ* (lásd később) Legyen A a páros hosszú szavak halmaza, B a hárommal osztható hosszú szavak halmaza Ábra: A B, ill. A és B komplementerei, majd ezek uniója, 11
Definíció, példa (halmaz műveletek) Kettőnél több halmazra értelmezett műveletek L: Az a halmaz, amelynek elemei az L-beli halmazok elemei (az összes) Példa L = {{a, b}, {b, c}, {c, d}} L = {a, b} {b, c} {c, d} = {a, b, c, d} L: Az a halmaz, amelynek elemei az L-beli halmazok közös elemei Példa L = {{a, b}, {b, c}, {b, d}} L = {a, b} {b, c} {b, d} = {b} Példa {3, 5} {3, {3, 5}, {7}} ( {{1, 2, 3}, {2, 3, 4}}) = = {3, 5, {3, 5}, {7}} {2, 3} = = {2, 3, 5, {3, 5}, {7}} 12
Definíció (hatványhalmaz) Hatványhalmaz (power set): Egy adott halmaz minden részhalmazának kollekciója Azaz a részhalmazokat elemként tartalmazó halmaz Jelölés: P(A) vagy 2 A Elemszám: P(A) = 2 A (exponenciális!) Pl. egy háromelemű halmaznak 8 elemű a hatványhalmaza Példák P(Ø) = {Ø} = {{}} P({a}) = {Ø, {a}} P({b, c}) = {Ø, {b}, {c}, {b, c}} P({d, e, f}) = {Ø, {d}, {e}, {f}, {d, e}, {d, f}, {e, f}, {d, e, f}} P({1, 2, 3, 4}) = {Ø, {1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}, {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}, {1, 2, 3, 4}} 13
Definíció (particionálás) Partíció:Π(halmaz) az A halmaz egy partíciója, ha Példák Π P(A) Ø Π Π elemei diszjunktak (nincs közös elemük) Π = A Legyen A = {a, b, c, d} Ekkor az {{a, b}}, {c}, {d}} halmaz A egy partíciója De {{b, c}, {c, d}} nem! Legyen A = N Ekkor a páros és a páratlan számok halmazai (együtt) A egy partícióját alkotják Azaz Π = {{E}, {O}} 14
Definíciók (rendezett pár, Descartes-szorzat) Célunk: relációk bevezetése Ehhez párok, ill. n-esek kellenek, rendezve, sorrend számít! Halmaz nem jó, mert pl. {4, 7} = {7, 4} Megoldás (rendezett pár, ordered pair): (a, b) := {a, {a, b}} Itt (a, b) (b, a) (a, b) = (c, d) a = c és b = d Hasonlóan bevezethető a rendezett n-es is A determinisztikus automata pl. egy rendezett 5-ös (lásd később) Legyenek A és B halmazok. Ekkor A és B direkt (vagy Descartes-féle) szorzata (Cartesian product): A B = {(x, y) x A és y B} Azaz az összes olyan rendezett (x, y) pár halmaza, amelyeknél x A és y B Itt Ø A = Ø Hasonlóan, n-szeres Descartes-szorzat: A 1 A 2 A n = { (a 1, a 2,..., a n ) a i A i } Ha A 1 = A 2 = = A n, akkor A 1 A 2 A n = A n Pl. N N = N 2 15
Példák (rendezett pár, Descartes-szorzat) {1, 3} {b, c} = {(1, b), (1, c), (3, b), (3, c)} {1} {1, 2} {1, 2, 3} = {(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3)} P({1, 2}) {1, 2} = {Ø, {1}, {2}, {1, 2}} {1, 2} = {(Ø, 1), (Ø, 2), ({1}, 1), ({1}, 2), ({2}, 1), ({2}, 2), ({1, 2}, 1), ({1, 2}, 2)} Igaz-e, hogy (a, b) {a} {b}? Igen, mert a j. o.: {(a, b)} Igaz-e, hogy (a, b) {(a, b)} {a, b}? Nem, mert a j. o.: {((a, b), a), ((a, b), b)} Igaz-e, hogy {a, b} {b, a} {b}? Nem, mert a j. o.: {(b, b), (a, b)} 16
Definíció, példák (reláció) Bináris reláció (binary relation; A és B halmazokon): A B valamely R részhalmaza (rendezett párok halmaza; (a, b) R) Inverz bin. reláció: R 1 = { (b, a) (a, b) R } n-áris reláció (A 1, A 2,, A n halmazokon): A 1 A 2 A n valamely R részhalmaza (rendezett n-esek halmaza) Példák Bináris reláció: < reláció, pl. N felett, Ekkor A = B = N, R = { (i, j) N 2 i < j } = {(0, 1), (0, 2), (0, 3), (0, 4),..., (1, 2), (1, 3), (1, 4),... }; (a, b) R a < b Ennek inverze: > reláció Ternáris reláció (ábra): R = { (a, A, 1), (a, A, 2), (b, B, 4),... } 17
Definíció (függvény) Intuitív ötlet: Egy halmaz elemét egy másik halmaz egyértelműen meghatározott eleméhez párosítjuk/rendeljük hozzá (pl. konkrét emberek és életkoruk) Pontos definíció: reláció-alapon Függvény (A-ból B-be képezően): Az f A B bin. relációt függvénynek nevezzük, ha a A-hoz egyértelműen olyan pár f-ben, aminek első komponense a Jelölés: f: A B Itt (a, b) f f(a) = b Kapcsolódó fogalmak Értelmezési tartomány (domain): A Elem képe: az a elem képe f szerint f(a) Értékkészlet (range): az É.T. képe Többváltozós függvény: f: A 1 A 2 A n B, f(a 1, a 2,, a n ) = b 18
Példák (függvény) Reláció, amely függvény: R = { (x, y) x C, y S, x város (city) az y államban/országban (state) } R: C Sfüggvény R = { (Budapest, HU), (Szeged, HU), (New York, USA), (Austin, USA),...} (az esetleg azonos nevű városokat vmi módon megkülönböztetjük) R(Budapest) = HU, R(Szeged) = HU,... Reláció, amelyik nem függvény: R 1 = { (y, x) x C, y S, x város az y államban/országban} De R 1 : S Cnem függvény! R 1 = { (HU, Budapest), (HU, Szeged), (USA, New York), (USA, Austin),...} 19
Definíciók (függvények tulajdonságai) Bizonyos függvények különösen érdekesek (itt mindig f: A B) Egy-egyértelmű (injektív; one-to-one, injective) leképezés: Ha a a' f(a) f(a') Példa B minden elemébe legfeljebb egy elem képződik A-ból S = államok halmaza, C = városok halmaza f: S C; f(s) = az s állam fővárosa (lesz sok C-beli elem, amit nem használunk fel) Szürjektív (ráképező; surjective, onto) leképezés: Ha B minden eleme képe valamely A-beli elemnek Azaz B minden elemét felhasználjuk Előző példa folyt. g: C S; f(c) = a c város állama 20
Definíciók, példák (függvények tulajdonságai) Spec. függvények (folyt.) Kölcsönösen egyértelmű hozzárendelés (bijekció): Egy-egyértelmű és szürjektív leképezés Példa Diszjunkt párok a leképezésben, és mindent felhasználunk S = államok halmaza, C = fővárosok halmaza f: S C; f(s) = az s állam fővárosa Milyen típusú leképezések a köv.-ők? h: autótípusok halmaza autómárkák halmaza (szürj.) i: emberek halmaza emberek ujjlenyomatainak halmaza (mutatóujj) (bij.) j: személyig. azonosítók halmaza emberek halmaza (inj.) k: feleségek halmaza férjek halmaza 21
Definíciók, reprezentáció (speciális bináris relációk) Egyes spec. bináris relációk fontosak lesznek számunkra a későbbiekben Tipikusan bizonyos szabályossággal (pl. szimmetria tulajd.) Most csak olyan R bin. relációkat nézünk, amelyekre R A A (A az alaphalmaz) ezek irányított gráfokkal reprezentálhatók Reprezentáció A minden eleme egy csúcs Él vezet a-ból b-be (irányítva) (a, b) R Hurokél megengedett; (a, a) R esetén (Párhuzamos azonos élek nem megengedettek) Példa (ábra) R = {(a, b), (a, d), (b, a), (c, a), (d, c)} a d b c 22
Definíciók, reprezentáció (speciális bináris relációk) (Továbbra is R A A) Reflexív reláció: Ha a A-ra (a, a) R Példa: reláció (pl. A = N vagy A = R) R = {(a, b) a b} Szimmetrikus reláció: Ha (a, b) R (b, a) R Mindkét irányba élek mennek az adott csúcsok között Használható egy db irányítatlan él is Példa: barátság (kölcsönös) R = {(a, b) a és b barátok} a b c a b c a b c f e d f e d 23
Definíciók, reprezentáció (speciális bináris relációk) Antiszimmetrikus reláció: Ha (a, b) R, a b (b, a) R Példa: szülő-gyerek kapcsolat P = emberek halmaza, R = {(a, b) a, b P, a édesapja b -nek} Másik definíció: Ha (a, b) R és (b, a) R a= b (A párhuzamosság nem ilyen!) Megj.: Ez nem a szimm. reláció ellentéte Pl. az = reláció mindkét tulajdonsággal rendelkezik Tranzitív reláció: Ha (a, b), (b, c) R (a, c) R Példa: ős R = {(a, b) a, b P, a őse b -nek} A kapcsolat továbbvihető a d b c 24
Példák (speciális bináris relációk) Milyen tulajdonságokkal rendelkeznek a következő relációk? 0 1 2 3 4 5 Milyen viszonyt akar(hat)tunk bemutatni az 1. ábrán? (Milyen tul. sérül?) Egészítsük ki az ábrát megfelelően! a d a c b d b c 25
Definíciók, reprezentáció (speciális bináris relációk, R A A) Ekvivalencia reláció: R reflexív, szimmetrikus és tranzitív Példa: egyenesek párhuzamossága, szakaszok hossza Rendezési reláció: R reflexív, antiszimmetrikus és tranzitív Példa: reláció (teljes rendezés) Szemléltetés: ekvivalencia reláció R klaszterekből áll, a klaszterek diszjunktak és minden klaszter összefüggő (ezeket ekvivalencia osztályoknak nevezzük) Tétel: Ha R ekvivalencia reláció A felett, akkor az R által indukált ekv. osztályok A egy partícióját adják Megj.: Ezen alapul a minimálautomata konstrukció, lásd később 26
Definíciók (számosság, mennyiségi egybevágóság) Számosság (cardinality): halmaz elemeinek a száma (itt is a megszokott jelölést használjuk: S ) Véges eset: n elemű halmaz számossága n Pl.: {1, 2,, n} = n, {piros, zöld, kék} = 3 Ø számossága 0 Végtelen halmaznál ez problémás, ill. nem elég! Egybevágóság (mennyiségileg; equinumerous): ha két halmaz között létesíthető bijekció Ez a viszony reflexív, szimm. és tranzitív (ekvivalencia), jelölés: ~ Ha S 1 S 2, akkor S 1 és S 2 mennyiségileg nem egybevágók Ezzel már a végtelen számosságot is tudjuk (majd) kezelni 27
Definíciók (számosság, végtelen esetek) Végtelen halmaz: nem véges De: nem minden végtelen halmaz azonos számosságú! Elv (itt is): minden halmazhoz egyértelműen hozzárendelünk egy mérőszámot; úgy, hogy a menny.leg egybevágó halmazok mérőszáma ugyanaz, a nem egybevágóaké pedig különböző legyen Megszámlálhatóan végtelen halmaz: ha H ~ N Azaz: a halmaz elemei listázhatók egy felhasználásával És így mindenki sorra kerül! Nem megszámlálhatóan végtelen halmaz: végtelen, de nem ~ N-nel A P(N) és R végtelen halmazokról tudjuk, ill. igazolható, hogy mennyiségileg nem egybevágók N-nel (számosságuk: 2 N ) Az R-rel mennyiségileg egybevágó halmazok kontinuum számosságúak (Vannak további végtelen számosságok is) 28
Példa (számosság, végtelen esetek) A bijekció létrehozásánál vigyázni kell! Lehetünk ügyetlenek ; de abból, hogy találtunk egy rossz bijekciót, nem következik, hogy nincs jó! De tehát ugyanannyi egész van, mint nemnegatív egész Feladat: Rajzoljuk le Z elemeinek felsorolási logikáját úgy, hogy az elemek növekedően helyezkednek el ( ugrálás )! 29
Példák (számosság) Egy egész szám osztóinak száma véges A páros pozitív egész számok száma megszámlálhatóan végtelen Hasonlóan pl. a 17-tel osztható nemneg. egész számok és a term. számok között is létesíthető bijekció Az egész számok számossága megszámlálhatóan végtelen Lásd még: Áll. 1. (köv. slide) A racionális számok számossága is megszáml.tóan végtelen Lásd: Áll. 2. (köv. slide) Nem üres ábécé felett megalkotható szavak száma: megszámlálhatóan végtelen (lásd később) A számegyenes pontjainak száma nem megszámlálhatóan végtelen Ugyanez érvényes a [0, 1] intervallum pontjainak számára is És a sík pontjaira is Nem üres ábécé felett megalkotható formális nyelvek száma: nem megszámlálhatóan végtelen (lásd később) 30
Állítások (számosság) Állítás 1: Véges sok, megszámlálható számosságú halmaz uniója szintén megszámlálható Biz.: Az elemek ügyes listázásával, pl. három halmazra Állítás 2: Megszámlálható sok, egyenként önmagában megszáml.ható számosságú halmaz uniója szintén megszáml.ható Biz.: Szintén az elemek ügyes listázásával (Ábra: szorzat konstrukció két végtelen halmazra) A B C a 0 a 1 b 0 b 1 c 0 c 1 a 2 b 2 c 2 a 3 b 3 c 3 a 4 b 4 c 4 a 5 (0, 0) (1, 0)... 31
Definíció (reflexív, tranzitív lezárt; closure) Adott az A halmaz felett egy R M M reláció (szemléltetés: irányított gráf). Ekkor R reflexív, tranzitív lezártja a következő (legkisebb jó) reláció: R* = { (a, b) a, b A, és létezik út a-ból b-be R-ben } Példa Egy R gráfhoz megadjuk R*-ot Megj.: Reflexív tulajd. nélkül: az (a, a) párokat kizárjuk a 1 a 4 a 1 a 4 R R* a 2 a 3 a 2 a 3 32
Algoritmus (reflexív, tranzitív lezárt előállítása) Algoritmus fogalma (egyelőre informálisan ): Utasítások sorozata, véges sok lépés után megáll Eredményt ad Első megoldás Hatékonysági elemzés Minden lehetséges utat megvizsgál az eljárás Input méret A = n, i-esek száma n i, egy i-es útjelölt tesztelése max. n lépés Össz. műveletigény (max.): f(n) = n (1 + n + n 2 + + n n ), azaz f O(n n+1 ) Az eljárás exponenciális! (Rossz) 33
Algoritmus (reflexív, tranzitív lezárt előállítása) Jobb megoldás Tripletteket vizsgálunk O(n 3 ), de a módosulások miatt mindegyiket O(n 2 )-szer meg kell nézni Polinomiális, f(n) O(n 5 ), részletek: lásd Elements könyv (34.) Jó megoldás Hatékonysági elemzés A középső index szerint növekedően rendezünk (!), így az új élek nem hoznak olyan módosulást, ami miatt a tripletteket újra kellene vizsgálni Így f(n) O(n 3 ), részletek: lásd Elements könyv (36.) 34
Algoritmus (reflexív, tranzitív lezárt előállítása) Működési példa (2. polinomiális algoritmus) R = {(a 1, a 4 ), {(a 3, a 2 ), {(a 4, a 3 )} A triplettek vizsgálati sorrendje: (a 1, a 1, a 1 ),..., (a 1, a 1, a 4 ), (a 2, a 1, a 1 ),..., (a 2, a 1, a 4 ),..., (a 1, a 2, a 1 ),..., (a 4, a 4, a 4 ) Ha j = 1 és j = 2 (középső index), akkor nincs bővülés Az első bővülés j = 3-nál (a 4, a 3, a 2 )-re jön Az új él (a 4, a 2 ) Végül j = 4-re az (a 1, a 2 ) és (a 1, a 3 ) élekkel bővítünk Utolsó változás: (a 1, a 4, a 3 )-ra Feladat: rajzoljuk le a kapott R* relációt! a 2 a 1 a 4 a 3 35
Definíció, példák (zártság) A tranzitív lezárt koncepció csak egy lehetőség arra, hogy kisebb halmazokból (relációkból) nagyobbakat állítsunk elő Zártság (adott halmaz zártsága egy relációra): Legyen D halmaz, B D, n 0és R D n+1 egy (n+1)-áris reláció. B zárt R-re, ha (b 1, b 2,, b n+1 ) R, b 1, b 2,, b n B b n+1 B. R nem vezet ki B-ből, B zártsági tulajdonsága Ha R függvény, akkor R(b 1,, b n ) = b n+1 Példák N zárt az összeadásra D = Z, B = N, n = 3 (ternáris reláció), R = {..., (0, -1, -1), (0, 0, 0), (0, 1, 1),..., (3, 4, 7),...} Két term. szám összege is az N nem zárt a kivonásra D = Z, B = N, n = 3, R = 36
Nyelvi alapfogalmak Definíciók (ábécé, szó) Ábécé: szimbólumok nem üres, véges halmaza; jelölés: Ʃ (vagy V, ritkábban X) A szimbólumok különböznek egymástól (Esetleg betűcsoport is választható szimbólumnak) Szó (mondat): Ʃ elemeiből képzett sorozat (rendezett k-as), azaz a 1 a k, ahol k 0, és a 1,, a k Ʃ Jelölés: tipikusan ábécé végi kisbetűkkel (pl. u, v, w) Üresszó (null szó): k = 0 eset, jele e (más irodalmakban ε vagy λ) Összes szó halmaza Ʃ felett (benne e is); jelölés: Ʃ* (vagy V*) Ha e-t nem engedjük meg: Ʃ + = Ʃ* {e} (Megj.: Ʃ* megszámlálhatóan végtelen) Szó hossza (Ʃ felett): szimb.ok száma benne, jelölés: w (w szóra) Indukciós definíció is lehetséges, lásd részszó Itt e = 0 Szó i-edik szimbóluma: w(i) 37
Nyelvi alapfogalmak Példák (ábécé, szó) Latin-angol ábécé, E = {a, b, c,, z} Magyar ábécé, H = {a, á, b, c, cs,, zs} Bináris ábécé, B = {0, 1} Decimális ábécé D = {0, 1,, 9} Gyakorló kétbetűs ábécé, G = {a, b} Szavak E felett: (értelmes) angol szavak, pl. elephant Itt elephant(3) = e, elephant(5) = h Valójában (e, l, e, p, h, a, n, t) Szavak B felett: 01, 10, 111, 1001110, Szavak G felett: a, b, ab, bb, baa, aba, abba, baba, Itt a = 1, ab = 2, Összes szó G felett (lexikografikus megadás): G* = {e, a, b, aa, ab, ba, bb, aaa, aab, aba, } Hány darab n hosszú szót tudunk megadni G felett? 38
Nyelvi alapfogalmak Példa és elemzés: egy ábécé (pl. G) feletti összes szót kiíró program Mikor áll le a program? Hány (véges) szót fog kiírni a program? Igaz-e, hogy bármely rögzített hosszú szó (pl. w = 1000) előbb-utóbb kiírásra kerül? Tudunk mondani olyan szót az ábécé felett amelyet nem ír ki a program? Milyen stratégiával lehetne kiíratni az i hosszú szavakat? Milyen rendezést célszerű alkalmazni Ʃ* megadásánál? 39
Nyelvi alapfogalmak Definíciók (szavak egyenlősége, konkatenáció) Szavak egyenlősége: ha betűről-betűre megegyeznek, azaz Ʃ*-beli u = a 1 a m és v = b 1 b n szavak egyenlők m = n és i = 1,, n-re a i = b i Konkatenáció (egymás után írás, összefűzés, láncolás, szorzás ): u és vʃ*-beli szavakra u v Ʃ* (vagy egyszerűen uv) Érvényes: uv = u + v Ismételt konkatenáció, ( hatványozás ), u n : a szó n-szer egymás után írva Indukciós definíció: u n+1 = u n u 1 u Ʃ*-ra u 0 = e Igaz továbbá: xe = ex = x Megj.: a konkatenáció általában nem kommutatív! (azaz általában uv vu) Ugyanakkor asszociatív 40
Nyelvi alapfogalmak Példák (szavak egyenlősége, konkatenáció) Szavak egyenlősége V = {1, 2, +} felett (formális nyelvi értelemben) 1+1 2 A file szó pl. betűről-betűre azonos E és H felett Egyszerű konkatenáció Buda pest = Budapest, beach boy = beachboy, 01 10 = 0110 Ellenőrizzük uv = u + v -t! Konkat. tulajdonságok (nem komm.) G felett abba baba = abbababa babaabba = baba abba De: u + v = v + u Ismételt konkatenáció (do) 2 = dodo, (er) 1 = er Indukciós megadás dodo = (e do) do 41
Nyelvi alapfogalmak Definíciók (prefix, szuffix, részszó, tükörkép) Legyenek x és w Ʃ*-beli szavak Prefix: x prefixe (kezdőszelete) w-nek, ha olyan y Ʃ*, hogy w = xy Valódi prefix: ha x, y e x = k a prefix hossza Szuffix (végződés): hasonlóan értelmezhető Részszó: x részszava w-nek, ha olyan y, z Ʃ*, hogy w = yxz (itt y és z lehet e is) Valódi részszó: hasonlóan értelmezhető Használatos az alszó, kezdő alszó, és befejező alszó megnevezés is Tükörkép (reversal word): szó visszafelé írva Jelölés: w R (vagy w 1 ) Állítás: (uv) R = v R u R Biz.: Lásd Elements könyv (43.), indukcióval 42
Nyelvi alapfogalmak Példák (prefix, szuffix, részszó, tükörkép) E felett roadrunner prefixe road, szuffixe runner abroad-ban road már szuffix broader-ben road részszó Karinthy tréfás példái kis róka: apróka jóllakott elefánt: telefánt nyughatatlan angolna: barangolna züllött medve: elvetemedve vidám hiúz: hihiúz hanyatló értelmű tulok: butulok kövér fóka: pufóka éhes bálna: zabálna öreg boa: óboa igazoltan zsidó sertés: kósertés üvöltő bölény: bömbölény buta márna: szamárna Tükörkép H és E felett (Indul a görög aludni) R = indula görög a ludni (Kitűnő vőt rokonok orrtövön ütik) R = kitü növötrro konokor tővőnűtik (A man a plan a canal Panama) R = amanap lanac a nalp a nam A 43
Nyelvi alapfogalmak Definíció (formális nyelv) Nyelv (vagy: Ʃ feletti nyelv, formális nyelv): Ʃ* tetszőleges L részhalmaza; azaz L Ʃ* Másként: szavak halmaza Ʃ felett Adott formális elem/szó adott nyelvbe való tartozása (elvileg) egyértelműen eldönthető Egy formális nyelv lehet üres, véges vagy végtelen; néhány példa: Üres nyelv: L = Ø Csak az üresszót tartalmazó nyelv: L = {e} (ennek egy eleme van) Alapnyelvek: L = {a} típusúak (az előző is alapnyelv) Ábécényelv: L = Ʃ Véges nyelvek (elemeik felsorolásával megadhatók) Végtelen nyelvek Teljes nyelv: L = Ʃ* (minden lehetséges szót tartalmaz) V.ö. (majd): ábécére alkalmazott konkatenáció 44
Nyelvi alapfogalmak Megadás, megjegyzések (formális nyelv) Nyelvek megadásának lehetőségei Felsorolással (véges eset) Halmaz definícióval Szabályokkal L = {x Ʃ* x-re teljesül P tulajdons.} Generatív nyelvtannal (később tanuljuk) Megjegyzések Egy adott véges Ʃ ábécé feletti összes (lehetséges) nyelv halmaza a Ʃ* összes részhalm.ból alkotott halmaz; vagyis Ʃ* hatványhalmaza. Ʃ* megszáml.óan végtelen, így Ʃ felett kontinuum sok nyelv létezik. ( P(N) = R ) A hagyományos nyelvek (pl. magyar nyelv) nem tekinthetők tiszta formális nyelvnek: a nyelv halmaza nem pontos ; nem véglegesen lezárt, ill. részben szubjektív is; (továbbá ugyanazon szó esetleg többféle módon is értelmezhető) 45
Nyelvi alapfogalmak Példák (formális nyelvek) Alapnyelvek E felett L a = {a}, L b = {b}, L c = {c} stb. Ábécényelv L abc = E = {a, b, c,, z} Véges példanyelv L rev = {reversal, lasrever} Véges nyelv H felett (felsorolás) L H-pl = {alma, ágy, béka, cica, csillag, dió, elefánt, érem} Szabályrdsz. alkalmazása E felett L EN = {egy adott angol magyar szótárban szereplő összes angol szó} Rögzített! (És persze véges) 46
Nyelvi alapfogalmak Példák (formális nyelvek G felett) Véges nyelv G felett (felsorolás) L 1 = {e, a, aa, aab} Véges nyelv G felett (szabállyal) L 2 = {x G* x 7} Végtelen nyelvek G felett (szabállyal) L 3 = {x G* x páratlan}, L 4 = {x G* x prím} L 5 = {e, ab, aabb, aaabbb, } = {a n b n n 0} L 6 = {u {a, b}* # a u = # b u} L 7 = {x G* x prefixe ab} Generatív nyelvtannal történő megadás G 0 = ({S}, {a}, {S as, S λ}, S) G 3 = ({S}, {a, b}, {S asb, S ab}, S) Belátjuk majd, hogy G 0 a csupa a betűből álló szavakat állítja elő, míg G 3 az a n b n alakú szavakat 47
Műveletek nyelvekkel Definíciók (nyelvműveletek) Nyelvek mint halmazok: Boole műveletek (,, \, ) Eml.: halmaz műveletek Adottak tetsz. L 1, L 2 Ʃ* nyelvek. Ekkor értelmezhető a nyelvek (mint halmazok) Uniója és metszete, Különbsége (kétféle módon), Ill. L 1 -nek a Ʃ*-ra vonatkozó komplementere, és ezek szintén Ʃ*-beliek. A jelölések a megszokottak (,, \, ) Egy formális definíció (a többi hasonlóan) L 1 L 2 = {p p L 1 és p L 2 } A komplementer képzésnél az ábécé általában egyértelmű, de figyelni kell (!) Példa: Az L 1 = {e, a, aa, aab} nyelv komplementere más G = {a, b}, mint G' = {a, b, c} felett (írhatóʃ* \ L 1 is) 48
Műveletek nyelvekkel Definíciók, tulajdonságok (nyelvműveletek) Nyelvek mint jelsorozatok: reguláris műveletek (+,, *) A + szintén az unió Nyelvek konkatenációja: Adottak tetsz. L 1, L 2 Ʃ* nyelvek. Ekkor L 1 L 2 = {u v u L 1, v L 2 } a konkatenált nyelv, és ez szintén Ʃ*-beli. A jel elhagyható Egy L 1 L 2 -beli szó nem feltétlenül csak egyféle módon bontható fel L 1 -beli és L 2 -beli elemekre (lásd lent) Általában L 1 L 2 L 2 L 1 Példa: {a, bx}{c, d} = {ac, ad, bxc, bxd}, {c, d}{a, bx} = {ca, da, cbx, dbx} Állítás: L 1 L 2 L 1 L 2 Példa G felett: L 1 = {a, aa}, L 2 = {bb, a} L 1 L 2 = {abb, aa, aabb, aaa} L 3 = {ab, a}, L 4 = {a, ba} L 3 L 4 = {aba, abba, aa}, itt aba = ab a = a ba 49
Műveletek nyelvekkel Definíciók (nyelvműveletek) Nyelv i-edik hatványa: ismételt konkatenáció (lásd előző def.), ill. L i = LL L Itt L 0 = {e}, L 1 = L Kleene-iteráció (Kleene-csillag): L* = {w Σ* w = w 1 w k, k 0, w 1,, w k L} azaz: szó halmaza, ami 0 vagy több L-beli szóból konkatenációval előállítható Alternatív definíció: L* = {e} L LL LLL, illetve azaz: azon jelsorozatok, amelyek feldarabolhatók úgy, h. darab a nyelv mondata legyen (a darabok számára nincs megkötés) Megj.: L* nyelv L lezártja a művelettel (a * műv. a konkatenáció lezárása) Bevezethető L + = L* \ {e} = LL* is Kérdés: Σ*-ot használtuk már. Konzekvens ez a mostani definícióval? L =U =0 i i L 50
Műveletek nyelvekkel Példák (nyelvműveletek) {a, b} {b, c} = {a, b, c} G felett: {a, b} 3 = {aaa, aab, aba, abb, baa, bab, bba, bbb} {a} + = {a, aa, aaa, } {ab}* = {e, ab, abab, ababab, } Ha L = {01, 1, 100}, akkor 110001110011 L*, mert 110001110011 = 1 100 01 1 100 1 1. Hasonlóan, 1011001 L*, mert felírható 1 01 100 1-ként. Azonban 110001110-nél ez már nem megy Érdekesség: Ø* = {e}, mert def. szerint az egyetlen képezhető w 1 w k, k 0 szó az e Másként: Ø* = {e} Ø ØØ = {e} Hasonlóan igaz tetsz. nyelvre LØ = ØL = Ø is 51
Műveletek nyelvekkel Tulajdonságok (nyelvműveletek) Állítás: Legyen L = {w {0, 1}* w-ben a 0-k és 1-esek száma különböző}. Ekkor L* = {0, 1}* (= B*). (Lemma: tetsz. L 1 és L 2 nyelvekre, ha L 1 L 2, akkor L 1 * L 2 *, a Kleene-csillag művelet definíciójából.) Bizonyítás {0, 1} L, hiszen 0 -ban és 1 -ben is különböző az a 0-k és 1-esek száma. Így {0, 1}* L*, a lemma szerint. L* B* = {0, 1}* viszont a definícióból következik. Így L* = {0, 1}*, hiszen mindkét irányú tartalmazás teljesül. 52
Ajánlott irodalom Harry R. Lewis, Christos H. Papadimitriou: Elements of the Theory of Computation (2 nd ed.), Prentice-Hall, Upper Saddle River, 1998 Fülöp Zoltán: Formális nyelvek és szintaktikus elemzésük, Polygon, Szeged, 2001 Dömösi Pál és társai: Formális nyelvek és automaták, Elektronikus jegyzet, 2011 Bach Iván: Formális nyelvek, Typotex kiadó, Budapest, 2002 Alan P. Parkes: A Concise Introduction to Languages and Machines, Springer, London, 2008 53