I am not a mathematician, but
bin-packing problems are
NP-hard, and any algorithm you choose will only approximate the optimal solution (potentially to arbitrary precision if your problem is formally identical to bin-packing). The only way to guarantee the optimal solution is to perform an exhaustive (impractical) search of every possible combination. How will you calculate when your solution is 'good enough'?