- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随机方向法的基本思路
第二节
3.2
约束随机方向法
i , i 1,2,...,n(0 i 1)
随机方向的构成
1.用RND(X)产生n个随机数
2. 将(0,1)中的随机数 i变换到(-1,1)中去(归一化);
yi 2i 1
i 1,2,...,n
例: 对于三维问题 1 0.2,2 0.6,3 0.8 变换得: y1 0.6, y2 0.2, y3 0.6
第四节
4.1 基本思路
复合形法
在可行域内选取若干初始点并以之为顶点构成 一个多面体(复合形),然后比较各顶点的函数值,去 掉最坏点,代之以好的新点,并构成新的复合形,以逼 近最优点.
X1
X2
X3
XC
X4
第四节
复合形法
4.2 初始复合形生成的方法:
(1)由设计者决定k个可行点,构成初始复合形。设计变量 少时适用。 (2)由设计者选定一个可行点,其余的k-1个可形点用随机法 产生。
于是
3. 构成随机方向
y1 y 1 2 S n ... 2 yi i 1 yn
0.6 0.6882 1 0.2 0.2294 S (0.6) 2 0.2 2 0.6 2 0.6 0.6882
j 1 k 1
m
l
新目标函数
加权因子
然后对新目标函数进行无约束极小化计算。
间接解法的基本思路
第二节
一.基本思路
约束坐标轮换法
1.依次沿各坐标轴方向---e1,e2,…,en方向搜索; 2.将迭代点限制在可行域内. •①可取定步长、加速步长和收缩步长,但不能取 最优步长; ②对每一迭代点均需进行可行性和下降性检查.
第五章 约束优化方法
直接解法是在满足不等式约束的可行设计区域内直接求 出问题的约束最优解。
属于直接解法的有:随机实验法、随机方向搜索法、 复合形法、可行方向法等。 间接解法是将约束优化问题转化为一系列无约束优化问题来 解的一种方法。 由于间接解法可以选用已研究比较成熟的无约束优化方法, 并且容易处理同时具有不等式约束和等式约束的问题。因而 在机械优化设计得到广泛的应用。
第二节
3.5.迭代过程
约束随机方向法
①在初始点处产生一随机方 向,若该方向适用、可行, 则以定步长前进; (1) (0) X X S
②若该方向不适用、可行, 则产生另一方向;
X (0)
S
(1)
③若在某处产生的方向足够 多(50-100),仍无一适用、 可行,则采用收缩步长;
④若步长小于预先给定的误 差限则终止迭代。
第四节
基本思路:
复合形法
复合形法是求解约束优化问题的一种重要的直接解法。
1、在可行域内构造一个具有k个顶点的初始复合形; 2、对该复合形各顶点的目标函数值进行比较,找到目标 函数最大的顶点(最坏点); 3、然后按一定的法则求出目标函数值有所下降的可行的 新点,并用此点代替最坏点,构成新的复合形,复合形的形状 每改变一次,就向最优点移动一步,直至逼近最优点。 由于复合形的形状不必保持规则的图形,对目标函数和约 束函数无特殊要求,因此这种方法适应性强,在机械优化设 计中应用广泛。
xi a ri (b a )
1 L xc x j L j 1
xL1 xc 0.5 xL1 xc *复合形的移动和收缩
(3)由计算机自动生成初始复合形的所有顶点。
*初始复合形的构成
第四节
4.2.1 初始复合形的构成 (1)复合形顶点数K的选择 建议:
复合形法
4.2 初始复合形生成的方法:
n 1 K 2n
n小取大值, n大取小值
(2)初始复合形顶点的确定 ★用试凑方法产生---适于低维情况; ★用随机方法产生
①用随机方法产生K个顶点
先用随机函数产生 n 个随机数 i (0 i 1) ,
然后变换到预定的区间 ai xi bi 中去.
第五章 约束优化方法
1) 约束坐标轮换法; 2) 约束随机方向法; 约束优化直接解法
3) 复合形法; 4) 可行方向法;(自学) 5) 罚函数法; 约束优化间接解法 (1) 内点罚函数法; (2) 外点罚函数法;
2015-6-23 1
第五章 约束优化方法
机械优化设计的问题,大多属于约束优化设计问题, 其数学模型为: x Rn f ( x) min
X (1)
X (2)
3.6.流程图
0 初始步长;
m 在一迭代点处允许产生 的方向数;
给定内点X0, α 0, m ,ε
α =α 0, F0=F(X0) K=0, j=0 产生随机方向
终止误差限(步长)
K 计数器(方向数) j 计数器(沿该方向前进过为 1, 否则为0)
j =1
X X 0 S
X∈D 是 F=F(X) 否
否 j =0 是 K=K+1 是 K< m 否
F<F0
是 X0=X, F0=F
否
α ≤ε
是
否
α =0.5α
X*=X0 ,F*=F0
结束
3.7 随机方向法的Matlab程序
function [x1,fx1,gx]=opt_random2(f,g_cons,xl,xu,TolX,TolFun) N=length(xl); M=size(g_cons); M=length(M(:,1)); gx=ones(M,1); while max(gx)>=0 dir0=rand(N,1); x0=xl+dir0.*xu; gx=feval(g_cons,x0); %feval()执行由串指定的函数 end %======================================================== fx0=feval(f,x0); xk=x0+1; fxk=feval(f,xk); xmin=x0; alpha=1.3; k1=0; flag1=1; while norm(xk-x0)>TolX|abs(fxk-fx0)>TolFun k1=k1+1; x0=xmin; fx0=feval(f,x0);
dir0=rand(N,1)*2-1; dir0=dir0/norm(dir0); xk=x0+alpha*dir0; gx=feval(g_cons,xk); if max(gx)>0 alpha=alpha*0.7; else fxk=feval(f,xk); if fxk<fx0 if norm(xk-x0)<TolX&abs(fxk-fx0)<TolFun break else xmin=xk; alpha=1.3; end x0,xk,fx0,fxk else alpha=-alpha; end end end x1=x0; fx1=feval(f,x1); gx=feval(g_cons,x1); k1 end
3.7
随机方向法的Matlab程序
例: 求
function opt_random1_test1 计算结果: %opt_random1_test1.m x1 =[-0.0076 -3.0000], clc; f =-2.9999, clear all; f=inline('x(1)^2+x(2)','x'); g =[-0.0000 -4.0076] xl=[-3 -3]'; xu=[3 3]'; TolX=1e-8; TolFun=1e-8; [x1,fx1,g]=opt_random1(f,@fun_cons,xl,xu,TolX,TolFun) function g=fun_cons(x) g=[x(1)^2+x(2)^2-9 x(1)+x(2)-1];
随机方向法的基本思路
1、在可行域内选择一个初始点; 2、利用随机数的概率特性,产生若干个随机方向; 3、从中选一个能使目标函数值下降最快的方向作为搜索方向d; 4、从初始点x0出发,沿d 方向以一定步长进行搜索,得到新点 X,新点X应满足约束条件且f(x)<f(x0),至此完成一次迭代。 随机方向法程序设计简单,搜索速度快,是解决小型机械优 化问题的十分有效的算法。 基本思路如图所示。
2015-6-23
9
二.迭代步骤
X
X ( 3)
(0)
X (1)
X ( 2) X ( 4)
2015-6-23
10
三.存在问题
有时会出现死点, 导致输出“伪最优点”.
* 为辨别真伪, 要用K-T条件进行检查.
2015-6-23 11
第三节
3.1
约束随机方向法
坐标轮换法有时会输出“伪最优点” ,用随机方向法可克服这一缺点.
a) 可行域是凸集;
b)可行域是非凸集
间接解法的基本思路:
将约束函数进行特殊的加权处理后,和目标函数结合起来, 构成一个新的目标函数,即将原约束优化问题转化为一个 或一系列的无约束优化问题。
x, 1 , 2 f x 1G hk x g j x 2 H
间接解法中具有代表性的是惩罚函数法。
直接解法的基本思想:
在由m个不等式约束条件gu(x)≤0所确定的可行域φ内, 选择一个初始点x(0),然后确定一个可行搜索方向S,且以 适当的步长沿S方向进行搜索,取得一个目标函数有所改善 的可行的新点x(1),即完成了一次迭代。以新点为起始点重 复上述搜索过程,每次均按如下的基本迭代格式进行计算:
x(k+1)= x(k)+α(k) S(k)
逐步趋向最优解,