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

Hasonló dokumentumok
Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamá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. 13.

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

Számítógép és programozás 2

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

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

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

Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Algoritmuselmélet 1. előadá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.

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Lineáris egyenletrendszerek

Bevezetés a számításelméletbe (MS1 BS)

Számítógép hálózatok, osztott rendszerek 2009

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Klasszikus algebra előadás. Waldhauser Tamás április 28.

Algoritmuselmélet 2. előadás

Algoritmusok bonyolultsága

Tesztkérdések az ALGORITMUSELMÉLET tárgyból, 2001/ félév

Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.

Diszkrét matematika 2.

Dr. Schuster György február / 32

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

Hatékonyság 1. előadás

A valós számok halmaza

Haladó rendezések. PPT 2007/2008 tavasz.

Mátrixok 2017 Mátrixok

Algoritmuselmélet 1. előadás

Algoritmuselmélet 18. előadás

Diszkrét matematika 2.C szakirány

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.

Meghirdetés féléve 2 Kreditpont Összóraszám (elm+gyak) 2+0

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

GROVER-algoritmus. Sinkovicz Péter. ELTE, MSc II dec.15.

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

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

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

Térinformatikai algoritmusok Elemi algoritmusok

7. előadás Gyors szorzás, gyors Fourier-transzformáció

7. előadás Gyors szorzás, gyors Fourier-transzformáció

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

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Approximációs algoritmusok

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Nagyordó, Omega, Theta, Kisordó

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Algoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.

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

Adatszerkezetek 2. Dr. Iványi Péter

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

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

Gazdasági matematika II. tanmenet

2017/2018. Matematika 9.K

NP-teljesség röviden

Térinformatikai algoritmusok Elemi algoritmusok

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

LINEÁRIS EGYENLETRENDSZEREK október 12. Irodalom A fogalmakat, definíciókat illetően két forrásra támaszkodhatnak: ezek egyrészt elhangzanak

Vektorok, mátrixok, lineáris egyenletrendszerek

Modern irányzatok a bonyolultságelméletben: éles korlátok és dichotómia tételek

Algoritmusok bonyolultsága

Felvételi tematika INFORMATIKA

Algoritmusok komplexitása. Függvények növekedése Függvények növekedése: Nagy Ordó. Nagy Ordó jelölés. Nagyságrend

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós

Algoritmusok bonyolultsága

Diszkrét matematika 2.

Programozás II. előadás

Diszkrét matematika 2.C szakirány

Alapvető polinomalgoritmusok

Gráfok 2. Legrövidebb utak, feszítőfák. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor

Diszkrét Irányítások tervezése. Heurisztika Dr. Bécsi Tamás

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.

Matematika szigorlat június 17. Neptun kód:

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

Operációkutatás. Vaik Zsuzsanna. ajánlott jegyzet: Szilágyi Péter: Operációkutatás

19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI

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

Totális Unimodularitás és LP dualitás. Tapolcai János

Rendezések. Összehasonlító rendezések

Adatszerkezetek 1. előadás

Gyakorló feladatok. Agbeko Kwami Nutefe és Nagy Noémi

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

Sarokba a bástyát! = nim

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Numerikus módszerek beugró kérdések

Lineáris algebra Gyakorló feladatok

Bevezetés a bonyolultságelméletbe gyakorlatok I. A(0, y) := y + 1 y 0 A(x, 0) := A(x 1, 1) x 1 A(x, y) := A(x 1, A(x, y 1)) x, y 1

Számítógép és programozás 2

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

Struktúra nélküli adatszerkezetek

ELTE IK Esti képzés tavaszi félév. Tartalom

26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

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

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

1. előadás: Halmazelmélet, számfogalom, teljes

Átírás:

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 0), hogy valamely n 0 felett mindig 0 f(n) c g(n) Másként: f(n) = O(g(n)) vagy az f(n) függvény O(g(n))-es Feladatok Igaz-e, hogy az f(n) = n függvény O(n 2 )-es? Igaz-e, hogy az f(n) = n függvény O(n)-es? Igaz-e, hogy az f(n) = 5 n/2 függvény O(n)-es? Aszimptotikus felső korlát sokszor keveset mond Aszimptotikusan éles felső korlát ez az érdekes számunkra 2

Klasszikus algoritmusok kategorizálása Egy művelet számunkra: hasonlítás, értékadás stb. O(log n)-es algoritmusok Keresés rendezett tömbben annak eldöntése, hogy egy adott elem benne van-e a tömbben Ötlet: minden lépésben felezzük a még bejáratlan részt Beszúrás rendezett tömbbe O(n)-es lineáris algoritmusok Legnagyobb ill. legkisebb elem megkeresése, adott elem megkeresése nem rendezett tömbben (elemszám: n); ötlet: egyszer kell végignézni a tömböt Két ill. konstans darab tömb (vektor) összeadása, összehasonlítása n hosszú egészek összeadása *Egyes speciális rendezések O(n 2 )-es algoritmusok Klasszikus rendezési algoritmusok, pl. kiválasztásos és buborékos rendezés (a tömb elemszáma: n) ötlet: két egymásba ágyazott ciklus kell Érdekes lehet még az Ordóban elrejtett konstans is (de ez a lényeget már kevésbé befolyásolja) n n-es mátrixok összeadása, konstanssal való szorzása n hosszú egészek szorzása (a klasszikus megoldás szerint) O(n 3 )-ös algoritmusok Klasszikus mátrixszorzás 3

Klasszikus algoritmusok kategorizálása O(n log n)-es algoritmusok Gyorsrendezés (általában) n hosszú egészek szorzása gyors Fourier-transzformációval O(n c )-es algoritmusok, ahol 1 < c < 2 Karacuba módszere n hosszú egészek szorzására O(n c )-es algoritmusok, ahol 2 < c < 3 Strassen módszere n n-es mátrixok szorzására Gauss-elimináció megvalósítása n n-es együtthatómátrix esetén A polinomiális időben megoldható problémák osztályát P-vel jelöljük Nem polinomiális (hanem exponenciális) algoritmusok Teljes prímfaktorizáció (pl. a klasszikus osztóleválasztásos módszerrel) Mátrix inverzének meghatározása a rekurzív determinánskifejtés módszerével Utazó ügynök probléma (Hamilton-kör létezése) Sakk játék teljes elemzése (hasonlóan: go, dáma stb.) Összehasonlítás: Tfh. az A algoritmus 2 n lépésben működik, B 3000n 5 lépésben; gépünk pedig 10 12 /sec műveletet végez A megoldható problémák mérete 1 perc alatt: A algoritmussal B algoritmussal 1 óra alatt: A algoritmussal 51, B algoritmussal 260 13 [ log 6 10 ] 45, n 6 10 n 5 3000 2 = 13 = 114 4

P és NP Az NP problémaosztály Az utazó ügynök probléma megoldható polinomiális időben, ha egy varázsló (orákulum) megmutatja nekünk az utat (és nekünk csak ellenőrizni kell) Mindez több más hasonló problémára igaz, ezeket a problémákat NP-belieknek nevezzük (nem-determinisztikus polinomiális) Világos, hogy P NP Eldöntetlen kérdés ugyanakkor, hogy P = NP? A co-np problémaosztály Vannak olyan problémák, amelyeknek a tagadását tudjuk polinom időben igazolni, ha segít a varázsló; pl.: igaz-e, hogy a gráfban nincs Hamilton-kör? Ezek a co-np-beli problémák Tudjuk, hogy NP co-np nem üres, ide tartozik pl. Van-e egy gráfban teljes párosítás? Síkbarajzolható-e egy gráf? Indoklás 1: a varázsló mutat nekünk egy teljes párosítást, ill. lerajzolja síkba a gráfot *Indoklás 2: a varázsló mutat nekünk egy X részhalmazt, amire N(X) < X (szomszédok száma), ill. egy részgráfot, ami izomorf valamelyik Kuratowski-gráffal Az is igaz, hogy P NP co-np NP-teljes probléma: minden NP-beli probléma visszavezethető rá, és benne van NP-ben 5

P és NP Időnként az exponenciális algoritmusokkal megoldható feladatokkal is boldogulunk Nem feledkeztünk-e el valamiről? Egyes speciális feltételek teljesülése esetén létezhet NP-beli problémára is polinomrendű, gyors megoldó algoritmus Adott (nem nagyon nagy) n-re akár még le tudjuk futtatni az exponenciális megoldó algoritmust is Gyakran polinomrendű algoritmus ad az optimálishoz közeli megoldást Előfordulhat, hogy tudunk olyan polinomrendű algoritmust készíteni, amely majdnem biztosan helyes választ ad (prímtesztek) *Nevezetes polinomrendű, ill. NP-teljes feladatok P-beli Van-e egy gráfban minimum k darab független él? Van-e egy gráfban maximum k hosszúságú út? Van-e egy gráfban maximum k hosszúságú kör? Kiszínezhetőek-e egy gráf pontjai legfeljebb 2 színnel? NP-teljes Van-e egy gráfban minimum k darab független pont? Van-e egy gráfban minimum k hosszúságú út? Van-e egy gráfban minimum k hosszúságú kör? Kiszínezhetőek-e egy gráf pontjai legfeljebb k (k 3) színnel? 6

Egy nem triviális klasszikus algoritmus bemutatása Hogyan lesz általában O(n log n)-es a gyorsrendezés? Algoritmus és műveletigény-fa 7

Ajánlott irodalom Cormen, Leiserson, Rivest: Algoritmusok, Műszaki Kiadó, Budapest, 1998 (több kiadás) Gács Péter, Lovász László: Algoritmusok, Tankönyvkiadó, Budapest, 1978 (több kiadás) Katona Gyula, Recski András, Szabó Csaba: Gráfelmélet, algoritmuselmélet és algebra, Egyetemi jegyzet, BME, 1997 Katona Gyula, Recski András, Szabó Csaba: A számítástudomány alapjai, Typotex Kiadó, Budapest, 2003 8