- 16
- 0
- 约1.93千字
- 约 12页
- 2018-10-11 发布于江苏
- 举报
机械优化设计共梯度法
机械优化设计 确定初始可行点 综上所述,产生可行搜索方向的条件可概括为:当 点满足 则可行方向为 搜索步长的确定 确定可行搜索方向后,在该方向上的搜索步长 一般按加速步长法来确定。加速步长法是指依次迭代的步长按一定的比例递增的方法。各次迭代的步长按下式计算: 步长加速系数,一般取1.3 步长,初始步长为 随机方向法的优缺点 对目标函数的性态无特殊要求,程序设计简单,使用方便。 它适用于小型的机械优化设计问题。 由于搜索方向是从许多随机方向中选择的使目标函数下降最快的方向,加之步长可变,所以收敛速度快。 可行方向一般要选择50~500个,效果比较好,故计算量大。 初始点的选择对收敛迭代次数影响较大。 随机方向法的改进 在随机方向中,添加确定方向,即增加坐标轴方向。 这样可以保证随机方向既有坐标轮换法的优势,又能避免在求解过程脊化优化问题时遇到的伪最优解。 * * §6.3 约束随机方向搜索法 基本思想 它是约束优化问题中经常采用的一种直接求解方法。它适于解决如下数学模型: min f (X ) X∈ Rn s.t. gj(X ) ≤ 0 (j = 1, 2, …, m) 其基本思想是:在不破坏约束条件的前提下,从选定的初始可行点X(0)出发,相继沿着N个随机产生的搜索方向e(k)(k= 1, 2, …, N), 以定步长 ?0 搜索得到N个试验点Xk (k= 1, 2, …, N), 然后计算比较N个试验点处的函数值 f (Xk),找出其中的最小点XL 。 若f (XL) ≥ f (X(0)),则缩短步长?0 ,或重新产生N个随机方向,重复前面的过程。 若f (XL) f (X(0)),则继续沿方向S = XL-X(0) ,并令X(0) = XL,以适当步长?向前跨步,得到新点 X(1) = X(0) + ? S 。 若f (X(1) ) f (XL),则将新的起始点移到X(1) ,重复前面的过程进行新一轮搜索。 ?0 X(0) XL S XL S 若f (X(1) ) f (XL),则应缩短步长? ,直至取得一个好的可行点作为新一轮搜索的起始点。如此周而复始,当迭代步长? 已经很小时,说明搜索已逼近约束最优点。达到精度要求时,即可终止迭代计算。 随机数的产生 随机数是由电脑产生的伪随机数。 在MATLAB中可调用rand( )函数实现;在turbo C 中可调用randn( ) 函数实现 方法1)决定性方法 当问题的约束条件比较简单,可凭判断人为地在可行域内选定一个初始点。 方法2) 随机投点方法 当问题的约束条件较为复杂时,靠判断选择初始可行点较困难,这时可借助计算机中的随机数发生器,产生随机但可行的初始点。 设给定设计变量的上下限值为: ai≤ xi ≤ bi (i = 1, 2, …, n) 则产生的随机点的各分量为 xi(0) =ai +ri(bi-ai) (i = 1, 2, …, n) 其中, ri为[0,1]区间上的随机数。 还需对点X(0)进行可行性检验,即是否满足 gj(X(0)) ≤ 0 (j = 1, 2, …, m) 若满足, X(0)可作为初始点;否则,则应另取随机数重新产生随机点,直到得到一个可行的随机点为止。 可行搜索方向的产生 利用计算机中的随机数发生器,在区间[-1,1]上产生一组随机数方法r1 、 r2 、… 、 rn (n 为变量的维数) ,则随机搜索方向为 e = [e1 e2 … en ]T = [r1 r2 … rn ]T /(∑ ri 2) 0.5 || e ||=1, e 是一个单位向量。 要产生N个随机搜索方向e(k) (k =1, 2, …, N) ,需要产生N组随机数ri(k) (i = 1, 2, …, n; k =1, 2, …, N) 。 *
原创力文档

文档评论(0)