General Suggestions

 

The running time of you algorithm depends on the Number of Demand Pieces, Number of Repository Pieces and Optimization Level.

 

Providing, as input, multiple pieces of the same size will increase the performance of the algorithm.

If all rectangles to be cut have the same size, the algorithm will be very fast. You may provide as input even 100000 pieces of the same size, and the speed of the algorithm will be the same as in the case of providing 100 pieces.

 

The OptimizationLevel can be anywhere between 1 and 2^31 -1.

However, increasing the optimization level will decrease the speed of your algorithm.

An OptimizationLevel = 100 should be good enough for most of the purposes.

 

If you need to optimize many different pieces (let's say 10000) it is better to set the OptimizationLevel to a small value.

 

This will not provide always the best optimization possible, but it will run in reasonable amount of time.