无约束非线性规划求解方法及其实现

无约束非线性规划求解方法及其实现
无约束非线性规划求解方法及其实现

无约束非线性规划求解方法及其实现

作者:杨玲指导老师:陈素根

摘要:

非线性规划是具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。非线性规划属于最优化方法的一种,是线性规划的延伸。非线性规划研究一个n元实函数在一组灯饰或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。目标函数和约束条件都是线性函数的情形则属于线性规划。非线性规划是20世纪50年代才形成的一门新兴学科。1951年H.W库恩和A.W塔克发表的关于最优性条件的论文是非线性规划正是诞生的一个重要标志。在50年代还得出了可分离规划和二次规划的n种解法,它们大都是以G.B.丹齐克提出的解线性规划的单纯形法为基础的。50年代末到60年代末出现了许多解线性规划问题的有效的算法,70年代又得到进一步的发展。非线性规划在工程,管理,经济,科研,军事等发面都有广泛的应用,为最优设计提供了有力的工具。20世纪80年代以来,随着计算机技术的快速发展,非线性规划在信赖域法、稀疏牛顿法、并行计算、内点法和有限存储法等领域取得了丰硕的成果,无约束非线性规划问题是非线性规划的一个重要内容,很多学者对非线性规划问题进行了深入且系统的研究,研究成果丰硕。

关键词最优化共轭梯度法非线性无约束

1 引言

1.1 无约束非线性规划问题是最基本的非线性规划问题,在1959~1963年幼三位数学家共同研究成功求解无约束问题的DFP变尺度法,该算法的研究成功是无约束优化算法的一个大飞跃,引起了一系列的理论工作,并陆续出现了许多新的算法。20世纪80年代以来,随着计算机技术的快速发展,非线性规划在信赖域法、稀疏牛顿法、并行计算、内点法和有限存储法等领域取得了丰硕的成果。无约束非线性规划问题是非线性规划的一个重要内容,很多学者对非线性规划问题进行了深入且系统的研究,研究成果丰硕。

1.2 本文主要研究无约束非线性规划问题,将文章分成四个部分,首先会具体介绍无约束非线性规划的相关概念,并在此基础上研究非线性规划的相关理论与基本算法问题,接着详细介绍无约束非线性规划的几种主要的求解方法,最后举例说明他在实际生活中的应用,并编程实现它。

2 正文

2.1主要介绍无约束非线性规划的相关概念

一个非线性规划问题的自变量x没有任何约束,或说可行域即是整个n维向量空间:n

错误!未找到引用源。,则称

x R

这样的非线性规划问题为无约束问题:错误!未找到引用源。或错误!未找到引用源。 。

一般我们研究的无约束非线性规划问题大都可以归结为求无约束最优化问题。

2.2 介绍无约束非线性规划的几种主要的求解方法及其实现 求解无约束非线性规划问题就是求解无约束非线性规划最优化

的问题,可以表述为()min ,n

f x x R ∈。它的求解方法有许多种,

大体上可以概括为两大类,一是直接法,二是解析法。解析法又被称为代数法,值得是通过计算

()f x 的一阶,二阶偏导数及其

函数的解析性质来实现极值的求解方法。相应的,不必计算

()f x 的一阶、二阶偏导数及其函数的解析性质,仅用到函数值

来实现近似值的求解方法叫直接法。

1. 先介绍直接法中的一维搜索方法,包括Fibonacci 法和0.618法。

一维搜索方法就是在用迭代法沿某一已知方向求目标函数极小点的方法,常用的由斐波那契法和黄金分割法。

考虑一维极小值问题()min a t b f t ≤≤,若()f t 是[],a b 区间上的下单峰函数,我们将通过不断的缩短[],a b 的长度,来探索()min a t b f t ≤≤的近似最优解。在[],a b 中任意取两个关于[],a b 是对称的点1t 和1t (不妨设,2

1t t <并称它们为搜索点),计算()1f t 与()2f t 并

比较它们的大小。对于单峰函数,若

()()12f t f t <,则必有

[]

1*,t a t ∈,

因而[]1,a t 是缩短了的单峰区间,若()()21f t f t <,

则有

[]

2*,t t b ∈,故[]2

,t b 是缩短了的单峰区间,若

()()21f t f t =,则[]1,a t 和[]2,t b 都是缩短了的单峰。因而通

过两个搜索点处目标函数值大小的比较,总可以获得缩短了的单峰区间。对于新的单峰区间重复上述做法,又可以获得更短的单峰区间。如此下去,在单峰区间缩短到充分小时,可以取最后的

搜索点作为()min a t b

f t ≤≤最优解的近似值,下面介绍斐波那契法来选取搜索点,使给定的单峰区间的长度能尽快缩短。 Fibonacci 法: 若数列

{}

n F 满足关系:011F F ==,21n n n F F F --=+,2,3,

n =,则称n F 为Fibonacci 数列,n F 称为第n 个

Fibonacci 数,称相邻两个Fibonacci 数之比1

n n

F F -为Fibonacci 分

数。当用斐波那契法以n 个探索点来缩短某一区间时,区间长度

的第一次缩短率为1

n n

F F -,其后各次分别为

231

122

,,,n n n n F F F F F F ----,由此,若1t 和2t ,

()21t t <单峰区间[],a b 中的第1个和第2

个探索点的话,则应有比例关系1

1n n F t a b a F --=-,

22a n n t F b a F --=-,从

而()11n n F t a b a F -=+-,

()2

2n n

F t a b a F -=+-,它们关于[]

,a b 是对称的点。

如果要求经过一系列探索点搜索之后,使最后的探索点和最优解之间的距离不超过精度0δ>,这也要求最后区间的长度不超过

δ

,即

n

b a

F δ-≤。由此,按照预先给定的精度δ,确定使n b a F δ-≤成立的最小整数n 作为搜索次数,直到进行第n 次探索点为止。

用上述不断缩短函数()f x 单峰区间的方法来求()min a t b

f t ≤≤的近似解是Kiefer(1953年)提出的,叫Fibonacci 法。具体步骤如下:

1选取初始数据,确定单峰区间[]00,a b ,给出搜索精度0δ>,由

n

b a

F δ-≤确定搜索次数n ; 21k =,0a a =,0b b =,计算最初两个搜索点,按

()11n n F t a b a F -=+-,

()2

2n n F t a b a F -=+-计算1t ,2t ;

3while 1k n <-

()11f f t =,

()22f f t =

if 12f f <

2a t =;21t t =;()11n k

n k

F t a b a F ---=+-;

else

1b t =;12t t =;()12n k

n k

F t b b a F ---=+

-;

end

1k k =+

end

4当进行至1k n =-时,()121

2t t a b ==+,此时无法比较

()1f t 与()2f t 的大小来确定最终区间,为此,取

()()211212t a b t a b a ε?

=+???

???=++- ?????

,其中ε为任意小点的数,在1t 和2t 这两点中,以函数值较小者为近似极小值,相应的函数值为近似极小值,并得最终区间

[]1,a t 或[]2,t b 。

由上述分析可知,斐波那契法使用对称搜索方法,逐步缩短所考察的区间,它能以尽量少的函数求值次数达到预定的某一缩短率。

2. 下面介绍解析法中的最速下降法、牛顿法、共轭梯度法和变尺度法。

(1)最速下降法:

对基本迭代格式

1k k k

k x x t p

+=+,我们一般考虑从点

k

x

出发沿哪一个方向

k

p

,使目标函数下

f 降得最快。

由微积分的相关知识我们可以知道,点

k

x

的负梯度方向

()k k

p f x =-?是从点

k

x

出发使

f

下降最快的方向。为此,

负梯度方向

()k

f x -?为

f

在点

k

x

处的最速下降

方向,按基本迭代式1

k k

k

k x x t p

+=+每一轮从点

k

x

出发沿

最速下降方向

()k

f x -?作一维搜索,来建立求解无约束

极值问题的方法称之为最速下降法。该方法的特点是每轮的搜索方向都是目标函数在当前点下降最快的方向。同时,

()0k f x ?=或

()k

f x ε?≤作为停止条件。其具体的步骤为:(a).选取初始数据。选取初始点0

x

,给定终止误差,

令k:=0. (b).求梯度向量。计算()k

f x ?,若()k

f x ε?≤,停

止迭代,输出

k

x

。否则进行(c)。 (c). 构造负梯度方向。取()k

k

p f x =-?。

(d). 进行一维搜索。求

k

t ,使得

()m i n ()k k k k

k t f x t p f x t p ≥+=+

,令

1k k k

k x x t p +=+,

=1k k +:进行(b).

例题:用最速下降法求解无约束非线性规划问题,

()2

21

2

min 25f x x x

=+,其中

()

12,T

x x x =,要求选取初始点

()

02,2T

x =,终止误差

6

10ε-=。 解:1)

()()122,50T

f x x x ?=,编写M 文件deta f.m 如下:

function.[f,df]=deta f(x); f=x(1)^2+25*x(2)^2; df(1)=2*x(1); df(2)=50*x(2)^2; 2)编写M 文件zuisu.m clc x=[2,2]; [f0,g]=deta f(x);

while norm(g)>0.000001 p=-g/norm(g); t=1.0;f=deta f(x+t*p); end x=x+t*p [f0,g]=deta f(x) end

(2). 牛顿法:

牛顿法是求无约束最优解的一种古典解析算法,其基本思想是在寻找收敛速度最快的无约束最优化方法中,在每次迭代时,用适当的二次函数去近似目标函数

f

,并用迭代点指向近似二次

函数极小点的方向来构造搜索方向,然后精确地求近似二次函数的极小点,以这个极小点作为f

的极小点的近似值。 牛顿法的迭代步骤: 1)给定初始点和收敛精度;

2)计算

()k f x ?,

()

k H x ,

()1

k H x -????

3)求

()()

1

1k k k k k x x K H x f x -+=-?????;

4)检查收敛精度,若

1k k x x ε

+-<,则

1

*k x x +=,停止;否则

1

k k =+,返回2)继续。

牛顿法的优点是每次迭代都在牛顿方向进行一维搜索,避免了迭代后函数值变大的现象,从而保持了牛顿法的二次收敛性,而对初始点的选择没有严格要求。但是牛顿法也有缺点,它对目标函数要求严格,函数必须具有连续的一、二阶导数;海赛矩阵必须正定且非奇异。还有牛顿法的计算复杂,存储量大。

(3). 共轭梯度法:

共轭梯度法最早是由计算数学家Hestenes 和几何学家Stiefel

在20世纪50年代初为求解线性方程组,n

Ax b x R =∈而各

自独立提出的。在

A

为对称正定阵时,方程组

,n

Ax b x R =∈等价于最优化问题1min 2

n T T x R x Ax b x ∈,

由此,Hestenes 和Stief 的方法也可以看做是求二次函数极小值得共轭梯度法。在1964年Fetcher 和Reeves 将这种方法推广到了非线性优化,得到了求一般函数极小值的共轭梯度法。对于无

约束最优化问题

()min n

x R

f x ∈,其中

:n

f R R →连续可微有下

界,共轭梯度法是解决这类问题中的最有效的数值方法之一。特别是在大规模问题上,共轭梯度法因为算法简便、所需存储量小、收敛速度快等特性而在许多工程科学领域采用。

对于无约束优化问题,给出一个初始值0x ,算法迭代产生点

列{}12,,x x 。假设某一k x 是无约束优化问题的解,或者该

点列收敛于最优解。在第

1k +次迭代中,当前迭代点为

k x ,

产生下一个迭代点1k k k k x x a d +==,其中n k

d R ∈是搜索方向,

0k a >是步长因子,它满足某线搜索终止条件。显然,每步迭

代主要由两部分组成:一是搜索方向k d ;另一是步长因子k a 。

求解无约束优化问题的共轭梯度法是从求解线性方程组的线性共轭梯度法推广而来的,其搜索方向是负梯度方向与上一次迭代的搜索方向的线性组合,它表示为

0011,k k k k d g d g d β--=-=-+,关于参数k

β的不同取

法对应于不同的共轭梯度法,著名的有HS 方法,FR 方法,PRP 方法,CD 方法,LS 方法,DY 方法。其中FR 方法、DY 方法和CD 方法具有很好的收敛性质,但数值表现结果却差强人意,而PRP 方法、HS 方法和LS 方法对一般函数不具备收敛性,但当收敛时,往往数值表现却很好。因此近年来研究出了混合共轭梯度法,许多学者作出了尝试。焦宝聪、陈兰平和李娟对求解无约束优化问题提出一类三项混合共轭梯度算法,新算法将HS 算法与DY 方法相结合,并在不需给定下降条件的情况下,证明了算法在Wolfe 线搜索原则下的收敛性,数值试验亦显示出这种混合共轭梯度算法较之HS 和PRP 的优势。焦宝聪、陈兰平和潘翠英Ⅲo 结合FR 算法和DY 算法,给出了一类新的混合共轭梯度算法,并结合Goldstein 线搜索,在较弱的条件下证明了算法的收敛性。

共轭梯度法是一种很有效求解无约束优化的方法,共轭梯度法是根据共轭方向去搜索,可以由较快的收敛速度找到最优解求得极小点。

(4).变尺度法:

变尺度法也称为拟牛顿法,它是基于牛顿法的思想而又作出了重大改进的一种方法,是由Davidon 提出,经过Fletcher 和Powell 加以发展和完善的,称为DFP 变尺度法。

拟牛顿法的一般步骤为:

a. 给定初始点()

0x ,初始对称正定矩阵0H ,

()

()0

0g g x =及

精度

0ε>; b. 计算搜索方向

()k k k p H g =-; c. 作直线搜索

()

()()

(

)1,k k k x

F x p

+=,计算()

()

11

k k f

f x

++=,

()

()

11k k g g x

++=,

()

()

1k k k S x

x

+=-,

1k k k y g g +=-; d. 判断终止准则是否满足; e. 令

1K k k H H E +=+置1k k =+,转步骤(b).(不同的拟牛顿

法对应不同的

k

E )

DFP 变尺度法的算法原理:

DFP

算法中校正公式为

1T T k k k k k k k k T T

k k

k k k S S H y y H

H H S y y H y +=+-

为了保证

k H 的正定性,在下面的算法迭代一定的次数后,

重置初始点和迭代矩阵再进行迭代。 DFP 变尺度法的算法步骤: 1) 给定初始点()

0x

,初始矩阵0n H I =及精度0ε

>;

2) 若

()k

f x ε?≤,停止,极小点为()0x ;否则转步骤3);

3) 取()

()

000()p H f x =-?,令0k =;

4) 用

k

t ,使得

()()

(

)()

()

()

min k k k k k k t f x t p

f x

tp

α≥+=+,令

()

()

()

1k k k x

x tp

+=+,转步骤5);

5)

()

1()k f x

ε+?≤,停止,极小值点为()

1k x

+;否则转步

骤6);

6) 若1k n +=,令()

()

0n x x

=,转步骤3);否则转步骤7);

7) 令

()

()

()()()

()

()

()

()()

()

()

11111()()

T

k k k k k k T

k k k k x x

x

x

H H x

x

f x

f x +++++--=+

-?-?

()

()

(

)()

()

(

)

()

()

()()

()

(

)

1111()()()()

()()()()

T

k k k k k T

k k k k k H f x

f x f x

f x f x

f x H f x

f x ++++?-??-?-

?-??-?,取

()

()

11()k k k p H f x

++=-?,置1k k =+,步骤4)。

DFP 变尺度法的算法MATLAB 程序: 调用格式:[x,min f]=min DFP(f,x0,var,eps) 其中, f:目标函数 x0:初始点 var 自变量向量 eps 精度

x :目标函数取最小值时的自变量值 min f :目标函数的最小值

DFP 的MATLAB 程序代码如下: fuction [x,min f]=minDFP(f,x0,var,eps) %目标函数:f; %初始点:x0; %自变量向量:var;

%目标函数取最小值时的自变量值:x; %目标函数的最小值:min f; format long; If nargin==3

eps=1.0e-6;

end

x0=transpose(x0);

n=length(var);

syms l;

H=eye(n,n);

grad f=jacobian(f,var);

v0=Funval(gradf,var,x0);

p=-H*transpose(v0);

k=0;

while 1

v=Funval(gradf,var,x0);

tol =norm(v);

if tol<=eps

x=x0;

break;

end

y=x0+l*p;

yf=Funval(f,var,y);

[a,b]=minJT(yf,0,0.1); xm=minHJ(yf,a,b);

x1=x0+xm*p;

vk=Funval(gradf,var,x1);

tol=norm(vk);

if tol<=eps

x=x1;

break;

end

if k+1==n

x0=x1;

continue;

else

dx=x1-x0;

dgf=vk-v;

dgf=transpose(dgf);

dxT=transpose(dx);

dgfT=transpose(dgf);

mdx=dx*dxT;

mdgf=dgf*dgfT;

fz=H*(dgf*(dgfT*H));

H=H+mdx/(dxT*dgf)-inv(dgfT*(H*dgf))*fz;

p=-H*transpose(vk);

k=k+1;

x0=x1;

end

end

minf=Funval(f,var,x); format short;

第四章 非线性规划1-约束极值问题

第四章 非线性规划 ???? ???? 无约束最优化问题线性规划约束最优化问题非线性规划 ?? ?凸规划约束最优化问题非凸规划 ?? ?直接解法约束最优化问题求解方法间接解法 间接解法是将约束优化问题转化为一系列无约束优化问题来解的一种方法。由于这类方法可以选用有效的无约束优化方法,且易于处理同时具有不等式约束和等式约束的问题,因而在工程优化中得到了广泛的应用。 直接解法是在满足不等式约束的可行设汁区域内直接按索问题的约束最优解。 第一节 目标函数的约束极值问题 所谓约束优化设计问题的最优性条件.就是指在满足等式和不等式约束条件下,其目标函数值最小的点必须满足的条件,须注意的是,这只是对约束的局部最优解而言。 对于带有约束条件的目标函数,其求最优解的过程可归结为: 一、约束与方向的定义 一)起作用约束与松弛约束 对于一个不等式约束()0g X ≤来说,如果所讨论的设计点() k X 使该约束()0g X =(或 者说() k X 当时正处在该约束的边界上)时,则称这个约束是() k X 点的一个起作用约束或紧约 束,而其他满足()0g X <的约束称为松弛约束。

冗余约束 40g ≤ 当一个设计点同时有几个约束起作用时,即可定义起作用约束集合为 {}()()()|()0,1,2, ,k k u I X u g X u m === 其意义是对() k X 点此时所有起作用约束下标的集合。 二)冗余约束 如果一个不等式约束条件的约束面(即()0g X =)对可行域的大小不发生影 响,或是约束面不与可行域D 相交,即此约束称为冗余约束。 三)可行方向 可行方向:一个设计点()k X 在可行域内,沿某一个方向S 移动,仍可得到一个属于可行域的新点,则称该方向为可行方向。 1)设计点为自由点 设计点() k X 在可行域内是一个自由点,在各个方 向上都可以作出移动得到新点仍属于可行域,如图所示。 2)设计点为约束边界点 当设计点()k X 处于起作用约束i g 上时,它的移动就会受到可行性的限制。此时,()k X 点的可行方向S 必满足条件: ()0T k i S g X ?≤ (解释:()()cos ,()T k k T k i i i S g X S g X S g X ?=??,,()90T k i S g X ?≥?)) 当,()90T k i S g X ?=?时,方向S 是约束函数i g 在()k X 点处的切线方向,即()0T k i S g X ?=。 当某个设计点x 同时有几个约束起作用时(如

第四章 约束非线性规划

第四章 约束非线性规划 § 4.3 可行方向法 作者:黄希勇 2013.5.28 引入: 对于非线性规划问题,如果不存在约束,从任一个初始点 )0(x 出发,沿)(x f 的负梯度方向进行一维收索,便可求得目标函数的无约束极小值;而对有约束的极小化问题来说,除要使目标函数在每次迭代有所下降之外,还要注意解的可行性问题,为此,在求解约束非线性规划迭代法的设计中,应在每个迭代点)(k x 出构造一个可行下降方向 )(k d 。 引入:有效约束和可行下降方向的概念 考虑非线性规划 ?? ???=≥==m i x g l j x h t s x f i j .....2,10)(......2,10)(.) (min (4.3.1) 其中,)(),(),(x g x h x f i j 均为实值连续函数,且具有二阶连续偏导数。 设)0(x 是非线性规划的一个可行解。现考虑某一不等式约束条件 0)(≥x g i 满足它有两种可能:其一为0)(>x g i ,这时,点)0(x 不是处于由这一约束条件形成的可行域边界上,因而这一约束对)0(x 点的微小摄动不起限制作用,从而称这个约束条件是)0(x 点的不起作用约束(或无效约束);其二是0)(=x g i ,这时)0(x 点处于该约束条件形成的可行域边界上,

它对)0(x 的摄动起到了某种限制作用,故称这个约束是点的起作用约束(有效约束)。 显而易见,等式约束对所有可行点来说都是起作用约束。 1.1 D e f : 设可行域是非空集,D x ∈,若对某非零向量n R d ∈,存在0>δ,使对任意),0(δ∈t 均有D td x ∈+,则称d 为从x 出发的可行方向。 若非线性规划的某一可行点)0(x ,对该点的任一方向d 来说,若存在实数't ,使对任意 ]',0[t t ∈均有 )()()0()0(x f td x f <+ 就称方向d 为)0(x 点的一个下降方向。 如果方向d 既是)0(x 点的可行方向,又是这个点的下降方向,就称它是该点的可行下降方向。 Eg 4.4: 略 现考虑非线性规划(4.3.1)式,设)(k x 是它的一个可行解,但不是要求的极小点。为了求它的极小点或近似极小点,根据以前所说,应在)(k x 点的可行下降方向中选取某一方向)(k d ,并确定步长k t ,使 ???<+=++) ()() ()1() ()()1(k k k k k k x f x f d t x x (4.3.2) 若满足精度要求,迭代停止,)1(+k x 就是所要的点。否则,从)1(+k x 出发继续进行迭代,直到满足要求为止。上述方法称为可行方向法; 其特点是:迭代过程中采用的搜索方向为可行方向,所产生的迭代

MAAB非线性规划及非线性约束条件求解

M A T L A B 非线性规划及非线性约束条件求解 【题1】求非线性规划问题:221212121min 262 f x x x x x x = +--- clear all clc f=@(x)((1/2)*x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-6*x(2)); A=[11;-12;21]; b=[2;2;3]; Aeq=[];beq=[]; lb=[0;0]; ub=[100;100]; x0=[11]'; intlist=[0;0]; [errmsg,Z,X]=BNB20_new(f,x0,intlist,lb,ub,A,b,Aeq,beq) 【题2】求非线性规划问题:123min f x x x =- clear all clc f=@(x)(-x(1)*x(2)*x(3)); A=[-1-2-2;122]; b=[0;72]; Aeq=[];beq=[]; lb=[];ub=[]; x0=[1;1;1]; intlist=[000]'; [errmsg,Z,X]=BNB20_new(f,x0,intlist,lb,ub,A,b,Aeq,beq) 【题3】求非线性规划问题:()12212122min 42421x f e x x x x x =++++ function [c,ceq]=nolic2(x) c(1)=x(1)*x(2)-x(1)-x(2)+3/2; ceq=[]; end clear all clc f=@(x)exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2) +1); A=[];b=[];Aeq=[];beq=[]; lb=[-10-10]'; ub=[]; x0=[11]'; intlist=[00]';

求解带约束的非线性规划问题论文

求解带约束的非线性规划问题 罚函数法求解带约束的非线形规划问题的基本思想是:利用问题的目标函数和约束函数构造出带参数的所谓增广目标函数,把约束非线形规划问题转化为一系列无约束非线形规划问题来求解。增广目标函数由两个部分构成,一部分是原问题的目标函数,另一部分是由约束函数构造出的“惩罚”项,“惩罚”项的作用是对“违规”的点进行“惩罚”。罚函数法主要有两种形式。一种称为外部罚函数法,或称外点法,这种方法的迭代点一般在可行域的外部移动,随着迭代次数的增加,“惩罚”的力度也越来越大,从而迫使迭代点向可行域靠近;另一种成为内部罚函数法,或称内点法,它从满足约束条件的可行域的内点开始迭代,并对企图穿越可行域边界的点予以“惩罚”,当迭代点越接近边界,“惩罚”就越大,从而保证迭代点的可行性。 1. 外部罚函数法(外点法) 约束非线形规划问题 min f(x), s.t. g(x)>=0, 其中g (x) = (g 1(x),…,gm(x)), 将带约束的规划问题转化为无约束非线形规划问题来求解的一个直观想法是:设法加大不可行点处对应的目标函数值,使不可行点不能成为相应无约束问题的最优解,于是对于可行域 S= { x | g(x) >= 0} 作一惩罚函数 P(x) = 0, x∈S; K, else 其中K是预先选定的很大的数。然后构造一个增广目标函数 F (x) = f (x) + P (x) , 显然x∈S时,F(x)与f (x)相等,而x S 时,相应的F值很大。因此以F(x)为目标函数的无约束问题 minF x) = f(x) + P (x) (1) 的最优解也是原问题(NP)的最优解。 上述P(x)虽然简单,但因它的不连续性导致无约束问题(1)求解的困难。为此将P(x)修改为带正参数M(称为罚因子)的函数 P(x) =M ∑[min (0,gj(x))]2 则 min F(x,M) = f(x) + M∑[min (0,gj(x))]2 的最优解x(M) 为原问题的最优解或近似最优解。这时,若x (M) ∈S 则它必定是问题的最优解;若对于某一个罚因子M ,使得x (M) -∈S ,则加大M 的值,罚函数的“惩罚”

第四章 非线性规划约束极值问题

第四章 非线性规划 ?? ?? ???? 无约束最优化问题线性规划约束最优化问题非线性规划 ?? ?凸规划约束最优化问题非凸规划 ?? ?直接解法约束最优化问题求解方法间接解法 间接解法是将约束优化问题转化为一系列无约束优化问题来解的一种方法。由于这类方法可以选用有效的无约束优化方法,且易于处理同时具有不等式约束和等式约束的问题,因而在工程优化中得到了广泛的应用。 直接解法是在满足不等式约束的可行设汁区域内直接按索问题的约束最优解。 第一节 目标函数的约束极值问题 所谓约束优化设计问题的最优性条件.就是指在满足等式和不等式约束条件下,其目标函数值最小的点必须满足的条件,须注意的是,这只是对约束的局部最优解而言。 对于带有约束条件的目标函数,其求最优解的过程可归结为: 一、约束与方向的定义 一)起作用约束与松弛约束 对于一个不等式约束()0g X ≤来说,如果所讨论的设计点() k X 使该约束()0g X =(或 者说() k X 当时正处在该约束的边界上)时,则称这个约束是() k X 点的一个起作用约束或紧约 束,而其他满足()0g X <的约束称为松弛约束。

冗余约束 4 0g ≤ 当一个设计点同时有几个约束起作用时,即可定义起作用约束集合为 {}()()()|()0,1,2, ,k k u I X u g X u m === 其意义是对() k X 点此时所有起作用约束下标的集合。 二)冗余约束 如果一个不等式约束条件的约束面(即()0g X =)对可行域的大小不发生影 响,或是约束面不与可行域D 相交,即此约束称为冗余约束。 三)可行方向 可行方向:一个设计点()k X 在可行域内,沿某一个方向S 移动,仍可得到一个属于可行域的新点,则称该方向为可行方向。 1)设计点为自由点 设计点() k X 在可行域内是一个自由点,在各个方 向上都可以作出移动得到新点仍属于可行域,如图所示。 2)设计点为约束边界点 当设计点()k X 处于起作用约束i g 上时,它的移动就会受到可行性的限制。此时,()k X 点的可行方向S 必满足条件: ()0T k i S g X ?≤ (解释:()()cos ,()T k k T k i i i S g X S g X S g X ?=??,,()90T k i S g X ?≥?)) 当,()90T k i S g X ?=?时,方向S 是约束函数i g 在()k X 点处的切线方向,即()0T k i S g X ?=。 当某个设计点x 同时有几个约束起作用时(如

第六章 非线性规划(管理运筹学,李军)

6 非线性规划 1、判断函数的凸凹性 (1)3 )4()(x x f -=,4≤x (2)2 2212132)(x x x x X f ++= (3)21)(x x X f = (1)解:' 2 f (x)3(4)0x =--<=, x<=4,故f(x)在(-∞,4]上是不减函数, ''f (x)6(4)0x =->=,故f(x)在(-∞,4]上是凸函数。 (2)解:f(x)的海赛矩阵22()26H x ?? =?? ?? ,因H (x )正定,故f (x )为严格的凸函数。 (3)解:取任意两点(1) 11(,)X a b =、),(22)2(b a X =,从而 (1)11().f X a b =,(2)22().f X a b =,(1)11()(,)T f X b a ?= 看下式是否成立: (2)(1)(1)(2)(1)()()().()f X f X f X X X >+?- 2211112121..(,)(,)T a b a b b a a a b b >+-- 2121().()0a a b b --> 1212,,,a a b b 是任意点,并不能保证上式恒成立,故 所以12()f X x x =既非凸函数,也非凹函数。 2、分别用斐波那契法和黄金分割法求下述函数的极小值,初始的搜索区间为]15,1[∈x ,要求5.0|)()(|1≤--n n x f x f 。 x x x x X f 1357215)(234-+-= 解:斐波那契法 已知δ = 0.5/(15-1)=1/28、a = 1、b = 15,有1 28n F δ≥ =,即8n =。

用最速下降法求解无约束非线性规划问题

运 筹 学 实 习 报 告 姓名: xxxxxxxxxx 学号: xxxxxxxxxxx 专业班级: xxxxxxxxxxxx 2 0 1 3年 7 月 0 4 日

题目:用最速下降法求解无约束非线性规划问题 摘要: 无约束最优化问题的求解方法分为解析法和直接法两大类。解析法需要计 算函数的梯度,其中最速下降法就属于解析法中的一种。对于一个无约束非线性规划利用最速下降法求解,首先需要确定其优化方向,此优化方向应该选择为f 在当前点处的负梯度方向,利用一维搜索法找出沿此方向上的最小值及其对应点,此后将该点作为新的出发点重复上述过程,直到达到允许的误差为止。本文通过理论的计算方法,进一步分析,最后用c++编程实现求出允许误差内的最优解。此编程可用于计算符合下列形式的函数求最优解过程: f(x)=a[0]x1*x1+a[1]x2*x2+a[2]x1*x2+a[3]x1+a[4]x2+a[5]其中:a[i] (i=0,1,2,3,4,5) 为函数的系数。 本文以“ 李占利 主编,中国矿业大学出版社出版”的《最优化理论与方法》 第五章 “无约束最优化方法,5.1 最速下降法 ”例5—1为实例,首先利用上述迭代的方法,计算出各迭代点的函数值,梯度及其模。然后应用c++语言编程,得到在精度范围内的精确最优解。 C++编程计算的最优解为 : T x x ]0329218.0,00823045.0[)3(*-==。 即转化为分数结果为:?? ????-==412432) 3(*x x 。 满足精度要求的模为: 101 0736154.0||||)3(= <=εp 。 关键词:无约束非线性规划 解析法 最速下降法 梯度 模 最优解

求解非线性规划

求解非线性规划

————————————————————————————————作者:————————————————————————————————日期:

非线性规划的实例与定义 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。 1.2 线性规划与非线性规划的区别 如果线性规划的最优解存在,其最优解只能在其可行域的边界上达到(特别是可行域的顶点上达到);而非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到。 1.3 非线性规划的Matlab 解法 Matlab 中非线性规划的数学模型写成以下形式 )(min x f ???????=≤=?≤0 )(0)(x Ceq x C Beq x Aeq B Ax , 其中)(x f 是标量函数,Beq Aeq B A ,,,是相应维数的矩阵和向量,)(),(x Ceq x C 是非线性向量函数。 Matlab 中的命令是 X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS) 它的返回值是向量x ,其中FUN 是用M 文件定义的函数)(x f ;X0是x 的初始值;A,B,Aeq,Beq 定义了线性约束Beq X Aeq B X A =≤*,*,如果没有等式约束,则A=[],B=[],Aeq=[],Beq=[];LB 和UB 是变量x 的下界和上界,如果上界和下界没有约束,则LB=[],UB=[],如果x 无下界,则LB=-inf ,如果x 无上界,则UB=inf ;NONLCON 是用M 文件定义的非线性向量函数)(),(x Ceq x C ;OPTIONS 定义了优化参数,可以使用Matlab 缺省的参数设置。 例2 求下列非线性规划问题

非线性规划的概念和原理

第五章 非线性规划的概念和原理 非线性规划的理论是在线性规划的基础上发展起来的。1951年,库恩(H.W.Kuhn )和塔克(A.W.Tucker )等人提出了非线性规划的最优性条件,为它的发展奠定了基础。以后随着电子计算机的普遍使用,非线性规划的理论和方法有了很大的发展,其应用的领域也越来越广泛,特别是在军事,经济,管理,生产过程自动化,工程设计和产品优化设计等方面都有着重要的应用。 一般来说,解非线性规划问题要比求解线性规划问题困难得多,而且也不像线性规划那样有统一的数学模型及如单纯形法这一通用解法。非线性规划的各种算法大都有自己特定的适用范围。都有一定的局限性,到目前为止还没有适合于各种非线性规划问题的一般算法。这正是需要人们进一步研究的课题。 5.1 非线性规划的实例及数学模型 [例题6.1] 投资问题: 假定国家的下一个五年计划内用于发展某种工业的总投资为b 亿元,可供选择兴建的项目共有几个。已知第j 个项目的投资为j a 亿元,可得收益为j c 亿元,问应如何进行投资,才能使盈利率(即单位投资可得到的收益)为最高? 解:令决策变量为j x ,则j x 应满足条件() 10j j x x -= 同时j x 应满足约束条件 1 n j j j a x b =≤∑ 目标函数是要求盈利率()1121 ,,,n j j j n n j j j c x f x x x a x === ∑∑L 最大。 [例题6.2] 厂址选择问题: 设有n 个市场,第j 个市场位置为() ,j j p q ,它对某种货物的需要量为j b ()1,2,,j n =L 。 现计划建立m 个仓库,第i 个仓库的存储容量为i a ()1,2,,i m =L 。试确定仓库的位置,使各仓库对各市场的运输量与路程乘积之和为最小。 解:设第i 个仓库的位置为(),i i x y ()1,2,,i m =L ,第i 个仓库到第j 个市场的货物供应量为i j z ()1,2,,,1,2,,i m j n ==L L ,则第i 个仓库到第j 个市场的距离为

第九章非线性规划

1. 非线性规划 我们讨论过线性规划,其目标函数和约束条件都是自变量的线性函数。如果目标函数是非线性函数或至少有一个约束条件是非线性等式(不等式),则这一类数学规划就称为非线性规划。在科学管理和其他领域中,很多实际问题可以归结为线性规划,但还有另一些问题属于非线性规划。由于非线性规划含有深刻的背景和丰富的内容,已发展为运筹学的重要分支,并且在最优设计,管理科学,风险管理,系统控制,求解均衡模型,以及数据拟合等领域得到越来越广泛的应用。 非线性规划的研究始于三十年代末,是由W.卡鲁什首次进行的,40年代后期进入系统研究,1951年H.W.库恩和A.W.塔克提出带约束条件非线性规划最优化的判别条件,从而奠定了非线性规划的理论基础,后来在理论研究和实用算法方面都有很大的发展。 非线性规划求解方法可分为无约束问题和带约束问题来讨论,前者实际上就是多元函数的极值问题,是后一问题的基础。无约束问题的求解方法有最陡下降法、共轭梯度法、变尺度法和鲍威尔直接法等。关于带约束非线性规划的情况比较复杂,因为在迭代过程中除了要使目标函数下降外,还要考虑近似解的可行性。总的原则是设法将约束问题化为无约束问题;把非线性问题化为线性问题从而使复杂问题简单化。求解方法有可行方向法、约束集法、制约函数法、简约梯度法、约束变尺度法、二次规划法等。虽然这些方法都有较好的效果,但是尚未找到可以用于解决所有非线性规划的统一算法。 1.1 非线性规划举例 [库存管理问题] 考虑首都名酒专卖商店关于啤酒库存的年管理策略。假设该商店啤酒的年销售量为A 箱,每箱啤酒的平均库存成本为H 元,每次订货成本都为F 元。如果补货方式是可以在瞬间完成的,那么为了降低年库存管理费用,商店必须决定每年需要定多少次货,以及每次订货量。 我们以Q 表示每次定货数量,那么年定货次数可以为 Q A ,年订货成本为Q A F ?。由于平均库存量为 2Q ,所以,年持有成本为2 Q H ?,年库存成本可以表示为: Q H Q A F Q C ?+? =2 )( 将它表示为数学规划问题: min Q H Q A F Q C ?+? =2 )( ..t s 0≥Q 其中Q 为决策变量,因为目标函数是非线性的,约束条件是非负约束,所以这是带约束条件的非线性规划问题。 [数据拟合问题] 假设一年期国债利率在市场中的波动符合下述模型

无约束非线性规划求解方法及其实现

无约束非线性规划求解方法及其实现 作者:杨玲指导老师:陈素根 摘要: 非线性规划是具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。非线性规划属于最优化方法的一种,是线性规划的延伸。非线性规划研究一个n元实函数在一组灯饰或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。目标函数和约束条件都是线性函数的情形则属于线性规划。非线性规划是20世纪50年代才形成的一门新兴学科。1951年H.W库恩和A.W塔克发表的关于最优性条件的论文是非线性规划正是诞生的一个重要标志。在50年代还得出了可分离规划和二次规划的n种解法,它们大都是以G.B.丹齐克提出的解线性规划的单纯形法为基础的。50年代末到60年代末出现了许多解线性规划问题的有效的算法,70年代又得到进一步的发展。非线性规划在工程,管理,经济,科研,军事等发面都有广泛的应用,为最优设计提供了有力的工具。20世纪80年代以来,随着计算机技术的快速发展,非线性规划在信赖域法、稀疏牛顿法、并行计算、内点法和有限存储法等领域取得了丰硕的成果,无约束非线性规划问题是非线性规划的一个重要内容,很多学者对非线性规划问题进行了深入且系统的研究,研究成果丰硕。

关键词最优化共轭梯度法非线性无约束 1 引言 1.1 无约束非线性规划问题是最基本的非线性规划问题,在1959~1963年幼三位数学家共同研究成功求解无约束问题的DFP变尺度法,该算法的研究成功是无约束优化算法的一个大飞跃,引起了一系列的理论工作,并陆续出现了许多新的算法。20世纪80年代以来,随着计算机技术的快速发展,非线性规划在信赖域法、稀疏牛顿法、并行计算、内点法和有限存储法等领域取得了丰硕的成果。无约束非线性规划问题是非线性规划的一个重要内容,很多学者对非线性规划问题进行了深入且系统的研究,研究成果丰硕。 1.2 本文主要研究无约束非线性规划问题,将文章分成四个部分,首先会具体介绍无约束非线性规划的相关概念,并在此基础上研究非线性规划的相关理论与基本算法问题,接着详细介绍无约束非线性规划的几种主要的求解方法,最后举例说明他在实际生活中的应用,并编程实现它。 2 正文 2.1主要介绍无约束非线性规划的相关概念 一个非线性规划问题的自变量x没有任何约束,或说可行域即是整个n维向量空间:n 错误!未找到引用源。,则称 x R

非线性规划小题

非线性规划 1.已知,x y 满足221 {1 0 x y x y y +≤+≥-≤,则z x y =-的取值范围是 ( ) A. ???? B. []-1,1 C. ?? D. ?? 2.变量,x y 满足条件1011x y y x -+≤??≤??>-? ,则22(2)x y -+的最小值为( ) A. 2 B. C. 5 D. 92 3.点(),a b 是区域40 {0 0x y x y +-≤>>内的任意一点,则使函数()223f x ax bx =-+在区间1,2??+∞???? 上是增函数的概率为 A. 14 B. 12 C. 13 D. 23 4.若实数,x y 满足条件210{22030 x y x y x -+≥+-≥-≤,则432z x y =-+的最大值为( ) A. 14- B. 4- C. 419 - D. 423- 5.设点(),P x y 在不等式组1 {2060 x x y x y ≥-≤+-≤所表示的平面区域内,则2299xy z x y = +的取值范围为( ) A. 183,132?????? B. 453,342?????? C. 4518,3413?????? D. 1845,1334?? ???? 6.若实数,x y 满足1002x y x y -+≤??>??≤?,则221y x +的取值范围是( ) A. 4[,4]3 B. 4[,4)3 C. [2,4] D. (2,4]

7.已知变量,x y 满足330, {1, 40,x y x x y -+≤≥+-≤则22x y xy +的取值范围是( ) A. 102, 3?????? B. 2510,123?????? C. 410,33?????? D. 1302,63?????? 8.已知实数,x y 满足2102,|24|10x y x z x y x y -+≥??≤=+-??+-≥? ,则z 的最大值与最小值之差为( ) A. 5 B. 1 C. 4 D. 73 9.已知()f x 是定义在R 上的增函数,函数(1)y f x =-的图象关于点(1,0)对称,若对任意的,x y R ∈, 等式(3)0f y f -+=恒成立,则y x 的取值范围是( ) A. [22-+ B. [1,2 C. [2 D. [1,3] 10.已知实数,x y 满足230 {0 230x y x y x y --≥+≥-+≥,若()()22 41x y m ++-≥对任意的(),x y 恒成立,则实数m 的 取值范围为__________. 11.在平面区域20, {20, 30 x y y x y -+≥+≥++≤内取点M ,过点M 作曲线22 1x y +=的两条切线,切点分别为A , B ,设AMB θ∠=,则角θ最小时, cos θ的值为__________. 12.设变量,x y 满足约束条件0,{20,22, x y x y x y -≥+≥-≤则目标函数2382x y z x +-=+的取值范围为__________. 参考答案 1.D 2.C 3.C 4.D 5.B 6.B 7.A 8.C 9.C 10.(],29-∞ 11.910 12.14,2??-????

非线性整数规划的遗传算法Matlab程序

非线性整数规划的遗传算法Matlab程序(附图) 通常,非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出一个较为令人满意的解。这时就需要针对问题设计专门的优化算法。下面举一个遗传算法应用于非线性整数规划的编程实例,供大家参考! 模型的形式和适应度函数定义如下: 这是一个具有200个01决策变量的多目标非线性整数规划,编写优化的目标函数如下,其中将多目标转化为单目标采用简单的加权处理。 function Fitness=FITNESS(x,FARM,e,q,w) %% 适应度函数 % 输入参数列表 % x 决策变量构成的4×50的0-1矩阵 % FARM 细胞结构存储的当前种群,它包含了个体x % e 4×50的系数矩阵 % q 4×50的系数矩阵 % w 1×50的系数矩阵 %%

gamma=0.98; N=length(FARM);%种群规模 F1=zeros(1,N); F2=zeros(1,N); for i=1:N xx=FARM{i}; ppp=(1-xx)+(1-q).*xx; F1(i)=sum(w.*prod(ppp)); F2(i)=sum(sum(e.*xx)); end ppp=(1-x)+(1-q).*x; f1=sum(w.*prod(ppp)); f2=sum(sum(e.*x)); Fitness=gamma*sum(min([sign(f1-F1);zeros(1,N)]))+(1-gamma )*sum(min([sign(f2-F2);zeros(1,N)])); 针对问题设计的遗传算法如下,其中对模型约束的处理是重点考虑的地方function [Xp,LC1,LC2,LC3,LC4]=MYGA(M,N,Pm) %% 求解01整数规划的遗传算法 %% 输入参数列表 % M 遗传进化迭代次数 % N 种群规模 % Pm 变异概率 %% 输出参数列表 % Xp 最优个体 % LC1 子目标1的收敛曲线 % LC2 子目标2的收敛曲线 % LC3 平均适应度函数的收敛曲线 % LC4 最优适应度函数的收敛曲线 %% 参考调用格式[Xp,LC1,LC2,LC3,LC4]=MYGA(50,40,0.3)

第四章 非线性规划 山大刁在筠 运筹学讲义

第四章 非线性规划 教学重点:凸规划及其性质,无约束最优化问题的最优性条件及最速下降法,约束最优化问题的最优性条件及简约梯度法。 教学难点:约束最优化问题的最优性条件。 教学课时:24学时 主要教学环节的组织:在详细讲解各种算法的基础上,结合例题,给学生以具体的认识,再通过大量习题加以巩固,也可以应用软件包解决一些问题。 第一节 基本概念 教学重点:非线性规划问题的引入,非线性方法概述。 教学难点:无。 教学课时:2学时 主要教学环节的组织:通过具体问题引入非线性规划模型,在具体讲述非线性规划方法的求解难题。 1、非线性规划问题举例 例1 曲线最优拟合问题 已知某物体的温度? 与时间t 之间有如下形式的经验函数关系: 3 12c t c c t e φ=++ (*) 其中1c ,2c ,3c 是待定参数。现通过测试获得n 组?与t 之间的实验数据),(i i t ?, i=1,2,…,n 。试确定参数1c ,2c ,3c ,使理论曲线(*)尽可能地与n 个测试点 ),(i i t ?拟合。 ∑=++-n 1i 221)]([ min 3i t c i i e t c c ? t ?

例 2 构件容积问题 通过分析我们可以得到如下的规划模型: ??? ????≥≥=++++=0 ,0 2 ..)3/1( max 212 121222211221x x S x x x x a x x t s x x a V ππππ 基本概念 设n T n R x x x ∈=),...,(1,R R q j x h p i x g x f n j i α:,...,1),(;,...,1),();(==, 如下的数学模型称为数学规划(Mathematical Programming, MP): ?? ? ??===≤q j x h p i x g t s x f j i ,...,1,0)( ,...,1,0)( ..) ( min 约束集或可行域 X x ∈? MP 的可行解或可行点 MP 中目标函数和约束函数中至少有一个不是x 的线性函数,称(MP)为非线性规划 令 T p x g x g x g ))(),...,(()(1= T p x h x h x h ))(),...,(()(1=, 其中,q n p n R R h R R g αα:,:,那么(MP )可简记为 ?? ? ??≤≤ 0)( 0 ..)( min x h g(x)t s x f 或者 )(min x f X x ∈ 当p=0,q=0时,称为无约束非线性规划或者无约束最优化问题。 否则,称为约束非线性规划或者约束最优化问题。 定义4.1.1 对于非线性规划(MP ),若X x ∈*,并且有 X ),()(*∈?≤x x f x f 设计一个右图所示的由圆锥和圆柱面 围成的构件,要求构件的表面积为S , 圆锥部分的高h 和圆柱部分的高x 2之 比为a 。确定构件尺寸,使其容积最 大。 x 1 x 2 x 3

蒙特卡罗方法求解有约束的非线性规划问题的matlab程序

蒙特卡罗方法求解有约束的非线性规划问题的matlab程序 首先我们说明一下:观察函数f(x),它恰好可以应用雅克比矩阵来计算得到: clear; syms x1 x2 x3 x4 x5; y=(1+(x1*x2+x3+x4^2)^(1/2)/(x5+x3^2))^(1/2); f=simple(jacobian(y)*[x1;x2;x3;x4;x5]); 然后将得到的f表达式前面加上@(x1,x2,x3,x4,x5): f=@(x1,x2,x3,x4,x5)-1/4*x3*(2*x1*x2*x3+x5+3*x3^2+2*x4^2*x3)/(x5+x3^2)/((x5+x3^2+(x1 *x2+x3+x4^2)^(1/2))*(x5+x3^2))^(1/2)/(x1*x2+x3+x4^2)^(1/2); 作为下面程序中的f即可,已经验证过结果仍然差不多。 下面程序中的f仍为原程序所给的f。 matlab蒙特卡罗方法程序(相关原理参见附件文献): clear; f=@(x1,x2,x3,x4,x5)-(x3*(3*x3^2 + 2*x3*x4^2 + 2*x1*x2*x3 + x5))... /(4*((x5 + (x4^2 + x3 + x1*x2)^(1/2) + x3^2)/(x3^2 + x5))^(1/2)*(x3^2 + x5)^2*(x4^2 + x3 + x1*x2)^(1/2)); MIN=inf; LIMIT=10000; while LIMIT>0 x(3)=4.5*rand+0.5;%将【0,1】区间上的随机数转化到【0.5,5】上的随机数,下面其余数类同 x(4)=2*rand+1; x(5)=3*rand+1; x(1)=4.5*rand+0.5; x(2)=4.5*rand+0.5; while x(1)+x(2)^2>=1&x(1)+x(2)^2<=10 x1=x(1);x2=x(2);x3=x(3);x4=x(4);x5=x(5); temp=f(x1,x2,x3,x4,x5); if temp

MATLAB 非线性规划及非线性约束条件求解

MATLAB 非线性规划及非线性约束条件求解 【题1】求非线性规划问题: 221212121min 262 f x x x x x x =+--- 12121212222.23 ,0 x x x x s t x x x x +≤??-+≤??+≤??≥? clear all clc f=@(x)((1/2)*x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-6*x(2)); A=[1 1;-1 2;2 1]; b=[2;2;3]; Aeq=[];beq=[]; lb=[0;0]; ub=[100;100]; x0=[1 1]'; intlist=[0;0]; [errmsg,Z,X] = BNB20_new(f,x0,intlist,lb,ub,A,b,Aeq,beq) 【题2】求非线性规划问题: 123min f x x x =- 1231 23220.2272x x x s t x x x ---≤??++≤? clear all clc f=@(x)(-x(1)*x(2)*x(3)); A=[-1 -2 -2;1 2 2]; b=[0;72]; Aeq=[];beq=[]; lb=[];ub=[]; x0=[1;1;1]; intlist=[0 0 0]'; [errmsg,Z,X] = BNB20_new(f,x0,intlist,lb,ub,A,b,Aeq,beq)

【题3】求非线性规划问题: () 12212122min 42421x f e x x x x x =++++ 12121230.210 x x x x s t x x ?--+≤???≥-? function [c,ceq]=nolic2(x) c(1)=x(1)*x(2)-x(1)-x(2)+3/2; ceq=[]; end clear all clc f=@(x)exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1); A=[];b=[];Aeq=[];beq=[]; lb=[-10 -10]'; ub=[]; x0=[1 1]'; intlist=[0 0]'; [errmsg,Z,X] = BNB20_new(f,x0,intlist,lb,ub,A,b,Aeq,beq,@nolic2) 【题4】求非线性规划问题: 2212min 8f x x =++ 212221212 0.20,0x x x s t x x x x ?-≥?--+=??≥? function [c,ceq]=nolic3(x) c(1)=-(x(1)^2)*x(2)+x(2); ceq(1)=-x(1)-x(2)^2+2; end clear all clc f=@(x) x(1)^2+x(2)^2+8; A=[];b=[];Aeq=[];beq=[];lb=[0 0]'; ub=[]; x0=[1 1]'; intlist=[0 0]'; [errmsg,Z,X] = BNB20_new(f,x0,intlist,lb,ub,A,b,Aeq,beq,@nolic3)

线性与非线性

线性规划与非线性规划 线性linear,指量与量之间按比例、成直线的关系,在数学上可以理解为一阶导数为常数的函数;非线性non-linear则指不按比例、不成直线的关系,一阶导数不为常数。 如问:两个眼睛的视敏度是一个眼睛的几倍?很容易想到的是两倍,可实际是6-10倍!这就是非线性。激光也是非线性的!天体运动存在混沌;电、光与声波的振荡,会突陷混沌;地磁场在400万年间,方向突变16次,也是由于混沌。甚至人类自己,原来都是非线性的:与传统的想法相反,健康人的脑电图和心脏跳动并不是规则的,而是混沌的,混沌正是生命力的表现,混沌系统对外界的刺激反应,比非混沌系统快。 非线性规划 nonlinear programming 具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。非线性规划研究一个n

元实函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。目标函数和约束条件都是线性函数的情形则属于线性规划。 简史 非线性规划是20世纪50年代才开始形成的一门新兴学科。1951年H.W.库恩和A.W.塔克发表的关于最优性条件(后来称为库恩-塔克条件)的论文是非线性规划正式诞生的一个重要标志。在50年代还得出了可分离规划和二次规划的n种解法,它们大都是以G.B.丹齐克提出的解线性规划的单纯形法为基础的。50年代末到60年代末出现了许多解非线性规划问题的有效的算法,70年代又得到进一步的发展。非线性规划在工程、管理、经济、科研、军事等方面都有广泛的应用,为最优设计提供了有力的工具。实例 下面通过实例归纳出非线性规划数学模型的一般形式,介绍有关非线性规划的基本概念。 例1 (投资决策问题)某企业有n个项目可供选择投资,并且至少要对其中一个项目投资。已知

非线性规划模型

非线性规划模型 在上一次作业中,我们对线性规划模型进行了相应的介绍及优缺点,然而在实际问题中并不是所有的问题都可以利用线性规划模型求解。实际问题中许多都可以归结为一个非线性规划问题,即如果目标函数和约束条件中包含有非线性函数,则这样的问题称为非线性规划问题。一般来说,解决非线性的问题要比线性的问题难得多,不像线性规划有适用于一般情况的单纯形法。对于线性规划来说,其可行域一般是一个凸集,只要存在最优解,则其最优解一定在可行域的边界上达到;对于非线性规划,即使是存在最优解,却是可以在可行域的任一点达到,因此,对于非线性规划模型,迄今为止还没有一种适用于一般情况的求解方法,我们在本文中也只是介绍了几个比较常用的几个求解方法。 一、非线性规划的分类 1无约束的非线性规划 当问题没有约束条件时,即求多元函数的极值问题,一般模型为 此类问题即为无约束的非线性规划问题 1.1无约束非线性规划的解法 1.1.1一般迭代法 即为可行方向法。对于问题()min 0x R f X X ∈??? ≥?? 给出)(x f 的极小点的初始值)0(X ,按某种规律计算出一系列的),2,1()(Λ=k X k ,希望点阵}{)(k X 的极限*X 就是)(x f 的一个极小点。 由一个解向量) (k X 求出另一个新的解向量)1(+k X 向量是由方向和长度确定的,所以),2,1()1(Λ=+=+k P X X k k k k λ 即求解k λ和k P ,选择k λ和k P 的原则是使目标函数在点阵上的值逐步减小,即 检验}{)(k X 是否收敛与最优解,及对于给定的精度0>ε,是否ε≤?+||)(||1k X f 。

第三章 非线性规划

第三章 非线性规划 §1 非线性规划 1.1 非线性规划的实例与定义 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不象线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。 下面通过实例归纳出非线性规划数学模型的一般形式,介绍有关非线性规划的基本概念。 例1 (投资决策问题)某企业有n 个项目可供选择投资,并且至少要对其中一个项目投资。已知该企业拥有总资金A 元,投资于第),,1(n i i =个项目需花资金i a 元,并预计可收益i b 元。试选择最佳投资方案。 解 设投资决策变量为 ???=个项目 决定不投资第,个项目 决定投资第i i x i 0,1,n i ,,1 =, 则投资总额为∑=n i i i x a 1 ,投资总收益为∑=n i i i x b 1 。因为该公司至少要对一个项目投资,并 且总的投资金额不能超过总资金A ,故有限制条件 ∑=≤< n i i i A x a 1 另外,由于),,1(n i x i =只取值0或1,所以还有 .,,1,0)1(n i x x i i ==- 最佳投资方案应是投资额最小而总收益最大的方案,所以这个最佳投资决策问题归结为总资金以及决策变量(取0或1)的限制条件下,极大化总收益和总投资之比。因此,其数学模型为: ∑∑=== n i i i n i i i x a x b Q 11max s.t. ∑=≤< n i i i A x a 1 .,,1,0)1(n i x x i i ==- 上面例题是在一组等式或不等式的约束下,求一个函数的最大值(或最小值)问题,其中目标函数或约束条件中至少有一个非线性函数,这类问题称之为非线性规划问题,简记为(NP )。可概括为一般形式 )(min x f q j x h j ,,1, 0)(s.t. =≤ (NP) p i x g i ,,1, 0)( ==

相关文档
最新文档