基于线性规划的“最优定价策略”建模与求解示例
一、问题描述
一家公司生产并销售一种产品,其生产成本为每单位 \(c\) 元。市场对该产品的需求与价格相关:设价格为 \(p\) 时,需求函数为 \(D(p) = a - b \cdot p\),其中 \(a>0, b>0\) 为已知常数,且 \(a > b \cdot c\) 确保有利润空间。公司要确定一个价格 \(p\),使得利润最大化。
已知条件:
- 生产成本 \(c = 4\) 元/单位
- 需求函数参数 \(a = 100,\ b = 2\)
- 价格 \(p\) 需在合理范围 \([c, a/b]\) 内(否则需求非正)
二、建立线性规划模型
1. 利润表达式
利润 = 收入 - 成本
收入 = \(p \cdot D(p) = p \cdot (a - b p)\)
成本 = \(c \cdot D(p) = c \cdot (a - b p)\)
因此利润函数为:
\[\pi(p) = (p - c)(a - b p) \]
展开:
\[\pi(p) = -b p^2 + (a + b c) p - a c \]
由于是 \(p\) 的二次函数,在 \(p\) 无约束时可直接用导数求极值。但若存在分段定价或多产品联合定价等复杂约束,需用线性规划建模。下面我们增加约束将其转化为线性规划问题。
2. 引入辅助变量与线性化技巧
假设公司考虑两种定价策略:
- 低价策略 \(p_1\),适用市场 A,需求 \(D_1(p_1) = a_1 - b_1 p_1\)
- 高价策略 \(p_2\),适用市场 B,需求 \(D_2(p_2) = a_2 - b_2 p_2\)
但总产量有限制:\(D_1(p_1) + D_2(p_2) \le M\)(生产能力限制)。
设 \(x_1 = D_1(p_1)\),\(x_2 = D_2(p_2)\),则 \(p_1 = \frac{a_1 - x_1}{b_1}\),\(p_2 = \frac{a_2 - x_2}{b_2}\)。
利润为:
\[\text{Profit} = (p_1 - c)x_1 + (p_2 - c)x_2 \]
代入 \(p_1, p_2\):
\[\text{Profit} = \left(\frac{a_1 - x_1}{b_1} - c\right)x_1 + \left(\frac{a_2 - x_2}{b_2} - c\right)x_2 \]
展开:
\[= \left(\frac{a_1}{b_1} - c\right)x_1 - \frac{1}{b_1}x_1^2 + \left(\frac{a_2}{b_2} - c\right)x_2 - \frac{1}{b_2}x_2^2 \]
这是关于 \(x_1,x_2\) 的二次函数,但若对 \(x_i\) 做分段线性化,可转为线性规划。
3. 分段线性化示例
设 \(x_1\) 的范围为 \([0, 50]\),将其分为 5 段,每段长度 10。
定义变量 \(z_{1j}\) 表示 \(x_1\) 在第 \(j\) 段所占比例,\(j=1,\dots,5\)。
设第 \(j\) 段起点为 \(L_j\),终点为 \(U_j\),对应价格为 \(P_j = \frac{a_1 - (L_j+U_j)/2}{b_1}\)(近似线性化)。
则 \(x_1 = \sum_{j=1}^5 (L_j + \theta_j (U_j - L_j))\),其中 \(0 \le \theta_j \le 1\) 且至多两个相邻 \(\theta_j\) 非零(分段线性常用SOS2约束,在LP中可用额外变量和约束近似)。
简化:直接假设 \(x_1\) 和 \(x_2\) 的利润函数用分段的线性函数近似:
设利润函数 \(f_i(x_i) = (a_i/b_i - c)x_i - (1/b_i)x_i^2\) 是凹函数,可用 \(K\) 个割线近似其上界,转为线性规划。
4. 具体数值模型
设 \(a_1=60, b_1=1.5, a_2=40, b_2=1, c=4, M=50\)。
则 \(f_1(x_1) = (60/1.5 - 4)x_1 - (1/1.5)x_1^2 = 36x_1 - 0.6667x_1^2\)
\(f_2(x_2) = (40/1 - 4)x_2 - (1/1)x_2^2 = 36x_2 - x_2^2\)
在 \(x_i \in [0,30]\) 内分别取 3 个点线性插值:
对 \(f_1\):点 \((0,0), (15, 36\times 15 - 0.6667\times 225 = 540 - 150 = 390), (30, 36\times 30 - 0.6667\times 900 = 1080 - 600 = 480)\)
得到两段直线:
- 段1:\(0 \le x_1 \le 15\),斜率 \(390/15 = 26\),截距 0 → 利润近似 \(26x_1\)
- 段2:\(15 \le x_1 \le 30\),斜率 \((480-390)/(30-15) = 90/15 = 6\),截距 \(390 - 6\times 15 = 300\) → 利润近似 \(6x_1 + 300\)
同理 \(f_2\):点 \((0,0), (15, 36\times 15 - 225 = 315), (30, 36\times 30 - 900 = 180)\)
- 段1:\(0 \le x_2 \le 15\),斜率 \(315/15 = 21\),利润近似 \(21x_2\)
- 段2:\(15 \le x_2 \le 30\),斜率 \((180-315)/(30-15) = -135/15 = -9\),截距 \(315 - (-9)\times 15 = 450\) → 利润近似 \(-9x_2 + 450\)
5. 最终线性规划模型
引入辅助变量 \(y_1,y_2\) 表示 \(x_1,x_2\) 所在段,用凸组合表示:
设 \(x_1 = 0\cdot\lambda_{10} + 15\lambda_{11} + 30\lambda_{12}\)
利润1近似 = \(0\cdot\lambda_{10} + 390\lambda_{11} + 480\lambda_{12}\)
同理 \(x_2 = 0\cdot\lambda_{20} + 15\lambda_{21} + 30\lambda_{22}\)
利润2近似 = \(0\cdot\lambda_{20} + 315\lambda_{21} + 180\lambda_{22}\)
约束:
- \(\lambda_{10}+\lambda_{11}+\lambda_{12}=1\),\(\lambda_{20}+\lambda_{21}+\lambda_{22}=1\)
- \(0 \le \lambda_{ij} \le 1\),且每个 \(i\) 的 \(\lambda_{i0},\lambda_{i1},\lambda_{i2}\) 中至多两个相邻非零(SOS2约束,可用二进制变量和附加约束实现,但若允许分段线性凸函数,则直接取角点可行)
- 生产能力:\(x_1+x_2 \le 50\)
目标:
\[\max\ 390\lambda_{11} + 480\lambda_{12} + 315\lambda_{21} + 180\lambda_{22} \]
由于 \(f_1\) 是凹函数,其分段线性化是精确表示(在选定的断点上),因此线性规划可给出原二次利润函数的最优解。
三、求解步骤
-
忽略SOS2约束,先解线性规划(因为凹函数最大化在线性约束下,最优解会在断点上,自动满足至多两个相邻非零)。
-
写出单纯形表或使用线性规划求解器。
-
求解得:
- 检查利润函数,显然 \(f_1\) 在 \(x_1=15\) 到 \(x_1=30\) 增加缓慢,\(f_2\) 在 \(x_2>15\) 后下降,因此尽量让 \(x_1\) 接近 30,\(x_2\) 接近 15,但受 \(x_1+x_2\le 50\) 限制。
- 试 \(x_1=30\),则 \(x_2\le 20\),但 \(x_2=15\) 时利润2=315,\(x_2=20\) 时用插值:\(20 = 15 + 5\),对应利润 \(315 + 5\times(-9) = 270\)。
- 总利润 = 480 + 315 = 795(当 \(x_1=30,x_2=15\))
- 若 \(x_1=25\),利润1 = 390 + 10×6 = 450,\(x_2=25\) 利润2 = 315 + 10×(-9) = 225,总=675,更小。
- 因此最优为 \(x_1=30, x_2=15\),对应价格 \(p_1 = (60-30)/1.5=20\),\(p_2=(40-15)/1=25\)。
-
验证生产能力:\(30+15=45 \le 50\),满足。
四、结果解释
最优定价策略:
- 市场A:价格 20 元,销量 30 单位,利润 = (20-4)×30=480 元
- 市场B:价格 25 元,销量 15 单位,利润 = (25-4)×15=315 元
总利润 795 元,产能剩余 5 单位。
五、扩展讨论
- 若需求函数非线性更强,可分更多段逼近。
- 若有多个市场,可建立大规模线性规划模型,用单纯形法或内点法求解。
- 此模型本质是价格歧视问题的线性规划近似,适用于可分割市场且需求函数为线性或可线性化的情况。
通过此例,你将需求曲线、价格、成本、产能整合为线性规划,并利用分段线性化处理二次利润函数,从而在复杂约束下得到最优定价。