The pallet loading problem: Three-dimensional bin packing with practical constraints