Belépés címtáras azonosítással
magyar nyelvű adatlap
Theorie der Algorithmen
A tantárgy angol neve: Theory of Algorithms (In German)
Adatlap utolsó módosítása: 2006. november 27.
Tantárgy lejárati dátuma: 2015. január 31.
Műszaki informatika
2.
BSZ II. kredit
Programozás alapjai I. kredit
Turing gépek (TG): definíció; egyszerû példák; idõ- és tárkorlátos TG; univerzális TG; többszalagos TG szimulációja 1 szalagossal, TG-k konstrukciója.
A kiszámíthatóság elméletének alapjai: Rekurzíve felsorolható és rekurzív nyelvek, parciális rekurzív és rekurzív függvények, kapcsolatuk egymással; R a RE és coRE osztályok metszete; RE-n kívüli nyelvek létezése; a megállási feladat eldönthetetlensége, nyelv-tulajdonságok eldönthetetlensége; Hilbert 10. problémája; dominóprobléma; Post feladat; Church-Turing tézis.
A RAM gép: definíció; logaritmikus költség és uniform költség
RAM-TG és TG-RAM szimulációk.
Kolgomorov bonyolultság: invariancia tétel: összenyomhatatlan szavak létezése, alkalmazások; a Kolgomorov bonyolultság kiszámíthatatlansága.
Nevezetes bonyolultsági osztályok: idõ és tár kapcsolata; lineáris idõ, P, FP, PSPACE, EXPTIME példákkal.
Az NP nyelvosztály: Nemdeterminisztikus Turing gépek (NTG); NP definíciója NTG-vel illetve tanúkkal; példák NP-beli nyelvekre (gráftulajdonságok: összefüggõség, színezhetõség, független ponthalmazok, Hamilton-kör stb.; lieáris egyenlõtlenség-rendszerek, összetett illetve prímszámok); jó karakterizáció (NP és coNP metszete), Pratt, Kuratowski. NP-teljesség: Karp redukció, NP-teljesség, Cook-Levin tétel; nevezetes NP-teljes nyelvek (3-SAT, 3-színezés, független ponthalmaz, 3DM, hátizsák probléma, ládapakolás stb.).
Algoritmus-tervezési technikák: mohó módszer (pl. minimális költségû feszítõfa), oszd meg és uralkodj, dinamikus programozás (pl. hátizsák), korlátozás és elágazás (pl. maximális független ponthalmaz gráfban), közelítõ módszerek (pl. ládapakolási heurisztikák).
Adatrendezési módszerek: rendezés összehasonlításokkal (beszúrásos, összefésülõ, gyorsrendezés); kupac fogalma, kupacos rendezés; kulcsmanipulációs rendezések (láda- és radixrendezés); külsõ tárak tartalmának rendezése. Alapvetõ adatszerkezetek: tömb, lista, verem, sor; keresõ fák (bináris keresõfák, 2-3 fák, B-fák, AVL fák, szófák); hashelés (cél, alkalmazhatóság, kezelendõ problémák), ütközések feloldása (láncolás, nyitott címzés), jó hash-függvények; szekvenciális keresés. Információ tömörítés.
Alapvetõ gráf-algoritmusok: gráfok tárolására szolgáló adatszerkezetek; legrövidebb utak keresése (Dijkstra, Floyd, Warshall módszerei); mélységi keresés és aklkalmazásai (DAG tulajdonság tesztelése, erõs komponensek); topologikus rendezés; szélességi keresés; minimális költségû feszítõfa keresése (piros-kék algoritmus, Boruvka, Prim és Kruskal módszerei); az UNIÓ-HOLVAN adatszerkezet; maximális párosítás kétrészes gráfokban, folyamok hálózatokban. Alapvetõ aritmetikai algoritmusok: euklideszi algoritmus, gyors hatványozás.
a. A szorgalmi időszakban:
- a félév lezárásának módja: aláírás
- a félév lezárásához szükséges követelmény: sikeres zárthelyi
b. A vizsgaidőszakban:
- írásbeli vizsga
Tankönyv: Ivanyos, Rónyai, Szabó: Algoritmusok, Typotex Kiadó, 1998
Az anyaghoz részben használható további szakkönyvek:
Cormen Leiserson, Rivest: Algoritmusok, Mûszaki Könyvkiadó, 1997
Feladatgyûjtemény elérhetõ: http://www.cs.bme.hu/~friedl/alg