Algorithm to minimize the number of printing plates when printing sheets of stickers
I am working on an algorithm for optimizing the costs of a printing company by solving a problem they face. The problem is similar to knapsack problem but with a twist, instead of minimizing the number of containers to fit the content, we need to optimize the number of unique containers that we need to use. The problem is that the printing company first needs to design and develop printing plates which are then used for printing sheets. Printing sheets are cheap but printing plates are expensive so the company has to minimize the number of plates that they need to create inorder to achieve the desired outcome.
In simple terms, there are X different types of stickers that need to be printed in some quantity. Each printing plate can accomodate N stickers. We need an algorithm that can calculate the minimum amount of plates we will need inorder to print the given stickers (A printing plate can be used infinite times to print a sheet). A simple unoptimized approach to this is to create X printing plates and accomodate N number of stickers in each plate i.e if plate size is 10 and there are 2 different types of stickers and we need to print A(200) and B(300), we can simply create 2 plates, 1st one with 10 A stickers and second one with 10 B stickers and then we can print them according to required quantity (20 sheets for plate 1 and 30 sheets for plate 2). However, a better approach would be to use 1 plate with 4 A stickers and 6 B stickers and then print 50 sheets to achieve the required quantity.