当前位置:文档之家› 非线性规划求解

非线性规划求解


2.一般非线性规划
Aeq X = beq
VLB X VUB
G(X) 0
其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成 的向量,其他变量的含义与线性规划、二次规划中相同.用 MATLAB求解上述问题,基本步骤分三步: 1. 首先建立M文件fun.m,用来定义目标函数F(X): function f=fun(X); f=F(X);
数,简记: f : Rn R1, g i : Rn R1, h j : Rn R1 其它情况: 求目标函数的最大值,或约束条件小于等于零 两种情况,都可通过取其相反数化为上述一般形式.
定义1 把满足问题(1)中条件的解 X ( Rn ) 称为可行解(或可行 点),所有可行点的集合称为可行集(或可行域).记为D.即 D = X | g i X 0, h j X = 0, X Rn 问题(1)可简记为 min f X .
步长缩小系数 0,1,允许误差 >0,令 k=1;
(2) 在点 X k 处,将 f X , g i X , h j X 按泰勒级数展开并取 一阶近似,得到近似线性规划问题:
min f X f X k f X k
gi X gi X hj X hj X
0,0 1;
(2) 求出约束集合 D 的一个内点 X 0 D 0 ,令 k
X D
= 1;
(3) 以 X k 1 D 0 为初始点, 求解 min I X , rk , 其中 X D 0的
0
最优解设为 X k = X rk D 0 ;
1 (4) 检验是否满足 r ln g i X 或 rk ,若满 i =1 i =1g X i * k 足,停止迭代,令 X X ;否则取 rk 1 = rk ,令 k = k 1,




非线性规划的基本解法
SUTM外点法
1. 罚函数法 SUTM内点法(障碍罚函数法)
2. 近似规划法 返回
罚函数法 罚函数法基本思想是通过构造罚函数把 约束问题转化为一系列无约束最优化问题,
进而用无约束最优化方法去求解.这类方法
称为序列无约束最小化方法.简称为SUMT
法.
其一为SUMT外点法,其二为SUMT内点 法.
x 2 1 1 x 2 2 2 0 x 1 0 x 2
3.运算结果为: x =0.6667
MATLAB(youh1)
1.3333
z = -8.2222
标准型为: min F(X) s.t. AX b Ceq(X)=0
2. 若约束条件中有非线性约束:G(X) 0 或Ceq(X)=0, 则建立M文件nonlcon.m定义函数G(X)与Ceq(X): function [G,Ceq]=nonlcon(X) G=… Ceq=…
3. 建立主程序.求解非线性规划的函数是fmincon,命令的基本 格式如下: (1) x=fmincon(‘fun’,X0,A,b) (2) x=fmincon(‘fun’,X0,A,b,Aeq,beq) (3) x=fmincon(‘fun’,X0,A,b, Aeq,beq,VLB,VUB) (4) x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’) (5)x=fmincon(‘fun’,X0,A,b,Aeq,beq,VLB,VUB,’nonlcon’,options) 输出极值点 M文件 迭代的初值 变量上下限 参数说明
步骤(5);否则,缩小步长限制,令
回步骤(3),重解当前的线性规划问题;
5) 判断精度: 若 j = 1,L, n, 则点 X
k j
k 1
为近似最优解;
1 k = 否则,令 k j j j = 1,L, n ,k=k+1,返回步骤(2). 返回
1.二次规划
标准型为: min Z= 1 XTHX+cTX
(6) [x,fval]= fmincon(…) (7) [x,fval,exitflag]= fmincon(…) (8)[x,fval,exitflag,output]= fmincon(…)
2
s.t. AX≤b
Aeq X = beq
VLB≤X≤VUB
用MATLAB软件求解,其输入格式如下: 1.x=quadprog(H,C,A,b); 2.x=quadprog(H,C,A,b,Aeq,beq); 3.x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB); 4.x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0); 5.x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB,X0,options); 6.[x,fval]=quaprog(…); 7.[x,fval,exitflag]=quaprog(…); 8.[x,fval,exitflag,output]=quaprog(…);
SUTM外点法(罚函数法)的迭代步骤 1.任意给定初始点 X0,取M1>1,给定允许误差 0,令k=1;
k=X(M ),即 T X , M 2.求无约束极值问题 min 的最优解,设 X k n
k
X R
min T X , M = T (X , Mk ); n
X R
k 3.若存在 i 1 i m ,使 gi X ,则取Mk>M(M k 1 = M , = 10),

k
令k=k+1返回(2),否则,停止迭代.得最优解 X * X k . 计算时也可将收敛性判别准则
gi X
改为 M min0, gi X 2 0 .
m i =1
罚函数法的缺点:每个近似最优解Xk往往不是容许解,而
只能近似满足约束,在实际问题中这种结果可能不能使用;在 解一系列无约束问题中,计算量太大,特别是随着Mk的增大, 可能导致错误.
把其符合原始条件的最优解作为(3)的解的近似. 每得到一个近似解,都从这点出发,重复以上步骤. 这样,通过求解一系列线性规划问题,产生一个 由线性规划最优解组成的序列,经验表明,这样的序 列往往收敛于非线性规划问题的解.
近似规划法的算法步骤如下:
1 1 1 , x2 ,L, x1 (1) 给定初始可行点 X 1 = {x1 n },步长限制 j j = 1,L, n ,
一般形式:
gi X 0 i = 1,2,..., m; s.t. h j X = 0 j = 1,2,..., l. (1) T n f , g ,h 其中 X = x1, x2 ,L, xn R, i j 是定义在 Rn 上的实值函
m in f X
k k T i
T
X X
k
k
g X X X 0 h X X X = 0
k T k j
i = 1, j = 1,
,m ,l ;
k
(3)在上述近似线性规划问题的基础上增加一组限制步长的线 性约束条件.因为线性近似通常只在展开点附近近似程度较
Байду номын сангаас
{
}
X D
对于问题(1),设 X * D ,若存在 0 ,使得对一切 X D ,且 X X * ,都有 f X * f X ,则称X*是f(X)在D上的 局部极小值点(局部最优解).特别地,当 X X * 时,若 f X * f X ,则称X*是f(X)在D上的严格局部极小值点(严格局部最 优解). 定义3 对于问题(1),设 X * D ,若对任意的 X D,都有 f X* f X , 则称X*是f(X)在D上的全局极小值点(全局最优解).特别地,当 X X * 时,若 f X * f X ,则称X*是f(X)在D上的严格全局极小值 点(严格全局最优解). 返回 定义2
例1
min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22 s.t. x1+x2≤2 -x1+2x2≤2 x1≥0, x2≥0
T
1.写成标准形式: min z = ( x , x ) 1 -1 x1 2 1 2 1 2 x2 6
SUTM内点法(障碍函数法)
min f X 考虑问题: (1) s.t. gi X 0 i = 1, 2,..., m 设集合D = { X | g X 0, i = 1, 2, , m} ,D 是
0 0 i
可行域中所有严格内点的集合.
构造障碍函数
I X , r : I X , r = f X r lng i X 或 I ( X , r ) = f ( X ) r
s.t.
1 1
x1 x2
2.输入命令:
H=[1 -1; -1 2]; c=[-2 ;-6];A=[1 1; -1 2];b=[2;2]; Aeq=[];beq=[]; VLB=[0;0];VUB=[]; [x,z]=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)
SUTM外点法 对一般的非线性规划: min f X
gi X 0 s.t. h j X = 0
可设:T X , M = f X M
m
i = 1,2,...,m; j = 1, 2,..., l.
l
(1)
2 2 min 0 , g X M h X i j i =1 j =1
i =1 i =1
相关主题