240 likes | 360 Views
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE ) Csíkszereda IRT - 4 . kurzus. 4. El ő ad á s: A moh ó algoritmus. Sapientia - Erdélyi Magyar TudományEgyetem (EMTE ) Csíkszereda IRT 4 . kurzus. Bevezetés A z eddig tanult algoritmus t i p ú sok nem alkalmazhat ó k :
E N D
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT- 4.kurzus • 4. Előadás: • A mohó algoritmus
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus • 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 IRT 4.kurzus 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 | xj = xj - 1, xj, xj + 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 IRT 4.kurzus • Klasszikus szuboptimális módszerek • (nem optimális de polinomiális) • -Mohó (Greedy) algoritmusok • -Divide et Impera, (oszd meg és uralkodj) • - Heurisztikák
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus 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 IRT 4.kurzus Általánosan öt pillérre támaszkodik: egy halmazból veszi a jelölteket, amelyekkel felállítja a megoldáshalmazt egy kiválasztó függvény, amely a legjobb jelöltet választja ki a megoldás reményében egy lehetőségvizsgáló függvény, amely megnézi, hogy egy jelölt alkalmas-e a megoldásra egy célfüggvény, amely egy értéket megoldásnak, vagy részleges megoldásnak jelöl 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 IRT 4.kurzus 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 3 db 5 RON-os 2 db 1 RON
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.
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus 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 minden. Mit pakoljunk bele a zsákba, hogy minél nagyobb legyen a hasznunk? Jelölések: V- a zsák térfogata vi – az i-edik dolog térfogata hi – 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. si=hi/vi – az i-edik dolog hasznossági sűrűsége
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.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. • 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 • Kiszámol és sorbarak. • Berak a hátizsákba, amíg lehet • 4. Vége
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus V=500 dm3 Tömeg???????
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus 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 IRT 4.kurzus • Elméleti alapok (Matroidok , Grafoidok) • Matroid: • Definíció: (E,F) egymatroid ha • ε F • bármelyik S és S’ esetében{S’ S ha F S’ F} • bármelyik S , S1 , S2 esetében { S1 , S2 maximálisfüggetlenalhalmazaiaz S nek • |S1 |=|S2 |}
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus • MOHÓ Algoritmus • 1. Kiválasztunk egy e1 E elemetúgy hogy S1 := { e1 } F(P) es w(e1 )= max{w(e) : { e} F(P)} • 2. Választunk egy másik elemet e2 E-S1 úgy hogy S2 := S1 { e2 } = { e1, e2 } F(P) , és W(e2 ) = max { w(e) : e E-S1 es S1 { 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 IRT 4.kurzus • Tétel: • Ha (E,F) egymatroidakkor a mohóalgoritmusazoptimálismegoldáshozvezet. • A greedy módszercélja; • hamar • könnyen • jómegoldásokhoz • jutni
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus • 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
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
Kruskal algoritmusa 8 7 b c d 8 7 4 9 b c d 4 9 2 11 i 14 2 a 7 e 6 4 11 i 14 a 7 e 6 4 8 h g f 10 8 h g f 10 1 2 1 2 8 7 8 7 b c d b c d 4 9 4 9 2 2 11 i 14 11 i 14 a 7 e a 7 e 6 4 6 4 8 h g f 10 8 h g f 10 1 2 1 2
Kruskal algoritmusa -2 8 8 7 7 b b c c d d 4 4 9 9 2 2 11 11 i i 14 14 a a 7 7 e e 6 6 4 4 8 8 h h g g f f 10 10 1 1 2 2 8 8 7 7 b b c c d d 4 4 9 9 2 2 11 11 i i 14 14 a a 7 7 e e 6 6 4 4 8 8 h h g g f f 10 10 1 1 2 2
Kruskal algoritmusa -3 8 8 8 7 7 7 b b b c c c d d d 4 4 4 9 9 9 2 2 2 11 11 11 i i i 14 14 14 a a a 7 7 7 e e e 6 6 6 4 4 4 8 8 8 h h h g g g f f f 10 10 10 1 1 1 2 2 2 Minden lépésbenmegkeresia GA=(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
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus • Divide et Impera, (oszdmegésuralkodj) • Példa: Advavan egyvektor a=(a1,a2,…,an), a feldolgozásalehetséges két részben I=1,.., k • És I=k+1,…,n ig. Majdazeredményeketkombinálvaaz “a” vektorfeldolgozását kapjuk • Poceduredivimp (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 IRT 4.kurzus • Heurisztikus módszerek • Definíció: Egy algoritmust heurisztikusnak 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ő
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 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus Sorbarakásegygépen, előkészítési idővel T= F=1+3+2+2+3=11 B A C F E D
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus 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 1-esből indulva: 1-6-3-5-2-4 K=1+3+2+2+3=11 2-esből indulva: 2-1-6-3-5-4 K=1+1+3+2+2=9 3-asból indulva 3-5-2-1-6-4 K=2+2+1+1+4=10 4-esből indulva: 4-5-2-1-6-3 K=1+2+1+1+3=8 5-ösből indulva 5-2-1-6-3-4 K=2+1+1+3+5=12 6-osból indulva 6-1-2-4-5-3 K=2+2+3+1+5=13