For a general overview visit https://steinbrecher-bayern.de/projects/programs.html#woodPacker.
In the general case such a problem boils down to a rectangle packing problem which optimizes for the criteria in the motivation section. Unfortunately the rectangle packing problem is NP-hard. However, since a carpenter works with wood there are several restrictions to the allowed solutions for a rectangle packing algorithm.
- At any point there has to be at least one line on the wooden board to cut which is continues (otherwise a carpenter can not easily cut through)
- The rectangles are often not allowed to be rotated (since the running direction of the wood grain is important)
Luckily, these restrictions should be enough to make an appropriate rectangle packing algorithm feasible
Finding an optimal cutting plan depends on multiple criteria including how expensive the initial plank is and how long it should take to cut all the pieces. Hence there is no clear "perfect" cutting plan and the optimization criteria have to be exposed to the user in a way such that users understand the criteria and can utilize them.