1、最优化方法 (II),Hongxin Zhang 2014-04-03,内容,线性规划 非线性优化 主要参考书: 线性规划 张建中,许绍吉,科学出版社 最优化理论与方法 袁亚湘,孙文瑜,科学出版社 数学规划 黄红选,韩继业,清华大学出版社,一、线性规划,在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济效益的问题。 1947年G. B. Dantzig 求解线性规划的单纯形方法 现有的计算机能处理成千上万个约束条件和决策变量的线性规划问题之后,线性规划的适用领域更为广泛了。,运筹学 数学规划 线性规划(Linear Programming,LP),$利益驱动$,1. 基本
2、理论,1.1 问题定义(linear programming, LP),某计算机公司提供大型计算机系统,有A, B, C三个技术团队 高端系统 每套售后的利润400万元 需用A、B两个技术团队协作实施 A团队2个月,B团队1个月; 中端系统 每套售后的利润300万元 需用A, B, C三个技术团队协作实施 每个团队各需1个月 2009年度,A队可工作10个月,B队8个月、C队7个月 问:怎样的销售策略能使总利润最大?,1.1 问题定义(linear programming, LP),设可销售x1个高端端系统, x2个中端系统 目标函数 约束条件,1.1 问题定义(linear programm
3、ing, LP),在一组线性的等式或不等式约束下,求一个线性函数的最小值或最大值。 形式化的定义:,min c1x1+ cnxn s. t. a11x1+ a1nxn b1 am1x1+ amnxn bm x1, xn 0,1.1 问题定义(linear programming, LP),在一组线性的等式或不等式约束下,求一个线性函数的最小值或最大值。 形式化的定义:,min cTx s.t. Ax b x 0,目标函数 objective function,c: 价值向量,cost vector A: 约束矩阵,constraint matrix b: 右端向量,right-hand-sid
4、e vector,1.1 问题定义(linear programming, LP),X:满足约束条件,称为可行解或可行点 (feasible point) D:所有可行点的集合,称为可行区域 (feasible region) LP问题: D = , 无解或不可行 D ,但目标函数在D上无上界:无界 D ,且目标函数有限的最优解:有最优解,线性规划的图解法,1.2 标准LP问题,从实际中总结出来的LP形式不完全一样: 目标函数是最大值或最小值, 约束条件是等式约束或不等式约束, 变量有上界或下界或无界,min z = cTx s.t. Ax = b x0,标准形式的LP问题,标准化 目标函数的
5、转换 max z min (-z) 约束条件的转换(引入松弛变量) 变量的非负约束,min z = cTx s.t. Ax = b x0,1.3 可行区域D,下面讨论可行区域 D=x | Ax = b, x0 的结构 首先讨论集合 K= x | Ax = b ,1.3 基本概念,仿射集:对于集合SEn,如果对任意x, y S, E1, 都有 x+(1-)y S, 则称S为仿射集 凸集:对任意的 x, y C,(0,1),有 x + (1-)y C, 则称C为凸集 = 极点,极方向,1.4 基本可行解,可行区域的极方向,极方向的代数性质: D=x | Ax=b, x0的方向d有k个非零分量,则d
6、为D的极方向的充要条件是d的非零分量对应的列向量组秩为k-1 极方向的几何性质:d为D的极方向的充要条件是d为D的某个半直线界面方向 如果D有极方向,显然D为无界集;反之若D为无界集,则D有方向,且有极方向,1.5 线性规划基本定理,基本定理1(表示定理),基本定理2,给定LP问题 min z = cTx s.t. Ax = b x 0 (1)若存在有限最优值(即有最优解),则最优值必在可行区域D的某个极点上达到。 (2)目标函数存在有限最优值的充要条件是对D的所有极方向dj,均有cdj0,定理的注释与理解,定理说明: 标准LP问题的目标函数的最优值必可在某个基本可行解处达到。 求解标准LP问
7、题,只需要在基本可行解的集合中进行搜索。 求出并比较所有基本可行解的方法通常不可行。且原因在于当n较大时,基本可行解个数将很大。 通常的方法根据一定的规则在基本可行解的一个子集中计算搜索,这就是单纯形法。,2. 单纯形方法(Simplex Method),2.1 基本单纯形方法,主要思想:先找一个基本可行解,判断它是否为最优解。若不是,就找一个更好的基本可行解,在进行检验。如此迭代,直至最后找到最优解,或判定无界。 两个主要问题: 寻找初始解 如何判别和迭代(先考虑),确定初始的基本可行解,22,确定初始的基本可行解等价于确定初始的可行基,一旦初始的可行基确定了,那么对应的初始基本可行解也就唯
8、一确定 为了讨论方便,不妨假设在标准型线性规划中,系数矩阵中前m个系数列向量恰好构成一个可行基,即 =(),其中 =(1,2,m)为基变量x1,x2,xm的系数列向量 构成的可行基, =(m+1,Pm+2, Pn)为非基变量xm+1,xm+2, xn的 系数列向量构成的矩阵。,23,所以约束方程 就可以表示为,用可行基的逆阵-1左乘等式两端,再通过移项可推得: 若令所有非基变量, 则基变量 由此可得初始的基本解,24,问题: 要判断m个系数列向量是否恰好构成一个基并不是一件容易的事。 基由系数矩阵中m个线性无关的系数列向量构成。 但是要判断m个系数列向量是否线性无关并非易事。 即使系数矩阵中找
9、到了一个基B,也不能保证该基恰好是可行基。 因为不能保证基变量B=-1b0。 为了求得基本可行解 ,必须求基的逆阵-1。 但是求逆阵-1也是一件麻烦的事。 结论: 在线性规划标准化过程中设法得到一个m 阶单位矩阵I作为初始可行基,,25,若在化标准形式前,约束方程中有“”不等式, 那么在化标准形时除了在方程式左端减去剩余变量使不等式变 成等式以外,还必须在左端再加上一个非负新变量,称为 人工变量 若在化标准形式前,约束方程中有等式方程,那么可以直接在 等式左端添加人工变量。,为了设法得到一个m阶单位矩阵I作为初始可行基,可在性规 划标准化过程中作如下处理:,若在化标准形式前,m个约束方程都是“
10、”的形式, 那么在化标准形时只需在一个约束不等式左端都加上一个松弛变 量xn+i (i=1, 2, , m)。,26,判断现行的基本可行解是否最优,假如已求得一个基本可行解,将这一基本可行解代入目标函数,可求得相应的目标函数值,其中 分别表示基变量和 非基变量所对应的价值系数子向量。,27,要判定是否已经达到最大值,只需将 代入目标函数,使目标函数用非基变量 表示,即:,其中 称为非基变量N的检验向量,它的各个分量称为检验数。若N的每一个检验数均小于等于0,即N0,那么现在的基本可行解就是最优解。,28,定理1:最优解判别定理 对于线性规划问题 若某个基本可行解所对应的检验向量 , 则这个基本
11、可行解就是最优解。,定理2:无穷多最优解判别定理 若是一个基本可行解,所对应的检验向量 ,其中存在一个检验数m+k=0, 则线性规划问题有无穷多最优解。,29,基本可行解的改进,如果现行的基本可行解不是最优解,即在检验向量 中存在正的检验数,则需在原基本可行解的基础上寻找一个新的基本可行解,并使目标函数值有所改善。具体做法是: 先从检验数为正的非基变量中确定一个换入变量,使它从非基变量变成基变量(将它的值从零增至正值), 再从原来的基变量中确定一个换出变量,使它从基变量变成非基变量(将它的值从正值减至零)。 由此可得一个新的基本可行解,由 可知,这样的变换一定能使目标函数值有所增加。,30,换
12、入变量和换出变量的确定:,换入变量的确定 最大增加原则,假设检验向量 , 若其中有两个以上的检验数为正,那么为了使目标函数值增加得快些,通常要用“最大增加原则”,即选取最大正检验数所对应的非基变量为换入变量,即若 则选取对应的 为换入变量, 由于且为最大, 因此当由零增至正值, 可使目标函数值 最大限度的增加。,31,换出变量的确定 最小比值原则 如果确定为换入变量,方程 其中为中与对应的系数列向量。 现在需在 中确定一个基变量为换出变量。 当 由零慢慢增加到某个值时, 的非负性可能被打破。 为保持解的可行性,可以按最小比值原则确定换出变量: 若,则选取对应的基变量 为换出变量。,32,定理3
13、:无最优解判别定理 若 是一个基本可行解,有一个检验数 , 但是,则该线性规划问题无最优解。,证:令 ,则得新的可行解 将上式代入 因为 , 故当+时,Z+。,33,用初等变换求改进了的基本可行解,假设是线性规划 的可行基,则 令非基变量 ,则基变量。 可得基本可行解 。,用逆阵左乘约束方程组的两端,等价于对方程组施以一系列的初等“行变换”。变换的结果是将系数矩阵中的可行基变换成单位矩阵I,把非基变量系数列向量构成的矩阵变换成,把资源向量b变换成。,34,且改进了的基本可行解 只是在的基变量的基础上用一个换入变量替代其中一个换出变量,其它的基变量仍然保持不变。这些基变量的系数列向量是单位矩阵I
14、中的单位向量。为了求得改进的基本可行解 ,只需对增广矩阵 施行初等行变换,将换入变量的系数列向量变换成换出变量所对应的单位向量即可。,由于行初等变换后的方程组 与原约束方程组 或同解,判别和迭代,假定 rank(A) = mn, 且假定已找到一个非退化的基本可行解,即找到一个基B。则Ax=b可写成 xB+B-1NxN=B-1b (1),判别和迭代,判别和迭代,判别和迭代,单纯形法的计算步骤,例1,解:,()确定初始的基本可行解。 ,基变量 ,非基变量 。,41,(2) 检验 是否最优。 检验向量 因为1=3,3=4 均大于零, 所以不是最优解。,42,(3)基本可行解 的改进 选取换入变量 因
15、为max3,4=4,取x3为换入变量。 选取换出变量 且 , 选取x4为换出变量.,43,(4)求改进了的基本可行解 对约束方程组的增广矩阵施以初等行变换,使换入变量x3所对应的系数列向量 变换成换出变量x4所对应的单位向量 , 注意保持基变量x5的系数列向量 为单位向量不变。,第一行除以,第二行减去第一行,44, 可得改进的基本可行解。 ,基变量,非基变量 。 基本可行解 目标函数值 易见目标函数值比原来的Z=-1增加了, 再转向步骤(2),45,(2)检验 是否最优。 检验向量 因为, 所以 仍不是最优解。,46,(3)基本可行解 的改进 选取换入变量 因为 ,取为换入变量。 选取换出变量
16、 且 , 选取 为换出变量.,47,(4)求改进了的基本可行解 对约束方程组的增广矩阵施以初等行变换,使换入变量所对应 的系数列向量变换成换出变量所对应的单位向量,第二行乘以/,第一行减以第二行的/倍,48, 可得改进的基本可行解。 ,基变量,非基变量 基本可行解 目标函数值 比Z=15增加了,再转向步骤(2),49,(2)检验 是否最优。 检验向量 因为所有检验数均小于零, 所以是最优解,,2.2 单纯形表,xr与xk的地位互换。 第k列通过初等变换变成单位向量er.,单纯形表,上述变换又称之为旋转(pivot),类似于解线性方程组的主元消去法.,转轴元,转轴行,转轴列,52,表格单纯形法,
17、通过例我们发现,在单纯形法的求解过程中,有下列重要指标: 每一个基本可行解的检验向量 根据检验向量可以确定所求得的基本可行解是否为最优解。如果不是最优又可以通过检验向量确定合适的换入变量。 每一个基本可行解所对应的目标函数值 通过目标函数值可以观察单纯形法的每次迭代是否能使目标函数值有效地增加,直至求得最优目标函数为止。 在单纯形法求解过程中,每一个基本可行解都以某个经过初等行变换的约束方程组中的单位矩阵为可行基。 当=时,-1=,易知:,53,可将这些重要结论的计算设计成如下一个简单的表格, 即单纯形表来完成:,54,例2、试利用单纯形表求例1中的最优解解: 得初始的单纯形表:,初始基本可行
18、解,Z= -1,,1 2 2 1 0,8,x4,-1,3 0 4 0 0,-1,Z,3 4 1 0 1,7,x5,1,x1 x2 x3 x4 x5,b,XB,CB,5 2 3 -1 1,C,55,换入变量,换出变量,为主元进行旋转变换,基本可行解,Z= 15,,1/2 1 1 1/2 0,4,x3,3,1 -4 0 -2 0,15,Z,5/2 3 0 -1/2 1,3,x5,1,x1 x2 x3 x4 x5,b,XB,CB,5 2 3 -1 1,C,1 2 2 1 0,8,x4,-1,3 0 4 0 0,-1,Z,3 4 1 0 1,7,x5,1,x1 x2 x3 x4 x5,b,XB,CB,
19、5 2 3 -1 1,C,8/2,7/1,56,最优解 最优值,换入变量,换出变量,/为主元进行旋转变换,4/1/2,1/2 1 1 1/2 0,4,x3,3,1 -4 0 -2 0,15,Z,3/5/2,5/2 3 0 -1/2 1,3,x5,1,x1 x2 x3 x4 x5,b,XB,CB,5 2 3 -1 1,C,0 2/5 1 3/5 -1/5,17/5,x3,3,0 -26/5 0 -9/5 -2/5,81/5,Z,1 6/5 0 -1/5 2/5,6/5,x1,5,x1 x2 x3 x4 x5,b,XB,CB,5 2 3 -1 1,C,2.3 初始解:两阶段法,2.3 初始解:两阶
20、段法,2.3 初始解:两阶段法,2.4 初始解:大M法,2.5 退化与防止循环,若单纯形表中右端向量存在分量为0,即出现退化解的情况下,可能出现循环。为了避免循环,需要再补充一些旋转规则。 字典序方法 Bland规则,字典序方法,Bland规则,Bland规则的优点是简单易行,但缺点是只考虑最小下标,而不考虑目标函数值下降的快慢。故其效率比字典序或原来单纯形法低。 在实际中,退化是常见的,但退化不一定产生循环。事实上,产生循环是较罕见的。,2.6 修改单纯形法,当LP问题的规模很大时,如何减少存储量和计算时间,就是一个必须加以考虑的问题。在实际中,大多采用修改单纯形法。,逆矩阵法,3. 最优性
21、条件和对偶理论,对偶性,对于每一个线性规划P,总存在着另一个线性规划D,两者之间存在着密切的联系,人们可以通过求解对偶规划D来获得原规划P的最优解。,3.1 Karush-Kuhn-Tucker条件,定理,3.1 Karush-Kuhn-Tucker条件,证明: 充分性,3.1 Karush-Kuhn-Tucker条件,证明: 必要性,3.1 Karush-Kuhn-Tucker条件,证明: 必要性,3.1 Kuhn Tucker条件,3.1 Kuhn Tucker条件,3.2 对偶理论,对偶问题可被看作是原始问题的“行列转置” 对偶问题是: 其中y1和y2分别表示对应于约束Ax=b和-Ax=
22、B的对偶变量组。令y=y1-y2,3.2 对偶理论,3.2 对偶理论,3.2 对偶理论,对偶定理,设x和w分别为(P)和(D)的可行解,则有cxwb. 设x*和w*分别为(P)和(D)的可行解,则x*和w*分别为(P)和(D)的最优解的充要条件是cx*=w*b. 推论:若(P)有最优解x*,则(D)有最优解w*,且cx*=w*b;若(P)无界,则(D)无解。反之亦然。 互补松弛性:设x*和w*分别为(P)和(D)的最优解,则有w*(Ax*-b)=0, (c-w*A)x*=0。,对偶定理,从K-T条件与单纯形方法中的最优准则的关系中可以看出:在单纯形方法中,除了K-T条件的v0外,其余都得到满足
23、。即单纯形法就是保持了原始可行性、互补松弛性、c-wA-v=0得到满足的条件下逐步改善基本可行解,使得对偶可行性中的v=c-wA0得到满足。 启发:也可以在保证对偶可行性和互补松弛性满足的条件下,改善解使得原始可行性得到满足。,对偶单纯形法,对偶单纯形法,3.4 原始对偶单纯形法,同时从对偶问题和第一阶段辅助问题求解 从对偶问题的任意可行解开始,同时在迭代过程中保持对偶可行性和互补松弛性以及x0的情况下通过剔除人工变量使Ax=b成立,3.4 原始对偶单纯形法,3.5 对偶初始解,对偶单纯形法和原始对偶单纯形法都需要一个对偶可行解。而且对偶单纯形法还要求是一个基本可行解。,SVM与对偶方法,问题
24、,单纯形法是不是一个好方法? 性能 对数据的适应性 可实现性,算法复杂性,最坏性能 在最坏情况下,算法表现出来的性能。 平均性能 在各种可能情况,算法表现出来的期望性能。 问题(problem): 需要解决的数学问题,通常包含一组参数和未知的自由变量,并加以描述: 对所有参数的描述 对解所需要满足的特性的描述 实例(instance): 具体给定参数和描述的问题实例。 算法: 是一组含义明确的简单指令,遵循这些指令可以解决一个问题。 问题的可解性,指存在一个算法,在有限时间和存储空间内,可求解该问题的任意实例。“停机问题”是算法不可解的。,算法复杂性,单纯形方法的复杂性,Karmarkar投影尺度算法,Karmarkar投影尺度算法,