Algoritmusok komplexitása. Függvények növekedése Függvények növekedése: Nagy Ordó. Nagy Ordó jelölés. Nagyságrend
|
|
- Hanna Ballané
- 6 évvel ezelőtt
- Látták:
Átírás
1 2018. Algoritmusok komplexitása Függvények növekedése Nagyságrend 1 Nagy Ordó jelölés Függvények növekedése: Nagy Ordó Aszimptotikus komplexitási mérték, a számítógépes programok jóságát (gyorsaságát, takarékosságát) jellemzi Nem próbáljuk meg PONTOSAN megszámolni, hány lépés egy algoritmus, hanem inkább azt, hogy ez a lépésszám milyen mértékben nő a bemeneti adatok számának növekedéséhez viszonyítva Olyan jellemző, amely a különböző operációs rendszerek, fordítók, CPU-k esetén is alkalmazható Ez az aszimptotikus komplexitás az ún. nagy ordó jelöléssel fejezhető ki. (Big-O) Definíció: f és g két függvény: N R+. Azt mondjuk, hogy f(n) = O(g(n))( nagy ordó g(n) ) akkor és csak akkor, ha létezik két olyan pozitív konstans c és n 0 úgy, hogy f(n) c g(n) minden n n 0 -ra. Azt mondjuk ekkor, hogy g(n) (aszimptotikus) felső korlátja f(n)-nek 3 4
2 Aszimptotikus felső korlát Példa az aszimptotikus felső korlátra f(n) c g(n) minden n n 0 g(n) az aszimptotikus felső korlátja f(n)-nek Jelölése: f(n)=o(g(n)) Olvasása: f(n) nagy ordó g(n) Angolul: f(n) is big oh of g(n). c g(n) f(n) g(n) 4 g(n) = 4n 2 = 3n 2 + n 2 3n minden n 3 > 3n = f(n) Tehát: f(n)=o(g(n)): 3n 2 +5=O(n 2 ) 4g(n)=4n 2 f(n)=3n 2 +5 g(n)=n 2 n Nagy Ordo példák Nagy Ordo példák (folytatás) f(n) = 15n 2 + 7n g(n) = ½ n 3 f(n)=o(g(n)) mert n 0 =16 és c=2 választással, minden n n 0 -ra f(n) = 15n 2 + 7n 16n 2 n 3 = c g(n). Mutassuk meg, hogy 3n 2 +2n+5 = O(n 2 ) 5n n = O(n 4 ). n 0 =1, c=32. (De pl. n 0 =3 és c=6 is jó) 7 8
3 Nagy Ordo példák (folytatás) Nagy Ordo példák (folytatás) A lehető legegyszerűbb és legkisebb függvényt használjuk az O mögött: Mutassuk meg, hogy 3n 2 +2n+5 = O(n 2 ) 10 n 2 = 3n 2 + 2n 2 + 5n 2 3n 2 + 2n + 5 ha n 1 c = 10, n 0 = 1 3n 2 +2n+5 = O(n 2 ) Ezek itt pl. helyesek, de nem hasznosak: 3n 2 +2n+5 = O(3n 2 +2n+5) 3n 2 +2n+5 = O(n 2 +n) 3n 2 +2n+5 = O(3n 2 ) 9 10 Nagy Ordo példák (folytatás) Nagy Ordo példák (folytatás) f(n) = a n k +, f(n) = O(n k ) minden r k-ra f1(n) = 10 n + 25 n 2 f2(n) = 20 n log n + 5 n f3(n) = 12 n log n n 2 f4(n) = n 1/2 + 3 n log n O(n 2 ) O(n log n) O(n 2 ) O(n log n) f(n) = a n k +, f(n)=o(2 n ). n = O(n log(n)) n log(n) = O(n d ), d=? d>
4 Nagy Ordo rendezés f(n) = O(f(n)) minden f-re (log(n)) k = O(n) minden konstans k-ra n k = O(2 n ) minden konstans k-ra Nagy Ordo rendezés - A polinomok dominálnak ( nagyobbak ), mint a logaritmus függvények, illetve ezek hatványai - (a log(n) = O(log(n)) minden a-ra, ezért a log alapját nem kell kiírni) - Az exponenciális függvények dominálnak a polinomok fölött Nagy Ordo rendezés Függvények növekedése f(n) = O(g(n) jelentése: c g(n) egy felső korlátja f(n)-nek, olvasd: nagy ordó g(n) f(n) = O(g(n) ÉS g(n) = O(f(n)) akkor f és g NAGYSÁGRENDJE EGYENLŐ Analízis: f(n) = o(g(n)) jelentése: f ( n) olvasd: kis ordó g(n) lim n g( n) 0 Informálisan: A nagy ordo kb azt jelenti, hogy az f függvény kisebb egyenlő, mint g, a kis ordo pedig, hogy az f határozottan kisebb 15 16
5 KIEGÉSZÍTŐ ANYAG:Aszimptotikus alsó korlát KIEGÉSZÍTŐ ANYAG: Példa az aszimptotikus alsó korlátra létezik olyan c és n 0, hogy minden n n 0 -ra f(n) c g(n) g(n) az f(n) aszimptotikus alsó korlátja Jelölés: f(n)= (g(n)) f(n) c g(n) g(n)/4 = n 2 /4 = n 2 /2 n 2 /4 n 2 /2 9 minden n 6 < n 2 /2 7 Tehát: f(n)= (g(n)). g(n)=n 2 f(n)=n 2 /2-7 c g(n)=n 2 /4 n KIEGÉSZÍTŐ ANYAG: Aszimptotikus szoros korlát KIEGÉSZÍTŐ ANYAG: Függvények növekedése f(n) = O(g(n)) és f(n) = (g(n)) n 0 c 2 g(n) f(n) c 1 g(n) f(n) = O(g(n) jelentése: c g(n) egy felső korlátja f(n)-nek, olvasd: nagy ordó g(n) f(n) = (g(n)) jelentése: c g(n) egy alsó korlátja f(n)-nek olvasd: nagy omega g(n) f(n) = (g(n)) jelentése: f(n) és g(n) egyformán növekszik, konstans szorzó erejéig, olvasd: teta g(n) f(n) = (g(n) másképpen azt jelenti, hogy f(n) = O(g(n) ÉS g(n) = O(f(n)) f(n) = o(g(n)) jelentése: olvasd: kis ordó g(n) f ( n) lim n g( n) Informálisan: A nagy ordo kb azt jelenti, hogy az f függvény kisebb egyenlő, mint g, a kis ordo pedig, hogy az f határozottan kisebb
6 KIEGÉSZÍTŐ ANYAG: Függvények növekedése Nagy Ordó Big Oh! f(n) = (g(n) másképpen azt is jelenti, hogy f(n) = O(g(n) ÉS g(n) = O(f(n)) Ekkor azt mondjuk, hogy a két függvény NAGYSÁGRENDJE megegyezik Tulajdonképpen a lényeg ezen nagyságrendi egyezés megállapítása KIEGÉSZÍTŐ ANYAG: Aszimptotikus korlátok Néhány függvény időkomplexitása Aszimptotikus alsó ( ) és felső(o) korlátok egymáshoz való viszonya f ( f ) ( f ) O( f ) Komplexitás n sec sec sec sec sec sec n sec sec sec sec sec sec n sec sec sec sec sec sec n sec 3.2 sec 24.3 sec 1.7 perc 5.2 perc 13.0 perc 2 n 0.001sec 1.0 sec 17.9 perc 12.7 nap 35.7 év 366 évsz 3 n 0.59sec 58 perc 6.5 év 3855 évsz évsz évsz log 2 n sec sec sec sec sec sec n log 2 n sec sec sec sec sec sec 23 24
7 NAGY ORDO/Big-O Time Complexity and Speed Complexity O(1) < 1 s < 1 s < 1 s < 1 s < 1 s < 1 s < 1 s O(log(n)) < 1 s < 1 s < 1 s < 1 s < 1 s < 1 s < 1 s O(n) < 1 s < 1 s < 1 s < 1 s < 1 s < 1 s < 1 s O(n*log(n)) < 1 s < 1 s < 1 s < 1 s < 1 s < 1 s < 1 s O(n 2 ) < 1 s < 1 s < 1 s < 1 s < 1 s 2 s 3-4 min O(n 3 ) < 1 s < 1 s < 1 s < 1 s 20 s 5 hours 231 days O(2 n ) < 1 s < 1 s 260 days hangs hangs hangs hangs O(n!) < 1 s hangs hangs hangs hangs hangs hangs O(n n ) 3-4 min hangs hangs hangs hangs hangs hangs Algoritmusok komplexitása Mit lehet és mit nem lehet megoldani a számítógépek használatával? Algoritmusok komplexitása Ha egy probléma megoldható, milyen könnyű illetve milyen nehéz azt megoldani? Mennyi ideig tart megoldani? - időkomplexitás Mekkora tár kell hozzá? - tárkomplexitás A komplexitás elmélet ezekre e kérdésekre próbál válaszolni 28
8 Algoritmus fogalma Az algoritmus pontos utasítások halmaza, amelyeket elvégezve (akár személyesen, akár számítógéppel) valamely probléma megoldását kapjuk. MEGÁLL!! Az algoritmusokat aszerint hasonlítjuk össze, hogy mennyi ideig futnak,mekkora a tárigényük. Run-time amalízis: a futási idő miként változik a bemeneti adatok számának növelésével? Komplexitás Két kritériumot használunk az algoritmusok összehasonlítására: a.) tár komplexitás b.) idő komplexitása i s a.) valamely algoritmus tár komplexitása az a memória mennyiség, ami a program futásához szükséges. b.) valamely algoritmus idő komplexitása az az idő (mennyiség), amely a program futásához szükséges Komplexitás Egy példa Tár komplexitás-ld. Adatszerkezetek: a probléma megoldásához szükséges memória nagyságrendi becslése. Egy adott program/algoritmus T(n) futási idejének becslésekor a bemenő adatok n számának függvényében kiszámítjuk, hogy az utasítások hányszor hajtódnak végre: Idő komplexitás: nagyságrendi becslés a megoldáshoz szükséges műveletek számára vonatkozóan, a bemenő adatok függvényében. Egy műveletet egy időegység alatt végrehajthatónak képzelünk el, ezért nevezzük időkomplexitásnak, hiszen így a futási időre kapunk információt. Ez az időegység ugyan függ a konkrét géptől, de emberi érzékeléssel nemigen tudunk különbséget tenni ezért a függvény NÖVEKEDÉSE az input adatmennyiség függvényében a lényeges! 31 ÁTLAG: 1. olvassuk be az n számot //felhasználó begépeli) 2. sum= 0 // inicializálás 3. i=0 4.while 1<n 5. olvassuk be a számot= //felhasználó begépeli 6. sum=sum+number 7.i=i+1 8.átlag=sum/n KIÉRTÉKELÉSEK SZÁMA: 1 (időegység) 1 1 n n n n 1 T(n)=4n+4 32
9 Futási idő Worst, best, average A legtöbb algoritmus bemeneti objektumokat alakít kimeneti objektumokká. A futási idő tipikusan növekszik az input méretének növekedésével. Az átlagos esetet nehéz elemezni. A legrosszabb ( worst case) helyzetet vesszük jellemzőnek. Ezt könnyebb elemezni, és fontosabb is. (robotika, közgazdaságtan) Running Time best case average case worst case Input Size 33 Worst-case (legrosszabb eset ): A műveletek maximális száma, garantáltan ennyi lépés után eredményt ad,bármilyen input esetén Best-case (legjobb eset): A műveletek minimális szám nem praktikus Average-case (átlagos eset): Nehéz jól megbecsülni, bármilyen inputra elképzeljük (vagy valószínűségi eloszlást rakhatunk az inputra) ennek függvényében a várható átlagos lépésszám 34 Egyszerű példa legrosszabb, átlagos, legjobb esetekre Lineáris (szekvenciális keresés): A lista /tömb elejétől kezdve megnézzük az elemeket és megállunk, ha megtaláltuk. Worst case: utolsónak találjuk meg, ez n elem esetén n lépés Best case: elsőre megtaláljuk, ez 1 lépés Average case: Lineáris keresés C++ program - O (n) bool LinSearch(double x[ ], int n, double item){ } for(int i=0;i<n;i++){ if(x[i]==item) return true; else return false; } return false; O (n): hiszen a ciklus ebben a megvalósításban n- szer fut, ez az algoritmus lineáris (cn-nel egyenlő nagyságrendű) 35 36
10 A lineáris keresés Bináris keresés O(log2n) Előny: - Könnyű megérteni - A tömb elemeit nem kell rendezni Hátrány: -Lassú, átlagosan n/2 lépés Adott egy szám, value, és egy rendezett tömb a[], meg kell találni azt az i indexet, amely tömbelem azt az értéket tartalmazza, mint a value : a[i] = value, vagy, ha nincs ilyen, akkor kiírni, hogy nincs. Az algoritmus működése: a felénél megnézzük a tartalmat, ha kisebb a keresett számnál, akkor a középső index lesz az intervallum bal oldala, az eredeti a jobboldala: a[bal] value a[jobb] Bináris keresés Bináris keresés Példa: 14 elemű tömbben a 33-at keressük meg lo jobb felező jobb
11 Bináris keresés Bináris keresés bal felező bal felező jobb Bináris keresés Bináris keresés bal jobb balfelejobb
12 Bináris keresés Bináris keresés bal jobb bal jobb felező Bináris keresés Bináris keresés C++ program bal jobb felező bool BinSearch(double list[ ], int n, double item, int&index){ int left=0; int right=n-1; int mid; while(left<=right){ mid=(left+right)/2; if(item> list [mid]){ left=mid+1; } else if(item< list [mid]){right=mid-1;} else{ item= list [mid]; index=mid; return true; } }// while return false; 48
13 Bináris keresés Bináris keresés O(log2n) Előny: Gyors, O(log2n) n jelölje az összes elem számát, amelyek közül meg akarunk keresni egyet. k jelölje a keresés lépéseinek számát. A keresés során minden lépésben megfelezzük az elemek számát. Hátrány: Rendezni kell a tömböt nagyság / ábécé sorrendben Lépések elemek száma, amik száma közül keresünk 0 n 1 n/2 2 (n/2)/2=n/2 2 k (n/2)/2 /2=n/2 k =1 Legrosszabb esetben felezéskor már csak egy, éppen a keresett elemünk maradt, ezért n/2 k =1 n=2 k k=log 2 n Algoritmusok Lin és bin. keresések összehasonlítása Akkor is nehéz két algoritmust öszehasonlítani, ha ugyanazt a problémát oldják meg, pl. két rendező algoritmus. Az első lehet gyorsabb kis n-ekre a második pedig nagyobb n-re Az első lehet gyorsabb, ha pl. az n szám már csaknem rendezve van, a második pedig általános esetben. Az iterációk átlagos száma Darabszám Lineáris keresés Bináris keresés keresés , ,
14 O(1) konstans futási idő O(n) - Linear Time-lineáris idejű alg. Program: x = 3*y + 2; z = z + 1; Ennek végrehajtása konstans ideig tart, azt nehéz lenne megmondani, hogy hány sec egy adott számítógépen, de akárhányszor fut, egyformának vehető a futási idő O(1) azt jelenti, hogy VALAMILYEN konstans, lehet ez 5, 7, vagy akár 7,234,817. Lehetne O(c)-t is írni. Program: for (i = 0; i < n; i++) v[ i ] = v[ i ] + 1; Ez a ciklus pontosan n-szer fut le, tehát feltételezve, hogy a ciklus belsejének végrehajtása konstansnyi idő, akkor a teljes futási idő n-nel arányos: O(n). Az éppen aktuális utasításszám lehet pl. 50, és a futási idő 17n microsec, de lehet éppen 17n+3 is Ameddig ez az n-nek lineáris függvénye mindig O(n)-t írunk, és azt mondjuk, hogy lineáris a futási idő. 53 Példa: lineáris keresés 54 Kis n-ekre mi a jobb? Példa: O(n 2 ) kvadratikus, négyzetes futási időre Azt várjuk, hogy a lineáris idejű algoritmus jobb,mint a négyzetes idejű. Ez nagyjából így is van, de: TFH, egyik program O(n 2 ) = n 2 +4, a másik pedig O(n) = 4n+92 n 2 +4 > 4n+92? vagy n 2 > 4n+88? n=10: 100>128 HAMIS n=11: 121>132 HAMIS n=12: 144>136 IGAZ Minden n<12 re az O(n 2 ) es program gyorsabb Egymásba ágyazott hurkoknál:: for (i = 0; i < n; i++) for (j = 0; j < n; j++) a[ i ][ j ] = b[ i ][ j ] * x; A külső ciklus n-szer fut le,és minden egyes futásánál a belső is n-szer: n*n = n 2 Ennek tehát O(n 2 ) a futási ideje. Azt mondjuk, hogy ez négyzetes, vagy kvadratikus futási idejű program
15 Egy program mátrix szorzásra Különböző programszerkezetek kompl. for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { C[ i ][ j ] = 0; for (k = 0; k < n; k++) { C[ i ][ j ] = C[ i ][ j ] + A[ i ][ k ] * B[ k ][ j ]; } } } 3 egymásba ágyazott hurok: n*n*n = n 3. A legbelső: számok szorzása és összege O(1) idejű. Így e program összességében O(n 3 ) idejű Futási idők elnevezése Szabályok szorzásra és összeadásra Nagy Ordo/Big- O jelentés n=4 n=16 O(1) konstans idejű 1 1 O(log n) logaritmikus idejű 2 4 O(n) lineáris idejű 4 16 O(nlogn) nlogn idejű 8 64 O(n 2 ) négyzetes idejű O(n 3 ) köbös idejű O(n k ) polinomiális idejű 4 k 16 k O(2 n ) exponenciális idejű 16 65,536 Ha T1(n) = O(f(n)) és T2(n) = O(g(n)), akkor T1(n) * T2(n) = O(f(n) * g(n)). T1(n) + T2(n) = O( max {f(n), g(n)} ) 59 60
16 Ha adott egy bizonyítás, arról (algoritmikusan) könnyű eldönteni, hogy jó-e. P Ha a tétel adott, annak bizonyítását algoritmikusan lehetetlen megkeresni. P A feladatoknak azt az osztályát, amelyek polinomiális idejű algoritmussal megoldhatók, P-nek nevezzük Ezek tehát azok az algoritmusok, amelyek valójában kivárhatók Példák P-beli problémákra P: Olyan eldöntendő problémák, amelyeknél a választ (igen,nem) meg tudjuk keresni polinom idejű algoritmussal Probléma Leírás Algoritmus Igen Nem MULTIPLE RELPRIME Igaz-e hogy x többszöröse y-nak? X és y relatív prím-e? Ált. isk.: osztás 51, 17 51, 16 Euklidesz (ie. 300 ) 34, 39 34, 51 PRIMES Az x szám prímszám? AKS (2002) LSOLVE Is there a vector x that satisfies Ax = b? Gauss-Edmonds elimination Agrawal Kayal Saxena prím teszt=aks, O(log 7,5 n), , NP (co-np) Azokat a feladatokat, melyeknél a megoldás helyességét tudjuk polinomiális idő alatt ellenőrizni, NP-vel jelöljük. (Itt a P a polinomiális szó kezdőbetűje, N pedig a nemdeterminisztikusé.) Tulajdonképpen azok a polinomidőben tesztelhető feladatok, melyeknél az igenlő válasz külső segítséggel eldönthető. A külső segítség az ún. tanu. Amelyekre pedig a nemleges választ lehet eldönteni polinomiális idő alatt, azok az ún. co-np nevű osztályba tartoznak
17 NP példák?p?=?np? NP-beli feladatok: - n lányt és n fiút összeházasítani úgy, hogy csak ismerősök házasodhatnak. Ha valaki a hozzárendelést megcsinálja, akkor gyorsan tudjuk ellenőrizni hogy az tényleg helyes-e. - az utazó ügynök problémája is: n városból bizonyosak között van repülőjárat. Van-e olyan repülős körút, amely minden várost pontosan egyszer érint? - adott néhány fajta csempénk, ki tudunk tölteni velük szabályosan egy n-szer n-es négyzetet? - adott egy összetett szám, írjuk fel két egynél nagyobb egész szám szorzataként (faktorizáció). Általánosságban az a sejtés, hogy P nem egyenlő NP-vel és P = (NP co-np)!! DOLLÁROS FELADAT!! d1 cs.iupui.edu/~xkzou/teaching/cs580/np-completeness.ppt+np+npcomplete+np-hard+figure+ppt&cd=2&hl=hu&ct=clnk&gl=hu P, NP, NP nehéz, NP teljes Az A feladat B-re visszavezethető: ha létezik A-nak egy polinomidejű megoldása, ami szubrutinként használhatja a B megoldását. NP-nehéz feladat: ha minden NP-beli probléma visszavezethető rá Protein design NP nehéz 2002-ben biz NP-teljes feladat: amik maguk is benne vannak NP-ben. NP-teljes feladatokra példák:?p?=?np? - Hamilton-kör - egy gráf pontjai kiszínezhetők-e maximum 3 színnel úgy, hogy bármely él két vége különböző színű legyen - kielégíthetőségi probléma is, amely azt kérdezi, hogy lehet-e logikai változóknak értéket adni, hogy egy egyszerű formula (pl. KNF: és-ekkel összekapcsolt vagyok) igaz legyen
18 67. dia d1 Forrás: developer;
19 Shortest superstring (genes) NP-complete Reducing SST TO TSP Nem megoldható problémák létezése Gödel eredménye: Hilbert eldöntésproblémájának megoldhatatlanságát bizonyítja: ha adott egy kellő kifejezőerővel rendelkező, kezehető formális rendszer, ahhoz nem található olyan, minden esetre alkalmazható algoritmus, ami minden állításról megmondaná, hogy a rendszer szabályainak megfelelôen levezethető-e vagy sem. Példák: - a Peano aritmetika formulahalmaza a megfelelő levezetési szabályokkal - vagy a halmazelmélet valamely axiómarendszer - csoportok és gyűrűk elméletével is: nem létezik algoritmus, amely mondjuk minden csoportelméleti állításról megmondaná, hogy teljesül-e vagy sem az összes csoportban. Traveling Salesman Traveling Salesman Problem Az utazó ügynök probléma NP-teljes. TSP Adottak: - G = (V,E), n csúcsú gráf. - c(e): egész értékű költség függvény az éleken - K természetes szám Kérdés: Van-e olyan Hamilton kör, melynek költsége legfeljebb k? 71 72
20 TSP NP-teljes Nem megoldható problémák létezése Hamilton körre lehet visszavezetni G = (V,E), H legyen teljes gráf V-n, a c költség c(e)= 1, ha e E 2, ha e E A legolcsóbb útvonal H-ban n akkor és csak akkor, ha G- ben van Hamilton kör. Ha nincs, akkor egy olyan élet használtunk, ami eredetileg nem tartozott a gráfhoz, s annak költsége 2. Ezért ez esetben a költség n + 1. Forrás: ms/book/book3/node108.htm#section Gödel eredménye: Hilbert eldöntésproblémájának megoldhatatlanságát bizonyítja: ha adott egy kellő kifejezőerővel rendelkező, kezelhető formális rendszer, ahhoz nem található olyan algoritmus, ami minden állításról megmondaná, hogy a rendszer szabályainak megfelelően levezethető-e vagy sem. Példák: -a Peano aritmetika formulahalmaza a megfelelő levezetési szabályokkal -a halmazelmélet valamely axiómarendszer -csoportok és gyűrűk elméletével is: nem létezik algoritmus, amely mondjuk minden csoportelméleti állításról megmondaná, hogy teljesül-e vagy sem az összes csoportban. 74 Gyakorlat Turing gépek Természetesen az, hogy egy algoritmus polinomiális idejű nem jelenti azt, hogy a gyakorlatban is hatékonynak kellene tekintenünk, vagy hogy az ellenkezôje automatikusan kizárja a használható eljárások közül. Például a lineáris programozási feladatok megoldására ma is legszélesebb körben alkalmazott eljárás a szimplex módszer nem polinomiális idejű. Turing gép=számítási modell Miért fontos ez a modell? Be lehet bizonyítani, hogy minden olyan kiszámítható probléma, amit a másik számítógépek ki tudnak számítani, kiszámítható a Turing modellel. A polinomiális algoritmusok vizsgálata azonban ebbôl a szempontból is sikeres: ilyen algoritmus keresése gyakran a gyakorlatban is fontos és használható eredményre vezetett ahogyan ez a lineáris programozás esetében is történt. A talált polinomiális algoritmus segítségével egy sor olyan feladatot is sikerült gyors algoritmussal megoldani, melyekre korábban ilyen nem volt ismert. 75 Turing gép : szalag, helyekkel, jobbrabalra mozog, egy pozíciót ír, egy pozíciót olvas Vagyis: Ha olyan problémát találunk, ami Turing géppel NEM számítható ki, akkor az MEGOLDHATATLAN (ELDÖNTHETETLEN) probléma. (MA De quantum szg? ND) 76
21 Tár komplexitás másképpen Idő komplexitás másképpen Definíció: Legyen M (determinisztikus) Turing gép (program), amely minden inputra megáll. Az M tár komplexitása az az f: N->N függvény, ahol f(n)=a legjobboldali szalag pozíció, melyet a gép elér akármilyen n db input esetén. Definíció: M legyen olyan Turing gép (program), amire a Turing gép megáll, bármilyen input esetén. A futási idő, vagy más néven az M idő komplexitása az f : N -> N, ahol f(n) az a maximális lépésszám, amit M használ valamely n bemenő adat esetén Megállási probléma/halting problem Nem magától értetődő, hogy valamely program esetén MEGÁLL a számítógép. Megállási probléma/halting problem: Adott program és adott input esetén meg lehet-e határozni, hogy a program megáll ezen input esetén? Megállási probléma Indirekt, TFH, létezik olyan Turing gép program, hívjuk Megállási Problémát Megoldó Programnak=MPMP Ennek bemenete egy program (PéldaProgram=PP) és annak egy inputja (Példa Adat=PA). A kimenet pedig az a sztring, hogy ezekre az adatokra a PP program megáll (Halt), vagy nem áll meg: (Loop) Ez példa ELDÖNTHETETLEN problémára. BIZ.: EGY példát kell adni olyan programra és bemenetre, amely esetén ezt nem lehet eldönteni. PP + PA MPMP Halt vagy Loop 79 A Megállási Problémát Megoldó Program terve 80
22 Megállási probléma Megállási probléma Írjunk egy új programot, legyen UP a neve. UP konstrukciója UP bemenő adata legyen ugyanaz a PéldaProgram a Példa Adatokkal együtt, és használja az MPMP algoritmust, annak eldöntésére, hogy a PéldaProgram megáll-e ezekre az adatokra, vagy sem. Ha az MPMP azt adja hogy Halt, akkor UP azt írja ki hogy Loop, ha pedig MPMP azt adja, hogy Loop, akkor azt írja ki hogy Halt. PP PA UP, használva a MPMP algoritmust Halt ( ) Loop Halt Akárhogyan is, mindig rossz választ fog adni. Input Uj Program=UP Output 81 UP bemenő adata legyen ugyanaz a PéldaProgram a Példa Adatokkal együtt, és használja az MPMP algoritmust, annak eldöntésére, hogy a PéldaProgram megáll-e ezekre az adatokra, vagy sem. Ha az MPMP azt adja hogy Halt, akkor UP azt írja ki hogy Loop, ha pedig MPMP azt adja, hogy Loop, akkor azt írja ki hogy Halt. 82 Megállási probléma Megállási probléma Tegyük fel, hogy a PP bemenete valamely PA-val jelölt sztring. Jelölés: P(PA) legyen a P program eredménye valamely PA bemeneti sztringgel ez is sztring, ez is lehet egy program bemenete. MPMP(PP) UP(PP) (szubrutinként használja az MPMP-t) HALT, ha PP megáll a PAbemenetre LOOP, ha PP nem áll meg a PAbemenetre LOOP, ha a bemenetre MPMP Haltot ír HALT, ha a bemenetre MPMP Loop-ot ír ki 83 UP(UP)??? (Ha MPMP azt írná ki, hogy Loop, akkor ő Haltot ad ki, ha viszont MPMP azt írnáki hogy Halt, akkor ő Loop-ot ír ki)-vagyis ha áll, akkor megy, és ha megy akkor áll átlós eljárás 84
23 Erős Church - Turing Tézis Minden ÉSSZERŰ számítástechnikai modell polinom idő/tár ekvivalens (mindegy milyen (de adekvát) modellt használunk) NEM ésszerű: pl. a fizikai lehetőségeket nem helyesen írja le 85
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
Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás
Algoritmusok Tervezése 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás Mi az algoritmus? Lépések sorozata egy feladat elvégzéséhez (legáltalánosabban) Informálisan algoritmusnak nevezünk bármilyen jól definiált
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:
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
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
Nagyságrendek. Kiegészítő anyag az Algoritmuselmélet tárgyhoz. Friedl Katalin BME SZIT február 1.
Nagyságrendek Kiegészítő anyag az Algoritmuselmélet tárgyhoz (a Rónyai Ivanyos Szabó: Algoritmusok könyv mellé) Friedl Katalin BME SZIT friedl@cs.bme.hu 018. február 1. Az O, Ω, Θ jelölések Az algoritmusok
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
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,
Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21
Bonyolultságelmélet Thursday 1 st December, 2016, 22:21 Tárbonyolultság A futásidő mellett a felhasznált tárterület a másik fontos erőforrás. Ismét igaz, hogy egy Ram-program esetében ha csak a használt
Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs
Programozás I. 1. előadás: Algoritmusok alapjai Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember 7. Sergyán
Logika és számításelmélet. 7. előadás
Logika és számításelmélet 7. előadás Elérhetőség, fóliasorok, ajánlott irodalom Előadó: Tichler Krisztián Elérhetőség: 2-708, ktichler@inf.elte.hu Előadások itt lesznek: www.cs.elte.hu/ tichlerk Elérhetőség,
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
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
Dr. Schuster György február / 32
Algoritmusok és magvalósítások Dr. Schuster György OE-KVK-MAI schuster.gyorgy@kvk.uni-obuda.hu 2015. február 10. 2015. február 10. 1 / 32 Algoritmus Alapfogalmak Algoritmus Definíció Algoritmuson olyan
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,
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
Számítógép és programozás 2
Számítógép és programozás 2 6. Előadás Problémaosztályok http://digitus.itk.ppke.hu/~flugi/ Emlékeztető A specifikáció egy előfeltételből és utófeltételből álló leírása a feladatnak Léteznek olyan feladatok,
Logika és számításelmélet. 7. előadás
Logika és számításelmélet 7. előadás Elérhetőség, fóliasorok, ajánlott irodalom Előadó: Kolonits Gábor Elérhetőség: 2-708, kolomax@inf.elte.hu Előadások innen tölthetők le: www.cs.elte.hu/ tichlerk Ajánlott
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,
Bánsághi Anna 2014 Bánsághi Anna 1 of 68
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
Diszkrét Irányítások tervezése. Heurisztika Dr. Bécsi Tamás
Diszkrét Irányítások tervezése Heurisztika Dr. Bécsi Tamás Algoritmusok futásideje Az algoritmus futásideje függ az N bemenő paramétertől. Azonos feladat különböző N értékek esetén más futásidőt igényelnek.
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
Felvételi tematika INFORMATIKA
Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponké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
Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat
9. Előadás Rendezések A rendezési probléma: Bemenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat Kimenet: a bemenő sorozat olyan (a 1, a 2,,a n ) permutációja, hogy a 1 a 2 a n 2 Rendezések Általánosabban:
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
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
Modern irányzatok a bonyolultságelméletben: éles korlátok és dichotómia tételek
Modern irányzatok a bonyolultságelméletben: éles korlátok és dichotómia tételek Marx Dániel Paraméteres Algoritmusok és Bonyolultság Kutatócsoport Informatikai Kutatólaboratórium SZTAKI 05. június 5. Kombinatorikus
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
Számítógép és programozás 2
Számítógép és programozás 2 8. Előadás Megoldhatóság, hatékonyság http://digitus.itk.ppke.hu/~flugi/ Elméleti áttekintés a SzámProg 1 tárgyból Algoritmikus eldönthetőség kérdése Bizonyíthatóság kérdése,
Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.
Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI
19. AZ ÖSSZEHASONLÍTÁSOS RENDEZÉSEK MŰVELETIGÉNYÉNEK ALSÓ KORLÁTJAI Ebben a fejezetben aszimptotikus (nagyságrendi) alsó korlátot adunk az összehasonlításokat használó rendező eljárások lépésszámára. Pontosabban,
Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán
Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala
Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések
Kriptográfia 0 Számítás-komplexitási kérdések A biztonság alapja Komplexitás elméleti modellek független, egyenletes eloszlású véletlen változó értéke számítással nem hozható kapcsolatba más információval
Programozási segédlet
Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen
Logika és számításelmélet. 12. előadás
Logika és számításelmélet 12. előadás NP lehetséges szerkezete NP-köztes nyelv L NP-köztes, ha L NP, L P és L nem NP-teljes. Ladner tétele Ha P NP, akkor létezik NP-köztes nyelv. (biz. nélkül) NP-köztes
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
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
Ö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,
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
RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...
RSA algoritmus 1. Vegyünk véletlenszerűen két különböző nagy prímszámot, p-t és q-t. 2. Legyen n = pq. 3. Vegyünk egy olyan kis páratlan e számot, amely relatív prím φ(n) = (p 1)(q 1)-hez. 4. Keressünk
Totális Unimodularitás és LP dualitás. Tapolcai János
Totális Unimodularitás és LP dualitás Tapolcai János tapolcai@tmit.bme.hu 1 Optimalizálási feladat kezelése NP-nehéz Hatékony megoldás vélhetően nem létezik Jó esetben hatékony algoritmussal közelíteni
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
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
Approximációs algoritmusok
Approximációs algoritmusok Nehéz (pl. NP teljes) problémák optimális megoldásának meghatározására nem tudunk (garantáltan) polinom idejű algoritmust adni. Lehetőségek: -exponenciális futási idejű algoritmus
Adatbázis és szoftverfejlesztés elmélet. Programozási tételek
Adatbázis és szoftverfejlesztés elmélet Témakör 8. 1. Egy sorozathoz egy érték hozzárendelése Az összegzés tétele Összefoglalás Programozási tételek Adott egy számsorozat. Számoljuk és írassuk ki az elemek
Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok és programozási tételek
Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?
,,Alap kiskérdések Logika és informatikai alkalmazásai kiskérdések 2012. február 19. 1. Hogy hívjuk a 0 aritású függvényjeleket? 2. Definiálja a termek halmazát. 3. Definiálja a formulák halmazát. 4. Definiálja,
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
Bevezetés a bonyolultságelméletbe gyakorlatok I. B. Az Ackermann függvény avagy nem minden olyan egyszerű, mint amilyennek látszik Legyen A(x, y) a következő, rekurzív módon definiált függvény: A(0, y)
Klasszikus algebra előadás. Waldhauser Tamás április 28.
Klasszikus algebra előadás Waldhauser Tamás 2014. április 28. 5. Számelmélet integritástartományokban Oszthatóság Mostantól R mindig tetszőleges integritástartományt jelöl. 5.1. Definíció. Azt mondjuk,
Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20
Teljesítmény Mérés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés 2013 1 / 20 Tartalomjegyzék 1 Bevezetés 2 Visual Studio Kód metrikák Performance Explorer Tóth Zsolt
Gyakorló feladatok ZH-ra
Algoritmuselmélet Schlotter Ildi 2011. április 6. ildi@cs.bme.hu Gyakorló feladatok ZH-ra Nagyságrendek 1. Egy algoritmusról tudjuk, hogy a lépésszáma O(n 2 ). Lehetséges-e, hogy (a) minden páros n-re
Az informatika elméleti alapjai 2 elővizsga december 19.
Név (aláírás): Az informatika elméleti alapjai 2 elővizsga 2017. december 19. A vizsgadolgozat 1. feladatára helyes válaszonként 1-1 pont kapható, a 2-3. feladatok megoldásáért 6-6 pont, a 4. feladatra
Felvételi vizsga mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív
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
ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 3. Előadás
ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára 3. Előadás Előadó: Hajnal Péter Jegyzetelő: Sallai Gyöngyi 2011. február 15. 1. Eldöntő Turing-gépek Emlékeztető. L Σ nyelv pontosan
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
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Hash tábla A bináris fáknál O(log n) a legjobb eset a keresésre. Ha valamilyen közvetlen címzést használunk, akkor akár O(1) is elérhető. A hash tábla a tömb általánosításaként
BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:
BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli A versenyzők figyelmébe: 1. A tömböket 1-től kezdődően indexeljük. 2. A rácstesztekre
Számításelmélet. Második előadás
Számításelmélet Második előadás Többszalagos Turing-gép Turing-gép k (konstans) számú szalaggal A szalagok mindegyike rendelkezik egy független író / olvasó fejjel A bemenet az első szalagra kerül, a többi
Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.
Bevezetés 1. Definíció. Az alsó egészrész függvény minden valós számhoz egy egész számot rendel hozzá, éppen azt, amely a tőle nem nagyobb egészek közül a legnagyobb. Az alsó egészrész függvény jele:,
Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):
Python Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása alatt
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
Algoritmuselmélet. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.
Algoritmuselmélet Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozá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.
Algoritmuselmélet Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA
26. MINIMÁLIS KÖLTSÉGŰ UTAK MINDEN CSÚCSPÁRRA Az előző két fejezetben tárgyalt feladat általánosításaként a gráfban található összes csúcspárra szeretnénk meghatározni a legkisebb költségű utat. A probléma
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
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
Adatszerkezetek 2. Dr. Iványi Péter
Adatszerkezetek 2. Dr. Iványi Péter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér (root) Nincsennek hurkok!!! 2 Bináris fák Azokat
Algoritmusok bonyolultsága
Algoritmusok bonyolultsága 9. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 18 Közelítő algoritmusok ládapakolás (bin packing) Adott n tárgy (s i tömeggel) és végtelen sok 1 kapacitású láda
INFORMATIKA javítókulcs 2016
INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.
Algoritmusok bonyolultsága
Algoritmusok bonyolultsága 5. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 27 Gazdaságos faváz Kruskal-algoritmus Joseph Kruskal (1928 2010) Legyen V = {v 1, v 2,..., v n }, E = {e 1, e 2,...,
Nagy Gábor compalg.inf.elte.hu/ nagy
Diszkrét matematika 3. estis képzés 2018. ősz 1. Diszkrét matematika 3. estis képzés 2. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Ordó, omega, theta, rekurzió :15 11:45. Megoldás. A nagyságrendi sorra tekintve nyilvánvalóan igaz pl., hogy: 1
Algoritmuselmélet 1. gyakorlat megoldások Gyakorlatvezető: Engedy Balázs Ordó, omega, theta, rekurzió 01.0.08. 10:15 11:45 Bemelegítés 1. Az f(n) = O(g(n)) jelölés egyenletnek tekinthető-e? Mi fejezi ki
1. Bevezetés. A számítógéptudomány ezt a problémát a feladat elvégzéséhez szükséges erőforrások (idő, tár, program,... ) mennyiségével méri.
Számításelmélet Dr. Olajos Péter Miskolci Egyetem Alkalmazott Matematika Tanszék e mail: matolaj@uni-miskolc.hu 2011/12/I. Készült: Péter Gács and László Lovász: Complexity of Algorithms (Lecture Notes,
Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás Programozási tételek, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok
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 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 Komputeralgebra
BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) 1. (5p) Tekintsük a következő alprogramot: Alprogram f(a): Ha a!= 0, akkor visszatérít: a + f(a - 1) különben visszatérít
A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai
A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási
Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek
Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő
Térinformatikai algoritmusok Elemi algoritmusok
Cserép Máté 2016. szeptember 14. Analóg programozásnak nevezzük azt, amikor egy feladat megoldásához egy már ismert és megoldott feladat megoldását használjuk fel. Általában nem pontosan ugyanazt a feladatot
Logika és számításelmélet
Logika és számításelmélet 12. előadás Irányítatlan/irányított Hamilton út/kör Hamilton út/kör Adott egy G = (V, E) irányítatlan / irányított gráf ( V = n). Egy P = v i1,..., v in felsorolása a csúcsoknak
Minden egész szám osztója önmagának, azaz a a minden egész a-ra.
1. Számelmélet Definíció: Az a egész szám osztója a egész számnak, ha létezik olyan c egész szám, melyre = ac. Ezt a következőképpen jelöljük: a Tulajdonságok: Minden egész szám osztója önmagának, azaz
Diszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 11. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra:
Minimális feszítőfák Legyen G = (V,E,c), c : E R + egy súlyozott irányítatlan gráf. Terjesszük ki a súlyfüggvényt a T E élhalmazokra: C(T ) = (u,v) T c(u,v) Az F = (V,T) gráf minimális feszitőfája G-nek,
Adatszerkezetek 7a. Dr. IványiPéter
Adatszerkezetek 7a. Dr. IványiPéter 1 Fák Fákat akkor használunk, ha az adatok között valamilyen alá- és fölérendeltség van. Pl. könyvtárszerkezet gyökér () Nincsennek hurkok!!! 2 Bináris fák Azokat a
Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba
Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai
Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)
Adatszerkezetek Nevezetes algoritmusok (Keresések, rendezések) Keresések A probléma általános megfogalmazása: Adott egy N elemű sorozat, keressük meg azt az elemet (határozzuk meg a helyét a sorozatban),
Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t
Ellenőrző kérdések 2. Kis dolgozat kérdései 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t 37. Ha t szintű indexet használunk,
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
15. LINEÁRIS EGYENLETRENDSZEREK
15 LINEÁRIS EGYENLETRENDSZEREK 151 Lineáris egyenletrendszer, Gauss elimináció 1 Definíció Lineáris egyenletrendszernek nevezzük az (1) a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a
Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,
Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás OE-NIK, 2013 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk
HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport
10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)
Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
ELEMI PROGRAMOZÁSI TÉTELEK
ELEMI PROGRAMOZÁSI TÉTELEK 1. FELADATMEGOLDÁS PROGRAMOZÁSI TÉTELEKKEL 1.1 A programozási tétel fogalma A programozási tételek típusalgoritmusok, amelyek alkalmazásával garantáltan helyes megoldást adhatunk
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
15. tétel. Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30.
15. tétel Adatszerkezetek és algoritmusok vizsga Frissült: 2013. január 30. Edényrendezés Tegyük fel, hogy tudjuk, hogy a bemenő elemek (A[1..n] elemei) egy m elemű U halmazból kerülnek ki, pl. " A[i]-re