当前位置:文档之家› 无约束优化方法程序

无约束优化方法程序

无约束优化方法程序
无约束优化方法程序

无约束优化方法---鲍威尔方法

本实验用鲍威尔方法求函数f(x)=(x1-5)2+(x2-6)2 的最优解。

一、简述鲍威尔法的基本原理

从任选的初始点x⑴o出发,先按坐标轮换法的搜索方向依次沿e1.e2.e3进行一维搜索,得各自方向的一维极小点x⑴ x⑵ x⑶.连接初始点xo⑴和最末一个一维极小点x3⑴,产生一个新的矢量 S1=x3⑴-xo⑴

再沿此方向作一维搜索,得该方向上的一维极小点x⑴.

从xo⑴出发知道获得x⑴点的搜索过程称为一环。S1是该环中产生的一个新方向,称为新生方向。

接着,以第一环迭代的终点x⑴作为第二环迭代的起点xo⑵,即 Xo⑵←x⑴

弃去第一环方向组中的第一个方向e1,将第一环新生方向S1补在最后,构成第二环的基本搜索方向组e2,e3,S1,依次沿这些方向求得一维极小点x1⑵,x2⑵,x3⑵.连接

Xo⑵与x3⑵,又得第二环的新生方向

S2=x3⑵-xo⑵

沿S2作一维搜索所得的极小点x⑵即为第二环的最终迭代点

二、鲍威尔法的程序

#include "stdafx.h" /* 文件包含*/

#include

#include

#include

#define MAXN 10

#define sqr(x) ((x)*(x))

double xkk[MAXN],xk[MAXN],sk[MAXN];

int N,type,nt,et; //N--变量个数,type=0,1,2,3 nt,et--不等式、等式约束个数

double rk;

double funt(double *x,double *g,double *h)

{

g[0]=x[0]; g[1]=x[1]-1; g[2]=11-x[0]-x[1];

return sqr(x[0]-8)+sqr(x[1]-8);

}

double F(double *x)

{

double f1,f2,ff,fx,g[MAXN],h[MAXN];

int i;

fx=funt(x,g,h);

f1=f2=0.0;

if(type==0 || type==2)for(i=0; i1.0e-15)?1.0/g[i]:1.0e15;

else for(i=0; i0)?0:g[i]*g[i];

for(i=0; i

if(type==0 || type==2)ff=fx+rk*f1+f2/sqrt(rk);

else ff=fx+rk*(f1+f2);

return ff;

}

double f(double x)

{

int i;

for (i=0; i

return F(xkk);

}

void find_ab(double x0,double h0,double *a,double *b) {

double h,x1,y1,x2,y2,x3,y3;

h=h0;

x1=x0; y1=f(x1); x2=x1+h; y2=f(x2);

if (y2>=y1) {

h=-h0; x3=x1; y3=y1;

x1=x2; y1=y2; x2=x3; y2=y3;

}

for (;;) {

h*=2.0; x3=x2+h; y3=f(x3);

if (y2

x1=x2; y1=y2; x2=x3; y2=y3;

}

if (h>0) {*a=x1; *b=x3;}

else {*a=x3; *b=x1;}

}

void search_gold(double a,double b,double e,double *x,double *y) {

double x1,x2,y1,y2;

x1=a+0.382*(b-a); y1=f(x1);

x2=a+0.618*(b-a); y2=f(x2);

do {

if (y1

b=x2; x2=x1; y2=y1;

x1=a+0.382*(b-a); y1=f(x1);

} else {

a=x1; x1=x2; y1=y2;

x2=a+0.618*(b-a); y2=f(x2);

}

} while ((b-a)>e);

*x=0.5*(a+b); *y=f(*x);

}

double nc_powell(double *x0,double e1,double e2)

{

int i,j,k=1,m;

double a,b,ax,ay,d;

double

ss[MAXN][MAXN],s1[MAXN],ff[MAXN],x[MAXN],xn[MAXN],xn 1[MAXN],f0,f1,f2,f3;

for (i=0; i

for (;;) {

for (j=0; j

for (i=0; i

for (j=0; j

find_ab(0,1,&a,&b);

search_gold(a,b,e2,&ax,&ay);

for (j=0; j

ff[i]=F(xk);

}

for (j=0; j

for (j=0; j

find_ab(0,1,&a,&b);

search_gold(a,b,e2,&ax,&ay);

for (j=0; j

d=0;

for (j=0; j

d=sqrt(d);

printf("k=%d;",k);

for (j=0; j

printf("d=%lf\n",d);

if (d<=e1) {

for (j=0; j

break;

}

f0=F(x0);

d=f0-ff[0]; m=0;

for (j=1; j

f1=F(x0); f2=F(xn); f3=F(xn1);

if (0.5*(f1-2*f2+f3)>=d) {

if (f2

else for (j=0; j

} else {

for (i=m+1; i

for (j=0; j

for (j=0; j

}

k++;

}

for (j=0; j

return F(xkk);

}

main()

{

double fk,fkk,ck,d1,d2,e1,e2;

double g[MAXN],h[MAXN],x1[MAXN],x0[MAXN];

int i;

N=2;

nt=3;

et=0;

type=1;

e1=0.0001;

e2=0.0001;

rk=0.001; ck=2;

x0[0]=8; x0[1]=8;

printf("=========\n");

fk = nc_powell(x0,0.01,0.001);

for(i=0; i

printf("rk=%lf\n",rk);

for (i=0; i

printf("%lf\n",fk);

for(;;) {

rk*=ck;

fkk = nc_powell(x0,0.01,0.005);

printf("rk=%lf\n",rk);

for (i=0; i

d1=0; for(i=0; i

d2=fabs((fkk-fk)/fk);

printf("d1=%lf d2=%lf\n",d1,d2);

if(d1<=e1 || d2<=e2) break;

for(i=0; i

fk=fkk;

}

fk=funt(x0,g,h);

printf("**********************\n");

for (i=0; i

printf("F* = %lf\n",fk);

for (i=0; i

}

约束优化设计

行域 φ 内,选择一个初始点 X 然后确定一个可行 得一个目标函数有所改善的可行的新点 X 即完成了 第四章 约束优化设计 ● 概述 ● 约束坐标轮换法 ● 随机方向法 ● 罚函数法 概述 结构优化设计的问题,大多属于约束优化设计问题,其数学模型为: s .t . min f (x ) g u (x ) ≤ 0 h v (x ) = 0 x ∈ R n u = 1, 2,..., m v = 1, 2,..., p < n 根据求解方式的不同,可分为直接解法和间接解法两类。 直接解法是在仅满足不等式约束的可行设计区域内直接求出问题的约束最优解。属于 这类方法的有:随机实验法、随机方向搜索法、复合形法、可行方向法等。其基本思路: 在由 m 个不等式约束条件 gu(x )≤0 所确定的可 0 搜索方向 S ,且以适当的步长沿 S 方向进行搜索,取 1 一次迭代。以新点为起始点重复上述搜索过程,每次 均按如下的基本迭代格式进行计算: X k+1=X k +α k S k (k=0,1,2,..) 逐步趋向最优解, 直到满足终止准则才停止迭代。 直接解法的原理简单,方法实用,其特点是: 1) 由于整个过程在可行域内进行,因此,迭代计算 不论何时终止,都可以获得比初始点好的设计点。 2) 若目标函数为凸函数,可行域为凸集,则可获得全域最优解,否则,可能存在多个局 部最优解,当选择的初始点不同,而搜索到不同的局部最优解。 3) 要求可行域有界的非空集

φ(X,μ1,μ2)=F(X)+∑μ 1 G??g j X)??+∑μ2H??h k(X)?? a)可行域是凸集;b)可行域是非凸 集 间接解法 间接解法是将约束优化问题转化为一系列无约束优化问题来解的一种方法。由于间接解法可以选用已研究比较成熟的无约束优化方法,并且容易处理同时具有不等式约束和等式约束的问题。因而在机械优化设计得到广泛的应用。 间接解法中具有代表性的是惩罚函数法。将约束函数进行特殊的加权处理后,和目标函数 结合起来,构成一个新的目标函数,即将原约束优化问题转化为一个或一系列的无约束优 化问题。 m l j=1k=1 新目标函数 然后对新目标函数进行无约束极小化计算。 加权因子 间接法是结构优化设计中广泛使用的有效方法,其特点: 1)由于无约束优化方法的研究日趋成熟,为间接法提供可靠基础。这类算法的计算效率和数值计算的稳定性大有提高; 2)可以有效处理具有等式约束的约束优化问题; 3)目前存在的主要问题,选取加权因子较为困难,选取不当,不仅影响收敛速度和计算精度,甚至导致计算失败。

常用最优化方法评价准则

常用无约束最优化方法评价准则 方法算法特点适用条件 最速下降法属于间接法之一。方法简便,但要计算一阶偏导 数,可靠性较好,能稳定地使函数下降,但收敛 速度较慢,尤其在极点值附近更为严重 适用于精度要求不高或用于对 复杂函数寻找一个好的初始 点。 Newton法属于间接法之一。需计算一、二阶偏导数和Hesse 矩阵的逆矩阵,准备工作量大,算法复杂,占用 内存量大。此法具有二次收敛性,在一定条件下 其收敛速度快,要求迭代点的Hesse矩阵必须非 奇异且定型(正定或负定)。对初始点要求较高, 可靠性较差。 目标函数存在一阶\二阶偏导 数,且维数不宜太高。 共轭方向法属于间接法之一。具有可靠性好,占用内存少, 收敛速度快的特点。 适用于维数较高的目标函数。 变尺度法属于间接法之一。具有二次收敛性,收敛速度快。 可靠性较好,只需计算一阶偏导数。对初始点要 求不高,优于Newton法。因此,目前认为此法是 最有效的方法之一,但需内存量大。对维数太高 的问题不太适宜。 适用维数较高的目标函数 (n=10~50)且具有一阶偏导 数。 坐标轮换法最简单的直接法之一。只需计算函数值,无需求 导,使用时准备工作量少。占用内存少。但计算 效率低,可靠性差。 用于维数较低(n<5)或目标函 数不易求导的情况。 单纯形法此法简单,直观,属直接法之一。上机计算过程 中占用内存少,规则单纯形法终止条件简单,而 不规则单纯形法终止条件复杂,应注意选择,才 可能保证计算的可靠性。 可用于维数较高的目标函数。

常用约束最优化方法评价标准 方法算法特点适用条件 外点法将约束优化问题转化为一系列无约束优化问题。 初始点可以任选,罚因子应取为单调递增数列。 初始罚因子及递增系数应取适当较大值。 可用于求解含有等式约束或不等 式约束的中等维数的约束最优化 问题。 内点法将约束优化问题转化为一系列无约束优化问题。 初始点应取为严格满足各个不等式约束的内点, 障碍因子应取为单调递减的正数序列。初始障碍 因子选择恰当与否对收敛速度和求解成败有较大 影响。 可用于求解只含有不等式约束的 中等维数约束优化问题。 混合罚函数法将约束优化问题转化为一系列无约束优化问题, 用内点形式的混合罚函数时,初始点及障碍因子 的取法同上;用外点形式的混合罚函数时,初始 点可任选,罚因子取法同外点法相同。 可用于求解既有等式约束又有不 等式约束的中等维数的约束化问 题。 约束坐标轮换法由可行点出发,分别沿各坐标轴方向以加步探索 法进行搜索,使每个搜索点在可行域内,且使目 标函数值下降。 可用于求解只含有不等式约束, 且维数较低(n<5),目标函数的 二次性较强的优化问题。 复合形法在可行域内构造一个具有n个顶点的复合形,然 后对复合形进行映射变化,逐次去掉目标函数值 最大的顶点。 可用于求解含不等式约束和边界 约束的低维优化问题。

无约束优化方法程序

无约束优化方法---鲍威尔方法 本实验用鲍威尔方法求函数f(x)=(x1-5)2+(x2-6)2 的最优解。 一、简述鲍威尔法的基本原理 从任选的初始点x⑴o出发,先按坐标轮换法的搜索方向依次沿e1.e2.e3进行一维搜索,得各自方向的一维极小点x⑴ x⑵ x⑶.连接初始点xo⑴和最末一个一维极小点x3⑴,产生一个新的矢量 S1=x3⑴-xo⑴ 再沿此方向作一维搜索,得该方向上的一维极小点x⑴. 从xo⑴出发知道获得x⑴点的搜索过程称为一环。S1是该环中产生的一个新方向,称为新生方向。 接着,以第一环迭代的终点x⑴作为第二环迭代的起点xo⑵,即 Xo⑵←x⑴ 弃去第一环方向组中的第一个方向e1,将第一环新生方向S1补在最后,构成第二环的基本搜索方向组e2,e3,S1,依次沿这些方向求得一维极小点x1⑵,x2⑵,x3⑵.连接 Xo⑵与x3⑵,又得第二环的新生方向 S2=x3⑵-xo⑵ 沿S2作一维搜索所得的极小点x⑵即为第二环的最终迭代点 二、鲍威尔法的程序 #include "stdafx.h" /* 文件包含*/ #include

#include #include #define MAXN 10 #define sqr(x) ((x)*(x)) double xkk[MAXN],xk[MAXN],sk[MAXN]; int N,type,nt,et; //N--变量个数,type=0,1,2,3 nt,et--不等式、等式约束个数 double rk; double funt(double *x,double *g,double *h) { g[0]=x[0]; g[1]=x[1]-1; g[2]=11-x[0]-x[1]; return sqr(x[0]-8)+sqr(x[1]-8); } double F(double *x) { double f1,f2,ff,fx,g[MAXN],h[MAXN]; int i; fx=funt(x,g,h); f1=f2=0.0; if(type==0 || type==2)for(i=0; i1.0e-15)?1.0/g[i]:1.0e15;

常用无约束最优化方法(一)

项目三 常用无约束最优化方法(一) [实验目的] 编写最速下降法、Newton 法(修正Newton 法)的程序。 [实验学时] 2学时 [实验准备] 1.掌握最速下降法的思想及迭代步骤。 2.掌握Newton 法的思想及迭代步骤; 3.掌握修正Newton 法的思想及迭代步骤。 [实验内容及步骤] 编程解决以下问题:【选作一个】 1.用最速下降法求 22120min ()25[22]0.01T f X x x X ε=+==,,,. 2.用Newton 法求 22121212min ()60104f X x x x x x x =--++-, 初始点 0[00]0.01T X ε==,,. 最速下降法 Matlab 程序: clc;clear; syms x1 x2; X=[x1,x2]; fx=X(1)^2+X(2)^2-4*X(1)-6*X(2)+17; fxd1=[diff(fx,x1) diff(fx,x2)]; x=[2 3]; g=0; e=0.0005; a=1; fan=subs(fxd1,[x1 x2],[x(1) x(2)]); g=0; for i=1:length(fan) g=g+fan(i)^2; end g=sqrt(g); step=0; while g>e step=step+1; dk=-fan; %点x(k)处的搜索步长

ak=((2*x(1)-4)*dk(1)+(2*x(2)-6)*dk(2))/(dk(1)*dk(2)-2*dk(1)^2-2*dk(2)^2); xu=x+ak*dk; x=xu; %输出结果 optim_fx=subs(fx,[x1 x2],[x(1) x(2)]); fprintf(' x=[ %d %d ] optim_fx=%d\n',x(1),x(2),optim_fx); %计算目标函数点x(k+1)处一阶导数值 fan=subs(fxd1,[x1 x2],[x(1) x(2)]); g=0; for i=1:length(fan) g=g+fan(i)^2; end g=sqrt(g); end %输出结果 optim_fx=subs(fx,[x1 x2],[x(1) x(2)]); fprintf('\n最速下降法\n结果:\n x=[ %d %d ] optim_fx=%d\n',x(1),x(2),optim_fx); c++程序 #include #include #include #include float goldena(float x[2],float p[2]) {float a; a=-1*(x[0]*p[0]+4*x[1]*p[1])/(p[0]*p[0]+4*p[1]*p[1]); return a; } void main() {float a=0,x[2],p[2],g[2]={0,0},e=0.001,t; int i=0; x[0]=1.0; x[1]=1.0;

约束优化设计

第四章 约束优化设计 ● 概述 ● 约束坐标轮换法 ● 随机方向法 ● 罚函数法 概述 结构优化设计的问题,大多属于约束优化设计问题,其数学模型为: 根据求解方式的不同,可分为直接解法和间接解法两类。 直接解法是在仅满足不等式约束的可行设计区域内直接求出问题的约束最优解。属于这类方法的有:随机实验法、随机方向搜索法、复合形法、可行方向法等。其基本思路: 在由m 个不等式约束条件g u (x )≤0所确定的可行域φ内,选择一个初始点0 X 然后确定一个可行搜索方向S ,且以适当的步长沿S 方向进行搜索,取得一个目标函数有所改善的可行的新点1 X 即完成了一次迭代。以新点为起始点重复上述搜索过程,每次均按如下的基本迭代格式进行计算: k+1k k k =+S (k=0,1,2,..)X X α逐步趋向最优解, 直到满足终止准则才停止迭代。 直接解法的原理简单,方法实用,其特点是: 1) 由于整个过程在可行域内进行,因此,迭代计算不论何时终止,都可以获得比初始点好 的设计点。 2) 若目标函数为凸函数,可行域为凸集,则可获得全域最优解,否则,可能存在多个局部 最优解,当选择的初始点不同,而搜索到不同的局部最优解。 3) 要求可行域有界的非空集 1,2,...,1,2,...,u m v p n ==

间接解法 间接解法是将约束优化问题转化为一系列无约束优化问题来解的一种方法。由于间接解法可以选用已研究比较成熟的无约束优化方法,并且容易处理同时具有不等式约束和等式约束的问题。因而在机械优化设计得到广泛的应用。 间接解法中具有代表性的是惩罚函数法。将约束函数进行特殊的加权处理后,和目标函数结合起来,构成一个新的目标函数,即将原约束优化问题转化为一个或一系列的无约束优化问题。 然后对新目标函数进行无约束极小化计算。 间接法是结构优化设计中广泛使用的有效方法,其特点: 1) 由于无约束优化方法的研究日趋成熟,为间接法提供可靠基础。这类算法的计算效率和 数值计算的稳定性大有提高; 2) 可以有效处理具有等式约束的约束优化问题; 3) 目前存在的主要问题,选取加权因子较为困难,选取不当,不仅影响收敛速度和计算精 度,甚至导致计算失败。 a) 可行域是凸集;b)可行域是非凸集 () ()()()121211 ,,m l j k j k X F X G g X H h X φμμμμ==??=++? ?????∑∑ 新目标函数 加权因子

单纯形法解决无约束优化问题

分数: ___________任课教师签字:___________ 课程作业 学年学期:2017——2018学年第二学期 课程名称:优化理论 作业名称:作业三 学生姓名: 学号: 提交时间:

一、问题重述 形如的min (x),x R n f ∈问题称为无约束优化问题,常用下降算法来解决这类问题。下降算法的关键在于步长和搜索方向的选取。步长的求取可以借助前面作业中提到的一维搜索等方法求取,而搜索方向算法可以分为两大类,解析法和直接法。 解析法借助了目标函数的导数进行搜索,这类算法搜索速度快、效率高,但是对目标函数的要求更为严格。常用的方法有最速下降法、Newton 法、共轭梯度法、拟Newton 法等。 直接法不使用导数,也不需要得到目标函数的明确解析式,只需要能够得到某些函数上的点即可。因此直接法的适用范围更广,但相应的收敛速度会较慢,计算量也会随着问题维数的增加而迅速增大。常用的方法有单纯形法、Powell 方向加速法以及Powell 改进算法。 本作业以直接法的Powell 法为例,解决具体的无约束优化问题,并对将Powell 方向加速法和Powell 改进算法解决结果进行对比。 二、算法原理 对于n 维正定二次函数(x)0.5T T f x Gx b x c =++,设011,,...(k n)k p p p -<关于G 共轭,0x 与1x 为任意不同点。分别从0x 与1x 出发,依次沿011,,...k p p p -作一维搜索。如果最后找到两个互不相同的极小点x a 与x b ,则x b a x -与011,,...k p p p -关于G 共轭。 Powell 方向加速法正是基于这一原理,每次迭代过程作n+1次一维搜索。第一次沿给定的n 个线性无关的方向011,,...n p p p -依次作一维搜索,之后沿由这一阶段的起点到第n 次搜索所得到的点的方向P 再做一次一维搜索,并把这次所得点作为下一阶段的起点,下一阶段的n 个搜索方向为011,,...,n p p p p -。以此直到找到最优解。 此算法是在迭代中逐次生成共轭方向,而共轭方向又是较好的搜索方向,所以称之为方向加速法。但是,此算法产生的n 个向量可能线性或近似线性相关,这时张不成n 维空间,可能得不到真正的极小点。因此,Powell 原始算法存在一定的缺陷。 Powell 改进算法虽然不再具有二次终止性,但克服了搜索方向的线性相关的不利情形,是解决无约束优化问题较有效的直接法之一。 本次作业一维搜索的过程是利用函数求导,求得最小值。经过试验发现,α是允许为负数的。否则最终寻优得到的极值点与实际结果存在很大的偏差,

第三章 无约束最优化方法

第三章无约束最优化方法 本章内容及教学安排 第一节概述 第二节迭代终止原则 第三节常用的一维搜索方法 第四节梯度法 第五节牛顿法 第六节共轭方向法 第七节变尺度法 第八节坐标轮换法 第九节鲍威尔方法 第一节概述 优化问题可分为 无约束优化问题 有约束优化问题 无约束最优化问题求解基于古典极值理论的一种数值迭代方法,主要用来求解非线性规划问题 迭代法的基本思想:

所以迭代法要解决三个问题 1、如何选择搜索方向 2、如何确定步长

3、如何确定最优点(终止迭代) 第二节 迭代终止准则 1)1K K X X ε+-≤ 111/2 21K K K K n i i i X X X X ε++=??-=-≤???? ∑() 2) 11()()()() () K K K K K f X f X f X f X or f X ε ε ++-≤-≤ 3)(1)()K f X ε+?≤ 第三节 常用的一维搜索方法 本节主要解决的是如何确定最优步长的问题。 从初始点(0)X 出发,以一定的步长沿某一个方向,可以找到一个新的迭代点,其公式如下: (1)(0)00(2)(1)11(1)() K K k k X X S X X S X X S ααα+=+=+= + 现在假设K S 已经确定,需要确定的是步长k α,就把求多维目标函数的极小值这个多维算过程中,当起步点和方向问题,变成求一个变量即步长的最优值的一维问题了。即 (1)()min ()min ()min ()K K K k k f X f X S f αα+=+= 由此可见,最佳步长*K α由一维搜索方法来确定 求*k α,使得()()()()()()min K K K K f f X S αα=+→ 一、一维搜索区间的确定 区间[,]a b 应满足 ()(*)()f a f f b α><

无约束最优化直接方法和间接方

无约束最优化直接方法和间接方法的异同

无约束最优化直接方法和间接方法的异同一、什么是无约束最优化 最优化方法(也称做运筹学方法)是近几十年形成的,它主要运用数学方法研究各种系统的优化途径及方案,为决策者提供科学决策的依据。最优化方法的主要研究对象是各种有组织系统的管理问题及其生产经营活动。其的目的在于针对所研究的系统,求得一个合理运用人力、物力和财力的最佳方案,发挥和提高系统的效能及效益,最终达到系统的最优目标。实践表明,随着科学技术的日益进步和生产经营的日益发展,最优化方法已成为现代管理科学的重要理论基础和不可缺少的方法,被人们广泛地应用到公共管理、经济管理、工程建设、国防等各个领域,发挥着越来越重要的作用。 最优化问题分为无约束最优化和约束最优化问题,约束最优化问题是具有辅助函数和形态约束条件的优化问题,而无约束优化问题则没有任何限制条件。无约束最优化问题实际上是一个多元函数无条件极值问题。 虽然在工程实践中,大多数问题都是具有约束的优化问题,但是优化问题的处理上可以将有约束的优化问题转化为无约束最优化问题,然后按无约束方法进行处理。或者是将约束优化问题部分转化为无约束优化问题,在远离极值点和约束边界处按无优化约束来处理,在接近极值点或者约束边界时按照约束最优化问题处理。所以无约束优化问题的解法不仅是优化设计方法的基本组成部分,也是优化方法的基础。 无约束最优化方法大致分为两类:一类是使用导数的间接方法,即在计算过程中要用到目标函数的导数;另一类是直接方法,即只要用到目标函数值,不需要计算导数。这里我们比较这两类方法的异同。 二、无约束最优化方法 1. 使用导数的间接方法 1.1 最速下降法 函数的负梯度方向是函数值在该点下降最快的方向。将n维问题转化为一系列沿负梯度方向用一维搜索方法寻优的问题,利用负梯度作为搜索方向,故称

无约束最优化直接方法和间接方法的异同

无约束最优化直接方法和间接方法的异同一、什么是无约束最优化 最优化方法(也称做运筹学方法)是近几十年形成的,它主要运用数学方法研究各种系统的优化途径及方案,为决策者提供科学决策的依据。最优化方法的主要研究对象是各种有组织系统的管理问题及其生产经营活动。其的目的在于针对所研究的系统,求得一个合理运用人力、物力和财力的最佳方案,发挥和提高系统的效能及效益,最终达到系统的最优目标。实践表明,随着科学技术的日益进步和生产经营的日益发展,最优化方法已成为现代管理科学的重要理论基础和不可缺少的方法,被人们广泛地应用到公共管理、经济管理、工程建设、国防等各个领域,发挥着越来越重要的作用。 最优化问题分为无约束最优化和约束最优化问题,约束最优化问题是具有辅助函数和形态约束条件的优化问题,而无约束优化问题则没有任何限制条件。无约束最优化问题实际上是一个多元函数无条件极值问题。 虽然在工程实践中,大多数问题都是具有约束的优化问题,但是优化问题的处理上可以将有约束的优化问题转化为无约束最优化问题,然后按无约束方法进行处理。或者是将约束优化问题部分转化为无约束优化问题,在远离极值点和约束边界处按无优化约束来处理,在接近极值点或者约束边界时按照约束最优化问题处理。所以无约束优化问题的解法不仅是优化设计方法的基本组成部分,也是优化方法的基础。 无约束最优化方法大致分为两类:一类是使用导数的间接方法,即在计算过程中要用到目标函数的导数;另一类是直接方法,即只要用到目标函数值,不需要计算导数。这里我们比较这两类方法的异同。 二、无约束最优化方法 1. 使用导数的间接方法 1.1 最速下降法 函数的负梯度方向是函数值在该点下降最快的方向。将n维问题转化为一系列沿负梯度方向用一维搜索方法寻优的问题,利用负梯度作为搜索方向,故称最

无约束优化方法(最速下降法_牛顿法)

第四章 无约束优化方法 ——最速下降法,牛顿型方法 概述 在求解目标函数的极小值的过程中,若对设计变量的取值范围不加限制,则称这 种最优化问题为无约束优化问题。尽管对于机械的优化设计问题,多数是有约束的, 无约束最优化方法仍然是最优化设计的基本组成部分。因为约束最优化问题可以通过 对约束条件的处理,转化为无约束最优化问题来求解。 为什么要研究无约束优化问题? (1)有些实际问题,其数学模型本身就是一个无约束优化问题。 (2)通过熟悉它的解法可以为研究约束优化问题打下良好的基础。 (3)约束优化问题的求解可以通过一系列无约束优化方法来达到。 所以无约束优化问题的解法是优化设计方法的基本组成部分,也是优化方法的基础。 根据构成搜索方向所使用的信息性质的不同,无约束优化方法可以分为两类。 一:间接法——要使用导数的无约束优化方法,如梯度法、(阻尼)牛顿法、变尺度 法、共轭梯度法等。 二:直接法——只利用目标函数值的无约束优化问题,如坐标轮换法、鲍威尔法单纯 形法等。 无约束优化问题的一般形式可描述为: 求n 维设计变量 []12T n n X x x x R =∈L 使目标函数 ()min f X ? 目前已研究出很多种无约束优化方法,它们的主要不同点在于构造搜索方向上的差别。 无约束优化问题的求解: 1、解析法 可以利用无约束优化问题的极值条件求得。即将求目标函数的极值问题变成求方 程 0)(min *=X f

的解。也就是求X*使其满足 解上述方程组,求得驻点后,再根据极值点所需满足的充分条件来判定是否为极小值 点。但上式是一个含有n个未知量,n个方程的方程组,在实际问题中一般是非线性 的,很难用解析法求解,要用数值计算的方法。由第二章的讲述我们知道,优化问题 的一般解法是数值迭代的方法。因此,与其用数值方法求解非线性方程组,还不如用 数值迭代的方法直接求解无约束极值问题。 2、数值方法 数值迭代法的基本思想是从一个初始点) 0(X 出发,按照一个可行的搜索方向)0(d ρ搜索,确定最佳的步长0α使函数值沿)0(d ρ方向下降最大,得到)1(X 点。依此一步一步地重复数值计算,最终达到最优点。优化计算所采用的基本迭代公式为 ),2,1,0()()()1(Λρ=+=+k d X X K K K K α (4.2) 在上式中, ()K d r 是第是 k+1 次搜索或迭代方向,称为搜索方向(迭代方向)。 由上面的迭代公式可以看出,采用数值法进行迭代求优时,需要确定初始点)(k X 、搜索方向)(k d ρ和迭代步长K α,称为优化方法迭代算法的三要素。第三章我们已经讨论了如何在搜索方向)(k d ρ上确定最优步长K α的方法,本章我们将讨论如何确定搜索方向)(k d ρ。 最常用的数值方法是搜索方法,其基本思想如下图所示: 0)(0)(0)(*2*1*=??=??=??n x X f x X f x X f M

相关主题
文本预览
相关文档 最新文档