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

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

Algoritmuselmélet 1. előadás

Algoritmuselmélet 1. előadás

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

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. Függvények nagyságrendje, elágazás és korlátozás, dinamikus programozás. Katona Gyula Y.

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

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

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

Algoritmuselmélet. Gráfok megadása, szélességi bejárás, összefüggőség, párosítás. Katona Gyula Y.

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

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.

Algoritmuselmélet 11. előadás

Algoritmuselmélet. Mélységi keresés és alkalmazásai. Katona Gyula Y.

Algoritmuselmélet 18. előadás

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

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

Nagyordó, Omega, Theta, Kisordó

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

22. GRÁFOK ÁBRÁZOLÁSA

egyenlőtlenségnek kell teljesülnie.

A számítástudomány alapjai. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem

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

Programozási módszertan. Függvények rekurzív megadása "Oszd meg és uralkodj" elv, helyettesítő módszer, rekurziós fa módszer, mester módszer

Diszkrét matematika II. gyakorlat

Általános algoritmustervezési módszerek

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Ramsey-féle problémák

Algoritmuselmélet 12. előadás

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:

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Abszolútértékes és gyökös kifejezések

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

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

Online migrációs ütemezési modellek

A számítástudomány alapjai

Formális nyelvek - 9.

Gráf csúcsainak színezése. The Four-Color Theorem 4 szín tétel Appel és Haken bebizonyították, hogy minden térkép legfeljebb 4 színnel kiszínezhető.

A Számítástudomány alapjai

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

Bonyolultságelmélet. Monday 10 th October, 2016, 17:44

Programozási módszertan. Mohó algoritmusok

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.

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

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:

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

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.

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

Érdemes egy n*n-es táblázatban (sorok-lányok, oszlopok-fiúk) ábrázolni a két színnel, mely éleket húztuk be (pirossal, kékkel)

Diszkrét matematika 2.C szakirány

Halmazelméleti alapfogalmak

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Sali Attila Budapest Műszaki és Gazdaságtudományi Egyetem. I. B. 137/b március 16.

Gráfelméleti alapfogalmak

1. megold s: A keresett háromjegyű szám egyik számjegye a 3-as, a két ismeretlen számjegyet jelölje a és b. A feltétel szerint

Megoldások 7. gyakorlat Síkgráfok, dualitás, gyenge izomorfia, Whitney-tételei

Algoritmuselmélet 7. előadás

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

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

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

Csima Judit október 24.

Algoritmusok bonyolultsága

Algoritmusok bonyolultsága

Közösségek keresése nagy gráfokban

Gráfalgoritmusok és hatékony adatszerkezetek szemléltetése

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

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

Algoritmuselmélet 2. előadás

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

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

Tanmenet a évf. fakultációs csoport MATEMATIKA tantárgyának tanításához

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.

Gráfelméleti feladatok programozóknak

MATEMATIKA EMELT SZINTŰ SZÓBELI VIZSGA TÉMAKÖREI (TÉTELEK) 2012

Euler tétel következménye 1:ha G összefüggő síkgráf és legalább 3 pontja van, akkor: e 3

Iván Szabolcs október 6.

Diszkrét matematika 2.C szakirány

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 6. előadás

Diszkrét matematika 2.

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

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

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

1. gyakorlat ( ), Bevezető analízis 1., ősz (Besenyei Ádám csoportja)

Nagy András. Feladatok a logaritmus témaköréhez 11. osztály 2010.

Ordó, omega, theta, rekurzió :15 11:45. Megoldás. A nagyságrendi sorra tekintve nyilvánvalóan igaz pl., hogy: 1

3. Lineáris differenciálegyenletek

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás

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

Számelmélet (2017. február 8.) Bogya Norbert, Kátai-Urbán Kamilla

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

Nagyméretű adathalmazok kezelése (BMEVISZM144) Reinhardt Gábor április 5.

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

1. tétel. 1. Egy derékszögű háromszög egyik szöge 50, a szög melletti befogója 7 cm. Mekkora a háromszög átfogója? (4 pont)

Gráfelméleti feladatok. c f

Approximációs algoritmusok

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

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

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

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

Átírás:

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 1. előadás Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 1 / 23

Algoritmus fogalma Egyelőre nem definiáljuk rendesen az algoritmus fogalmát. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 2 / 23

Algoritmus fogalma Egyelőre nem definiáljuk rendesen az algoritmus fogalmát. Eljárás, recept, módszer. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 2 / 23

Algoritmus fogalma Egyelőre nem definiáljuk rendesen az algoritmus fogalmát. Eljárás, recept, módszer. Jól meghatározott lépések egymásutánja, amelyek már elég pontosan, egyértelműen megfogalmazottak ahhoz, hogy gépiesen végrehajthatók legyenek. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 2 / 23

A szó eredete Al Khvarizmi (Mohamed ibn Músza) bagdadi matematikus a IX. században könyvet írt az egészekkel való alapműveletek végzéséről. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 3 / 23

A szó eredete Al Khvarizmi (Mohamed ibn Músza) bagdadi matematikus a IX. században könyvet írt az egészekkel való alapműveletek végzéséről. algoritmus számítógép program Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 3 / 23

A szó eredete Al Khvarizmi (Mohamed ibn Músza) bagdadi matematikus a IX. században könyvet írt az egészekkel való alapműveletek végzéséről. algoritmus számítógép program valós probléma Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 3 / 23

A szó eredete Al Khvarizmi (Mohamed ibn Músza) bagdadi matematikus a IX. században könyvet írt az egészekkel való alapműveletek végzéséről. algoritmus számítógép program valós probléma = absztrakt modell Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 3 / 23

A szó eredete Al Khvarizmi (Mohamed ibn Músza) bagdadi matematikus a IX. században könyvet írt az egészekkel való alapműveletek végzéséről. algoritmus számítógép program valós probléma = absztrakt modell = algoritmus Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 3 / 23

A szó eredete Al Khvarizmi (Mohamed ibn Músza) bagdadi matematikus a IX. században könyvet írt az egészekkel való alapműveletek végzéséről. algoritmus számítógép program valós probléma = absztrakt modell = algoritmus = program Cél: feladatokra hatékony eljárás kidolgozása Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 3 / 23

A szó eredete Al Khvarizmi (Mohamed ibn Músza) bagdadi matematikus a IX. században könyvet írt az egészekkel való alapműveletek végzéséről. algoritmus számítógép program valós probléma = absztrakt modell = algoritmus = program Cél: feladatokra hatékony eljárás kidolgozása Hatékony = gyors, kevés memória, kevés tárhely Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 3 / 23

Milyen hatékony egy algoritmus? Legtöbbször csak a lépésszám nagyságrendje érdekes. Hogyan függ a lépésszám az input méretétől? Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 4 / 23

Milyen hatékony egy algoritmus? Legtöbbször csak a lépésszám nagyságrendje érdekes. Hogyan függ a lépésszám az input méretétől? Az input méretét legtöbbször n-nel jelöljük. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 4 / 23

Milyen hatékony egy algoritmus? Legtöbbször csak a lépésszám nagyságrendje érdekes. Hogyan függ a lépésszám az input méretétől? Az input méretét legtöbbször n-nel jelöljük. A lépésszám ennek egy f függvénye, azaz ha n méretű az input, akkor az algoritmus f (n) lépést végez. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 4 / 23

Milyen hatékony egy algoritmus? Legtöbbször csak a lépésszám nagyságrendje érdekes. Hogyan függ a lépésszám az input méretétől? Az input méretét legtöbbször n-nel jelöljük. A lépésszám ennek egy f függvénye, azaz ha n méretű az input, akkor az algoritmus f (n) lépést végez. Igazából az f függvény az érdekes. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 4 / 23

Milyen hatékony egy algoritmus? Legtöbbször csak a lépésszám nagyságrendje érdekes. Hogyan függ a lépésszám az input méretétől? Az input méretét legtöbbször n-nel jelöljük. A lépésszám ennek egy f függvénye, azaz ha n méretű az input, akkor az algoritmus f (n) lépést végez. Igazából az f függvény az érdekes. 100n vagy 101n, általában mindegy Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 4 / 23

Milyen hatékony egy algoritmus? Legtöbbször csak a lépésszám nagyságrendje érdekes. Hogyan függ a lépésszám az input méretétől? Az input méretét legtöbbször n-nel jelöljük. A lépésszám ennek egy f függvénye, azaz ha n méretű az input, akkor az algoritmus f (n) lépést végez. Igazából az f függvény az érdekes. 100n vagy 101n, általában mindegy n 2 vagy n 3 már sokszor nagy különbség, de néha mindegy Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 4 / 23

Milyen hatékony egy algoritmus? Legtöbbször csak a lépésszám nagyságrendje érdekes. Hogyan függ a lépésszám az input méretétől? Az input méretét legtöbbször n-nel jelöljük. A lépésszám ennek egy f függvénye, azaz ha n méretű az input, akkor az algoritmus f (n) lépést végez. Igazából az f függvény az érdekes. 100n vagy 101n, általában mindegy n 2 vagy n 3 már sokszor nagy különbség, de néha mindegy n 2 vagy 2 n már mindig nagy különbség Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 4 / 23

Például Kérdés Egy 10 10 művelet/mp sebességű számítógép mennyi ideig dolgozik, ha f (n) műveletet kell végrehajtani n méretű bemenetre? f (n) n n n 2 log 10 n 2 n n! 10 10 9 10 8 10 10 1,02 10 7 3,6 10 4 10 2 10 8 10 6 2 10 10 4 10 12 év 2.9, 10 140 év 10 6 10 4 100 6 10 10 3,1 10 301.012 év 2,6 10 5.565.691 év 10 9 0,1 3,1 év 9 10 9 sok év sok év Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 5 / 23

Függvények nagyságrendje Definíció Ha f (n) és g(n) az R + egy részhalmazán értelmezett, valós értékeket felvevő függvények, akkor f = O(g) jelöli azt a tényt, hogy vannak olyan c, n 0 > 0 állandók, hogy f (n) c g(n) teljesül, ha n n 0. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 6 / 23

Példák 100n + 300 = O(n) Biz: 100n + 300 100n + n 101n cn, ha n 300, c = 101 Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 7 / 23

Példák 100n + 300 = O(n) Biz: 100n + 300 100n + n 101n cn, ha n 300, c = 101 5n 2 + 3n = O(n 2 ) Biz: 5n 2 + 3n 5n 2 + 3n 2 8n 2 cn 2, ha n 100, c = 8 Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 7 / 23

Példák 100n + 300 = O(n) Biz: 100n + 300 100n + n 101n cn, ha n 300, c = 101 5n 2 + 3n = O(n 2 ) Biz: 5n 2 + 3n 5n 2 + 3n 2 8n 2 cn 2, ha n 100, c = 8 n 4 + 5n 3 = O(n 5 ) Biz: n 4 + 5n 3 6n 4 n 5 cn 5, ha n 6, c = 1 Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 7 / 23

Példák n 1000 = O(2 n ) Biz: Teljes indukcióval, legyen c = 1, n 0 = 10 6. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 8 / 23

Példák n 1000 = O(2 n ) Biz: Teljes indukcióval, legyen c = 1, n 0 = 10 6. n = 10 6 -re igaz, mert 10 6000 (2 4 ) 6000 2 106. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 8 / 23

Példák n 1000 = O(2 n ) Biz: Teljes indukcióval, legyen c = 1, n 0 = 10 6. n = 10 6 -re igaz, mert 10 6000 (2 4 ) 6000 2 106. Tegyük fel, hogy k-ra igaz. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 8 / 23

Példák n 1000 = O(2 n ) Biz: Teljes indukcióval, legyen c = 1, n 0 = 10 6. n = 10 6 -re igaz, mert 10 6000 (2 4 ) 6000 2 106. Tegyük fel, hogy k-ra igaz. ( Felhasználjuk, hogy ha k 10 6 akkor 1000 ) 1000 i = 1000 1000 i 1 1000 i 1 1000 i 1 = i = (10 6 ) i 1 k i 1. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 8 / 23

Példák n 1000 = O(2 n ) Biz: Teljes indukcióval, legyen c = 1, n 0 = 10 6. n = 10 6 -re igaz, mert 10 6000 (2 4 ) 6000 2 106. Tegyük fel, hogy k-ra igaz. ( Felhasználjuk, hogy ha k 10 6 akkor 1000 ) i 1000 i = 1000 1000 i 1 1000 i 1 1000 i 1 = = (10 6 ) i 1 k i 1. (k + 1) 1000 = k 1000 + + ( ) 1000 i k 1000 i + k 1000 + + k i 1 k 1000 i + k 1000 + 1000k 999 2 k 1000 2 2 k = 2 k+1, ha k 10 6. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 8 / 23

Példák n 1000 = O(2 n ) Biz: Teljes indukcióval, legyen c = 1, n 0 = 10 6. n = 10 6 -re igaz, mert 10 6000 (2 4 ) 6000 2 106. Tegyük fel, hogy k-ra igaz. ( Felhasználjuk, hogy ha k 10 6 akkor 1000 ) i 1000 i = 1000 1000 i 1 1000 i 1 1000 i 1 = = (10 6 ) i 1 k i 1. (k + 1) 1000 = k 1000 + + ( ) 1000 i k 1000 i + k 1000 + + k i 1 k 1000 i + k 1000 + 1000k 999 2 k 1000 2 2 k = 2 k+1, ha k 10 6. log 1000 2 (n) = O(n) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 8 / 23

Példák n 1000 = O(2 n ) Biz: Teljes indukcióval, legyen c = 1, n 0 = 10 6. n = 10 6 -re igaz, mert 10 6000 (2 4 ) 6000 2 106. Tegyük fel, hogy k-ra igaz. ( Felhasználjuk, hogy ha k 10 6 akkor 1000 ) i 1000 i = 1000 1000 i 1 1000 i 1 1000 i 1 = = (10 6 ) i 1 k i 1. (k + 1) 1000 = k 1000 + + ( ) 1000 i k 1000 i + k 1000 + + k i 1 k 1000 i + k 1000 + 1000k 999 2 k 1000 2 2 k = 2 k+1, ha k 10 6. log 1000 2 (n) = O(n) Biz: Mivel a logaritmus függvény monoton nő, vehetjük a fentiek logaritmusát. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 8 / 23

Példák n 1000 = O(2 n ) Biz: Teljes indukcióval, legyen c = 1, n 0 = 10 6. n = 10 6 -re igaz, mert 10 6000 (2 4 ) 6000 2 106. Tegyük fel, hogy k-ra igaz. ( Felhasználjuk, hogy ha k 10 6 akkor 1000 ) i 1000 i = 1000 1000 i 1 1000 i 1 1000 i 1 = = (10 6 ) i 1 k i 1. (k + 1) 1000 = k 1000 + + ( ) 1000 i k 1000 i + k 1000 + + k i 1 k 1000 i + k 1000 + 1000k 999 2 k 1000 2 2 k = 2 k+1, ha k 10 6. log 1000 2 (n) = O(n) Biz: Mivel a logaritmus függvény monoton nő, vehetjük a fentiek logaritmusát. 2 n = O(n!) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 8 / 23

Példák n 1000 = O(2 n ) Biz: Teljes indukcióval, legyen c = 1, n 0 = 10 6. n = 10 6 -re igaz, mert 10 6000 (2 4 ) 6000 2 106. Tegyük fel, hogy k-ra igaz. ( Felhasználjuk, hogy ha k 10 6 akkor 1000 ) i 1000 i = 1000 1000 i 1 1000 i 1 1000 i 1 = = (10 6 ) i 1 k i 1. (k + 1) 1000 = k 1000 + + ( ) 1000 i k 1000 i + k 1000 + + k i 1 k 1000 i + k 1000 + 1000k 999 2 k 1000 2 2 k = 2 k+1, ha k 10 6. log 1000 2 (n) = O(n) Biz: Mivel a logaritmus függvény monoton nő, vehetjük a fentiek logaritmusát. 2 n = O(n!) n! = O(n n ) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 8 / 23

Példák Igaz-e, hogy n 2 = O(n)? Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 9 / 23

Példák Igaz-e, hogy n 2 = O(n)? Nem. Biz: Indirekt, tegyük fel, hogy létezik olyan c, n 0, hogy n 2 cn teljesül minden n n 0 esetén. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 9 / 23

Példák Igaz-e, hogy n 2 = O(n)? Nem. Biz: Indirekt, tegyük fel, hogy létezik olyan c, n 0, hogy n 2 cn teljesül minden n n 0 esetén. Ekkor n c teljesül minden n n 0 esetén, ami nyilván nem igaz, ha n > c. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 9 / 23

Függvények nagyságrendje Definíció Ha f (n) és g(n) az R + egy részhalmazán értelmezett, valós értékeket felvevő függvények, akkor f = Ω(g) jelöli azt a tényt, hogy vannak olyan c, n 0 > 0 állandók, hogy f (n) c g(n) teljesül, ha n n 0. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 10 / 23

Függvények nagyságrendje Definíció Ha f (n) és g(n) az R + egy részhalmazán értelmezett, valós értékeket felvevő függvények, akkor f = Ω(g) jelöli azt a tényt, hogy vannak olyan c, n 0 > 0 állandók, hogy f (n) c g(n) teljesül, ha n n 0. Például: 100n 300 = Ω(n), hiszen n > 300, c = 99-re teljesülnek a feltételek Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 10 / 23

Függvények nagyságrendje Definíció Ha f (n) és g(n) az R + egy részhalmazán értelmezett, valós értékeket felvevő függvények, akkor f = Ω(g) jelöli azt a tényt, hogy vannak olyan c, n 0 > 0 állandók, hogy f (n) c g(n) teljesül, ha n n 0. Például: 100n 300 = Ω(n), hiszen n > 300, c = 99-re teljesülnek a feltételek 5n 2 3n = Ω(n 2 ) n 4 5n 3 = Ω(n 4 ) 2 n = Ω(n 1000 ) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 10 / 23

Függvények nagyságrendje Definíció Ha f = O(g) és f = Ω(g) is teljesül, akkor f = Θ(g). Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 11 / 23

Függvények nagyságrendje Definíció Ha f = O(g) és f = Ω(g) is teljesül, akkor f = Θ(g). Például: 100n 300 = Θ(n) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 11 / 23

Függvények nagyságrendje Definíció Ha f = O(g) és f = Ω(g) is teljesül, akkor f = Θ(g). Például: 100n 300 = Θ(n) 5n 2 3n = Θ(n 2 ) n 4 5n 3 = Θ(n 4 ) 1000 2 n = Θ(2 n ) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 11 / 23

Függvények nagyságrendje Definíció Legyenek f (n) és g(n) a pozitív egészeken értelmezett, valós értékű függvények. Ekkor az f = o(g) jelöléssel rövidítjük azt, hogy f (n) 0, ha n. g(n) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 12 / 23

Függvények nagyságrendje Definíció Legyenek f (n) és g(n) a pozitív egészeken értelmezett, valós értékű függvények. Ekkor az f = o(g) jelöléssel rövidítjük azt, hogy f (n) 0, ha n. g(n) Például: 100n + 300 = o(n 2 ), hiszen 100n+300 n 2 0 ha n Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 12 / 23

Függvények nagyságrendje Definíció Legyenek f (n) és g(n) a pozitív egészeken értelmezett, valós értékű függvények. Ekkor az f = o(g) jelöléssel rövidítjük azt, hogy f (n) 0, ha n. g(n) Például: 100n + 300 = o(n 2 ), hiszen 100n+300 n 2 5n 2 + 3n = o(n 3 ) n 4 + 5n 3 = o(n 4 log 2 n) n 1000 = o(2 n ) 0 ha n Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 12 / 23

Algoritmikus problémák megoldása Algoritmikus probléma A modell B program Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 13 / 23

Algoritmikus problémák megoldása Algoritmikus probléma A modell B program A: pontosítás, egyszerűsítés, absztrakció, lényegtelen elemek kiszűrése, a lényeg kihámozása Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 13 / 23

Algoritmikus problémák megoldása Algoritmikus probléma A modell B program A: pontosítás, egyszerűsítés, absztrakció, lényegtelen elemek kiszűrése, a lényeg kihámozása Modell: sokféle lehet, elég tág, de elég egyszerű, formalizált, pontos Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 13 / 23

Algoritmikus problémák megoldása Algoritmikus probléma A modell B program A: pontosítás, egyszerűsítés, absztrakció, lényegtelen elemek kiszűrése, a lényeg kihámozása Modell: sokféle lehet, elég tág, de elég egyszerű, formalizált, pontos B: hatékony algoritmus, bemenő adatok eredmény, érdemes foglalkozni a kapott algoritmus elemzésével, értékelésével, megvizsgálva, hogy a módszer mennyire hatékony Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 13 / 23

Arthur király civilizációs törekvései Arthur király fényes udvarában 150 lovag és 150 udvarhölgy él. A király, aki közismert civilizációs erőfeszítéseiről, elhatározza, hogy megházasítja jó lovagjait és szép udvarhölgyeit. Mindezt persze emberségesen szeretné tenni. Csak olyan párok egybekelését akarja, amelyek tagjai kölcsönösen vonzalmat éreznek egymás iránt. Hogyan fogjon hozzá? Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 14 / 23

Arthur király civilizációs törekvései Arthur király fényes udvarában 150 lovag és 150 udvarhölgy él. A király, aki közismert civilizációs erőfeszítéseiről, elhatározza, hogy megházasítja jó lovagjait és szép udvarhölgyeit. Mindezt persze emberségesen szeretné tenni. Csak olyan párok egybekelését akarja, amelyek tagjai kölcsönösen vonzalmat éreznek egymás iránt. Hogyan fogjon hozzá? Természetesen pártfogójához, a nagyhatalmú varázslóhoz, Merlinhez fordul. Merlin rögvest felismeri, hogy itt is bináris szimmetrikus viszonyok ábrázolásáról van szó. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 14 / 23

Arthur király civilizációs törekvései Arthur király fényes udvarában 150 lovag és 150 udvarhölgy él. A király, aki közismert civilizációs erőfeszítéseiről, elhatározza, hogy megházasítja jó lovagjait és szép udvarhölgyeit. Mindezt persze emberségesen szeretné tenni. Csak olyan párok egybekelését akarja, amelyek tagjai kölcsönösen vonzalmat éreznek egymás iránt. Hogyan fogjon hozzá? Természetesen pártfogójához, a nagyhatalmú varázslóhoz, Merlinhez fordul. Merlin rögvest felismeri, hogy itt is bináris szimmetrikus viszonyok ábrázolásáról van szó. Nagy darab pergament vesz elő, és nekilát egy páros gráfot rajzolni. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 14 / 23

Arthur király civilizációs törekvései Arthur király fényes udvarában 150 lovag és 150 udvarhölgy él. A király, aki közismert civilizációs erőfeszítéseiről, elhatározza, hogy megházasítja jó lovagjait és szép udvarhölgyeit. Mindezt persze emberségesen szeretné tenni. Csak olyan párok egybekelését akarja, amelyek tagjai kölcsönösen vonzalmat éreznek egymás iránt. Hogyan fogjon hozzá? Természetesen pártfogójához, a nagyhatalmú varázslóhoz, Merlinhez fordul. Merlin rögvest felismeri, hogy itt is bináris szimmetrikus viszonyok ábrázolásáról van szó. Nagy darab pergament vesz elő, és nekilát egy páros gráfot rajzolni. A királyi parancs teljesítéséhez Merlinnek élek egy olyan rendszerét kell kiválasztania a gráf éleiből, hogy a kiválasztott élek közül a gráf minden pontjához pontosan egy csatlakozzon. A kiválasztott élek felelnek meg a tervezett házasságoknak. A gráfelmélet nyelvén teljes párosítást kell keresnie. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 14 / 23

Közlekedési lámpák ütemezése e d a b c Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 15 / 23

Közlekedési lámpák ütemezése e d a b c lámpák: ac, ad, bc, bd, ec és ed állapot: lámpák {P, Z } Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 15 / 23

Közlekedési lámpák ütemezése e d a b c lámpák: ac, ad, bc, bd, ec és ed állapot: lámpák {P, Z } Feladat: Mennyi a minimális számú állapot, ami biztonságos és nem okoz örök dugót? Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 15 / 23

Közlekedési lámpák ütemezése e d a b c lámpák: ac, ad, bc, bd, ec és ed állapot: lámpák {P, Z } Feladat: Mennyi a minimális számú állapot, ami biztonságos és nem okoz örök dugót? ac bc ec I. II. III. I. II. III. ad bd ed Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 15 / 23

Közlekedési lámpák ütemezése e d a b c lámpák: ac, ad, bc, bd, ec és ed állapot: lámpák {P, Z } Feladat: Mennyi a minimális számú állapot, ami biztonságos és nem okoz örök dugót? ac bc ec I. II. III. I. II. III. ad bd ed Gráfelméleti nyelven: Mennyi G kromatikus száma? Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 15 / 23

Mobiltelefon-átjátszók frekvencia kiosztása Egy adott átjátszóhoz egy adott frenkvenciát rendelnek. Egy telefon a közelben levő átjátszók közül választ. Közel levő átjátszók frekvenciája különbözzön. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 16 / 23

Mobiltelefon-átjátszók frekvencia kiosztása Egy adott átjátszóhoz egy adott frenkvenciát rendelnek. Egy telefon a közelben levő átjátszók közül választ. Közel levő átjátszók frekvenciája különbözzön. A A C C A B B A Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 16 / 23

Elágazás és korlátozás Legtöbbször van c n -es algoritmus, de nem mindegy mekkora c. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 17 / 23

Elágazás és korlátozás Legtöbbször van c n -es algoritmus, de nem mindegy mekkora c. Bontsunk esetekre, azokat alesetekre,... = fa Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 17 / 23

Elágazás és korlátozás Legtöbbször van c n -es algoritmus, de nem mindegy mekkora c. Bontsunk esetekre, azokat alesetekre,... = fa Értékeljük az eseteket = bizonyos irányokba nem kell továbbmenni. = (korlátozó heurisztika) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 17 / 23

Elágazás és korlátozás Legtöbbször van c n -es algoritmus, de nem mindegy mekkora c. Bontsunk esetekre, azokat alesetekre,... = fa Értékeljük az eseteket = bizonyos irányokba nem kell továbbmenni. = (korlátozó heurisztika) Pl. sakkállások Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 17 / 23

Elágazás és korlátozás Legtöbbször van c n -es algoritmus, de nem mindegy mekkora c. Bontsunk esetekre, azokat alesetekre,... = fa Értékeljük az eseteket = bizonyos irányokba nem kell továbbmenni. = (korlátozó heurisztika) Pl. sakkállások Feladat: Keressünk maximális méretű független ponthalmazt egy adott G gráfban. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 17 / 23

Elágazás és korlátozás Legtöbbször van c n -es algoritmus, de nem mindegy mekkora c. Bontsunk esetekre, azokat alesetekre,... = fa Értékeljük az eseteket = bizonyos irányokba nem kell továbbmenni. = (korlátozó heurisztika) Pl. sakkállások Feladat: Keressünk maximális méretű független ponthalmazt egy adott G gráfban. Nyilvánvaló módszer: Minden részhalmazt végignézünk = O(2 n ) lépés Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 17 / 23

Jobb algoritmus Észrevétel: Ha G-ben minden pont foka legfeljebb kettő, akkor a feladat lineáris időben megoldható: G izolált pontok, utak és körök diszjunkt uniója. = komponensenként minden második" pontot bevesszük a halmazba. (izolált pontok) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 18 / 23

Jobb algoritmus Észrevétel: Ha G-ben minden pont foka legfeljebb kettő, akkor a feladat lineáris időben megoldható: G izolált pontok, utak és körök diszjunkt uniója. = komponensenként minden második" pontot bevesszük a halmazba. (izolált pontok) MF(G) 1. Ha G-ben minden pont foka 2, akkor MF(G) az előbbi eljárás által adott maximális független halmaz, és a munkát befejeztük. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 18 / 23

Jobb algoritmus Észrevétel: Ha G-ben minden pont foka legfeljebb kettő, akkor a feladat lineáris időben megoldható: G izolált pontok, utak és körök diszjunkt uniója. = komponensenként minden második" pontot bevesszük a halmazba. (izolált pontok) MF(G) 1. Ha G-ben minden pont foka 2, akkor MF(G) az előbbi eljárás által adott maximális független halmaz, és a munkát befejeztük. 2. Legyen x G, fok(x) 3. S 1 := MF(G \ {x}) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 18 / 23

Jobb algoritmus Észrevétel: Ha G-ben minden pont foka legfeljebb kettő, akkor a feladat lineáris időben megoldható: G izolált pontok, utak és körök diszjunkt uniója. = komponensenként minden második" pontot bevesszük a halmazba. (izolált pontok) MF(G) 1. Ha G-ben minden pont foka 2, akkor MF(G) az előbbi eljárás által adott maximális független halmaz, és a munkát befejeztük. 2. Legyen x G, fok(x) 3. S 1 := MF(G \ {x}) S 2 := {x} MF(G \ {x és szomszédai}). Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 18 / 23

Jobb algoritmus Észrevétel: Ha G-ben minden pont foka legfeljebb kettő, akkor a feladat lineáris időben megoldható: G izolált pontok, utak és körök diszjunkt uniója. = komponensenként minden második" pontot bevesszük a halmazba. (izolált pontok) MF(G) 1. Ha G-ben minden pont foka 2, akkor MF(G) az előbbi eljárás által adott maximális független halmaz, és a munkát befejeztük. 2. Legyen x G, fok(x) 3. S 1 := MF(G \ {x}) S 2 := {x} MF(G \ {x és szomszédai}). 3. Legyen S az S 1 és S 2 közül a nagyobb méretű, illetve akármelyik, ha S 1 = S 2. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 18 / 23

Jobb algoritmus Észrevétel: Ha G-ben minden pont foka legfeljebb kettő, akkor a feladat lineáris időben megoldható: G izolált pontok, utak és körök diszjunkt uniója. = komponensenként minden második" pontot bevesszük a halmazba. (izolált pontok) MF(G) 1. Ha G-ben minden pont foka 2, akkor MF(G) az előbbi eljárás által adott maximális független halmaz, és a munkát befejeztük. 2. Legyen x G, fok(x) 3. S 1 := MF(G \ {x}) S 2 := {x} MF(G \ {x és szomszédai}). 3. Legyen S az S 1 és S 2 közül a nagyobb méretű, illetve akármelyik, ha S 1 = S 2. 4. MF(G) := S. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 18 / 23

Legyen T (n) az MF(G)-n ( V (G) n) belüli MF hívások maximális száma, beleértve MF(G)-t magát is. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 19 / 23

Legyen T (n) az MF(G)-n ( V (G) n) belüli MF hívások maximális száma, beleértve MF(G)-t magát is. Tétel Van olyan c állandó, hogy T (n) cγ n, tetszőleges n természetes számra, ahol γ a γ 4 γ 3 1 = 0 egyenlet pozitív gyöke (γ 1, 381). Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 19 / 23

Legyen T (n) az MF(G)-n ( V (G) n) belüli MF hívások maximális száma, beleértve MF(G)-t magát is. Tétel Van olyan c állandó, hogy T (n) cγ n, tetszőleges n természetes számra, ahol γ a γ 4 γ 3 1 = 0 egyenlet pozitív gyöke (γ 1, 381). Bizonyítás. Legyen t(n) := T (n) + 1. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 19 / 23

Legyen T (n) az MF(G)-n ( V (G) n) belüli MF hívások maximális száma, beleértve MF(G)-t magát is. Tétel Van olyan c állandó, hogy T (n) cγ n, tetszőleges n természetes számra, ahol γ a γ 4 γ 3 1 = 0 egyenlet pozitív gyöke (γ 1, 381). Bizonyítás. Legyen t(n) := T (n) + 1. T (n) T (n 1) + T (n 4) + 1, ha n > 4. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 19 / 23

Legyen T (n) az MF(G)-n ( V (G) n) belüli MF hívások maximális száma, beleértve MF(G)-t magát is. Tétel Van olyan c állandó, hogy T (n) cγ n, tetszőleges n természetes számra, ahol γ a γ 4 γ 3 1 = 0 egyenlet pozitív gyöke (γ 1, 381). Bizonyítás. Legyen t(n) := T (n) + 1. T (n) T (n 1) + T (n 4) + 1, ha n > 4. = t(n) t(n 1) + t(n 4), ha n > 4. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 19 / 23

Legyen T (n) az MF(G)-n ( V (G) n) belüli MF hívások maximális száma, beleértve MF(G)-t magát is. Tétel Van olyan c állandó, hogy T (n) cγ n, tetszőleges n természetes számra, ahol γ a γ 4 γ 3 1 = 0 egyenlet pozitív gyöke (γ 1, 381). Bizonyítás. Legyen t(n) := T (n) + 1. T (n) T (n 1) + T (n 4) + 1, ha n > 4. = t(n) t(n 1) + t(n 4), ha n > 4. Indukcióval: t(n) cγ n igaz Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 19 / 23

Legyen T (n) az MF(G)-n ( V (G) n) belüli MF hívások maximális száma, beleértve MF(G)-t magát is. Tétel Van olyan c állandó, hogy T (n) cγ n, tetszőleges n természetes számra, ahol γ a γ 4 γ 3 1 = 0 egyenlet pozitív gyöke (γ 1, 381). Bizonyítás. Legyen t(n) := T (n) + 1. T (n) T (n 1) + T (n 4) + 1, ha n > 4. = t(n) t(n 1) + t(n 4), ha n > 4. Indukcióval: t(n) cγ n igazn < 5-re elég nagy c-vel Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 19 / 23

Legyen T (n) az MF(G)-n ( V (G) n) belüli MF hívások maximális száma, beleértve MF(G)-t magát is. Tétel Van olyan c állandó, hogy T (n) cγ n, tetszőleges n természetes számra, ahol γ a γ 4 γ 3 1 = 0 egyenlet pozitív gyöke (γ 1, 381). Bizonyítás. Legyen t(n) := T (n) + 1. T (n) T (n 1) + T (n 4) + 1, ha n > 4. = t(n) t(n 1) + t(n 4), ha n > 4. Indukcióval: t(n) cγ n igazn < 5-re elég nagy c-vel = Ezután, ha n 5, indukciós feltevésből: t(n) t(n 1) + t(n 4) cγ n 1 + cγ n 4 = = cγ n 4 (γ 3 + 1) = cγ n 4 γ 4 = cγ n. Összköltség: O(n d T (n)) = O(n d γ n ) = O(1, 381 n ). Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 19 / 23

3-színezés keresése Feladat: Adott G, keressünk egy 3-színezést. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 20 / 23

3-színezés keresése Feladat: Adott G, keressünk egy 3-színezést. Minden lehetséges színezést végignézünk = O(3 n ) lépés Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 20 / 23

3-színezés keresése Feladat: Adott G, keressünk egy 3-színezést. Minden lehetséges színezést végignézünk = O(3 n ) lépés Ötlet: Bizonyos csúcsokat kiszínezünk pirosra, a többiről polinom időben el tudjuk dönteni, hogy kiszínezhetők-e kékkel és sárgával. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 20 / 23

3-színezés keresése Feladat: Adott G, keressünk egy 3-színezést. Minden lehetséges színezést végignézünk = O(3 n ) lépés Ötlet: Bizonyos csúcsokat kiszínezünk pirosra, a többiről polinom időben el tudjuk dönteni, hogy kiszínezhetők-e kékkel és sárgával. Összköltség: O(2 n n c ). Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 20 / 23

Dinamikus programozás Optimum meghatározása kisebb részfeladatok optimumainak felhasználásával. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 21 / 23

Dinamikus programozás Optimum meghatározása kisebb részfeladatok optimumainak felhasználásával. Általában egy táblázat kitöltése, az új elemeket a korábban kitöltött elemekből számoljuk. Binomiális együtthatók kiszámítása ( 0 ( 0 0) 0) ( 1 ) ( 1 0 1) ( 2 ) ( 2 ) ( 2 0 1 2) ( 3 ) ( 3 ) ( 3 ) ( 3 0 1 2 3) ( 4 ) ( 4 ) ( 4 ) ( 4 ) ( 4 0 1 2 3 4) ( 1 ) ( 1 0 1) ( 2 ) ( 2 ) ( 2 0 1 2) ( 3 ) ( 3 ) ( 3 ) ( 3 0 1 2 3) ( 4 ) ( 4 ) ( 4 ) ( 4 ) ( 4 0 1 2 3 4) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 21 / 23

Dinamikus programozás Optimum meghatározása kisebb részfeladatok optimumainak felhasználásával. Általában egy táblázat kitöltése, az új elemeket a korábban kitöltött elemekből számoljuk. Binomiális együtthatók kiszámítása ( 0 ( 0 0) 0) ( 1 ) ( 1 0 1) ( 2 ) ( 2 ) ( 2 0 1 2) ( 3 ) ( 3 ) ( 3 ) ( 3 0 1 2 3) ( 4 ) ( 4 ) ( 4 ) ( 4 ) ( 4 0 1 2 3 4) ( 1 ) ( 1 0 1) ( 2 ) ( 2 ) ( 2 0 1 2) ( 3 ) ( 3 ) ( 3 ) ( 3 0 1 2 3) ( 4 ) ( 4 ) ( 4 ) ( 4 ) ( 4 0 1 2 3 4) Tétel ( ) n = k ( ) n 1 + k 1 ( ) n 1 k Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 21 / 23

Hátizsák probléma Probléma Adottak az s 1,..., s m súlyok, a b súlykorlát és a v 1,..., v m értékek. (Minden érték pozitív egész.) Melyik az az I {1,..., m} részhalmaz, melyre teljesül, hogy i I s i b és i I v i maximális? Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 22 / 23

Hátizsák probléma Probléma Adottak az s 1,..., s m súlyok, a b súlykorlát és a v 1,..., v m értékek. (Minden érték pozitív egész.) Melyik az az I {1,..., m} részhalmaz, melyre teljesül, hogy i I s i b és i I v i maximális? Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 22 / 23

Először kisebb problémára oldjuk meg: v(i, a) a maximális elérhető érték az s 1,..., s i súlyokkal, v 1,..., v i értékekkel és a súlykorláttal megadott feladatra. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 23 / 23

Először kisebb problémára oldjuk meg: v(i, a) a maximális elérhető érték az s 1,..., s i súlyokkal, v 1,..., v i értékekkel és a súlykorláttal megadott feladatra. Ekkor v(0, a) = v(i, 0) = 0 a, i-re Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 23 / 23

Először kisebb problémára oldjuk meg: v(i, a) a maximális elérhető érték az s 1,..., s i súlyokkal, v 1,..., v i értékekkel és a súlykorláttal megadott feladatra. Ekkor v(0, a) = v(i, 0) = 0 a, i-re cél v(m, b) 0 a b 0 i v(i, a) m keresett érték Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 23 / 23

Először kisebb problémára oldjuk meg: v(i, a) a maximális elérhető érték az s 1,..., s i súlyokkal, v 1,..., v i értékekkel és a súlykorláttal megadott feladatra. Ekkor v(0, a) = v(i, 0) = 0 a, i-re cél v(m, b) 0 a b 0 i v(i, a) m keresett érték v(i, a) = max{v(i 1, a); v i + v(i 1, a s i )} Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 23 / 23

Először kisebb problémára oldjuk meg: v(i, a) a maximális elérhető érték az s 1,..., s i súlyokkal, v 1,..., v i értékekkel és a súlykorláttal megadott feladatra. Ekkor v(0, a) = v(i, 0) = 0 a, i-re cél v(m, b) 0 a b 0 i v(i, a) m keresett érték v(i, a) = max{v(i 1, a); v i + v(i 1, a s i )} = Soronként kitölthető = minden érték két felette levőből számolható. Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 23 / 23

Először kisebb problémára oldjuk meg: v(i, a) a maximális elérhető érték az s 1,..., s i súlyokkal, v 1,..., v i értékekkel és a súlykorláttal megadott feladatra. Ekkor v(0, a) = v(i, 0) = 0 a, i-re cél v(m, b) 0 a b 0 i v(i, a) m keresett érték v(i, a) = max{v(i 1, a); v i + v(i 1, a s i )} = Soronként kitölthető = minden érték két felette levőből számolható. Összköltség: O(bL) Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 23 / 23

Először kisebb problémára oldjuk meg: v(i, a) a maximális elérhető érték az s 1,..., s i súlyokkal, v 1,..., v i értékekkel és a súlykorláttal megadott feladatra. Ekkor v(0, a) = v(i, 0) = 0 a, i-re cél v(m, b) 0 a b 0 i v(i, a) m keresett érték v(i, a) = max{v(i 1, a); v i + v(i 1, a s i )} = Soronként kitölthető = minden érték két felette levőből számolható. Összköltség: O(bL) b-től függ (nem log b-től!), ha b sokjegyű szám, ez sok idő Katona Gyula Y. (BME SZIT) Algoritmuselmélet 1. előadás 23 / 23