A new algorithm is given for the two-dimensional translational containment problem: find translations for k polygons which place them inside a polygonal container without overlapping. Both the polygons and the container can be non-convex. The algorithm is based on mathematical programming principles. The containment algorithm is generalized to solve minimal enclosure problems: find the minimal area enclosing square or minimal area enclosing rectangle for k translating polygons. The containment algorithm consists of new algorithms for restriction, evaluation, and subdivision of two-dimensional configuration spaces. Restriction establishes lower bounds through relaxation and the solution of linear programs. Evaluation establishes upper bounds by finding potential solutions. Subdivision branches, when necessary, by introducing a cutting plane. The algorithm shows that either the upper bound of the objective (overlap) is exactly zero or the lower bound is greater than zero. Hence, it gives an exact solution to the containment problem. Experiments show that new containment algorithm clearly outperforms purely geometric containment algorithms. For data sets from the apparel industry, it can solve containment for up to ten non-convex polygons in practice. An implementation of the algorithm given in this paper has been licensed by Gerber Garment Technologies, the largest provider of textile CAD/CAM software in the US, and they are incorporating it into an existing CAD/CAM software product.