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



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

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:

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

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:

Automaták mint elfogadók (akceptorok)

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

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

Algoritmuselmélet 12. előadás

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

A Számítástudomány alapjai

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

Turing-gép május 31. Turing-gép 1. 1

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é. (Albert Einstein) Halmazok 1

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.

Chomsky-féle hierarchia

NP-teljesség röviden

Chomsky-féle hierarchia

Atomataelmélet: A Rabin Scott-automata

Számításelmélet. Második előadás

Halmazelméleti alapfogalmak

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

ZH feladatok megoldásai

KOVÁCS BÉLA, MATEMATIKA I.

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

Automaták és formális nyelvek

Matematikai logika és halmazelmélet

A matematika nyelvér l bevezetés

Itt és a továbbiakban a számhalmazokra az alábbi jelöléseket használjuk:

Számításelmélet. Will június 13. A kiszámíthatóság fogalma és a Church-Turing tézis

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

Diszkrét matematika I.

HALMAZELMÉLET feladatsor 1.

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

2014. szeptember 24. és 26. Dr. Vincze Szilvia

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

Véges automaták, reguláris nyelvek

Diszkrét matematika 2.C szakirány

DiMat II Végtelen halmazok

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

Formális nyelvek - 9.

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

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

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

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

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

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

Államvizsga kérdések a matematikus szakon, 2001.

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

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

Alap fatranszformátorok II

KOVÁCS BÉLA, MATEMATIKA I.

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

1. tétel - Gráfok alapfogalmai

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

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

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

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


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

Diszkrét matematika 2.

A valós számok halmaza

Algoritmuselmélet 18. előadás

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!

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

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

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

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.

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

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

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.

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

A relációelmélet alapjai

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

Relációk. 1. Descartes-szorzat. 2. Relációk

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!

SZÁMÍTÁSTUDOMÁNY ALAPJAI

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

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!

Az optimális megoldást adó algoritmusok

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

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

ú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.

Gráfelméleti feladatok. c f

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

Diszkrét matematika 2 (C) vizsgaanyag, 2012 tavasz

Diszkrét matematika 1. középszint

Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)

22. GRÁFOK ÁBRÁZOLÁSA

2. Logika gyakorlat Függvények és a teljes indukció

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

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. 12.

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

Struktúra nélküli adatszerkezetek

n =

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

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

MM CSOPORTELMÉLET GYAKORLAT ( )

Diszkrét matematika 2.

Analízis elo adások. Vajda István szeptember 10. Neumann János Informatika Kar Óbudai Egyetem. Vajda István (Óbudai Egyetem)

Átírás:

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. Jelölések........................................ 9 2.2. Relációk és függvények................................ 10 2.3. Függvények aszimptotikus jellemzése........................ 11 2.4. Gráfok......................................... 15 2.5. Halmazok számossága................................ 17 2.6. Nyelvek és szavak................................... 20 3. Algoritmusok, kiszámítható függvények és döntési problémák 25 4. Formális nyelvek és automaták 29 4.1. Formális nyelvek................................... 29 4.1.1. Generatív nyelvtanok osztályozása...................... 31 4.2. Automaták...................................... 33 4.2.1. Véges determinisztikus automaták...................... 33 4.2.2. Véges nem determinisztikus automaták................... 36 4.2.3. Verem automaták............................... 37 5. Számítási modellek 43 5.1. Turing gépek..................................... 44 5.1.1. Turing gépek programozása......................... 47 5.2. A Turing gép kiterjesztései.............................. 50 5.3. Regiszter gépek és a RAM modell.......................... 52 5.4. Boole-függvények és logikai hálózatok........................ 55 5.5. Számítási modellek ekvivalenciája.......................... 57 5.6. Univerzális Turing gépek............................... 58 6. Algoritmikus eldönthet½oség és kiszámíthatóság 61 6.1. Nyelvek felismerése és eldöntése Turing gépekkel.................. 61 6.2. Eldönthetetlen problémák.............................. 68 6.2.1. Néhány további eldönthetetlen probléma.................. 70 6.3. Turing kiszámítható függvények........................... 72 6.3.1. Primitív rekurzív függvények......................... 72 6.3.2. Parciális rekurzív függvények........................ 76

4 TARTALOMJEGYZÉK 7. Algoritmusok analízise 79 7.1. Bevezetés....................................... 79 7.1.1. Elméleti eredmények és fogalmak...................... 79 7.1.2. Az oszd meg és uralkodj elv......................... 83 7.1.3. A mester tétel................................. 84 7.2. Keresési, rendezési és kiválasztási feladatok..................... 86 7.2.1. Keresési feladatok............................... 86 7.2.2. Rendezési feladatok.............................. 89 7.2.3. Alsó becslés a rendezések bonyolultságára................. 94 7.2.4. Kiválasztási feladatok............................. 95 7.3. Aritmetikai algoritmusok............................... 99 7.3.1. Szorzás..................................... 100 7.3.2. Osztás..................................... 102 7.4. Mátrixalgoritmusok.................................. 106 7.4.1. Mátrixok és vektorok szorzása........................ 106 7.4.2. Winograd mátrix szorzó algoritmusa.................... 107 7.4.3. Strassen mátrix szorzó algoritmusa..................... 109 7.4.4. Megjegyzések a gyors mátrix szorzásokról.................. 111 7.4.5. Mátrixinvertálás és lineáris egyenletrendszerek............... 113 7.5. A gyors Fourier-transzformáció........................... 115 7.5.1. A gyors Fourier transzformáció alkalmazásai I: a konvolúció........ 121 7.5.2. A gyors Fourier transzformáció alkalmazásai II: polinomok és egész számok gyorsszorzása................................. 122 7.6. Numerikus algoritmusok............................... 124 7.6.1. Egyváltozós polinomegyenletek megoldása................. 125 7.6.2. Smale és Schönhage eredményei....................... 136 7.7. Párhuzamos algoritmusok.............................. 136 7.7.1. Párhuzamos számítások modelljei...................... 138 7.7.2. Hatékonysági mutatók............................ 144 7.7.3. Esettanulmányok............................... 146 7.7.4. Párhuzamos bonyolultsági osztályok..................... 151 8. Számítási bonyolultság 155 8.1. Az NP osztály és NP-teljesség............................ 155 8.1.1. Nem-determinisztikus Turing-gépek és az NP osztály........... 156 8.1.2. NP-teljesség.................................. 159 8.2. A Blum-Shub-Smale algoritmus modell....................... 162 9. Függelék 167 9.1. A programozás alapfogalmainak egy nemdeterminisztikus, relációelméleti leírása 167 9.2. Irodalom........................................ 169

BEVEZETÉS 5 1. fejezet Bevezetés "Amit hallok, elfelejtem. Amit látok, emlékezem. Amit csinálok, megértem." Konfuciusz Mi a számítástudomány? 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 problémák bonyolultság elméletét, a matematikai logikát, a formális nyelvek elméletét, a programozáselméletet é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 (algoritmusok 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, 173 198 ). 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, 1936-7, 230 265 ).

6 BEVEZETÉS Kurt Gödel (1906-1978) Alan Turing (1912-1954) 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, 345 363). 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, 727 742 ). Alonzo Church (1903-1995) S. C. Kleene (1909-1994) É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 [: : :].

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.

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

MATEMATIKAI ALAPFOGALMAK 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.

2.2. Relációk és függvények 10 MATEMATIKAI ALAPFOGALMAK 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.

FÜGGVÉNYEK ASZIMPTOTIKUS JELLEMZÉSE 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 0 0 0 0 1 0 1 0 0 1 1 1 x y x _ y 0 0 0 0 1 1 1 0 1 1 1 1 x y x y 0 0 0 0 1 1 1 0 1 1 1 0 x x 0 1 1 0 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. 2.3. 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.

y 12 MATEMATIKAI ALAPFOGALMAK 8 6 4 2 0 2 4 0 50 100 150 200 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 = 256 3 7 =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 max fc 1 ; c 2 g 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 ) :

y y FÜGGVÉNYEK ASZIMPTOTIKUS JELLEMZÉSE 13 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. 8 7 6 5 4 3 2 1 0 1 2 0 50 100 150 200 x f(x)=(g(x)) aszimptotika f(x) c*g(x) Példa: (1=2) n 2 5n = (n 2 ), mert 1 2 n2 5n =n 2 = 1 2 5 1 n 4 ; n 20. De níció: f (n) = (g (n)) ( f (n) 2 (g (n))), ha létezik c 1 ; c 2 ; n 0 > 0 konstans, hogy c 1 jg (n)j jf (n)j c 2 jg (n)j teljesül minden n n 0 számra. Alternatív de níció: f (n) = (g (n)), f (n) = O (g (n)) ^ g (n) = O (f (n)). 15 10 f(x) c1*g(x) c2*g(x) 5 0 0 50 100 150 200 x f(x)=(g(x)) aszimptotika

y 14 MATEMATIKAI ALAPFOGALMAK Példa: 2n 2 + 3n log n log n + 3 = (n 2 ), mert 1 2n2 + 3n log n log n + 3 n 2 = 2 + 3 log n n log n n 2 + 3 n 2 3; ha n elég nagy. Állítás: p (n) = P d i=0 a in i = n d, ha a d 6= 0. 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: 16 14 12 sqrt(x) log(x) log(x)/sqrt(x) 10 8 6 4 2 0 2 4 10 1 10 0 10 1 10 2 10 3 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 ) De níció: f (n) g (n), ha f (n) lim n!1 g (n) = 1: Példa: p n + log n p n.

2.4. Gráfok GRÁFOK 15 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]. 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.

16 MATEMATIKAI ALAPFOGALMAK A A E D B C D B C A B C B 3 4 A 2 3 2 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. 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. csúcspont nyel½o, ha ki (u) = 0, de be (u) > 0. Az u 2 V 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 összefügg½o, ha az irányítások elhagyásával kapott gráf összefügg½o. 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.

HALMAZOK SZÁMOSSÁGA 17 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. 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 3 2.5. 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.

18 MATEMATIKAI ALAPFOGALMAK 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 halmazának @ 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. 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. Bizonyítás: Véges halmazokra az állítást korábban igazoltuk. Tegyük fel, hogy X 6= ;. A 2 X hatványhalmaz tartalmazza X összes egy elem½u részhalmazát, ezért jxj 2 X. Most már csak azt

HALMAZOK SZÁMOSSÁGA 19 kell igazolnunk, hogy jxj 6= 2 X, ha X 6= ;. Tegyük fel ennek az ellenkez½ojét. Ekkor léteznie kell egy kölcsönösen egyértelm½u f : X! 2 X megfeleltetésnek (pont-halmaz leképezésnek) a két halmaz között. Vizsgáljuk az A = fx 2 X j x =2 f (x)g halmazt, amely azon X-beli x elemek halmaza, amelyek nincsenek benne az x-hez rendelt f (x) 2 2 X halmazban. Minthogy A 2 2 X, létezik egy a 2 X, hogy f (a) = A. Az a elemre nem teljesülhet a 2 A = f (a), mert A pontosan azon y elemek halmaza, amelyekre y =2 f (y). Másrészt az a =2 A = f (a) reláció sem lehetséges, mert akkor a 2 A lenne, ami megint ellentmond A de níciójának. Tehát az azonos számosság feltevésével ellentmondásra jutottunk, vagyis jxj 6= 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 számosságát @ 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 számossága @ 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-) 1963- 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) ; : : : 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:

20 MATEMATIKAI ALAPFOGALMAK (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 1) 1 + 2 + + (m + n 2) = : 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: (m + n 2) (m + n 1) j (m; n) = + m = m2 + 2mn + n 2 m 3n + 2 : 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ó). 2.6. 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.

NYELVEK ÉS SZAVAK 21 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. 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