最优化理论与算法课件 (5)
- 格式:pdf
- 大小:1.40 MB
- 文档页数:75
最优化理论与算法
优化理论与算法研究的目标是解决最优化问题,即给定一定的约束条
件下,求得目标函数的最佳值,优化理论与算法是计算机科学、数学、运
筹学及其它相关学科的重要组成部分,是一个多学科交叉学科。
优化理论
与算法是指对复杂环境、条件、限制等进行模型建立,并以此模型为基础,运用计算机对各种优化问题进行求解,得到最优解的方法。
它在产业中的
应用非常广泛,包括交通系统、排课模式、物流系统、科研计划等,它的
应用领域也不断扩大。
优化理论与算法包括几何优化、数值优化、组合优化、动态规划等,
其中几何优化是指把优化问题转换成几何问题,按照优化准则进行空间,
以求取最优解的方法。
数值优化是指根据给定的模型,使用计算机求解目
标函数的最优解的方法。
组合优化是指求解那些变量数量特别多,而每个
变量又只能取有限的取值,使其能达到最优解的一种技术。
动态规划是指
通过构建有限步骤,每步骤之间相互关联的一个优化过程,以求得最优解
的方法。
优化理论与算法综合利用了统计学、数理统计、概率论、凸分析、数
值分析和计算机程序的优势和特点,能有效地处理实际中复杂的优化问题。
第五章线性规划线性规划(Linear Programming,简记为LP)是数学规划的一个重要的分支,其应用极其广泛.1939年,前苏联数学家康托洛维奇(Л.B.Kah )在《生产组织与计划中的数学方法》一书中,最早提出和研究了线性规划问题.1947年美国数学家丹泽格(G. B. Dantzig)提出了一般线性规划的数学模型及求解线性规划的通用方法─单纯形方法,为这门科学奠定了基础.此后30年,线性规划的理论和算法逐步丰富和发展.1979年前苏联数学家哈奇扬提出了利用求解线性不等式组的椭球法求解线性规划问题,这一工作有重要的理论意义,但实用价值不高.1984年在美国工作的印度数学家卡玛卡(N. Karmarkar)提出了求解线性规划的一个新的内点法,这是一个有实用价值的多项式时间算法.这些为线性规划更好地应用于实际提供了完善的理论基础和算法.第一节线性规划问题及其数学模型一、问题的提出例1 某工厂在计划期内要安排生产Ⅰ、Ⅱ两种产品,已知条件如表所示。
问应如何安排计划使该工厂获利最多?ⅠⅡ现有资源设备原材料A 原材料B 14248台时16kg12kg每件利润23ⅠⅡ现有资源设备原材料A 原材料B 1402048台时16kg12kg每件利润23解: 设x 1、x 2 分别表示在计划期内产品Ⅰ、Ⅱ的产量。
12max 23z x x =+..s t 1228x x +≤1416x ≤2412x ≤12,0x x ≥二、线性规划问题的标准型112211112211211222221122123max ..,,0n nn n n n m m m mn n mn z c x c x c x s t a x a x a x b a x a x a x b a x a x a x b x x x x =+++⎧⎪+++=⎪⎪+++=⎨⎪⎪+++=⎪≥⎩,,其中1,,0m b b ≥11max ..,1,2,,0,1,2,,nj jj nij j i j j z c x s t a x b i mx j n=====≥=∑∑ 12(,,,)T n c c c =c 12(,,,)Tn x x x =x 12(,,,)Tm b b b =b 111212122212n nm m mn a a a a a a a a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦A 12[,,,]n = p p pmax ..()Tz s t ⎧=⎪=≥⎨⎪≥⎩c x Ax b b x 001max ..()Tnj j j z s tx =⎧=⎪⎪=≥⎨⎪⎪≥⎩∑c xp bb x 00对于不是标准形式的线性规划问题,可以通过下列方法将线性规划的数学模型化为标准形式:(1)目标函数的转换对min z 可以化max()z -(2)右端项的转换对0i b <,给方程两边同时乘以1-(3)约束条件的转换约束条件为≤方程左边加上一个变量,称为松弛变量约束条件为≥方程左边减上一个变量,称为剩余变量(4)变量的非负约束变量j x 无限制时,令,,0j j j j j x x x x x ''''''=-≥变量0j x ≤时,令j jx x '=-例将下列线性规划模型转化为标准形式12312312312312min 23..7232500x x x s t x x x x x x x x x x x -+-⎧⎪++≤⎪⎪-+≥⎨⎪--=-⎪≥≥⎪⎩,解(1)变量的非负约束令345x x x =-1245max 233x x x x -+-..s t 612457x x x x x ++-+=712452x x x x x -+--=12453225x x x x -++-=§2 两变量线性规划问题的图解法例1 求下列线性规划的解12121212max ..284300z x x s t x x x x x x =+⎧⎪+≤⎪⎪≤⎨⎪≤⎪≥≥⎪⎩,解(1)画可行域c A B D C 2x 1x O (2)画出目标函数的梯度向量:(3)作目标函数的一条等值线,120x x z +=将等值线沿梯度方向移动当等值线即将离开可行例2 求下列线性规划的解12121212max 2..284300z x x s t x x x x x x =+⎧⎪+≤⎪⎪≤⎨⎪≤⎪≥≥⎪⎩,解(1)画可行域c A B D C 2x 1x O (2)画出目标函数的梯度向量:(3)作目标函数的一条等值线,1202x x z +=将等值线沿梯度方向移动当等值线即将离开可行域时与可行域“最后的交点点为问题的最优解例3 求下列线性规划的解12121212max ..2200z x x s t x x x x x x =+⎧⎪-≤⎪⎨-≥-⎪⎪≥≥⎩,c2x 1x O无解例4 求下列线性规划的解12121212min 3..123600z x x s t x x x x x x =-⎧⎪≤⎪⎨≥⎪⎪≥≥⎩++,2x 1x O线性规划问题的性质:(1)线性规划的可行域为凸集,顶点个数有限.若可行域非空有界,则可行域为凸多边形.(2)线性规划可能有唯一最优解,可能有无数多个最优解,也可能无解最优解.无最优解可能是目标函数在可行域上无界,也可能可行域为空集.(3)若线性规划有最优解,则最优解必可在可行域的某个顶点达到.若两个顶点都为最优解,那么这两点连线上的所有点都是线性规划的最优解.§3 线性规划解的概念及其性质1 线性规划解的概念考虑线性规划问题max ..()Tz s t ⎧=⎪=≥⎨⎪≥⎩c x Ax b b x 00定义.1 矩阵A 中任何一组m 个线性无关的列向量构成的可逆矩阵B 称为线性规划的一个基矩阵与这些列向量对应的变量称为基变量(basis variable )其余变量称为基对应的非基变量(nonbasis variable )B 若设一个基为12(,,)m B p p p = ,12,,,m x x x ——为基B 对应的基变量1,,m n x x + ——为基B 对应的非基变量1B m x x x ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦1m N n x x x +⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦12(,,,)m m n ++= N p p p (,)=A B N 从而令=Ax b 则(,)N x ⎡⎤=⎢⎥⎣⎦B x B N b11B Nx B b B Nx --=-B N Bx Nx b+=令0N x =则1B x B b-=10B b -⎡⎤⎢⎥⎣⎦——基本解(basis solution )满足10B b -⎡⎤≥⎢⎥⎣⎦,=≥0Ax b x 的基本解——基本可行解(basis feasible solution )对应的基称为可行基(feasible basis ).B 可以写成即:定义4 若基本可行解中所有基变量都为正,这样的基本可行解称为非退化解(non-degenerate solution).若基本可行解中某基变量为零,这样的基本可行解称为退化解(degenerate solution).例1212112max ..28400z x x s t x x x x x =-⎧⎪+≤⎪⎨≤⎪⎪≥≥⎩,标准化得:12123141234max ..28400,00z x x s t x x x x x x x x x =-⎧⎪++=⎪⎨+=⎪⎪≥≥≥≥⎩,,12341210(,,,)1001⎡⎤==⎢⎥⎣⎦A p p p p 子阵是否为基基变量非基变量基本解目标函数值134(,)=B p p 34,x x 12,x x (0,0,8,4)是231(,)=B p p 31,x x 24,x x (4,0,4,0)312(,)=B p p 12,x x 34,x x (4,2,0,0)424(,)=B p p 24,x x 13,x x (0,4,0,4)-4514(,)=B p p 14,x x 23,x x (8,0,0,4)-是是是是042基本可行解1x O(4,0)(4,2)(0,4)(8,0)2x 顶点2 解的判别定理定理1 最优解的判别准则设B 为线性规划LP 的一个基,1(1)0-≥B b 1(2)T T--≥0Bc B A c 则基对应的基本可行解1-⎡⎤⎢⎥⎣⎦0B b 是LP 的最优解.1(1,2,,)σ--== TBj j j c B p c j n 为变量对应的检验数j x 112[0,,0,,,]σσσ-++-= ,T TBm m n c B A c 显然基变量对应得检验数为零.定理2 无穷多个最优解的判别定理在线性规划的最优解中,某个非基变量对应的检验数为零,则线性规划有无数多最优解.定理3 无界解的判别定理设B 为线性规划的一个可行基,若基本可行解中s x 对应的检验数0σ<s ,且1-≤0s B p 则线性规划具有无界解(或称无解).某非基变量§3.4 单纯形表设B 为线性规划的一个基,x 为对应的可行解,则=Ax b两边同乘得1-B 11--=B Ax B b两边同乘得T Bc 11T T --=BBc B Ax c B b T z =c xTz -=c x 11T T --+-=TBBz c B Ax c x c B b 11(T T --+-=)TBBz c B A c x c B b1111()T TT z ----⎧+-=⎨=⎩BBc B A c x c B b B Ax B b 11111T T Tz ----⎡⎤⎡⎤-⎡⎤=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦0BBc B b c B A c x B A B b 定义矩阵1111TT----⎡⎤-⎢⎥⎣⎦T BBc B b c B A c B bB A 为基B 对应的单纯形表(table of simplex ),记为()T B1111()T T----⎡⎤-=⎢⎥⎣⎦T BBc B b c B A c T B B bB A 检验数函数值基变量的值各变量的系数100T b -=Bc B b 101020(,,,)--= T TBn c B A c b b b 10201-⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥ b b B b则单纯形表可写成000101011102()⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦B n n m m mn b b b b b b T b b b 1112121222111112(,,)---⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎣⎦n n n m m mn b b b b b b B A B p B p bb b上例中1212112max ..28400z x x s t x x x x x =-⎧⎪+≤⎪⎨≤⎪⎪≥≥⎩,标准化得:121231412max ..28400z x x s t x x x x x x x =-⎧⎪++=⎪⎨+=⎪⎪≥≥⎩,12341210(,,,)1001⎡⎤==⎢⎥⎣⎦A p p p p 子阵是否为基基变量非基变量基本解目标函数值134(,)=B p p 34,x x 12,x x (0,0,8,4)是231(,)=B p p 31,x x 24,x x (4,0,4,0)312(,)=B p p 12,x x 34,x x (4,2,0,0)424(,)=B p p 24,x x 13,x x (0,4,0,4)-4514(,)=B p p 14,x x 23,x x (8,0,0,4)-是是是是042基本可行解1x O(4,0)(4,2)(0,4)(8,0)2x 顶点13410(,)01⎡⎤==⎢⎥⎣⎦B p p 231(,)=B p p 12341210(,,,)1001⎡⎤==⎢⎥⎣⎦A p p p p T(0,0)=B C 10()T⎡⎤-=⎢⎥⎣⎦c T B b A 34011008121041001z x x -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦23140101()4021141001x x ⎡⎤⎢⎥=-⎢⎥⎢⎥z T B 121101--⎡⎤=⎢⎥⎣⎦B 31401014021141001z x x ⎡⎤⎢⎥−−→-⎢⎥⎢⎥⎣⎦T(0,1)=B C单纯形表的特点:1、基变量对应的检验数为零2、基变量的系数构成单位阵§5旋转变换(基变换)设已知12(,,,,,)= r m j j j j B p p p p T()=B 1 r m j j j z x x x 1sn x x x 0001001011110102⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦sn s n r r rs rn m m ms mn b b b b b b b b b b b b b b b b为了将s x 变为基变量,而将r j x 变为非基变量,必须使表中的第s 列向量变为单位向量,变换按下列步骤进行:(1)将()T B 中第r 行,第s 列的元素化为1.01(,,,,,1,,) rj r rnr rs rs rs rsb b b b b b b b (2)将()T B 中第s 列的的其余元素化为0.0101(,,,,,0,,)---- is rn is rj is r is r i i ij in rs rs rs rsb b b b b b b b b b b b b b b b由此得出变换后矩阵中各元素的变换关系式如下,其中,01== ,,,rjrj rsb b j nb ,,01,01=-≠== ,,,,,,is rjij ij rsb b b b i r i m j nb 变换式称为旋转变换rs b 称为旋转元,r称为旋转行称为旋转列,s s x 称为入基变量,称为出基变量,r j x {,}r s定理3.5.1,01== ,,,rj rj rsb b j n b ,,0,01=-≠== ,,,,,is rj ij ij rsb b b b i r i m j n b 在变换之下,将基12(,,,,,)= r m j j j j B p p p p 的单纯形表变为基12(,,,,,)= m j s j j B p p p p 的单纯形表第6节单纯形法基本思路是:线性规划(通常是求最小值的形式)若有最优解,其必定在可行域(在相应几何空间中是一个凸多面体)的顶点达到,故从某一个顶点出发,沿着凸多面体的棱向另一顶点迭代,使得目标函数的值增加,经过有限次迭代,将达到最优解点.1.入基变量及出基变量的确定入基变量的确定由上面可知,目标函数用非基变量表示的形式为01n j jj m z z x σ=+=-∑若某检验数0j σ<则j x 的系数大于零,将j x 由零变为非零,目标函数值增大.所以,为了使的取值目标函数值增加,可以将某检验数0j σ<对应的非基变量j x 中的某个变为基变量.{}min 0j s j σ=<则s x 可选作为入基变量.即:在负检验数中,列标最小的检验数对应的非基变量入基.2.出基变量的确定在确定出基变量时应满足两个原则:(1)目标函数值不减;(2)保证新的基本解为基本可行解.0min 0,0i is is b b i m b θ⎧⎫=>≤≤⎨⎬⎩⎭min ,00i is is b r i b i m b θ⎧⎫==>≤≤⎨⎬⎩⎭,2 单纯形法设已知一个初始可行基及B T()B 基变量指标集合为{}1,,B m J j j = 非基变量的指标集合为{}1,2,,\N BJ n J =单纯形法若所有()00j N b j J ≥∈,则停止,最优解为0,1,,0,ij i j N x b i m x j J **⎧==⎪⎨=∈⎪⎩否则转(2).(1)最优性检验(2)选入基变量{}0min 0,j N s j b j J =<∈若()01~is b i m ≤=,则停止,(LP)无最优解,否则转(3)(3)选出基变量0min 0,0i is is b b i m b θ⎧⎫=>≤≤⎨⎬⎩⎭0min ,00i is is b r i b i m b θ⎧⎫==>≤≤⎨⎬⎩⎭,(4)作{},r s 旋转运算,01rj rj rsb b j n b == ,,,,,01,01is rj ij ij rsb b b b i r i m j n b =-≠== ,,,,,,得B 的单纯形表()()ijT B b =,以ij b 代替ij b ,转(1)例1 求线性规划问题的解解标准型为:121231425max 2328416.412,,,,0z x x x x x x x s t x x x x x x x =+++=⎧⎪+=⎪⎨+=⎪⎪≥12121212max 2328416.412,0z x x x x x s t x x x =++≤⎧⎪≤⎪⎨≤⎪⎪≥⎩12123142512345max 2328416.412,,,,0z x x x x x x x s t x x x x x x x =+++=⎧⎪+=⎪⎨+=⎪⎪≥⎩-20-381612121004001004001345z x x x 12345x x x x x 000⎤⎥⎥⎥⎥⎥⎥⎡⎢⎢⎢⎢⎢⎢0T()B =0345[,,]B p p p =00T()T c B bA ⎡⎤-=⎢⎥⎣⎦-20-381612121004001004001345z x x x 12345x x x x x 000⎤⎥⎥⎥⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎢⎣0T()B =8/116/408-3441202101001/400400135z x x 12345x x x x x 01/20⎤⎥⎥⎥⎥⎥⎥⎡⎢⎢⎢⎢⎢⎢1/4-41x08-3441202101001/400400135z x x 12345x x x x x 01/20⎤⎥⎥⎥⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎢⎣1/4-1x 4/212/40140244011/201001/40002-15z x 12345x x x x x 3/21/80⎤⎥⎥⎥⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎢⎣1/8-1x 32x 1/2例2求线性规划问题的解解标准型为:121231425max 228416.412,,,,0z x x x x x x x s t x x x x x x x =+++=⎧⎪+=⎪⎨+=⎪⎪≥12121212max 228416.412,0z x x x x x s t x x x =++≤⎧⎪≤⎪⎨≤⎪⎪≥⎩12123142512345max 228416.412,,,,0z x x x x x x x s t x x x x x x x =+++=⎧⎪+=⎪⎨+=⎪⎪≥⎩-10-281612121004001004001345z x x x 12345x x x x x 000⎤⎥⎥⎥⎥⎥⎥⎡⎢⎢⎢⎢⎢⎢0T()B =0345[,,]B p p p =00T()T c B bA ⎡⎤-=⎢⎥⎣⎦-10-281612121004001004001345z x x x 12345x x x x x 000⎤⎥⎥⎥⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎢⎣0T()B =8/116/404-2441202101001/400400135z x x 12345x x x x x 01/40⎤⎥⎥⎥⎥⎥⎥⎡⎢⎢⎢⎢⎢⎢1/4-41x0-2441202101001/400400135z x x 12345x x x x x 00⎤⎥⎥⎥⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎢⎣1/4-1x 4/212/4080244011/201001/400015z x 12345x x x x x 100⎤⎥⎥⎥⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎢⎣1/8-1x 32x 41/42-1/2080244011/201001/400015z x 12345x x x x x 100⎤⎥⎥⎥⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎢⎣1/8-1x 2x 2T 0803280101/410101/2-004-12z 12345x x x x x 00⎤⎥⎥⎥⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎢⎣01x 2x 42-1/25x 11212x k x k x =+12120,1,1k k k k ≤≤+=全部最优解为§7 两阶段法第二阶段从初始可行基开始,用单纯形法求解原问题.(LP )max ..(0)0T z c x s t Ax b b x ⎧=⎪=≥⎨⎪≥⎩(ALP )max ..0()T w s t z ⎧=-⎪-=⎪⎨+≥⎪⎪≥⎩00T e y c x A =b b x y x 第一阶段引入人工变量,构造辅助问题,求辅助问题的最优解,得出原问题的初始可行基及对应的基本可行解.(ALP)12112211112211121122222211212312max..0 ,,,,0mn nn nn nm m mn n m mn mw y y ys t z c x c x c xa x a x a x y ba x a x a x y ba x a x a x y bx x x x y y y=----⎧⎪----=⎪⎪++++=⎪++++=⎨⎪⎪++++=⎪⎪≥⎩,,,,,121111211112122122212000000100()010001m m m m i i i in i=1i i i n n n m m m mn b a a a c c c b a a a T B b a a a b a a a ===⎡⎤----⎢⎥⎢⎥---⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦∑∑∑∑。
第五章 拟牛顿法§5.1 拟牛顿法牛顿法具有收敛速度快的优点,但需要计算Hesse 矩阵的逆,计算量大。
本章介绍的拟牛顿法将用较简单的方式得到Hesse 矩阵或其逆的近似,一方面计算量不大,另一方面具有较快的收敛速度,这类算法是无约束最优化问题最重要的求解方法。
一、拟牛顿条件设()f x 在nR 上二次可微,为了获得Hesse 矩阵2()()G x f x =∇在1k x +处的近似,先研究如下问题。
考虑()f x 在1k x +附近的二次近似:1111111)()()()2()(TT k k k k k k g x x G x f x f x x x x +++++++-+--≈. 两边求导,有 111()()k k k g x g G x x +++≈+- 令k x x =,有 111()k k k k k g g G x x +++≈+- 再令 1k k k s x x +≈-,1k k k y g g +≈-则有 1k k k y G s +≈ 或 11kkk G y s -+≈.因此,我们要求构造出的Hesse 矩阵的近似1k B +或Hesse 矩阵逆的近似1k H +应分别满足:1k k k B s y += 或 1k kk H y s += (5.1)它们均称之为拟牛顿条件。
二、一般拟牛顿算法1) 给出初始点0x R ∈,0H I =,0ε>,:0k =.2) 若k g ε≤,停止;否则,计算k k k d H g =-(拟牛顿方向).3) 沿方向k d 进行线性搜索,0k α>(可以是精确,也可非精确).令1k k k k x x d α+=+. 4) 校正k H 产生1k H +,使拟牛顿条件满足. 5) :1k k =+, 转2)拟牛顿法较之牛顿法有下述优点: 1) 仅需梯度(牛顿法需Hesse 矩阵);2) k H 保持正定,因而方向具有下降性质(而牛顿法中k G 可能不定); 3) 每次迭代需2()O n 次运算,而牛顿法需3()O n 次运算。