binPack {BBmisc}R Documentation

Simple bin packing.

Description

Maps numeric items in x into groups with sum less or equal than capacity. A very simple greedy algorithm is used, which is not really optimized for speed. This is a convenience function for smaller vectors, not a competetive solver for the real binbacking problem. If an element of x exceeds capacity, an error is thrown.

Usage

binPack(x, capacity)

Arguments

x

[numeric]
Numeric vector of elements to group.

capacity

[numeric(1)]
Maximum capacity of each bin, i.e., elements will be grouped so their sum does not exceed this limit.

Value

[integer]. Integer with values “1” to “n.bins” indicating bin membership.

Examples

x = 1:10
bp = binPack(x, 11)
xs = split(x, bp)
print(xs)
## $`1`
## [1]  1 10
## 
## $`2`
## [1] 2 9
## 
## $`3`
## [1] 3 8
## 
## $`4`
## [1] 4 7
## 
## $`5`
## [1] 5 6
print(sapply(xs, sum))
##  1  2  3  4  5 
## 11 11 11 11 11

[Package BBmisc version 1.7 Index]