I'm trying to understand whether Drools Planner is a good fit for a purchasing optimization problem.

 

The problem is something like this: there are X different items, each of which can be purchased from Y different vendors at different prices.  The objective variable/function to minimize is the total amount purchased (sum(qty_i * price_i)).

 

Some vendor prices are conditional - only valid if you purchase more than some minimum threshold, or if you purchase more than some total quantity from that vendor.  There are some additional constraints like dual-sourcing

- for some item x_i, exactly two vendors must be selected. 

 

I feel like you *could* probably solve this problem in Drools Planner, but I'm not sure if it's the best way, or if a more traditional solver approach would be better.  It feels more like a linear programming problem at its core, and I'm having a hard time figuring out where the boundary is - what kind of constraint would make the problem "non-convex" or "non-smooth" to the point where a local search (tabu, evolutionary etc.) is required?

 

Thanks for any help you can give.

--Bill