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 .

  1. ^   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 )
  2. ^ 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 )
  3. ^ 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 )
  4. ^ 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 )
  5. ^ "Om förekomsten av snabba approximationsscheman". Icke-linjär programmering . 4 : 415-437. 1980.
  6. ^ 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 .
  7. ^   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 .