Packing problems are a class of optimization problems in
mathematics that involve attempting to pack objects together into containers. The goal is to either pack a single container as densely as possible or pack all objects using as few containers as possible. Many of these problems can be related to real life
packaging, storage and transportation issues. Each packing problem has a dual
covering problem, which asks how many of the same objects are required to completely cover every region of the container, where objects are allowed to overlap.