Lista över ryggsäcksproblem
Ryggsäcksproblemet är ett av de mest studerade problemen inom kombinatorisk optimering , med många verkliga tillämpningar. Av denna anledning har många specialfall och generaliseringar undersökts.
Gemensamt för alla versioner är en uppsättning av n artiklar, där varje objekt har en tillhörande vinst p j och vikt w j . Den binära beslutsvariabeln x j används för att välja objektet. Målet är att välja några av föremålen, med maximal total vinst, samtidigt som man följer att den maximala totalvikten för de valda föremålen inte får överstiga W . I allmänhet skalas dessa koefficienter till att bli heltal, och de antas nästan alltid vara positiva.
Ryggsäcksproblemet i sin mest grundläggande form :
maximera | ||
föremål för | ||
Direkta generaliseringar
En vanlig variant är att varje artikel kan väljas flera gånger. Det avgränsade ryggsäcksproblemet specificerar, för varje objekt j , en övre gräns u j (som kan vara ett positivt heltal eller oändligt) på antalet gånger som objekt j kan väljas:
maximera | ||
föremål för | ||
integral för alla j |
Problemet med obegränsad ryggsäck (kallas ibland heltalsryggsäcksproblemet ) sätter inga övre gränser för antalet gånger ett objekt kan väljas:
maximera | ||
föremål för | ||
integral för alla j |
Den obegränsade varianten visades vara NP-komplett 1975 av Lueker. Både de avgränsade och obegränsade varianterna tillåter en FPTAS (i huvudsak samma som den som användes i 0-1 ryggsäcksproblemet).
Om objekten är uppdelade i k klasser betecknade och exakt ett objekt måste tas från varje klass, får vi flervalsproblemet med ryggsäck :
maximera | ||
föremål för | ||
för alla | ||
för alla och alla |
Om vinsten och vikten för varje post är lika, får vi delmängdssummansproblemet ( ofta anges motsvarande beslutsproblem istället):
maximera | ||
föremål för | ||
Om vi har n föremål och m ryggsäckar med kapacitet får vi problemet med flera ryggsäckar :
maximera | ||
föremål för | för alla | |
för alla | ||
för alla och alla |
Som ett specialfall av problemet med flera ryggsäckar, när vinsten är lika med vikter och alla papperskorgar har samma kapacitet, kan vi ha problem med flera delmängder .
Kvadratiskt ryggsäcksproblem :
maximera | |||
föremål för | |||
för alla |
Set-Union Knapsack Problem :
SUKP definieras av Kellerer et al (på sidan 423) enligt följande:
Givet en uppsättning av poster och en uppsättning så kallade element , varje objekt motsvarar en delmängd av elementuppsättning . Objekten har icke-negativ vinst , , och elementen har icke-negativa vikter , . Den totala vikten av en uppsättning artiklar ges av den totala vikten av elementen i föreningen av motsvarande elementuppsättningar. Målet är att hitta en delmängd av föremålen vars totalvikt inte överstiger ryggsäckens kapacitet och maximal vinst.
Flera begränsningar
Om det finns mer än en begränsning (till exempel både en volymgräns och en viktgräns, där volymen och vikten för varje föremål inte är relaterade), får vi problemet med flera ryggsäckar , flerdimensionellt ryggsäcksproblem eller m - dimensionellt ryggsäcksproblem . (Observera att "dimension" här inte hänvisar till formen på några föremål.) Detta har 0-1, begränsade och obegränsade varianter; den obegränsade visas nedan.
maximera | ||
föremål för | för alla | |
, heltal | för alla |
0-1-varianten (för alla fasta ) visades vara NP-komplett runt 1980 och ännu starkare, har ingen FPTAS om inte P=NP.
De avgränsade och obundna varianterna (för alla fasta ) uppvisar också samma hårdhet.
För alla fasta tillåter dessa problem en pseudopolynomisk tidsalgoritm (liknande den för grundläggande ryggsäck) och en PTAS .
Ryggsäcksliknande problem
Om alla vinster är 1, kommer vi att försöka maximera antalet föremål som inte skulle överstiga ryggsäckens kapacitet:
maximera | ||
föremål för | ||
Om vi har ett antal behållare (av samma storlek), och vi vill packa alla n artiklar i så få behållare som möjligt, får vi problem med bin packing , som modelleras genom att ha indikatorvariabler container i används:
minimera | ||
föremål för | ||
Problemet med styckningslager är identiskt med problemet med soppackningsproblem , men eftersom praktiska instanser vanligtvis har mycket färre typer av föremål, används ofta en annan formulering. Objekt j behövs B j gånger, varje "mönster" av föremål som passar in i en enda ryggsäck har en variabel, x i (det finns m mönster), och mönster i använder objekt j b ij gånger:
minimera | ||
föremål för | för alla | |
för alla |
Om vi, till flervalsryggsäcksproblemet, lägger till begränsningen att varje delmängd är av storlek n och tar bort begränsningen på totalvikt, får vi tilldelningsproblemet , vilket också är problemet med att hitta en maximal tvådelad matchning :
maximera | ||
föremål för | för alla | |
för alla | ||
för alla och alla |
I varianten av ryggsäcken för maximal densitet finns en initial vikt och vi maximerar densiteten för utvalda föremål som inte bryter mot kapacitetsbegränsningen:
maximera | ||
föremål för | ||
Även om det är mindre vanliga än de ovan, finns flera andra ryggsäcksliknande problem, inklusive:
- Kapslad ryggsäcksproblem
- Problem med att kollapsa ryggsäcken
- Icke-linjärt ryggsäcksproblem
- Omvänt parametriskt ryggsäcksproblem
De tre sista av dessa diskuteras i Kellerer et al:s referensverk, Knapsack Problems .
-
^
Martello, Silvano och Toth, Paolo (1990). Rutsäcksproblem: Algoritmer och datorimplementeringar . John Wiley & Sons . ISBN 978-0471924203 .
{{ citera bok }}
: CS1 underhåll: flera namn: lista över författare ( länk ) -
^ a b c d
Kellerer, Hans och Pferschy, Ulrich och Pisinger, David (2004). Knapsäcksproblem . Springer Verlag . ISBN 978-3-540-40286-2 .
{{ citera bok }}
: CS1 underhåll: flera namn: lista över författare ( länk ) -
^
Lueker, GS (1975). "Två NP-kompletta problem i icke-negativ heltalsprogrammering". Rapport nr 178, Computer Science Laboratory, Princeton.
{{ citera journal }}
: Citera journal kräver|journal=
( hjälp ) -
^
Gens, GV och Levner, EV (1979). "Komplexitets- och approximationsalgoritmer för kombinatoriska problem: En undersökning". Central Economic and Mathematical Institute, USSRs vetenskapsakademi, Moskva.
{{ citera nyheter }}
: CS1 underhåll: använder författarens parameter ( länk ) - ^ "Om förekomsten av snabba approximationsscheman". Icke-linjär programmering . 4 : 415-437. 1980.
- ^ Tidskrift, MJ; Chern, M.-S. (1984). "En notering om tillnärmningsscheman för flerdimensionella knepsäcksproblem". Operationsforskningens matematik . 9 (2): 244–247. doi : 10.1287/moor.9.2.244 .
- ^ Cohen, Reuven; Katzir, Liran (2008). "Det allmänna problemet med maximal täckning". Informationsbehandlingsbrev . 108 : 15–22. CiteSeerX 10.1.1.156.2073 . doi : 10.1016/j.ipl.2008.03.017 .
- "Algorithms for Rugsack Problems" , D. Pisinger. Ph.D. avhandling, DIKU, Köpenhamns universitet, Rapport 95/1 (1995).