我希望使用optaplanner帮助计算购买商品清单的用户的最佳折扣(例如购物车)。
这听起来像个好主意吗?有没试过呢?任何帮助将不胜感激。
考虑:
此客户可以享受多项促销折扣,包括:百分比折扣和购买一对一免费
-
目标:我想确定以特定顺序应用的促销活动会为用户带来最大折扣。
我看过两个drools-expert(考虑蛮力选项)和optaplanner。使用optaplanner我不知道如何做到以下几点:
答案 0 :(得分:0)
这样的事情应该有效。它允许在多个项目上使用相同的促销。添加buy-3-get-1需要的硬约束
class ItemAssignment {
Item item;
@PlanningVariable(nullable = true, ...)
Promotion promotion;
}
为只能使用一次的促销添加硬约束。添加软约束以激活需要购买3件商品的促销。我在该软约束中执行了insertLogical(new Discount),因此其他规则可以变得足够智能,以确定已经应用了哪些促销。
我有点怀疑,如果metaheuristics是最好的方法,假设你的问题非常小。除非有人一次购买超过10件物品,否则我认为暴力(在optaplanner中实施)或分支和绑定(在optaplanner中尚未实施)可能是更好的选择......