Heuristic approaches for the two- and three-dimensional knapsack packing problem

Jens Egeblad, David Pisinger

Research output: Contribution to journalJournal articleResearchpeer-review

Abstract

The maximum profit two- or three-dimensional knapsack packing problem packs a maximum profit Subset of some given rectangles or boxes into a larger rectangle or box of fixed dimensions. Items must be orthogonally packed, but no other restriction is imposed to the problem. We present anew iterative heuristic for the two-dimensional knapsack problem based on the sequence pair representation proposed by Murata et al. [VLSI module packing based on rectangle-packing by the sequence pair. IEEE Transaction on Computer Aided Design of Integrated Circuits and Systems 1996; 15:1518-24] using a semi-normalized packing algorithm by Pisinger [Denser packings obtained in O(n log log n) time. INFORMS Journal on Computing 2007 19:395-405]. Solutions are represented as a pair of sequences. In each iteration, the sequence pair is modified and transformed to a packing in order to evaluate the objective value. Simulated annealing is used to control the heuristic. A novel abstract representation of box placements, called sequence triple, is used with a similar technique for the three-dimensional knapsack problem. The heuristic is able to handle problem instances where rotation is allowed. Comprehensive computational experiments which compare the developed heuristics with previous approaches indicate very promising results for both two- and three-dimensional problems. (C) 2007 Elsevier Ltd. All rights reserved.
Keyword: SEARCH,ALGORITHM,CONTAINER-LOADING PROBLEM,CUTTING STOCK PROBLEM
Original languageEnglish
JournalComputers & Operations Research
Volume36
Issue number4
Pages (from-to)1026-1049
ISSN0305-0548
DOIs
Publication statusPublished - 2009
Externally publishedYes

Fingerprint Dive into the research topics of 'Heuristic approaches for the two- and three-dimensional knapsack packing problem'. Together they form a unique fingerprint.

Cite this