摘要本文旨在对非线性规划的算法和应用进行研究。
非线性规划是20世纪50年代才开始形成的一门新兴学科。
1951年库恩和塔克发表的关于最优性条件(后来称为库恩-塔克条件,又称为K-T条件)的论文是非线性规划正式诞生的一个重要标志。
非线性规划在管理、工程、科研、军事、经济等方面都有广泛的应用,并且为最优设计提供了有力的工具。
在第一章我们主要介绍了非线性规划的基础知如非线性规划的数学模型,凸函数和凹函数,极值问题以及下降迭代算法等。
在第二章我们主要对约束条件的线性规划进行了具体介绍。
在无约束非线性规划中主要讨论了一维搜索法和多变量函数极值的下降方法。
第三章介绍了求解非线性规划的计算机软件并通过一些基本的例子,从而进一步加深对非线性规划进行理解。
关键词:非线性规划;约束非线性规划;最优解第一章绪论1.1非线性规划综述非线性规划是具有非线性目标函数或约束条件的数学规划,是运筹学的一个重要分支[1]。
非线性规划属于最优化方法的一种,是线性规划的延伸。
早在17世纪,Newton和Leibniz发明微积分的时代,已经提出函数的极值问题,后来又出现了Lagrange乘子法,Cauchy的最速下降法。
但直到20世纪30年代,最优化的理论和方法才得以迅速发展,并不断完善,逐步成为一门系统的学科[2]。
1939年,Kantorovich和Hitchcock等人在生产组织管理和制定交通运输方案方面首先研究和应用了线性规划。
1947年,Dantzig提出了求解线性规划的单纯形法,为线性规划的理论和算法奠定了基础,单纯形法被誉为“20世纪最伟大的创造之一”。
1951年,由Kuhn和Tucker完成了非线性规划的基础性工作 [3]。
1959—1963年,由三位数学家共同研究成功求解无约束问题的DFP变尺度法(该算法是由英国数学家W.C.Davidon提出,由法国数学家R.Fletcher和美国数学家M.J.D.Powell加以简化),该算法的研究成功是无约束优化算法的一个大飞跃,引起了一系列的理论工作,并陆续出现了多种新的算法[4]。
1965年,德国数学家C.G Broyden提出了求解非线性方程组的拟牛顿算法,并且该算法还包含了DFP算法。
1970年,四位数学家以不同角度对变尺度算法进行了深入研究,提出了BFGS 公式 (C.G Broyden,R Fletcher,D.Goldfarb,D.E Shanno) 。
实践表明该算法较之DFP算法和拟Newton法具有更好的数值稳定性。
1970年,无约束优化方法的研究出现了引入注目的成果,英国数学家L.C.W Dixon和美籍华人H.Y.Huang提出了关于“二阶收敛算法的统一研究”的研究成果,提出了一个令三个自由参数的公式族.Huang族和拟牛顿公式,它可包容前面所介绍的所有无约束优化算法。
20世纪70年代,最优化无论在理论和算法上,还是在应用的深度和广度上都有了进一步的发展。
随着电子计算机的飞速发展,最优化的应用能力越来越强,从而成为一门十分活跃的学科[5]。
近代最优化方法的形成和发展过程中最重要的事件有:1、以苏联康托罗维奇和美国丹齐克为代表的线性规划;2、以美国库恩和塔克尔为代表的非线性规划;3、以美国贝尔曼为代表的动态规划;4、以苏联庞特里亚金为代表的极大值原理等。
这些方法后来都形成体系,成为近代很活跃的学科,对促进运筹学、管理科学、控制论和系统工程等学科的发展起了重要作用非线性规划在经营管理、工程设计、科学研究、军事指挥等方面普遍地存在着最优化问题。
例如:如何在现有人力、物力、财力条件下合理安排产品生产,以取得最高的利润;如何设计某种产品,在满足规格、性能要求的前提下,达到最低的成本;如何确定一个自动控制系统的某些参数,使系统的工作状态最佳;如何分配一个动力系统中各电站的负荷,在保证一定指标要求的前提下,使总耗费最小;如何安排库存储量,既能保证供应,又使储存费用最低;如何组织货源,既能满足顾客需要,又使资金周转最快等。
对于静态的最优化问题,当目标函数或约束条件出现未知量的非线性函数,且不便于线性化,或勉强线性化后会招致较大误差时,就可应用非线性规划的方法去处理。
1.2非线性规划的基础知识对于一个实际问题,在把它归结成非线性规划问题时,一般要注意如下几点:(1)确定供选方案:首先要收集同问题有关的资料和数据,在全面熟悉问题的基础上,确认什么是问题的可供选择的方案,并用一组变量来表示它们。
(2)提出追求目标:经过资料分析,根据实际需要和可能,提出要追求极小化或极大化的目标。
并且,运用各种科学和技术原理,把它表示成数学关系式。
(3)给出价值标准:在提出要追求的目标之后,要确立所考虑目标的“好”或“坏”的价值标准,并用某种数量形式来描述它。
(4)寻求限制条件:由于所追求的目标一般都要在一定的条件下取得极小化或极大化效果,因此还需要寻找出问题的所有限制条件,这些条件通常用变量之间的一些不等式或等式来表示。
1.2.1非线性规划问题的数学模型非线性规划是具有非线性目标函数或约束条件的数学规划。
它的数学模型常表示成以下形式:min ()()0,1,2,...,()0,1,2,...,i jf X h X i mg X j l ⎧⎪==⎨⎪≥=⎩ (1.1)其中自变量12(,,...,)T n X x x x =是n 维欧氏空间n E 中的向量;()f X 是目标函数()0i h X =和()0j g X ≥是约束条件。
也可以将非线性规划的数学模型写成以下形式min ()()0,1,2,...,jf Xg X j l ⎧⎨≥=⎩ (1.2) 对于求目标函数的最大值问题,我们可以转换成求其负函数的最小值问题,从而转换成非线性规划的标准形式。
1.2.2极值问题1、局部极值和全局极值设()f X 是n 维欧氏空间中某一区域D 的函数,这一区域D 叫做可行域。
对于,如果存在,对x D ∈且||X-||,都有f()()f X ,则称为()f X 在D 上的局部极小点,f()为局部极小值。
对于,如果存在,对X 且||X ||,都有f()f(X),则称为()f X 在D 上的严格局部极小点,f()为严格局部极小值。
如果对于一切X,都有f()()f X ,则称为f(X)在D 上的全局极小点,f()为全局极小值。
如果对于一切X,都有f()f(X),则称为f(X)在D 上的严格全局极小点,f()为严格全局极小值。
2、极值点存在的判定首先引入梯度和海赛(Hessian)矩阵的定义。
设n 元函数f(X)的一阶偏导数存在,则称为函数f(X)的梯度函数。
设n元函数f(X)的二阶偏导数存在,称由f(X)的所有二阶偏导数构成的矩阵为函数f(X)的海赛(Hessian)矩阵。
它是对称矩阵。
由线性代数知道,二次型为正定的充要条件是它的矩阵H的左上角各阶主子式都大于零;而它为负定的充要条件是它的矩阵H的左上角各阶主子式依次正负相间。
二次型为正定、负定或不定时,对称矩阵H分别为成为正定的、负定的或不定的。
定理1.1:(一阶必要条件)设f(X)是n维欧氏空间中某一区域D的函数f(X)的一阶连续偏导数存在。
若为f(X)的局部极小点,则=0定理1.2:(二阶必要条件)设f(X)是n维欧氏空间中某一区域D的函数,f(X)的二阶连续偏导数存在。
若为f(X)的局部极小点,则,。
定理1.3:(二阶充分条件)设f(X)是n维欧氏空间中某一区域D的函数,f。
若,,则为f(X)的局部极小点。
、1.2.3 凸函数和凹函数1、凸凹函数的定义设f(X)是n维欧氏空间中某一凸集D上的函数,若对于任何实数()以及D中的任意两点,恒有f(+(1))f() +(1)f()则称f(X)为定义在D上的凸函数。
如果f(+(1))f() +(1)f()则称f(X)为定义在D上的严格凸函数。
将上面两式的不等号反向,即可得凹函数和严格凹函数的定义。
显然,如果f(X)为凸函数(严格凸函数),则一定是凹函数(严格凹函数)。
2.凸函数的性质设都是D上的凸函数,,,…,,则f =也是D上的凸函数。
设f(X)是定义在凸集D上的凸函数,则对任一实数,集合={X|Xf(X)}是凸集。
3.函数凸性的判定定理1.4:(一阶条件))设f(X)是n维欧氏空间中某一开凸集D的函数,f(X)的一阶连续偏导数存在。
则f(X)为D上的凸函数的充要条件是,对任意两个不同的点,恒有f () f () +()定理1.5:(二阶条件)设f(X)是n维欧氏空间中某一开凸集D的函数,f(X)的二阶连续偏导数存在。
则f(X)为D上的凸函数的充要条件是:f(X)的海赛(Hessian)矩阵H(X)在D上处处半正定。
4.凸函数的极值定理1.6:若f(X)是定义在凸集D上的凸函数,则它的任一极小点就是它在D上最小点(全局极小点),而且它的极小点形成一个凸集。
定理1.7:设f(X)是定义在凸集D上的可微凸函数,若存在点,使得对于所有的有()则是f(X)在D上的最小点(全局极小点)。
当是D得内点时,式子()对于任意都成立,这就意味着可将式子()改为。
1.2.4凸规划对一个非线性规划问题,如果:1、目标是求凸函数的最小值。
2、每个等式约束函数都是一个线性函数。
3、每个小于或等于的约束函数都是凸函数。
4、每个大于或等于约束函数都是凹函数。
则称该非线性规划问题是凸规划问题。
定理1.8:凸规划问题的可行域是凸集。
定理1.9:凸规划问题局部最优解就是总体最优解。
1.2.5下降迭代算法迭代法的基本思想是:为了求函数f (X)的最优解,首先给定一个初始估计,然后按某种算法找出比更好的解,再按照此种规划找出比更好的解,…。
即可得到一个解的序列{}。
若这个序列有极限,即=0,则称它收敛于。
若由某算法所产生的解的序列{}使目标函数f()逐渐减少,就称这算法为下降算法。
我们把=+叫做基本迭代模式。
称为搜索方向,称为步长或步长因子。
所以下降迭代算法的步骤可总结如下:(1)选定某一初始点,并令k=0;(2)确定搜索方向;(3)从出发,沿方向求步长,以产生下一个迭代点;(4)检查得到的新点是否为极小点或近似极小点。
若是,则停止迭代。
否则,令k=k+1,转回(2)继续进行迭代。
第二章约束条件的非线性规划3.1约束非线性规划的数学模型带有约束条件的极值问题称为约束极值问题,也叫规划问题。
其一般形式为(3.1)或(3.2)3.2最优性问题3.2.1最优性的基本概念定义 3.1 设是非线性规划问题的一个可行解,它使某个(j),具有下面两种情况:(1)如果,则称约束条件(j)是点的无效约束(或不起作用约束)。
(2)如果使,则称约束条件(j)是点的有效约束(或起作用约束)。
如果(j) 是点的无效约束,则说明位于可行域的内部,不在边界上,即当有微小变化时,此约束条件不会有什么影响。