文档库 最新最全的文档下载
当前位置:文档库 › 第九章 最优化方法

第九章 最优化方法

第九章  最优化方法
第九章  最优化方法

第九章 最优化方法

本章主要介绍线性规划、0-1规划、非线性规划等问题的MATLAB 求解。 9.1 线性规划(Linear Programming ,简写为LP )问题

线性规划问题就是求多变量线性函数在线性约束条件下的最优值。满足约束条件的解称为可行解,所有可行解构成的集合称为可行域,满足目标式的可行解称为最优解。

MATLAB 解决的线性规划问题的标准形式为:

min z f x ¢

=? ..

A x b s t Aeq x beq lb x ub

ì祝???

?í??#??? 其中,,,,,f x b beq lb ub 为列向量,,A Aeq 为矩阵。

其它形式的线性规划问题都可经过适当变换化为此标准形式。 在MATLAB 中求解线性规划问题函数为linprog ,其使用格式为:

[x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub) 输入部分:其中各符号对应线性规划问题标准形式中的向量和矩阵,如果约束条件中有缺少,则其相应位置用空矩阵[]代替。

输出部分:其中x 为最优解,用列向量表示;fval 为最优值;exitflag 为退出标志,若exitflag=1表示函数有最优解,若exitflag=0表示超过设定的迭代最大次数,若exitflag=-2,表示约束区域不可行,若exitflag=-3,表示问题无解,若exitflag=-4,表示执行迭代算法时遇到NaN ,若exitflag=-5,表示原问题和对偶问题均不可行,若exitflag=-7,表示搜索方向太小,不能继续前进;output 表明算法和迭代情况;lambda 表示存储情况。

例1 用linprog 函数求下面的线性规划问题

12312312312123min 54620324423230.. 0,00x x x x x x x x x x x s t x x x ---ì-+?????++????+???í?£???£????£?? 输入如下: >> f = [-5, -4,-6]; A = [1 -1 1; 3 2 4; 3 2 0]; b = [20; 42; 30]; lb = zeros(3,1);

[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb)

注意:由于该问题没有等式约束,所以输入格式中相应的位置用[]代替,变量没有上限约束,所以ub 也用[]代替,但由于其在最后,可以不写。

输出结果如下: Optimization terminated. x = % 最优解 0.0000 15.0000 3.0000 fval = %最优值 -78.0000

exitflag = %函数收敛于解 1 output = iterations: 6

algorithm: 'large-scale: interior point' cgiterations: 0

message: 'Optimization terminated.' lambda =

ineqlin: [3x1 double] eqlin: [0x1 double] upper: [3x1 double] lower: [3x1 double]

例2 一家家具公司生产桌子和椅子,用于生产的全部劳动力共计450个工时,原料是400个单位的木材。每张桌子使用15个工时的劳动力,20个单位的木材,售价为80元。每张椅子使用10个工时,用料5个单位,售价45元。问为达到最大效益,应如何安排生产?

解 设生产桌子x 个,椅子y 个,建立如下模型:

max 80452054001510450.. 00x y

x y x y s t x y +ì+?????+??í?3???3?? 输入如下: >> f = [-80,-45]; A = [20, 5; 15, 10]; b = [400, 450]; lb = zeros(2,1);

[x, fval, exitflag] = linprog(f,A,b,[],[],lb) 结果如下:

Optimization terminated. x = 14.0000 24.0000 fval = -2.2000e+003 exitflag = 1

注意:由于linprog 是求目标函数的最小值,如求目标函数f 的最大值,可

先求出f -的最小值fval ,则-fval 就是f 的最大值。本例只输出最优解、最优值和退出标志,可见生产14个桌子,24个椅子,可获得最大利润2200元。

9.2 0-1规划

0-1规划是一种特殊形式的整数规划,它的决策变量仅取值0或1.一般用0表示放弃,1表示选取,故0-1规划可以用来处理选址问题、指派问题、装箱问题、项目评价、资金分配、生产计划安排等问题。

在MATALB 中求解0-1规划问题函数为bintprog ,其针对下述0-1规划:

min z f x ¢

=? .. 0/1,1,2,,i A x b s t Aeq x beq x i n

L ì祝???

?í??==???

其中,,,f x b beq 为列向量,,A Aeq 为矩阵。

使用格式为:

[x, fval, exitflag, output] = bintprog(f, A, b, Aeq, beq)

输入部分:其中各符号对应0-1规划问题标准形式中的向量和矩阵,如果约束条件中有缺少,则其相应位置用空矩阵[]代替。

输出部分:其中x 为最优解,用列向量表示;fval 为最优值;exitflag 为退出标志,若exitflag=1表示函数有最优解,若exitflag=-1表示超过设定的迭代最大次数,若exitflag=-2,表示问题不可行,若exitflag=-4,表示搜索节点数超过了设定的搜索节点最大个数,若exitflag=-5,表示搜索时间超过了设定的指令运行的最大秒数,若exitflag=-6,表示LP 求解器在某节点处求解LP 松弛问题时的迭代次数超过了设定的迭代次数;output 包含使用算法、迭代次数、搜索过的节点数、算法执行时间、算法终止原因。

例3 求解下述0-1规划问题。

123451234512345

max 22643225

.. 2422501(1,2,,5)i z x x x x x x x x x x s t x x x x x x i =++--+-++≤??

+---≤??==?L 或 利用bintprog 函数求解如下: >> f=-[1;2;2;-6;-4];

A=[3,2,-1,4,2; 2,4, -2,-1,-2]; b=[5;5] ;

[x,fval,exit,output]=bintprog(f,A,b) 输出结果:

Optimization terminated. x = 1 1 1 0 0 fval = -5 exit = 1 output =

iterations: 4 nodes: 1 time: 0.0781

algorithm: 'LP-based branch-and-bound' branchStrategy: 'maximum integer infeasibility' nodeSrchStrategy: 'best node search' message: 'Optimization terminated.

这表明,当123451,1,1,0,0x x x x x =====时,目标函数取最大值5。 例4 资金分配问题,某企业在今后3年内有5个工程考虑开工,每项工程的期望收入和年度费用如表所示。假定每一项已经批准的工程要在整3年内完成。企业应如何选择工程,使企业总收入最大?

解 设决策变量为12345,,,,x x x x x :其中01i x =或,0i x =表示放弃第i 项工程,

1i x =表示选择第i 项工程。

该问题的数学模型为:

123451234512345

12345max 20402015305437825

794625.. 8102102510(i=1,2,3,4,5)=++++++++≤??++++≤??

++++≤??=?或i z x x x x x x x x x x x x x x x s t x x x x x x

利用bintprog 函数求解如下: f=-[20;40;20;15;30];

A=[5,4,3,7,8;1,7,9,4,6;8,10,2,1,10]; b=[25;25;25];

[x,fv,exit]=bintprog(f,A,b) 输出结果如下: Optimization terminated. x = 1 1 1 1 0 fv = -95 exit = 1

上述结果表明,该企业选择第1,第2,第3,第4项工程,可以获得最大

利润95千元。

指派问题:设有n 项工作分配给n 个人去做,每人做一项,由于个人的工作效率不同,因而完成同一工作所需时间也不同,设人员i 完成工作j 所需时间为

ij C (称为效率矩阵),问如何分配工作,使得完成所有工作所用的总时间最少?

这类问题称为指派问题(Assignment Problem ),也称最优匹配问题,它是一类典型的0-1规划问题。

例5 有4个工人被分派做4项工作,每项工作只能一人做,每人只能做一项工作。现设每个工人做每项工作的耗时如表所示,求总耗时最少的分配方案。

表1时间表 时间单位:小时

解 设决策变量为(,1,2,3,4)ij x i j =,只取0或1。1ij x =表示工人i 完成工作

j ;0ij x =表示工人i 不做工作j 。

于是,上述问题的数学模型如下:

1112131421222324

3132333441424344

min 15182124192322182617161919212317z x x x x x x x x x x x x x x x x =+++++++++++++++

1

1

1,1,2,3,4.. 1,1,2,3,4n

ij j n

ij i x i s t x j ==?==????==??∑∑ 下面给出Matlab 计算程序。

>> f=[15;18;21;24;19;23;22;18;26;17;16;19;19;21;23;17]; o4=ones(1,4);z4=zeros(1,4); z8=zeros(1,8);z12=zeros(1,12);

Aeq1=[o4,z12;z4,o4,z8;z8,o4,z4;z12,o4];

e4=eye(4); Aeq2=[e4,e4,e4,e4]; Aeq = [Aeq1;Aeq2]; beq=ones(8,1);

[x,fv,exit]=bintprog(f,[],[],Aeq,beq); x=transpose(reshape(x,4,4)) 计算接可以得出: fv = 70 exit = 1 指派方阵 x =

1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0

它表示的最优指派方案为:工人1做工作1;工人2做工作4;工人3做工作3;工人4做工作2。该指派方案耗时最少,为70小时。

9.3 非线性规划

9.3.1 有约束的一元函数的极(最)小值

在MATLAB 中使用fminbnd 函数求一元函数()y f x 在区间12(,)x x 上的极(最)小值。其调用格式有:

[x,fval,exitflag,output] = fminbnd(fun,x1,x2,options)

其中输入参数fun 为目标函数的表达式字符串或MATLAB 定义的M 函数,x1和x2为自变量x 的取值范围,options 为指定优化参数选项;输出参数x 为函数fun 在区间12x x x <<上取最小值时的x 值,fval 为目标函数的最小值,exitflag 为终止迭代的条件,output 为优化信息,参见optimset 函数。

若参数exitflag>0,表示函数收敛于x ,若exitflag=0,表示超过函数估计值

或迭代的最大数字,exitflag<0表示函数不收敛于x;若参数output=iterations表示迭代次数,output=funccount表示函数赋值次数,output=algorithm表示所使用的算法。

例6 计算函数

3cos log

()

x

x x x x

f x

e

++

=在区间(0,1)内的最小值。

在命令窗口输入:

>> [x,fval,exitflag,output]=fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1)

输出结果为:

x =

0.5223

fval =

0.3974

exitflag =

1

output =

iterations: 8

funcCount: 9

algorithm: 'golden section search, parabolic interpolation'

message: [1x112 char]

表明该函数在x =0.5223时取最小值0.3974。

ezplot('(x^3+cos(x)+x*log(x))/exp(x)',0,1)

为简化输出结果,可输入:

>> [x,fval]=fminbnd('(x^3+cos(x)+x*log(x))/exp(x)',0,1)

9.3.2 无约束多元函数极(最)小值

在MATLAB中使用fminsearch函数和fminunc函数求无约束多元函数的极(最)小值。

(1)fminsearch函数

该函数的调用格式为:

[x,fval,exitflag,output]= fminsearch(fun,x0,options)

其中输入参数fun 为目标函数的表达式字符串或MATLAB 自定义的M 函数,x0为初始点,options 为指定优化参数选项;输出参数x 为多元函数的最小值点,fval 为最小值,exitflag 和output 与单变量情形一致。

例7 求332

1121222410y x x x x x x =+-+的最小值点。

在命令窗口输入:

>> [x,fval]=fminsearch('2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2', [0,0]) 输出结果为:

x =

1.0016 0.8335 fval = -3.3241

表明当x1=1.0016,x2=0.8335时函数的最小值为-3.3241。

(2)fminunc 函数 该函数的调用格式为:

[x,fval,exitflag,output,grad,hessian] = fminunc (fun,x0,options)

其中输入参数fun 为目标函数的表达式字符串或MATLAB 自定义的M 函数,x0为初始点,options 为指定优化参数选项;输出参数x 为多元函数的最小值点,fval 为最小值,exitflag 和output 与单变量情形一致,grad 为函数在解x 处的梯度值,hessian 为目标函数在解x 处的海赛(Hessian )值。

fminsearch 利用了单纯形法的原理,fminunc 利用了拟牛顿法的原理。当函数的阶数大于2时,使用fminunc 比fminsearch 更有效,但当所选函数高度不连续时,使用fminsearch 效果较好,这两个函数都容易陷入局部优化,并且结果的正确与否还要取决于初值点x0的选取。

利用fiminunc 求例7的最小值。 在名利窗口输入:

>>[x,fval]=fminunc('2*x(1)^3+4*x(1)*x(2)^3-10*x(1)*x(2)+x(2)^2',[0.5,0.5]) 输出结果为:

x =

1.0016 0.8335

fval = -3.3241

此结果和fminsearch 函数的求解结果一样。 9.3.3有约束的多元函数最小值

非线性有约束的多元函数的标准形式为:

min

()x

f x

()0()0. C x Ceq x s t A x b Aeq x beq lb x ub

�???=??

?祝

í???????#?? 其中:x,b,beq,lb,ub 是向量,A,Aeq 为矩阵,C(x)、Ceq(x)是返回向量的函数,f(x)为目标函数,f(x)、C(x)、Ceq(x)可以是非线性函数。

在MATLAB 用fmincon 函数,求有约束的多元函数的最小值,其调用格式有:

x = fmincon(fun,x0,A,b) x = fmincon(fun,x0,A,b,Aeq,beq) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) [x,fval] = fmincon(…) [x,fval,exitflag] = fmincon(…) [x,fval,exitflag,output] = fmincon(…) [x,fval,exitflag,output,lambda] = fmincon(…) [x,fval,exitflag,output,lambda,grad] = fmincon(…) [x,fval,exitflag,output,lambda,grad,hessian] = fmincon(…)

其中fun 为目标函数,它可用前面的方法定义;x0为初始值;A 、b 满足线

性不等式约束A x b 祝,若没有不等式约束,则取A=[],b=[];Aeq 、beq 满足等式约束Aeq x

beq ?,若没有,则取Aeq=[],beq=[];lb 、ub 满足lb x

ub #,

若没有界,可设lb=[],ub=[];nonlcon 的作用是通过接受的向量x 来计算非线性不等约束()0C x £和等式约束()0Ceq x =分别在x 处的估计C 和Ceq ,通过M 文件建立,如:

>>x = fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub,@mycon),先建立非线性约束函数,并保存为mycon.m :function [C,Ceq] = mycon(x)

C = … % 计算x 处的非线性不等约束()0C x £的函数值。 Ceq = … % 计算x 处的非线性等式约束()0Ceq x =的函数值。 输出参数x 为多元函数的最小值点,fval 为最小值,exitflag 和output 与单变量情形一致,lambda 是Lagrange 乘子,它体现哪一个约束有效,grad 为函数在解x 处的梯度值,hessian 为目标函数在解x 处的海赛(Hessian )值。

例8 求下面问题在初始点x=(10, 10, 10)处的最优解。 min 123()f x x x x =- sub.to 1

2302272x x x ?+?

解:约束条件的标准形式为 sub.to 123220x x x ---?

1232272x x x ++?

在命令窗口输入: >> fun= '-x(1)*x(2)*x(3)'; x0=[10,10,10]; A=[-1 -2 -2;1 2 2]; b=[0;72];

[x,fval]=fmincon(fun,x0,A,b) 输出结果为:

Optimization terminated: magnitude of directional derivative in search direction less than 2*options.TolFun and maximum constraint violation is less than options.TolCon.

Active inequalities (to within options.TolCon = 1e-006):

lower upper ineqlin ineqnonlin

2

x = 24.0000 12.0000 12.0000

fval =

-3.4560e+003

例9 求表面积为36而体积最大的长方体的体积。

解设长方体的三个棱长分别为x1,x2,x3,则体积v=x1*x2*x3,且满足约束条件2(x1*x2+x2*x3+x3*x1)=36。

首先建立目标函数的M文件myopt1.m,内容如下:

function f = myopt1(x)

f =-x(1)*x(2)*x(3); % 负号表示最小值,即x(1)*x(2)*x(3)的最大值

再建立非线性约束函数的M文件mycon.m,内容如下:

function [C,Ceq] = mycon(x)

C = [];

Ceq = x(1)*x(2)+x(2)*x(3)+x(3)*x(1)-18;

由于没有非线性不等式,故C为[]。

在命令窗口输入:

>> [x,fval] = fmincon('myopt1',[1 1 1],[],[],[],[],[0 0 0],[],'mycon')

输出结果为:

x =

2.4495 2.4495 2.4495

fval =

-14.6969

结果表明当x1=x2=x3=2.4495时,体积最大值为14.6969。该问题的精确解为

时最大体积为。

9.4 二次规划

二次规划问题(quadratic programming)的标准形式为:

1 min

2x H x f x ⅱ+

sub.to A x b Aeq x beq lb x ub

ì祝???

?í??#???

其中,H 、A 、Aeq 为矩阵,f 、b 、beq 、lb 、ub 、x 为向量。其它形式的二次规划问题都可转化为标准形式。

MATLAB 中使用quadprog 函数求解二次规划,其调用格式有: x = quadprog(H,f,A,b) x = quadprog(H,f,A,b,Aeq,beq) x = quadprog(H,f,A,b,Aeq,beq,lb,ub) x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) [x,fval] = quadprog(…) [x,fval,exitflag] = quadprog(…) [x,fval,exitflag,output] = quadprog(…) [x,fval,exitflag,output,lambda] = quadprog(…) 例10 求解下面二次规划问题

22

1212121min

()262

f x x x x x x x =

+--- 12121212

222.. 230,0x x x x s t x x x x ì+?????-+??í?+????#??? 解:1

()2f x x H x f x ⅱ=+

则1112H 骣-÷?=??÷÷?-桫,26f 骣-÷?=?

?÷?÷-桫,12x x x 骣÷?÷=?÷÷?桫

在命令窗口中输入:

>> H = [1 -1; -1 2] ; f = [-2; -6]; A = [1 1; -1 2; 2 1]; b = [2; 2; 3]; lb = zeros(2,1);

[x,fval,exitflag,output,lambda] = quadprog(H,f,A,b,[ ],[ ],lb) 输出结果为:

x = %最优解

0.6667

1.3333

fval = %最优值

-8.2222

exitflag = %收敛

1

output =

iterations: 3

algorithm: 'medium-scale: active-set'

firstorderopt: [ ]

cgiterations: [ ]

lambda =

lower: [2x1 double]

upper: [2x1 double]

eqlin: [0x1 double]

ineqlin: [3x1 double]

>> lambda.ineqlin

ans =

3.1111

0.4444

>> lambda.lower

ans =

此结果说明第1、2个约束条件有效,其余无效。

9.5 多目标规划

多目标规划是指在一组约束下,对多个不同目标函数进行优化。它的一般形式为

12min [(),(),,()]

m f x f x f x L

()()0()0.. F x weight goal

C x Ceq x s t A x b Aeq x beq lb x ub

g ì-祝????£???=??í?祝????????#??

其中:x 、b 、beq 、lb 、ub 是向量;A 、Aeq 为矩阵;C(x)、Ceq(x)和F(x)是返回向量的函数;F(x)、C(x)、Ceq(x)可以是非线性函数;weight 为权值系数向量,用于控制对应的目标函数与用户定义的目标函数值的接近程度;goal 为用户设计的与目标函数相应的目标函数值向量;g 为一个松弛因子标量;F(x)为多目标规划中的目标函数向量。

MATLAB 中求解多目标规划的函数为fgoalattain ,其调用格式有: x = fgoalattain(fun,x0,goal,weight) x = fgoalattain(fun,x0,goal,weight,A,b) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options) [x,fval] = fgoalattain(…)

[x,fval,attainfactor] = fgoalattain(…) [x,fval,attainfactor,exitflag] = fgoalattain(…) [x,fval,attainfactor,exitflag,output] = fgoalattain(…) [x,fval,attainfactor,exitflag,output,lambda] = fgoalattain(…)

输入参数x0为初始解向量;fun 为多目标函数的文件名字符串,其定义方式与前fun 的定义方式相同;goal 为用户设计的目标函数值向量;weight 权值系数向量,用于控制目标函数与用户自定义目标值的接近程度;A 、b 满足线性不等

式约束A x b 祝,没有时取A=[ ],b=[ ];Aeq 、beq 满足线性等式约束Aeq x beq ?,

没有时取Aeq=[ ],beq=[ ];lb 、ub 为变量的下界和上界:lb x ub #;nonlcon

的作用和fmincon 函数相同;options 为指定的优化参数。

输出参数x 为最优解;fval 为多目标函数在x 处的值;attainfactor 为解x 处的目标规划因子;exitflag 为终止迭代的条件;output 为输出的优化信息;lambda 为解x 处的Lagrange 乘子。

例11 利用fgoalattain 函数求多目标规划问题

2221232

231

2

3

min (1)(2)(3)min 23-+-+-++x x x x x x

1231236

.. ,,0

++=??

≥?x x x s t x x x 首先定义目标函数的M 文件myopt2.m ,定义如下: function y = myopt2(x)

y(1) = (x(1)-1)^2+(x(2)-2)^2+(x(3)-3)^2; y(2) = x(1)^2+2*x(2)^2+3*x(3)^3; 在命令窗口输入:

>> [x,fval]=fgoalattain('myopt2',[ 1 1 1],[1 1],[1 1],[],[],[1 1 1],[6],[0 0 0]) 输出结果为:

Optimization terminated: magnitude of directional derivative in search direction less than 2*options.TolFun and maximum constraint violation is less than options.TolCon.

Active inequalities (to within options.TolCon = 1e-006): lower upper ineqlin ineqnonlin 2 x =

3.4189 1.7095 0.8716 fval =

10.4654 19.5201

小结:

1. 解线性规划问题函数:linprog

2. 解0-1规划问题函数:bintprog

3. 有约束的一元函数的极(最)小值:fminbnd

4. 无约束多元函数极(最)小值:fminsearch函数和fminunc

5. 有约束的多元函数(线性、非线性)最小值:fmincon

6. 二次规划问题(quadratic programming):quadprog

7. 解多目标规划的函数:fgoalattain

北航最优化方法大作业参考

北航最优化方法大作业参考

1 流量工程问题 1.1 问题重述 定义一个有向网络G=(N,E),其中N是节点集,E是弧集。令A是网络G的点弧关联矩阵,即N×E阶矩阵,且第l列与弧里(I,j)对应,仅第i行元素为1,第j行元素为-1,其余元素为0。再令b m=(b m1,…,b mN)T,f m=(f m1,…,f mE)T,则可将等式约束表示成: Af m=b m 本算例为一经典TE算例。算例网络有7个节点和13条弧,每条弧的容量是5个单位。此外有四个需求量均为4个单位的源一目的对,具体的源节点、目的节点信息如图所示。这里为了简单,省区了未用到的弧。此外,弧上的数字表示弧的编号。此时,c=((5,5…,5)1 )T, ×13 根据上述四个约束条件,分别求得四个情况下的最优决策变量x=((x12,x13,…,x75)1× )。 13 图 1 网络拓扑和流量需求

1.2 7节点算例求解 1.2.1 算例1(b1=[4;-4;0;0;0;0;0]T) 转化为线性规划问题: Minimize c T x1 Subject to Ax1=b1 x1>=0 利用Matlab编写对偶单纯形法程序,可求得: 最优解为x1*=[4 0 0 0 0 0 0 0 0 0 0 0 0]T 对应的最优值c T x1=20 1.2.2 算例2(b2=[4;0;-4;0;0;0;0]T) Minimize c T x2 Subject to Ax2=b2 X2>=0 利用Matlab编写对偶单纯形法程序,可求得: 最优解为x2*=[0 4 0 0 0 0 0 0 0 0 0 0 0]T 对应的最优值c T x2=20 1.2.3 算例3(b3=[0;-4;4;0;0;0;0]T) Minimize c T x3 Subject to Ax3=b3 X3>=0 利用Matlab编写对偶单纯形法程序,可求得: 最优解为x3*=[4 0 0 0 4 0 0 0 0 0 0 0 0]T 对应的最优值c T x3=40

五种最优化方法

五种最优化方法 1.最优化方法概述 1.1最优化问题的分类 1)无约束和有约束条件; 2)确定性和随机性最优问题(变量是否确定); 3)线性优化与非线性优化(目标函数和约束条件是否线性); 4)静态规划和动态规划(解是否随时间变化)。 1.2最优化问题的一般形式(有约束条件): 式中f(X)称为目标函数(或求它的极小,或求它的极大),si(X)称为不等式约束,hj(X)称为等式约束。化过程就是优选X,使目标函数达到最优值。 2.牛顿法 2.1简介 1)解决的是无约束非线性规划问题; 2)是求解函数极值的一种方法; 3)是一种函数逼近法。 2.2原理和步骤

3.最速下降法(梯度法) 3.1最速下降法简介 1)解决的是无约束非线性规划问题; 2)是求解函数极值的一种方法; 3)沿函数在该点处目标函数下降最快的方向作为搜索方向; 3.2最速下降法算法原理和步骤

4.模式搜索法(步长加速法) 4.1简介 1)解决的是无约束非线性规划问题; 2)不需要求目标函数的导数,所以在解决不可导的函数或者求导异常麻烦的函数的优化问题时非常有效。 3)模式搜索法每一次迭代都是交替进行轴向移动和模式移动。轴向移动的目的是探测有利的下降方向,而模式移动的目的则是沿着有利方向加速移动。 4.2模式搜索法步骤

5.评价函数法 5.1简介 评价函数法是求解多目标优化问题中的一种主要方法。在许多实际问题中,衡量一个方案的好坏标准往往不止一个,多目标最优化的数学描述如下:min (f_1(x),f_2(x),...,f_k(x)) s.t. g(x)<=0 传统的多目标优化方法本质是将多目标优化中的各分目标函数,经处理或数学变换,转变成一个单目标函数,然后采用单目标优化技术求解。常用的方法有“线性加权和法”、“极大极小法”、“理想点法”。选取其中一种线性加权求合法介绍。 5.2线性加权求合法 6.遗传算法 智能优化方法是通过计算机学习和存贮大量的输入-输出模式映射关系,进

最优化方法及其应用 - 更多gbj149 相关pdf电子书下载

最优化方法及其应用 作者:郭科 出版社:高等教育出版社 类别:不限 出版日期:20070701 最优化方法及其应用 的图书简介 系统地介绍了最优化的理论和计算方法,由浅入深,突出方法的原则,对最优化技术的理论作丁适当深度的讨论,着重强调方法与应用的有机结合,包括最优化问题总论,线性规划及其对偶问题,常用无约束最优化方法,动态规划,现代优化算法简介,其中前八章为传统优化算法,最后一章还给出了部分优化问题的设计实例,也可供一般工科研究生以及数学建模竞赛参赛人员和工程技术人员参考, 最优化方法及其应用 的pdf电子书下载 最优化方法及其应用 的电子版预览 第一章 最优化问题总论1.1 最优化问题数学模型1.2 最优化问题的算法1.3 最优化算法分类1.4

组合优化问題简卉习题一第二章 最优化问题的数学基础2.1 二次型与正定矩阵2.2 方向导数与梯度2.3 Hesse矩阵及泰勒展式2.4 极小点的判定条件2.5 锥、凸集、凸锥2.6 凸函数2.7 约束问题的最优性条件习题二第三章 线性规划及其对偶问题3.1线性规划数学模型基本原理3.2 线性规划迭代算法3.3 对偶问题的基本原理3.4 线性规划问题的灵敏度习题三第四章 一维搜索法4.1 搜索区间及其确定方法4.2 对分法4.3 Newton切线法4.4 黄金分割法4.5 抛物线插值法习题四第五章 常用无约束最优化方法5.1 最速下降法5.2 Newton法5.3 修正Newton法5.4 共轭方向法5.5 共轭梯度法5.6 变尺度法5.7 坐标轮换法5.8 单纯形法习題五第六章 常用约束最优化方法6.1外点罚函数法6.2 內点罚函数法6.3 混合罚函数法6.4 约束坐标轮换法6.5 复合形法习题六第七章 动态规划7.1 动态规划基本原理7.2 动态规划迭代算法7.3 动态规划有关说明习题七第八章 多目标优化8.1 多目标最优化问题的基本原理8.2 评价函数法8.3 分层求解法8.4目标规划法习题八第九章 现代优化算法简介9.1 模拟退火算法9.2遗传算法9.3 禁忌搜索算法9.4 人工神经网络第十章 最优化问题程序设计方法10.1 最优化问题建模的一般步骤10.2 常用最优化方法的特点及选用标准10.3 最优化问题编程的一般过程10.4 优化问题设计实例参考文献 更多 最优化方法及其应用 相关pdf电子书下载

最优化方法的Matlab实现(公式(完整版))

第九章最优化方法的MatIab实现 在生活和工作中,人们对于同一个问题往往会提出多个解决方案,并通过各方面的论证从中提取最佳方案。最优化方法就是专门研究如何从多个方案中科学合理地提取出最佳方案的科学。由于优化问题无所不在,目前最优化方法的应用和研究已经深入到了生产和科研的各个领域,如土木工程、机械工程、化学工程、运输调度、生产控制、经济规划、经济管理等,并取得了显著的经济效益和社会效益。 用最优化方法解决最优化问题的技术称为最优化技术,它包含两个方面的内容: 1)建立数学模型即用数学语言来描述最优化问题。模型中的数学关系式反映了最优化问题所要达到的目标和各种约束条件。 2)数学求解数学模型建好以后,选择合理的最优化方法进行求解。 最优化方法的发展很快,现在已经包含有多个分支,如线性规划、整数规划、非线性规划、动态规划、多目标规划等。 9.1 概述 利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。 具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便快捷的途径。 9.1.1优化工具箱中的函数 优化工具箱中的函数包括下面几类: 1 ?最小化函数

2.方程求解函数 3.最小—乘(曲线拟合)函数

4?实用函数 5 ?大型方法的演示函数 6.中型方法的演示函数 9.1.3参数设置 利用OPtimSet函数,可以创建和编辑参数结构;利用OPtimget函数,可以获得o PtiOns优化参数。 ? OPtimget 函数 功能:获得OPtiOns优化参数。 语法:

最优化原理大作业

基于粒子群算法的神经网络在电液伺服系统中的应用 摘要:由于人工神经网络在解决具有非线性、不确定性等系统的控制问题上具有极大的潜力,因而在控制领域正引起人们的极大关注,并且已在一些响应较慢的过程控制中获得成功应用。由于电液伺服系统属 于非线性系统,因此本文利用神经网络控制电液伺服系统,并利用粒子群优化算法训练该神经网络的 权值。通过对神经网络的优化实现对电液伺服系统的控制。 关键词:神经网络电液伺服系统粒子群算法优化 近年来,由于神经网络具有大规模并行性、冗余性、容错性、本质的非线性及自组织自学习自适应能力,所以已成功地应用于众多领域。但在具有复杂非线性特性的机电设备的实时控制方面,虽然也有一些神经网络技术的应用研究,但距实用仍有一段距离。电液伺服系统就属于这类设备[1]。 神经网路在用于实时控制时,主要是利用了网络所具有的其输人——输出间的非线性映射能力。它实际上是通过学习来逼近控制对象的动、静态特性。也就是构造实际系统的神经网络模型[2]。本文利用神经网络控制一电液伺服系统,并利用粒子群优化算法训练该神经网络的权值,将结果与BP神经网络控制该系统的结果进行比较。从而得在电液伺服系统中引入神经网络是可行的。 1、粒子群算法 粒子群优化算法(Particle Swarm optimization, PSO)是一种进化计算技术, 由Eberhart博士和kennedy博士发明, 源于对鸟群捕食的行为研究, 粒子群优化算法的基本思想是通过群体中个体之间的协作和信息共享来寻找最优解[3]。算法最初受到飞鸟和鱼类集群活动的规律性启发,利用群体智能建立了一个简化模型,用组织社会行为代替了进化算法的自然选择机制,通过种群间个体协作来实现对问题最优解的搜索[4]。 在找到这两个最优值时, 粒子根据如下的公式来更新自己的速度和新的位置 v[]=v[]+c1*rand()*(pbest[]-present[]) + c2*rand()*(gbest[]-present[]) present[]=persent[]+v[] 式中ω为惯性权重,ω取大值可使算法具有较强的全局搜索能力,ω取小值则算法倾向于局部搜索。一般的做法是将ω初始取0.9并使其随迭代次数的增加而线性递减至0.4,这样就可以先侧重于全局搜索,使搜索空间快速收敛于某一区域,然后采用局部精细搜索以获得高精度的解;c1、c2为两个学习因子,一般取为2;randl和rand2为两个均匀分布在(0,l)之间的随机数;i=1,2,?,m;k=1,2,?,d。另外,粒子在每一维的速度Vi都被一个最大速度Vmax所限制。如果当前粒子的加速度导致它在某一维的速度 超过该维上的最大速度Vmax,则该维的速度被限制为最大速度[5]。 粒子群算法流程如下: (一)初始化粒子群。设群体规模为m,在允许的范围内随机设置粒子的初始位置和速 度。 (二)评价每个粒子的适应值。 (三)调整每一个粒子的位置和速度。 (四)如果达到最大迭代次数genmax或误差达到最初设定数值终止迭代,否则返回(2)。 2、神经网络 神经网络一般由输入层、隐含层、输出层组成。对于输入信号,先向前传播到隐节点,经过节点作用函数后,再把隐节点的输出信息传播到输出节点,最后输出结果。节点的作用函数通常选取S 型函数f(x)=1/(1+e-x)。神经网络算法的学习过程分为正

第九章 最优化方法

第九章 最优化方法 本章主要介绍线性规划、0-1规划、非线性规划等问题的MATLAB 求解。 9.1 线性规划(Linear Programming ,简写为LP )问题 线性规划问题就是求多变量线性函数在线性约束条件下的最优值。满足约束条件的解称为可行解,所有可行解构成的集合称为可行域,满足目标式的可行解称为最优解。 MATLAB 解决的线性规划问题的标准形式为: min z f x ¢ =? .. A x b s t Aeq x beq lb x ub ì祝??? ?í??#??? 其中,,,,,f x b beq lb ub 为列向量,,A Aeq 为矩阵。 其它形式的线性规划问题都可经过适当变换化为此标准形式。 在MATLAB 中求解线性规划问题函数为linprog ,其使用格式为: [x, fval, exitflag, output, lambda] = linprog(f, A, b, Aeq, beq, lb, ub) 输入部分:其中各符号对应线性规划问题标准形式中的向量和矩阵,如果约束条件中有缺少,则其相应位置用空矩阵[]代替。 输出部分:其中x 为最优解,用列向量表示;fval 为最优值;exitflag 为退出标志,若exitflag=1表示函数有最优解,若exitflag=0表示超过设定的迭代最大次数,若exitflag=-2,表示约束区域不可行,若exitflag=-3,表示问题无解,若exitflag=-4,表示执行迭代算法时遇到NaN ,若exitflag=-5,表示原问题和对偶问题均不可行,若exitflag=-7,表示搜索方向太小,不能继续前进;output 表明算法和迭代情况;lambda 表示存储情况。 例1 用linprog 函数求下面的线性规划问题

最优化方法大作业答案

1.用薄钢板制造一体积5m 3,长度不小于4m ,无上盖的货箱,要求钢板耗量最小。确定货箱的长x 1、宽x 2和高x 3。试列出问题的数学模型。 解:min 32312122x x x x x x z ++= s.t 5321=x x x 41≥x 0,,321≥x x x 2.将下面的线性规划问题表示为标准型并用单纯形法求解 max f=x 1+2x 2+x 3 s .t .2x 1+x 2-x 3≤2 -2x 1+x 2-5x 3≥-6 4x 1+x 2+x 3≤6 x i ≥0 i=1,2,3 解:先化标准形: Min 321x x x z -+= 224321=+-+x x x x 6525321=++-x x x x 646321=+++x x x x 列成表格:

1 2 1 610011460105122001112----- 可见此表已具备1°,2°,3°三个特点,可采用单纯形法。首先从底行中选元素-1,由2/2,6/2,6/4最小者决定选第一行第一列的元素2,标以记号,迭代一次得 1 2 1 2102310401162010021212 11-------- 再从底行中选元素-2/3,和第二列正元素1/2,迭代一次得 1 2 12 32 30 210231040116201002121211- ------ 再从底行中选元素-3,和第二列正元素2,迭代一次得 4 2 3 3 410120280114042001112--- 再迭代一次得 10 2 30 2 10 6 221023 1010213000421021013-- 选取最优解:

《最优化方法与应用》实验指导书

《最优化方法与应用》 实验指导书 信息与计算科学系编制

1 实验目的 基于单纯形法求解线性规划问题,编写算法步骤,绘制算法流程图,编写单纯形法程序,并针对实例完成计算求解。 2实验要求 程序设计语言:C++ 输入:线性规划模型(包括线性规划模型的价值系数、系数矩阵、右侧常数等) 输出:线性规划问题的最优解及目标函数值 备注:可将线性规划模型先转化成标准形式,也可以在程序中将线性规划模型从一般形式转化成标准形式。 3实验数据 123()-5-4-6=Min f x x x x 121231212320 324423230,,03-+≤??++≤??+≤??≥? x x x x x x st x x x x x

1 实验目的 基于线性搜索的对分法、Newton 切线法、黄金分割法、抛物线法等的原理及方法,编写算法步骤和算法流程图,编写程序求解一维最优化问题,并针对实例具体计算。 2实验要求 程序设计语言:C++ 输入:线性搜索模型(目标函数系数,搜索区间,误差限等) 输出:最优解及对应目标函数值 备注:可从对分法、Newton 切线法、黄金分割法、抛物线法中选择2种具体的算法进行算法编程。 3实验数据 2211 ()+-6(0.3)0.01(0.9)0.04 = -+-+Min f x x x 区间[0.3,1],ε=10-4

实验三 无约束最优化方法 1实验目的 了解最速下降法、牛顿法、共轭梯度法、DFP 法和BFGS 法等的基本原理及方法,掌握其迭代步骤和算法流程图,运用Matlab 软件求解无约束非线性多元函数的最小值问题。 2实验要求 程序设计语言:Matlab 针对实验数据,对比最速下降法、牛顿法、共轭梯度法、DFP 法和BFGS 法等算法,比较不同算法的计算速度和收敛特性。 3实验数据 Rosenbrock's function 222211()(100)+(1-)=-Min f x x x x 初始点x=[-1.9, 2],,ε=10-4

《最优化方法》期末试题

作用: ①仿真的过程也是实验的过程,而且还是系统地收集和积累信息的过程。尤其是对一些复杂的随机问题,应用仿真技术是提供所需信息的唯一令人满意的方法。 ②仿真技术有可能对一些难以建立物理模型或数学模型的对象系统,通过仿真模型来顺利地解决预测、分析和评价等系统问题。 ③通过系统仿真,可以把一个复杂的系统化降阶成若干子系统以便于分析,并能指出各子系统之间的各种逻辑关系。 ④通过系统仿真,还能启发新的策略或新思想的产生,或能暴露出在系统中隐藏着的实质性问题。同时,当有新的要素增加到系统中时,仿真可以预先指出系统状态中可能会出现的瓶颈现象或其它的问题。 2.简述两个Wardrop 均衡原理及其适用范围。 答: Wardrop提出的第一原理定义是:在道路的利用者都确切知道网络的交通状态并试图选择最短径路时,网络将会达到平衡状态。在考虑拥挤对行驶时间影响的网络中,当网络达到平衡状态时,每个 OD 对的各条被使用的径路具有相等而且最小的行驶时间;没有被使用的径路的行驶时间大于或等于最小行 驶时间。 Wardrop提出的第二原理是:系统平衡条件下,拥挤的路网上交通流应该按照平均或总的出行成本 最小为依据来分配。 第一原理对应的行为原则是网络出行者各自寻求最小的个人出行成本,而第二原理对应的行为原则是网络的总出行成本最小。 3.系统协调的特点。 答: (1)各子系统之间既涉及合作行为,又涉及到竞争行为。 (2)各子系统之间相互作用构成一个反馈控制系统,通过信息作为“中介”而构成整体 (3)整体系统往往具有多个决策人,构成竞争决策模式。 (4)系统可能存在第三方介入进行协调的可能。 6.对已经建立了概念模型的系统处理方式及其特点、适用范围。答:对系统概念模型有三种解决方式。 1.建立解析模型方式 对简单系统问题,如物流系统库存、城市公交离线调度方案的确定、交通量不大的城市交叉口交通控制等问题,可以运用专业知识建立系统的量化模型(如解析数学模型),然后采用优化方法确定系统解决方案,以满足决策者决策的需要,有关该方面的内容见第四、五章。 在三种方式中,解析模型是最科学的,但仅限于简单交通运输系统问题,或仅是在实际工程中一定的情况下(仅以一定的概率)符合。所以在教科书上很多漂亮的解析模型,无法应用于工程实际中。 2.建立模拟仿真模型方式 对一般复杂系统,如城市轨道交通调度系统、机场调度系统、城市整个交通控制系统等问题,可以对系统概念模型中各个部件等采用变量予以量化表示,并通过系统辨识的方式建立这些变量之间关系的动力学方程组,采用一定的编程语言、仿真技术使其转化为系统仿真模型,通过模拟仿真寻找较满意的优化方案,包括离线和在线均可以,有关该方面的内容见第七章。 模拟仿真模型比解析模型更能反映系统的实际,所以在交通运输系统中被更高层次的所使用,包括

最优化方法大作业答案

武工院你们懂的 1.用薄钢板制造一体积5m 3,长度不小于4m ,无上盖的货箱,要求钢板耗量最小。确定货箱的长x 1、宽x 2和高x 3。试列出问题的数学模型。 解:min 32312122x x x x x x z ++= s.t 5321=x x x 41≥x 0,,321≥x x x 2.将下面的线性规划问题表示为标准型并用单纯形法求解 max f=x 1+2x 2+x 3 s .t .2x 1+x 2-x 3≤2 -2x 1+x 2-5x 3≥-6 4x 1+x 2+x 3≤6 x i ≥0 i=1,2,3 解:先化标准形: Min 321x x x z -+= 224321=+-+x x x x 6525321=++-x x x x 646321=+++x x x x

列成表格: 00001216 100114 60105122001112----- 可见此表已具备1°,2°,3°三个特点,可采用单纯形法。首先从底行中选元素-1,由2/2,6/2,6/4最小者决定选第一行第一列的元素2,标以记号,迭代一次得 0000 1 2 121023 10 40116201002 1 21 211-------- 再从底行中选元素-2/3,和第二列正元素1/2,迭代一次得 1 002 1232 30210231 040116201002121211-- ----- 再从底行中选元素-3,和第二列正元素2,迭代一次得 4002 3 03410120280114042001112--- 再迭代一次得

10 23021 062 21023 1010 213 000421 2 10 13- - 选取最优解: 01=x 42=x 23=x 3. 试用DFP 变尺度法求解下列无约束优化问题。 min f (X )=4(x 1-5)2+(x 2-6)2 取初始点X=(8,9)T ,梯度精度ε=0.01。 解:取I H =0,初始点()T X 9,8= 2221)6()5(4)(-+-=x x x f ??????--=?122408)(21x x x f ???? ??=?624)() 0(x f T x f d )6,24()()0()0(--=-?= )0(0)0()1(d x x α+= T )69,248(00αα--= ])669()5248(4min[)(min 2020)0(0)0(--+--?=+αααd x f )6()63(2)24()2458(8) (00)0(0)0(=-?-+-?--=+ααααd d x df 13077.013017 0≈= α ???? ??=???? ??--?+???? ??=21538.886153.462413077.098)1(x

最优化方法及应用

陆吾生教授是加拿大维多利亚大学电气与计算机工程系 (Dept. of Elect. and Comp. Eng. University of Victoria) 的正教授, 且为我校兼职教授,曾多次来我校数学系电子系讲学。陆吾生教授的研究方向是:最优化理论和小波理论及其在1维和2维的数字信号处理、数字图像处理、控制系统优化方面的应用。 现陆吾生教授计划在 2007 年 10-11 月来校开设一门为期一个月的短期课程“最优化理论及其应用”(每周两次,每次两节课),对象是数学系、计算机系、电子系的教师、高年级本科生及研究生,以他在2006年出版的最优化理论的专著作为教材。欢迎数学系、计算机系、电子系的研究生及高年级本科生选修该短期课程,修毕的研究生及本科生可给学分。 上课地点及时间:每周二及周四下午2:00开始,在闵行新校区第三教学楼326教室。(自10月11日至11月8日) 下面是此课程的内容介绍。 ----------------------------------- 最优化方法及应用 I. 函数的最优化及应用 1.1 无约束和有约束的函数优化问题 1.2 有约束优化问题的Karush-Kuhn-Tucker条件 1.3 凸集、凸函数和凸规划 1.4 Wolfe对偶 1.5 线性规划与二次规划 1.6 半正定规划 1.7 二次凸锥规划 1.8 多项式规划 1.9解最优化问题的计算机软件 II 泛函的最优化及应用 2.1 有界变差函数 2.2 泛函的变分与泛函的极值问题 2.3 Euler-Lagrange方程 2.4 二维图像的Osher模型 2.5 泛函最优化方法在图像处理中的应用 2.5.1 噪声的消减 2.5.2 De-Blurring 2.5.3 Segmentation ----------------------------------------------- 注:这是一门约二十学时左右的短期课程,旨在介绍函数及泛函的最优化理论和方法,及其在信息处理中的应用。只要学过一元及多元微积分和线性代数的学生就能修读并听懂本课程。课程中涉及到的算法实现和应用举例都使用数学软件MATLAB 华东师大数学系

第九章 试验设计与方差分析

第九章试验设计与方差分析 在科学试验中我们常常要研究参加试验的各种条件的改变对试验结果的影响,从中选出最好的试验组合,以达到最佳试验结果。试验结果也称试验指标,试验中变化的条件称为因素( facter ) , 因素在试验中所取的每一个状态称为因素的一个水平(level )。如在考察不同温度对收率有无显著影响的药物生产中,药物收率为试验指标,温度为一个因素,生产中所取的不同温度为水平。“方差分析”是研究各个因素各个水平对试验结果影响大小的一种常用方法。本章将简要介绍试验设计的原则和方法,着重讨论单因素试验,双因素试验,多因素正交试验及其方差分析。 第一节试验设计 一、试验设计原则 任何试验都包含三个基本要素:因素,对象和效应。例如在研究用有机溶液提取中药有效成分的试验中,溶液的种类和浓度,催化剂,温度等可视为因素;所选择的中药样品为对象;而浸出率则可视为效应。根据试验的目的选择参加试验的因素,并从质量或数量上对每个因素确定不同的水平,因素及其水平在试验全过程中应保持不变。试验中选择多一些因素和水平可以提高试验效率,但并不是愈多愈好;试验对象需要具有同质性,如以小白鼠为对象做某种药理试验,小白鼠的年龄,体重及其某些生理条件必须大体相同。效应即试验指标,有数量和非数量的两种,指标要求必须是客观的和精确的。为了准确地考查因素的不同水平所产生的效应,在试验设计中应注意以下基本原则。 1.对照(control )为了更好地说明试验因素的影响和作用,常在试验中设立对照组。对照的目的在于抵消或减少非试验因素的干扰,以避免对试验效应作出错误的判断。 2.均衡( balance) 通过对照抵消非试验因素干扰的关键是试验设计的均衡性,即在试验中应使试验组和对照组在非试验因素上大致相同。如在考察某种药物疗效的试验中,试验组和对照组的对象(病人)的性别,年龄,病情等应尽量一致,而观察指标,方法,仪器,人员等应相同,以保持试验对象和试验条件的均衡。 3.随机化(randomization )利用均衡原则还不能使所有非试验因素达到真正均衡。随机化是均衡的一种补救方法,使各对象或试验条件享有均等的机会。以利于非试验因素对结果的影响。随机化的常用工具是随机数字表。 4.重复( replication ) 重复是指在相同条件下对每个个体独立进行多次的试验,它可以避免由于试验次数太少而导致非试验因素的个别极端影响而产

最优化方法大作业

发动机空燃比控制器 引言:我主要从事自动化相关研究。这里介绍我曾经接触过的发动机空燃比控制器设计中的优化问题。 发动机空燃比控制器设计中的最优化问题 AFR =a f m m && (1) 空燃比由方程(1)定义,在发动机运行过程中如果控制AFR 稳定在14.7可以获 得最好的动力性能和排放性能。如果假设进入气缸的空气流量a m &可以由相关单元检测得到,则可以通过控制进入气缸的燃油流量f m &来实现空燃比的精确控制。由于实际发动机的燃油喷嘴并不是直接对气缸喷燃油,而是通过进气歧管喷燃油,这么做会在进 气歧管壁上液化形成油膜,因此不仅是喷嘴喷出的未液化部分燃油会进入气缸,油膜 蒸发部分燃油也会进入气缸,如方程(2)。这样如何更好的喷射燃油成为了一个问题。 1110101122211ττττ?? ?? -?? ??????????=+????????-????????????-???? ? ??? ?? ????????? ?f f f v X x x u x x X x y =x && (2) 其中12、,==ff fv x m x m &&=f y m &,=fi u m &这里面,表示油膜蒸发量ff m &、fv m &表示为液化部分燃油、fi m &表示喷嘴喷射的燃油,在τf 、τv 、X 都已知的情况下,由现代控制理论知识,根据系统的增广状态空间模型方程(3) 0000001 1 011011114.70ττττ????-?? ??????????=-+-??????????????? ??????????????? ?? ??=?????? f f v v a X X u +q q m y q x x x &&& (3) 其中()0 14.7?t a q = y -m &。由极点配置方法,只要设计控制器方程(4),就可以 使得y 无差的跟踪阶跃输入,那么y 也能较好的跟踪AFR *a m /&。 12-- u =K q K x (4) 这里面的12、K K 确定,可由主导极点概念降维成两个参数12C ,C ,虽然都是最终稳态无差,但是目标是使得瞬态过程中y 和阶跃输入y r 的差异尽可能的小。所以原问

大连理工优化方法大作业MATLAB编程

function [x,dk,k]=fjqx(x,s) flag=0; a=0; b=0; k=0; d=1; while(flag==0) [p,q]=getpq(x,d,s); if (p<0) b=d; d=(d+a)/2; end if(p>=0)&&(q>=0) dk=d; x=x+d*s; flag=1; end k=k+1;

if(p>=0)&&(q<0) a=d; d=min{2*d,(d+b)/2}; end end %定义求函数值的函数fun,当输入为x0=(x1,x2)时,输出为f function f=fun(x) f=(x(2)-x(1)^2)^2+(1-x(1))^2; function gf=gfun(x) gf=[-4*x(1)*(x(2)-x(1)^2)+2*(x(1)-1),2*(x(2)-x(1)^2)]; function [p,q]=getpq(x,d,s) p=fun(x)-fun(x+d*s)+0.20*d*gfun(x)*s'; q=gfun(x+d*s)*s'-0.60*gfun(x)*s'; 结果: x=[0,1]; s=[-1,1]; [x,dk,k]=fjqx(x,s) x =-0.0000 1.0000 dk =1.1102e-016 k =54

function f= fun( X ) %所求问题目标函数 f=X(1)^2-2*X(1)*X(2)+2*X(2)^2+X(3)^2+ X(4)^2- X(2)*X(3)+2*X(1)+3*X(2)-X(3); end function g= gfun( X ) %所求问题目标函数梯度 g=[2*X(1)-2*X(2)+2,-2*X(1)+4*X(2)-X(3)+3,2*X(3)-X(2)-1,2*X(4)]; end function [ x,val,k ] = frcg( fun,gfun,x0 ) %功能:用FR共轭梯度法求无约束问题最小值 %输入:x0是初始点,fun和gfun分别是目标函数和梯度 %输出:x、val分别是最优点和最优值,k是迭代次数 maxk=5000;%最大迭代次数 rho=0.5;sigma=0.4;

最优化方法及其应用课后答案

1 2 ( ( 最优化方法部分课后习题解答 1.一直优化问题的数学模型为: 习题一 min f (x ) = (x ? 3)2 + (x ? 4)2 ? g (x ) = x ? x ? 5 ≥ ? 1 1 2 2 ? 试用图解法求出: s .t . ?g 2 (x ) = ?x 1 ? x 2 + 5 ≥ 0 ?g (x ) = x ≥ 0 ? 3 1 ??g 4 (x ) = x 2 ≥ 0 (1) 无约束最优点,并求出最优值。 (2) 约束最优点,并求出其最优值。 (3) 如果加一个等式约束 h (x ) = x 1 ? x 2 = 0 ,其约束最优解是什么? * 解 :(1)在无约束条件下, f (x ) 的可行域在整个 x 1 0x 2 平面上,不难看出,当 x =(3,4) 时, f (x ) 取最小值,即,最优点为 x * =(3,4):且最优值为: f (x * ) =0 (2)在约束条件下, f (x ) 的可行域为图中阴影部分所示,此时,求该问题的最优点就是 在约束集合即可行域中找一点 (x 1 , x 2 ) ,使其落在半径最小的同心圆上,显然,从图示中可 以看出,当 x * = 15 , 5 ) 时, f (x ) 所在的圆的半径最小。 4 4 ?g (x ) = x ? x ? 5 = 0 ? 15 ?x 1 = 其中:点为 g 1 (x ) 和 g 2 (x ) 的交点,令 ? 1 1 2 ? 2 求解得到: ? 4 5 即最优点为 x * = ? ?g 2 (x ) = ?x 1 ? x 2 + 5 = 0 15 , 5 ) :最优值为: f (x * ) = 65 ?x = ?? 2 4 4 4 8 (3).若增加一个等式约束,则由图可知,可行域为空集,即此时最优解不存在。 2.一个矩形无盖油箱的外部总面积限定为 S ,怎样设计可使油箱的容量最大?试列出这个优 化问题的数学模型,并回答这属于几维的优化问题. 解:列出这个优化问题的数学模型为: max f (x ) = x 1x 2 x 3 ?x 1x 2 + 2x 2 x 3 + 2x 1x 3 ≤ S

最优化大作业

最优化方法大作业 ---------用优化算法求解函数最值问题

摘要 最优化(optimization) 是应用数学的重要研究领域.它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。最优化问题一般包括最小化问题和最大化问题,而最大化问题可以通过简单的转化使之成最最小化问题。最小化问题分为两类,即约束最小化和无约束最小化问题。在此报告中,前两个问题属于无约束最小化问题的求解,报告中分别使用了“牛顿法”和“共轭梯度法”。后两个问题属于有约束最小化问题的求解,报告中分别用“外点法”和“内点法”求解。虽然命名不一样,其实质都是构造“惩罚函数”或者“障碍函数”,通过拉格朗日乘子法将有约束问题转化为无约束问题进行求解。再此报告中,“外点法”和“内点法”分别用了直接求导和调用“牛顿法”来求解无约束优化问题。 在此实验中,用“共轭梯度法”对“牛顿法”所解函数进行求解时出现错误,报告中另取一函数用“共轭梯度法”求解得到正确的结果。此实验中所有的函数其理论值都是显见的,分析计算结果可知程序正确,所求结果误差处于可接受范围内。 报告中对所用到的四种方法在其使用以前都有理论说明,对“外点法”中惩罚函数和“内点法”中障碍函数的选择也有相应的说明,另外,对此次试验中的收获也在报告的三部分给出。 本报告中所用程序代码一律用MATLAB编写。 【关键字】函数最优化牛顿法共轭梯度法内点法外点法 MATLAB

一,问题描述 1, 分别用共轭梯度发法和牛顿法来求解一下优化问题 ()()()()()4 41432243221102510min x x x x x x x x x f -+-+-++= 2, 分别用外点法和内点发求解一下优化问题 ?? ?≥-++0 1.min 212 231x x t s x x 二、问题求解 用牛顿法求解 ()()()()()4 414 322 432 21102510min x x x x x x x x x f -+-+-++= 1.1.1问题分析: 取步长为1而沿着牛顿方向迭代的方法称为牛顿法,在牛顿法中,初始点的取值随意,在以后的每次迭代中,()[] ()k k k k x f x f x x ??-=-+1 21,直到终止条件成立时停止。 1.1.2 问题求解 注:本程序编程语言为MATLAB ,终止条件为()162 110-≤?x f ,初始取值为 [10 10 10 10] M 文件(求解函数)如下: function s=newton1(f,c,eps) %c 是初值,eps 为允许误差值 if nargin==2 eps=; elseif nargin<1 error('') % return end syms x1 x2 x3 x4

多目标优化方法

多目标优化方法 基本概述 几个概念 优化方法 一、多目标优化基本概述 现今,多目标优化问题应用越来越广,涉及诸多领域。在日常生活和工程中,经常要求不只一项指标达到最优,往往要求多项指标同时达到最优,大量的问题都可以归结为一类在某种约束条件下使多个目标同时达到最优的多目标优化问题。例如:在机械加工时,在进给切削中,为选择合适的切削速度和进给量,提出目标:1)机械加工成本最低2)生产率低3)刀具寿命最长;同时还要满足进给量小于加工余量、刀具强度等约束条件。 多目标优化的数学模型可以表示为: X=[x1,x2,…,x n ]T----------n维向量 min F(X)=[f1(X),f2(X),…,f n(X)]T----------向量形式的目标函数s.t. g i(X)≤0,(i=1,2,…,m) h j(X)=0,(j=1,2,…,k)--------设计变量应满足的约束条件多目标优化问题是一个比较复杂的问题,相比于单目标优化问题,在多目标优化问题中,约束要求是各自独立的,所以无法直接比较任意两个解的优劣。

二、多目标优化中几个概念:最优解,劣解,非劣解。 最优解X*:就是在X*所在的区间D中其函数值比其他任何点的函数值要小即f(X*)≤f(X),则X*为优化问题的最优解。 劣解X*:在D中存在X使其函数值小于解的函数值,即f(x)≤f(X*), 即存在比解更优的点。 非劣解X*:在区间D中不存在X使f(X)全部小于解的函数值f(X*). 如图:在[0,1]中X*=1为最优解 在[0,2]中X*=a为劣解 在[1,2]中X*=b为非劣解 多目标优化问题中绝对最优解存在可能性一般很小,而劣解没有意义,所以通常去求其非劣解来解决问题。

最优化理论与算法(第九章)

第九章 二次规划 §9.1 二次规划问题 称形如 1m in ()2 T T Q x x H x g x = + 1,,. 1,,T i i e T i i e a x b i m s t a x b i m m ?==??≥=+?? (9.1) 的非线性规划问题为二次规划问题。对二次规划问题,有如下的最优性条件。 定理9.1 设x *是(9.1)的局部极小点,则必存在乘子(1,,)i i m λ*= ,使得 1 0 1,, 0 1,,m i i i T i i i e i e g H x a a x b i m m i m m λλλ**=*** ?+=? ?? ??-==+????≥=+??? ∑ (9.2) 且对于一切满足于: 0, ()T i d a i E I x * =∈ 的n d R ∈,都有0T d Hd ≥。 注:1)上述定理的前后两部分分别对应于一、二阶的必要条件; 2)满足上述条件的d ,都有(,)d S x λ* * ∈; 3)当约束条件均为线性函数时,容易证明: (,)(,) (,F D x X S F D x X L F D x X * * *= =及(,)(,)S x G x λλ**** = 上面给出的是二次规划的必要性条件,下面给出充分性条件。 定理9.2 设x * 是K-T 点,λ* 是相应的Lagrange 乘子,如果对满足 0 0 () 0 () 0 T i T i T i i d a i E d a i I x d a i I x λ* **?=∈?≥∈??=∈>? 且 (9.3) 的一切非零向量n d R ∈,都有0T d Hd >,则x * 是(9.1)的局部严格极小点。

大连理工大学优化方法上机大作业

2016年大连理工大学优化 方法上机大作业 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

2016年大连理工大学优化方法上机大作业学院: 专业: 班级: 学号: 姓名: 上机大作业1: 1.最速下降法:

function f = fun(x) f = (1-x(1))^2 + 100*(x(2)-x(1)^2)^2; end function g = grad(x) g = zeros(2,1); g(1)=2*(x(1)-1)+400*x(1)*(x(1)^2-x(2)); g(2) = 200*(x(2)-x(1)^2); end function x_star = steepest(x0,eps) gk = grad(x0); res = norm(gk); k = 0; while res > eps && k<=1000 dk = -gk;

ak =1; f0 = fun(x0); f1 = fun(x0+ak*dk); slope = dot(gk,dk); while f1 > f0 + 0.1*ak*slope ak = ak/4; xk = x0 + ak*dk; f1 = fun(xk); end k = k+1; x0 = xk; gk = grad(xk); res = norm(gk); fprintf('--The %d-th iter, the residual is %f\n',k,res); end x_star = xk; end >> clear >> x0=[0,0]'; >> eps=1e-4; >> x=steepest(x0,eps)

多目标最优化模型

第六章 最优化数学模型 §1 最优化问题 1.1 最优化问题概念 1.2 最优化问题分类 1.3 最优化问题数学模型 §2 经典最优化方法 2.1 无约束条件极值 2.2 等式约束条件极值 2.3 不等式约束条件极值 §3 线性规划 3.1 线性规划 3.2 整数规划 §4 最优化问题数值算法 4.1 直接搜索法 4.2 梯度法 4.3 罚函数法 §5 多目标优化问题 5.1 多目标优化问题 5.2 单目标化解法 5.3 多重优化解法 5.4 目标关联函数解法 5.5 投资收益风险问题 第六章 最优化问题数学模型 §1 最优化问题 1.1 最优化问题概念 (1)最优化问题 在工业、农业、交通运输、商业、国防、建筑、通信、政府机关等各部门各领域的实际工作中,我们经常会遇到求函数的极值或最大值最小值问题,这一类问题我们称之为最优化问题。而求解最优化问题的数学方法被称为最优化方法。它主要解决最优生产计划、最优分配、最佳设计、最优决策、最优管理等求函数最大值最小值问题。 最优化问题的目的有两个:①求出满足一定条件下,函数的极值或最大值最小值;②求出取得极值时变量的取值。 最优化问题所涉及的内容种类繁多,有的十分复杂,但是它们都有共同的关键因素:变量,约束条件和目标函数。 (2)变量 变量是指最优化问题中所涉及的与约束条件和目标函数有关的待确定的量。一般来说,它们都有一些限制条件(约束条件),与目标函数紧密关联。 设问题中涉及的变量为n x x x ,,,21 ;我们常常也用),,,(21n x x x X 表示。 (3)约束条件 在最优化问题中,求目标函数的极值时,变量必须满足的限制称为约束条件。 例如,许多实际问题变量要求必须非负,这是一种限制;在研究电路优化设

相关文档
相关文档 最新文档