I face the following problem:

We receive quotes from different forwarding companies for the shipping costs per parcel. Let's call these quotes Q1 … Qk.

Each offer is an M x N matrix with weight categories of packets along one axis and size categories along the other axis.

We get a list of packages with the appropriate weights and sizes, so we can also convert the packages to be sent based on the categorization of each package into a 2D matrix of size M x N and each cell must contain the appropriate number of packets in this weight + size category. Let's call this matrix P.

The total shipping cost for all packages, should we choose a shipping company, & # 39; i & # 39; is the sum of (Qi x P), where & # 39; x & # 39; is the elementwise multiplication of the two matrices.

We need to find a subset of shipping companies (or quotes) so that the total shipping cost is minimal.

I understand that a brute-force algorithm that tries all combinations will not work because the number of combinations explodes when & # 39; w & # 39; begins to increase. In addition, I've also convinced myself that I can not iteratively build a solution by first picking two best quotes, grouping them together, and then adding one more, until I & # 39; w & # 39; reach.

Can someone help me to find the appropriate problem class and propose a solution?