A problémahalmaz a számítástechnika és a komplexitáselmélet klasszikus kérdése . Ez a probléma általánosítja az NP-teljes csúcsfedő problémát (és ezért NP-nehéz). Bár a csúcslefedési probléma hasonló ehhez, a közelítő algoritmusban alkalmazott megközelítés itt nem működik. Ehelyett egy mohó algoritmust veszünk figyelembe. Az általa adott megoldás logaritmikusan sokszor rosszabb lesz az optimálisnál. A probléma méretének növekedésével a megoldás minősége romlik, de még mindig meglehetősen lassan, így ez a megközelítés hasznosnak tekinthető.
A halmazfedő probléma kiindulási adata egy véges halmaz és részhalmazainak egy családja . A borító a legkisebb kardinalitású család, melynek uniója . A belépési engedéllyel kapcsolatos kérdés esetén egy pár és egy egész szám kerül megadásra ; a kérdés a kardinalitás (vagy kevesebb) fedőhalmazának megléte.
Példaként egy halmazt lefedő problémára tekintsük a következő problémát: képzeljük el, hogy egy feladat elvégzéséhez egy bizonyos készségkészletre van szükség . Van egy olyan embercsoport is, akik mindegyike rendelkezik ezekből a képességekből. Meg kell alkotni a feladat elvégzéséhez elegendő legkisebb alcsoportot, azaz. beleértve az összes szükséges készség hordozóit.
A mohó algoritmus a következő szabály szerint választ ki halmazokat: minden szakaszban kiválasztanak egy halmazt, amely lefedi a még le nem fedett elemek maximális számát.
Greedy-Set-Cover(U,F), ahol az összes elem adott halmaza, részhalmazok családja
Megmutatható, hogy ez az algoritmus pontossággal működik , ahol a legnagyobb halmaz hatványa, és a harmonikus sorozat első tagjainak összege .
Más szóval, az algoritmus olyan fedelet talál, amelynek mérete legfeljebb a minimális fedő méretének a mérete.
Feige tétele azt mondja, hogy a halmazlefedési feladathoz nincs közelítő tényezővel rendelkező algoritmus , mert különben az NP komplexitási osztály egyenlő lenne a TIME( ) összetettségi osztállyal. [1] Így a mohó algoritmus a legjobb közelítő algoritmus a halmazlefedési problémára.
Van egy szabványos példa, ahol a mohó algoritmus pontosan működik .
Az univerzum elemekből áll. A halmazok halmaza páronkénti diszjunkt halmazokból áll , amelyeknek a számossága rendre. Két diszjunkt halmaz is létezik , amelyek mindegyike tartalmazza az elemek felét . Egy ilyen halmazon a mohó algoritmus kiválasztja a halmazokat , míg az optimális megoldás a halmazok kiválasztása és A jobb oldali ábrán látható példa hasonló bemeneti adatokra .
A genetikai algoritmus egy heurisztikus véletlenszerű keresési módszer, amely egy biológiai populáció evolúciójának szimulációján alapul.
Általános esetben az algoritmus működése során a populációk egymás utáni változása történik, amelyek mindegyike egy fedőcsalád, amelyet populáció egyedeinek nevezünk. A kezdeti sokaság fedőit véletlenszerűen állítjuk össze. A leggyakoribb és legjobban bevált a genetikai algoritmus stacionárius sémája, amelyben a következő populáció csak egy-két új egyeddel tér el az előzőtől. Amikor a jelenlegi populációból új egyedet állítunk össze, a lefedettségek súlyát figyelembe véve, kiválasztunk egy „szülő” egyedpárt , és ezek alapján a keresztezési eljárásban (véletlenszerűen vagy determinisztikusan) egy bizonyos fedezeti halmazt. halmazok alakulnak ki . Ezután egy mutáción megy keresztül , amely után egy egyed épül fel belőle, amely az új populációban a legnagyobb súllyal helyettesíti a borítást. A sokaság bizonyos (meghatározott) számú alkalommal frissül, és az algoritmus eredménye a talált legjobb lefedettség.
A halmazlefedési feladatot gyakran egészszámú programozási feladatként fogalmazzák meg [2] :
Meg kell találni , ahol egy mátrix, és = 1, ha , és = 0 egyébként; az egyesek vektorát jelöli ; ; egy vektor, ahol , ha benne van a lefedettségben, egyébként .
A pontos megoldást polinomiális időben kaphatjuk meg, ha a mátrix teljesen unimoduláris . Ez magában foglalja a csúcsok lefedésének problémáját is egy bipartit gráfon és fán . Különösen, ha a mátrix minden oszlopa pontosan két 1-est tartalmaz, a probléma a gráf éllefedési problémájaként fogható fel, ami gyakorlatilag a maximális egyezés megtalálására redukálódik . Azokon a feladatosztályokon, ahol vagy amelyeket konstans határol, a feladatot polinomiális időben, kimerítő felsorolási módszerekkel oldják meg.
NP-teljes problémák | |
---|---|
A halmozás (csomagolás) maximalizálási problémája |
|
gráfelmélet halmazelmélet | |
Algoritmikus problémák | |
Logikai játékok és rejtvények | |