Geoffrey,
Thanks for the quick response.
As I'm learning more about my scenario, it feels more like a mixed-integer problem
than a combinatorial problem. The objective function is linear in the decision variables.
I would model the decision variables as the quantities of each item from each vendor.
The conditional offers I could model as a separate vendor/bid, with a binary decision
variable for "condition met?" and inequalities to constrain the quantities that
depend on the binary variable. Some of the global constraints can be modeled in the same
way, like "at most two vendors."
It sounds like there are some advantages to using Drools Planner in terms of readability
and maintainability of the relationships and constraints - you have the full expressive
power of DRL (or Java), and are not limited to inequalities. That could make it easier
to program for new types of rules or constraints later.
Are there any advantages to using Drools Planner from a computational-complexity
standpoint as well? Would it *hurt* to use in terms of CPU/memory, or even learning
curve, for a problem that is possibly not combinatorial, and might be solvable with other
means?
Also - are you aware of any case studies or examples of Drools Planner being used in the
purchasing domain like this?
Thanks again!
--Bill
From: rules-users-bounces(a)lists.jboss.org [mailto:rules-users-bounces@lists.jboss.org] On
Behalf Of Geoffrey De Smet
Sent: Thursday, October 11, 2012 10:35 AM
To: Rules Users List
Subject: Re: [rules-users] Drools Planner for purchasing optimization - good fit for
problem?
[...]
- If you want to upscale, go Metaheuristics (for example with Planner). If you want to
downscale, linear programming might be a better fit. (Compo's like ROADEF 2012 assert
this statement).
- LP will require you to write your constraints as mathematical equitations based on
arrays and primitives, for example "x < y * 1.21". Planner uses a declarative
OO approach using drools rules (or even just plain Java), for example "Invoice ($x
< yWithVAT)".
- If you have different conditional price types, you might want to look into using a
drools decision table to easily declare that conditional logic - and use that as in
Planner. Especially if those rules change often.
Thanks for any help you can give.
--Bill
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org<mailto:rules-users@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-users