Best-fit bin packing

Best-fit is an online algorithm for bin packing. Its input is a list of items of different sizes. Its output is a packing - a partition of the items into bins of fixed capacity, such that the sum of sizes of items in each bin is at most the capacity. Ideally, we would like to use as few bins as possible, but minimizing the number of bins is an NP-hard problem. The best-fit algorithm uses the following heuristic:

  • It keeps a list of open bins, which is initially empty.
  • When an item arrives, it finds the bin with the maximum load into which the item can fit, if any. The load of a bin is defined as the sum of sizes of existing items in the bin before placing the new item.
    • If such a bin is found, the new item is placed inside it.
    • Otherwise, a new bin is opened and the coming item is placed inside it.

Approximation ratio

Denote by BF(L) the number of bins used by Best-Fit, and by OPT(L) the optimal number of bins possible for the list L. The analysis of BF(L) was done in several steps.

  • The first upper bound of B F ( L ) 1.7 O P T + 3 {\displaystyle BF(L)\leq 1.7\mathrm {OPT} +3} was proven by Ullman[1] in 1971.
  • An improved upper bound B F ( L ) 1.7 O P T + 2 {\displaystyle BF(L)\leq 1.7\mathrm {OPT} +2} was proved by Garey, Graham and Ullman,[2] Johnson and Demers.[3]
  • Afterward, it was improved by Garey, Graham, Johnson, Ullman, Yao and Chi-Chih[4] to B F ( L ) 1.7 O P T {\displaystyle BF(L)\leq \lceil 1.7\mathrm {OPT} \rceil } .
  • Finally this bound was improved to F F ( L ) 1.7 O P T {\displaystyle FF(L)\leq \lfloor 1.7\mathrm {OPT} \rfloor } by Dósa and Sgall.[5] They also present an example input list L {\displaystyle L} , for that B F ( L ) {\displaystyle BF(L)} matches this bound.

Worst-fit

Worst-Fit is a "dual" algorithm to best-fit: it tries to put the next item in the bin with minimum load.

This algorithm can behave as badly as Next-Fit, and will do so on the worst-case list for that N F ( L ) = 2 O P T ( L ) 2 {\displaystyle NF(L)=2\cdot \mathrm {OPT} (L)-2} .[6] Furthermore, it holds that R W F ( size α ) = R N F ( size α ) {\displaystyle R_{WF}^{\infty }({\text{size}}\leq \alpha )=R_{NF}^{\infty }({\text{size}}\leq \alpha )} .

Since Worst-Fit is an AnyFit-algorithm, there exists an AnyFit-algorithm such that R A F ( α ) = R N F ( α ) {\displaystyle R_{AF}^{\infty }(\alpha )=R_{NF}^{\infty }(\alpha )} .[6]

References

  1. ^ Ullman, J. D. (1971). "The performance of a memory allocation algorithm". Technical Report 100 Princeton Univ.
  2. ^ Garey, M. R; Graham, R. L; Ullman, J. D. (1972). "Worst-case analysis of memory allocation algorithms". Proceedings of the fourth annual ACM symposium on Theory of computing - STOC '72. pp. 143–150. doi:10.1145/800152.804907. S2CID 26654056.
  3. ^ David S. Johnson, Alan J. Demers, Jeffrey D. Ullman, M. R. Garey, Ronald L. Graham. Worst-Case Performance Bounds for Simple One-Dimensional Packing Algorithms. SICOMP, Volume 3, Issue 4. 1974.
  4. ^ Garey, M. R; Graham, R. L; Johnson, D. S; Yao, Andrew Chi-Chih (1976). "Resource constrained scheduling as generalized bin packing". Journal of Combinatorial Theory, Series A. 21 (3): 257–298. doi:10.1016/0097-3165(76)90001-7. ISSN 0097-3165.
  5. ^ György, Dósa; Sgall, Jirí (2014). "Optimal Analysis of Best Fit Bin Packing". Automata, Languages, and Programming. Lecture Notes in Computer Science. Vol. 8572. pp. 429–441. doi:10.1007/978-3-662-43948-7_36. ISBN 978-3-662-43947-0.
  6. ^ a b Johnson, David S (1973). "Near-optimal bin packing algorithms" (PDF). Massachusetts Institute of Technology.