数学建模与数学实验非线性规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验目的
1、直观了解非线性规划的基本内容。
2、掌握用数学软件求解优化问题。
实验内容
1、非线性规划的基本理论。
2、用数学软件求解非线性规划。 3、钢管订购及运输优化模型 4、实验作业。
1
非线性规划
非线性规划的基本概念
*非线性规划的基本解法
返回2
非现性规划的基本概念 定义 如果目标函数或约束条件中至少有一个是非线性函数 时的最优化问题就叫做非线性规划问题.
高, 故需要对变量的取值范围加以限制, 所增加的约束条件是:
j 1, , n
k 1 X 求解该线性规划问题,得到最优解
;
(4)
检验 X k 1 点对原约束是否可行。若X k 1 对原约束可行,
则转步骤(5);否则,缩小步长限制,令
k j 1, , n , k j j
非线性规划的基本解法
SUTM外点法
1、罚函数法 SUTM内点法(障碍罚函数法)
2、近似规划法
返回5
罚函数法 罚函数法基本思想是通过构造罚函数把 约束问题转化为一系列无约束最优化问题,
进而用无约束最优化方法去求解.这类方法
称为序列无约束最小化方法.简称为SUMT
法.
其一为SUMT外点法,其二为SUMT内点 法.
6
SUTM外点法
对一般的非线性规划: min f X
gi X 0 s.t. h j X 0
m
i 1,2,..., m; j 1,2,...,l.
l
(1)
可设:T X , M f X M
2 2 min 0 , g X M h X i j i 1 j 1
,令 k=1; 步长缩小系数 0,1 ,允许误差
(2)
在点 X k 处,将 f X , g i X , h j X 按泰勒级数展开并
取一阶近似,得到近似线性规划问题:
min f X f X
i i
f X X X g X g X g X X X 0
0,0 1;
0
(2) 求出约束集合 D 的一个内点 X
(3) 以
D ,令k 1 ;
0
X D 0
0
X k 1 D 0 为 初 始 点 , 求 解 min I X , rk , 其 中
k
X D 的最优解,设为 X 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 ,
定义3 对于问题(1),设 X * D ,对任意的X D ,都有 f X * f X 则称X*是f(X)在D上的全局极小值点(全局最优解).特别地当 *是f(X)在D上的严格全局极小值点 * 时,若 * ,则称 X X X f X f X (严格全局最优解). 返回4
X E n
;
k
令k=k+1返回(2),否则,停止迭代.得最优解 X * X k . 计算时也可将收敛性判别准则
gi X
改为 M min0, gi X 2 0 .
i 1
m
罚函数法的缺点是:每个近似最优解Xk往往不是容许解,
而只能近似满足约束,在实际问题中这种结果可能不能使用; 在解一系列无约束问题中,计算量太大,特别是随着Mk的增大, 可能导致错误.
把其符合原始条件的最优解作为(3)的解的近似. 每得到一个近似解后,都从这点出发,重复以上步骤. 这样,通过求解一系列线性规划问题,产生一个 由线性规划最优解组成的序列,经验表明,这样的序 列往往收敛于非线性规划问题的解。
11
近似规划法的算法步骤如下
1 1 1 (1) 给定初始可行点 X 1 x1 ,步长限制 , x1 , , x j j 1, , n , 2 n
Βιβλιοθήκη Baidu
一般形式:
m in f X
gi X 0 i 1,2,..., m ; s.t. (1) h j X 0 j 1,2,..., l. 其中 X x1, x2 ,, xn T E n,f , gi , h j 是定义在 En 上的实值函
(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文件
迭代的初值
变量上下限
参数说明
(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. 2. 3. 4. 5. 6. 7. 8.
x=quadprog(H,C,A,b); x=quadprog(H,C,A,b,Aeq,beq); x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB); x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0); x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0,options); [x,fval]=quaprog(...); [x,fval,exitflag]=quaprog(...); 14 [x,fval,exitflag,output]=quaprog(...);
1
x 6 x 2 2 2
s.t.
2、 输入命令:
1 1 x1 2 1 2 x2 2 0 x1 x 0 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)
min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22 s.t. x1+x2≤2 -x1+2x2≤2 x1≥0, x2≥0 T x 1 - 1 1 2 x1 1、写成标准形式:min z ( x , x )
例1
1 2
7
SUTM外点法(罚函数法)的迭代步骤 1、任意给定初始点X0,取M1>1,给定允许误差 0 ,令k=1;
m in T X , M T ( X k , M k )
min T X , M 的最优解,设为Xk=X(M ),即 2、求无约束极值问题X k E n
k 3、若存在 i 1 i m ,使 gi X ,则取Mk>M( M k 1 M , 10)
i 1 i 1 m m
1 gi X
其中称r lng i X 或 r
i 1 i 1
m
m
1 为障碍项,r为障碍因子 gi X
X D
这样问题( 1 )就转化为求一系列极 值问题: k min0 I X , rk 得 X (rk)
9
内点法的迭代步骤
(1) 给定允许误差 0 ,取r1
0 2. 若约束条件中有非线性约束 :G(X) 或 Ceq(X)=0, 则建立M文件nonlcon.m定义函数G(X)与Ceq(X): function [G,Ceq]=nonlcon(X) G=... Ceq=...
16
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)
m k
m
返回(3) .
10
近似规划法
近似规划法的基本思想:将问题(3)中的目标函数 f X
和约束条件 gi X 0 (i 1,...,m); h j X 0 ( j 1,, l )
近似为线性函数,并对变量的取值范围加以限制,从
而得到一个近似线性规划问题,再用单纯形法求解之,
3、运算结果为: x =0.6667 1.3333
MATLAB(youh1)
z = -8.2222
15
标准型为: min F(X) 0 s.t AX<=b G(X) Aeq X beq X VUB Ceq(X)=0 VLB
2、一般非线性规划
其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成 的向量,其它变量的含义与线性规划、二次规划中相同.用 Matlab求解上述问题,基本步骤分三步: 1. 首先建立M文件fun.m,定义目标函数F(X): function f=fun(X); f=F(X);
(2)
将问题( 1 )转化为无约束问题: min T X , M n
X E
(3)
其中T(X,M)称为罚函数,M称为罚因子,带M的项称为罚项,这 里的罚函数只对不满足约束条件的点实行惩罚:当 X D 时,满 足各 gi X 0, hi X 0 ,故罚项=0,不受惩罚.当 X D 时, gi X 0或hi X 0 的约束条件,故罚项>0,要受惩罚. 必有
返回步骤(3),重解当前的线性规划问题;
5) 判断精度: 若 j 1,, n , 则点X
k j
k1
为近似最优解;
13 返回
1 j 1,, n ,k=k+1,返回步骤(2). k 否则,令 k j j
1、二次规划
标准型为: Min Z= 1 XTHX+cTX
k k T k
k k T k i
i 1, , m
h j X h j X k h j X k
X X 0
T k
j 1,, l ;
12
(3)在上述近似线性规划问题的基础上增加一组限制步长的线 性约束条件.因为线性近似通常只在展开点附近近似程度较
k x j xk j j
8
SUTM内点法(障碍函数法)
考虑问题:
min f X s.t. g X 0 i
i 1,2,..., m
(1)
设集合D 0 X | g i X 0, i 1,2, , m ,D 0是可行域中 所有严格内点的集合。
构造障碍函数 I X , r :I X , r f X r lng i X 或 I ( X , r ) f ( X ) r
X D
对于问题(1),设 X * D,若存在 0 ,使得对一切 ,且 X X * ,都有 f X * f X ,则称X*是f(X)在D上的 X D 局部极小值点(局部最优解).特别地当 X X *时,若 f X * f X , 则称X*是f(X)在D上的严格局部极小值点(严格局部最优解). 定义2
数,简记: f : En E1, gi : En E1, h j : En E1 其它情况: 求目标函数的最大值或约束条件为小于等于零 的情况,都可通过取其相反数化为上述一般形式.
3
定义1 把满足问题(1)中条件的解 X ( E n )称为可行解(或可行 点),所有可行点的集合称为可行集(或可行域).记为D.即 D X | gi X 0,h j X 0, X E n 问题(1)可简记为 min f X .
1、直观了解非线性规划的基本内容。
2、掌握用数学软件求解优化问题。
实验内容
1、非线性规划的基本理论。
2、用数学软件求解非线性规划。 3、钢管订购及运输优化模型 4、实验作业。
1
非线性规划
非线性规划的基本概念
*非线性规划的基本解法
返回2
非现性规划的基本概念 定义 如果目标函数或约束条件中至少有一个是非线性函数 时的最优化问题就叫做非线性规划问题.
高, 故需要对变量的取值范围加以限制, 所增加的约束条件是:
j 1, , n
k 1 X 求解该线性规划问题,得到最优解
;
(4)
检验 X k 1 点对原约束是否可行。若X k 1 对原约束可行,
则转步骤(5);否则,缩小步长限制,令
k j 1, , n , k j j
非线性规划的基本解法
SUTM外点法
1、罚函数法 SUTM内点法(障碍罚函数法)
2、近似规划法
返回5
罚函数法 罚函数法基本思想是通过构造罚函数把 约束问题转化为一系列无约束最优化问题,
进而用无约束最优化方法去求解.这类方法
称为序列无约束最小化方法.简称为SUMT
法.
其一为SUMT外点法,其二为SUMT内点 法.
6
SUTM外点法
对一般的非线性规划: min f X
gi X 0 s.t. h j X 0
m
i 1,2,..., m; j 1,2,...,l.
l
(1)
可设:T X , M f X M
2 2 min 0 , g X M h X i j i 1 j 1
,令 k=1; 步长缩小系数 0,1 ,允许误差
(2)
在点 X k 处,将 f X , g i X , h j X 按泰勒级数展开并
取一阶近似,得到近似线性规划问题:
min f X f X
i i
f X X X g X g X g X X X 0
0,0 1;
0
(2) 求出约束集合 D 的一个内点 X
(3) 以
D ,令k 1 ;
0
X D 0
0
X k 1 D 0 为 初 始 点 , 求 解 min I X , rk , 其 中
k
X D 的最优解,设为 X 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 ,
定义3 对于问题(1),设 X * D ,对任意的X D ,都有 f X * f X 则称X*是f(X)在D上的全局极小值点(全局最优解).特别地当 *是f(X)在D上的严格全局极小值点 * 时,若 * ,则称 X X X f X f X (严格全局最优解). 返回4
X E n
;
k
令k=k+1返回(2),否则,停止迭代.得最优解 X * X k . 计算时也可将收敛性判别准则
gi X
改为 M min0, gi X 2 0 .
i 1
m
罚函数法的缺点是:每个近似最优解Xk往往不是容许解,
而只能近似满足约束,在实际问题中这种结果可能不能使用; 在解一系列无约束问题中,计算量太大,特别是随着Mk的增大, 可能导致错误.
把其符合原始条件的最优解作为(3)的解的近似. 每得到一个近似解后,都从这点出发,重复以上步骤. 这样,通过求解一系列线性规划问题,产生一个 由线性规划最优解组成的序列,经验表明,这样的序 列往往收敛于非线性规划问题的解。
11
近似规划法的算法步骤如下
1 1 1 (1) 给定初始可行点 X 1 x1 ,步长限制 , x1 , , x j j 1, , n , 2 n
Βιβλιοθήκη Baidu
一般形式:
m in f X
gi X 0 i 1,2,..., m ; s.t. (1) h j X 0 j 1,2,..., l. 其中 X x1, x2 ,, xn T E n,f , gi , h j 是定义在 En 上的实值函
(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文件
迭代的初值
变量上下限
参数说明
(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. 2. 3. 4. 5. 6. 7. 8.
x=quadprog(H,C,A,b); x=quadprog(H,C,A,b,Aeq,beq); x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB); x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0); x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0,options); [x,fval]=quaprog(...); [x,fval,exitflag]=quaprog(...); 14 [x,fval,exitflag,output]=quaprog(...);
1
x 6 x 2 2 2
s.t.
2、 输入命令:
1 1 x1 2 1 2 x2 2 0 x1 x 0 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)
min f(x1,x2)=-2x1-6x2+x12-2x1x2+2x22 s.t. x1+x2≤2 -x1+2x2≤2 x1≥0, x2≥0 T x 1 - 1 1 2 x1 1、写成标准形式:min z ( x , x )
例1
1 2
7
SUTM外点法(罚函数法)的迭代步骤 1、任意给定初始点X0,取M1>1,给定允许误差 0 ,令k=1;
m in T X , M T ( X k , M k )
min T X , M 的最优解,设为Xk=X(M ),即 2、求无约束极值问题X k E n
k 3、若存在 i 1 i m ,使 gi X ,则取Mk>M( M k 1 M , 10)
i 1 i 1 m m
1 gi X
其中称r lng i X 或 r
i 1 i 1
m
m
1 为障碍项,r为障碍因子 gi X
X D
这样问题( 1 )就转化为求一系列极 值问题: k min0 I X , rk 得 X (rk)
9
内点法的迭代步骤
(1) 给定允许误差 0 ,取r1
0 2. 若约束条件中有非线性约束 :G(X) 或 Ceq(X)=0, 则建立M文件nonlcon.m定义函数G(X)与Ceq(X): function [G,Ceq]=nonlcon(X) G=... Ceq=...
16
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)
m k
m
返回(3) .
10
近似规划法
近似规划法的基本思想:将问题(3)中的目标函数 f X
和约束条件 gi X 0 (i 1,...,m); h j X 0 ( j 1,, l )
近似为线性函数,并对变量的取值范围加以限制,从
而得到一个近似线性规划问题,再用单纯形法求解之,
3、运算结果为: x =0.6667 1.3333
MATLAB(youh1)
z = -8.2222
15
标准型为: min F(X) 0 s.t AX<=b G(X) Aeq X beq X VUB Ceq(X)=0 VLB
2、一般非线性规划
其中X为n维变元向量,G(X)与Ceq(X)均为非线性函数组成 的向量,其它变量的含义与线性规划、二次规划中相同.用 Matlab求解上述问题,基本步骤分三步: 1. 首先建立M文件fun.m,定义目标函数F(X): function f=fun(X); f=F(X);
(2)
将问题( 1 )转化为无约束问题: min T X , M n
X E
(3)
其中T(X,M)称为罚函数,M称为罚因子,带M的项称为罚项,这 里的罚函数只对不满足约束条件的点实行惩罚:当 X D 时,满 足各 gi X 0, hi X 0 ,故罚项=0,不受惩罚.当 X D 时, gi X 0或hi X 0 的约束条件,故罚项>0,要受惩罚. 必有
返回步骤(3),重解当前的线性规划问题;
5) 判断精度: 若 j 1,, n , 则点X
k j
k1
为近似最优解;
13 返回
1 j 1,, n ,k=k+1,返回步骤(2). k 否则,令 k j j
1、二次规划
标准型为: Min Z= 1 XTHX+cTX
k k T k
k k T k i
i 1, , m
h j X h j X k h j X k
X X 0
T k
j 1,, l ;
12
(3)在上述近似线性规划问题的基础上增加一组限制步长的线 性约束条件.因为线性近似通常只在展开点附近近似程度较
k x j xk j j
8
SUTM内点法(障碍函数法)
考虑问题:
min f X s.t. g X 0 i
i 1,2,..., m
(1)
设集合D 0 X | g i X 0, i 1,2, , m ,D 0是可行域中 所有严格内点的集合。
构造障碍函数 I X , r :I X , r f X r lng i X 或 I ( X , r ) f ( X ) r
X D
对于问题(1),设 X * D,若存在 0 ,使得对一切 ,且 X X * ,都有 f X * f X ,则称X*是f(X)在D上的 X D 局部极小值点(局部最优解).特别地当 X X *时,若 f X * f X , 则称X*是f(X)在D上的严格局部极小值点(严格局部最优解). 定义2
数,简记: f : En E1, gi : En E1, h j : En E1 其它情况: 求目标函数的最大值或约束条件为小于等于零 的情况,都可通过取其相反数化为上述一般形式.
3
定义1 把满足问题(1)中条件的解 X ( E n )称为可行解(或可行 点),所有可行点的集合称为可行集(或可行域).记为D.即 D X | gi X 0,h j X 0, X E n 问题(1)可简记为 min f X .