线性规划 - 双重单纯变量意义?

时间:2012-01-31 17:34:07

标签: mathematical-optimization linear-programming simplex

我刚刚学会了解决线性程序的单纯形法,我试图理解它的双重问题代表什么。

我理解解决双重问题的机制 - 我不需要帮助。我无法得到的(即使在Wikipedia上阅读之后) y 变量的实际含义。

我想在原始问题中给出一个可变含义的例子,以及我从双重中得出的结论,并且会问任何人,以解释双重意义:

原始

max z = 3*x1 +  5*x2

subject to:
          x1          <=  4
                2*x2  <= 12
        3*x1 +  2*x2  <= 18

        x1, x2 >= 0

在原始问题中, x1 x2 是要生成的产品 A B 的数量。 3 5 分别是他们的单位售价。产品在3台机器上生产, M1-M3 。要生产第一个产品,需要在 M1 上工作一小时,在 M3 上工作3个小时。要生成第二个, M2 M3 需要两个小时的工作。机器 M1,M2,M3 分别最多可以工作在 4,12 18 小时。最后,我不能产生负数量的任何产品。

现在,我设置了双重问题:

min z = 4*y1 + 12*y2 + 18*y3

subject to:
          y1         +  3*y3 >= 3
                  y2 +  2*y3 >= 5

          y1, y2, y3 >= 0 

现在,我认为我唯一可以理解的是约束意味着: - 在 M1 上工作一小时,在 M3 上工作3小时,我应该至少付3个钱单位 - 对于 M2 的两小时工作和 M3 的2小时工作,我应该得到至少5个钱单位

但是,我无法理解 y1 y2 变量的含义。当我最终进行最小化时, z 中的结果在原始中是相同的(尽管原始增加结果的下限而双重增加上限),但是双重问题的客观函数由?

组成

1 个答案:

答案 0 :(得分:11)

Dual的目标功能是最小化3台机器(资源)的成本/小时

因此,Dual的目标函数(4*y1 + 12*y2+ 18*y3)可以理解为:

Minimize 4*(cost/hour of Machine1) + 12*(cost/hour of M2) + 18*(cost/hr of M3)

由于 Primal 处理最大化生产利润, Dual 可以被视为最小化公司的生产成本。

(有时候会想到公司“租用”机器 M1,M2和M3 。)如果他们要租用它,最多的是什么他们应该为每台机器支付[$ /小时]并仍然可以制造x1x2

双变量y1, y2, and y3的含义是每小时拥有/租用成本。

双重问题的y变量通常被称为资源的“影子价格”

因为您正在寻找洞察理解双重身份

  1. 一个技巧是减少双重的维度。 (想象一下只有一台机器 M1 。)现在,制定对偶并尝试理解目标函数和约束。
  2. 根据“机会成本”来思考它。如果制造公司必须租用机器(资源),它应该支付多少价格/小时?或者,如果有许多其他(有利可图的)产品,那么将以X1X2分配机器的成本/小时,而不是制造这些其他产品。
  3. 请注意,并非所有对偶都可以轻松“理解”。但是,通过查看原始对应的变量,您可以了解许多双重约束。同样,通过研究相应的原始约束,您可以深入了解双变量。