这一部分对应书上第七章(P45-P51),难度和第四章差不多。由于引用了一些非数学的概念,所以学习的时候难免会遇到一些看似无所根据的概念或者假设。建议大家不要在各种花里胡哨的假设上浪费时间,要把精力留给数学。
虽然线性规划的对偶理论在线性代数和数学模型中都没怎么被提到,但其理论本身有趣而且有用。对偶理论将原LP问题转化为其对偶LP问题,从而使与原问题相关的一些复杂的性质(如解是否为最优)变为对偶问题中较为简单的性质(对应地,解是否可行)。
第五章和第六章暂时没有讲。 第五章主要是线性代数的内容,在此默认大家都学过。需要看一眼的是最后提到的用矩阵表示LP问题的方法。第六章是敏感性分析,我打算留到最后和算法复杂度一起讲。
为方便查阅,再link一下教材。
基本概念
为方便理解我们引入一个例子:
例1: 现有一工厂可以生产小人偶和小火车这两种玩具。生产一个小人偶需要1单位木材和2单位颜料,产生3单位收益。生产一辆小火车需要1单位木材和1单位颜料,产生2单位收益。工厂现有80单位木材和100单位颜料,问如何分配火车与人偶的生产量可以使得收益最大?(见下图左侧)
先补充几个前几章出现过但我没有提到的简单概念。由于没有了解过中文版教材所以翻译可能不太准确。
- 对象(Item)是LP问题中的“名词”,即收益和材料。在此问题中,对象有三个,即:收益、木材、颜料。对象对应着LP问题中的行。在此问题中,收益、木材与颜料分别对应着第一到第三行。
- 行为(Activity)是LP问题中的“动词”,对应着标准表示中的列。通俗地讲,行为就是将材料转化为产品(收益)的过程。在本问题中,制造小火车与制造小人偶就是两种行为。上图中,所在的列对应着制造小人偶的行为,所在的列对应着制造小火车的行为。
回忆上一次在基本概念中讲到的基本解与字典的概念,结合线性代数的知识,我们可以将LP问题写为:
不要被上图中复杂的形式迷惑,其实推导过程非常简单。式中各个符号的定义见教材第32页。需要强调的两点是:
- 是由非基本变量构成的向量,在具体取值的时候即为0向量。详见之前对非基本变量的定义。注意不要将非基本变量理解为0变量。非基本变量只是在考虑对应基本解时取值为0。
- 此处假设是可逆的,但我无法证明一定是可逆的。但我相信大多数情况下都是可逆的,因为在字典中可有表示,而联系二者的只有等式。如果不满秩的话会丢失的信息进而使得无法被表示。(直观感受,未证明)
- 基本解对应的目标函数的取值为,当的各项系数小于0时取最优解。此时基本变量的取值为
目标函数的值()和判断最优解的条件()这两个矩阵表示非常重要,建议各位同学自己推导一遍并记下来。
现在假设在市场上有以价格与售卖的木材与颜料,如上图右侧所示。市场是一个很有趣的概念,可惜我不怎么懂,只知道本章许多内容都与之多多少少地相关。接下来介绍一个比较重要的概念。
-
影子价格(百度百科): 某种材料的影子价格通俗地讲就是该种材料增加1单位所带来的额外的收益。
当某种材料过剩时,其影子价格即为0,因为该材料本来就多于所需,所以它的增加不带来额外收益。 关于影子价格,需要注意以下两点:- 影子价格的定义严格地讲是收益关于某种材料的变化率,但由于我们考虑的是线性问题所以干脆说成是“由于增添1单位某材料所带来的额外收益”。影子价格是一个局部的概念,不要钻牛角尖。
- 书上没有任何解释地给出了影子价格的矩阵表示:。其实这就是一个简单的求导运算。对比目标函数的值:可以发现某种材料的影子价格恰好就是目标函数关于该材料的导数。需要注意的是此时由于材料可以自由买卖,所以变成了一个变向量。在某种意义上,目标函数其实本来就是材料的函数,只不过材料的多少会影响函数的形式(也会随材料改变。)
影子价格是一个向量,其每个元素对应一种材料。
基本概念大概就是这些,接下来就是神奇的部分了。
对偶性理论
这一部分有许多条件并不是一般的,比如我们只讨论了最大值问题而没研究最小值问题。不过方法的本质都是一样的。
1. 基本假设与直观理解
对偶(Dual)不论是单词还是翻译都和泛函分析中函数空间的那种对偶一样。事实上对偶是数学中一种非常常见的思想方法。通过配合地研究原问题(Primal)和对偶问题(Dual)我们可以得到很多性质颇好的结论。首先,我们引入一个假设:
假设1: 生产一件产品所需的材料的价格不小于出售该件产品所带来的收益。
之后我们简称生产某件产品所需的材料的价格为该产品的材料成本。对于该假设我们可以作如下理解:
- 首先,我们引入的所有假设的目的都是为了解原LP问题,故引入新的变量不能改变原LP问题的最大值。只对数学模型感兴趣的同学可以直接跳过之后的三点。
- 假设在此问题中,工厂本来就有一定数量的各种材料。生产一件产品的成本不包括材料成本。
- 在此假设下,购入更多的原材料只会使总收益变少,所以原LP问题的最大值不变。
- 如果该假设不成立,那么该工厂就可以从市场中无限地买入原材料进而获得无限的利益。由于市场存在竞争,这种情况是不允许出现的。
其实在思考本假设的意义时我也有很多疑问,当然可能我现在对于此问题的理解仍然是错误的。我们不妨先默认这些看似不合理直观的假设,推得我们想要的理论,之后再严谨地用数学方法证明理论的合理性即可。当然,感兴趣的同学也可以参考经济学领域的相关书籍。
不论如何,我们不应在直观理解上浪费太多时间。我们现在引出原问题与对偶问题的形式:
左边为原问题,右边为对偶问题。首先可以注意到的是对偶问题的限制条件即假设1。此时有显然的关系式:左边的不等号对应于对偶问题的限制条件,右边的不等号则对应原问题的对偶条件。因此两边目标函数存在关系:是显然的。这其实就是待会要提到的弱对偶性。
原问题与对偶问题的矩阵表示如下图所示:
由此可知对偶问题的对偶问题就是原问题。即两问题互为对偶。
2. 弱对偶性与强对偶性定理
关于对偶性,最关键的理论就是以下两个重要的定理:
定理1 (弱对偶性) 假设与分别是原问题与对偶问题的可行解,则:证明:由限制条件可知:证明完毕。
由弱对偶性可知:
- 若原问题的目标函数无界,则对偶问题必无可行解;同理若对偶问题的目标函数无界,则原问题必无可行解。注意前者的无界是无上界而后者的无界是无下界。若产品的收益都为正,则目标函数无界等价于可行域无界。
- 书上说原问题和对偶问题都无可行解的情况是存在的。不过我还没有想到这样的例子。
定理2 (强对偶性) 假设与分别是原问题与对偶问题的最优解,则: 且满足其中与分别对应着原问题与对偶问题中的松弛变量。
我们现在还无法证明这个定理。
3. 原问题与对偶问题的性质
为了证明强对偶性定理并得到一些我们需要的性质,在此先叙述一些相对简单的概念与结论。由于原问题与对偶问题实际上互为对偶,故不失一般性地可以只叙述原问题的性质。
性质1: 原问题中每一个等号-限制条件都对应一个无符号限制的对偶变量。
此处“等号-限制条件”的含义应该是清晰的。原问题中的每一条限制条件都对应着一个对偶变量,这一点大家也需要牢记。强调以下几点:
- 如果原问题中采用的是-限制条件,则无符号限制的对应对偶变量会导致弱对偶性定理失效。因为负号会使不等式转向。对于-限制条件也一样。现考虑例1中木材的限制条件对应的对偶变量(即木材的价格):如果不要求的话显然无法推出。
- 如果原问题中的某条限制条件是等号-限制条件,则称该限制条件为紧(tight)的。这个概念之后还会用到。
- 若原问题中某条限制是等号-限制条件则不论对应的对偶变量如何取值,弱对偶性仍然成立。依然考虑例1中的木材,但此时将其限制条件改为等号-限制条件,则有:即仍满足弱对偶性。
- 类比地可以总结出规律:对于一个求最大值的LP问题,-限制条件对应非负对偶变量;-限制条件对应非正对偶变量;等号-限制条件对应无符号限制的对偶变量。
接下来介绍互补松弛的概念。
定义1:称向量与是互补的(complementary),若:
关于互补,有如下性质:
- 强对偶性说明原问题的最优解与对偶问题的解是互补的。
- 对于互补的向量与,若则原问题的第i个限制条件为紧的。同理若则对偶问题的第i个限制条件是紧的。
- 对于任意基本解,由其定义的影子价格与之互补。证明如下:
命题1:对于LP问题的任意基本解,由其定义的影子价格与之互补
证明:明天再说!
关于互补松弛性,有以下几点重要的性质。先不加证明地列出:
设是原问题的最优解,则:
- 若是对偶问题的最优解,则与互补。(强对偶性)
- 若是对偶问题的可行解且与互补,则是对偶问题的最优解。
- 存在对偶问题的可行解使得与互补。
结合命题1可知:
若是原问题的基本可行解,是其影子价格,则为最优解当且仅当是可行解。
如本文开头所言,判断最优性的问题被巧妙地转化为了判断可行性地问题。