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 4. 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 4. 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 4. 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: 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 3 db 5 RON-os 2 db 1 RON Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

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 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 hi h i /v i DologHasznosTérfogatÖssztérf Arany Matrac Zokni Pokróc Alsó Viz 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 a b i hg c f e d a b i hg c f e d a b i hg c f e d

19 19 Kruskal algoritmusa -2 a b i hg c f e d a b i hg c f e d a b i hg c f e d a b i hg c f e d

20 20 Kruskal algoritmusa -3 a b i hg c f e d a b i hg c f e d a b i hg c f e d 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 T= Sorbarakás egy gépen, előkészítési idővel B C DE F A F= =11 Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT4. kurzus

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


Letölteni ppt "1 4. 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