angolul: greedy algorithms, románul: algoritmi greedy



Hasonló dokumentumok
Algoritmusok bonyolultsága

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4. kurzus. 3. Előadás: A mohó algoritmus

Programozási módszertan. Mohó algoritmusok

bármely másikra el lehessen jutni. A vállalat tudja, hogy tetszőlegesen adott

értékel függvény: rátermettségi függvény (tness function)

Dinamikus programozás vagy Oszd meg, és uralkodj!

Algoritmusok bonyolultsága

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Gráfelméleti feladatok. c f

Algoritmizálás, adatmodellezés tanítása 8. előadás

értékel függvény: rátermettségi függvény (tness function)

Korlátozás és szétválasztás elve. ADAGOLO adattípus

Programozási segédlet

Ütemezési problémák. Kis Tamás 1. ELTE Problémamegoldó Szeminárium, ősz 1 MTA SZTAKI. valamint ELTE, Operációkutatási Tanszék

Permutáció n = 3 esetében: Eredmény: permutációk száma: P n = n! romámul: permutări, angolul: permutation

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

Mohó algoritmusok. Példa:

Intelligens Rendszerek Elmélete IRE 4/32/1

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Az optimális megoldást adó algoritmusok

2. Visszalépéses keresés

Matematikai problémák vizsgálata a Maple programcsomag segítségével

Mohó stratégia. Feladat: Megoldás:

Mesterséges Intelligencia I. (I602, IB602)

Amortizációs költségelemzés

Algoritmuselmélet 11. előadás

5/1. tétel: Optimalis feszítőfák, Prim és Kruskal algorithmusa. Legrövidebb utak graphokban, negatív súlyú élek, Dijkstra és Bellman Ford algorithmus.

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:

2. Visszalépéses stratégia

INFORMATIKA javítókulcs 2016

Dinamikus programozás - Szerelőszalag ütemezése

Gráfalgoritmusok ismétlés ősz

Navigáci. stervezés. Algoritmusok és alkalmazásaik. Osváth Róbert Sorbán Sámuel

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

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

Algoritmuselmélet 2. előadás

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

Az B sorozatban a pontok helyes preorder sorrendben vannak. A preorder bejárásban p k -t közvetlenül q m követi.

Adatszerkezetek II. 6. előadás

A számítástudomány alapjai

Diszkrét matematika II. gyakorlat

Informatikai tehetséggondozás:

Adatbányászati szemelvények MapReduce környezetben

INFORMATIKA tétel 2019

Rakov(34125)= Rakov(12543)= Rakov(14532)= Rakov(54321)=-

Mesterséges intelligencia 1 előadások

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

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

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

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

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

Táblázatok fontosabb műveletei 1

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

A 2010/2011 tanévi Országos Középiskolai Tanulmányi Verseny második fordulójának megoldása. II. (programozás) kategória

Programozási módszertan. Dinamikus programozás: A leghosszabb közös részsorozat

Algoritmuselmélet 18. előadás

Számítógépes döntéstámogatás. Genetikus algoritmusok

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.

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

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

Mesterséges intelligencia 2. laborgyakorlat

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

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

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

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

Ütemezési feladatok. Az ütemezési feladatok vizsgálata az 50-es évek elején kezdődött, majd

Hálózatszámítási modellek

2017/ Szegedi Tudományegyetem Informatikai Intézet

Algoritmuselmélet 7. előadás

Partíció probléma rekurzíómemorizálással

Diszkrét matematika 2.C szakirány

Felvételi tematika INFORMATIKA

Kupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Minta felvételi feladatsor programozásból

Programozási módszertan. Dinamikus programozás: szerelőszalag ütemezése Mátrixok véges sorozatainak szorzása

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

Algoritmusok és adatszerkezetek gyakorlat 07

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

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

1. Előadás Lineáris programozás

Approximációs algoritmusok

Elmaradó óra. Az F = (V,T) gráf minimális feszitőfája G-nek, ha. F feszitőfája G-nek, és. C(T) minimális

Mesterséges Intelligencia MI

Online migrációs ütemezési modellek

Adott: VPN topológia tervezés. Költségmodell: fix szakaszköltség VPN végpontok

HAMILTON ÚT: minden csúcson PONTOSAN egyszer áthaladó út

Képfeldolgozás haladóknak Lovag Tamás Novák Gábor 2011

24. MINIMÁLIS KÖLTSÉGŰ UTAK I.

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

OKTV 2007/2008 Informatika II. kategória döntő forduló Feladatlap. Oktatási Hivatal

Korlátozás és szétválasztás módszere Holló Csaba 2

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:

Diszkrét matematika 2.C szakirány

Algoritmuselmélet 1. előadás

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Adatbázis rendszerek Gy: Algoritmusok C-ben

Konjugált gradiens módszer

Átírás:

Mohó algoritmusok angolul: greedy algorithms, románul: algoritmi greedy 1. feladat. Gazdaságos telefonhálózat építése Bizonyos városok között lehet direkt telefonkapcsolatot kiépíteni, pl. x és y város között a költség k(x, y). Építsünk minimális költségű telefonhálózatot, hogy minden vároból lehessen telefonálni minden városba! A módszer: Kruskal algoritmusa Példa. 1 10 2 5 3 6 5 7 4 8 6 6 9 2 12 1 13 2 6 8 4 4 3 1 2 5 3 6 7 4 5 8 2 1 2 8 4 3 1

----------------------------------------------------------- {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8} ----------------------------------------------------------- 5,7 1 * {1}, {2}, {3}, {4}, {5,7}, {6}, [8} 7,8 2 * {1}, {2}, {3}, {4}, {5,7,8}, {6} 3,4 2 * {1}, {2}, {3,4}, {5,7,8}, {6} 3,8 3 * {1}, {2}, {3,4,5,7,8}, {6} 1,3 4 * {1,3,4,5,7,8}, {2}, {6} 4,8 4 2,3 5 * {1,2,3,4,5,7,8}, {6} 1,5 6 2,5 6 4,5 6 1,6 8 * {1,2,3,4,5,6,7,8} 3,5 9 1,2 10 5,6 12 5,8 13 ----------------------------------------------------------- A csillaggal megjelölt elemek a megoldást adják. 2

Összesen n városunk van: v 1, v 2,... v n. Az algoritmus leírásához tekintsük a direkt kapcsolotok E = {e 1, e 2,..., e m } halmazát úgy, hogy k(e i ) k(e i+1 ), minden i = 1, 2,...,m 1 értékre. Egy e i két várost köt össze, pl. v k, v l. Halmazok helyett egy h = (h 1, h 2,...,h n ) vektort használunk, amelynek elemei kezdetben egyenlőek az indexükkel, ami arra utal, hogy különböző halmazok elemei. Amikor két halmazt egyesítünk, a megfelelő h i értékeket egyenlővé tesszük (egyik halmaz elemeinek h i értékeit a másik halmaz h i értékeire állítjuk.). Kruskal(E) 1. for j=1,2,..., n 2. do h j := j 3. i := 1 4. while h elemei különbözőek 5. do if (e i végpontjai v k, v l ) és (h k h l ) 6. then kiír e i 7. for j:=1, 2,..., n 8. do if h j = h l 9. then h j := h k 10. i:=i+1 A megoldás mindig optimális. 3

2. feladat. Színezzünk ki egy térképet a lehető legkevesebb színnel! Legyenek a színek : 1, 2,.... Mindig a legkisebb számú színt használjuk, amely lehetséges. Nem ad mindig optimális megoldást. A megoldás függ a színezés sorrendjétől. Példa. a 1, b 2, a 3, b 1, a 2, b 3 a 1, b 1, a 2, b 2, a 3, b 3 b 3 a 2 a 1 b 2 a 3 b 1 3 2 b 3 a 2 a 1 2 b 2 3 1 a 3 2 b 1 3 4 3 b 3 a 2 a 1 2 3 b 2 1 a 3 b 1 2 4 Mi a hasonlóság e két példa megoldása között? Mindkettő mohó algoritmus. Lokális optimumot használ a globális optimum meghatározására. Egy adott L halmaz bizonyos tulajdonságú M részhalmazát keressük. Kezdetben M üres, és mindig a legigéretesebb elemmel bővítjük. Van mikor a megoldás optimális, van mikor nem (ekkor a neve: heurisztikus mohó algoritmus). Be kell bizonyítani, hogy a megoldás optimális. 4

Pénzváltás. Feladat: a lehető legkevesebb bankjeggyel (érmével) fizessünk ki egy összeget. Mohó stratégia: mindig a legnagyobb címlettel próbálkozunk. Ha a lehetséges címletek: 1,5,8,10, a mohó megoldás nem mindig optimális. 13=10+1+1+1, az optimális 13=8+5. Ha a lehetséges címletek: 1,5,10,25, a mohó megoldás mindig optimális. 5

Huffman-kód a b c d e f gyakoriság (ezrekben) 45 13 12 16 9 5 fix hosszú kód 000 001 010 011 100 101 változó hosszú kód 0 101 100 111 1101 1100 100 000 betűs szövegben az a 45 000-szer, a b 13 000- szer stb. fordul elő: fix esetben: 300 000 hosszú változó esetben: 224 000 hosszú mert (45 1 + 13 3 + 12 3 + 16 3 + 9 4 + 5 4) 1000 = 224000 100 0 1 86 0 1 0 58 28 14 0 1 0 1 0 1 a:45 b:13 c:12 d:16 e:9 f:5 100 0 1 14 a:45 55 0 1 25 30 0 1 0 1 c:12 b:13 14 d:16 0 1 f:5 e:9 0010110100 0.0.101.101.100 aabbc 6

Hátizsákfeladat Adottak: n tárgy s i tömeggel (súllyal), e i értékkel S súlykapacitású hátizsák Feladat: Maximális nyereséggel pakoljuk meg a hátizsákot, ha egy tárgyból le is vághatunk. ("töredékes hátizsák"-feladat) mohó: érték/súly csökkenő sorrendjében pakolunk optimális Ha csak egész tárgyakat helyezhetünk el, akkor nem mindig optimális. Példa: S = 110, n = 8 e i : 11 21 31 33 43 53 55 65 s i : 1 11 21 23 33 43 45 55 e i /s i : 11 1.9 1.47 1.43 1.3 1.23 1.22 1.18 Megoldás: mohó: 1, 11, 21, 23, 33 összeg = 89, érték = 139 optimális: 1, 11, 21, 33, 43 összeg = 109, érték = 159 töredékes hátizsák: 1, 11, 21, 23, 33, 21 (a 43-ból) összeg = 110, érték = 164.23 7

Ütemezés 1 Feladat: 3 processzoron 9 programot futtatni a lehető legrövidebb idő alatt. A programok időtartamai: 3, 5, 6, 10, 11, 14, 15, 18, 20 másodperc. P 1 P 2 P 3 leghosszabb először 20 10 3 18 11 6 15 14 5 35 mp. P 1 legrövidebb először 3 10 15 P 2 P 3 5 11 18 6 14 20 40 mp. P 1 P 2 P 3 optimális 20 14 18 11 5 15 10 6 3 34 mp. 8

Ütemezés 2 Feladat: n beteg kezelése úgy, hogy az összvárakozás minimális legyen. n = 3 t 1 = 60, t 2 = 10, t 3 = 30. sorrend összvárakozási idő 1,2,3 0+60+(60+10)=130 1,3,2 0+60+(60+30)=150 2,3,1 0+10+(10+30)= 50 2,1,3 0 +10+(10+60)=80 3,1,2 0+30+(30+60)=120 3,2,1 0+30+(30+10)=70 mohó: t 1 t 2... t n sorrendben vizsgálunk a megoldás mindig optimális 9

Eseménykiválasztás a i esemény az [s i, f i ) időintervallumban történik (i = 1, 2,...,n). Feladat: Válasszunk ki minél több eseményt, amelyek nem fedik egymást időben. mohó: rendezzük f i szerint növekvő sorrendbe, és válasszuk ki azokat, amelyek nem fedik egymást optimális i 1 2 3 4 5 6 7 8 9 10 11 s i 1 3 0 5 3 5 6 8 8 2 12 f i 4 5 6 7 8 9 10 11 12 13 14 optimális: a 1, a 4, a 8, a 11 (szintén jó: a 2, a 4, a 9, a 11 ) 10

Huzalozás Feladat: legrövidebb huzallal kössünk össze egy-egy fekete és fehér korongot. 3 3 3 3 1+1+1+3=6 mohó: balról jobbra első fekete-fehér pár, "töröljük", majd folytatjuk optimális 11

Robotok a sakktáblán Egy robot bal-felső sarokból indul, mehet jobbra és lefele. Feladat: minimális számú robot szedje össze az összes érmét a tábláról. R R mohó: jobbra megy, ha van a sorban érme, különben egyet lefele, majd ismétli optimális 12

Utazó ügynök problémája mindig a legközelebbi városba megy nem optimális mohó: A,B,D,B,C,E 16 optimális: A,D,B,C,E 14 13

Általános leírás Adott az L halmaz, egy P tulajdonság az L részhalmazaira (igaz v. hamis). Keresünk egy optimális M részhalmazt. Mohó(L, P) 1. M := 2. while (M nem megoldás) és (L ) 3. do válasszuk ki L-ből a legigéretesebb x elemet 4. L := L \ {x} 5. if P(M {x}) igaz 6. then M := M {x} 7. if M megoldás 8. then return M 9. else return Nincs megoldás Sokszor előfeldolgozást végzünk (pl. rendezzük L elemeit), ekkor a 3. lépésnél mindig a következő elemet választjuk. L minden elemét csak egyszer vizsgáljuk. 14