很好的资料!!!
顶一个!!!
§1 非线性规划
1.1 非线性规划的实例与定义
如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题.一般说来,解非线性规划要比解线性规划问题困难得多.而且,也不象线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围.
下面通过实例归纳出非线性规划数学模型的一般形式,介绍有关非线性规划的基本概念.
例1 (投资决策问题)某企业有个项目可供选择投资,并且至少要对其中一个项目投资.已知该企业拥有总资金元,投资于第个项目需花资金元,并预计可收益元.试选择最佳投资方案.
解 设投资决策变量为
,,
则投资总额为,投资总收益为.因为该公司至少要对一个项目投资,并且总的投资金额不能超过总资金,故有限制条件
另外,由于只取值0或1,所以还有
最佳投资方案应是投资额最小而总收益最大的方案,所以这个最佳投资决策问题归结为总资金以及决策变量(取0或1)的限制条件下,极大化总收益和总投资之比.因此,其数学模型为:
s.t.
上面例题是在一组等式或不等式的约束下,求一个函数的最大值(或最小值)问题,其中目标函数或约束条件中至少有一个非线性函数,这类问题称之为非线性规划问题,简记为(NP).可概括为一般形式
(NP)
其中称为模型(NP)的决策变量,称为目标函数,和称为约束函数.另外, 称为等式约束, 称为不等式约束.
对于一个实际问题,在把它归结成非线性规划问题时,一般要注意如下几点:
(i)确定供选方案:首先要收集同问题有关的资料和数据,在全面熟悉问题的基础上,确认什么是问题的可供选择的方案,并用一组变量来表示它们.
(ii)提出追求目标:经过资料分析,根据实际需要和可能,提出要追求极小化或极大化的目标.并且,运用各种科学和技术原理,把它表示成数学关系式.
(iii)给出价值标准:在提出要追求的目标之后,要确立所考虑目标的"好"或"坏"的价值标准,并用某种数量形式来描述它.
(iv)寻求限制条件:由于所追求的目标一般都要在一定的条件下取得极小化或极大化效果,因此还需要寻找出问题的所有限制条件,这些条件通常用变量之间的一些不等式或等式来表示.
1.2 线性规划与非线性规划的区别
如果线性规划的最优解存在,其最优解只能在其可行域的边界上达到(特别是可行域的顶点上达到);而非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到.
1.3 非线性规划的Matlab解法
Matlab中非线性规划的数学模型写成以下形式
,
其中是标量函数,是相应维数的矩阵和向量,是非线性向量函数.
Matlab中的命令是
X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)
它的返回值是向量,其中FUN是用M文件定义的函数;X0是的初始值;A,B,Aeq,Beq定义了线性约束,如果没有等式约束,则A=[],B=[],Aeq=[],Beq=[];LB和UB是变量的下界和上界,如果上界和下界没有约束,则LB=[],UB=[],如果无下界,则LB=-inf,如果无上界,则UB=inf;NONLCON是用M文件定义的非线性向量函数;OPTIONS定义了优化参数,可以使用Matlab缺省的参数设置.
例2 求下列非线性规划问题
(i)编写M文件fun1.m
function f=fun1(x);
f=x(1)^2+x(2)^2+8;
和M文件fun2.m
function [g,h]=fun2(x);
g=-x(1)^2+x(2);
h=-x(1)-x(2)^2+2; %等式约束
(ii)在Matlab的命令窗口依次输入
options=optimset;
[x,y]=fmincon(''fun1'',rand(2,1),[],[],[],[],zeros(2,1),[], ...
''fun2'', options)
就可以求得当时,最小值.
1.4 求解非线性规划的基本迭代格式
记(NP)的可行域为.
若,并且
则称是(NP)的整体最优解,是(NP)的整体最优值.如果有
则称是(NP)的严格整体最优解,是(NP)的严格整体最优值.
若,并且存在的邻域,使
,
则称是(NP)的局部最优解,是(NP)的局部最优值.如果有
则称是(NP)的严格局部最优解,是(NP)的严格局部最优值.
由于线性规划的目标函数为线性函数,可行域为凸集,因而求出的最优解就是整个可行域上的全局最优解.非线性规划却不然,有时求出的某个解虽是一部分可行域上的极值点,但并不一定是整个可行域上的全局最优解.
对于非线性规划模型(NP),可以采用迭代方法求它的最优解.迭代方法的基本思想是:从一个选定的初始点出发,按照某一特定的迭代规则产生一个点列,使得当是有穷点列时,其最后一个点是(NP)的最优解;当是无穷点列时,它有极限点,并且其极限点是(NP)的最优解.
设是某迭代方法的第轮迭代点,是第轮迭代点,记
(1)
这里,显然是由点与点确定的方向.式(1)就是求解非线性规划模型(NP)的基本迭代格式.
通常,我们把基本迭代格式(1)中的称为第轮搜索方向,为沿方向的步长,使用迭代方法求解(NP)的关键在于,如何构造每一轮的搜索方向和确定适当的步长.
设,若存在,使
,
称向量是在点处的下降方向.
设,若存在,使
,
称向量是点处关于的可行方向.
一个向量,若既是函数在点处的下降方向,又是该点关于区域的可行方向,则称之为函数在点处关于的可行下降方向.
现在,我们给出用基本迭代格式(1)求解(NP)的一般步骤如下:
0° 选取初始点,令.
1° 构造搜索方向,依照一定规则,构造在点处关于的可行下降方向作为搜索方向.
2° 寻求搜索步长.以为起点沿搜索方向寻求适当的步长,使目标函数值有某种意义的下降.
3° 求出下一个迭代点.按迭代格式(1)求出
.
若已满足某种终止条件,停止迭代.
4° 以代替,回到1°步.
1.5 凸函数,凸规划
设为定义在维欧氏空间中某个凸集上的函数,若对任何实数以及中的任意两点和,恒有
则称为定义在上的凸函数.
若对每一个和恒有
则称为定义在上的严格凸函数.
考虑非线性规划
假定其中为凸函数,为凸函数,这样的非线性规划称为凸规划.
可以证明,凸规划的可行域为凸集,其局部最优解即为全局最优解,而且其最优解的集合形成一个凸集.当凸规划的目标函数为严格凸函数时,其最优解必定唯一(假定最优解存在).由此可见,凸规划是一类比较简单而又具有重要理论意义的非线性规划. |