bin_packing_3d
This crate solves the problem of "fitting smaller boxes inside of a larger box" using a three dimensional fitting algorithm.
The algorithm leverages a First Fit Decreasing greedy strategy, which some rotational optimizations.
Usage:
use Bin;
use Item;
use packing_algorithm;
let deck = new;
let die = new;
let items = vec!;
let packed_items = packing_algorithm;
assert_eq!;
Limitations:
This algorithm solves a constrained version of the 3D bin packing problem. As such, we have the following limitations:
-
The items we are packing, and the bins that we are packing them into, are limited to cuboid shapes
-
As an NP-Hard problem, this algorithm does not attempt to find the optimal solution
Acknowledgements:
The algorithm leverages a rotational optimization when packing items which are less than half the length of a bin's side, as proposed in the paper titled "The Three-Dimensional Bin Packing Problem" (Martello, 1997): https://www.jstor.org/stable/pdf/223143.pdf, page 257