第一章最优化问题总论无论做任何一件事,人们总希望以最少的代价取得最大的效益,也就是力求最好,这就是优化问题.最优化就是在一切可能的方案中选择一个最好的方案以达到最优目标的学科.例如,从甲地到乙地有公路、水路、铁路、航空四种走法,如果我们追求的目标是省钱,那么只要比较一下这四种走法的票价,从中选择最便宜的那一种走法就达到目标.这是最简单的最优化问题,实际优化问题一般都比较复杂.概括地说,凡是追求最优目标的数学问题都属于最优化问题作为最优化问题,一般要有三个要素:第一是目标;第二是方案;第三是限制条件.而且目标应是方案的“函数”.如果方案与时间无关,则该问题属于静态最优化问题;否则称为动态最优化问题本书只讨论静态最优化问题.§1.1最优化问题数学模型最简单的最优化问题实际上在高等数学中已遇到,这就是所谓函数极值,我们习惯上又称之为经典极值问题.例1.1对边长为a的正方形铁板,在四个角处剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?()248fxxa()40afab6ax结论是,每个角剪去边长为的正方形可使所制成的水槽容积最大.解设剪去的正方形边长为x,由题意易知,与此相应的水槽容积为令得两个驻点:第一个驻点不合实际,这是因为剪去4个边长为的正方形相当于将铁板全部剪去.现在来判断第二个驻点是否为极大点.因为是极大点2()2(2)(2)(2)fxaxxaxxxaxf2)2()((2)(6)0axaxaxax61,21例1.2求侧面积为常数体积最大的长方体体积.解设长方体的长、宽、高分别为,,,体积为,则依题意知体积为限制条件为由拉格朗日乘数法,考虑函数令xyzv(,,)vfxyzxyz2(,,)2()60xyzyzxzxya)6222(),,(2axyzxyzxyzzyxF2()02()02()0xyzFyzyzFxzzxFxyxy,,,由题意可知应是正数,由此,将上面三个等式分别乘以,并利用条件,得到比较以上三式可得2222(3)02(3)02(3)0xyzayzxyzazxxyzaxy,,.xyazxayza222333zyx,,从而x=y=z=a,右侧面积固定的长方体的最大体积客观存在,因此侧面积固定的长方体中以正方体体积最大.例1.3某单位拟建一排四间的停车房,平面位置如图1.1所示.由于资金及材料的限制,围墙和隔墙的总长度不能超过40m,为使车房面积最大,应如何选择长、宽尺寸?x1x2解设四间车房长为,宽为.由题意可知面积为且变量,,应满足即求,1x2x2121),(xxxxf1x2x405221xx1200xx,2121),(maxxxxxf1212254000xxxx,,.以上三个例子,虽然简单,但是它代表了三种类型的最优化问题.第一个例子代表无约束极值问题:一般地可表示为或这里是定义在上的可微函数.求极值的方法是从如下含有个未知数的非线性方程组中解出驻点,然后判定或验证这些驻点是不是极值点.),,,(min21nxxxf),,,(max21nxxxf),,,(21nxxxfnR12121212()0()0()0nxnxnxnfxxxfxxxfxxx,,,,,,,,,,,第二个例子代表具有等式约束的极值问题:一般地可表示为该问题的求解通常采用拉格朗日乘数法,即把这个问题转化为求的无约束极值问题.第三个例子代表具有不等式约束的极值问题.121212min()max()()0123()nnjnfxxxfxxxhxxxjmmn,,,或,,,,,,,,,,,,.121212121()()()mnmnjjnjLxxxfxxxhxxx,,,;,,,,,,,,,下面具体分析上述三种类型的最优化问题中按经典极值问题解法可能出现不能解决的问题:(1)当变量个数增加且方程组又是非线性,求解此方程只有在相当特殊情况下才能人工解出.正因为如此,通常高等数学中的求极值问题的变量个数一般不超过三个.(2)当限制条件出现不等式,无论变量数多少,按经典极值方法求解根本无法解决.要解决上述问题,直到本世纪50年代最优化理论建立以及电子计算机的迅速发展才为求解各种最优化问题提供了雄厚的基础和有效手段.而且最优化方法作为一门崭新的应用学科,有关理论和方法还没有完善,有许多问题还有待解决,目前正处于迅速发展之中.最优化问题的数学模型包含有三个要求:即变量(又称设计变量)、目标函数、约束条件.一、变量二、目标函数三、约束条件四、带约束条件的优化问题数学模型表示形式综上所述,全书所要讨论的问题是如下的(静态)最优化问题,其表示形式有三种:第一种最优化问题表示形式为第二种最优化问题表示形式为第三种最优化问题表示形式为(1.1)其中1212[]1212min()()012..()012()Tnnxxxinjnfxxxgxxxilsthxxxjmmn,,,,,,,,,,,,,,,,,,,,,,.min()()012..()012()XijfXgXilsthXjmmn,,,,,,,,,,.min()()0..()0XfGXstHX,,,X11()[()()]()[()()]TTlmGXgXgXHXhXhX,,,,,满足所有约束的点称为容许点或可行点.容许点的集合称为容许集或可行域.可用表示.一般地,对于最优化问题(1.1)的求解,是指在可行域内找一点,使得目标函数在该点取得极小值,即这样的称为问题(1.1)的最优点,也称极小点,而相应的目标函数值称为最优值;合起来,称为最优解,但习惯上,把本身称为最优解.最优点的各分量和最优值必须是有限数.{|()012()012()}ijDXgXilhXjmmn,,,,;,,,,***()min()()0..()0fXfXGXstHX,,.*()fX**(,())XfX*X§1.2最优化问题的算法讨论二维最优化问题为121212min()()012..()012ijfxxgxxilsthxxjm,,,,,,,,,,,,,.(一)约束集合当约束函数为线性时,等式约束在的坐标平面上为一条直线;不等式约束在的坐标平面上为一半平面.当约束函数为非线性时,例如,则等式约束条件:在的坐标平面上为一条曲线(如图所示).当约束函数为非线性时,例如,则不等式约束在的坐标平面上为曲线把坐标平面分成两部分当中的一部分(如图所示).综上所述,当把约束条件中的每一个等式所确定的曲线,以及每一个不等式所确定的部分在坐标平面上画出之后,它们相交的公共部分即为约束集合D.例1.4在坐标平面上画出约束集合解满足的区域为以原点为圆心,半径为1的圆;满足的区域为第一象限的扇形(如图所示).22121212{()|100}TDxxxxxx,,,(二)等高线我们知道在三维空间中表示一张曲面.(其中c为常数)在三维空间中表示平行于坐标面的一个平面,这个平面上任何一点的高度都等于常数(如图1.5所示).现在,在三维空间中曲面与平面有一条交线.交线在平面上的投影曲线是,可见曲线上的点到平面的高度都等于常数C,也即曲线上的的函数值都具有相同的值.当常数取不同的值时,重复上面的讨论,在平面上得到一族曲线——等高线.不难看出,等高线的形状完全由曲面的形状所决定;反之,由等高线的形状也可以推测出曲面的形状.在以后的讨论中,不必具体画出曲线的图形,只须在平面上变动常数画出曲线族.12()tfxx,ct21,xxc12()tfxx,ctLL12[]Txx,等高线示意图例1.5在坐标平面上画出目标函数的等高线.解因为当取时,曲线表示是以原点为圆心,半径为的圆.因此等高线是一族以原点为圆心的同心圆(如图所示)例1.6用图解法求解二维最优化问题解由例1.4得到约束集合D(如图所示).目标函数的等高线是以为圆心的同心圆,并且这族同心圆的外圈比内圈的目标函数值大.因此,这一问题成为在约束集合中找一点使其落在半径最小的那个同心圆上.不难看出,问题的最优解.2212221212min[(2)(2)]1..00xxxxstxx,,,.[22]T,12[]Txx,*12[][00]TTXxx,,二、最优化问题的迭代解法在经典极值问题中,解析法虽然具有概念简明,计算精确等优点,但因只能适用于简单或特殊问题的寻优,对于复杂的工程实际问题通常无能为力,所以极少使用最优化问题的迭代算法A是指:从某一选定的初始点出发,根据目标函数、约束函数在该点的某些信息,确定本次迭代的一个搜索方向和适当的步长,从而到达一个新点,用式子表示即为1012kkkkXXtPk,,,,(1.2)式中,——前一次已取得的迭代点,在开始计算时为迭代初始点;——新的迭代点;——第次迭代计算的搜索方向;——第次迭代计算的步长因子.kX1kXkPkt按照式(1.2)进行一系列迭代计算所根据的思想是所谓的“爬山法”,就是将寻求函数极小点(无约束或约束极小点)的过程比喻为向“山”的顶峰攀登的过程,始终保持向“高”的方向前进,直至达到“山顶”.当然“山顶”可以理解为目标函数的极大值,也可以理解为极小值,前者称为上升算法,后者称为下降算法.这两种算法都有一个共同的特点,就是每前进一步都应该使目标函数有所改善,同时还要为下一步移动的搜索方向提供有用的信息.如果是下降算法,则序列迭代点的目标函数值必须满足下列关系011()()()()kkfXfXfXfX012kXDk,,,,如果是求一个约束的极小点,则每一次迭代的新点都应该在约束可行域内,即迭代过程示意图由上面的迭代过程可知,在迭代过程中有两个规则需要确定:一个是搜索方向的选取;一个是步长因子的选取.一旦选取方法和的选取方法确定,则一种迭代算法A就确定,即不同的规则就对应不同的最优化方法.(二)收敛速度与计算终止准则(1)收敛速度作为一个算法A,能够收敛于问题的最优解当然是必要的,但光能收敛还不够,还必须能以较快的速度收敛,这才是好的算法.定义1.1设由算法A产生的迭代点列在某种“||·||”的意义下收敛于点,即,若存在实数及一个与迭代次数无关的常数使得则算法A产生的迭代点列叫做具有阶收敛速度,或算法A叫做是阶收敛的,特别地:{}kX*X*lim||||0kkXX0k*1*||||lim||||kkkXXqXX①当,迭代点列称为具有线性收敛速度或算法A称为线性收敛的.②当,或时,迭代点列叫做具有超线性收敛速度或称算法A是超线性收敛.③当时,迭代点列叫做具有二阶收敛速度或算法A是二阶收敛的.一般认为,具有超线性收敛或二阶收敛的算法是较快速的算法.0,1q}{kX0,21q0,1q}{kX2}{kX例1.7设一算法A产生迭代点列,它收敛于点试判定算法A的收敛速度.解∵,∴存在.∴算法A具有线性收敛速度.例1.8设一算法A产生迭代点列,它收敛于,试确定A的收敛速度.解∵∴.∴A具有超线性收敛.}1{kXk0*X1|01||011|limkkk110q,}1{kkkX0*X11|0|(1)limlim1(1)1||0kkkkkkkkkk11lim()01kkkkk10q,(2)计算终止准则用迭代方法寻优时,其迭代过程总不能无限制地进行下去,那么什么时候截断这种迭代呢?这就是迭代什么时候终止的问题.从理论上说,当然希望最终迭代点到达理论极小点,或者使最终迭代点与理论极小点之间的距离足够小时才终止迭代.但是这在实际上是办不到的.因为对于一个待求的优化问题,其理论极小点在哪里并不知道.所知道的只是通过迭代计算获得的迭代点列,因此只能从点列所提供的