language-icon Old Web
English
Sign In

Bin packing problem

In the bin packing problem, items of different volumes must be packed into a finite number of bins or containers each of volume V in a way that minimizes the number of bins used. In computational complexity theory, it is a combinatorial NP-hard problem. The decision problem (deciding if items will fit into a specified number of bins) is NP-complete. In the bin packing problem, items of different volumes must be packed into a finite number of bins or containers each of volume V in a way that minimizes the number of bins used. In computational complexity theory, it is a combinatorial NP-hard problem. The decision problem (deciding if items will fit into a specified number of bins) is NP-complete. There are many variations of this problem, such as 2D packing, linear packing, packing by weight, packing by cost, and so on. They have many applications, such as filling up containers, loading trucks with weight capacity constraints, creating file backups in media and technology mapping in field-programmable gate array semiconductor chip design. The bin packing problem can also be seen as a special case of the cutting stock problem. When the number of bins is restricted to 1 and each item is characterised by both a volume and a value, the problem of maximising the value of items that can fit in the bin is known as the knapsack problem. Despite the fact that the bin packing problem has an NP-hard computational complexity, optimal solutions to very large instances of the problem can be produced with sophisticated algorithms. In addition, many heuristics have been developed: for example, the first fit algorithm provides a fast but often non-optimal solution, involving placing each item into the first bin in which it will fit. It requires Θ(n log n) time, where n is the number of items to be packed. The algorithm can be made much more effective by first sorting the list of items into decreasing order (sometimes known as the first-fit decreasing algorithm), although this still does not guarantee an optimal solution, and for longer lists may increase the running time of the algorithm. It is known, however, that there always exists at least one ordering of items that allows first-fit to produce an optimal solution. A variant of bin packing that occurs in practice is when items can share space when packed into a bin. Specifically, a set of items could occupy less space when packed together than the sum of their individual sizes. This variant is known as VM packing since when virtual machines (VMs) are packed in a server, their total memory requirement could decrease due to pages shared by the VMs that need only be stored once. If items can share space in arbitrary ways, the bin packing problem is hard to even approximate. However, if the space sharing fits into a hierarchy, as is the case with memory sharing in virtual machines, the bin packing problem can be efficiently approximated.Another variant of bin packing of interest in practice is the so-called online bin packing. Here the items of different volume are supposed to arrive sequentially and the decision maker has to decide whether to select and pack the currently observed item, or else to let it pass. Each decision is without recall. Given a set of bins S 1 , S 2 . . . {displaystyle S_{1},S_{2}...} with the same size V {displaystyle V} and a list of n {displaystyle n} items with sizes a 1 , … , a n {displaystyle a_{1},,dots ,,a_{n}} to pack, find an integer number of bins B {displaystyle B} and a B {displaystyle B} -partition S 1 ∪ ⋯ ∪ S B {displaystyle S_{1}cup cdots cup S_{B}} of the set { 1 , … , n } {displaystyle {1,,dots ,,n}} such that ∑ i ∈ S k a i ≤ V {displaystyle sum _{iin S_{k}}a_{i}leq V} for all k = 1 , … , B . {displaystyle k=1,,dots ,,B.} A solution is optimal if it has minimal B {displaystyle B} . The B {displaystyle B} -value for an optimal solution is denoted OPT below. A possible Integer Linear Programming formulation of the problem is: where y i = 1 {displaystyle y_{i}=1} if bin i {displaystyle i} is used and x i j = 1 {displaystyle x_{ij}=1} if item j {displaystyle j} is put into bin i {displaystyle i} . This is a straightforward greedy approximation algorithm. The algorithm processes the items in arbitrary order. For each item, it attempts to place the item in the first bin that can accommodate the item. If no bin is found, it opens a new bin and puts the item within the new bin. This algorithm achieves an approximation factor of 2; the number of bins used by this algorithm is no more than twice the optimal number of bins. In other words, it is impossible for 2 bins to be at most half full because such a possibility implies that at some point, exactly one bin was at most half full and a new one was opened to accommodate an item of size at most V/2. But since the first one has at least a space of V / 2, the algorithm will not open a new bin for any item whose size is at most V / 2. Only after the bin fills with more than V / 2 or if an item with a size larger than V / 2 arrives, the algorithm may open a new bin.

[ "Algorithm", "Combinatorics", "Discrete mathematics", "Mathematical optimization", "Bin", "Square packing in a square", "vector packing", "strip packing problem", "strip packing" ]
Parent Topic
Child Topic
    No Parent Topic