1 / 24

4. El ő ad á s: A moh ó algoritmus

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 :

geona
Download Presentation

4. El ő ad á s: A moh ó algoritmus

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 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) }

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

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

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

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

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

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

  11. Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 4.kurzus V=500 dm3 Tömeg???????

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

  13. 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 |}

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

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

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

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

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

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

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

  22. 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ő

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

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

More Related