EDIT (31-12-2019) - https://jonathan.overholt.org/projects/cutlist
Above is the link of the free project which is what exactly I am looking for. I am just looking for proper guidance so that I can make it work.
I am working on minimizing the wastage of aluminium extrusion cutting for Aluminium Sliding Window Fabricators and I am not able to figure out which Algorithm/Data Structure I should go with for the problem.
I have done basic research and found that the problem falls in Cutting Stock Problem (Also called One dimensional cutting problem), Linear Programming Problem, Greedy Algorithm. BUT I am unable to decide which one I should go with and also how to start with.
Brief about the problem :
Basically the window fabricators have 3 sizes of material options to purchase.
12 | 15 | 16 (IN FT)
Now the input would be the size of Window.
WIDTH x HEIGHT (IN FT)
1) 6 x 8 - 10 Windows
2) 9 x 3 - 20 Windows
The calculation is (2 x Width) + (2 x Height). So from the above sizes of window, they need extrusion as follow.
1) 6' (FT) Size Pieces -> 2 x 10 = 20
2) 8' (FT) Size Pieces -> 2 x 10 = 20
3) 9' (FT) Size Pieces -> 2 x 20 = 40
4) 3' (FT) Size Pieces -> 2 x 20 = 40
Using knapsack, we can find out the combination but it has restriction of having size to 1 only whereas here in my case I have 3 different sizes available out of which I would like to generate the best optimum combination for the cutting stock problem.
I would need help in how should I proceed for the above problem with respect to data structure and algorithm in Java or any other language. My knowledge in Maths is not up to the mark and that's why I am facing issue in implementing the logic in my project and like to get some help from the community.