Solving Pallet loading Problem with Real-World Constraints