Problém s balením pásky - Strip packing problem
The problém s balením pásků je problém s 2-dimenzionální geometrickou minimalizací. Vzhledem k sadě osově zarovnaných obdélníků a pásu ohraničené šířky a nekonečné výšky určete balení nepřekrývajících se obdélníků do pásu minimalizující jeho výšku. Tento problém je problémem při řezání a balení a je klasifikován jako Problém s otevřenou dimenzí podle Wäscher et al.[1]
Tento problém vzniká v oblasti plánování, kde modeluje úlohy, které vyžadují souvislou část paměti v daném časovém období. Dalším příkladem je oblast průmyslové výroby, kde je třeba vyříznout obdélníkové kusy z listu materiálu (např. Látky nebo papíru), který má pevnou šířku, ale nekonečnou délku, a je třeba minimalizovat zbytečný materiál.
Tento problém byl poprvé studován v roce 1980.[2] Je silně NP tvrdý a neexistuje žádný algoritmus aproximace polynomiálního času s poměrem menším než pokud . Dosud nejlepší dosažený poměr aproximace (pomocí polynomiálního časového algoritmu Harren et al.[3]) je , což vyvolává otevřenou otázku, zda existuje algoritmus s aproximačním poměrem .
Definice
Instance z problém s balením pásků sestává z pruhu o šířce a nekonečná výška, stejně jako sada obdélníkových předmětů. Každý předmět má šířku a výška Balení položek je mapování, které mapuje každý levý dolní roh položky do polohy uvnitř proužku. Vnitřní bod umístěné položky je bod ze sady Dvě (umístěné) položky se překrývají, pokud sdílejí vnitřní bod. Výška balení je definována jako . Cílem je najít nepřekrývající se balení předmětů uvnitř proužku při minimalizaci výšky obalu.
Tato definice se používá pro všechny polynomiální časové algoritmy. Pro pseudo-polynomiální čas a FPT -algoritmy, definice je mírně změněna pro zjednodušení zápisu. V tomto případě jsou všechny zobrazené velikosti nedílnou součástí. Zejména šířka pásu je dána libovolným celým číslem větším než 1. Všimněte si, že tyto dvě definice jsou ekvivalentní.
Varianty
Bylo studováno několik variant problému s balením pásů. Tyto varianty se týkají geometrie objektů, dimenze problému, pokud je povoleno otáčet položkami, a struktury obalu.[4]
Geometrie položek: Ve standardní variantě tohoto problému sestava daných položek sestává z obdélníků. V často uvažovaném subkase musí být všechny položky čtverce. Tato varianta byla zvažována již v prvním příspěvku o balení pásů.[2]Dále byly studovány varianty, kde jsou tvary kruhové nebo dokonce nepravidelné. V druhém případě mluvíme o nepravidelné balení proužků.
Dimenze:Pokud není uvedeno jinak, problém s balením pásů je 2-rozměrný problém. Bylo však také studováno ve třech nebo dokonce více dimenzích. V tomto případě jsou to objekty hyperrektangle a pás je otevřený v jedné dimenzi a ohraničený ve zbývajících.
Otáčení: U klasického problému s balením pásů není povoleno otáčet předměty. Byly však studovány varianty, kde je povoleno otáčení o 90 stupňů nebo dokonce libovolný úhel.
Struktura balení:U obecného problému s balením pásu je struktura balení irelevantní. Existují však aplikace, které mají explicitní požadavky na strukturu obalu. Jedním z těchto požadavků je schopnost řezat předměty z pásu vodorovným nebo svislým řezem od okraje k okraji. Balení, která umožňují tento druh řezání, se nazývají gilotinové balení.
Tvrdost
Problém s balením proužků obsahuje problém s balením koše jako speciální případ, kdy všechny položky mají stejnou výšku 1. Z tohoto důvodu je silně NP-tvrdý a nemůže existovat žádný polynomiální čas aproximační algoritmus, který má přibližný poměr menší než pokud . Kromě toho, pokud , nemůže existovat pseudo-polynomiální čas algoritmus, který má aproximační poměr menší než ,[5] což lze prokázat snížením z silně NP-kompletní Problém se 3 oddíly Pamatujte, že obě dolní meze a také platí pro případ, že je povoleno otáčení položek o 90 stupňů. Navíc to prokázali Ashok et al.[6] to balení pásu je W [1] - tvrdý při parametrizaci výškou optimálního obalu.
Vlastnosti optimálních řešení
Optimální řešení mají dvě triviální dolní hranice. První je výška největší položky. Definovat . Pak to platí
.
Další spodní mez je dána celkovou plochou položek. Definovat pak to platí
.
Následující dvě dolní hranice berou na vědomí skutečnost, že určité položky nelze v pásu umístit vedle sebe a lze je vypočítat v .[7]U první dolní meze předpokládejme, že položky jsou seřazeny podle nezvětšující se výšky. Definovat . Pro každého definovat první index takový, že . Pak to platí
.[7]
U druhé dolní meze rozdělte sadu položek na tři sady. Nechat a definovat , , a . Pak to platí
,[7] kde pro každého .
Na druhou stranu Steinberg[8] ukázal, že výška optimálního řešení může být horní hranicí
Přesněji ukázal, že vzhledem k a a pak položky lze umístit do krabice o šířce a výška -li
, kde .
Algoritmy polynomiální aproximace času
Jelikož je tento problém NP-těžký, aproximační algoritmy byly pro tento problém studovány. Většina heuristické přístupy mít přibližný poměr mezi a . Nalezení algoritmu s níže uvedeným poměrem se zdá těžké a složitost odpovídajících algoritmů se zvyšuje, pokud jde o jejich dobu běhu a jejich popisy. Dosud dosažený nejmenší poměr přiblížení je .
Rok | název | Záruka aproximace | Zdroj |
---|---|---|---|
1980 | Zdola nahoru, zarovnáno doleva (BL) | Baker a kol.[2] | |
1980 | Snížená výška Next-Fit (NFDH) | Coffman a kol.[9] | |
Snížení výšky prvního uložení (FFDH) | |||
Split-Fit (SF) | |||
1980 | Slaetor[10] | ||
1981 | Split Algorithm (SP) | Golan[11] | |
Smíšený algoritmus | |||
1981 | Nahoru-dolů (UD) | Baker a kol.[12] | |
1994 | Reverse-Fit | Schiermeyer[13] | |
1997 | Steinberg[8] | ||
2000 | Kenyon, Rémila[14] | ||
2009 | Harren, van Stee[15] | ||
2009 | Jansen, Solis-Oba[16] | ||
2011 | Bougeret a kol.[17] | ||
2012 | Sviridenko[18] | ||
2014 | Harren a kol.[3] |
Zdola nahoru, zarovnáno doleva (BL)

Tento algoritmus poprvé popsali Baker et al.[2] Funguje to následovně:
Nechat být posloupností obdélníkových předmětů. Algoritmus iteruje sekvenci v daném pořadí. Pro každou uvažovanou položku , hledá nejspodnější pozici pro umístění a poté ji posune co nejvíce doleva. Proto to umisťuje v levé dolní nejvíce možné souřadnici v pásu.
Tento algoritmus má následující vlastnosti:
- Aproximační poměr tohoto algoritmu nelze omezit konstantou. Přesněji to ukázali pro každého existuje seznam obdélníkových položek seřazených zvětšením takové šířky , kde je výška obalu vytvořeného algoritmem BL a je výška optimálního řešení pro .[2]
- Pokud jsou položky seřazeny podle zmenšujících se šířek, pak .[2]
- Pokud jsou položka všechny čtverce a jsou seřazeny podle zmenšujících se šířek, pak .[2]
- Pro všechny , existuje seznam obdélníků seřazených podle zmenšení šířky tak, aby .[2]
- Pro všechny , existuje seznam čtverců seřazených podle zmenšení šířky tak, že .[2]
- Pro každého , existuje instance obsahující pouze čtverce, kde je každé pořadí čtverců má poměr , tj. existují případy, kdy BL ano ne najít optimální i při iteraci všech možných objednávek položek.[2]
Next-fit klesající výška (NFDH)

Tento algoritmus poprvé popsali Coffman et al.[9] v roce 1980 a funguje takto:
Nechat být danou sadou obdélníkových předmětů. Nejprve algoritmus seřadí položky podle pořadí nezvyšující se výšky. Poté počínaje pozicí , algoritmus umístí položky vedle sebe do pruhu, dokud další položka nepřekryje pravý okraj pruhu. V tomto okamžiku algoritmus definuje novou úroveň v horní části nejvyšší položky v aktuální úrovni a umístí položky vedle sebe v této nové úrovni.
Tento algoritmus má následující vlastnosti:
- Dobu chodu lze omezit a pokud jsou položky již seřazeny dokonce podle .
- Pro každou sadu položek , vytváří obal výšky , kde je největší výška položky v .[9]
- Pro každého existuje sada obdélníků takhle [9]
- Balením je gilotinový obal. To znamená, že položky lze získat posloupností vodorovných nebo svislých řezů od okraje k okraji.
První montáž s klesající výškou (FFDH)
Tento algoritmus, poprvé popsaný Coffmanem a kol.[9] v roce 1980 funguje podobně jako algoritmus NFDH. Při umisťování další položky však algoritmus skenuje úrovně zdola nahoru a umístí položku do první úrovně, na kterou se vejde. Nová úroveň se otevře, pouze pokud se položka nevejde do žádné předchozí.
Tento algoritmus má následující vlastnosti:
- Dobu chodu lze omezit , protože jich je nanejvýš úrovně.
- Pro každou sadu položek vytváří výplň výšky , kde je největší výška položky v .[9]
- Nechat . Pro libovolnou sadu položek a pásek o šířce takhle pro každého , to platí . Navíc pro každého , existuje taková sada položek s .[9]
- Pokud jsou všechny položky v jsou čtverce, to platí . Navíc pro každého , existuje sada čtverců takhle .[9]
- Balením je gilotinový obal. To znamená, že položky lze získat posloupností vodorovných nebo svislých řezů od okraje k okraji.
Algoritmus split-fit (SF)
Tento algoritmus poprvé popsali Coffman et al.[9] Pro danou sadu položek a pásek o šířce , funguje takto:
- Určete , největší celé číslo tak, aby dané obdélníky měly šířku nebo méně.
- Rozdělit do dvou sad a , takový, že obsahuje všechny položky se šířkou zatímco obsahuje všechny položky s .
- Objednat a nezvyšující se výškou.
- Zabalte položky s algoritmem FFDH.
- Změňte pořadí úrovní / polic vytvořených FFDH tak, aby byly všechny police s celkovou šířkou větší než jsou pod úzkými.
- To ponechá obdélníkovou oblast z s , vedle užších úrovní / polic, které neobsahují žádnou položku.
- K zabalení položek použijte algoritmus FFDH pomocí této oblasti také.
Tento algoritmus má následující vlastnosti:
- Pro každou sadu položek a odpovídající , to platí .[9] Všimněte si, že pro , to platí
- Pro každého , existuje sada položek takhle .[9]
Sleatorův algoritmus
Pro danou sadu položek a pásek o šířce , funguje takto:
- Najděte všechny položky o šířce větší než a stohujte je ve spodní části proužku (v náhodném pořadí). Zavolejte celkovou výšku těchto položek . Všechny ostatní položky budou umístěny výše .
- Seřaďte všechny zbývající položky v nezvyšujícím se pořadí podle výšky. Položky budou umístěny v tomto pořadí.
- Zvažte vodorovnou čáru v jako police. Algoritmus umístí položky na tuto polici v nezvyšujícím se pořadí výšky, dokud nezůstane žádná položka nebo se nevejde další.
- Nakreslete svislou čáru na , který rozřízne proužek na dvě stejné poloviny.
- Nechat být nejvyšším bodem pokrytým jakoukoli položkou v levé polovině a odpovídající bod na pravé polovině. Nakreslete dva vodorovné úsečky o délce na a přes levou a pravou polovinu proužku. Tyto dva řádky vytvářejí nové police, na které algoritmus umístí položky, jako v kroku 3. Vyberte polovinu, která má spodní polici, a položte položky na tuto polici, dokud se na ni nevejde žádná jiná položka. Tento krok opakujte, dokud nezůstane žádná položka.
Tento algoritmus má následující vlastnosti:
- Dobu chodu lze omezit a pokud jsou položky již seřazeny dokonce podle .
- Pro každou sadu položek vytváří výplň výšky , kde je největší výška položky v .[10]
Rozdělený algoritmus (SP)
Tento algoritmus je rozšířením přístupu Sleator a byl poprvé popsán Golanem.[11] Umístí položky v nezvětšujícím se pořadí podle šířky. Intuitivní myšlenkou je rozdělit proužek na dílčí proužky při umístění některých položek. Kdykoli je to možné, algoritmus umístí aktuální položku vedle již umístěné položky . V tomto případě rozděluje odpovídající dílčí pás na dva kusy: jeden obsahující první položku a druhá obsahuje aktuální položku Pokud to není možné, umístí se to na již položenou položku a nerozdělí dílčí proužek.
Tento algoritmus vytváří množinu S dílčích proužků. Pro každý dílčí proužek s ∈ S známe jeho levý dolní roh s.xpozice a s.pozice, jeho šířka Šířka, vodorovné čáry rovnoběžné s horním a dolním okrajem položky umístěné jako poslední uvnitř tohoto dílčího pruhu večeře a s.lower, stejně jako jeho šířka s.itemWidth.
funkce Split Algorithm (SP) je vstup: položky Já, šířka pásu Ž výstup: Balení položek Třídit I v nezvětšujícím se pořadí šířek; Definujte prázdný seznam S dílčích proužků; Definujte nový dílčí proužek s s.xposition = 0, s.yposition = 0, s.width = W, s.lower = 0, s.upper = 0, s.itemWidth = W; Přidat s k S; zatímco Nevyprázdním dělat i: = I.pop (); Odstraní nejširší položku z I Definovat nový seznam S_2 obsahující všechny dílčí proužky se s.width - s.itemWidth ≥ i.width; S_2 obsahuje všechny dílčí proužky, kam se vejde vedle již umístěné položky -li S_2 je prázdný pak V takovém případě položte položku na jinou. Najděte dílčí proužek s v S s nejmenším s.upper; tj. nejméně naplněný dílčí pás Umístěte i do polohy (s.xpozice, s.vrchu); Aktualizace s: s.lower: = s.upper; s.upper: = s.upper + i.height; s.itemWidth: = i.šířka; jiný V takovém případě položte položku vedle další na stejné úrovni a rozdělte odpovídající dílčí pás na této pozici. Najděte s ∈ S_2 s nejmenším s.lower; Umístěte i na pozici (s.xposition + s.itemWidth, s.lower); Odebrat s z S; Definujte dva nové dílčí proužky s1 a s2 s s1.xposition = s.xposition, s1.yposition = s.upper, s1.width = s.itemWidth, s1.lower = s.upper, s1.upper = s.upper, s1.itemWidth = s.itemWidth; s2.xposition = s.xposition + s.itemWidth, s2.yposition = s.lower, s2.width = s.width - s.itemWidth, s2.lower = s.lower, s2.upper = i.height, s2. itemWidth = i.width; S.add (s1, s2); vrátit se koncová funkce
Tento algoritmus má následující vlastnosti:
- Dobu chodu lze omezit protože počet dílčích proužků je omezen .
- Pro libovolnou sadu položek to platí .[11]
- Pro všechny , existuje sada položek takhle .[11]
- Pro všechny a , existuje sada položek takhle .[11]
Reverse fit (RF)
Tento algoritmus poprvé popsal Schiermeyer.[13] Popis tohoto algoritmu vyžaduje nějakou další notaci. Pro vloženou položku , jeho levý dolní roh je označen a jeho pravý horní roh o .
Vzhledem k sadě položek a pruh šířky , funguje takto:
- Skládejte všechny obdélníky o šířce větší než na sebe (v náhodném pořadí) ve spodní části proužku. Označit podle výška tohoto stohu. Všechny ostatní položky budou zabaleny výše .
- Seřaďte zbývající položky v pořadí nezvyšující se výšky a zvažte položky v tomto pořadí v následujících krocích. Nechat být výškou nejvyšší z těchto zbývajících položek.
- Položte položky jeden po druhém doleva zarovnané na polici definované pomocí dokud se na tuto polici nevejde žádný jiný předmět nebo nezůstane žádný předmět. Říkejte tomu police první úroveň.
- Nechat být výškou nejvyšší nebalené položky. Definujte novou polici na . Algoritmus vyplní tuto poličku zprava doleva a zarovná položky doprava, takže se položky dotknou této police svým vrcholem. Říkejte tomu police druhá reverzní úroveň.
- Položte předměty do dvou polic díky First-Fit, tj. Položte je do první úrovně tam, kde se vejdou, a do druhé jinak. Pokračujte, dokud nezůstanou žádné položky nebo dokud nebude celková šířka položek ve druhé poličce alespoň .
- Posuňte druhou reverzní úroveň dolů, dokud se položka z ní nedotkne položky z první úrovně. Definovat jako nová svislá poloha posunuté police. Nechat a být tím správným párem dotýkajících se položek umístěny na první úrovni a na druhé reverzní úrovni. Definovat .
- Li pak je poslední obdélník umístěný ve druhé reverzní úrovni. Posuňte všechny ostatní položky z této úrovně dále dolů (všechny stejné částky), dokud se první nedotkne položky z první úrovně. Algoritmus opět určuje nejpravější dvojici dotykových položek a . Definovat jako množství, o které byla police posunuta dolů.
- Li pak posun doleva, dokud se nedotkne jiné položky nebo okraje pruhu. Definujte třetí úroveň v horní části .
- Li pak posun definovat třetí úroveň v horní části . Místo zarovnáno doleva v této třetí úrovni, takže se dotkne položky z první úrovně nalevo.
- Pokračujte v balení položek pomocí heuristiky First-Fit. Každá následující úroveň (počínaje úrovní tři) je definována vodorovnou čarou v horní části největší položky na předchozí úrovni. Všimněte si, že první položka umístěná v další úrovni se nemusí levou stranou dotknout ohraničení pruhu, ale položky z první úrovně nebo položky .
Tento algoritmus má následující vlastnosti:
- Dobu chodu lze omezit , protože jich je nanejvýš úrovně.
- Pro každou sadu položek vytváří výplň výšky .[13]
Steinbergův algoritmus (ST)
Steinbergův algoritmus je rekurzivní. Vzhledem k sadě obdélníkových předmětů a obdélníkovou cílovou oblast o šířce a výška , navrhuje čtyři pravidla redukce, která umisťují některé položky a ponechávají menší obdélníkovou oblast se stejnými vlastnostmi jako dříve, co se týče zbytkových položek. Zvažte následující zápisy: Vzhledem k sadě položek označujeme nejvyšší výška položky v , největší šířka položky v a tím celková plocha těchto položek. Steinbergs ukazuje, že pokud
, , a , kde ,
pak mohou být všechny položky umístěny uvnitř cílové oblasti velikosti Každé pravidlo redukce vytvoří menší cílovou oblast a podmnožinu položek, které je třeba umístit. Když výše uvedená podmínka platí před zahájením procedury, pak bude mít vytvořený dílčí problém také tuto vlastnost.
Postup 1: Lze použít, pokud .
- Najděte všechny položky se šířkou a odstranit je z .
- Seřaďte je podle nezvětšující se šířky a umístěte je doleva zarovnané v dolní části cílové oblasti. Nechat být jejich celková výška.
- Najděte všechny položky se šířkou . Odeberte je z a položte je do nové sady .
- Li je prázdný, definujte novou cílovou oblast jako oblast výše , tj. má výšku a šířka . Vyřešte problém skládající se z této nové cílové oblasti a redukované sady položek pomocí jednoho z postupů.
- Li není prázdná, seřaďte ji podle nezvyšující se výšky a umístěte položky vpravo po jednom do pravého horního rohu cílové oblasti. Nechat být celková šířka těchto položek. Definujte novou cílovou oblast se šířkou a výška v levém horním rohu. Vyřešte problém skládající se z této nové cílové oblasti a redukované sady položek pomocí jednoho z postupů.
Postup 2: Lze použít, pokud platí následující podmínky: , a existují dvě různé položky s , , , a .
- Nalézt a a odstranit je z .
- Umístěte širší do levého dolního rohu cílové oblasti a ten užší zarovnejte doleva do horní části první.
- Definujte novou cílovou oblast napravo od těchto obou položek, aby měla šířku a výška .
- Vložte zbytky jedním z postupů do nové cílové oblasti.
Postup 3: Lze použít, pokud platí následující podmínky: , , a při třídění položek podle zmenšení šířky existuje index takové, že při definování jako první položky, které to drží stejně jako
- Soubor .
- Definujte dvě nové obdélníkové cílové oblasti, jednu v levém dolním rohu původní s výškou a šířka a druhá vlevo s výškou a šířka .
- K umístění položek použijte jeden z postupů do první nové cílové oblasti a položek v do druhého.
Všimněte si, že postupy 1 až 3 mají symetrickou verzi při výměně výšky a šířky položek a cílové oblasti.
Postup 4: Lze použít, pokud platí následující podmínky: , a existuje položka takhle .
- Umístěte položku v levém dolním rohu cílové oblasti a vyjměte ji z .
- Definujte novou cílovou oblast vpravo od této položky tak, aby měla šířku a výška a umístěte zbytky uvnitř této oblasti pomocí jednoho z postupů.
Tento algoritmus má následující vlastnosti:
Algoritmy aproximace času pseudo-polynomu
Zlepšit spodní hranici pro polynomiální časové algoritmy byly uvažovány pseudo-polynomiální časové algoritmy pro problém s balením pásů. Při zvažování tohoto typu algoritmů jsou všechny velikosti položek a pásu uvedeny jako integrály. Dále šířka pruhu se může za běhu objevit polynomiálně. Všimněte si, že se to již nepovažuje za dobu běhu polynomu, protože v daném případě šířka pruhu vyžaduje velikost kódování .
Vyvinuté pseudo-polynomiální časové algoritmy většinou používají stejný přístup. Ukazuje se, že každé optimální řešení lze zjednodušit a transformovat do takového, které má jednu ze stálého počtu struktur. Algoritmus poté iteruje všechny tyto struktury a umístí položky dovnitř pomocí lineárního a dynamického programování. Dosud nejlepší dosažený poměr je .[19] zatímco nemůže existovat algoritmus pseudo-polynomiálního času s poměrem lepším než pokud [5]
Rok | Aproximační poměr | Zdroj | Komentář |
---|---|---|---|
2010 | Jansen, Thöle[20] | ||
2016 | Nadiradze, Wiese[21] | ||
2016 | Gálvez, Grandoni, Ingala, Khan[22] | také pro 90 stupňové rotace | |
2017 | Jansen, Rau[23] | ||
2019 | Jansen, Rau[19] | také pro rotace o 90 stupňů a souvislé tvarovatelné úlohy |
Online algoritmy
V online varianta balení pásky, zboží dorazí v průběhu času. Když položka dorazí, musí být umístěna bezprostředně předtím, než je známa další položka. Zvažovány jsou dva typy online algoritmů. In the first variant, it is not allowed to alter the packing once an item is placed. In the second, items may be repacked when another item arrives. This variant is called the migration model.
The quality of an online algorithm is measured by the (absolute) competitive ratio
,
kde corresponds to the solution generated by the online algorithm and corresponds to the size of the optimal solution. In addition to the absolute competitive ratio, the asymptotic competitive ratio of online algorithms has been studied. For instances s it is defined as
.
Note that all the instances can be scaled such that .
Rok | Competitive Ratio | Asymptotic Competitive Ratio | Zdroj |
---|---|---|---|
1983 | 6.99 | Baker and Schwarz[24] | |
1997 | Csirik and Woeginger[25] | ||
2007 | 6.6623 | Hurink and Paulus[26] | |
2009 | 6.6623 | Ye, Han, and Zhang[27] | |
2007 | Han et al.[28] + Seiden[29] |
The framework of Han et al.[28] is applicable in the online setting if the online bin packingalgorithm belongs to the class Super Harmonic. Thus, Seiden's online bin packing algorithmHarmonic++[29] implies an algorithm for online strip packing with asymptotic ratio 1.58889.
Rok | Competitive Ratio | Asymptotic Competitive Ratio | Zdroj | Komentář |
---|---|---|---|---|
1982 | Brown, Baker, and Katseff[30] | |||
2006 | 2.25 | Johannes[31] | also holds for the parallel task scheduling problem | |
2007 | 2.43 | Hurink and Paulus[32] | also holds for the parallel task scheduling problem | |
2009 | 2.457 | Kern and Paulus [33] | ||
2012 | Balogh and Békési[34] | lower bound due to the underlying bin packing problem | ||
2016 | 2.618 | Yu, Mao, and Xiao[35] |
Reference
- ^ Wäscher, Gerhard; Haußner, Heike; Schumann, Holger (16 December 2007). "An improved typology of cutting and packing problems". Evropský žurnál operačního výzkumu. 183 (3): 1109–1130. doi:10.1016/j.ejor.2005.12.047. ISSN 0377-2217.
- ^ A b C d E F G h i j Baker, Brenda S.; Coffman Jr., Edward G.; Rivest, Ronald L. (1980). "Orthogonal Packings in Two Dimensions". SIAM J. Comput. 9 (4): 846–855. doi:10.1137/0209064.
- ^ A b Harren, Rolf; Jansen, Klaus; Prädel, Lars; van Stee, Rob (February 2014). "A (5/3 + epsilon)-approximation for strip packing". Výpočetní geometrie. 47 (2): 248–267. doi:10.1016/j.comgeo.2013.08.008.
- ^ Neuenfeldt Junior, Alvaro Luiz. "The Two-Dimensional Rectangular Strip Packing Problem" (PDF). 10820228.
- ^ A b Henning, Sören; Jansen, Klaus; Rau, Malin; Schmarje, Lars (2019). "Complexity and Inapproximability Results for Parallel Task Scheduling and Strip Packing". Teorie výpočetních systémů. 64: 120–140. arXiv:1705.04587. doi:10.1007/s00224-019-09910-6. S2CID 67168004.
- ^ Ashok, Pradeesha; Kolay, Sudeshna; Meesum, S.M.; Saurabh, Saket (January 2017). "Parameterized complexity of Strip Packing and Minimum Volume Packing". Teoretická informatika. 661: 56–64. doi:10.1016/j.tcs.2016.11.034.
- ^ A b C Martello, Silvano; Monaci, Michele; Vigo, Daniele (1 August 2003). "An Exact Approach to the Strip-Packing Problem". INFORMS Journal o práci na počítači. 15 (3): 310–319. doi:10.1287/ijoc.15.3.310.16082. ISSN 1091-9856.
- ^ A b C d Steinberg, A. (March 1997). "A Strip-Packing Algorithm with Absolute Performance Bound 2". SIAM Journal on Computing. 26 (2): 401–409. doi:10.1137/S0097539793255801.
- ^ A b C d E F G h i j k Coffman Jr., Edward G.; Garey, M. R.; Johnson, David S.; Tarjan, Robert Endre (1980). "Performance Bounds for Level-Oriented Two-Dimensional Packing Algorithms". SIAM J. Comput. 9 (4): 808–826. doi:10.1137/0209062.
- ^ A b Sleator, Daniel Dominic (1980). "A 2.5 Times Optimal Algorithm for Packing in Two Dimensions". Inf. Process. Lett. 10: 37–40. doi:10.1016/0020-0190(80)90121-0.
- ^ A b C d E Golan, Igal (August 1981). "Performance Bounds for Orthogonal Oriented Two-Dimensional Packing Algorithms". SIAM Journal on Computing. 10 (3): 571–582. doi:10.1137/0210042.
- ^ Baker, Brenda S; Brown, Donna J; Katseff, Howard P (December 1981). "A 5/4 algorithm for two-dimensional packing". Journal of Algorithms. 2 (4): 348–368. doi:10.1016/0196-6774(81)90034-1.
- ^ A b C Schiermeyer, Ingo (1994). "Reverse-Fit: A 2-optimal algorithm for packing rectangles". Algorithms — ESA '94. Přednášky z informatiky. 855. Springer Berlin Heidelberg. pp. 290–299. doi:10.1007/bfb0049416. ISBN 978-3-540-58434-6.
- ^ Kenyon, Claire; Rémila, Eric (November 2000). "A Near-Optimal Solution to a Two-Dimensional Cutting Stock Problem". Matematika operačního výzkumu. 25 (4): 645–656. doi:10.1287/moor.25.4.645.12118. S2CID 5361969.
- ^ Harren, Rolf; van Stee, Rob (2009). "Improved Absolute Approximation Ratios for Two-Dimensional Packing Problems". Approximation, Randomization, and Combinatorial Optimization. Algorithms and Techniques, 12th International Workshop, {APPROX} 2009, and 13th International Workshop, {RANDOM} 2009, Berkeley, CA, USA, August 21–23, 2009. Proceedings. 5687: 177–189. Bibcode:2009LNCS.5687..177H. doi:10.1007/978-3-642-03685-9\_14 (inactive 2020-11-26).CS1 maint: DOI neaktivní od listopadu 2020 (odkaz)
- ^ Jansen, Klaus; Solis-Oba, Roberto (August 2009). "Rectangle packing with one-dimensional resource augmentation". Diskrétní optimalizace. 6 (3): 310–323. doi:10.1016/j.disopt.2009.04.001.
- ^ Bougeret, Marin; Dutot, Pierre-Francois; Jansen, Klaus; Robenek, Christina; Trystram, Denis (5 April 2012). "Approximation Algorithms for Multiple Strip Packing and Scheduking Parallel Jobs in Platforms". Discrete Mathematics, Algorithms and Applications. 03 (4): 553–586. doi:10.1142/S1793830911001413.
- ^ Sviridenko, Maxim (January 2012). "A note on the Kenyon–Remila strip-packing algorithm". Dopisy o zpracování informací. 112 (1–2): 10–12. doi:10.1016/j.ipl.2011.10.003.
- ^ A b Jansen, Klaus; Rau, Malin (2019). "Closing the Gap for Pseudo-Polynomial Strip Packing". 27th Annual European Symposium on Algorithms (ESA 2019). Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik. 144: 62:1–62:14. doi:10.4230/LIPIcs.ESA.2019.62. S2CID 24303167.
- ^ Jansen, Klaus; Thöle, Ralf (January 2010). "Approximation Algorithms for Scheduling Parallel Jobs". SIAM Journal on Computing. 39 (8): 3571–3615. doi:10.1137/080736491.
- ^ Nadiradze, Giorgi; Wiese, Andreas (21 December 2015). "On approximating strip packing with a better ratio than 3/2". Proceedings of the Twenty-Seventh Annual ACM-SIAM Symposium on Discrete Algorithms. Society for Industrial and Applied Mathematics: 1491–1510. doi:10.1137/1.9781611974331.ch102. ISBN 978-1-61197-433-1.
- ^ Gálvez, Waldo; Grandoni, Fabrizio; Ingala, Salvatore; Khan, Arindam (2016). "Improved Pseudo-Polynomial-Time Approximation for Strip Packing". 36th IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS 2016). Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik. 65: 9:1–9:14. doi:10.4230/LIPIcs.FSTTCS.2016.9. S2CID 3205478.
- ^ Jansen, Klaus; Rau, Malin (29–31 March 2017). "Improved Approximation for Two Dimensional Strip Packing with Polynomial Bounded Width". {WALCOM:} Algorithms and Computation, 11th International Conference and Workshops, {WALCOM} 2017, Hsinchu, Taiwan: 409–420. doi:10.1007/978-3-319-53925-6\_32 (inactive 2020-11-26).CS1 maint: DOI neaktivní od listopadu 2020 (odkaz)
- ^ Baker, Brenda S.; Schwarz, Jerald S. (1 August 1983). "Shelf Algorithms for Two-Dimensional Packing Problems". SIAM Journal on Computing. 12 (3): 508–525. doi:10.1137/0212033. ISSN 0097-5397.
- ^ Csirik, János; Woeginger, Gerhard J. (28 August 1997). "Shelf algorithms for on-line strip packing". Dopisy o zpracování informací. 63 (4): 171–175. doi:10.1016/S0020-0190(97)00120-8. ISSN 0020-0190.
- ^ Hurink, Johann L.; Paulus, Jacob Jan (2007). "Online Algorithm for Parallel Job Scheduling and Strip Packing". WAOA 2007 - Approximation and Online Algorithms. Přednášky z informatiky. Springer Berlin Heidelberg. 4927: 67–74. doi:10.1007/978-3-540-77918-6_6. ISBN 978-3-540-77917-9.
- ^ Ye, Deshi; Han, Xin; Zhang, Guochuan (1 May 2009). "A note on online strip packing". Journal of Combinatorial Optimization. 17 (4): 417–423. doi:10.1007/s10878-007-9125-x. ISSN 1573-2886. S2CID 37635252.
- ^ A b Han, Xin; Iwama, Kazuo; Ye, Deshi; Zhang, Guochuan (2007). "Strip Packing vs. Bin Packing". Algorithmic Aspects in Information and Management. Přednášky z informatiky. Springer Berlin Heidelberg. 4508: 358–367. arXiv:cs/0607046. doi:10.1007/978-3-540-72870-2_34. ISBN 978-3-540-72868-9. S2CID 580.
- ^ A b Seiden, Steven S. (2001). "On the Online Bin Packing Problem". Automata, Languages and Programming. Přednášky z informatiky. Springer Berlin Heidelberg. 2076: 237–248. doi:10.1007/3-540-48224-5_20. ISBN 978-3-540-42287-7.
- ^ Brown, Donna J.; Baker, Brenda S.; Katseff, Howard P. (1 November 1982). "Lower bounds for on-line two-dimensional packing algorithms". Acta Informatica. 18 (2): 207–225. doi:10.1007/BF00264439. hdl:2142/74223. ISSN 1432-0525. S2CID 21170278.
- ^ Johannes, Berit (1 October 2006). "Scheduling parallel jobs to minimize the makespan" (PDF). Journal of Scheduling. 9 (5): 433–452. doi:10.1007/s10951-006-8497-6. hdl:20.500.11850/36804. ISSN 1099-1425. S2CID 18819458.
- ^ Hurink, J. L.; Paulus, J. J. (1 January 2008). "Online scheduling of parallel jobs on two machines is 2-competitive". Dopisy o operačním výzkumu. 36 (1): 51–56. doi:10.1016/j.orl.2007.06.001. ISSN 0167-6377.
- ^ Kern, Walter; Paulus, Jacob Jan (2009). "A note on the lower bound for online strip packing". Dopisy o operačním výzkumu.
- ^ Balogh, János; Békési, József; Galambos, Gábor (6 July 2012). "New lower bounds for certain classes of bin packing algorithms". Teoretická informatika. 440-441: 1–13. doi:10.1016/j.tcs.2012.04.017. ISSN 0304-3975.
- ^ Yu, Guosong; Mao, Yanling; Xiao, Jiaoliao (1 May 2016). "A new lower bound for online strip packing". Evropský žurnál operačního výzkumu. 250 (3): 754–759. doi:10.1016/j.ejor.2015.10.012. ISSN 0377-2217.