1. A non-transitory computer readable medium storing instructions that, when executed by a processor, perform a process for optimally packing items into at least one resource, the process comprising: receiving at least one of items, resources, or parameters; setting up a set partitioning mixed integer programming (MIP) using the received items, resources, or parameters; solving a linear programming (LP) relaxation of the MIP; generating new packings; checking whether new packings have been generated; when no new packings have been generated, solving a final MIP; and creating a model of the at least one resource packed according to the final MIP.