Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "1 3. Előad á s: A mohó algoritmus Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT-4. kurzus."— Előadás másolata:

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

2 2 Bevezetés Az eddig tanult algoritmus tipúsok nem alkalmazhatók: A valós problémák nem tiszta klasszikus problémák A problémák dimenziói nagyok, vagy nagyon nagyok Problémák több célfüggvényesek Gyakoriak a homályos megfogalmazások Nagyon sok számítási időre van szükség. Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

3 3 Keresés a mogoldások terében Probléma: max {c*x | x ε S } ahol S a megoldások tere, x egy elem ebből a térből x  S c*x egy valos érték, méri az x minőségét Definíció: x pont környezete: V(x) = { x | dist ( x - x) <= r, x ε S, r ε R } Példa: V(x) = { x | x j = x j - 1, x j, x j + 1, j=1,...,n} Lokális keresés: cx ’ = { max c*x │ x ε S  V(x) } Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

4 4 Klasszikus szuboptimális módszerek (nem optimális de polinomiális) - Mohó (G reedy) algoritmusok - Divide et Impera, (oszd meg és uralkodj) - Heurisztikák Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

5 5 MOHÓ algoritmusok Optimalizálási problémák megoldásakor használjuk. Olyan lépések sorozatából áll, ahol minden lépésben egy adott halmazból választhatunk. Mindig az adott lépésben optimálisnak látszó választást tesszük. Lokális optimumot választjuk, annak a reményében hogy eljutunk a globális optimumhoz. Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

6 6 Általánosan öt pillérre támaszkodik: 1.egy halmazból veszi a jelölteket, amelyekkel felállítja a megoldáshalmazt 2.egy kiválasztó függvény, amely a legjobb jelöltet választja ki a megoldás reményében 3.egy lehetőségvizsgáló függvény, amely megnézi, hogy egy jelölt alkalmas- e a megoldásra 4.egy célfüggvény, amely egy értéket megoldásnak, vagy részleges megoldásnak jelöl 5.egy megoldásfüggvény, amely jelzi, ha megtaláltuk a teljes megoldást. Forrás: http://hu.wikipedia.org/wiki/Mohó_algoritmus Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

7 7 Pénzvisszaadási algoritmus: Hogyan adjunk vissza egy nagyobb pénzből, vásárlás után, hogy minél kevesebb címletet használjunk. A legnagyobb címletből, amennyit lehet, utána a következő legnagyobb címletből, amennyit lehet, stb... Vissza kell adnunk 367 RON-t. 1 db 200 RON-os 1 db 100 RON-os 1 db 50 RON-os 1 db 10 RON-os, 1 db 5 RON 2 db 1 RON Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

8 8 0102030405060708 0112345678 0274987654 0319542179 0411243689 0519786429 0619999349 0714128889 0811111172 Bal-felső sarokból a jobb alsó sarokba szeretnénk eljutni úgy, hogy csak lefele vagy jobbra lehet lépni. Mohó útvonal a sárga, legrövidebb útvonal a piros + az utolsó 2 sárga.

9 9 A hátizsák probléma mohó megoldása. Van egy hátizsákunk. A zsák térfogata V. Vannak hasznos dolgaink, amelyeket be szeretnénk rakni a zsákba. Nem fér bele a zsákba m inden. Mit pakoljunk bele a zsákba, hogy minél nagyobb legyen a hasznunk? Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus Jelölések: V- a zsák térfogata v i – az i-edik dolog térfogata h i – az i-edik dolog hasznossága Definiálunk egy relatív hasznosságot, vagy hasznossági sűrűséget. Ez az érték, az egységnyi térfogatra eső hasznosság mértéke lesz. s i =h i /v i – az i-edik dolog hasznossági sűrűsége

10 10 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus A dolgainkat a relatív hasznosság szerint csökkenő sorrendbe rakjuk. A legnagyobb értékűt pakoljuk be először. Addíg pakoljuk a zsákot, amíg fér bele. Ha nem fér a nagyobb hasznosságú dolog, vesszük sorba a következőt, amelyik belefér. Egyenlő relatív hasznosság esetén vagy aleatorikusan pakoljuk a hátizsákot vagy valamilyen lexikografikus sorrendben. 1.Beolvas n, V, v[2][n]//n-a dolgok száma, V hátizsák térfogata, v[1][n] tartalmazza a dolgok térfogatait v[2][n] tartalmazza a dolgok hasznosságát 2.Kiszámol és sorbarak. 3.Berak a hátizsákba, amíg lehet 4. Vége

11 11 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus NévMatracAranyVízZokniPokrócAlsó vivi 300501003020060 hi5001000204010020 h i /v i 1.66200.21.330.50.33 DologHasznosTérfogatÖssztérf Arany100050 Matrac500300350 Zokni4030380 Pokróc100200580 Alsó2060440 Viz20100540 V=500 dm 3 Tömeg???????

12 12 MOHÓ algoritmusok Definíciók és jelölések E – egy véges sokaság W: E  R – egy súlyfüggvény W(S) = ∑w(e), e ε S, S  E F(E) – egy az E alsokaságok családja Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

13 13 Elméleti alapok (Matroidok, Grafoidok) Matroid: Definíció: (E,F) egy matroid ha  ε F bármelyik S és S’ esetében{S’  S ha F  S’  F} bármelyik S, S 1, S 2 esetében { S 1, S 2 maximális független alhalmazai az S nek  |S 1 |=|S 2 |} Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

14 14 MOHÓ Algoritmus 1. Kiválasztunk egy e 1  E elemet úgy hogy S 1 := { e 1 }  F(P) es w(e 1 )= max{w(e) : { e }  F(P)} 2. Választunk egy másik elemet e 2  E-S 1 úgy hogy S 2 := S 1  { e 2 } = { e 1, e 2 }  F(P), és W(e 2 ) = max { w(e) : e  E-S 1 es S 1  { e }  F(P)} 3. Folytatjuk a folyamat végéig Hogy mikor vezet egy mohó algoritmus az optimális megoldáshoz a követekező tétel adja meg. Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

15 15 Tétel: Ha (E,F) egy matroid akkor a mohó algoritmus az optimális megoldáshoz vezet. A greedy módszer célja; hamar könnyen jó megoldásokhoz jutni Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

16 16 Alkalmazási princípiumok Az elemek sorbarakása a súlyozás szerint Az elemek kiválasztása A megszorítások ellenőrzése A celfüggvény ellenőrzése Más módszerekkel való összehasonlítás: A mohó algoritmus hamar vezet elég jó megoldásokhoz de nem feltétlenül az optimálishoz Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

17 17 A minimális feszítőfa probléma Huzalozási problémának is nevezzük, mivel n pont között próbál meghatározni egy olyan fát, amelyikben a gráf minden csúcspontja egyszer benne van. Lényeges, hogy a költség minél kisebb legyen (minél kisebb hosszúságú vezetékszál) Összefüggő, irányítatlan G=(V,E) gráf segítségével modellezük, ahol V-beli csúcsok az áramkör pontjai, E élei az összeköthető pontpárokat jelölik (u,v)  E él rendelkezik egy w(u,v) súllyal, amelyik az u és v összekötési költségét adják meg Létező mohó algoritmusok (amelyek optimálisak) Kruskal algoritmus Prím algoritmusa

18 18 Kruskal algoritmusa a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10

19 19 Kruskal algoritmusa -2 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10

20 20 Kruskal algoritmusa -3 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10 a b i hg c f e d 1 7 4 8 9 8 11 7 6 2 2 4 14 10 Minden lépésben megkeresi a G A =(V,A) erdő két tetszőleges komponensét összekötő élek közül a legkisebb súlyú (u,v) él, és ezt veszi hozzá az egyre bővülő erdőhöz. A Kruskal algoritmus mohó algoritmus, mert minden lépésben a lehetséges legkisebb súlyú élet adja hozzá az erdőhöz

21 21 Divide et Impera, (oszd meg és uralkodj) Példa: A dva van egy vektor a=(a1,a2,…,an), a feldolgozása lehetséges két részben I=1,.., k É s I=k+1,…,n ig. Majd az eredm é nyeket kombin á lva az “a” vektor feldolgozását kapjuk Pocedure divimp (p.q,  ) If q-p   then call feldolg (p.q,  ) else call div (p,q,m) call div (p,m,  ) call divimp( m+1,q,  ) call komb( , ,  ) endif return end Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

22 22 Heurisztik us m ó dszerek Defin í ci ó : Egy algoritmust heurisztik us nak mondunk, ha: Nincs elméleti alapja, Könnyű implementálni Gyorsan elég jó megoldásokat ad Különböző esetek A feltételek könnyen vagy nehezen teljesíthetők, az optimalitás könnyen vagy nehezen elérhető Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

23 23 0 2 5 6 3 1 1 0 4 3 7 5 3 3 0 5 2 4 4 3 2 0 1 5 7 2 5 2 0 4 2 4 3 4 3 0 0 2 5 6 3 1 1 0 4 3 7 5 3 3 0 5 2 4 4 3 2 0 1 5 7 2 5 2 0 4 2 4 3 4 3 0 T= Sorbarakás egy gépen, előkészítési idővel B C DE F A F=1+3+2+2+3=11 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

24 24 0 2 5 6 3 1 1 0 4 3 7 5 3 3 0 5 2 4 4 3 2 0 1 5 7 2 5 2 0 4 2 4 3 4 3 0 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus 1-esből indulva: 1-6-3-5-2-4K=1+3+2+2+3=11 2-esből indulva: 2-1-6-3-5-4K=1+1+3+2+2=9 3-asból indulva3-5-2-1-6-4K=2+2+1+1+4=10 4-esből indulva:4-5-2-1-6-3K=1+2+1+1+3=8 5-ösből indulva5-2-1-6-3-4K=2+1+1+3+5=12 6-osból indulva6-1-2-4-5-3K=2+2+3+1+5=13


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

Hasonló előadás


Google Hirdetések