基于线上运筹优化公式推导,概述一下如何用二分搜索来运筹求解 λ \lambda λ 。
原问题 ∑ i m a x j ( p i j − λ c i j ) \sum_{i} max_{j} (p_{ij} - \lambda c_{ij}) ∑imaxj(pij−λcij) 是一个求解 λ \lambda λ 最优值的线性规划问题,其目标是找到使得目标函数最大化的 λ \lambda λ。我们可以使用二分搜索来求解。
算法描述
输入参数
- p i j p_{ij} pij:核销率
- c i j c_{ij} cij:发券成本
输出
- 求解值 λ \lambda λ
算法步骤
- 初始化搜索区间:由于 λ ≥ 0 \lambda \geq 0 λ≥0,设置左右初始区间 [ L , R ] [L, R] [L,R] ,其中 L = 0 L=0 L=0, R R R 可以是任意足够大的数
- 二分循环:(直到
∣
R
−
L
∣
≤
ϵ
|R-L| \leq \epsilon
∣R−L∣≤ϵ:
- m = L + R 2 m = \frac{L+R}{2} m=2L+R
- 遍历每个用户 i i i,找出券 j j j,使得 m a x j ( p i j − m c i j ) max_{j} (p_{ij} - m c_{ij}) maxj(pij−mcij) 最大化
- 如果 ∑ i m a x j ( p i j − m c i j ) > C \sum_{i} max_{j} (p_{ij} - m c_{ij}) \gt C ∑imaxj(pij−mcij)>C,表明 m m m 过小,则更新搜索区间 L = m L = m L=m,否则 R = m R = m R=m
- 返回结果: λ = m \lambda = m λ=m
751

被折叠的 条评论
为什么被折叠?



