前面几章,我们论述了线性规划及其扩展问题,这些问题的约束条件和目标函数都是关于决策变量的一次函数。虽然大量的实际问题可以简化为线性规划及其扩展问题来求解,但是还有相当多的问题很难用线性函数加以描述。如果目标函数或约束条件中包含有非线性函数,就称这样的规划问题为非线性规划问题。
由于人们对实际问题解的精度要求越来越高,非线性规划自20世纪70年代以来得到了长足的发展;目前,已成为运筹学的一个重要分支,在管理科学、最优设计、系统控制等许多领域得到了广泛的应用。
一般来讲,非线性规划问题的求解要比线性规划问题的求解困难得多;而且也不象线性规划问题那样具有一种通用的求解方法(单纯形法)。非线性规划没有能够适应所有问题的一般求解方法,各种方法都只能在其特定的范围内发挥作用。
本章在简要介绍非线性规划基本概念和一维搜索的基础上,重点介绍无约束极值问题和约束极值问题的求解方法。
1.1 非线性规划问题。
例6-1] 某商店经销、两种产品,售价分别为20和380元。据统计,售出一件产品的平均时间为0.5小时,而售出一件产品的平均时间与其销售的数量成正比,表达式为。
若该商店总的营业时间为1000小时,试确定使其营业额最大的营业计划。
解:设和分别代表商店经销a、b两种产品的件数,于是有如下数学模型:
例6-2] 在层次分析(analytic hierarchy process, 简记为 ahp)中,为了进行多属性的综合评价,需要确定每个属性的相对重要性,即它们各自的权重。为此,将各属性进行两两比较可得如下判断矩阵:
其中:是第个属性与第个属性的重要性之比。
现需要从判断矩阵求出各属性的权重,为使求出的权重向量在最小二乘意义上能最好地反映判断矩阵的估计,由可得:
1.2 非线性规划问题的数学模型。
同线性规划问题的数学模型一样,非线性规划问题的数学模型可以具有不同的形式;但由于我们可以自由地实现不同形式之间的转换,因此我们可以用如下一般形式来加以描述:
其中是维欧氏空间中的向量点。
又因等价于两个不等式:
因此非线性规划的数学模型也可以表示为:
1.3 非线性规划问题的图示。
例6-3] 求解下述非线性规划问题。
若令其目标函数,目标函数成为一条曲线或一张曲面;通常称为等值线或等值面。此例,若设和可得两个圆形等值线,见图6-1。
由图6-1可见,等值线和约束条件直线6-6相切,切点即为此问题的最优解,,其目标函数值。
在此例中,约束对最优解发生了影响,若以。
代替原来的约束,则新的非线性规划的最优解变为,即图6-1中的点,此时。由于此最优点位于可行域的内部,故事实上约束。
并未发挥约束作用,问题相当于一个无约束极值问题。
注意:线性规划存在最优解,最优解只能在其可行域的边缘上(特别能在可行域的顶点上)得到;而非线性规划的最优解(如果存在)则可能在可行域的任意一点上得到,并非仅局限在边缘上。
2-1局部极值与全局极值。
因为线性规划的目标函数和约束条件都是线性函数,所以其可行域是凸集,因此求得的最优解就一定是整个可行域上的全局最优解。非线性规划则不然,局部最优解未必就一定是全局最优解。下面就局部和全局极值问题给出如下一些定义:
1)对于均有不等式,则称为在上的局部极小点,为局部极小值;
2)对于均有不等式,则称为在上的严格局部极小点,为严格局部极小值;
3)对于均有不等式,则称为在上的全局极小点,为全局极小值;
4)对于均有不等式,则称为在上的严格全局极小点,为严格全局极小值。
2-2极值点存在的条件。
定理1(必要条件)] 设是上的一个开集,在上有一阶连续偏导数,且在点取得局部极值,则必有。
或。式(6-2)中,称为函数在点处的梯度。
由数学分析可知,的方向为点处等值面(等值线)的法线方向,沿这一方向函数值增加最快,见图6-2。
满足或的点称为平稳点或驻点。极值点一定是驻点,但驻点不一定是极值点。
定理2(充分条件)] 设是上的一个开集,在上具有二阶连续偏导数,,若且对任何非零向量都存在:
则为的严格局部极小点。此外,称为在点处的海赛(hesse)矩阵。
注:二次型,对于任意总有:
1) 若,则称二次型和对称矩阵正定;
2) 若,则称二次型和对称矩阵半正定;
3) 若,则称二次型和对称矩阵负定;
4) 若,则称二次型和对称矩阵半负定;
5) 若二次型不定,则称对称矩阵不定。
由线性代数知识可知:若矩阵正定,则其各阶左对角方阵的行列式大于零;若矩阵负定,则其各阶左对角方阵的行列式负、正交替。
现以代表矩阵中的元素,上述矩阵正定的条件可表示为:
矩阵负定的条件可表示为:
定理2(充分条件)等价于,如果在点的梯度为零且海赛矩阵正定,则为的严格局部极小点。
2-3凸函数和凹函数。
1.定义。设为定义在中某一凸集上的函数,若对于任何实数()以及中的任意两点和,恒有:
则称为定义在上的凸函数,见图6-3;若上式为严格不等式,则称为定义在上的严格凸函数。改变不等号的方向,即可得到凹函数和严格凹函数的定义。
凸函数和凹函数的几何意义是十分明显的,若函数图形上任意两点的连线,处处都不在函数图形的下方,则此函数是凸函数;若函数图形上任意两点的连线,处处都不在函数图形的上方,则此函数是凹函数。因为凸函数是研究非线性规划求解的基础,所以凸函数的性质就显得非常重要了。
2.性质。性质1] 设为定义在凸集上的凸函数,则对于任意实数,函数也是定义在上的凸函数。
性质2] 设和为定义在凸集上的两个凸函数,则其和=+仍然是定义在上的凸函数。
性质3] 设为定义在凸集上的凸函数,则对于任意实数,集合是凸集。
性质4] 设为定义在凸集上的凸函数,则它的任一极小点就是它在上的最小点(全局极小点);而且它的极小点形成一个凸集。
性质5] 设为定义在凸集上的可微凸函数,若它存在点,使得对于所有的有,则是在上的最小点(全局极小点)。
3.判定。1) 根据凸函数的定义进行判定。
2) 根据一阶条件进行判定。
设为上的开凸集,在上具有一阶连续偏导数,则为上的凸函数的充分必要条件是,对于属于的任意两个不同点和恒有:
3) 根据二阶条件进行判定。
设为上的开凸集,在上具有二阶连续偏导数,则为上的凸函数的充分必要条件是:的海赛矩阵在上处处半正定()。
例6-4] 试证明是严格的凸函数。
1)定义证明:
对取任意两点和,分别构造两点的线性组合和两点函数值的线性组合;即在的情况下,取,看下式是否成立:
显然恒成立。
为严格的凸函数,同理也为严格的凸函数;所以为严格的凸函数。
2)一阶条件证明:
取任意两点、,从而,看下式是否成立:
显然恒成立。
所以为严格的凸函数。
3)二阶条件证明:
的海赛矩阵,因正定,固为严格的凸函数。
3-1 凸规划的定义。
考虑非线性规划:
假定其中为凸函数,为凹函数(为凸函数),这样的非线性规划称为凸规划。
凸规划的可行域是凸集,其局部最优解即为全局最优解;若为严格凸函数,最优解若存在必唯一。由此可见,凸规划是一类比较简单而又具有重要理论意义的非线性规划。由于线性函数既可以视为凸函数也可以视为凹函数,故线性规划也属于凸规划。
例6-5] 判断下述非线性规划是否是凸规划。
解:的海赛矩阵正定,故为严格凸函数;的海赛矩阵半负定,故为凹函数。由于其他约束条件均为线性函数,所以此非线性规划是凸规划。
3-2下降迭代算法。
1.基本思想。
给定一个初始估计解,然后按某种规则(即算法)找出一个比更好的解,如此递推即可得到一个解的序列,若这一解的序列有极限,即。
则称为最优解。
2.基本问题。
由于递推步骤的有限性,一般说很难得到精确解,当满足所要求的精度时即可停止迭代而得到一个近似解。
3.下降算法。
若某种算法产生的解序列能使目标函数逐步减少,那么就称此算法为下降算法。“下降”的要求其实是很容易满足的,因此下降算法包括了很多具体的算法。
若从出发沿任何方向移动都不能使目标函数下降,则是一个局部极小点;若从出发至少存在一个方向能使目标函数下降,则可选定某一下降方向,沿这一方向前进一步,得到下一个点。
沿方向前进一步相当于在射线上选定新的点;其中为搜索方向,为步长。
确定搜索方向是关键的一步,各种算法的区别主要在于确定搜索方向的方法不同。
步长的选定一般都是以使目标函数在搜索方向上下降最多为依据的,称为最佳步长;即沿射线求目标函数的极小值:
k:min()
由于确定步长是通过求以为变量的一元函数()的极小点来实现的,故称这一过程为一维搜索。
一维搜索有一个非常重要的性质,即在搜索方向上所得最优点的梯度和搜索方向正交;这一性质可表达成:
则有:其几何意义如图6-4所示。
因为真正的极值点在求解之前并不知道,因此只能根据相继两次迭代的结果来建立终止准则。通常采用的准则(1,2,3,4,5是事先给定的充分小的正数)有:
1) 相继两次迭代的绝对误差:
2) 相继两次迭代的相对误差:
3) 目标函数梯度的模充分小:
一维搜索即沿某一已知方向求目标函数的极小点,一维搜索的方法很多,此教材只介绍斐波那契和**分割两种方法。
4-1斐波那契法。
一维搜索过程是建立在一个被称为斐波那契数序列基础上的,斐波那契数序列是具有如下递推关系的无穷序列:
斐波那契法成功地实现了单峰函数极值范围的缩减。设某一单峰函数在上有一极小点,在此区间内任意取两点和,使,计算其函数值可能出现以下两种情况:
1),如图6-5所示;此时极小点必在内。
2),如图6-6所示;此时极小点必在内。
这说明只要在区间内任意取两点和()并计算其函数值加以比较,就可以把搜索区间缩减成或。若要继续缩小搜索区间或,只需在区间内再取一点算出其函数值并与或加以比较即可。
由此可见,计算函数的次数越多,搜索区间就缩得越小,即区间的缩短率(缩短后的区间长度与原区间长度之比)与函数的计算次数有关。现在要问“计算函数值次,能把区间缩减到什么程度呢?”或者换句话讲“计算函数值次,能把原来多大的区间缩减成单位区间呢?”
MATLAB非线性规划问题
实例1 表面积为36平方米的最大长方体体积。建立数学模型 设x y z分别为长方体的三个棱长,f为长方体体积。max f x y 36 2 x y 2 x y 实例2 投资决策问题。某公司准备用5000万元用于a b两个项目的投资,设x1 x2分别表示配给项目a b的投资。预计项目a b的年收益分别...
数学实验第7次作业非线性规划
非线性规划。一实验目的。1 掌握用matlab优化工具箱和lingo解非线性规划的方法 2 练习建立实际问题的非线性规划模型。二实验内容。1对问题增加以下条件,并分别取初值和,求解非线性规划 再试取不同的初值或用分析梯度计算,比较计算结果。你能从中得到什么启示?初步解决 对于原式,首先做如下处理。求...
第4章线性规划初步
在日常生活中我们经常会遇到这样的问题 如何合理安排有限的人力 物力 财力等资源,使得这些资源的效能能够充分地发挥,以获取最佳的经济效益。线性规划就是辅助人们寻求解决这些问题的一种数学方法。在本章的学习中,我们将把一些简单的实际问题归结为线性规划的问题,通过学习解决这些问题的思想和方法,对线性规划的建...