Csomagoló készletek

A halmazcsomagolás egy klasszikus NP-teljes probléma a számítási komplexitáselméletben és a kombinatorikában , és egyike Karp 21 NP-teljes problémájának .

Képzeljük el, hogy van egy véges S halmazunk és az S halmaz részhalmazainak listája . A csomagolási probléma azt kérdezi, hogy van-e k olyan részhalmaz egy listában, amelyek páronként diszjunktak.

Formálisabban, ha egy halmaz és a halmaz részhalmazainak családja adott , akkor a csomagolás a halmazok olyan alcsaládja , amelyben az összes halmaz páronként diszjunkt, és a csomagolás méretének nevezzük. A csomagolási megoldhatósági feladatban a bemenet egy pár és egy szám . A kérdés annak meghatározása, hogy van-e nagyobb vagy nagyobb csomag. A csomagolásoptimalizálási feladatban a bemenet egy pár , és a feladat az, hogy minél több készlet felhasználásával találjunk egy csomagolást.

Nyilvánvaló, hogy a probléma NP -hez tartozik , mivel adott k részhalmazt egyszerűen ellenőrizhetjük, hogy azok páronként diszjunktak-e polinomidőben .

A probléma optimalizálási változata , a halmazok maximális pakolása felteszi a kérdést, hogy a listából hány páronként diszjunkt halmazok maximális száma. Ez a probléma természetesen egészszámú lineáris programozási feladatként is megfogalmazható, a csomagolási feladatok osztályába tartozik, kettős lineáris programozási problémája pedig halmazfedő feladat [1] .

A lineáris programozási probléma megállapítása

A maximális tömörítés megtalálásának problémája a következő egész lineáris programozási feladatként fogalmazható meg .

maximalizálni (keresse meg a részhalmazok maximális halmazát)
feltételek mellett mindenkinek (a kiválasztott halmazoknak páronként diszjunktnak kell lenniük)
mindenkinek . (bármely készlet be van csomagolva vagy nincs)

Példák

Példaként tegyük fel, hogy van egy gyűjteménye különböző ételekből a konyhájában ( ), és van egy szakácskönyve receptgyűjteményével ( ). Minden recepthez egy bizonyos termékkészlet szükséges. A szakácskönyvből a lehető legtöbb ételt szeretné elkészíteni (feltételezve, hogy a terméket csak egy ételben használják fel). Ebben az esetben egy készletcsomagolást ( ) keres ( ) - olyan receptkészletet, ahol a termék nem szerepel két különböző receptben.

Egy másik példaként képzeljük el a külföldi képviselők találkozóját, akik mindegyike beszél angolul és több más nyelven is. Határozatot szeretne bejelenteni a képviselők valamelyik csoportjának, de nem bízik bennük, és nem akarja, hogy olyan nyelven beszéljék meg a döntést, amelyet Ön nem ért. Ennek eléréséhez úgy kell kiválasztani egy csoportot, hogy két képviselő ne beszéljen az angolon kívül más nyelven. Másrészt döntését a lehető legtöbb képviselőhöz szeretné eljuttatni. Ebben az esetben a halmaz elemei az angoltól eltérő nyelvek, az alhalmazok pedig az egyes képviselők által beszélt nyelvek. Ha a két halmaz nem fedi egymást, a képviselők nem beszélhetnek az angolon kívül más nyelven. A maximális csomagolás a lehető legnagyobb számú képviselőt választja az adott korlátozások mellett. Bár a probléma általában megoldhatatlan, ebben a példában jó heurisztika az lenne, ha olyan képviselőket választanánk ki, akik egyetlen nyelvet beszélnek (az angolon kívül), így nem kell sok mást kizárni.

Súlyozott verzió

A halmazcsomagolási problémának létezik egy súlyozott változata, ahol minden részhalmazhoz hozzá van rendelve valamilyen súly (valós szám), és szeretnénk maximalizálni a teljes súlyt:

Az első példában olyan súlyt rendelhetünk a recepthez, amely megegyezik az ételt kedvelő barátok számával, így a vacsora a legtöbb barátnak fog tetszeni.

Úgy tűnik, hogy a súly nehezíti a problémát, de a súlyok nélküli probléma ismert eredményeinek többsége a súlyozott problémára is vonatkozik.

Heurisztika

A csomagolási probléma nehéz lehet néhány k esetében, de nem biztos, hogy olyan k -t találni , amelyre bizonyos bemenetek esetén könnyen megoldható. Használhatjuk például a mohó algoritmust , amelyben megkeressük azt a halmazt, amelyik a legkevesebb más halmazzal metszik, hozzáadjuk a megoldáshoz, és eltávolítjuk azokat a halmazokat, amelyekkel metszi. Ugyanezt folytatjuk, amíg vannak készletek. Valamilyen méretű csomagot kapunk, bár nem feltétlenül a maximális méretet. Bár egyetlen algoritmus sem mindig képes a maximális eredmény közelébe adni (lásd a következő részt), sok gyakorlati alkalmazásban ez a heurisztikus algoritmus jó eredményeket ad.

Nehézség

Nem csak a beállított csomagolási probléma NP-teljes, de az optimalizálási verzióról is bebizonyosodott, hogy ugyanolyan nehezen közelíthető meg, mint a maximális kattintás problémájával . Különösen nem közelíthető semmilyen állandó tényezővel [2] . A legismertebb algoritmus egy tényezővel közelít [3] . A súlyozott változat ugyanilyen mértékben közelíthető [4] .

A problémának azonban van egy képlékenyebb változata – ha nem engedjük meg, hogy a részhalmazoknak több mint k ≥ 3 elemük legyen, a válasz k / 2 + ε tényezővel közelíthető bármely ε > 0 esetén. probléma 3 elemű halmazokkal közel 50%-os együtthatóval közelíthető. Egy másik képlékenyebb változatban, azzal a feltétellel, hogy egyetlen elem sem szerepel több mint k részhalmazban, a válasz k faktorral közelíthető . Ugyanez igaz a súlyozott változatra is.

Egyenértékű problémák

A független halmazprobléma és a halmazcsomagolási probléma között egy az egyhez csökken a polinomiális idő :

A redukció egy kétirányú PTAS redukció , és azt mutatja, hogy a két problémát egyformán nehéz közelíteni.

Különleges alkalmak

Az egyeztetés és a 3D illesztés a készletcsomagolás speciális esetei. A maximális méretű illesztés megtalálható polinomidőben, de a legnagyobb 3 dimenziós illesztés vagy a legnagyobb független halmaz megtalálása NP-nehéz feladat.

Egyéb kapcsolódó feladatok

A készletcsomagolás a készlet elemeinek letakarásával vagy szétválasztásával kapcsolatos problémák családjába tartozik. Az egyik kapcsolódó probléma a halmaz lefedésének problémája . Itt is kapunk egy S halmazt és egy halmazlistát, de a kihívás annak meghatározása, hogy választhatunk -e k olyan halmazt, amelyek együtt tartalmazzák S összes elemét . Ezek a készletek átfedhetik egymást. Az optimalizálási verzió a minimális számú ilyen készletet keresi. A maximális csomagolási probléma nem igényli kivétel nélkül az összes elem lefedését.

Az NP-teljes pontos fedő probléma viszont megköveteli, hogy minden elem pontosan egy részhalmazban legyen. Egy ilyen pontos lefedettség megtalálása mérettől függetlenül NP-teljes feladat.

Karp megmutatta a halmazcsomagolási probléma NP-teljességét a klikkprobléma redukálásával .

Lásd még: Hipergráfok csomagolása .

Jegyzetek

  1. Vazirani, 2001 .
  2. Hazan, Safra, Schwartz, 2006 . Lásd különösen a 21. oldalt – "A maximális klikket (és ennélfogva a maximális független halmazt és a halmazok maximális csomagját) nem lehet közelíteni, hacsak NP ⊂ ZPP."
  3. Halldórsson, Kratochvíl, Telle, 1998 , p. 176–185.
  4. Halldorsson, 1999 , p. 261–270.

Irodalom

Linkek