I'm re-writing an application that takes x amount of pieces and tries to fit them best to the right number and size of stock material. So given 2 pieces at one size 1 at a larger size and 3 at a larger size find the most efficient cuts from the stock material.

My Problem:
The way we currently handle this is to calculate linear footage and then step through a piece array, twice. Attempting to match the footage of the piece to the smallest core we can, along with as many other pieces possibly. I would like to optimize this as much as possible, and I'm wondering if there is some sort of equation to figure this out. I did a few searches but its hard to know what to search for.

I apologize for not being able to post code, but its long and messy anyways. Any help is appreciated.