A mohó algoritmus egy olyan algoritmus, amely minden szakaszban helyileg optimális döntéseket hoz, feltételezve, hogy a végső megoldás is optimálisnak bizonyul. Ismeretes, hogy ha a feladat szerkezetét egy matroid adja meg , akkor a mohó algoritmus alkalmazása globális optimumot ad.
Ha egy algoritmus globális optimalitása szinte mindig fennáll, akkor általában előnyben részesítik más optimalizálási technikákkal, például a dinamikus programozással szemben .
A mohó algoritmusok konkrét probléma megoldására való alkalmazhatóságának értékelésére nincs általános kritérium, azonban a mohó algoritmusok által megoldott problémáknak két jellemzője van: egyrészt alkalmazható rájuk a Mohó választási elv , másrészt az Optimalitás részfeladatokhoz. ingatlan .
A mohó választási elvről azt mondják, hogy akkor érvényesül egy optimalizálási probléma , ha a lokálisan optimális választások sorozata globálisan optimális megoldást ad. Tipikus esetben az optimalitás bizonyítása a következő sémát követi:
Egy feladatról azt mondjuk, hogy rendelkezik az eredmény levezetéséhez szükséges részproblémák optimálissági tulajdonságával, ha a probléma optimális megoldása tartalmazza az összes részprobléma optimális megoldását. Például az igénypontok kiválasztásának problémájában észrevehető, hogy ha az 1. számú igénypontot tartalmazó optimális igényponthalmaz, akkor az optimális igényponthalmaz egy kisebb igényponthalmazhoz , amely azokból az állításokból áll, amelyekre .
Egy feladat. Egy adott állam pénzrendszere a címletű érmékből áll . Az összeget a lehető legkisebb érmével kell kibocsátani.
A probléma megoldásának mohó algoritmusa a következő. A lehető legtöbb címletű érmét veszik fel : . Ugyanígy megkapjuk, hogy hány kisebb címletű érmére van szükség stb.
Erre a problémára a mohó algoritmus nem mindig adja meg az optimális megoldást, hanem csak néhány, úgynevezett kanonikus monetáris rendszerre, mint amilyen az USA-ban használatos (1, 5, 10, 25 cent). A nem kanonikus rendszerek nem rendelkeznek ezzel a tulajdonsággal. Így például a 24 kopejka összeg 1, 5 és 7 kopekás érmékkel. mohó algoritmus cserék így: 7 kopejka. - 3 db, 1 kop. - 3 db, míg a helyes megoldás 7 kopejka. - 2 db, 5 kopejka. - 2 db. [egy]
1. számú megfogalmazás. Jelentkezéseket adunk egy meghatározott közönség körében órák levezetésére. Minden alkalmazásban fel van tüntetve a lecke eleje és vége ( és a -edik alkalmazásnál). A kérések metszéspontja esetén csak az egyik teljesíthető. A és számokkal rendelkező alkalmazások közösek, ha a és intervallumok nem metszik egymást (vagyis vagy ). A pályázatok kiválasztásának feladata, hogy összegyűjtse a maximális számú, egymással egyesített pályázatot.
2. megfogalmazás. A konferencián annak érdekében, hogy több időt fordítsanak az informális kommunikációra, különböző szekciókat zúztak szét a különböző közönségekhez. Egy rendkívül széles érdeklődési körrel rendelkező tudós több, különböző szekciókban tartott előadáson szeretne részt venni. Minden jelentés eleje és vége ismert. Határozza meg, hogy hány jelentést vehet igénybe.
Itt van egy mohó algoritmus, amely megoldja ezt a problémát. Ugyanakkor feltételezzük, hogy az alkalmazások sorrendje növekvő befejezési idő szerint történik. Ha nem ez a helyzet, akkor időben rendezheti őket ; az azonos befejezési idejű rendelések véletlenszerű sorrendben kerülnek feladásra.
Activity-Selector(s,f)
Az osztályok eleje és vége tömbje ennek az algoritmusnak a bemenetére kerül. Az A halmaz a kiválasztott kérések számaiból áll, j pedig az utolsó kérés száma. A mohó algoritmus olyan sorrendet keres, amely legkorábban j -edik végén kezdődik, majd a talált sorrendet tartalmazza A -ban, és j hozzárendeli a számát. Így minden alkalommal azt a (még el nem indult) órát választjuk, aminek a végéig a legkevesebb idő van hátra.
Az algoritmus a , azaz a rendezés és a mintavételezés esetén működik. Minden lépésnél kiválasztják a legjobb megoldást. Mutassuk meg, hogy végül az optimumot kapjuk.
Bizonyíték . Ne feledje, hogy minden rendelés nem csökkenő befejezési idő szerint rendeződik. Az 1-es számú pályázat nyilván benne van az optimumban (ha nem, akkor az optimumban lévő legkorábbi sorrendet pótoljuk vele, ettől nem lesz rosszabb). Az elsőnek ellentmondó összes alkalmazást kidobva kevesebb alkalmazással kapjuk meg az eredeti problémát. Az indukcióval érvelve hasonló módon jutunk el az optimális megoldáshoz.
A mohó algoritmusok általánosítása a Rado-Edmonds algoritmus .
Számos, az NP osztályba tartozó problémára a mohó algoritmusok nem adnak optimális megoldást. Ezek tartalmazzák:
Ennek ellenére számos problémára a mohó algoritmusok jó közelítő megoldásokat adnak.
Gépi tanulás és adatbányászat | |
---|---|
Feladatok | |
Tanulás tanárral | |
klaszteranalízis | |
Dimenziócsökkentés | |
Strukturális előrejelzés | |
Anomália észlelése | |
Grafikon valószínűségi modellek | |
Neurális hálózatok | |
Megerősítő tanulás |
|
Elmélet | |
Folyóiratok és konferenciák |
|