一个关于营销互斥的问题

385 阅读1分钟

我是一个产品经理,现在有个工作中的问题想请教一下:

假设系统支持A、B、C、D、E多种类型的活动(比如满减优惠、限时折扣、会员优惠……)。 每个活动有自己的限制条件(比如门槛金额、商品类型、时间……) 不同的活动可以分别设置该活动优惠和其他活动优惠是否可以叠加。

比如:

  • A优惠可以和C、D、E优惠叠加;
  • B优惠可以和A、B、C优惠叠加;
  • C优惠可以和B、D优惠叠加;
  • D优惠可以和A、C、E优惠叠加;
  • E优惠可以和ABCD优惠叠加;

当一笔订单同时满足多个活动的条件时(极端情况是满足所有活动的条件),那么该笔订单可以有很多种不同的优惠组合,比如:

  • ADE
  • BC
  • CD ……

实际的情况还会更复杂。因为每一类活动下都可能有多个活动(比如A类活动,可能有A1,A2,A3,A4……等十几个互斥规则不一样的活动)。有什么好的算法,可以快速的找出一笔订单可能的优惠组合,并选出最优的优惠组合呢?