当前位置:文档之家› 优化设计方法学复习资料(修正)

优化设计方法学复习资料(修正)

优化设计方法学复习资料一、数学规划法部分:1.一维搜索:当方向k d 给定时,求最佳步长k α就是求一元函数)()()(1k k k k k d x f x f αϕα=+=+的极值问题,称为一维搜索。

一维搜索问题的求解方法有两种:解析解法和数值解法。

解析解法思路:利用一元函数的极值条件0)('*=αϕ求*α。

需要指出的是,在用函数)(αϕ的导数求*α,所用的函数是步长因子α为变量的一元函数,而不是以设计点x 为变量的多元函数)(x f 。

如果直接利用)(x f ,此时需要计算kx x =点处的梯度)(x f ∇和海赛矩阵G 。

数值解法:利用计算机通过反复迭代计算,求得最佳步长因子的近似值。

先确定*α所在的搜索区间,然后根据区间消去法原理不断缩小此区间,从而获得*α的数值近似解。

一维搜索方法的分类:可以分为两大类。

一类是试探法,这类方法是按照某种给定规律来确定区间内插入点的位置的,此点位置的确定仅考虑加快区间缩短速度,而不顾及函数值的分布关系。

代表算法:黄金分割法,Fibonacci 法等。

另一类是插值法,用插值函数的极小点作为区间的插入点。

代表算法:牛顿法(切线法),二次插值法,三次插值法等。

2.无约束优化方法关键:确定搜索方向k d 的构成问题是无约束优化方法的关键。

分类:(1)利用目标函数的一阶或二阶导数的无约束优化方法【解析解法】,如最速下降法、共轭梯度法、牛顿法以及变尺度法等。

(2)只利用目标函数值的无约束优化方法【数值解法】,如坐标轮换法、单形替代法及Powell 法等。

3.约束优化方法(修正)【分类】直接法:随机方向法、复合形法;间接法:惩罚函数法,增广乘子法,可行方向法、广义简约梯度法。

二、智能算法部分:1.遗传算法①提出:遗传算法起源于对生物系统所进行的计算机模拟研究。

本世纪40年代,就有学者开始研究如何利用计算机进行生物模拟的技术,他们从生物学的角度进行了生物的进化过程模拟、遗传过程模拟等研究工作。

进入60年代后,美国密执安大学的Holland 教授及其学生们受到这种生物模拟技术的启发,创造出了一种基于生物遗传和进化机制的适合于复杂系统优化计算的自适应概率优化技术——遗传算法。

②基本遗传算法:步骤一:初始化。

设置进化代数计算器t ←0;设置最大进化代数T ,随机生成M 个个体作为初始群体P (0)。

步骤二:个体评价。

计算群体P (t )中各个个体的适应度。

步骤三:选择运算。

将选择算子作用于群体。

步骤四:交叉运算。

将交叉算子作用于群体。

步骤五:变异运算。

将变异算子作用于群体。

群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。

步骤六:终止条件判断。

若t≤T,则:t←t+1,转到步骤二;若t>T,则以进化过程中所得到的具有最大适应度的个体作为最优解输出,终止计算。

③基本遗传算法的三种遗传算子选择运算:使用比例选择算子;交叉运算:使用单点交叉算子;变异运算:使用基本位变异算子。

(1)选择算子适应度较高的个体被遗传到下一代群体中的概率较大,适应度较低的个体被遗传到下一代群体中的概率较小。

选择方法:比例选择法(轮盘赌)、锦标赛选择法(2)交叉算子选择是对优秀个体的复制,不能产生新个体,交叉对相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体。

交叉操作是产生新个体的主要方法。

二进制编码染色体的交叉:单点交叉、多点交叉、均匀交叉(模式定理)(3)变异算子将个体染色体编码串中的某些基因位编码字符集的其它字符替换。

比如,二进制编码染色体的变异编码字符集为{0,1},变异操作就是将变异点上的基因取反,变异点是按概率Pm在染色体基因位上指定的。

④遗传算法的控制参数(1)编码长度:使用二进制编码时,编码长度通常由对问题的求解精度决定;使用实数编码时,编码长度与决策变量的个数相等。

(2)种群规模:表示每一代种群中所含个体的数目。

种群规模取值较小时,可提高遗传算法的运算速度,但却使遗传算法的搜索空间较小,种群缺乏足够的多样性,容易引起遗传算法的早熟现象;而当种群规模取值较大时,种群中个体的多样性较高,获得全局最优解的概率就越大,但相应的适应度评价次数和计算量就越大,使得遗传算法的运行效率降低。

一般建议的取值范围是20~100。

(3)交叉概率:反映了交叉运算被使用的频率。

在遗传算法中,交叉运算被认为是主要的搜索算子,所以交叉概率一般应取较大值。

一般来说,较大的交叉概率容易破坏种群中已经形成的优良模式,使搜索具有太大的随机性,对进化运算反而产生不利影响;而较小的交叉概率使得发现新个体的速度太慢。

一般建议的取值范围是0.4~0.99。

另外,也可使用自适应的思想来确定交叉概率。

(4)变异概率:变异在遗传算法中的作用是保持种群的多样性和提高算法的局部搜索能力。

若变异概率取值较大的话,虽然能够产生出较多的新个体,有助于提高种群多样性,但也有可能破坏掉很多较好的模式,使得遗传算法的性能近似于随机搜索算法的性能;若变异概率取值太小的话,虽然可以防止进化种群中重要信息的遗失,但变异运算产生新个体的能力和抑制早熟现象的能力就会较差,不利于遗传进化的局部搜索。

通常情况下变异概略擦的取值取值范围是0.0001~0.1。

也可使用自适应的思想来确定变异概率。

(5)终止代数:是表示遗传算法运行结束条件的一个参数,它表示遗传算法运行到指定的进化代数之后就停止运行,并将当前种群中的最优个体作为所求问题的最优解输出。

常用的办法是预先给定算法的终止进化代数。

一般来说,预先给定算法的终止进化代数只能找到问题在给定时限内所能寻求的相对满意解,但不一定是问题的最优解或较高精度的近似解。

为了获得较高精度的近似解,通常可依据种群适应度的稳定来适时调整终止进化代数的设置,或者在连续进化数代以后,如果解的适应度没有明显的改进,则终止进化过程。

终止进化代数一般的取值范围是100~1000。

2.蚁群算法①基于图的蚁群系统(GBAS )STEP 0 对n 个城市的TSP 问题,},|),{(},...,2,1{N j i j i A n N ∈==,城市间的距离矩阵为n n ij d ⨯)(,给TSP 图中的每一条弧),(j i 赋信息素初值A ij /1)0(=τ,假设m 只蚂蚁在工作,所有蚂蚁都从同一城市0i 出发。

当前最好解是),...,2,1(n w =。

STEP 1(外循环)如果满足算法的停止规则,则停止计算并输出计算得到的最好解。

否则使蚂蚁s 从起点0i 出发,用)(s L 表示蚂蚁s 行走的城市集合,初始)(s L 为空集,m s ≤≤1。

STEP2(内循环)按蚂蚁m s ≤≤1的顺序分别计算。

当蚂蚁在城市i ,若N s L =)(或φ=∉∈)}(,),(|{s L l A l i l ,完成第s 只蚂蚁的计算。

否则N s L ≠)(且φ≠-∉∈=}{)}(,),(|{0i s L l A l i l T ,若以概率T j p T j k k p ij Ti ij ij ij ∉=∈--=∑∈,0,,)1()1(ττ 到达j ,j i j s L s L =⋃=},{)()(;若N s L ≠)(且φ≠-∉∈=}{)}(,),(|{0i s L l A l i l T ,则到达0i ,00},{)()(i i i s L s L =⋃=重复STEP 2。

STEP 3 对m s ≤≤1 ,若N s L =)(,按)(s L 中城市的顺序计算路径程度;若 N s L ≠)(,路径长度置为一个无穷大值(即不可达)。

比较m 只蚂蚁中的路径长度,记走最短路径的蚂蚁为t 。

若 ))(())((W L f t L f <,则)(t L W =。

用如下公式对W 路径上的信息素痕迹加强,对其他路径上的信息素进行挥发。

得到新的1),(+=k k k ij τ,重复步骤STEP 1。

在STEP 3 中,挥发因子k ρ对于一个固定的1≥K ,满足K k k k k ≥+-≤,)1ln(ln 1ρ,并且∞=∑∞=1k k ρ,经过k 次挥发,非最优路径的信息素逐渐减少至消失。

②信息素的更新1 信息素挥发(evaporation ) 信息素痕迹的挥发过程是每个连接上的信息素痕迹的浓度自动逐渐减弱的过程,由)()1(k ij k τρ-表示,这个挥发过程主要用于避免算法过快地向局部最优区域集中,有助于搜索区域的扩展。

2 信息素增强(reinforcement )增强过程是蚁群优化算法中可选的部分,称为离线更新方式(还有在线更新方式)。

这种方式可以实现由单个蚂蚁无法实现的集中行动。

也就是说,增强过程体现在观察蚁群(m 只蚂蚁)中每只蚂蚁所找到的路径,并选择其中最优路径上的弧进行信息素的增强,挥发过程是所有弧都进行的,不与蚂蚁数量相关。

这种增强过程中进行的信息素更新称为离线的信息素更新。

一般蚁群算法的框架和GBAS 基本相同,有三个组成部分:蚁群的活动;信息素的挥发;信息素的增强;主要体现在前面的算法中步骤2和步骤3中的转移概率公式和信息素更新公式。

3.粒子群算法①基本思路(1)算法介绍:每个寻优的问题解都被想象成一只鸟,我们也称为“Particle ”粒子。

所有的Particle 都有一个fitness function 以判断目前的位置之好坏。

每一个Particle 必须赋予记忆性,能记得所搜寻到最佳位置。

每一个Particle 还有一个速度以决定飞行的距离与方向。

(2)算法流程:1.Initial :将群族做初始化,以随机的方式求出每一Particle 之初始位置与速度。

2.Evaluation :依据fitness function 计算出其fitness value 以作为判断每一Particle 之好坏。

3.Fine the Pbest :找出每一Particle 到目前为止的搜寻过程中最佳解,这个最佳解我们将之称为Pbest 。

4.Fine the Gbest :找出所有Particle 到目前为止所搜寻到的整体最佳解,此最佳解我们称之为Gbest 。

5.Update the Velocity :依据式(1) 与式(2) 更新每一Particle 之速度与位置。

6.回到步骤2. 继续执行,直到获得一个令人满意的结果或符合终止条件为止。

②速度更新函数其中,Vid :每一Particle 在第d 维之速度i :Particle 之编号d :维度w :Inertia Weightc1、c2:学习常数Rand():一介于0至1的随机数Pid :每一Particle 到目前为止,所出现的最佳位置Pgd :所有Particle 到目前为止,所出现的最佳位置xid :每一Particle 目前之所在位置更新:粒子群内的每一个粒子点更新如下公式:id id id V x x +=,更新之后的点也必须限定在规定范围内。

相关主题