A global optimization algorithm for the three dimensional packing problem