- Linear Programming,以下简称LP
- 看到单纯形法,以后补充把
LP是线代加上2个新概念:不等式和最小化(inequalities and minimization)。初始条件还是一个矩阵等式 Ax = b,但现在,解必须是非负的,也就是
代价定义为
$c_1x_1+...+c_nx_n$ ,此时这个非负的向量$x^*$ 是Ax = b 的解,并且它具有最小的代价。
LP问题可以从一个矩阵A和2个向量 b、c开始
- A的n>m,如
$A = [1,1,2]$ ,3个位置数,1个方程 - b是m个分量的向量,对应m个方程的右侧,如
$b = [4]$ - 费用向量(cost vector)有n个分量,如
$c = [5,3,8]$
目标就是:以 Ax= b 和
以上解释了LP是怎么回事,但它到底是怎么来的呢?实际上,LP是数学对管理的最重要应用之一。你会发现,因为有
首先看一下限制条件
这个三角形,就包含了所有满足
在平面
第1个和三角形接触到的
如果耗费向量c改变了,那么不断移动的平行平面的倾斜角度就不一样了,如果c的改变核销,那么Q还是胜出点。但如果改变幅度比较大,如
要点1:一些线性程序会最小化利润(maximize profit),而不是最小化代价。这在数学上是等价的。只是现在,平行平面以很大的 C 开始(而不是很小的c),不断的减小,从而平面不断向原点逼近(而不是远离),当C越来越小,第1个接触到点,仍然是三角形的顶点。
要点2: 有时候,
要点3: 可行集合也有可能是无界的。如果Ax = b是
要点4: 如果可行集合是无界的,那么最小代价可以是 C= -102
,向量 C = -1002
.这相当于变量$x_1,x_2$ 会帮助我们减小耗费,而不是增加。虽然现实情况下不会发生,但理论上,A,b,c三者合起来,可以产生难以预期的可行集合三角形和耗费。
- The primal and dual problem
- 大概看懂了,但没搞懂为啥 最大值=最小值....以后研究的时候补充
以Fig8.6的问题开始,3个未知数
如果3个对象都在工作,那么4个问题需要1小时:$x_1=x_2=x_3 = 1$,代价是 5+3+8=16。但明显的,根本不需要研究生,因为学生明显性价比更高。所以让学生工作2小 ,机器1小时,代价是6+8=14。参见Fig8.6,此时我们是在边QR上,因为$x_1 = 0$.但最佳的点是Q,R点,也就是全部工作由学生或者机器完成。如果全部是由机器完成,那么代价是12.
当 Ax = b 只有1个方程,顶点(0,4,0)只有1个非0分量。当Ax = b有m个方程,顶点有m个非0分量。 我们是对这m个变量求解Ax= b的,有n-m个自由变量被设为0。 注意和 <01-03>
的不同:我们不知道怎么选出这m个变量。
**可能出现的顶点的个数,就是我们可以从n选出m的方法数。**n选择m的问题在概率和赌博经常出现,如n = 20,m = 9,那么可行集合会有
对偶问题
在LP,问题总是成对出现的,会同时有一个最小化问题和一个最大化问题,也就是原始问题和它的对偶问题。
- 原始问题是由矩阵A和2个向量b、c所描述的
- 对偶问题转置A和切换b、c向量:最大化
$b\cdot y$
对于上面的问题,我们而已这样描述其对偶问题:一个作弊者提供收费给答案的服务。每个答案y美元,那么4个问题的答案就是4y(注意,此时b = 4变成了耗费)。费用y必须小于等于研究生、学生、机器的话费,也就是 $y \le 5 $ 和
$y \le 3$ 和$2y \le 8$ (注意,现在c = (5,3,8) 变成了不等式约束)。作弊者想要最大化收费 4y: $$ \text{Dual Problem}: \qquad \text{限制在} A^Ty \le c \text{ 的条件下,最大化 } b\cdot y $$ 当 y = 3,可以取得最大的收入 4y = 12.对偶问题当中的最大值12美元,和原始问题当中的最小值12美元是相等的,最大=最小就是所谓的对偶性:只要原始或对偶问题其中之一有最佳解 $x^$ 或 $y^$,那么另外一个必定也有最佳解,而且原始问题当中的最小代价 $c \cdot x^$,必定等于对偶问题当中的最大收入 $b \cdot y^$.
其实秩的问题就是一个对偶问题:对立列的个数=独立行的个数。以上 最小化=最大化 的证明在 <Linear Algebra and Its Applications>
有证明。其实只要1行,就能证明较容易的前半部分:作弊者的收入
b ^ { \mathrm { T } } y = ( A x ) ^ { \mathrm { T } } y = x ^ { \mathrm { T } } \left( A ^ { \mathrm { T } } y \right) \leq x ^ { \mathrm { T } } c
\tag{1}
$$
完整的对偶定理(dual theorem)说的是:当$b^Ty$ 达到最大值,$x^Tc$ 也达到它的最小值,并且它们相等:
- The Simplex Method,以下简称TSM
消去是求解线性方程的主力,TSM是求解线性不等式的主力。这里只是简单介绍,但思想是很清晰的:TSM从一个顶点(corner),移动到代价更小的另一个相邻顶点,最终(实践当中,是非常快的)到达最小耗费的顶点。
而所谓的顶点就是一个向量
- 1个分量从0变为正值
- 1个分量从正值变为0
sp:其实会发生1个分量从0变为1,不一定会发生从1变为0啊,如例1.书本这里有点描述不对啊,应该是正值分量会相对应做出调整。这里理解有误,继续参见例2调整
TSM必须确定,哪个分量从0变为正值(定义为进入变量,entering variable),哪个分量从正值变为0(定义为离开变量,leaving varibale).经过这样的分量变换之后,总代价必须降低,这就是TSM向
下面的整个思想:观察当前顶点存在的所有0分量,选择其中1个0分量从0变为1,其他非0分量必须做出调整来保持 Ax = b.分量变换之后,回代方程得到新的顶点x,然后用这个顶点x计算总代价
例1 以Fig8.6为例,假设当前顶点是 P = (4,0,0),也就是研究生完成所有问题,此时代价是20.如果学生工作1小时,那么现在 x= (3,1,0),代价是18.削减代价 r = -2; 如果机器工作1小时,那么 x= (2,0,1)的代价也是18.削减代价也是 r = -2.这种情况下,TSM选择学生或机器作为进入变量都可以。
就算在这个简单的例子,第一步也很难得到最佳的
现在假设,TSM选择将研究生作为离开变量,所以会移动到Q或者R顶点。
例2