Seznam problémů s batohem - List of knapsack problems
The batoh problém je jedním z nejvíce studovaných problémů v kombinatorická optimalizace s mnoha aplikacemi v reálném životě. Z tohoto důvodu bylo zkoumáno mnoho zvláštních případů a zobecnění.[1][2]
Společné pro všechny verze je sada n položky, s každou položkou s přidruženým ziskem strj ,hmotnost wj. Proměnná binárního rozhodnutí Xj slouží k výběru položky. Cílem je vybrat některé z položek s maximálním celkovým ziskem, přičemž je třeba dodržet maximální celkovou váhu vybraných položek Ž. Obecně se tyto koeficienty upravují tak, aby se z nich stala celá čísla, a téměř vždy se předpokládá, že jsou kladné.
The batoh problém v nejzákladnější podobě:
maximalizovat | ||
podléhá | ||
Přímé zobecnění
Jedna společná varianta je, že každou položku lze vybrat několikrát. The ohraničený problém s batohem určuje pro každou položku j, horní mez uj (což může být kladné celé číslo nebo nekonečno) na počet opakování položky j lze vybrat:
maximalizovat | ||
podléhá | ||
integrální pro všechny j |
The neomezený problém s batohem (někdy nazývaný celočíselný batoh) nedává žádné horní hranice počtu případů, kdy může být položka vybrána:
maximalizovat | ||
podléhá | ||
integrální pro všechny j |
Ukázalo se, že neomezená varianta je NP-kompletní v roce 1975 Lueker.[3] Omezené i neomezené varianty připouštějí FPTAS (v zásadě stejné jako u problému s batohem 0-1).
Pokud jsou položky rozděleny na k třídy označené , a z každé třídy musí být odebrána přesně jedna položka, dostaneme problém s batohem s výběrem z několika možností:
maximalizovat | ||
podléhá | ||
pro všechny | ||
pro všechny a všechno |
Pokud jsou pro každou položku zisk a váha stejné, dostaneme problém s podmnožinou (často odpovídající rozhodovací problém místo toho):
maximalizovat | ||
podléhá | ||
Pokud ano n položky a m batohy s kapacitou , dostaneme problém s více batohy:
maximalizovat | ||
podléhá | pro všechny | |
pro všechny | ||
pro všechny a všechno |
Jako zvláštní případ problému s více batohy, když se zisky rovnají vahám a všechny koše mají stejnou kapacitu, můžeme mít problém součtu více podmnožin.
maximalizovat | |||
podléhá | |||
pro všechny |
Set-Union Batoh Problém:
SUKP definují Kellerer et al[2] (na straně 423) takto:
Vzhledem k souboru položky a sada takzvané prvky , každý předmět odpovídá podmnožině sady prvků . Předměty mít nezáporné zisky , a prvky mít nezáporné váhy , . Celková váha sady položek je dána celkovou hmotností prvků spojení příslušných sad prvků. Cílem je najít podmnožinu položek s celkovou hmotností nepřesahující kapacitu batohu a maximálním ziskem.
Několik omezení
Pokud existuje více než jedno omezení (například omezení objemu a omezení hmotnosti, kde objem a hmotnost každé položky nesouvisí), dostaneme mnohonásobně omezený problém s batohem, vícerozměrný problém s batohemnebo m-rozměrný batoh. (Poznámka: „kóta“ zde neodkazuje na tvar žádné položky.) Má 0-1, ohraničené a neohraničené varianty; neomezený je uveden níže.
maximalizovat | ||
podléhá | pro všechny | |
, celé číslo | pro všechny |
Varianta 0-1 (pro všechny pevné ) se ukázalo být NP-kompletní kolem roku 1980 a silněji, nemá FPTAS, pokud P = NP.[4][5]
Omezené a neomezené varianty (pro všechny pevné ) také vykazují stejnou tvrdost.[6]
Pro všechny pevné , tyto problémy připouští a pseudo-polynomiální čas algoritmus (podobný jako u základního batohu) a a PTAS.[2]
Problémy podobné batohu
Pokud jsou všechny zisky 1, pokusíme se maximalizovat počet položek, které by nepřekročily kapacitu batohu:
maximalizovat | ||
podléhá | ||
Pokud máme několik kontejnerů (stejné velikosti) a chceme je zabalit všechny n položky v co nejmenším počtu kontejnerů, dostaneme problém s balením koše, který je modelován pomocí indikátorových proměnných kontejner i se používá:
minimalizovat | ||
podléhá | ||
The problém řezného materiálu je totožný s problém s balením koše, ale protože praktické instance mají obvykle mnohem méně typů položek, často se používá jiná formulace. Položka j je potřeba Bj každý „vzor“ položek, které se vejdou do jednoho batohu, má proměnnou, Xi (existují m vzory) a vzor i používá položku j bij časy:
minimalizovat | ||
podléhá | pro všechny | |
pro všechny |
Pokud k problému s batohem s výběrem z několika možností přidáme omezení, že každá podmnožina má velikost n a odstraníme omezení celkové hmotnosti, dostaneme problém s přiřazením, což je také problém najít maximum bipartitní shoda:
maximalizovat | ||
podléhá | pro všechny | |
pro všechny | ||
pro všechny a všechno |
V Batoh s maximální hustotou varianta je počáteční hmotnost a maximalizujeme hustotu vybraných položek, které neporušují omezení kapacity:[7]
maximalizovat | ||
podléhá | ||
I když jsou méně časté než výše uvedené, existuje několik dalších problémů podobných batohu, včetně:
- Vnořený problém s batohem
- Problém se skládacím batohem
- Nelineární problém s batohem
- Problém s inverzně-parametrickým batohem
Poslední tři z nich jsou popsány v referenční práci Kellerer et al, Problémy s batohem.[2]
Reference
- ^ Martello, Silvano a Toth, Paolo (1990). Problémy s batohem: Algoritmy a počítačové implementace. John Wiley & Sons. ISBN 978-0471924203.CS1 maint: více jmen: seznam autorů (odkaz)
- ^ A b C d Kellerer, Hans and Pferschy, Ulrich and Pisinger, David (2004). Problémy s batohem. Springer Verlag. ISBN 978-3-540-40286-2.CS1 maint: více jmen: seznam autorů (odkaz)
- ^ Lueker, GS (1975). "Dva NP-úplné problémy v nezáporném celočíselném programování". Zpráva č. 178, Computer Science Laboratory, Princeton. Citovat deník vyžaduje
| deník =
(Pomoc) - ^ Gens, G. V. a Levner, E. V. (1979). "Složitost a přibližné algoritmy pro kombinatorické problémy: průzkum". Ústřední ekonomický a matematický institut, Akademie věd SSSR, Moskva.CS1 maint: používá parametr autoři (odkaz)
- ^ „O existenci schémat rychlé aproximace“. Nelineární programování. 4: 415–437. 1980.
- ^ Magazine, M. J .; Chern, M.-S. (1984). "Poznámka k aproximačním schématům pro vícerozměrné problémy s batohy". Matematika operačního výzkumu. 9 (2): 244–247. doi:10,1287 / bř. 9.2.244.
- ^ Cohen, Reuven; Katzir, Liran (2008). "Zobecněný problém maximálního pokrytí". Dopisy o zpracování informací. 108: 15–22. CiteSeerX 10.1.1.156.2073. doi:10.1016 / j.ipl.2008.03.017.
- „Algoritmy pro problémy s batohy“, D. Pisinger. Ph.D. diplomová práce, DIKU, University of Copenhagen, Report 95/1 (1995).