This document discusses packing problems and how to formulate and solve them as mixed integer linear programs (MILPs) using the Gurobi optimization solver. Packing problems involve fitting objects into containers in the most dense packing possible or using the fewest number of containers. The document provides examples of packing problems and presents an MILP formulation for packing rectangles. It explains why MILPs are suitable for packing problems and how to model the constraints, variables, and objective function. Finally, it outlines the basic steps for solving a packing problem MILP using Gurobi: defining the model struct, modifying parameters, running the optimization, and printing the solution.