第六章 约束优化方法
合集下载
13工程优化 第6章-2约束最优化方法

间接法: 将约束非线性规划转换为一系列无约束优化问题 用无约束优化方法来求解, 逐渐逼近约束非线性规划的最优解.
这些算法一般比较复杂; 但它们可以采用计算效率高、稳定性好的无约束优化方法; 可用于求解高维的优化问题
惩罚函数法----一种使用广泛、有效的间接法
基本思想:
借助罚函数将约束非线性规划转化为一系列无约束问题,
约束优化方法
约束 优化 方法
min f ( x) s.t. gi ( x) 0, i 1, 2,..., m h j ( x) 0, j 1, 2,..., l
直接法:坐标轮换法、复合形法
(1)
算法简单,对目标函数和约束函数无特殊要求; 计算量大,不适用维数较高的问题; 适用只含不等式约束的优化问题
* * *
x* M D
* = F ( x M , M ) F ( x, M )
f x Mp x f x
xD
外点罚函数法
min F ( x, M ) f ( x) Mp( x)
性质:若 x* M 是 min F ( x, M ) 的最优解,且 x* M D ,则 x* M D 也是 min f ( x) 的最优解。
p( x) (min gi ( x),0)2 h2 ( x) j
i 1 j 1 m l
用解析法求 驻点 或者 用无约束优 化方法求解
步骤3:若 M k p( xk ) ,则停止计算,得到近似极小点 x k ; 否则,令 M k 1 cM k ,置k:=k+1,转步骤2。
min f ( x) s.t. gi ( x) 0, i 1, 2,..., m (1) h j ( x) 0, j 1, 2,..., l
等式约束优化

第六章
6.1 Kuhn-Tucker 条件
二、不等式约束问题的Khun-Tucker条件: (续) ●
目标函数f ( x)与g 1( x) 0相切的情况: I {1}, 则u 2 u 3 u 4 0 2( x1 3) 2 x1u1 0 解2( x 2 2) 2 x 2 u1 0 x2 x2 5 0 1 2 故均不是K T点 得(
若( fgh)为凸规划,满足可微性及CQ 则x l.opt. x 是K T点。
第六章
min f ( x) 1、问题:(P) s.t. Ax b x0 可行集:S {x | Ax b, x 0} 2、非退化假设: 1 A的任意m列线性无关;
g3=0 x2
▽g2(x*)
第六章
例
2 1
-▽f(x*) (3,2)T
x*
▽g1(x*)
1
2 3 g1=0
4
g4=0 x1 g2=0
6.1 Kuhn-Tucker 条件 二、不等式约束问题的Khun-Tucker条件: (续)
在x *点 g 1 ( x1 , x 2 ) 0 g 2 ( x1 , x 2 ) 0
计算可得 f ( x * )
1 3
* u1
1 3
* u2 2 3
2 3
使
g 1 ( x )
g 2 ( x ) 0
用K-T条件求解:
2( x1 3) 2 x1 f ( x ) , g ( x ) 1 2( x 2) 2x 2 2 1 0 g 3 ( x ) , g 4 0 1 1 , g ( 2 ) 2 2
第6章约束优化方法

设计变量x1 2.0 1.117 1.024 0.717
-2.998 -3.0
目标函数值 6.0 1.196 1.025 0.730
-2.997 -3.0
机械优化设计
§第三节 复合形法
一. 单纯形法:
定义:在n维空间中,由n+1个点组
成的图形称单纯形。
X(3)
X(5)
基本思想:以一个目标函数值较小的 新点,代替原单纯形中目标函数值最 大的顶点,组成新的单纯形,不断地 迭代,逐渐逼近最优点。
(j) i
=
αi+ri(j)(bi-ai),重新构成复合形,转
步骤2
5. 计算映射点: x (R) =x (S)+a(x (S)-x (H))
检查是否在可行域内
是,转步骤6 否, a=0.5a,重新计算反射点
机械优化设计
f(x(R)) < f(x(H)) ,以x(R)代替x(H) 重构复合形后转步骤2 6. 计算f(x(R)),若
则可行搜索方向为: d x L x0
四、搜索步长的确定
步长由加速步长法确定:
τ为步长加速系数,一般取1.3
机械优化设计
五. 计算步骤 1) 选择一个可行的初始点x0; 2) 产生k个n维随机单位向量e j ( j = 1, 2, …, k);
3) 取试验步长0,计算出k个随机点x j ;
机械优化设计
×
第六章 约束优化方法
机械优化设计
6.1 概 述 6.2 随机方向法 6.3 复合形方法 6.4 可行方向法 6.5 惩罚函数法 6.6 增广乘子法
6.7 非线性规划问题 的线性化解法—线性 逼近法
6.8广义简约梯度法
6.9 二次规划法
约束优化方法的讲解

根据它们在惩罚函数中的作用,分别称障碍项和惩罚 项。 障碍项的作用是当迭代点在可行域内时,在迭代过程 中将阻止迭代点越出可形域。 惩罚项的作用是当迭代点在非可行域或不满足等式约 束条件时,在迭代过程中将迫使迭代点逼近约束边界或 等式约束曲面。 按照惩罚函数在优化过程中迭代点是否可行,分为: 内点法、外点法及混合法。
2)按经验公式
r0 f x0 1 0 g x j 1 j
m
计算r0 值。这样选取的r0 ,可以是惩罚函数中的障 碍项和原目标函数的值大致相等,不会因障碍项的值 太大则其支配作用,也不会因障碍项的值太小而被忽 略掉。 3.惩罚因子的缩减系数c的选取 在构造序列惩罚函数时,惩罚因子r是一个逐次递 减到0的数列,相邻两次迭代的惩罚因子的关系为:
(k=0,1,2,…)
逐步趋向最优解,直到满足终止准则才停止迭代。
直接解法的原理简单,方法实用,其特点是:
1)由于整个过程在可行域内进行,因此,迭代计算不论 何时终止,都可以获得比初始点好的设计点。 2)若目标函数为凸函数,可行域为凸集,则可获得全域 最优解,否则,可能存在多个局部最优解,当选择的初始 点不同,而搜索到不同的局部最优解。 3)要求可行域有界的非空集。
a) 可行域是凸集;b)可行域是非凸集
间接解法的求解思路:
将约束函数进行特殊的加权处理后,和目标函数结合起来, 构成一个新的目标函数,即将原约束优化问题转化为一个 或一系列的无约束优化问题。
x, 1 , 2 f x 1G hk x g j x 2 H
当迭代点离约束边界越远时,惩罚项愈大,这可看 成是对迭代点不满足约束条件的一种惩罚。
例6-6 用外点法求问题
hk x 0
2)按经验公式
r0 f x0 1 0 g x j 1 j
m
计算r0 值。这样选取的r0 ,可以是惩罚函数中的障 碍项和原目标函数的值大致相等,不会因障碍项的值 太大则其支配作用,也不会因障碍项的值太小而被忽 略掉。 3.惩罚因子的缩减系数c的选取 在构造序列惩罚函数时,惩罚因子r是一个逐次递 减到0的数列,相邻两次迭代的惩罚因子的关系为:
(k=0,1,2,…)
逐步趋向最优解,直到满足终止准则才停止迭代。
直接解法的原理简单,方法实用,其特点是:
1)由于整个过程在可行域内进行,因此,迭代计算不论 何时终止,都可以获得比初始点好的设计点。 2)若目标函数为凸函数,可行域为凸集,则可获得全域 最优解,否则,可能存在多个局部最优解,当选择的初始 点不同,而搜索到不同的局部最优解。 3)要求可行域有界的非空集。
a) 可行域是凸集;b)可行域是非凸集
间接解法的求解思路:
将约束函数进行特殊的加权处理后,和目标函数结合起来, 构成一个新的目标函数,即将原约束优化问题转化为一个 或一系列的无约束优化问题。
x, 1 , 2 f x 1G hk x g j x 2 H
当迭代点离约束边界越远时,惩罚项愈大,这可看 成是对迭代点不满足约束条件的一种惩罚。
例6-6 用外点法求问题
hk x 0
优化设计约束优化方法第06章-1

3、压缩
若上述方法均无效,可让复合形各顶点向xL靠拢,即压缩复 合形。
若某顶点压缩后在可行域外,可将其继续向 xL靠拢,直到其 回到可行域。
四、复合形法的迭代步骤
只含反射功能的复合形法迭代步骤为:
1、确定k值,产生初始复合形;
2、比较各顶点,排序; 3、计算除xH外的中心点xC。若可行,则继续,否则则重新 确定设计变量的下限和上限,即a=xL,b=xC,转而重新构造初始 复合形; 4、反射,反复反射,直至成功。 5、收敛条件
一、基本原理
在约束可行域S内选取一个初始点X(0),在不破坏约束的条件 下以合适的步长 α ,沿 X(0) 点周围几个不同的方向(以某种形式 产生的随机方向)进行若干次探索,并计算各方向上等距离( 步长α )点的函数值,找出其中的最小值f(X(l))及点X(l)。 若f(X(l))<f( X(0)),则继续沿方向( X(l)-X(0))以适当的 步长 α 向前跨步,得到新点 X(1) ,若 f ( X(1) ) <老 f ( X(l) ),则将 新的起点移至X(1) ,重复前面过程。 d 否则应缩短步长 α,直至取得约束好点。如此循环下去。当 迭代的步长已经很小时,则表明已经逼近约束最优点。达到计 算精度要求时,即可结束迭代计算。 随机方向探索法的一般迭代计算公式为: X(k+1)=X(k)+αd(k) (k=0,1,2,…) 式中α为步长,d(k) 为第k次迭代的可行搜索方向。 可行搜索方向产生的条件.. ..
复合形法例题
二、算法技术
1、随机数的产生 可以利用各种计算机语言的随机函数,也可利用随机数的数学 模型自行产生。 2、初始点的选择 (1)产生一个随机点
0~1之间的随机数
无法人工给出初始点时,可以用随机选择的方法得到。
第6章 约束优化方法

K
K
min{ 0, g u ( X)}
u 1
(h v ( X))
v 1
其中rK 是惩罚因子 , r0<r1<r2<…<rK→∞ 说明: (1) 当 Xk 在可行域内,惩罚项的值为 0, 否则不为0. 为了使 φ的值 有所下降,Xk 会向可行域内部靠拢。 (2)当迭代次数K→∞, 惩罚因子rK→∞. 惩罚项的作用越来越大。 但是如果迭代点在可行域内,惩罚项的值为0,因此新目标函数 φ的最有点与原模型 f(X)的最优点相同。
k
k 1
)
(2)基本迭代公式:X
k X d
(3)可行方向: 使目标函数值下降的方向 不违背约束条件的方向 (4)特点:
求解在可行域内进行,因此迭代计算不论何时终止,都可以
获得一个比初始点好的设计点。 若目标函数为凸函数,可行域为凸集,可获得全局最优解。 否则应选差别较大的初始点分别计算,以获得多的局部最优解。 简单,计算工作量大,适用于低维问题。
6.1.6 迭代过程 和算法框图
随机产生ej
开始
X0,α0随机选取 ,ε,k 初始点 m=0 α←α0
X0是否可行 是
否
随机选择X0
j=1
fL,f0←f(X0) 否
f0 f f0
Yj←X0+α
j 0e
计算并记 否 录可行初 X0←X;fL,f0←f 始点 是 m=m+1 结束
fL<f(X) 是 f←f(X) 是 X是否可行 否 X←X+αd
二、解法分类
2.间接解法 (1)基本思想 将约束函数转到目标函数中去,变为无约束问题。 (2)特点:
可选用有效的无约束优化方法。
可以有效地处理具有等式约束的约束优化问题。 主要问题:选取加权因子较为困难。
K
min{ 0, g u ( X)}
u 1
(h v ( X))
v 1
其中rK 是惩罚因子 , r0<r1<r2<…<rK→∞ 说明: (1) 当 Xk 在可行域内,惩罚项的值为 0, 否则不为0. 为了使 φ的值 有所下降,Xk 会向可行域内部靠拢。 (2)当迭代次数K→∞, 惩罚因子rK→∞. 惩罚项的作用越来越大。 但是如果迭代点在可行域内,惩罚项的值为0,因此新目标函数 φ的最有点与原模型 f(X)的最优点相同。
k
k 1
)
(2)基本迭代公式:X
k X d
(3)可行方向: 使目标函数值下降的方向 不违背约束条件的方向 (4)特点:
求解在可行域内进行,因此迭代计算不论何时终止,都可以
获得一个比初始点好的设计点。 若目标函数为凸函数,可行域为凸集,可获得全局最优解。 否则应选差别较大的初始点分别计算,以获得多的局部最优解。 简单,计算工作量大,适用于低维问题。
6.1.6 迭代过程 和算法框图
随机产生ej
开始
X0,α0随机选取 ,ε,k 初始点 m=0 α←α0
X0是否可行 是
否
随机选择X0
j=1
fL,f0←f(X0) 否
f0 f f0
Yj←X0+α
j 0e
计算并记 否 录可行初 X0←X;fL,f0←f 始点 是 m=m+1 结束
fL<f(X) 是 f←f(X) 是 X是否可行 否 X←X+αd
二、解法分类
2.间接解法 (1)基本思想 将约束函数转到目标函数中去,变为无约束问题。 (2)特点:
可选用有效的无约束优化方法。
可以有效地处理具有等式约束的约束优化问题。 主要问题:选取加权因子较为困难。
6第六章 约束优化方法new
6) 若收敛条件
得到满足,停止迭代。约束最优解为 x x, f x f x 。 否则, 令x0 x转步骤2)。
f x f x xx
0 0 2
1
(6-12)
随机方 向法的 程序框 图见图 6-5。
例6-2 求约束优化问题
min f x x x
2 2 2 1 2 4 3 0 1 2 4 2 2 2 0
(2) (3)
1
2
4
3
2l3l4
所以只剩下两个独立参数l2, l3。 因此设计变量取
x l x 1 2 x 2 l3
(4)
复演预期函数的机构设计问题, 可以按期望机构的输出函数与给定函数的 均方根误差达到最小来建立目标函数, 即 d
s.t. g j x g j x1 , x2 ,, xn 0 min f x f x1 , x2 ,, xn
hk x hk x1 , x2 ,, xn 0
j 1, 2,, m k 1, 2,, l
根据求解方式的不同, 约束优化方法可以分为: 直接解法和间接解法
q即为(0, 1)区间内的伪随机数。利用q, 容易求得任意区间(a, b)内的伪随机 数, 其计算公式为 x = a + q(ba)
(6-5)
这部分内容为产生伪随机数的数学模型,可写成子程序。或 者大家可以直接利用算法语言中自带的产生随机数的子程序。
二、初始点的选择 随机方向法的初始点x0必须是一个可行点,满足全部不等式 约束条件。当约束条件较为复杂,用人工不易选择可行初始点 时,可用计算机随机选择的方法来产生。其计算步骤如下: 1)输入设计变量的下限值和上限值,即 ai xi bi (i = 1, 2, ,n) 2)在区间(0,1)内产生n个伪随机数qi (i = 1, 2, , n) 3)计算随机点x的分量 xi = ai + qi (bi ai) (i = 1, 2, , n)
《约束优化方法》课件
牛顿法
01 总结词
基本原理、优缺点
02
基本原理
牛顿法基于泰勒级数展开,通 过迭代更新参数,构造出目标 函数的二次近似模型,并利用 该模型求解最优解。在约束优 化问题中,牛顿法通常用于处 理等式约束或非线性不等式约 束。
03
优点
04
收敛速度快,通常只需要较少的 迭代次数就能找到最优解。
缺点
对初值选择敏感,如果初值选择 不当,可能无法收敛到最优解; 同时计算量较大,需要存储和计 算Hessian矩阵。
物流配送问题旨在在满足客户需求和运输能力等约束 条件下,合理安排货物的配送路线和运输方式,以最 小化运输成本或最大化运输效率。
详细描述
物流配送问题需要考虑客户分布、运输网络、运输能 力、时间限制等多个约束条件,通过优化配送路线和 运输方式,提高物流效率和客户满意度。
2023
REPORTING
THANKS
非线性规划的解法包括梯度法、牛顿 法、共轭梯度法等,这些方法可以用 于解决函数优化、机器学习、控制系 统等领域的问题。
整数规划
整数规划是约束优化方法中的一种特殊类型,它要求所有决策变量均为整数。
整数规划的解法包括分支定界法、割平面法等,这些方法可以用于解决车辆路径问题、背包问题、布局问题等具有整数约束 的问题。
REPORTING
线性规划
线性规划是最早的约束优化方法之一 ,它通过寻找一组变量的最优解来满 足一系列线性不等式约束和等式约束 ,并最大化或最小化某个线性目标函 数。
线性规划的解法包括单纯形法、分解 法、网络流算法等,这些方法可以用 于解决生产计划、资源分配、运输问 题等实际应用。
非线性规划
非线性规划是约束优化方法的一个重 要分支,它研究的是目标函数和约束 条件均为非线性的优化问题。
优化设计约束优化方法第06章-2
2)设计点xk满足库恩-塔克条件
可行方向法例题
六、可行方向法的计算步骤
1)定出可行域内初点x0,给出约束允差δ和收敛精度ε。 2)令迭代次数k=0,首次迭代方向取d0=-▽f(x0)。 3)估算试验步长αt,计算试验点xt。 4)若xt满足- δ≤gj(xt) ≤0,则xt必位于gj面上,转至6); 若xt位于可行域内,则加大试验步长αt,重新计算新点xt,直至 xt越出可行域,再转至步骤5);若xt位于非可行域,则直接转 至5)。 5)确定违反量最大的约束gk(xt)。用插值法计算试验步长αs, 使xt返回到约束面上,完成一次迭代。再令k=k+1,xk=xt,然后 转下步。 6)在新的设计点xk处产生新的可行方向dk。
xkБайду номын сангаас
dk
3、可行方向
同时满足可行条件和下降条件的方向,就是可行方向。 即满足式:
的方向,即是可行方向。 可行方向不止一个,所有 可行方向则构成可行方向区。
即,约束曲面在点xk的切 线和目标函数等值线在点xk的 切线所围成的扇形区。
g 1( x)=0
g 2( x)=0
f ( x 0 )
xk
g1 ( x k )
四、步长的确定
确定的步长应使新的迭代点为可行点,且目标函数具有最大 的下降量——约束一维搜索。
x2
a*dk
确定步长的方法有两种:
g2(x)=0 x k+1 dk g1(x )=0
1、取最优步长
即从xk点出发,沿dk方向进行 一维最优化搜索,取得最优步长 α*,计算新点x的值 。
0
xk
x1
2、取到约束边界的最大步长 … …
约束一维搜索
与无约束一维搜索相比,约束一维搜索的特点在于:确定初 始区间时,对产生的每一个探测点都进行可行性判断,如违反 了某个或某些约束条件,就必须减少步长因子,以使新的探测 点落在最近的一个约束曲面上或约束曲面的一个容许的区间δ内。
约束优化算法PPT课件
令
,上述方程组即
给定初始点
,利用上面两式进行迭代
解等式约束问题的- Lagrange-Newton法
定理 假设 x*是等式约束问题的满足二阶充分条件的局
部极小点, 且rank (A*)=m, 是惟一的Lagrange乘子.
则当
充分接近
时,Lagrange-Newton
法有定义,且由该方法产生的序列
二次
特点:在 x1=1 处不可微;进行整理,得
结论:对任一
罚函数的解与原问题的相同
第6讲 约束优化问题的算法
优化理论
数学与系统科学学院
精确罚函数法(续)
⊙ 先验确定惩罚参数很难;通常是计算一系列子问题, 并在计算过程中调整该参数
⊙ 与逐步二次规划法有密切联系;SQP的线搜索实现中 通常以 惩罚函数作为评价函数
则s*=0 (x*)是下列问题的惟一最优解
第6讲 约束优化问题的算法
优化理论
数学与系统科学学院
基本/局部逐步二次规划法(续)
算法9.2 基本SQP法
第6讲 约束优化问题的算法
优化理论
数学与系统科学学院
基本/局部逐步二次规划法(续)
例
第6讲 约束优化问题的算法
优化理论
数学与系统科学学院
基本/局部逐步二次规划法(续)
优化理论
数学与系统科学学院
二次惩罚函数法(续)
条件数
第6讲 约束优化问题的算法
优化理论
数学与系统科学学院
精确罚函数法 SQP中常用*****
一定条件下,
存在
,当
特点:不需要
时,求解 ;是非光滑的!
避免了无约束优化问题的病态性!
例
即可
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x0 2)选可行初始点
j 3) 产生k个n维随机单位向量: e =
r1 j j 1 r2 n ⋮ j 2 ∑ (ri ) rnj i =1
(j =1,2,…,k) 4)取试验步长α 0 ,计算k个随机点
x j = x 0 + α 0e j
( j = 1,2, ⋯ , k )
0
综上所述,产生可行搜索方向的条件可概括为,当 满足:
g j ( x L ) ≤ 0 ( j = 1,2, ⋯, m) j f ( x L ) = min f ( x ) j =1,⋯k f (xL ) < f (x0 )
xL
{
}
d = xL − x 0 则搜索方向为:
特点: 直接解法原理简单,方法实用,特点如下: 1)由于整个求解过程在可行域内进行,因此,迭代不论 何时终止,都可以获得一个比初始点好的设计点。 2)若目标函数为凸函数,可行域为凸域,则可保证获得 全域最优解。此时,可在可行域内选择几个差别比较大的 初始点分别进行计算,以便从求得的多个局部最优点钟选 择更好的最优点。 3)要求可行域为有界的非空集,即在有界可行域内存在 满足全部约束条件的点,且目标函数有定义。
二 、复合形法的搜索方法
初始复合形 法则 新点 替换最坏点 新复合形
1、反射 反射(最主要的方法) 反射 1)计算复合形各顶点的目标函数值,求出: 最好点: xL 最差点:
xH
f( x L) = min { f ( x j )|j =1 ,2 ,⋯ ,k }
f H = f(xH)= max { f (x j ) j =1,2 ,⋯,k } |
5)在k个随机点 x j 中,找出 x L
x L 满足: g j ( x L ) ≤ 0 ( j = 1,2, ⋯ , m ) 若
j f ( x L ) = min f ( x ) f (xL ) < f (x0 )
0
{
j =1,⋯ k
}
则搜索方向为: d = x L − x 若不满足,则转步骤3) 6) 从初始点 x 0 出发,沿可行搜索方向 d 以步长 α 进行迭代计算, 产生新的迭代点,若新的迭代点可行,则步长按一定倍数递增。 α 否则,将步长缩小为0.7 进行搜索,直到搜索到一个满足全部 约束,且目标函数值不再下降的新点x。 所以,x应满足:(1) g j ( x ) ≤ 0 (是可行点) (2) f ( x ) = min{ f ( x 1 ), f ( x 2 ),⋯}
随机法产生 x 0 的计算步骤 1)输入设计变量的上限值和下限值,ai、bi,即 ai≤xi≤bi (i =1,2,…,n) 2)在(0,1)区间内产生n个伪随机数 qi 3)计算随机点x(的各个分量):
(i = 1,2,⋯, n)
xi = ai + qi (bi − ai )
是,则 x 0 = x 4) x 是可行点? 否,返回 2
yes , ⇒ end 3) x 是最优解? no ,返回 2
优点: (1)对无性态要求 (2)程序简单,使用方便 (3)收敛速度较快(特别是x0选择的较好时) 它是求解小型优化问题的一种十分有效的方法。
一、随机数的产生
在随机方向法中,为产生初始点和随机方向,需要用到大 量的[0,1]和(-1,1)区间内均匀分布的随机数。在计算机 在计算机 随机数通常按一定的数学模型进行计算后得到, 内,随机数通常按一定的数学模型进行计算后得到,这样的 随机数称伪随机数。这种方法的特点是产生速度快,内存占 随机数称伪随机数 用少,并有较好的概率统计性。 一种常用的产生伪随机数的数学模型(算法): 37 36 r 1)令:r1 = 2 35 ,2 = 2 , r3 = 2 ,取 r = 2657863 (r为小r1的正奇数) 2)令: r = 5r 若 r ≥ r2 ,则 r = r − r2 3)若 r ≥ r3 ,则 r = r − r3 (若 r < r1 ,则 r = r ) 若 r ≥ r1 ,则 r = r − r1 4)伪随机数 q =
第六章 约束优化方法 约束优化方法
§6-1
概述
机械设计中优化问题大多属于有约束的优化问题,即:
min f ( x) x = [ x1 x 2 ⋯ x n ]
g j(x) ≤ 0
T
( j = 1,2,⋯, m) (k = 1,2,⋯, l )
hk ( x ) = 0
求解约束问题的方法: 求解约束问题的方法: 直接解法、 直接解法、间接解法
7) 收敛条件
f ( x) − f ( x 0 ) ≤ ε 1 或 x − x0 ≤ ε2
满足:
x* = x
, f ( x*) = f ( x ) ,结束 ,返回步骤3。
不满足: x 0 = x
六、分析: 分析:
约束随机方向搜索法的程序结构简单、使用方便,若k足够 大,一般不会出现病态的死点。这种方法对于目标函数的性态 无特殊要求。由于其搜索方向是优选出的最好方向,加之可随 机变更步长。因此,收敛速度较快。常用于小型优化设计问题 的求解。但为了避免所求得的结果仅仅是局部最优解。常常需 要选择几个不同的初始点,从几次计算结果中作出正确分析, 得出全域最优解。
( ) 构造k-1个点:x j = a + rj b- a (
j = 2 ,3,⋯ , k
)
j = 2 ,3,⋯ , k
j ( 或写成: xi = ai + rj bi - a) (i = 1, 2,⋯ , n i
,
T
)
x j ——复合形的第j个顶点
a , b—— 设 计 变 量的上、下限:
a = [ a1 a2 ⋯ an ]
r (返回2,便可产生一系列q) r1
q——(0,1)区间内的伪随机数 任意区间(a,b)内的伪随机数:
x = a + q (b - a )
二、初始点的选择
x 0 的要求:是可行点,即 g j ( x 0 ) ≤ 0 对初始点 的要求:
确定初始点有两种方法: 1. 人工选 这种方法是在可行域内人为地确定一个可行的初始点 。 x0 显然,当约束条件比较简单时,这种方法是可用的。但当约 束条件比较复杂时,人为地确定一个可行点就比较困难,因 此建议用下面的随机选择方法。 2. 随机法产生 这种方法是利用计算机产生的伪随机数来构造一个可行 的初始点 x 0 。
二.间接解法
将约束优化问题,经过特殊的加权处理后,和目标函数结合 起来,构成一个新的目标函数,将其转化为无约束优化问题。
φ (x, r1 ,r2 ) = f (x )+r1 ∑ G[g j (x )] + r2 ∑ H[hk (x )]
j =1 k =1
m
l
r1 ,r2 ——加权因子
间接解法是一种目前得到广泛应用的一种有效方法。 间接法适用于不等式或等式约束优化问题。
d = xL − x 0
0 ②若 f ( x L ) ≥ f ( x )
则将步长α0缩小,返回步骤 ) 步骤1) 步骤
ε ③若当α0 < (如
α 0 ≤ 10 −6),仍找不到一个
x,使, L
f (xL ) < f ( x0 )
x 0,返回步骤 ) 则说明 x 是局部极小点。更换初始点 步骤1) 步骤
T
b = [b1 b2 ⋯ bn ]
2.将非可行点调入可行域内
1 L xc = ∑ x j 设k-1个随机点中有L个可行点,其中心为: L j=1
设 xc 为可行点,将其余k-L个 非可行点移入可行域 如: xL +1 = xc + 0.5(xL +1 - xc) 反复利用上式,则可将 xL +1 移 入可行域 3.若 xc 为非可行点(可行域为 凹集时可能发生),则重新确定a, b,返回1) 方法三: 方法三:k个点全部用随机法产生,但要求其中至少有一个 可行点(否则重新产生),然后同方法二。
四、搜索步长的确定
从 x 沿d方向的搜索步长是事先确定的,而不是像有些 方法那样是根据 f ′(α ) = 0 计算出来的。 步长的确定: (1)取 α = α 0
α (2)加速: = τα(τ ——步长加速系数,可取 τ 0
= 1.3
0
——依次加速)
五、随机方向法的计算步骤
1)给定设计变量数目n,初始变量估计的上下限ai、bi(i=1、2、 ┄,n),初始步长α0 (给定初始步长一般是0.1-0.01),收敛精 度ε,产生随机方向最大个数k。
(i = 1,2,⋯, n)
三、可行搜索方向的产生
产生k ( k ≥ n )个随机方向,再从k个随机方向中,选择一 个较好的方向。 在构造可行搜索方向时,利用计算机产生的[0,1]区间 内的伪随机数,须将其转化为[-1 1]内的伪随机数。 原因:以如图所示的二维问题 原因 为例,若y1、y2是在区间[0 ,1]上 的两随机数,则以它们作为坐标 分量所构成的向量S只可能分布在 第1象限内,而不可能在整个象限 (第1至第4象限)内均匀分布,从而 限制了随机向量在整个圆周上取 值的可能,致使约束约束问题因 随机方向限制而找不到最优解。
f G = f(xG)= max { f (x j ) j =1,2 ,⋯,k, j≠ H } |
次差点: xG
2)计算除最坏点 xH 以外的k-1个顶点的中心:
1 L xc = ∑ xj k-1 j =1
j≠H
3)求反射点 x(沿 xH xc 方向) R
计算步骤: 计算步骤
n × k 个伪随机数 ri j(i = 1, ⋯ , n; j = 1, ⋯ k ) 1)在(-1,1)区间内产生
按下式生成k个随机单位向量
r1 j j 1 r2 n ⋮ j 2 ∑ ( ri ) rnj i =1
j 3) 产生k个n维随机单位向量: e =
r1 j j 1 r2 n ⋮ j 2 ∑ (ri ) rnj i =1
(j =1,2,…,k) 4)取试验步长α 0 ,计算k个随机点
x j = x 0 + α 0e j
( j = 1,2, ⋯ , k )
0
综上所述,产生可行搜索方向的条件可概括为,当 满足:
g j ( x L ) ≤ 0 ( j = 1,2, ⋯, m) j f ( x L ) = min f ( x ) j =1,⋯k f (xL ) < f (x0 )
xL
{
}
d = xL − x 0 则搜索方向为:
特点: 直接解法原理简单,方法实用,特点如下: 1)由于整个求解过程在可行域内进行,因此,迭代不论 何时终止,都可以获得一个比初始点好的设计点。 2)若目标函数为凸函数,可行域为凸域,则可保证获得 全域最优解。此时,可在可行域内选择几个差别比较大的 初始点分别进行计算,以便从求得的多个局部最优点钟选 择更好的最优点。 3)要求可行域为有界的非空集,即在有界可行域内存在 满足全部约束条件的点,且目标函数有定义。
二 、复合形法的搜索方法
初始复合形 法则 新点 替换最坏点 新复合形
1、反射 反射(最主要的方法) 反射 1)计算复合形各顶点的目标函数值,求出: 最好点: xL 最差点:
xH
f( x L) = min { f ( x j )|j =1 ,2 ,⋯ ,k }
f H = f(xH)= max { f (x j ) j =1,2 ,⋯,k } |
5)在k个随机点 x j 中,找出 x L
x L 满足: g j ( x L ) ≤ 0 ( j = 1,2, ⋯ , m ) 若
j f ( x L ) = min f ( x ) f (xL ) < f (x0 )
0
{
j =1,⋯ k
}
则搜索方向为: d = x L − x 若不满足,则转步骤3) 6) 从初始点 x 0 出发,沿可行搜索方向 d 以步长 α 进行迭代计算, 产生新的迭代点,若新的迭代点可行,则步长按一定倍数递增。 α 否则,将步长缩小为0.7 进行搜索,直到搜索到一个满足全部 约束,且目标函数值不再下降的新点x。 所以,x应满足:(1) g j ( x ) ≤ 0 (是可行点) (2) f ( x ) = min{ f ( x 1 ), f ( x 2 ),⋯}
随机法产生 x 0 的计算步骤 1)输入设计变量的上限值和下限值,ai、bi,即 ai≤xi≤bi (i =1,2,…,n) 2)在(0,1)区间内产生n个伪随机数 qi 3)计算随机点x(的各个分量):
(i = 1,2,⋯, n)
xi = ai + qi (bi − ai )
是,则 x 0 = x 4) x 是可行点? 否,返回 2
yes , ⇒ end 3) x 是最优解? no ,返回 2
优点: (1)对无性态要求 (2)程序简单,使用方便 (3)收敛速度较快(特别是x0选择的较好时) 它是求解小型优化问题的一种十分有效的方法。
一、随机数的产生
在随机方向法中,为产生初始点和随机方向,需要用到大 量的[0,1]和(-1,1)区间内均匀分布的随机数。在计算机 在计算机 随机数通常按一定的数学模型进行计算后得到, 内,随机数通常按一定的数学模型进行计算后得到,这样的 随机数称伪随机数。这种方法的特点是产生速度快,内存占 随机数称伪随机数 用少,并有较好的概率统计性。 一种常用的产生伪随机数的数学模型(算法): 37 36 r 1)令:r1 = 2 35 ,2 = 2 , r3 = 2 ,取 r = 2657863 (r为小r1的正奇数) 2)令: r = 5r 若 r ≥ r2 ,则 r = r − r2 3)若 r ≥ r3 ,则 r = r − r3 (若 r < r1 ,则 r = r ) 若 r ≥ r1 ,则 r = r − r1 4)伪随机数 q =
第六章 约束优化方法 约束优化方法
§6-1
概述
机械设计中优化问题大多属于有约束的优化问题,即:
min f ( x) x = [ x1 x 2 ⋯ x n ]
g j(x) ≤ 0
T
( j = 1,2,⋯, m) (k = 1,2,⋯, l )
hk ( x ) = 0
求解约束问题的方法: 求解约束问题的方法: 直接解法、 直接解法、间接解法
7) 收敛条件
f ( x) − f ( x 0 ) ≤ ε 1 或 x − x0 ≤ ε2
满足:
x* = x
, f ( x*) = f ( x ) ,结束 ,返回步骤3。
不满足: x 0 = x
六、分析: 分析:
约束随机方向搜索法的程序结构简单、使用方便,若k足够 大,一般不会出现病态的死点。这种方法对于目标函数的性态 无特殊要求。由于其搜索方向是优选出的最好方向,加之可随 机变更步长。因此,收敛速度较快。常用于小型优化设计问题 的求解。但为了避免所求得的结果仅仅是局部最优解。常常需 要选择几个不同的初始点,从几次计算结果中作出正确分析, 得出全域最优解。
( ) 构造k-1个点:x j = a + rj b- a (
j = 2 ,3,⋯ , k
)
j = 2 ,3,⋯ , k
j ( 或写成: xi = ai + rj bi - a) (i = 1, 2,⋯ , n i
,
T
)
x j ——复合形的第j个顶点
a , b—— 设 计 变 量的上、下限:
a = [ a1 a2 ⋯ an ]
r (返回2,便可产生一系列q) r1
q——(0,1)区间内的伪随机数 任意区间(a,b)内的伪随机数:
x = a + q (b - a )
二、初始点的选择
x 0 的要求:是可行点,即 g j ( x 0 ) ≤ 0 对初始点 的要求:
确定初始点有两种方法: 1. 人工选 这种方法是在可行域内人为地确定一个可行的初始点 。 x0 显然,当约束条件比较简单时,这种方法是可用的。但当约 束条件比较复杂时,人为地确定一个可行点就比较困难,因 此建议用下面的随机选择方法。 2. 随机法产生 这种方法是利用计算机产生的伪随机数来构造一个可行 的初始点 x 0 。
二.间接解法
将约束优化问题,经过特殊的加权处理后,和目标函数结合 起来,构成一个新的目标函数,将其转化为无约束优化问题。
φ (x, r1 ,r2 ) = f (x )+r1 ∑ G[g j (x )] + r2 ∑ H[hk (x )]
j =1 k =1
m
l
r1 ,r2 ——加权因子
间接解法是一种目前得到广泛应用的一种有效方法。 间接法适用于不等式或等式约束优化问题。
d = xL − x 0
0 ②若 f ( x L ) ≥ f ( x )
则将步长α0缩小,返回步骤 ) 步骤1) 步骤
ε ③若当α0 < (如
α 0 ≤ 10 −6),仍找不到一个
x,使, L
f (xL ) < f ( x0 )
x 0,返回步骤 ) 则说明 x 是局部极小点。更换初始点 步骤1) 步骤
T
b = [b1 b2 ⋯ bn ]
2.将非可行点调入可行域内
1 L xc = ∑ x j 设k-1个随机点中有L个可行点,其中心为: L j=1
设 xc 为可行点,将其余k-L个 非可行点移入可行域 如: xL +1 = xc + 0.5(xL +1 - xc) 反复利用上式,则可将 xL +1 移 入可行域 3.若 xc 为非可行点(可行域为 凹集时可能发生),则重新确定a, b,返回1) 方法三: 方法三:k个点全部用随机法产生,但要求其中至少有一个 可行点(否则重新产生),然后同方法二。
四、搜索步长的确定
从 x 沿d方向的搜索步长是事先确定的,而不是像有些 方法那样是根据 f ′(α ) = 0 计算出来的。 步长的确定: (1)取 α = α 0
α (2)加速: = τα(τ ——步长加速系数,可取 τ 0
= 1.3
0
——依次加速)
五、随机方向法的计算步骤
1)给定设计变量数目n,初始变量估计的上下限ai、bi(i=1、2、 ┄,n),初始步长α0 (给定初始步长一般是0.1-0.01),收敛精 度ε,产生随机方向最大个数k。
(i = 1,2,⋯, n)
三、可行搜索方向的产生
产生k ( k ≥ n )个随机方向,再从k个随机方向中,选择一 个较好的方向。 在构造可行搜索方向时,利用计算机产生的[0,1]区间 内的伪随机数,须将其转化为[-1 1]内的伪随机数。 原因:以如图所示的二维问题 原因 为例,若y1、y2是在区间[0 ,1]上 的两随机数,则以它们作为坐标 分量所构成的向量S只可能分布在 第1象限内,而不可能在整个象限 (第1至第4象限)内均匀分布,从而 限制了随机向量在整个圆周上取 值的可能,致使约束约束问题因 随机方向限制而找不到最优解。
f G = f(xG)= max { f (x j ) j =1,2 ,⋯,k, j≠ H } |
次差点: xG
2)计算除最坏点 xH 以外的k-1个顶点的中心:
1 L xc = ∑ xj k-1 j =1
j≠H
3)求反射点 x(沿 xH xc 方向) R
计算步骤: 计算步骤
n × k 个伪随机数 ri j(i = 1, ⋯ , n; j = 1, ⋯ k ) 1)在(-1,1)区间内产生
按下式生成k个随机单位向量
r1 j j 1 r2 n ⋮ j 2 ∑ ( ri ) rnj i =1