ALGORITMUS ELMÉLET 2016/2017 I. félév,

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

Download "ALGORITMUS ELMÉLET 2016/2017 I. félév,"

Átírás

1 ALGORITMUS ELMÉLET 2016/2017 I. félév, (el½oadás vázlat) Prof. Dr. Galántai Aurél Óbudai Egyetem NIK Alkalmazott Informatikai Intézet Budapest

2 2

3 Tartalomjegyzék 1. Bevezetés 5 2. Matematikai alapfogalmak Jelölések Relációk és függvények Függvények aszimptotikus jellemzése Gráfok Halmazok számossága Formális nyelvek Nyelvek és szavak Generatív nyelvtanok Generatív nyelvtanok osztályozása Algoritmusok, kiszámítható függvények és döntési problémák Algoritmusok elemzése Az oszd meg és uralkodj elv A mester tétel Keresési, rendezési és kiválasztási feladatok Keresési feladatok Rendezési feladatok Alsó becslés a rendezések bonyolultságára Kiválasztási feladatok Aritmetikai algoritmusok Szorzás Osztás Mátrixalgoritmusok Mátrixok és vektorok szorzása Strassen mátrix szorzó algoritmusa Megjegyzések a gyors mátrix szorzásokról Gyors Fourier-transzformáció A Cooley-Tukey féle radix-2 algoritmus További algoritmusok Turing gépek Turing gépek programozása A Turing gép kiterjesztései TARTALOMJEGYZÉK 3

4 6.3. Számítási modellek ekvivalenciája Univerzális Turing gépek Algoritmikus eldönthet½oség, kiszámíthatóság és bonyolultság Nyelvek felismerése és eldöntése Turing gépekkel Eldönthetetlen problémák Néhány további eldönthetetlen probléma Bonyolultságelméleti eredmények és fogalmak Számítási bonyolultság Az NP osztály és NP-teljesség Nem-determinisztikus Turing-gépek és az NP osztály NP-teljesség Irodalom TARTALOMJEGYZÉK

5 1. fejezet Bevezetés "Amit hallok, elfelejtem. Amit látok, emlékezem. Amit csinálok, megértem." Konfuciusz Mi az algoritmus elmélet? Ennek a kérdésnek a pontos megválaszolása - más tudomány területekhez hasonlóan - nehéz feladat, már csak az informatika rohamos mérték½u fejl½odése miatt is. Ide soroljuk az algoritmusok és az általuk megoldott problémák elemzését, algoritmusok hatékonyság vizsgálatát és bonyolultság elméletét és még sok más területet (lásd pl. ACM Computing Classi cations System, Wikipédia). Az el½oadás f½oként számítási modellekkel, algoritmusok elemzésével (analízisével) és bonyolultságelmélettel foglalkozik. A bonyolultságelmélet számítógép korszak (von Neumann) el½otti el½ozményeit a matematikai logika fejl½odésében kereshetjük, nevezetesen a "bizonyítás" és a "kiszámítható függvény" fogalmának formalizálásával kapcsolatos kutatásokban. Gödel 1930-ban igazolta, hogy egy (aritmetikai, vagy aritmetizálható) logikai rendszeren belül megfogalmazhatók olyan állítások, amelyek igaz, vagy hamis volta (a rendszeren belül) nem igazolható (Gödel, K.: Über formal unentscheidbare Sätze der Principa Mathematica und verwandtere Systeme I ( On formally undecidable propositions of Principia Mathematica and related systems I ), Monatshefte für Mathematik und Physik, 38, 1931, ). Ebben a munkájában Gödel de niálta a (primitív) rekurzív függvény fogalmát is, amely alapvet½o a kiszámítható függvény fogalmának vizsgálatában. Turing 1936-ban bevezette a Turing gép fogalmát, amely mind a kiszámíthatóság-, mind pedig az algoritmuselméletben alapvet½o fontosságú eszköznek bizonyult. (Turing, A.M.: On computable numbers with an application to the Entscheidungsproblem, Proc. London Math. Soc., ser. 2, 42, , ). BEVEZETÉS 5

6 Kurt Gödel ( ) Alan Turing ( ) Az 1936-os évben két másik fontos fogalmat is bevezettek. Alonzo Church de niálta a - kalkulust 1 (A. Church: An unsolvable problem in elementary number theory, American Journal of Mathematics, 58, 1936, ). Church híres tézise azt a sejtést mondja ki, hogy minden számítás az általa megadott rendszerben formalizálható. Ugyancsak 1936-ban S.C Kleene bevezette a -rekurzív függvényeket (S.C. Kleene: General recursive functions of natural numbers, Mathematische Annalen, 112, 1936, ). Alonzo Church ( ) S. C. Kleene ( ) Érdemes megjegyezni, hogy a LISP nyelvet a -kalkulusból fejlesztették ki. Az imperatív programnyelvek (pl. Pascal, C) pedig a -rekurzív függvények implementációinak tekinthet½ok. A rekurzív függvények elméletéhez Péter Rózsa (1936, k-szoros rekurzív függvények) és Kalmár László (1943, elemi függvények) is jelent½osen hozzájárult. A Neumann-elv½u számítógépek elterjedésével kezd½odött a számítástudomány kialakulása is. A bonyolultság elmélet kifejl½odésének f½obb kezdeti lépései S.A. Cook szerint (ACM Turing Award, 1982): 1 A -kalkulusban a függvények jelölése: x 1 ; : : : ; x n [: : :] azt a függvényt jelöli, amelynek változói rendre x 1, x 2,..., x n és értéke [: : :]. 6 BEVEZETÉS

7 - Turing (1936): Turing gép, az e ektíven (algoritmikusan) kiszámítható függvény fogalma, kielégithet½oségi probléma, (Church-)Turing hipotézis: Bármely függvény, amely egy jól de niált eljárással kiszámítható, kiszámítható egy Turing géppel is. - Rabin (1959, 1960): Mit jelent az, hogy f-et nehezebb kiszámítani mint g-t? - Hartmanis, Stearns (1965): bonyolultság mértéke, hierarchia tételek. - Cobham (1965): függvények bels½o számítási nehézsége, gépfüggetlen elmélet. - Karp (1972): P osztály (tractability vagy feasibility). - Aho, Ullman, Hopcroft (1974): RAM gép. A bonyolultságelmélet témakörét M. Rabin az 1976-os ACM Turing díj átvételekor tartott el½oadásában a következ½okben foglalta össze. Legyenek adottak a következ½ok: - P probléma osztály, - I 2 P egyedi probléma, - jij a probléma mérete, - AL a P problémát (problémaosztályt) megoldó algoritmus. Az I 2 P problémát megoldva az AL algoritmus egy S I sorozatot hoz létre. Az S I sorozathoz hozzárendelünk bizonyos mértékeket (költséget). A legfontosabb mértékek: (1) Az S I hossza (számítási id½o) (2) Az S I mélysége (a párhuzamosítás mértéke, párhuzamosítás számítási ideje) (3) A memória igény (4) S I teljes "lépésszáma" helyett bizonyos kitüntetett aritmetikai m½uveletek, összehasonlítások, memóriam½uveletek, stb. száma) (5) Az algoritmus hardver implementálásához szükséges áramkör (Boole áramkör) bonyolultsága (kombinatorikus bonyolultság). Tegyük fel, hogy van egy mértékünk az S I számításokhoz. Fontosabb bonyolultsági mértékek: Legrosszabb eset bonyolultság: F AL (n) = max f (S I ) j I 2 P; jij = ng : Átlagos bonyolultság: adott egy p valószín½uség eloszlás minden egyes P n = fi j I 2 P; jij = ng feladat halmazon. Ekkor a mérték: M AL (n) = X I2P n p (I) (S I ) : Algoritmusok analízise alatt azt értjük, hogy adott jij méretfüggvény és (S I ) mérték esetén meghatározzuk a P -t megoldó AL algoritmus F AL (n) legrosszabb eset és M AL (n) átlagos bonyolultságát. Rabin szerint a bonyolultságelmélet legfontosabb kérdései (1976-ban) a következ½ok: 1. Hatékony algoritmusok keresése P megoldására. 2. A P feladatosztály bels½o bonyolultságára alsó becslések keresése. 3. P egzakt megoldásának keresése (már ha van). 4. Közelít½o algoritmusok fejlesztése. 5. A legrosszabb bels½o bonyolultság vizsgálata. BEVEZETÉS 7

8 6. A P átlagos bonyolultságának vizsgálata. 7. Szekvenciális algoritmusok fejlesztése P megoldására. 8. Párhuzamos algoritmusok fejlesztése P megoldására. 9. Szoftver algoritmusok fejlesztése. 10. Hardveren implementált algoritmusok. 11. Megoldás valószín½uségi (véletlen) algoritmusokkal. A bonyolultságelmélet mára a számítástudomány központi fontosságú területévé vált. A Rabin által felvázolt kérdések ma is intenzív vizsgálatok tárgyát képezik. Az el½oadás egy bevezetés az alapvet½o fogalmakba és eredményekbe. 8 BEVEZETÉS

9 2. fejezet Matematikai alapfogalmak 2.1. Jelölések A halmazok (naív) fogalmát és a velük végezhet½o m½uveleteket ismertnek tételezzük fel. A következ½o jelöléseket használjuk: N - természetes számok halmaza N 0 - nemnegatív egész számok halmaza (N 0 = N [ f0g) Z - egész számok halmaza n p Q - racionális számok halmaza (Q = o) j p; q 2 Z, q 6= 0 q R - valós számok halmaza C - komplex számok halmaza (C = fa + bi j a; b 2 Rg, i = p 1 ) ; - üres halmaz - valódi részhalmaz - részhalmaz jaj - az A halmaz számossága (elemeinek száma) De níció: Egy A 6= ; halmaz hatványhalmazán a 2 A = fx j X Ag halmazrendszert értjük. Értelemszer½uen ;; A 2 2 A. Szokás 2 A helyett a P (A) (power set of A) jelölést is használni. Állítás: Ha jaj = n, akkor 2 A = 2 n. Bizonyítás: Az n elem½u halmaz k elem½u különböz½o részhalmazainak száma k n P és n n k=0 k = 2 n. De níció: A 1 ; A 2 ; : : : ; A n tetsz½oleges halmazok direkt, vagy Descartes féle szorzatán az A 1 A 2 : : : A n = f(a 1 ; : : : ; a n ) j a i 2 A i, i = 1; : : : ; ng halmazt értjük. A direkt szorzat elemei rendezett elem n-esek. A direkt szorzat rövid jelölése: n i=1a i. Ha A 1 = A 2 = = A n = A, akkor használjuk az A n := n i=1a jelölést is. Ílymódon például R n és C n jelöli a valós, illetve komplex elem½u n dimenziós vektorok halmazát. MATEMATIKAI ALAPFOGALMAK 9

10 2.2. Relációk és függvények De níció: Legyenek A és B tetsz½oleges halmazok. Tetsz½oleges S AB részhalmazt (bináris) relációnak nevezünk. Az a 2 A és b 2 B elemek S relációban állnak egymással (jelölés asb) akkor és csak akkor, ha (a; b) 2 S. A de níciót rövidebben is megadhatjuk: asb () (a; b) 2 S. De níció: Az S A B reláció értelmezési tartománya: D S = fa 2 A j 9b 2 B : (a; b) 2 Sg : De níció: Az S A B reláció értékkészlete: R S = fb 2 B j 9a 2 A : (a; b) 2 Sg : De níció: Az S A B reláció értéke (metszete) egy adott a 2 D S helyen: S (a) = fb 2 B j (a; b) 2 Sg : De níció: Az S A B relációt függvénynek nevezzük, ha js (a)j = 1 (8a 2 D S ): A függvényeket S : A! B formában is megadhatjuk. De níció: Egy S függvényrelációt teljes függvénynek nevezünk, ha D S = A és parciális függvénynek, ha D S A és D S 6= A. Két egyszer½u példa relációra: S 1 = f(0; 0) ; (1; 1) ; (2; 4) ; (3; 9) ; (4; 16)g és S 2 = f(small,short) ; (medium,middle) ; (medium,average) ; (large,tall)g: A de níció alapján D S1 = f0; 1; 2; 3; 4g, R S1 = f0; 1; 4; 9; 16g és S 1 (i) = fi 2 g (i 2 D S1 ). Az S 1 reláció függvény. Az S 2 reláció esetén D S2 = fsmall,medium,largeg ; R S2 = fshort,middle,average,tallg: Minthogy S 2 (medium) = fmiddle,averageg, az S 2 reláció nem függvény. Függvényreláció esetén S (a) vagy üres, vagy egyelem½u halmaz. Például az S 1 = x; x 2 j x 2 R R R reláció (teljes) függvény, mert D S1 = R. De az S 2 = x; p x j x 2 R; x 0 R R reláció csak parciális függvény, mert S 2 (x) = ; minden x < 0 számra. Tetsz½oleges S A B relációt felfoghatunk egy S : A! 2 B halmazfüggvénynek is, ugyanis minden a 2 D S esetén S (a) B, azaz S (a) 2 2 B. 10 MATEMATIKAI ALAPFOGALMAK

11 Az f : A! B fügvényt véges függvénynek nevezzük, ha A és B véges halmaz. Az f : f0; 1g n! f0; 1g m tipusú véges függvényeket bináris függvényeknek nevezzük. De níció: Az f : f0; 1g n! f0; 1g függvényt Boole függvénynek nevezzük. A de níció másképpen fogalmazva azt jelenti, hogy f (x 1 ; x 2 ; : : : ; x n ) 2 f0; 1g (x i 2 f0; 1g ; i = 1; : : : ; n): Az alábbi igazság táblázatok megadnak négy alapvet½o Boole függvényt: x y x ^ y x y x _ y x y x y x x Ha a 0 értékhez a hamis, az 1 értékhez pedig az igaz logikai értékeket rendeljük, akkor a fenti táblázatok rendre a logikai és (AND, x^y), vagy (OR, x_y), kizáró vagy (XOR, xy) és negáció (NOT, x) függvényeket adják meg. A negáció függvényt szokás még a :x módon is jelölni. Legyen x; y 2 f0; 1g két logikai változó (vagy állítás)! Ekkor x = 1 x; x ^ y = 1, ha x = y = 1 0, egyébként x _ y = 0, ha x = y = 0 1, egyébként ; x y = 1, ha x + y = 1 0, egyébként : Az XOR felírható még az x y x + y (mod 2) formában is. De níció: A logikai változók :, ^, _ jelekkel felírt kifejezéseit Boole-polinomoknak nevezzük. Állítás: Minden Boole-függvény kifejezhet½o Boole-polinomokkal Függvények aszimptotikus jellemzése A következ½okben aszimptotikus nagyságrendi relációkat de niálunk. De níció: f (n) = O (g (n)) ( f (n) 2 O (g (n))), ha létezik c; n 0 > 0 konstans, hogy jf (n)j c jg (n)j teljesül minden n n 0 számra. FÜGGVÉNYEK ASZIMPTOTIKUS JELLEMZÉSE 11

12 y x f(x)=o(g(x)) aszimptotika Példa: Megmutatjuk, hogy log n = O (n). Teljes indukcióval igazoljuk: n 1 ) log n n. n = 1 esetén: log 1 = 0 1. Tegyük fel, hogy n 1-re igaz az állítás: log n n. Ekkor log (n + 1) log (2n) = log 2 + log n 1 + n. Példa: Megmutatjuk, hogy 2 n+1 = O (3 n =n). Teljes indukcióval igazoljuk: n 7 ) 2 n+1 3 n =n. n = 7 esetén: 2 8 = =7 312:428. Tegyük fel, hogy n 7 és 2 n+1 3 n =n. Ekkor f(x) c*g(x) 2 n+2 = 2 2 n+1 2 3n n = 2 (n + 1) 3n 3 n+1 n + 1 3n+1 n + 1 ; mert 2(n+1) 3n < 1. Az O (nagy ordó) relációval a következ½o m½uveleteket végezhetjük. Állítás: Ha f 1 (n) 2 O (g 1 (n)) és f 2 2 O (g 2 (n)), akkor f 1 (n)+f 2 (n) = O (jg 1 (n)j + jg 2 (n)j), illetve f 1 (n) + f 2 (n) = O (max fjg 1 (n)j ; jg 2 (n)jg). Bizonyítás: Tegyük fel, hogy n n 0 esetén jf 1 (n)j c 1 jg 1 (n)j és jf 2 (n)j c 2 jg 2 (n)j. Ekkor jf 1 (n) + f 2 (n)j jf 1 (n)j + jf 2 (n)j (c 1 + c 2 ) max fjg 1 (n)j ; jg 2 (n)jg : Állítás: Ha f 1 (n) 2 O (g 1 (n)) és f 2 2 O (g 2 (n)), akkor f 1 (n) f 2 (n) = O (g 1 (n) g 2 (n)). Állítás: Ha f (n) 2 O (g (n)), akkor cf (n) 2 O (g (n)). További példák: f (x) = x 4 3x 3 + 5x 1973 = O (x 4 ). (n + 1) 2 = n 2 + O (n). f (n) = 4 log n 3 (log n) 2 + n 2 = O (n 2 ) : 12 MATEMATIKAI ALAPFOGALMAK

13 y Az f (n) = O (1) azt jelöli, hogy f (n) felülr½ol korlátos. De níció: f (n) = (g (n)) ( f (n) 2 (g (n))), ha létezik c; n 0 > 0 konstans, hogy jf (n)j c jg (n)j teljesül minden n n 0 számra x f(x)=(g(x)) aszimptotika f(x) c*g(x) Példa: (1=2) n 2 5n = (n 2 ), mert n2 5n =n 2 = n 4 ; n 20. I(g) g nél gyorsabban növő függvények O(g). g g vel azonosan növő függvények g nél lassabban növő függvények A O (g) és (g) halmazok megjelenítése De níció: f (n) = o (g (n)) ( f (n) 2 o (g (n))), ha g (n) csak véges sok helyen nulla és f (n) lim n!1 g (n) = 0: FÜGGVÉNYEK ASZIMPTOTIKUS JELLEMZÉSE 13

14 y sqrt(x) log(x) log(x)/sqrt(x) f(x)=o(g(x)) aszimptotika x Példák: log n = o (n), n log n = o (n 2 ), de n log n = O (n 2 ) és n log n = O (n 3 ). Melyik becslés jobb? 2n 2 = O (n 2 ), de 2n 2 6= o (n 2 ) Megjegyzés: Ha f = o (g), akkor egyúttal f = O (g) is teljesül. De níció: f (n) g (n), ha f (n) lim n!1 g (n) = 1: Példa: p n + log n p n Gráfok De níció: A gráf pontokból és a pontokat összeköt½o vonalakból álló alakzat. A gráf pontjait szögpontoknak, vagy csúcsoknak nevezzük. A gráf két szögpontját összeköt½o olyan vonalat, amely nem megy át más szögponton, élnek nevezzük. A szögpontok halmazát V (vertex), az élek halmazát E (edge) jelöli. A G gráfot a G = (V; E) pár adja meg. Egy e 2 E élt a rendezetlen [u; v] pár ad meg, ahol u; v 2 V. Az u és v csúcsok az e él végpontjai. Az [u; u] 2 E élt huroknak nevezzük. Az e; e 0 2 E éleket többszörös éleknek nevezzük, ha ugyanazt a két pontot kötik össze, azaz e = [u; v] és e 0 = [u; v]. 14 MATEMATIKAI ALAPFOGALMAK

15 A hurkot és többszös éleket nem tartalmazó gráfokat egyszer½u gráfoknak nevezzük egyébként pedig multigráfnak. De níció: Az u 2 V csúcs (u) fokán az u csúcsot tartalmazó élek számát érjük. Ha (u) = 0, akkor az u csúcsot izoláltnak nevezzük. De níció: A G gráf üres, ha E = ;. Teljes a gráf, ha minden szögpontpár éllel van összekötve. De níció: Az u; v 2 V csúcsokat összeköt½o n hosszúságú vonalnak nevezzük az egymáshoz csatlakozó f[v i 1 ; v i ]g n i=1 élek sorozatát, ha v 0 = u és v n = v. A vonal zárt, ha v 0 = v n. A vonalat útnak nevezzük, ha a v 0 ; v 1 ; : : : ; v n csúcsok a v 0 = v n lehet½oség kivételével egymástól különböznek. A zárt utat körnek nevezzük. De níció: A gráf összefügg½o, ha bármely két szögpontját út köti össze. Következmény: Ha egy gráf nem összefügg½o, akkor van legalább egy olyan szögpontja, amelyb½ol nem vezet út az összes többi szögpontba. De níció: Azok a szögpontok, amelyek egy adott szögpontból úttal elérhet½ok, a hozzájuk illeszked½o élekkel együtt a gráf egy összefügg½o komponensét alkotják. De níció: Az olyan összefügg½o gráfot, amelyben nincsen kör, fának nevezzük. Ha a fának n csúcsa van, akkor pontosan n 1 éle van. De níció: A G gráfot cimkézettnek nevezzük, ha az éleihez adatokat rendelünk. Ha minden e éléhez egy w (e) 0 számot rendelünk, akkor súlyozott gráfról beszélünk. De níció: A G gráfot végesnek nevezzük, ha V és E véges halmazok. De níció: A G s = (V s ; E s ) gráf a G = (V; E) gráf részgráfja, ha V s V és E s E. A A E D B C D B C A B C B 3 4 A E 3 D E F C 6 D Irányítatlan gráfok De níció: A G = (V; E) gráfot irányítottnak vagy digráfnak (directed graph) nevezzük, ha minden élét irányítjuk. GRÁFOK 15

16 Ekkor E rendezett párok halmaza. Az e = [u; v] 2 E élnek u a kezd½opontja és v a végpontja. Egy u 2 V csúcspont be (u) bemen½o foka, vagy be-foka az u szögpontban végz½od½o élek száma. Az u csúcspont ki (u) kimen½o foka, vagy ki-foka az u pontból induló élek száma. Az u 2 V csúcspontot forrásnak nevezzük, ha ki (u) > 0, de be (u) = 0. Az u 2 V csúcspont nyel½o, ha ki (u) = 0, de be (u) > 0. Az irányított vonal, út és kör de níciója hasonló az eredeti defínícióhoz azzal az eltéréssel, hogy az út (és a kör) esetén az élek irányítása meg kell, hogy egyezzen a vonal irányításával. Az v csúcs elérhet½o az u csúcsból, ha létezik u-ból induló és v-ben végz½od½o irányított út. De níció: A G = (V; E) irányított gráf er½osen összefügg½o, ha bármely u; v 2 V csúcsot irányított él köt össze. De níció: A G = (V; E) irányított gráf aciklikus, ha irányított kört nem tartalmaz. A D B C Irányított gráf A gráfok és relációk szoros kapcsolatban állnak egymással: 1. Legyen G = (V; E) irányított gráf. Ez megfeleltethet½o egy R V V relációnak: R = f(u; v) j e = [u; v] 2 Eg : 2. Legyen R A B reláció. Ez megfeleltethet½o egy (V; E) gráfnak: V = A [ B; E = fe = [u; v] j (u; v) 2 Rg : A logikai áramkörök aciklikus irányított gráfoknak feleltethet½ok meg. Az alábbi két ábra ilyen logikai áramköröket mutat be. 16 MATEMATIKAI ALAPFOGALMAK

17 2 v 8 1 v 5 1 v o 6 v 7 2 v 3 v 4 o v 4 1 v 5 v 1 v 2 v 1 v 2 v Halmazok számossága Egy A halmaz számosságán a halmaz elemeinek jaj-val jelölt "számát" értjük. Ha A elemeinek száma véges, akkor jaj egy meghatározott egész számot, az elemek tényleges számát jelenti. Ha azonban A elemeinek száma végtelen, akkor jaj jelentését egy osztályozás segítségével jellemezzük. De níció: Két A és B halmazt azonos, vagy egyenl½o számosságúnak nevezünk ( jaj = jbj), ha elemeik között kölcsönösen egyértelm½u megfeleltetés létesíthet½o. Az jaj = jbj egyenl½o számosság összefüggés egy ekvivalencia reláció, amely a halmazok egy természetes osztályozását indukálja. Az azonos számosságú halmazokat azonos osztályba soroljuk. Ezek jellemz½oje hogy az azonos osztályhoz tartozó halmazok elemszáma azonos, míg a különböz½o osztályokhoz tartozó halmazok elemszáma különböz½o. A halmaz számossága ebben az értelemben annak az osztálynak a megjelölése, amelyhez tartozik. Jegyezzük meg, hogy a most bevezetett számosság fogalom nincs ellentmondásban azzal, hogy véges elemszámú halmazok számossága elemeik száma. Az egyenl½o számosság reláció ugyanis a véges halmazokat az n = 0; 1; 2; : : : elem½u halmazok osztályaiba sorolja és ezeket az osztályokat az elemek tényleges véges számával tudjuk azonosítani. De níció: jaj jbj, ha van olyan C B részhalmaz, amelyre jaj = jcj. Könnyen belátható, hogy A B esetén jaj jbj. Fennállnak a következ½o relációk: a) jaj jbj ^ jbj jcj ) jaj jcj; b) jaj jbj ^ jbj jaj ) jaj = jbj. Cantor igazolta, hogy bármely két halmaz számossága nagyságrendi viszonyba állítható. A legkisebb végtelen számosság a természetes számok N 0 -al (@=alef) jelölt számossága. De níció: Egy A halmazt megszámlálható számosságúnak nevezünk, ha számossága a természetes számok N halmazának számosságával egyenl½o. Véges sok véges vagy megszámlálható halmaz uniója is megszámlálható. Megszámlálható halmazok végtelen részhalmazai is megszámlálhatók. HALMAZOK SZÁMOSSÁGA 17

18 Ennek megfelel½oen a természetes számok összes végtelen részhalmazának számossága megegyezik N számosságával. Pl. az összes páros természetes számok halmaza felírható az fn = 2k j k = 1; 2; : : :g alakban, ahol a k! 2k leképezés kölcsönösen egyértelm½u megfeleltetést hoz létre a két halmaz között. Könnyen igazolható, hogy az N N 0 Z Q valódi tartalmazás ellenére ezen halmazok számossága azonos: jnj = jn 0 j = jzj = jqj 0. A ( 1; 1) R részhalmaz számossága ugyancsak megegyezik R számosságával: az x! x 1 jxj leképezés kölcsönösen egyértelm½u megfeleltetést létesít a két halmaz között. A fenti példák azt mutatják, hogy végtelen halmazok valódi végtelen részhalmazainak megegyezhet a számossága a tartalmazó halmaz számosságával. Ez a tulajdonság a végtelen halmazok egyik jellemz½o sajátossága, amely nem igaz véges halmazok esetére. De níció: jaj < jbj, ha jaj jbj és jaj 6= jbj. A valós számok R halmazát kontinuum számosságúnak nevezzük, amelyre fennáll, hogy jrj 0. A valós számok halmazának számossága nem megszámlálhatóan végtelen. Tétel (Cantor): jxj < 2 X. Az N összes véges részhalmazának 2 N hatványhalmazára tehát fennáll, hogy 2 N > jnj. A 2 N halmaz 1 -el jelöljük. A Cantortól származó kontinuum hipotézis azt mondja ki, hogy nincs olyan nem megszámlálhatóan végtelen A halmaz, amelynek 0 és jrj között van. A hipotézist az jrj = 2 N alakban is meg lehet adni. Gödel 1938-ban igazolta, hogy a kontinuum hipotézist a Zermelo-Fraenkel féle (ZF) axiómarendszerben nem lehet megcáfolni. Paul Cohen (1934-) ban azt bizonyította, hogy a kontinuum hipotézist igazolni sem lehet a ZF axiómarendszerben. Ennek következtében a probléma eldönthetetlen a ZF axiómarendszerben. A megszámlálható (felsorolható) halmaz fogalmának különösen fontos szerepe van az algoritmuselméleti vizsgálatokban. A következ½okben ennek egy fontos vonatkozását próbáljuk kiemelni. Egy halmazt felsorolhatónak (megszámlálhatónak) nevezzük, ha a tagjai felsorolhatók a következ½o értelemben: elhelyezhet½ok egy listában, amelynek van els½o, második, stb. tagja és a halmaz minden eleme el½obb vagy utóbb felt½unik a listán. A nulla elemmel rendelkez½o ; üres halmazt ebben az értelemben felsorolhatónak tekintjük. A halmaz elemeit felsoroló lista véges vagy végtelen. Egy végtelen halmazt, amelynek elemei felsorolhatók felsorolhatóan (vagy megszámlálhatóan) végtelennek nevezzük. A természetes számok N halmaza felsorolható. Egy lehetséges felsorolása: 1; 2; 3; : : : ; n; n + 1; : : :. Nem fogadható el felsorolásként például az 1; 3; 5; 7; : : : ; 2; 4; 6; : : : lista, amely els½obb felsorolja a páratlan, majd a páros számokat. A megkövetelt felsorolásban ugyanis a halmaz minden elemének fel kell t½unnie valamilyen n-edik elemként, ahol n véges. Példa: Az N 2 = N N halmaz felsorolható. A halmaz (i; j) alakú számpárokból (i; n 2 N) áll. A halmaz elemeinek egy lehetséges felsorolása a következ½o: (1; 1) ; (1; 2) ; (2; 1) ; (1; 3) ; (2; 2) ; (3; 1) ; (1; 4) ; (2; 3) ; (3; 2) ; (4; 1) ; : : : 18 MATEMATIKAI ALAPFOGALMAK

19 Itt a felsorolás (rendezés) elve az, hogy (i; j) párokat egy mindkét irányban végtelen mátrixba rendezzük (i=sorindex, j=oszlopindex), majd a ferde átlók mentén felsoroljuk az ábrán jelzett módon: (1,1) (1,2) (1,3) (1,4) (1,5)... (2,1) (2,2) (2,3) (2,4) (2,5)... (3,1) (3,2) (3,3) (3,4) (3,5)... (4,1) (4,2) (4,3) (4,4) (4,5)... (5,1) (5,2) (5,3) (5,4) (5,5) Az (i; j) párok felsorolása Vegyük észre, hogy a ferde átlókban szerepl½o elempárok összege konstans: 2 az els½o átlóban, 3 a második átlóban, 4 a harmadik átlóban, és így tovább. A felépítésb½ol világos, hogy bármely kiválasztott (m; n) pár a felsorolásban szerepelni fog j (m; n)-edik tagként. Az i-edik ferde átló elemeinek összege i + 1, elemeinek száma pedig i. Az (m; n) pár elemeinek összege m + n, ami az elemet az (m + n 1)-edik átlóba sorolja. Az els½o m + n 2 átló elemeinek száma: (m + n 2) = (m + n 2) (m + n 1) : 2 Az (m; n) pár a saját átlójában az m-edik elem lesz. Tehát az (m; n) pár sorszáma a fenti felsorolásban: j (m; n) = (m + n 2) (m + n 1) 2 + m = m2 + 2mn + n 2 m 3n + 2 : 2 Állítás: Ha az A és B halmazok felsorolhatók (megszámlálhatók), akkor A B is felsorolható (megszámlálható). Bizonyítás: A példa alapján eljárva az A és B halmaz elemeit el½oször külön-külön felsoroljuk: a 1 ; a 2 ; : : : ; a m ; : : :, illetve b 1 ; b 2 ; : : : ; b n ; : : : Ezután az (a i ; b j ) elempárokat az (i; j) indexek alapján sorbarendezzük az el½obb látott módon. Az állítás alapján könnyen beláthatjuk, hogy N k is felsorolható (megszámlálható). HALMAZOK SZÁMOSSÁGA 19

20 20 MATEMATIKAI ALAPFOGALMAK

21 3. fejezet Formális nyelvek A formális nyelvek elmélete az 1950-es évek végén, az 1960-as évek elején alakult ki a programozási nyelvek megalapozására és vizsgálatára Nyelvek és szavak De níció: Tetsz½oleges véges 6= ; halmazt ábécének nevezünk. A ábécé elemeit a bet½uinek (szimbólumainak) nevezzük. Példák: bool = f0; 1g, a Boole ábécé, lat = fa; b; c; : : : ; zg, a latin ábécé, keyboard = lat [ fa; B; : : : ; Z; t; >; <; (; ); : : : ;!g, klaviatúra nyelve, t a szóköz jel, m = f0; 1; 2; : : : ; m 1g, m 1 egész, az m alapú számrendszer ábécéje, logic = f0; 1; x; (; ); ^; _; :g, Boole formulák ábécéje. De níció: A ábécé jeleinek tetsz½oleges véges sorozatát feletti szónak nevezzük. A w szó jwj hossza a w-ben lév½o jelek száma. A w = x 1 x 2 : : : x n szót felfoghatjuk a n halmaz egy (x 1 ; x 2 ; : : : ; x n ) elemének is, amelyb½ol a zárójeleket és az elválasztójeleket elhagyjuk. A w = x 1 x 2 : : : x n szó hossza: jwj = n. A "szavakkal" különböz½o objektumokat reprezentálhatunk: számokat, képleteket, gráfokat és programokat. Például az x = x 1 x 2 : : : x n ; x i 2 bool (i = 1; 2; : : : ; n) szót az N (x) = P n i=1 2n i x i nemnegatív szám bináris el½oállításának tekinthetjük. FORMÁLIS NYELVEK 21

22 De níció: Jelöljön G = (V; E) egy irányított gráfot, amelyben V a csúcsok és E f(v i ; v j ) j v i ; v j 2 V; v i 6= v j g az élek halmaza. Legyen jv j = n a csúcsok száma. A gráf M G = [a ij ] n i;j=1 szomszédsági) mátrixát az 1; ha (vi ; v a ij = j ) 2 E 0; ha (v i ; v j ) =2 E el½oírással adjuk meg. Tekintsük az alábbi gráfot! adjacencia (v. v 1 v 2 v 3 v 4 A gráf adjacencia mátrixa A mátrix f0; 1; #g ábécé feletti lehetséges szó reprezentációja pedig : 0011#0011#0101#0000#: De níció: Az x = x 1 x 2 : : : x k 2 k és y = y 1 y k : : : y l 2 l szavak konkatenációján (egymás után írásán) az xy = x 1 x 2 : : : x k y 1 y k : : : y l 2 k+l szót értjük. Példa: x = 0aa1bb, y = 111b, = f0; 1; a; bg. xy = 0aa1bb111b A konkatenáció asszociatív: x (yz) = (xy) z: (3.1) Az üres szót "-al jelöljük. Ennek hossza j"j = 0 és tetsz½oleges x szóval konkatenálva visszaadja az x szót: x" = "x = x: De níció: A felett értelmezett összes szavak halmazát, beleértve az " üres szót is, jelöli. De níció: Legyen egy ábécé. Minden x 2 és i 1 egész számra legyen x 0 = " és x i = xx i FORMÁLIS NYELVEK

23 Példa: aabbaaaaaa = a 2 b 2 a 6 = a 2 b 2 (aa) 3. De níció: Legyen = fs 1 ; s 2 ; : : : ; s n g egy ábécé, n 1 és tegyük fel, hogy elemei (lineárisan) rendezettek, azaz s 1 < s 2 < < s n. A -on értelmezett lexikogra kus (kanonikus) rendezést a következ½o el½oírással de niáljuk: u < v, (juj < jvj) _ (juj = jvj ^ u = xs i u 0 ^ v = xs j v 0 ^ i < j) ; ahol x; u 0 ; v 0 2. A lexikogra kus rendezés segítségével megmutathatjuk, hogy megszámlálható (felsorolható). A felsorolás a következ½oképpen néz ki: s 1 ; s 2 ; : : : ; s n ; s 1 s 1 ; s 1 s 2 ; : : : ; s 1 s n ; : : : ; s n s 1 ; : : : ; s n s n ; Elve pedig az, hogy el½oször vesszük az 1 jel hosszúságú szavakat (az ábécé bet½uit), majd a 2 jel hosszúságú szavakat a lexikogra kus rendezés szerint, a 3 jel hosszúságú szavakat a lexikogra kus rendezés szerint és így tovább. Az összes k hosszúságú szó száma n elem½u ábécé esetén n k. Így egy x 2 szó, amelynek hossza ` a P` 1 k=1 nk + 1 és P` k=1 nk sorszámok között kerül sorra a fenti felsorolásban. Tehát felsorolható (megszámlálható). De níció: A tetsz½oleges L részhalmaza nyelv. Az L C = n L halmazt az L nyelv komplementumának nevezzük. L ; = ; az üres nyelv. L " = f"g az egyetlen üres szóból álló nyelv. De níció: Legyenek L 1 és L 2 nyelvek felett. Ekkor a két nyelv konkatenációja L 1 L 2 = fvw j v 2 L 1 és w 2 L 2 g : De níció: Legyen L nyelv, L 0 = L ", L i+1 = L i L ( i 1). Az L halmaz Kleene-féle lezárása L = [ i2n0 L i, pozitív lezárása pedig L + = [ i2n L i : Az L + nem tartalmazza az üres szót. Vegyük még észre, hogy a ábécé Kleene-féle lezárása Generatív nyelvtanok Most bevezetjük a generatív nyelvtan fogalmát, amely a T terminális és az N nemterminális jelek diszjunkt ábécéjéb½ol, egy kitüntetett nemterminális kezd½oszimbólumból és szavak átírási szabályainak R halmazából áll. A fejezetben négy nyelvtípust de niálunk a generatív nyelvtan fogalmának segítségével. A formális nyelvek elméletét programozási nyelvek interpretálására (elemzésére, felismerésére) használjuk. A programnyelvet (általában) több lépésben fordítjuk és értelmezzük. Ennek els½o GENERATíV NYELVTANOK 23

24 lépése a lexikális analízis, amelyben a jeleket lexikális egységekbe (tokenekbe) gy½ujtjük. Ezt a lépést tipikusan automatákkal (véges állapotú gépekkel) végzik. A fordítás második lépése a szintaktikai elemzés (parsing), amelyben a lexikális egységekhez (tokenekhez) a nyelvtan szabályainak egy sorozatát (derivációkat) rendelünk. De níció: A G = (N ; T ; s; R) rendszert generatív nyelvtannak nevezzük, ahol 1) N 6= ; véges halmaz, a nemterminális szimbólumok (változók) halmaza, 2) T 6= ; véges halmaz, a terminális szimbólumok halmaza, 3) N \ T = ;, 4) s 2 N a kezd½oszimbólum, 5) R olyan u! v ( u; v 2 (N [ T ) ) alakú átírási (helyettesítési) szabályok véges halmaza, ahol u tartalmaz legalább egy elemet N -b½ol. Az átírási szabályok R halmazát felfoghatjuk a + véges részhalmazaként, ahol = N [ T a teljes ábécé. Tehát az u! v átírási szabályt az (u; v) 2 R elempárral azonosítjuk. Példa: Legyen N = fsg, ahol s egyben a kezd½oszimbólum is, T = fa; bg a terminális jelek halmaza, R pedig a s! asb, s! ab alakú átírási szabályok halmaza. Az s kezd½ojelb½ol kiindulva a két átírási szabály ismételt alkalmazásával a k b k (k 1) alakú szavakat tudunk el½oállítani: s! asb! a (asb) b!! a k sb k! a k (ab) b k = a k+1 b k+1 : De níció: Legyen G = (N ; T ; s; R) generatív nyelvtan. Ha w 1 2 (N [ T ) +, w 1 = p 1 up 2 és R tartalmazza az u! v átírási szabályt, akkor w 1 -et helyettesíthetjük a w 2 = p 1 vp 2 szóval. Ebben az esetben azt mondjuk, hogy w 2 közvetlenül levezethet½o w 1 -b½ol G-ben (jelben w 1 ) G w 2 ). A v 2 (N [ T ) levezethet½o az u 2 (N [ T ) + szóból (jelben u ) G v), ha van olyan k egész szám és u 0 ; u 1 ; : : : ; u k 2 (N [ T ) szavak, hogy u = u 0 ) G u 1 ) G : : : ) G u k = v: Ezt a levezetés láncot k-hosszúságú derivációnak is nevezzük. Például s ) A ) aab ) aaabb ) aaabbb egy 4-hosszúságú deriválás. De níció: Legyen G = (N ; T ; s; R) generatív nyelvtan. A G nyelvtan által generált nyelven az L (G) = fw 2 T j s ) G wg nyelvet értjük. Az L (G) nyelv az összes olyan T -beli szóból áll, amely megkapható a kezd½oállapotból G-beli derivációval. Példa: G = (fsg ; fa; bg ; s; fs! asb; s! abg) esetén L (G) = fa n b n j n 1g : Példa: Legyen G 1 = (N 1 ; T 1 ; s; R 1 ), ahol N 1 = fs,b,cg, T 1 = fa,b,cg és R 1 a következ½o 24 FORMÁLIS NYELVEK

25 szabályokból áll: a) s! asbc d) ab! ab g) cc! cc b) s! abc e) bb! bb c) CB! BC f) bc! bc Tekintsük a következ½o levezetés láncokat: s! a(s)bc ) aab(cb)c ) a(ab)bcc ) aa(bb)cc ) aab(bc)c ) aabb(cc) ) aabbcc; illetve s! a(s)bc ) aa(s)bcbc ) aaab (CB) CBC ) aaabbc(cb)c ) aaabb(cb)cc ) ) aa(ab)bbccc ) aaa(bb)bccc ) aaab(bb)ccc ) aaabb(bc)cc ) ) aaabbb(cc)c ) aaabbbc(cc) ) aaabbbccc: Feladat: Igazoljuk, hogy L (G 1 ) = fa n b n c n j n 1g. A generatív nyelvtan fogalmának segítségével meg tudjuk fogalmazni függények kiszámítását a formális nyelvek keretén belül. De níció: Legyen adott egy G = (N ; T ; s; R) generatív nyelvtan és az f :! függvény ( = N [ T ). A G nyelvtan "kiszámítja" f-et, ha minden w; v 2 esetén a következ½o állítás igaz: sws ) G v akkor és csak akkor, ha v = f (w) : Egy! függvényt nyelvtanilag kiszámíthatónak nevezünk, ha létezik egy G nyelvtan, amely kiszámítja. A most megfogalmazott függvénykiszámítás koncepció nem határozza meg a helyettesítési szabályok sorrendjét. Markov rendszerben ez egyértelm½uvé tehet½o, de a kiszámítható függvények köre ugyanaz marad Generatív nyelvtanok osztályozása A generatív nyelvtanok következ½o osztályozását N. Chomsky vezette be és ezek egymáshoz való viszonyát Chomsky-féle hierarchiának nevezzük. De níció: A G = (N ; T ; s; R) generatív nyelvtan kifejezés struktúra, vagy 0-típusú, ha átírási szabályainak R halmazára nincs megszorítás. A 0-típusú nyelvtanok által generált nyelvek osztályát L 0 -al jelöljük De níció: A G = (N ; T ; s; R) generatív nyelvtan környezetfügg½o, vagy 1-típusú, ha minden (u; v) 2 R átírási szabályára teljesül, hogy v nem tartalmaz kevesebb karaktert mint u, azaz juj jvj. GENERATíV NYELVTANOK OSZTÁLYOZÁSA 25

26 A környezetfügg½o (1-típusú) nyelvtanok által generált nyelvek osztályát L 1 -el jelöljük és ezeket környezetfügg½o nyelveknek nevezzük. Feladat: Igazoljuk, hogy L (G 1 ) környezetfügg½o. De níció: A G = (N ; T ; s; R) generatív nyelvtan környezetfüggetlen, vagy 2-típusú, ha minden (u; v) 2 R átírási szabályára teljesül, hogy u 2 N. A környezetfüggetlen (2-típusú) nyelvtanok által generált nyelvek osztályát L 2 -vel jelöljük és környezetfüggetlen nyelveknek nevezzük. Példa: A G = (fs,ag ; fa,bg ; s; fs! asb; s! "g) nyelvtan környezetfüggetlen és az L (G) = fa n b n j n 0g nyelvet generálja. Példa: Tekintsük a G 3 nyelvtant, amelyet az alábbi terminális és nemterminális jelek és átírási szabályok de niálnak: a) s! cmcnc d) N! bnb b) M! ama e) N! c c) M! c Könnyen igazolható, hogy G 3 környezetfüggetlen és L (G 3 ) = fca n ca n cb m cb m c j n; m 0g. A környezetfüggetlen nyelvek számos programozási nyelv fontos tulajdonságait emelik ki. De níció: A G = (N ; T ; s; R) generatív nyelvtan reguláris, vagy 3-típusú, ha minden (u; v) 2 R átírási szabálya a! w vagy a! wb alakú, ahol a; b 2 N és w 2 T. Ez azt jelenti, hogy az átírási szabályok jobb oldala vagy terminális elem, vagy egy terminális elem amelyet egy nem terminális elem követ. A reguláris (3-típusú) nyelvtanok által generált nyelveket reguláris nyelveknek nevezzük és ezek osztályát L 3 -al jelöljük. Példa: Legyen G 4 = (N 4 ; T 4 ; s; R 4 ), ahol N 4 = fs; A; Bg, T 4 = f0; 1g és R 4 -et az alábbi átírási szabályok de niálják: a) s! 0A d) B! 0A b) s! 0 e) B! 0 c) A! 1B Ez a nyelvtan reguláris. Az átírási szabályokat alkalmazva a következ½o derivációkat kaphatjuk: s! 0, s! 0A! 01B! 010, s! 0A! 01B! 010A! 0101B! 01010, stb. Eszerint a generált nyelv (01) k 0 alakú szavakból áll, hol k n 0. o Feladat: Igazoljuk formálisan is, hogy L (G 4 ) = (01) k 0 j k 0. Feladat: Legyen G = (fs; a; bg ; f1g ; s; R), ahol R = fs ) 1a; a ) 1b; b ) 1a; a ) 1; s ) "g. Igazoljuk, hogy G reguláris és L (G) = f1 2n j n 0g! Feladat: Legyen G = (fsg ; fa; bg ; s; R), ahol R elemei: s ) asb, s ) ss, s ) ". Mi az L (G)? Azonosítsuk a-t a balzárójellel, b-t pedig a jobb zárójellel! A programozási nyelvek nagy része környezetfüggetlen. A reguláris nyelveknek fontos szerepe van a lexikális analízisnél. 26 FORMÁLIS NYELVEK

27 A Chomsky-féle hierarchia azt jelenti, hogy a most de niált négy generatív nyelvosztályra fennáll az L 0 L 1 L 2 L 3 tartalmazási reláció. Gra kusan ábrázolva: kifejezés struktúra (L 0 ) nyelvek környezetfüggő (L 1 ) nyelvek környezetfüggetlen (L 2 ) nyelvek reguláris (L 3 ) nyelvek Generatív nyelvek Chomsky-féle osztályozása A négy nyelvosztályba tartozó nyelveket különböz½o tulajdonságú (erej½u) gépekkel (automatákkal, Turing gépekkel, stb.) lehet felismerni. Ezeket a következ½okben tárgyaljuk. GENERATíV NYELVTANOK OSZTÁLYOZÁSA 27

28 28 FORMÁLIS NYELVEK

29 4. fejezet Algoritmusok, kiszámítható függvények és döntési problémák Az algoritmus, a kiszámíthatóság és eldönthet½oség alapvet½o, egymással összefügg½o fogalmak. Mi ezeket a fogalmakat részletesen a formális nyelvek, a leképezések (relációk) és a Turing gépek segítségével fogjuk tárgyalni. Muhammad ibn Musa al-khwarizmi, IX. század eleje Az algoritmus szó a híres középkori "arab" matematikus Muhammad ibn Musa al-khwarizmi nevéb½ol ered, aki 800. el½ott született Horezm területén (az Amu-Darja mentén, kb. a mai Türkmenisztán és Üzbegisztán), és legalább 847-ig élt. A Bagdadi "Bölcsesség Háza" egyetemen tanított és 825 körül írta a f½o munkáját, amelynek címe "Al-jabr wa l muqabala" (az algebra szó innen ered) és egy könyvet az 1,2,3,4,5,6,7,8,9 és 0 jeleken alapuló hindu-arab számokról. Az utóbbi könyv eredeti arab kézirata elveszett, de ennek latin fordítása "Algoritmi de numero Indorum" (Al-Khwarizmi a Hindu számítási m½uvészetr½ol) fennmaradt és bevezette az arab számokat Európába. A 0 szám els½o el½ofordulása is valószín½uleg neki köszönhet½o. A könyvben számítási szabályok vannak leírva, amelyeket utána neveztek el (Algoritmi dicit.../al-khwarizmi ezt mondja...). Igen sokáig algoritmus alatt a ma már "egyszer½u" aritmetikai számolási szabályokat értették. Most a részletek pontos speci kálása nélkül feltesszük, hogy az algoritmus egy leképezés a következ½o tulajdonságokal. ALGORITMUSOK, KISZÁMíTHATÓ FÜGGVÉNYEK ÉS DÖNTÉSI PROBLÉMÁK 29

30 De níció: Az A algoritmus (program) egy A : 1! 2 leképezés a 1 és 2 ábécék felett a következ½o tulajdonságokkal: (i) Az inputok 1 feletti szavak, (ii) Az outputok 2 feletti szavak, (iii) A minden inputhoz egyértelm½uen rendel hozzá egy outputot. Jelölje az A algoritmus inputját x 2 1, az outputját pedig A (x) 2 2. De níció: Az A; B : 1! 2 algoritmusokat (programokat) ekvivalensnek nevezzük, ha A (x) = B (x) minden x 2 1 esetén. De níció: Legyen 1 és 2 két ábécé. Az A algoritmus kiszámítja az f : 1! 2 függvényt, ha minden x 2 1 esetén A (x) = f (x). De níció: Egy adott ábécéhez és L nyelvhez tartozó (; L) döntési probléma alatt azt értjük, hogy minden x 2 P esetén el kell dönteni, hogy x 2 L vagy x =2 L. Az A algoritmus a (; L) döntési problémát megoldja vagy felismeri, ha minden x 2 esetén: 1, ha x 2 L; A (x) = 0, ha x =2 L. A döntési probléma tehát egy speciális függvény kiszámítási probléma, ahol az algoritmus az L nyelv un. karakterisztikus függvényét számítja ki. Példa: Prímtesztelés: ( bool ; fx 2 ( bool ) j N (x) prímszámg) ; ahol N (x) az x szóhoz rendelt bináris szám. Egy gráf Hamilton körén olyan (irányított) utat értünk, amely a gráf minden csúcsát egyszer érinti. Példa: Hamilton kör probléma (; HC), ahol = f0; 1; #g és Egy Boole formula, pl. HC = fx 2 j x Hamilton kört tartalmazg : (u 1 _ :u 3 _ :u 4 ) ^ (:u 1 _ u 2 _ :u 4 ) kielégíthet½o, ha nem azonosan 0 a lehetséges inputokra. Példa: Kielégíthet½oségi probléma ( logic ; SAT ) : SAT = fx 2 ( logic ) j x egy kielégíthet½o Boole formulag : De níció: Ha egy L nyelvhez létezik egy algoritmus, amely L-et felismeri, akkor az L nyelvet rekurzívnak nevezzük. A fenti de níciók alapján gondolhatjuk, hogy függvények kiszámítása a legáltalánosabb számítási probléma. Ez azonban nem így van. 30 ALGORITMUSOK, KISZÁMíTHATÓ FÜGGVÉNYEK ÉS DÖNTÉSI PROBLÉMÁK

31 De níció: Legyen és két ábécé és legyen R egy reláció. Az A algoritmus kiszámítja R-et, ha minden x 2 esetén (x; A (x)) 2 R. Példa: Input: x 2 ( bool ), Output: y 2 ( bool ), ahol y értékét a következ½oképpen határozzuk meg. Ha N (x) prímszám, akkor y = 1. Ha N (x) összetett szám, akkor y az N (x) egynél nagyobb akármelyik osztója lehet. A megfelel½o reláció: R = f(x; y) j y = 1, ha N (x) prím, y > 1 ^ (y j N (x))g : Az el½oz½o de nícióban szerepl½o relációval nemdeterminisztikus számítási feladatokat írunk le. Az (x; A (x)) 2 R feltétel azt jelenti, hogy A (x) 2 R (x). Ha R valódi reláció, azaz jr (x)j > 1 legalább egy x 2 D R elemre, akkor az adott x esetén az algoritmus eredménye tetsz½oleges A (x) 2 R (x) elem lehet. Azaz ugyanarra az inputra más és más eredményeket kaphatuk. A determinisztikus esetben ez nem lehetséges, mert ugyanarra az inputra mindig ugyanazt a kimenetet kapjuk. Tekintve, hogy a nemdeterminisztikus számítási modellek fontos szerepet játszanak a bonyolultságelméletben, a függelékben röviden ismertetjük a programozás alapfogalmainak egy nemdeterminisztikus, relációelméleti leírását is. ALGORITMUSOK, KISZÁMíTHATÓ FÜGGVÉNYEK ÉS DÖNTÉSI PROBLÉMÁK 31

32 32 ALGORITMUSOK, KISZÁMíTHATÓ FÜGGVÉNYEK ÉS DÖNTÉSI PROBLÉMÁK

33 5. fejezet Algoritmusok elemzése Algoritmikusan megoldható feladatokkal és megoldó algoritmusaik elemzésével foglalkozunk. A felvet½od½o kérdések: - Adott feladat nehézségének (bonyolultságának) jellemzése. - Több módszer (algoritmus) esetén a jobbik (legjobb) kiválasztása. A feladatok nehézségét a megoldási költséggel és a szükséges er½oforrások mennyiségének vizsgálatával jellemezzük. Az alapvet½o jellemz½ok: - számítási id½o (általában aritmetikai vagy logikai m½uveletek számában), - tárigény. Egy feladat nehézségét sok esetben a megoldás "költségére" adott fels½o, illetve alsó korláttal tudjuk jellemezni. A fels½o korlátok jobb, gyorsabb algoritmusok keresését inspirálják, míg az alsó korlátok (amiknél nincs gyorsabb algoritmus) a feladat nehézségét jellemzik. A feladatok bonyolultsága és az ½oket megoldó algoritmusok hatékonysága általában összefüggést mutat. Adott feladatot megoldó algoritmusok között a hatékonyabbat csak az algoritmusok elemzésével tudjuk kiválasztani. Konkrét algoritmusok elemzésénél a cél az adott algoritmusok hatékonyságának (költségének és er½oforrásigényének) vizsgálata. Megjegyezzük, hogy egy algoritmus hatékonyságára vonatkozó információ egyúttal a megoldandó feladat nehézségét is jellemzi, vagy jellemezheti Az oszd meg és uralkodj elv A oszd meg és uralkodj elv egy egyszer½u és hatékony módszer problémák megoldására. Az elv alapötlete: - Szétosztjuk a problémát kisebb rész problémákra. - Megoldjuk a kisebb részproblémákat. - A kisebb részproblémák megoldásaiból összerakjuk az eredeti probléma megoldását. Tekintsük az elvet leíró alábbi általános algoritmust! DivideAndConquer(data,N,solution) data a set of input values ALGORITMUSOK ELEMZÉSE 33

34 N the number of values in the set solution the solution to this problem if (N SizeLimit) then DirectSolution( data, N, solution ) else DivideInput( data, N, smallersets, smallersizes, numbersmaller ) for i = 1 to numbersmaller do DivideAndConquer(smallerSets[i], smallersizes[i], smallsolution[i]) end for CombineSolutions(smallSolution, numbersmaller, solution) end if Az algoritmus el½oször azt nézi meg, hogy a probléma méret elég kicsi-e ahhoz, hogy egy direkt algoritmussal (DirectSolution) oldjuk meg. Ha probléma túl nagy, akkor el½oször az inputot felosztó rutint (DivideInput) hívja meg, hogy az input adatokat (feladatot) kisebb részekre bontsa. Ezek méretei lehetnek egyenl½ok, vagy eltér½oek is. Az algoritmus ezután rekurzívan meghívásra kerül a kisebb input adathalmazokon és ezen hívások eredményeit f½uzi össze a CombineSolutions rutin. A fenti oszd meg és uralkodj algoritmus hatékonyságát (bonyolultságát) a következ½oképpen írhatjuk le: DIR(N), DAC(N)= ha N SizeLimit DIV(N)+ P numbersmaller i=1 DAC(smallerSizes[i])+COM(N), ha N > SizeLimit ahol DAC a DivideAnd Conquer algoritmus bonyolultsága, DIR a DirectSolution bonyolultsága, DIV a DivideInput bonyolultsága, COM a CombineSolutions bonyolultsága. A rekurzíó megoldásához szükségünk van a következ½o szakaszban található mester tételre A mester tétel A mester tétel segítségével meghatározhatjuk az oszd meg és uralkodj algoritmus bonyolultságát abban az esetben, amikor az input adatokat egyenl½o részre osztjuk. Tétel: Ha n a b szám hatványa, a; b; c; d konstansok, a 1, b > 1, akkor a d; ha n = 1 T (n) = (5.1) at (n=b) + cn; ha n > 1 rekurzió megoldása 8 < O (n) ; ha a < b T (n) = O (n log n) ; ha a = b : O n log a b, ha a > b. 34 ALGORITMUSOK ELEMZÉSE (5.2)

35 Bizonyítás: Könnyen látható, hogy n T (n) = at + cn b n = a at + c n + cn b 2 b n = a 2 T + acn + cn b 2 b n = a at 2 + c n + acn + cn b 3 b 2 b n = a 3 T + a2 cn + acn + cn b 3 b 2 b Minthogy azért Ha a < b, akkor a=b < 1, Ezért T (n) < dn log b a + cbn= (b Ha a > b, akkor. n Xi 1 a j = a i T + cn b i b = a log b n T (1) + cn j=0 log b n 1 X j=0 a b j : a log b n = b log b a log b n = b log b n log b a = n log b a ; T (n) = dn log b a + cn log b n 1 X j=0 log b n 1 X j=0 a j X 1 a j < = b b j=0 a b j : b b a : a) = O (n). (a < b ) log b a < 1!). Ha a = b, akkor log b n X T (n) = dn + cn 1 j = dn + cn (1 + log b n) = O (n log n) : log b n 1 X j=0 a b j=0 j = (a=b) log b n 1 (a=b) 1 = nlog b a 1 1 (a=b) 1 = O nlog b a 1 : Tehát ekkor T (n) = dn + cno n log b a Példák: 1 = O n log b a. ALGORITMUSOK ELEMZÉSE 35

36 Ha T (n) = 2T (n=3) + cn, akkor a = 2 < b = 3 miatt T (n) = O (n). Ha T (n) = 2T (n=2) + cn, akkor a = b = 2 miatt T (n) = O (n log n). Ha T (n) = 4T (n=2) + cn, akkor a = 4 > b = 2 miatt T (n) = O n log 2 4 = O (n 2 ). Feladat: Adjuk meg a következ½o rekurziók megoldását a mester tétellel, illetve jelezzük, ha ez nem alkalmazható: a) T (n) = 2T (n=2) + n 2 ; b) T (n) = 4T (n=2) + n 2 ; c) T (n) = T (n=2) + 2 n ; d) T (n) = 2 n T (n=2) + n n ; e) T (n) = 16T (n=4) + n; f) T (n) = 2T (n=2) + n log n; g) T (n) = 2T (n=2) + n= log n; h) T (n) = 2T (n=4) + n 0:51 ; i) T (n) = 0:5T (n=2) + 1=n Keresési, rendezési és kiválasztási feladatok A mindennapi gyakorlatban is fontos keresési, kiválasztási és rendezési feladatokkal foglalkozunk néhány alapvet½o esetben Keresési feladatok A keresési feladaton azt értjük, hogy egy listában (vagy tömbben) egy adott érték½u elemet (target) keresünk. A lista (tömb) lehet rendezetlen, vagy rendezett. A szekvenciális és a bináris keresés algoritmusát elemezzük. Ha a lista elemei rendezetlenek, akkor a lista elemeit szekvenciálisan összehasonlítjuk az adott érték½u elemmel. A szekvenciális keresés algoritmusa: SequentialSearch(list,target,N) list the elements to be searched target the value being searched for N the number of elements in the list for i = 1 to N do if (target = list[i]) 36 ALGORITMUSOK ELEMZÉSE

37 return i end if end for return 0 A legjobb eset, ha a keresett elem (target) az els½o elem, a legrosszabb pedig az, ha az utolsó N-edik elem. Tehát az összehasonlítások száma (esetünkben a számítási költség) 1 és N közé esik. Ha feltesszük, hogy az adott tulajdonságú elem azonos 1=N valószín½uséggel lehet a lista bármelyik helyén, akkor a keresés átlagos költsége a következ½oképpen határozható meg. Ha a keresett elem az i-edik helyen van, akkor i összehasonlítások költsége. Az átlagos költség a költségek várható értéke: A (N) = NX i=1 i N = 1 N NX i = 1 N i=1 N (N + 1) 2 = N + 1 : 2 Ha feltesszük, hogy a keresett elem nincs a listán, akkor N + 1 lehet½oségünk van. Feltéve, hogy minden eset egyenl½oen valószín½u, akkor ezek valószín½usége 1= (N + 1) és az átlagos költség a következ½o lesz:! NX i A (N) = + N N + 1 N + 1 = 1 N (N + 1) + N N i=1 = N 2 + N N + 1 = N N (N + 1) : Látható, hogy az újabb feltevésünk módosította (növelte) az átlagos költséget. Ha N! 1, N 1 akkor! 1 és ezért 2(N+1) 2 A (N) N : Nagy N-re ez nem jelent½os növekedés. A következ½okben tegyük fel, hogy a listánk növekv½oen rendezett és vizsgáljuk a bináris keresés algoritmusát, amelynek alapötlete, hogy felezzük a listát, a középs½o elemmel összehasonlítjuk a keresett elemet, majd aszerint, hogy milyen viszonyban állnak (<, =, >) választjuk a lista els½o felét, a kilépést, vagy a lista második felét. Ezt ismételjük a kapott részlistán, amíg az el nem fogy. Egy lehetséges program a következ½o BinarySearch(list,target,N) list the elements to be searched target the value being searched for N the number of elements in the list start = 1 end = N while start end do middle = d(start + end)=2e KERESÉSI, RENDEZÉSI ÉS KIVÁLASZTÁSI FELADATOK 37

38 if list[middle]<target start = middle+1 if list[middle]=target return middle if list[middle]>target end = middle 1 end while return 0 Az eljárás döntési fája 7 elem½u lista esetén: list[4] list[2] list[6] list[1] list[3] list[5] list[7] A döntési fa csomópontjaiban lév½o elemeket hasonlítja össze az algoritmus a target értékével az egyes iterációkban. Ha a target értéke kisebb mint a csomóponti elem, akkor a számítás a baloldali részfán folyik tovább, ha pedig nagyobb, akkor a jobboldali részfán. A legrosszabb eset bonyolultságot vizsgáljuk. Az algoritmus felezési jellege miatt tegyük fel, hogy N = 2 k 1 valamilyen k 1 értékre. Az els½o felezésben a középs½o elem indexe k 1 =2 = 2 k 1. Ezért az els½o iterációban keletkez½o részlista hossza 2 k 1 1. Hasonló okfejtéssel a második iterációban keletkez½o részlista hossza 2 k 2 1, és igy tovább. A j-edik iteráció részlistájának hossza 2 k j 1. Az iterációs ciklus legkés½obb a k-adik iterációban fejez½odik be. Ez k öszehasonlítást jelent, ahol k = log 2 (N + 1) s log 2 N. Az átlagos bonyolultságot vizsgáljuk az N = 2 k 1 elemszámra azon feltevés mellett, hogy a target a listában van és ott egyenl½o 1=N valószín½uséggel fordulhat el½o bárhol. A döntési fa i-edik szintjén lev½o elemek száma 2 i 1 és a szintek száma k. Ha a keresett elem az i-edik szinten van, akkor i összehasonlítást végzünk a megtalálásához. Ezért az átlagos számítási költség: 0 1 kx X2 i 1 A (N) i 1 A = 1 kx i2 i 1 : N N Vegyük észre, hogy x 6= 1 esetén i=1 j= x + + kx k 1 = 1 + x + x x k 0 x k = x 1 = (k + 1) xk (x 1) x k+1 1 (x 1) 2 i=1 = kxk+1 (k + 1) x k + 1 (x 1) 2 : 38 ALGORITMUSOK ELEMZÉSE

39 Az x = 2 értéket ebbe behelyettesítve kapjuk, hogy kx i2 i 1 = k2 k+1 (k + 1) 2 k + 1 = (k 1) 2 k + 1: i=1 Tehát az átlagos számítási költség átírható az A (N) = 1 (k 1) 2 k + 1 = (log 2 (N + 1) 1) (N + 1) + 1 N N = log 2 (N + 1) 1 + log 2 (N + 1) N alakba. Minthogy log 2 (N + 1) =N! 0, az átlagos számítási költségre fennáll, hogy A (N) log 2 (N + 1) 1; ami 1-el kevesebb mint a legrosszabb eset log 2 (N + 1) költsége. Feladat: Mi a bináris keresés átlagos bonyolultsága, ha megengedjük, hogy a keresett elem ne legyen a listában és minden eset (elhelyezkedés) valószín½usége azonosan 1= (N + 1)? Feladat: Mi a bináris keresés legrosszabb eset bonyolultsága, ha N 6= 2 k 1? Feladat: Mi a bináris keresés átlagos bonyolultsága, ha a keresett elem a listában van, minden eset (elhelyezkedés) valószín½usége azonosan 1=N és N 6= 2 k 1? Feladat: Mi a bináris keresés átlagos bonyolultsága, ha a keresett elem esetleg nincs a listában, minden eset (elhelyezkedés) valószín½usége azonosan 1= (N + 1) és N 6= 2 k 1? Rendezési feladatok Két fontos rendezési algoritmust elemzünk, amelyek az oszd meg és uralkodj elv tipikus alkalmazásai. Összefésül½o rendezés Az algoritmus alapja az összefésülés (merge). Tegyük fel, hogy adottak az A [1 : k] és B [1 : l] növekv½oen rendezett tömbök és tartalmukat a C [1 : k + l] tömbben kívánjuk tárolni, rendezetten. A két rendezett tömb összefésülési algoritmusa a következ½o: 1. C [1]-be az A [1] és B [1] közül a kisebbiket rakjuk, 2. Ha az A [1 : i] és B [1 : j] résztömböket már feldolgoztuk, akkor a következ½o elem: C [i + j + 1] = min fa [i + 1] ; B [j + 1]g : Az összefésülés maximális költsége k + l 1 összehasonlítás és k + l mozgatás. A legkisebb költség: min fk; lg összehasonlítás (Miért?). KERESÉSI, RENDEZÉSI ÉS KIVÁLASZTÁSI FELADATOK 39

40 Legyen az A [1 : n] tömb rendezetlen. Az összefésül½o rendezés (msort) alapelve: rendezzük a tömb els½o és második felét külön külön, majd ezek tartalmát fésüljük össze és használjunk rekurziót! function msort (x; y) comment sorts A [x::y] if y x 1 then return(a) else return(merge(msort x; x+y 2 ; msort x+y 2 + 1; y ) Legyen T (n) az összefésül½o rendezés költsége (összehasonlítások száma) n hosszúságú tömb esetén és tegyük fel, hogy n = 2 k alakú. Az n=2 hosszúságú rendezett tömbök összefésülése n 1 összehasonlítás. Ezért az algoritmus költségére fennáll, hogy T (n) = 1; ha n 1 2T (n=2) + n 1; egyébként A mester tétel alapján T (n) = O (n log n) összehasonlítás az összefésül½o rendezés költsége. A pontosabb eredmény: n n T (n) = 2T + n 1 = 2 2 T n n = 2 3 T n = 2 i T + 2 i = 2 k T (1) + ix j=1 kx j=1 n n n 2 j n 1 2 j n n 1 n 2 j 1 + n 1 = 2n + kn 1 = 2n + kn 1 2 k 1 = n log 2 n + n: Tehát az összefésül½o rendezés legrosszabb eset bonyolultsága n hosszúságú tömb esetén O (n log n) összehasonlítás. kx j=1 2 j 1 Gyorsrendezés A gyorsrendezés vagy quicksort algoritmust C.A.R. Hoare publikálta 1962-ben és egyike a 20. század tíz legfontosabbnak tartott algoritmusának (lásd B. A. Cipra: The Best of the 20th Century: Editors Name Top 10 Algorithms, SIAM News, Volume 33, Number 4). 40 ALGORITMUSOK ELEMZÉSE

41 Sir Tony Hoare Az algoritmusnak három eleme van: - felosztás, - uralkodás, - összevonás. A felosztásban az algoritmus kiválaszt egy A (q) elemet (pivot elemet vagy ½orszemet) és felosztja az fa (p) ; : : : ; A (r)g (p r) tömböt két összefügg½o (esetleg üres) fa (p) ; : : : ; A (q 1)g ; fa (q + 1) ; : : : ; A (r)g résztömbre úgy, hogy a baloldali résztömb elemei kisebbek, vagy kisebb-egyenl½ok A (q)-nál, a jobboldali résztömb elemei pedig nagyobbak A (q)-nál. A két résztömb elemei nem rendezettek. Az q index (½orszem, pivot elem) számítása a felosztó eljárás része. Az uralkodás fázisában az fa (p) ; : : : ; A (q 1)g és fa (q + 1) ; : : : ; A (r)g résztömböket a felosztás (gyorsrendezés) rekurzív hívásával rendezzük. Az összevonás fázisa: Mivel rekurzív hivások az egyelem½u résztömböknél állnak le és résztömböket helyben rendeztük, az eredményül kapott egész fa (p) ; : : : ; A (r)g tömb rendezett lesz. Az algoritmus leírása: gyorsrendezés (A; p; r) if p < r then q =feloszt(a; p; r) gyorsrendezés(a; p; q 1) gyorsrendezés(a; q + 1; r) A teljes tömb rendezése: gyorsrendezés(a; 1; hossz (A)). A feloszt eljárás kiválasztja az ½orszemet (esetünkben x = A (r)), majd helyben átrendezi az fa (p) ; : : : ; A (r)g résztömböt. feloszt (A; p; r) x = A (r) KERESÉSI, RENDEZÉSI ÉS KIVÁLASZTÁSI FELADATOK 41

2009/2010/II. félév, Prof. Dr. Galántai Aurél Óbudai Egyetem NIK IMRI Budapest

2009/2010/II. félév, Prof. Dr. Galántai Aurél Óbudai Egyetem NIK IMRI Budapest SZÁMÍTÁSTUDOMÁNY 2009/2010/II. félév, (el½oadás vázlat) Prof. Dr. Galántai Aurél Óbudai Egyetem NIK IMRI Budapest 2010-05-6 2 Tartalomjegyzék 1. Bevezetés 5 2. Matematikai alapfogalmak 9 2.1. Jelölések........................................

Részletesebben

2009/2010/I. félév, Prof. Dr. Galántai Aurél BMF NIK IMRI Budapest. 2009. november 25.

2009/2010/I. félév, Prof. Dr. Galántai Aurél BMF NIK IMRI Budapest. 2009. november 25. SZÁMÍTÁSTUDOMÁNY 2009/2010/I. félév, (el½oadás vázlat) Prof. Dr. Galántai Aurél BMF NIK IMRI Budapest 2009. november 25. Tartalomjegyzék TARTALOMJEGYZÉK 3 1. Bevezetés 5 2. Matematikai alapfogalmak 9 2.1.

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

dr. Szalkai István Pannon Egyetem, Veszprém, Matematika Tanszék november 3.

dr. Szalkai István Pannon Egyetem, Veszprém, Matematika Tanszék november 3. Számosságok dr. Szalkai István Pannon Egyetem, Veszprém, Matematika Tanszék 2008. november 3. ### Szamoss1www.tex, 2008.09.28. Ebben a rövid jegyzetben els½osorban a végtelen halmazok méretét, elemeinek

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

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

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

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

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

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

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

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

Bonyolultságelmélet. Monday 26 th September, 2016, 18:28

Bonyolultságelmélet. Monday 26 th September, 2016, 18:28 Bonyolultságelmélet Monday 26 th September, 2016, 18:28 A kurzus teljesítési követelményei 2 Gyakorlat Három kisdolgozat 6 6 pontért kb. a 4., 7. és 10. gyakorlaton Egy nagydolgozat 28 pontért utolsó héten

Részletesebben

dr. Szalkai István Pannon Egyetem, Veszprém, Matematika Tanszék augusztus 12.

dr. Szalkai István Pannon Egyetem, Veszprém, Matematika Tanszék augusztus 12. Számosságok dr. Szalkai István Pannon Egyetem, Veszprém, Matematika Tanszék 2012. augusztus 12. nszamossagnszamoss2www.tex, 2012.08.12., 02:50 1. Bevezetés Ebben a rövid jegyzetben els½osorban a végtelen

Részletesebben

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

Gráfelmélet. I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Készítette: Laczik Sándor János Gráfelmélet I. Előadás jegyzet (2010.szeptember 9.) 1.A gráf fogalma Definíció: a G=(V,E) párt egyszerű gráfnak nevezzük, (V elemeit a gráf csúcsainak/pontjainak,e elemeit

Részletesebben

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

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,

Részletesebben

KOVÁCS BÉLA, MATEMATIKA I.

KOVÁCS BÉLA, MATEMATIKA I. KOVÁCS BÉLA, MATEmATIkA I. 4 IV. FÜGGVÉNYEk 1. LEkÉPEZÉSEk, függvények Definíció Legyen és két halmaz. Egy függvény -ből -ba egy olyan szabály, amely minden elemhez pontosan egy elemet rendel hozzá. Az

Részletesebben

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése

Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése Kiegészítő részelőadás 1. Az algoritmusok hatékonyságának mérése Dr. Kallós Gábor 2014 2015 1 Az Ordó jelölés Azt mondjuk, hogy az f(n) függvény eleme az Ordó(g(n)) halmaznak, ha van olyan c konstans (c

Részletesebben

Halmazelméleti alapfogalmak

Halmazelméleti alapfogalmak Halmazelméleti alapfogalmak halmaz (sokaság) jól meghatározott, megkülönböztetett dolgok (tárgyak, fogalmak, stb.) összessége. - halmaz alapfogalom. z azt jelenti, hogy csak példákon keresztül magyarázzuk,

Részletesebben

Leképezések. Leképezések tulajdonságai. Számosságok.

Leképezések. Leképezések tulajdonságai. Számosságok. Leképezések Leképezések tulajdonságai. Számosságok. 1. Leképezések tulajdonságai A továbbiakban legyen A és B két tetszőleges halmaz. Idézzünk fel néhány definíciót. 1. Definíció (Emlékeztető). Relációknak

Részletesebben

Matematikai logika és halmazelmélet

Matematikai logika és halmazelmélet Matematikai logika és halmazelmélet Wettl Ferenc előadása alapján 2015-09-07 Wettl Ferenc előadása alapján Matematikai logika és halmazelmélet 2015-09-07 1 / 21 Tartalom 1 Matematikai kijelentések szerkezete

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

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

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

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

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet Monday 26 th September, 2016, 18:27 A kurzus teljesítési követelményei Gyakorlat Három kisdolgozat 6 6 pontért kb. a 4., 7. és 10. gyakorlaton Egy nagydolgozat 28 pontért utolsó héten előadáson Pontszám:

Részletesebben

DiMat II Végtelen halmazok

DiMat II Végtelen halmazok DiMat II Végtelen halmazok Czirbusz Sándor 2014. február 16. 1. fejezet A kiválasztási axióma. Ismétlés. 1. Deníció (Kiválasztási függvény) Legyen {X i, i I} nemüres halmazok egy indexelt családja. Egy

Részletesebben

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50 Bonyolultságelmélet Monday 26 th September, 2016, 18:50 A kiszámítás modelljei 2 De milyen architektúrán polinom? A kiszámításnak számos (matematikai) modellje létezik: Általános rekurzív függvények λ-kalkulus

Részletesebben

A matematika nyelvér l bevezetés

A matematika nyelvér l bevezetés A matematika nyelvér l bevezetés Wettl Ferenc 2012-09-06 Wettl Ferenc () A matematika nyelvér l bevezetés 2012-09-06 1 / 19 Tartalom 1 Matematika Matematikai kijelentések 2 Logikai m veletek Állítások

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

Diszkrét matematika I.

Diszkrét matematika I. Diszkrét matematika I. középszint 2014. ősz 1. Diszkrét matematika I. középszint 3. előadás Mérai László diái alapján Komputeralgebra Tanszék 2014. ősz Relációk Diszkrét matematika I. középszint 2014.

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

Diszkrét matematika 2.C szakirány

Diszkrét matematika 2.C szakirány Diszkrét matematika 2.C szakirány 2015. tavasz 1. Diszkrét matematika 2.C szakirány 1. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu Komputeralgebra Tanszék 2015. tavasz Gráfelmélet Diszkrét

Részletesebben

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y. Algoritmuselmélet Bonyolultságelmélet Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 12. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet

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 2016. ősz 1. Diszkrét matematika 3. estis képzés 3. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék

Részletesebben

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

Diszkrét matematika 1. estis képzés Diszkrét matematika 1. estis képzés 2019. tavasz 1. Diszkrét matematika 1. estis képzés 9. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján

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

1. tétel - Gráfok alapfogalmai

1. tétel - Gráfok alapfogalmai 1. tétel - Gráfok alapfogalmai 1. irányítatlan gráf fogalma A G (irányítatlan) gráf egy (Φ, E, V) hátmas, ahol E az élek halmaza, V a csúcsok (pontok) halmaza, Φ: E {V-beli rendezetlen párok} illeszkedési

Részletesebben

A félév során előkerülő témakörök

A félév során előkerülő témakörök A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok

Részletesebben

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

Házi feladatok megoldása. Nyelvek felismerése. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 5. gyakorlat Házi feladatok megoldása Nyelvek felismerése Formális nyelvek, 5. gyakorlat 1. feladat Adjunk a következő nyelvet generáló 3. típusú nyelvtant! Azon M-áris számrendszerbeli számok, melyek d-vel osztva

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

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

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

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva

f(x) vagy f(x) a (x x 0 )-t használjuk. lim melyekre Mivel itt ɛ > 0 tetszőlegesen kicsi, így a a = 0, a = a, ami ellentmondás, bizonyítva 6. FÜGGVÉNYEK HATÁRÉRTÉKE ÉS FOLYTONOSSÁGA 6.1 Függvény határértéke Egy D R halmaz torlódási pontjainak halmazát D -vel fogjuk jelölni. Definíció. Legyen f : D R R és legyen x 0 D (a D halmaz torlódási

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

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

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI 4. Fuzzy relációk Gépi intelligencia I. Fodor János BMF NIK IMRI NIMGI1MIEM Tartalomjegyzék I 1 Klasszikus relációk Halmazok Descartes-szorzata Relációk 2 Fuzzy relációk Fuzzy relációk véges alaphalmazok

Részletesebben

Függvények növekedési korlátainak jellemzése

Függvények növekedési korlátainak jellemzése 17 Függvények növekedési korlátainak jellemzése A jellemzés jól bevált eszközei az Ω, O, Θ, o és ω jelölések. Mivel az igények általában nemnegatívak, ezért az alábbi meghatározásokban mindenütt feltesszük,

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

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

Algoritmuselmélet 18. előadás

Algoritmuselmélet 18. előadás Algoritmuselmélet 18. 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 Május 7. ALGORITMUSELMÉLET 18. ELŐADÁS 1 Közelítő algoritmusok

Részletesebben

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

Nagy Gábor  compalg.inf.elte.hu/ nagy ősz Diszkrét matematika 1. középszint 2017. ősz 1. Diszkrét matematika 1. középszint 8. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra

Részletesebben

Gráfelméleti feladatok. c f

Gráfelméleti feladatok. c f Gráfelméleti feladatok d e c f a b gráf, csúcsok, élek séta: a, b, c, d, e, c, a, b, f vonal: c, d, e, c, b, a út: f, b, a, e, d (walk, lanţ) (trail, lanţ simplu) (path, lanţ elementar) 1 irányított gráf,

Részletesebben

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

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból ÜTEMTERV Programozás-elmélet c. tárgyhoz (GEMAK233B, GEMAK233-B) BSc gazdaságinformatikus, programtervező informatikus alapszakok számára Óraszám: heti 2+0, (aláírás+kollokvium, 3 kredit) 2019/20-es tanév

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

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

1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata. 1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata. HLMZOK halmaz axiomatikus fogalom, nincs definíciója. benne van valami a halmazban szintén axiomatikus fogalom,

Részletesebben

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák.

Predikátumkalkulus. 1. Bevezet. 2. Predikátumkalkulus, formalizálás. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. Predikátumkalkulus Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. 1. Bevezet Nézzük meg a következ két kijelentést: Minden almához tartozik egy fa, amir l leesett. Bármely

Részletesebben

A valós számok halmaza

A valós számok halmaza VA 1 A valós számok halmaza VA 2 A valós számok halmazának axiómarendszere és alapvető tulajdonságai Definíció Az R halmazt a valós számok halmazának nevezzük, ha teljesíti a következő axiómarendszerben

Részletesebben

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

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

Részletesebben

13.1.Állítás. Legyen " 2 C primitív n-edik egységgyök és K C olyan számtest, amelyre " =2 K, ekkor K(") az x n 1 2 K[x] polinomnak a felbontási teste

13.1.Állítás. Legyen  2 C primitív n-edik egységgyök és K C olyan számtest, amelyre  =2 K, ekkor K() az x n 1 2 K[x] polinomnak a felbontási teste 13. GYÖKB½OVÍTÉS GALOIS CSOPORTJA, POLINOMOK GYÖKEINEK ELÉRHET½OSÉGE 13.1.Állítás. Legyen " 2 C primitív n-edik egységgyök és K C olyan számtest, amelyre " =2 K, ekkor K(") az x n 1 2 K[x] polinomnak a

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

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

Matematika alapjai; Feladatok

Matematika alapjai; Feladatok Matematika alapjai; Feladatok 1. Hét 1. Tekintsük a,, \ műveleteket. Melyek lesznek a.) kommutativok b.) asszociativak c.) disztributívak-e a, műveletek? Melyik melyikre? 2. Fejezzük ki a műveletet a \

Részletesebben

1. Mondjon legalább három példát predikátumra. 4. Mikor van egy változó egy kvantor hatáskörében?

1. Mondjon legalább három példát predikátumra. 4. Mikor van egy változó egy kvantor hatáskörében? Definíciók, tételkimondások 1. Mondjon legalább három példát predikátumra. 2. Sorolja fel a logikai jeleket. 3. Milyen kvantorokat ismer? Mi a jelük? 4. Mikor van egy változó egy kvantor hatáskörében?

Részletesebben

Diszkrét matematika 2.

Diszkrét matematika 2. Diszkrét matematika 2. Mérai László előadása alapján Készítette: Nagy Krisztián 1. előadás Gráfok halmaza, gráf, ahol a csúcsok halmaza, az élek illesztkedés reláció: illesztkedik az élre, ha ( -él illesztkedik

Részletesebben

Diszkrét matematika 2.

Diszkrét matematika 2. Diszkrét matematika 2. 2018. november 23. 1. Diszkrét matematika 2. 9. előadás Fancsali Szabolcs Levente nudniq@cs.elte.hu www.cs.elte.hu/ nudniq Komputeralgebra Tanszék 2018. november 23. Diszkrét matematika

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

n =

n = 15. PÉLDÁK FÉLCSOPORTOKRA ÉS CSOPORTOKRA 1. Az R 3 tér vektorai a derékszög½u koordinátarendszerben az a = (a 1 ; a 2 ; a 3 ) alakban adottak az a 1 ; a 2 ; a 3 2 R valós számokkal. A vektoriális szorzás

Részletesebben

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták)

A 2015/2016. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA (a speciális tanterv szerint haladó gimnazisták) A 205/206. tanévi Országos Középiskolai Tanulmányi Verseny döntő forduló MATEMATIKA III. KATEGÓRIA a speciális tanterv szerint haladó gimnazisták Javítási-értékelési útmutató. feladat Az {,2,...,n} halmaz

Részletesebben

A relációelmélet alapjai

A relációelmélet alapjai A relációelmélet alapjai A reláció latin eredet szó, jelentése kapcsolat. A reláció, két vagy több nem feltétlenül különböz halmaz elemei közötti viszonyt, kapcsolatot fejez ki. A reláció értelmezése gráffal

Részletesebben

Algoritmuselmélet 2. előadás

Algoritmuselmélet 2. előadás Algoritmuselmélet 2. 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 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezés

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

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit. 2. A VALÓS SZÁMOK 2.1 A valós számok aximómarendszere Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit. 1.Testaxiómák R-ben két művelet van értelmezve, az

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

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n).

Edényrendezés. Futási idő: Tegyük fel, hogy m = n, ekkor: legjobb eset Θ(n), legrosszabb eset Θ(n 2 ), átlagos eset Θ(n). Edényrendezés Tegyük fel, hogy a rendezendő H = {a 1,...,a n } halmaz elemei a [0,1) intervallumba eső valós számok. Vegyünk m db vödröt, V [0],...,V [m 1] és osszuk szét a rendezendő halmaz elemeit a

Részletesebben

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

Logika es sz am ıt aselm elet I. r esz Logika 1/36 1/36 Logika és számításelmélet I. rész Logika 2/36 Elérhetőségek Tejfel Máté Déli épület, 2.606 matej@inf.elte.hu http://matej.web.elte.hu Tankönyv 3/36 Tartalom 4/36 Bevezető fogalmak Ítéletlogika Ítéletlogika

Részletesebben

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13. Algoritmuselmélet NP-teljes problémák Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 13. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet

Részletesebben

Feladatok, amelyek gráfokkal oldhatók meg 1) A königsbergi hidak problémája (Euler-féle probléma) a

Feladatok, amelyek gráfokkal oldhatók meg 1) A königsbergi hidak problémája (Euler-féle probléma) a Feladatok, amelyek gráfokkal oldhatók meg ) A königsbergi hidak problémája (Euler-féle probléma) a b d c A megfelelő gráf: d a b c ) Egy szórakoztató feladat (Hamilton-féle probléma) Helyezzük el az,,,...,

Részletesebben

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus Ítéletkalkulus Logikai alapfogalmak, m veletek, formalizálás, logikai ekvivalencia, teljes diszjunktív normálforma, tautológia. 1. Bevezet A matematikai logikában az állításoknak nem a tényleges jelentésével,

Részletesebben

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

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1 Halmazelmélet 1. előadás Farkas István DE ATC Gazdaságelemzési és Statisztikai Tanszék Halmazelmélet p. 1/1 A halmaz fogalma, jelölések A halmaz fogalmát a matematikában nem definiáljuk, tulajdonságaival

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

22. GRÁFOK ÁBRÁZOLÁSA

22. GRÁFOK ÁBRÁZOLÁSA 22. GRÁFOK ÁBRÁZOLÁSA A megoldandó feladatok, problémák modellezése során sokszor gráfokat alkalmazunk. A gráf fogalmát a matematikából ismertnek vehetjük. A modellezés során a gráfok több változata is

Részletesebben

Diszkrét matematika 1. középszint

Diszkrét matematika 1. középszint Diszkrét matematika 1. középszint 2017. sz 1. Diszkrét matematika 1. középszint 3. el adás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Mérai László diái alapján Komputeralgebra

Részletesebben

Algoritmuselmélet 1. előadás

Algoritmuselmélet 1. előadás Algoritmuselmélet 1. 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 Február 11. ALGORITMUSELMÉLET 1. ELŐADÁS 1 Források

Részletesebben

0 ; a k ; :::) = ( 0: x = (0; 1; 0; 0; :::; 0; :::) = (0; 1)

0 ; a k ; :::) = ( 0: x = (0; 1; 0; 0; :::; 0; :::) = (0; 1) 3. EGYVÁLTOZÓS POLINOMOK 3.A.De níció. Komplex számok egy f = (a 0 ; a 1 ; :::; a k ; :::) végtelen sorozatáról azt mondjuk, hogy polinom, ha létezik olyan m 0 egész, hogy minden k m indexre a k = 0. Az

Részletesebben

SZÁMÍTÁSTUDOMÁNY ALAPJAI

SZÁMÍTÁSTUDOMÁNY ALAPJAI SZÁMÍTÁSTUDOMÁNY ALAPJAI INBGM0101-17 Előadó: Dr. Mihálydeák Tamás Sándor Gyakorlatvezető: Kovács Zita 2017/2018. I. félév 2. gyakorlat Az alábbi összefüggések közül melyek érvényesek minden A, B halmaz

Részletesebben

Nagyordó, Omega, Theta, Kisordó

Nagyordó, Omega, Theta, Kisordó A növekedés nagyságrendje, számosság Logika és számításelmélet, 6. gyakorlat 2009/10 II. félév Számításelmélet (6. gyakorlat) A növekedés nagyságrendje, számosság 2009/10 II. félév 1 / 1 Nagyordó, Omega,

Részletesebben

Kronecker-modulusok kombinatorikája és alkalmazások

Kronecker-modulusok kombinatorikája és alkalmazások Kronecker-modulusok kombinatorikája és alkalmazások BBTE, Magyar Matematika es Informatika Intézet Tegezek Meghatározás Egy Q tegez egy irányított multigráf (két csomópont között több irányított él is

Részletesebben

A = fx j P (x) igazg ; A = fx j 1 x 7; x prímszámg : A [ B = fx j x 2 A, vagy x 2 Bg ; [a::b] := [a; b] \ Z

A = fx j P (x) igazg ; A = fx j 1 x 7; x prímszámg : A [ B = fx j x 2 A, vagy x 2 Bg ; [a::b] := [a; b] \ Z 1 Alapfogalmak Halmaz: Azonos tulajdonságú elemek összessége. Halmaz jelölése: Latin ABC nagybet½ui (általában). Halmaz elemeinek jelölése: Latin kisbet½uk (általában). Halmaz megadása: a) elemeinek felsorolásával,

Részletesebben

Struktúra nélküli adatszerkezetek

Struktúra nélküli adatszerkezetek Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A

Részletesebben

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje 1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt

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

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10. Összetett programozási tételek Sorozathoz sorozatot relő feladatokkal foglalkozunk. A bemenő sorozatot le kell másolni, s közben az elemekre vonatkozó átalakításokat lehet végezni rajta: Input : n N 0,

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

Logika és informatikai alkalmazásai

Logika és informatikai alkalmazásai Logika és informatikai alkalmazásai 4. gyakorlat Németh L. Zoltán http://www.inf.u-szeged.hu/~zlnemeth SZTE, Informatikai Tanszékcsoport 2011 tavasz Irodalom Szükséges elmélet a mai gyakorlathoz Előadás

Részletesebben

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

HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet: Gábor Miklós HHF0CX 5.7-16. Vegyük úgy, hogy a feleségek akkor vannak a helyükön, ha a saját férjeikkel táncolnak. Ekkor már látszik, hogy azon esetek száma, amikor senki sem táncol a saját férjével, megegyezik

Részletesebben

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

Házi feladatok megoldása. Nyelvtani transzformációk. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 6. gyakorlat. Nyelvtani transzformációk Formális nyelvek, 6. gyakorlat a. S (S) SS ε b. S XS ε és X (S) c. S (SS ) Megoldás: Célja: A nyelvtani transzformációk bemutatása Fogalmak: Megszorított típusok, normálformák,

Részletesebben

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám. 1 Az utazó ügynök problémája Utazó ügynök feladat Adott n számú város és a városokat összekötő utak, amelyeknek ismert a hossza. Adott továbbá egy ügynök, akinek adott városból kiindulva, minden várost

Részletesebben

Bevezetés. 1. fejezet. Algebrai feladatok. Feladatok

Bevezetés. 1. fejezet. Algebrai feladatok. Feladatok . fejezet Bevezetés Algebrai feladatok J. A számok gyakran használt halmazaira a következ jelöléseket vezetjük be: N a nemnegatív egész számok, N + a pozitív egész számok, Z az egész számok, Q a racionális

Részletesebben

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik.

Specifikáció. B logikai formula, a bemeneti feltétel, K logikai formula, a kimeneti feltétel, A az algoritmus, amelyre az állítás vonatkozik. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt kimeneti adatot

Részletesebben

Predikátumkalkulus. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. Vizsgáljuk meg a következ két kijelentést.

Predikátumkalkulus. Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. Vizsgáljuk meg a következ két kijelentést. Predikátumkalkulus Predikátumkalkulus alapfogalmai, formalizálás, tagadás, logikailag igaz formulák. 1. Bevezet Vizsgáljuk meg a következ két kijelentést. Minden almához tartozik egy fa, amir l leesett.

Részletesebben