1 背景
我们用一个在营销场景下可能用到的例子来进行讲解。很多公司在营销策略中会考虑通过抵扣券发放给用户,进而刺激用户来消费。但是下发卡券是有成本的,一般每次营销预算成本是有限的,公司希望在固定的成本下刺激最多的用户人数去核销。我们就以这样一个场景为例,在有多个约束情况下,通过选择适当数量的卡券分配给各个用户群体,以最大化核销人数。这样的问题我们可以使用线性规划方法求解这个。
2 问题定义
2.1 输入
- A[m][n]: 核销率矩阵,表示第i个用户群在第j张卡券的核销率
- P[m]: 每个人群的总数量
- G: 卡券的总成本预算
- T[n]: 每个卡券的服务类型,假设我们有加油,洗车,充电三种服务,每种服务分别对应的值表示1,2,3,则该数组的每个元素取值范围为{1,2,3}
- R[n]: 每张卡券的面额
- wash_r: 投放给洗车券的人数不少于加油人数的比例
- charge_r:投放给充电券的人数不少于加油人数的比例
2.2 输出
- B[m][n]: 表示在第i个人群中投入第j张卡券的人数数量
2.3 目标
- 最大化核销人数
Maximize Q = ∑ i = 0 m ∑ j = 0 n B [ i ] [ j ] \text{Maximize } Q = \sum_{i=0}^m \sum_{j=0}^n B[i][j] Maximize Q=i=0∑mj=0∑nB[i][j]
3 约束条件
-
人群数量约束
∑ j = 0 n B [ i ] [ j ] ≤ P [ i ] , ∀ i \sum_{j=0}^nB[i][j] \leq P[i], \forall i j=0∑nB[i][j]≤P[i],∀i -
总成本约束
∑ i = 0 m ∑ j = 0 n B [ i ] [ j ] × A [ i ] [ j ] × R [ j ] ≤ G \sum_{i=0}^m \sum_{j=0}^n B[i][j] \times A[i][j] \times R[j] \leq G i=0∑mj=0∑n