I have the feeling that this is an instance of a NP-hard problem but it's been a while since I've been in school I'm having a difficult time verifying which one it would reduce to. If I have a Collection of sales, where each sale has a price (weight) as well as a set products which the sale applies with cardinality > 0 then find a collection of sales with the greatest combined price, where no sale shares a product with any other sale (you cannot have the multiple sales apply to the same product).
Yes, this is a generalization of a known NP-Complete problem: Set Packing.
This is a generalization of the known problem, because of the weights, which could vary in your problem, but if you set weight(sale) = #products_in_sale
, you get exactly the Set Packing optimization problem.1
This means, your problem is at least as hard as Set Packing, and thus NP-Hard.
(1) This is basically the polynomial reduction, given an instance of set packing, you generate an instance of your problem, with weight(sale) = #products_in_sale
, and if the latter is solveable in polynomial time, so is the former.