好的,我将为你讲解一个关于线性规划对偶理论的经济解释——基于线性规划的“生产计划与资源定价”对偶问题经济意义剖析。这是一个经典的线性规划应用,侧重于理解对偶变量的直观经济含义。
题目描述
假设你是一家小型工厂的经理,工厂生产两种产品:产品A和产品B。
- 生产资源:生产需要消耗三种有限的资源:机器工时、人工工时和原材料。
- 资源限制与单件消耗:
- 机器工时总共有100小时。生产一件产品A消耗2小时,一件产品B消耗4小时。
- 人工工时总共有80小时。生产一件产品A消耗3小时,一件产品B消耗2小时。
- 原材料总共有60公斤。生产一件产品A消耗1公斤,一件产品B消耗3公斤。
- 利润:每售出一件产品A获利30元,每售出一件产品B获利40元。
作为经理,你的目标是制定一个生产计划(产品A和B各生产多少件),在不超过资源限制的前提下,最大化总利润。
解题过程
第一步:建立原始线性规划模型(生产计划问题)
-
定义决策变量:
- 设 \(x_1\) = 生产产品A的数量(件)
- 设 \(x_2\) = 生产产品B的数量(件)
-
建立目标函数:
总利润 = \(30x_1 + 40x_2\)。我们的目标是最大化它:
\[ \text{Maximize } Z = 30x_1 + 40x_2 \]
- 建立约束条件(资源限制):
- 机器工时约束:\(2x_1 + 4x_2 \leq 100\)
- 人工工时约束:\(3x_1 + 2x_2 \leq 80\)
- 原材料约束:\(x_1 + 3x_2 \leq 60\)
- 非负约束:\(x_1 \geq 0, x_2 \geq 0\)(生产数量不能为负)
至此,我们得到了原始线性规划问题:
\[\begin{aligned} \max \quad & 30x_1 + 40x_2 \\ \text{s.t.} \quad & 2x_1 + 4x_2 \leq 100 \quad \text{(机器工时)} \\ & 3x_1 + 2x_2 \leq 80 \quad \text{(人工工时)} \\ & x_1 + 3x_2 \leq 60 \quad \text{(原材料)} \\ & x_1, x_2 \geq 0 \end{aligned} \]
这个模型可以直接用单纯形法求解,最优解为 \(x_1^* = 20, x_2^* = 10\),最大利润 \(Z^* = 30*20 + 40*10 = 1000\) 元。
第二步:构造对偶线性规划模型(资源定价问题)
现在,我们从一个资源供应商或工厂评估者的角度来思考。
假设有一个外部公司,它想打包购买你工厂的所有资源(100机器工时,80人工工时,60公斤原材料)。它需要为每种资源设定一个内部影子价格(单位:元/小时或元/公斤),使得:
-
它购买资源的总成本对工厂有吸引力(即不低于工厂自己组织生产能获得的最大利润)。
-
在这个前提下,它自己的总采购成本尽可能低。
-
定义对偶变量:
- 设 \(y_1\) = 机器工时的“影子价格”(元/小时)
- 设 \(y_2\) = 人工工时的“影子价格”(元/小时)
- 设 \(y_3\) = 原材料的“影子价格”(元/公斤)
-
建立对偶目标函数:
供应商的总采购成本 = \(100y_1 + 80y_2 + 60y_3\)。供应商希望最小化这个成本:
\[ \text{Minimize } W = 100y_1 + 80y_2 + 60y_3 \]
- 建立对偶约束条件(竞争力约束):
供应商的出价必须让工厂觉得“卖掉资源”不比“自己生产”差。- 对于产品A:工厂自己生产一件A,能赚30元。如果卖掉生产一件A所需的资源(2小时机器,3小时人工,1公斤原料),获得的钱是 \(2y_1 + 3y_2 + 1y_3\)。为了让工厂愿意出售资源而不是生产,必须满足:\(2y_1 + 3y_2 + 1y_3 \geq 30\)。
- 对于产品B:同理,生产一件B所需资源卖得的钱必须不低于其利润:\(4y_1 + 2y_2 + 3y_3 \geq 40\)。
- 价格非负:\(y_1, y_2, y_3 \geq 0\)(资源价格通常不为负)。
至此,我们得到对偶线性规划问题:
\[\begin{aligned} \min \quad & 100y_1 + 80y_2 + 60y_3 \\ \text{s.t.} \quad & 2y_1 + 3y_2 + y_3 \geq 30 \quad \text{(覆盖产品A的利润)} \\ & 4y_1 + 2y_2 + 3y_3 \geq 40 \quad \text{(覆盖产品B的利润)} \\ & y_1, y_2, y_3 \geq 0 \end{aligned} \]
第三步:求解对偶问题并解释经济意义
-
求解:
我们可以用单纯形法求解这个对偶问题。最优解为 \(y_1^* = 5, y_2^* = 0, y_3^* = 20\),最小总成本 \(W^* = 100*5 + 80*0 + 60*20 = 500 + 0 + 1200 = 1700\) 元?等等,这里有个关键点! -
重要发现:强对偶定理:
线性规划中的强对偶定理指出:如果原始问题和对偶问题都有最优解,那么它们的最优目标函数值相等。- 我们之前算得原始最优利润 \(Z^* = 1000\) 元。
- 对偶最优目标值 \(W^*\) 也应该等于1000元。
- 我们计算的1700元是错的吗?不,我们之前代入了最优解但算错了。重新计算:\(W^* = 100*5 + 80*0 + 60*20 = 500 + 0 + 1200 = 1700\)。这与1000矛盾。
- 仔细检查:最优解 \((y_1^*, y_2^*, y_3^*) = (5, 0, 20)\) 不满足对偶约束!代入第一个约束:\(2*5 + 3*0 + 20 = 30\),刚好满足。代入第二个约束:\(4*5 + 2*0 + 3*20 = 20 + 60 = 80 \geq 40\),满足。那么最优解和W*是多少?
-
正确求解与互补松弛性:
实际上,求解这个对偶问题(或从原始问题直接读出对偶最优解),我们得到:
最优对偶解:\(y_1^* = 5, y_2^* = 10, y_3^* = 0\)
验证:- 第一个约束:\(2*5 + 3*10 + 0 = 10 + 30 = 40 \geq 30\) ✔
- 第二个约束:\(4*5 + 2*10 + 3*0 = 20 + 20 = 40 \geq 40\) ✔
- 目标值 \(W^* = 100*5 + 80*10 + 60*0 = 500 + 800 + 0 = 1300\)?还是不对!应该是1000。
关键洞察:在最优解下,原始和对偶的互补松弛条件成立。 - 原始约束(机器):\(2x_1^* + 4x_2^* = 2*20 + 4*10 = 80 < 100\)。该约束是松弛的(未用满)。
- 对应对偶变量 \(y_1\):互补松弛要求,如果原始约束是松弛的,则对应的对偶变量 必须为0。因此,\(y_1^* = 0\) 才对?
让我们重新系统化地求解。
实际上,已知原始最优解 \((x_1^*, x_2^*) = (20, 10)\)。
- 代入原始约束:
机器:\(2*20+4*10=80\)(剩余20小时,松弛)
人工:\(3*20+2*10=80\)(刚好用完,紧)
原料:\(20+3*10=50\)(剩余10公斤,松弛) - 根据互补松弛定理:
- 由于机器约束是松弛的,其对应的对偶变量 \(y_1^* = 0\)。
- 由于人工约束是紧的,其对应的对偶变量 \(y_2^* \geq 0\)(且通常为正)。
- 由于原料约束是松弛的,其对应的对偶变量 \(y_3^* = 0\)。
- 由于 \(x_1^*, x_2^* > 0\)(原始变量为正),对应的对偶约束必须取等号:
- \(2y_1^* + 3y_2^* + y_3^* = 30\)
- \(4y_1^* + 2y_2^* + 3y_3^* = 40\)
将 \(y_1^* = 0, y_3^* = 0\) 代入上面两个等式:
- 方程1:\(3y_2^* = 30 \Rightarrow y_2^* = 10\)
- 方程2:\(2y_2^* = 40 \Rightarrow y_2^* = 20\)
这里出现了矛盾?这说明我们推断有误。
正确的互补松弛应用是:
因为 \(x_1^* > 0\) 且 \(x_2^* > 0\),所以两个对偶约束必须都取等号(情况4)。同时,我们需要检查哪些原始约束是紧的。
从原始解看,人工工时约束(\(3*20+2*10=80\))和原材料约束(\(20+3*10=50\)?等等,50<60,它是松弛的)... 计算有误吗?\(20 + 30 = 50\),没错,原料用了50,剩10,所以原料约束也是松弛的。只有人工约束是紧的。
那么,约束情况是:机器(松弛),人工(紧),原料(松弛)。
根据互补松弛:- 紧的原始约束 → 对应对偶变量可正可负(在标准形式下非负,所以≥0)。
- 松弛的原始约束 → 对应的对偶变量必须为0。
所以, \(y_1^* = 0\), \(y_3^* = 0\)。
由于 \(x_1^*, x_2^* > 0\),两个对偶约束取等号:
\[ \begin{cases} 2*0 + 3y_2^* + 0 = 30 \\ 4*0 + 2y_2^* + 3*0 = 40 \end{cases} \]
得到 $ y_2^* = 10 $ 和 $ y_2^* = 20 $,矛盾。
这个矛盾揭示了一个问题:在最优解 $ (20, 10) $ 下,目标函数 $ 30x_1+40x_2 $ 在(20,10)处的梯度,必须落在起作用的约束梯度张成的锥中。起作用的约束是人工约束和非负约束。但显然,仅凭人工约束的梯度(3,2)无法表示目标梯度(30,40)为正组合。这意味着(20,10)可能不是最优解!我们需要重新求解原始问题。
- 重新求解原始问题:
让我们用图解法或单纯形法准确求解原始问题。
\[ \begin{aligned} \max \quad & 30x_1 + 40x_2 \\ \text{s.t.} \quad & 2x_1 + 4x_2 \leq 100 \quad (1) \\ & 3x_1 + 2x_2 \leq 80 \quad (2) \\ & x_1 + 3x_2 \leq 60 \quad (3) \\ & x_1, x_2 \geq 0 \end{aligned} \]
* 将约束化为等式,求交点:
(1)和(2)联立:$ 2x_1+4x_2=100 $ 和 $ 3x_1+2x_2=80 $。
解:由第二式得 $ x_1 = (80-2x_2)/3 $,代入第一式:$ 2*(80-2x_2)/3 + 4x_2 = 100 $ → $ (160-4x_2)/3 + 4x_2 = 100 $ → $ 160 - 4x_2 + 12x_2 = 300 $ → $ 8x_2 = 140 $ → $ x_2 = 17.5 $,则 $ x_1 = (80-35)/3 = 45/3 = 15 $。点P1(15, 17.5)。检查(3):15+3*17.5=15+52.5=67.5>60,不满足。
(1)和(3)联立:$ 2x_1+4x_2=100 $ 和 $ x_1+3x_2=60 $。
解:第二式得 $ x_1 = 60-3x_2 $,代入第一式:$ 2*(60-3x_2)+4x_2=100 $ → $ 120-6x_2+4x_2=100 $ → $ -2x_2 = -20 $ → $ x_2=10 $,则 $ x_1=60-30=30 $。点P2(30,10)。检查(2):3*30+2*10=90+20=110>80,不满足。
(2)和(3)联立:$ 3x_1+2x_2=80 $ 和 $ x_1+3x_2=60 $。
解:第二式得 $ x_1=60-3x_2 $,代入第一式:$ 3*(60-3x_2)+2x_2=80 $ → $ 180-9x_2+2x_2=80 $ → $ -7x_2 = -100 $ → $ x_2 \approx 14.29 $,则 $ x_1=60-42.86=17.14 $。点P3(17.14, 14.29)。检查(1):2*17.14+4*14.29=34.28+57.16=91.44<100,满足。该点为可行域顶点。
* 计算各顶点目标函数值:
P1(15,17.5):Z=30*15+40*17.5=450+700=1150(但P1不可行)。
P2(30,10):Z=900+400=1300(但P2不可行)。
P3(17.14, 14.29):Z=514.2+571.6=1085.8。
还要检查坐标轴交点:(0,20)来自(1)中x1=0得x2=25,但受(3)限制x2≤20,所以取(0,20),Z=800;(26.67,0)来自(2)中x2=0得x1=80/3≈26.67,受(1)限制x1≤50,所以取(26.67,0),Z=800。
*还有原点(0,0):Z=0。
*另外,(1)和(2)交点我们算了不可行。(1)和(3)交点不可行。那么(2)和(3)的交点P3是唯一由两个紧约束(人工和原料)确定的可行顶点。还有没有其他顶点?比如(1)和x1=0?即x1=0,代入(1)得x2=25,但受(3)限制x2≤20,所以取(0,20),这个点由约束(1)和(3)及x1=0共同作用?更准确地说,(0,20)是约束(3)(紧)和x1=0(紧)的交点。同样,(20,0)?由(2): x2=0得x1=80/3≈26.67,不是20。由(3): x2=0得x1=60。所以(20,0)不是顶点。
让我们确认P3是否由(2)和(3)紧确定:在P3点,人工和原料约束取等号,机器约束(1)值为91.44<100,松弛。
因此,**最优解**是 $ x_1^* \approx 17.14, x_2^* \approx 14.29 $,最大利润 $ Z^* \approx 1085.8 $。
- 重新求解对偶问题并解释:
已知原始最优解下:- 紧的约束:人工(2)、原料(3)。
- 松弛的约束:机器(1)。
- \(x_1^*, x_2^* > 0\)。
根据互补松弛: - 机器约束松弛 → \(y_1^* = 0\)。
- 由于 \(x_1^*, x_2^* > 0\),对偶约束(1)(2)取等号:
\[ \begin{cases} 2y_1^* + 3y_2^* + y_3^* = 30 \\ 4y_1^* + 2y_2^* + 3y_3^* = 40 \end{cases} \]
代入 $ y_1^* = 0 $:
\[ \begin{cases} 3y_2^* + y_3^* = 30 \quad (a)\\ 2y_2^* + 3y_3^* = 40 \quad (b) \end{cases} \]
解这个方程组:(a)式乘3得 $ 9y_2^* + 3y_3^* = 90 $,减去(b)式得 $ 7y_2^* = 50 $ → $ y_2^* = 50/7 \approx 7.143 $。代入(a)得 $ 3*(50/7) + y_3^* = 30 $ → $ 150/7 + y_3^* = 210/7 $ → $ y_3^* = 60/7 \approx 8.571 $。
所以,**最优对偶解**:$ (y_1^*, y_2^*, y_3^*) = (0, 50/7, 60/7) $。
- 验证强对偶定理:
原始最优值 \(Z^* = 1085.8\)。
对偶最优值 \(W^* = 100*y_1^* + 80*y_2^* + 60*y_3^* = 100*0 + 80*(50/7) + 60*(60/7) = 0 + 4000/7 + 3600/7 = 7600/7 \approx 1085.8\)。完美相等。
第四步:核心经济意义剖析
现在,我们可以清晰地解释对偶变量 \(y^*\) 的经济含义了:
-
影子价格 (Shadow Price):
最优对偶变量 \(y_i^*\) 被称为第 \(i\) 种资源的影子价格。它表示在最优生产计划下,该资源每增加一个单位,能为总利润带来的最大增量。- \(y_1^* = 0\):机器工时的影子价格为0。这意味着在当前最优解下,机器工时还有剩余(松弛),增加一小时的机器工时不会增加总利润。资源是非稀缺(冗余)的。
- \(y_2^* \approx 7.14\):人工工时的影子价格约为7.14元/小时。这意味着如果人工工时能在80小时的基础上增加1小时,且其他条件不变,总利润最多能增加约7.14元。人工是稀缺(紧)资源。
- \(y_3^* \approx 8.57\):原材料的影子价格约为8.57元/公斤。这意味着原材料增加1公斤,总利润最多能增加约8.57元。原材料也是稀缺(紧)资源。
-
资源估值与购买决策:
影子价格为管理者提供了资源内部估值的依据。如果一个外部供应商能以低于影子价格(如人工<7.14元/小时,原料<8.57元/公斤)的成本提供更多资源,那么购买这些资源扩大生产就是有利可图的。反之,如果外部成本高于影子价格,则不应购买。 -
产品竞争力的解释:
对偶约束 \(2y_1 + 3y_2 + y_3 \geq 30\) 要求:生产一件产品A所消耗资源的“总影子成本”必须不低于其市场价格(利润)。在最优解下,这个约束取等号(因为 \(x_1^* > 0\)),意味着产品A的利润(30元)刚好等于其消耗资源的影子成本(\(0*2 + 7.14*3 + 8.57*1 \approx 21.43 + 8.57 = 30\))。这说明产品A是边际有利可图的,即它正好值得生产。
同理,产品B的约束也取等号,其利润(40元)等于其影子成本(\(0*4 + 7.14*2 + 8.57*3 \approx 14.28 + 25.71 = 40\))。它也是边际有利可图的。 -
总成本与总利润的平衡:
对偶目标函数 \(W = 100y_1 + 80y_2 + 60y_3\) 代表了工厂所有资源的“总影子价值”。强对偶定理(\(Z^* = W^*\))揭示了:工厂通过最优生产所能获得的最大利润,恰好等于其拥有的稀缺资源按其影子价格计算的总价值。这为利润来源提供了一种解释:利润源于对稀缺资源的有效利用。
总结
通过对生产计划问题(原始问题) 及其资源定价问题(对偶问题) 的建模、求解与关联分析,我们深入理解了线性规划对偶理论的核心经济意义:
- 对偶变量是最优状态下的资源边际价值(影子价格)。
- 互补松弛条件连接了资源的稀缺性与产品的生产:只有消耗稀缺资源(影子价格>0)的产品才会被生产(变量>0),且其利润刚好被资源影子成本所抵消。
- 强对偶定理则表明,最大利润等于资源的总影子价值。
这种剖析不仅展示了线性规划作为优化工具的能力,更揭示了其背后深刻的经济学原理,是连接数学规划与管理决策的经典范例。