Description
Fast 1d Bin Packing.
Description
Implements the First Fit Decreasing algorithm to achieve one dimensional heuristic bin packing. Runtime is of order O(n log(n)) where n is the number of items to pack. See "The Art of Computer Programming Vol. 1" by Donald E. Knuth (1997, ISBN: 0201896834) for more details.
README.md
binpackr
This package implements the First Fit Decreasing algorithm to achieve one dimensional heuristic bin packing. Its run time is of order $\mathcal{O}(n,log(n))$ where $n$ is the number of items to pack.
Installation
You can install the latest CRAN release of binpackr with:
install.packages("binpackr")
Alternatively, you can install the development version of binpackr from GitHub with:
# install.packages("devtools")
devtools::install_github("lschneiderbauer/binpackr")
Example
This is a basic example which shows to retrieve the solution for the bin packing problem.
library(binpackr)
# Generate a vector of item sizes
set.seed(42)
x <- sample(100, 1000, replace = TRUE)
# Pack those items into bins of capacity 130
bins <- bin_pack_ffd(x, cap = 130)
# Number of bins needed to pack the items
print(length(unique(bins)))
#> [1] 389
Benchmarks
The implementation in this package is compared to an implementation of the same algorithm in the BBmisc package. The authors made it clear that speed was none of their concern. BBmisc’s implementation is written in R while this package uses a C++ implementation.