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 Muszaki ˝ és Gazdaságtudományi Egyetem
˝ 1. eloadás
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
1 / 23
Algoritmus fogalma
˝ nem definiáljuk rendesen az algoritmus fogalmát. Egyelore
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
2 / 23
Algoritmus fogalma
˝ nem definiáljuk rendesen az algoritmus fogalmát. Egyelore Eljárás, recept, módszer.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
2 / 23
Algoritmus fogalma
˝ nem definiáljuk rendesen az algoritmus fogalmát. Egyelore Eljárás, recept, módszer. Jól meghatározott lépések egymásutánja, amelyek már elég pontosan, egyértelmuen ˝ megfogalmazottak ahhoz, hogy gépiesen végrehajthatók legyenek.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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ó alapmuveletek ˝ végzésérol.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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ó alapmuveletek ˝ végzésérol.
algoritmus ↔ számítógép program
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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ó alapmuveletek ˝ végzésérol.
algoritmus ↔ számítógép program valós probléma
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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ó alapmuveletek ˝ végzésérol.
algoritmus ↔ számítógép program valós probléma =⇒ absztrakt modell
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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ó alapmuveletek ˝ végzésérol.
algoritmus ↔ számítógép program valós probléma =⇒ absztrakt modell =⇒ algoritmus
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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ó alapmuveletek ˝ végzésérol.
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. eloadá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ó alapmuveletek ˝ végzésérol.
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. eloadá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étol?
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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étol? Az input méretét legtöbbször n-nel jelöljük.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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étol? 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éretu˝ az input, akkor az algoritmus f (n) lépést végez.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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étol? 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éretu˝ 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. eloadá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étol? 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éretu˝ 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. eloadá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étol? 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éretu˝ 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 n2 vagy n3 már sokszor nagy különbség, de néha mindegy
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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étol? 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éretu˝ 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 n2 vagy n3 már sokszor nagy különbség, de néha mindegy n2 vagy 2n már mindig nagy különbség
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
4 / 23
Például Kérdés Egy 1010 muvelet/mp ˝ sebességu˝ számítógép mennyi ideig dolgozik, ha f (n) muveletet ˝ kell végrehajtani n méretu˝ bemenetre?
n 10 102 106 109
f (n) n 10−9 10−8 10−4 0,1
n2 10−8 10−6 100 3,1 év
Katona Gyula Y. (BME SZIT)
log10 n 10−10 2 · 10−10 6 · 10−10 9 · 10−9
2n 1,02 · 10−7 4 · 1012 év 3,1 · 10301.012 év sok év
Algoritmuselmélet
n! 3,6 · 10−4 2.9,·10140 év 2,6 · 105.565.691 év sok év
˝ 1. eloadá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 felvevo˝ függvények, akkor f = O(g) jelöli azt a tényt, hogy vannak olyan c, n0 > 0 állandók, hogy |f (n)| ≤ c|g(n)| teljesül, ha n ≥ n0 .
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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. eloadás
7 / 23
Példák
100n + 300 = O(n) Biz: 100n + 300 ≤ 100n + n ≤ 101n ≤ cn, ha n ≥ 300, c = 101 5n2 + 3n = O(n2 ) Biz: 5n2 + 3n ≤ 5n2 + 3n2 ≤ 8n2 ≤ cn2 , ha n ≥ 100, c = 8
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
7 / 23
Példák
100n + 300 = O(n) Biz: 100n + 300 ≤ 100n + n ≤ 101n ≤ cn, ha n ≥ 300, c = 101 5n2 + 3n = O(n2 ) Biz: 5n2 + 3n ≤ 5n2 + 3n2 ≤ 8n2 ≤ cn2 , ha n ≥ 100, c = 8 n4 + 5n3 = O(n5 ) Biz: n4 + 5n3 ≤ 6n4 ≤ n5 ≤ cn5 , ha n ≥ 6, c = 1
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
7 / 23
Példák n1000 = O(2n ) Biz: Teljes indukcióval, legyen c = 1, n0 = 106 .
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
8 / 23
Példák n1000 = O(2n ) Biz: Teljes indukcióval, legyen c = 1, n0 = 106 . 6 n = 106 -re igaz, mert 106000 ≤ (24 )6000 ≤ 210 .
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
8 / 23
Példák n1000 = O(2n ) Biz: Teljes indukcióval, legyen c = 1, n0 = 106 . 6 n = 106 -re igaz, mert 106000 ≤ (24 )6000 ≤ 210 . Tegyük fel, hogy k -ra igaz.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
8 / 23
Példák n1000 = O(2n ) Biz: Teljes indukcióval, legyen c = 1, n0 = 106 . 6 n = 106 -re igaz, mert 106000 ≤ (24 )6000 ≤ 210 . Tegyük fel, hogy k -ra igaz. Felhasználjuk, hogy ha k ≥ 106 akkor 1000 ≤ 1000i = 1000 · 1000i−1 ≤ 1000i−1 · 1000i−1 = i 6 = (10 )i−1 ≤ k i−1 .
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
8 / 23
Példák n1000 = O(2n ) Biz: Teljes indukcióval, legyen c = 1, n0 = 106 . 6 n = 106 -re igaz, mert 106000 ≤ (24 )6000 ≤ 210 . Tegyük fel, hogy k -ra igaz. Felhasználjuk, hogy ha k ≥ 106 akkor 1000 ≤ 1000i = 1000 · 1000i−1 ≤ 1000i−1 · 1000i−1 = i 6 = (10 )i−1 ≤ k i−1 . 1000−i (k + 1)1000 = k 1000 + · · · + 1000 k + · · · ≤ k 1000 + · · · + i k i−1 k 1000−i + · · · ≤ k 1000 + 1000k 999 ≤ 2 · k 1000 ≤ 2 · 2k = 2k +1 , ha k ≥ 106 .
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
8 / 23
Példák n1000 = O(2n ) Biz: Teljes indukcióval, legyen c = 1, n0 = 106 . 6 n = 106 -re igaz, mert 106000 ≤ (24 )6000 ≤ 210 . Tegyük fel, hogy k -ra igaz. Felhasználjuk, hogy ha k ≥ 106 akkor 1000 ≤ 1000i = 1000 · 1000i−1 ≤ 1000i−1 · 1000i−1 = i 6 = (10 )i−1 ≤ k i−1 . 1000−i (k + 1)1000 = k 1000 + · · · + 1000 k + · · · ≤ k 1000 + · · · + i k i−1 k 1000−i + · · · ≤ k 1000 + 1000k 999 ≤ 2 · k 1000 ≤ 2 · 2k = 2k +1 , ha k ≥ 106 . log1000 (n) = O(n) 2
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
8 / 23
Példák n1000 = O(2n ) Biz: Teljes indukcióval, legyen c = 1, n0 = 106 . 6 n = 106 -re igaz, mert 106000 ≤ (24 )6000 ≤ 210 . Tegyük fel, hogy k -ra igaz. Felhasználjuk, hogy ha k ≥ 106 akkor 1000 ≤ 1000i = 1000 · 1000i−1 ≤ 1000i−1 · 1000i−1 = i 6 = (10 )i−1 ≤ k i−1 . 1000−i (k + 1)1000 = k 1000 + · · · + 1000 k + · · · ≤ k 1000 + · · · + i k i−1 k 1000−i + · · · ≤ k 1000 + 1000k 999 ≤ 2 · k 1000 ≤ 2 · 2k = 2k +1 , ha k ≥ 106 . log1000 (n) = O(n) 2 ˝ vehetjük a fentiek Biz: Mivel a logaritmus függvény monoton no, logaritmusát.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
8 / 23
Példák n1000 = O(2n ) Biz: Teljes indukcióval, legyen c = 1, n0 = 106 . 6 n = 106 -re igaz, mert 106000 ≤ (24 )6000 ≤ 210 . Tegyük fel, hogy k -ra igaz. Felhasználjuk, hogy ha k ≥ 106 akkor 1000 ≤ 1000i = 1000 · 1000i−1 ≤ 1000i−1 · 1000i−1 = i 6 = (10 )i−1 ≤ k i−1 . 1000−i (k + 1)1000 = k 1000 + · · · + 1000 k + · · · ≤ k 1000 + · · · + i k i−1 k 1000−i + · · · ≤ k 1000 + 1000k 999 ≤ 2 · k 1000 ≤ 2 · 2k = 2k +1 , ha k ≥ 106 . log1000 (n) = O(n) 2 ˝ vehetjük a fentiek Biz: Mivel a logaritmus függvény monoton no, logaritmusát. 2n = O(n!)
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
8 / 23
Példák n1000 = O(2n ) Biz: Teljes indukcióval, legyen c = 1, n0 = 106 . 6 n = 106 -re igaz, mert 106000 ≤ (24 )6000 ≤ 210 . Tegyük fel, hogy k -ra igaz. Felhasználjuk, hogy ha k ≥ 106 akkor 1000 ≤ 1000i = 1000 · 1000i−1 ≤ 1000i−1 · 1000i−1 = i 6 = (10 )i−1 ≤ k i−1 . 1000−i (k + 1)1000 = k 1000 + · · · + 1000 k + · · · ≤ k 1000 + · · · + i k i−1 k 1000−i + · · · ≤ k 1000 + 1000k 999 ≤ 2 · k 1000 ≤ 2 · 2k = 2k +1 , ha k ≥ 106 . log1000 (n) = O(n) 2 ˝ vehetjük a fentiek Biz: Mivel a logaritmus függvény monoton no, logaritmusát. 2n = O(n!) n! = O(nn ) Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
8 / 23
Példák
Igaz-e, hogy n2 = O(n)?
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
9 / 23
Példák
Igaz-e, hogy n2 = O(n)?
Nem. Biz: Indirekt, tegyük fel, hogy létezik olyan c, n0 , hogy n2 ≤ cn teljesül minden n ≥ n0 esetén.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
9 / 23
Példák
Igaz-e, hogy n2 = O(n)?
Nem. Biz: Indirekt, tegyük fel, hogy létezik olyan c, n0 , hogy n2 ≤ cn teljesül minden n ≥ n0 esetén. Ekkor n ≤ c teljesül minden n ≥ n0 esetén, ami nyilván nem igaz, ha n > c.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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 felvevo˝ függvények, akkor f = Ω(g) jelöli azt a tényt, hogy vannak olyan c, n0 > 0 állandók, hogy |f (n)| ≥ c|g(n)| teljesül, ha n ≥ n0 .
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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 felvevo˝ függvények, akkor f = Ω(g) jelöli azt a tényt, hogy vannak olyan c, n0 > 0 állandók, hogy |f (n)| ≥ c|g(n)| teljesül, ha n ≥ n0 . 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. eloadá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 felvevo˝ függvények, akkor f = Ω(g) jelöli azt a tényt, hogy vannak olyan c, n0 > 0 állandók, hogy |f (n)| ≥ c|g(n)| teljesül, ha n ≥ n0 . Például: 100n − 300 = Ω(n), hiszen n > 300, c = 99-re teljesülnek a feltételek 5n2 − 3n = Ω(n2 ) n4 − 5n3 = Ω(n4 ) 2n = Ω(n1000 )
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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. eloadá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. eloadá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) 5n2 − 3n = Θ(n2 ) n4 − 5n3 = Θ(n4 ) 1000 · 2n = Θ(2n )
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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éku˝ 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. eloadá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éku˝ 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(n2 ), hiszen
Katona Gyula Y. (BME SZIT)
100n+300 n2
Algoritmuselmélet
→ 0 ha n → ∞
˝ 1. eloadá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éku˝ 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(n2 ), hiszen 5n2 n4
+ 3n =
100n+300 n2
→ 0 ha n → ∞
o(n3 )
+ 5n3 = o(n4 log2 n)
n1000 = o(2n )
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
12 / 23
Algoritmikus problémák megoldása
A
B
Algoritmikus probléma −→ modell −→ program
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
13 / 23
Algoritmikus problémák megoldása
A
B
Algoritmikus probléma −→ modell −→ program A: pontosítás, egyszerusítés, ˝ absztrakció, lényegtelen elemek kiszurése, ˝ a lényeg kihámozása
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
13 / 23
Algoritmikus problémák megoldása
A
B
Algoritmikus probléma −→ modell −→ program A: pontosítás, egyszerusítés, ˝ absztrakció, lényegtelen elemek kiszurése, ˝ a lényeg kihámozása Modell: sokféle lehet, elég tág, de elég egyszeru, ˝ formalizált, pontos
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
13 / 23
Algoritmikus problémák megoldása
A
B
Algoritmikus probléma −→ modell −→ program A: pontosítás, egyszerusítés, ˝ absztrakció, lényegtelen elemek kiszurése, ˝ a lényeg kihámozása Modell: sokféle lehet, elég tág, de elég egyszeru, ˝ formalizált, pontos B: hatékony algoritmus, bemeno˝ 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. eloadá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 ˝ ˝ elhatározza, hogy civilizációs erofeszítéseir ol, 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. eloadá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 ˝ ˝ elhatározza, hogy civilizációs erofeszítéseir ol, 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. eloadá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 ˝ ˝ elhatározza, hogy civilizációs erofeszítéseir ol, 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ó. ˝ és nekilát egy páros gráfot rajzolni. Nagy darab pergament vesz elo,
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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 ˝ ˝ elhatározza, hogy civilizációs erofeszítéseir ol, 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ó. ˝ és nekilát egy páros gráfot rajzolni. Nagy darab pergament vesz elo, A királyi parancs teljesítéséhez Merlinnek élek egy olyan rendszerét ˝ hogy a kiválasztott élek közül a gráf kell kiválasztania a gráf éleibol, 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. eloadás
14 / 23
Közlekedési lámpák ütemezése a b
" " A " " A 3 A A e A A A U A A c A d AA A
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
15 / 23
Közlekedési lámpák ütemezése a b
lámpák: ac, ad, bc, bd, ec és ed állapot: lámpák → {P, Z }
" " A " " A 3 A A e A A A U A A c A d AA A
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
15 / 23
Közlekedési lámpák ütemezése a b
" " A " " A 3 A A e A A A U A A c A d AA A
Katona Gyula Y. (BME SZIT)
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?
Algoritmuselmélet
˝ 1. eloadás
15 / 23
Közlekedési lámpák ütemezése a b
lámpák: ac, ad, bc, bd, ec és ed állapot: lámpák → {P, Z }
" " A " " A 3 A A e A A A U A A c A d AA A
Feladat: Mennyi a minimális számú állapot, ami biztonságos és nem okoz örök dugót?
ac I. @
bc ! ec !!,, ! II. ! III.
@ ! , !! @ , ! ! I.!! @ II. , @ ,
ad
Katona Gyula Y. (BME SZIT)
bd
Algoritmuselmélet
III. ed
˝ 1. eloadás
15 / 23
Közlekedési lámpák ütemezése a b
lámpák: ac, ad, bc, bd, ec és ed állapot: lámpák → {P, Z }
" " A " " A 3 A A e A A A U A A c A d AA A
Feladat: Mennyi a minimális számú állapot, ami biztonságos és nem okoz örök dugót?
ac I. @
bc ! ec !!,, ! II. ! III.
@ ! , !! @ , ! ! I.!! @ II. , @ ,
ad
bd
III. ed
Gráfelméleti nyelven: Mennyi G kromatikus száma? Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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 levo˝ átjátszók közül választ. ˝ átjátszók frekvenciája különbözzön. „Közel levo”
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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 levo˝ átjátszók közül választ. ˝ átjátszók frekvenciája különbözzön. „Közel levo” A A C C
A B B A Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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. eloadá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. eloadá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. eloadá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. eloadá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éretu˝ független ponthalmazt egy adott G gráfban.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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éretu˝ független ponthalmazt egy adott G gráfban. Nyilvánvaló módszer: Minden részhalmazt végignézünk =⇒ O(2n ) lépés
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
17 / 23
Jobb algoritmus ˝ akkor a Észrevétel: Ha G-ben minden pont foka legfeljebb ketto, ˝ feladat lineáris idoben 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) r r h B B Br
Katona Gyula Y. (BME SZIT)
@
r rh rh h @h r rh r rh r r
Algoritmuselmélet
˝ 1. eloadás
18 / 23
Jobb algoritmus ˝ akkor a Észrevétel: Ha G-ben minden pont foka legfeljebb ketto, ˝ feladat lineáris idoben 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) r r h B B Br
@
r rh rh h @h r rh r rh r r
MF(G) ˝ 1. Ha G-ben minden pont foka ≤ 2, akkor MF(G) az elobbi eljárás által adott maximális független halmaz, és a munkát befejeztük.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
18 / 23
Jobb algoritmus ˝ akkor a Észrevétel: Ha G-ben minden pont foka legfeljebb ketto, ˝ feladat lineáris idoben 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) r r h B B Br
@
r rh rh h @h r rh r rh r r
MF(G) ˝ 1. Ha G-ben minden pont foka ≤ 2, akkor MF(G) az elobbi eljárás által adott maximális független halmaz, és a munkát befejeztük. 2. Legyen x ∈ G, fok (x) ≥ 3. S1 := MF(G \ {x})
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
18 / 23
Jobb algoritmus ˝ akkor a Észrevétel: Ha G-ben minden pont foka legfeljebb ketto, ˝ feladat lineáris idoben 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) r r h B B Br
@
r rh rh h @h r rh r rh r r
MF(G) ˝ 1. Ha G-ben minden pont foka ≤ 2, akkor MF(G) az elobbi eljárás által adott maximális független halmaz, és a munkát befejeztük. 2. Legyen x ∈ G, fok (x) ≥ 3. S1 := MF(G \ {x}) S2 := {x} ∪ MF(G \ {x és szomszédai}).
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
18 / 23
Jobb algoritmus ˝ akkor a Észrevétel: Ha G-ben minden pont foka legfeljebb ketto, ˝ feladat lineáris idoben 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) r r h B B Br
@
r rh rh h @h r rh r rh r r
MF(G) ˝ 1. Ha G-ben minden pont foka ≤ 2, akkor MF(G) az elobbi eljárás által adott maximális független halmaz, és a munkát befejeztük. 2. Legyen x ∈ G, fok (x) ≥ 3. S1 := MF(G \ {x}) S2 := {x} ∪ MF(G \ {x és szomszédai}). 3. Legyen S az S1 és S2 közül a nagyobb méretu, ˝ illetve akármelyik, ha |S1 | = |S2 |. Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
18 / 23
Jobb algoritmus ˝ akkor a Észrevétel: Ha G-ben minden pont foka legfeljebb ketto, ˝ feladat lineáris idoben 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) r r h B B Br
@
r rh rh h @h r rh r rh r r
MF(G) ˝ 1. Ha G-ben minden pont foka ≤ 2, akkor MF(G) az elobbi eljárás által adott maximális független halmaz, és a munkát befejeztük. 2. Legyen x ∈ G, fok (x) ≥ 3. S1 := MF(G \ {x}) S2 := {x} ∪ MF(G \ {x és szomszédai}). 3. Legyen S az S1 és S2 közül a nagyobb méretu, ˝ illetve akármelyik, ha |S1 | = |S2 |. 4. MF(G) := S. Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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. eloadá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 , tetszoleges n természetes 4 3 számra, ahol γ a γ − γ − 1 = 0 egyenlet pozitív gyöke (γ ≈ 1, 381).
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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 , tetszoleges n természetes 4 3 számra, ahol γ a γ − γ − 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. eloadá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 , tetszoleges n természetes 4 3 számra, ahol γ a γ − γ − 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. eloadá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 , tetszoleges n természetes 4 3 számra, ahol γ a γ − γ − 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. eloadá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 , tetszoleges n természetes 4 3 számra, ahol γ a γ − γ − 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. eloadá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 , tetszoleges n természetes 4 3 számra, ahol γ a γ − γ − 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. eloadá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 , tetszoleges n természetes 4 3 számra, ahol γ a γ − γ − 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ésbol: 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(nd T (n)) = O(nd γ n ) = O(1, 381n ). Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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. eloadá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(3n ) lépés
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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(3n ) lépés
˝ polinom Ötlet: Bizonyos csúcsokat kiszínezünk pirosra, a többirol ˝ ˝ idoben el tudjuk dönteni, hogy kiszínezhetok-e kékkel és sárgával.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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(3n ) lépés
˝ polinom Ötlet: Bizonyos csúcsokat kiszínezünk pirosra, a többirol ˝ ˝ idoben el tudjuk dönteni, hogy kiszínezhetok-e kékkel és sárgával.
Összköltség: O(2n nc ).
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadá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. eloadá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 ˝ számoljuk. elemekbol Binomiális együtthatók kiszámítása 0 0 0 1 0
1 1
2 0
3 3
3 2
4 1
2 2
3 1
4 0
2 1
3 0
4 2
Katona Gyula Y. (BME SZIT)
4 3
4 4
0 1 0 2 0 3 0 4 0
Algoritmuselmélet
1 1 2 1 3 1 4 1
2 2 3 2 4 2
3 3 4 3
4 4
˝ 1. eloadá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 ˝ számoljuk. elemekbol Binomiális együtthatók kiszámítása 0 0 0 1 0
1 1
2 0
3 3
3 2
4 1
2 2
3 1
4 0
2 1
3 0
4 2
4 3
4 4
0 1 0 2 0 3 0 4 0
1 1 2 1 3 1 4 1
2 2 3 2 4 2
3 3 4 3
4 4
Tétel n n−1 n−1 = + k k −1 k Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
21 / 23
Hátizsák probléma Probléma Adottak az s1 , . . . , sm súlyok, a b súlykorlát és a v1 , . . . , vm értékek. (Minden érték pozitív P egész.) MelyikP az az I ⊆ {1, . . . , m} részhalmaz, melyre teljesül, hogy i∈I si ≤ b és i∈I vi maximális?
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
22 / 23
Hátizsák probléma Probléma Adottak az s1 , . . . , sm súlyok, a b súlykorlát és a v1 , . . . , vm értékek. (Minden érték pozitív P egész.) MelyikP az az I ⊆ {1, . . . , m} részhalmaz, melyre teljesül, hogy i∈I si ≤ b és i∈I vi maximális?
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
22 / 23
˝ Eloször kisebb problémára oldjuk meg: v (i, a) a maximális elérheto˝ érték az s1 , . . . , si súlyokkal, v1 , . . . , vi értékekkel és a súlykorláttal megadott feladatra.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
23 / 23
˝ Eloször kisebb problémára oldjuk meg: v (i, a) a maximális elérheto˝ érték az s1 , . . . , si súlyokkal, v1 , . . . , vi é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. eloadás
23 / 23
˝ Eloször kisebb problémára oldjuk meg: v (i, a) a maximális elérheto˝ érték az s1 , . . . , si súlyokkal, v1 , . . . , vi é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) a 0 b 0 i p p p p p p p p p p
p p `p p` p
v (i, a)
p p p p p p p p p p p p p p p p p p p m?
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
p p p p p p p p p p p
keresett érték
˝ 1. eloadás
23 / 23
˝ Eloször kisebb problémára oldjuk meg: v (i, a) a maximális elérheto˝ érték az s1 , . . . , si súlyokkal, v1 , . . . , vi é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) a 0 b 0 i p p p p p p p p p p
p p `p p` p
v (i, a)
p p p p p p p p p p p p p p p p p p p m?
p p p p p p p p p p p
keresett érték
v (i, a) = max{v (i − 1, a); vi + v (i − 1, a − si )}
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
23 / 23
˝ Eloször kisebb problémára oldjuk meg: v (i, a) a maximális elérheto˝ érték az s1 , . . . , si súlyokkal, v1 , . . . , vi é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) a 0 b 0 i p p p p p p p p p p
p p `p p` p
v (i, a)
p p p p p p p p p p p p p p p p p p p m?
p p p p p p p p p p p
keresett érték
v (i, a) = max{v (i − 1, a); vi + v (i − 1, a − si )} ˝ ol ˝ =⇒ Soronként kitöltheto˝ ⇐= minden érték két felette levob számolható.
Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
23 / 23
˝ Eloször kisebb problémára oldjuk meg: v (i, a) a maximális elérheto˝ érték az s1 , . . . , si súlyokkal, v1 , . . . , vi é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) a 0 b 0 i p p p p p p p p p p
p p `p p` p
v (i, a)
p p p p p p p p p p p p p p p p p p p m?
p p p p p p p p p p p
keresett érték
v (i, a) = max{v (i − 1, a); vi + v (i − 1, a − si )} ˝ ol ˝ =⇒ Soronként kitöltheto˝ ⇐= minden érték két felette levob számolható. Összköltség: O(bL) Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
23 / 23
˝ Eloször kisebb problémára oldjuk meg: v (i, a) a maximális elérheto˝ érték az s1 , . . . , si súlyokkal, v1 , . . . , vi é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) a 0 b 0 i p p p p p p p p p p
p p `p p` p
v (i, a)
p p p p p p p p p p p p p p p p p p p m?
p p p p p p p p p p p
keresett érték
v (i, a) = max{v (i − 1, a); vi + v (i − 1, a − si )} ˝ ol ˝ =⇒ Soronként kitöltheto˝ ⇐= minden érték két felette levob számolható. Összköltség: O(bL) ˝ függ (nem log b-tol!), ˝ ha b sokjegyu˝ szám, ez sok ido˝ b-tol Katona Gyula Y. (BME SZIT)
Algoritmuselmélet
˝ 1. eloadás
23 / 23