1、 21 Isight优化技术(Optimization) 一、 iSIGHT对优化问题的表达 不同的优化软件对优化问题的表达方式是不一样的,iSIGHT对优化问题表述如下: 目标: )(XFSFWMinimize ii ii 满足 等式约束: 0)arg)( =kkk SFWetTXh ;k1,K 不等式约束: 0)( XgLBSFW jjj 0)( UBXgSFW jjj ;j1,L 设计变量: 对于整型和实型数 SFUBSFtParameteriSIGHTInpuSFLB 对于离散型参数是输入参数集合S 其中,SF规模因子,默认值为1.0; W权重因子,默认值为1.0; 有关上述表达方式的
2、几点说明: l 所有问题在iSGHT内部都被转换成一个加权的最小化问题。目标包含有很多iSIGHT参数,目标根据重要程度都有相应的权重因子和规模因子。如果一个目标是最大化,那么就在它的权重因子前加负号。 l 如果你的优化技术是一个基于罚函数的技术,那么最小化问题就象上面所述,只需在后面加上惩罚项即可。 l 所有的等式约束h(x)都有一个范围, ViolationtraualityConsDeltaForEq int ,在这个范围内约束不认为是冲突的。默认的范围是0.00001。每个约束也有权重因子和规模因子。 l 所有不等式约束 g(x)都认为是非线性的。如果一个输出参数有上下边界,那么iSI
3、GHT就会自动转换成两个不等式约束。每个约束也有权重因子和规模因子。 l iSIGHT设计变量X,可以是实数、整数或离散变量。如果X是实数和整数变量,那么X值必须满足上下边界条件,如果没有边界条件,默认值是1E15。这个默认值也可以通过参数对话框进行修改。 l iSIGHT 按照每个设计变量都有上下边界来进行计算,如果变量是离散的,iSIGHT需要设计变量的值在给定的约束集合内,ISIGHT内部默认的上边界是n1,下边界是0,其中n为系统允许值,这个值可以通过API函数进行修改。 二、 优化技术的分类 22 本部分对iSIGHT中每种优化技术进行简要的介绍。 iSIGHT中的优化技术分为三类:
4、 l 数值型优化技术(Numerical Optimization Techniques) l 探索型优化技术(Exploratory Techniques) l 专家系统技术(Expert System Techniques) 这些优化技术如下所示: 1数值型优化技术 数值型优化技术通常假定参数空间是单峰的、凸的和连续的,该软件中使用了如下的数值型优化技术: l ADS (Automated Design Synthesis)-based Techniques l 外点罚函数法(Exterior Penalty) l 修正可行方向法(Modified Method of Feasible D
5、irections) l 连续线性规划 (Sequential Linear Programming) l 广义既约梯度法(Generalized Reduced Gradient - LSGRG2) l Hooke-Jeeves直接搜索法(Hooke-Jeeves Direct Search Method) l 可行方向法 CONMIN(Method of Feasible Directions CONMIN) l 混合整型优化 MOST(Mixed Integer Optimization MOST) l 连续二次规划法 DONLP(Sequential Quadratic Program
6、ming DONLP) l 连续二次规划法 NLPQL(Sequential Quadratic Programming NLPQL) l 逐次逼近法(Successive Approximation Method) 数值型搜索技术又可以分成如下两类: (1)直接法(Direct methods) 直接法在搜索过程中直接处理约束。 直接法包括: l 广义梯度下降法(Generalized Reduced Gradient - LSGRG2) l 可行方向法 CONMIN(Method of Feasible Directions CONMIN) l 混合整型优化 MOST(Mixed Inte
7、ger Optimization MOST) l 修正可行方向法(Modified Method of Feasible DirectionsADS) l 连续线性规划 (Sequential Linear Programming- ADS) l 连续二次规划法 DONLP(Sequential Quadratic Programming DONLP) l 连续二次规划法 NLPQL(Sequential Quadratic Programming NLPQL) l 连续逼近法(Successive Approximation Method) (2)罚函数法(Penalty methods)
8、罚函数方法和直接法不同,他们并不直接处理约束。罚函数法通过给目标函数增加一个惩罚项将约束问题转换成无约束问题进行处理: )()()( xPxFx += 转换出的无约束问题就是使 )(x 最小化或最大化。 对于罚函数法的效率和鲁棒性和直接法比较的研究显示,直接法更加健壮,只需要很少的函数评估。而当你使用一个罚函数法的时候,函数评估的次数会成倍增加。 罚函数法包括: l 外点罚函数法(Exterior Penalty) l Hooke-Jeeves直接搜索法(Hooke-Jeeves Direct Search Method) 23 2探索型优化技术 探索型优化技术避免了集中在局部区域的搜索,这些
9、技术遍历整个参数空间搜索全局最设计优点。iSIGHT中这种技术有: l 遗传算法(Genetic Algorithm) l 批处理遗传算法(Genetic Algorithm with Bulk Evaluation) l 模拟退火算法(Simulated Annealing) 3专家系统技术 专家系统技术使优化沿着用户定义的方向进行改变,改变哪一项,怎么改变,什么时候改变,这些都由用户自己定义。iSIGHT 中这样的技术为有指导启发式搜索方法(Directed Heuristic SearchDHS)。如果用户知道输入怎样影响输出结果的话,这种方法效率很高。 三、 数值型优化技术 下面对每种
10、优化技术进行一下介绍。 1外点罚函数法(Exterior Penalty) 外点罚函数法广泛的用于含有约束条件的优化问题。在处理含有约束条件的优化问题时,借助惩罚函数把约束问题转化为无约束的问题,进而用无约束的最优化方法求解。实现这一目标的途径是由目标函数和约束函数组成辅助函数来完成的。如果该问题存在最优解,其优化结果通常是可信的,并且相对来说更容易找到真正的最优解。当惩罚因子趋向( pg )时,无约束优化问题的最优解趋向一个极限点,这个极限点就是原问题的最优解。 外点罚函数法主要有如下特性: l 广泛地用于约束优化问题; l 容易编程,使用无约束优化来解决问题; l 可信赖,如果相对最小值存
11、在,相对容易找到真正的最优值; l 能从不可行区域内逼近最优值,在从罚函数参数 pg 到的极限下是可行的。 外点罚函数法的公式表达如下: 2修正可行方向法(Modified Method of Feasible Directions) 修正可行方向法是直接数值优化技术中的一种,主要用来解决约束优化问题。该方法可以快速地获得最优解。约束可以是等式的,也可以是不等式的,并且获得最优解时可以以很高的精度满足约束条件。该方法有如下特点: l 能快速得到一个优化设计; l 能处理不等式和等式约束; l 在优化中能十分准确地满足约束。 下面是修正可行方向法的解决问题步骤: 1. 0,0 xxq = 2.
12、1+= qq 24 3. 求 )(xF 和 )(xg j 的值; Mj ,2,1= 4. 确定临界的约束集,J 5. 计算 )(xF 和 )(xg j , Jj 6. 确定可用和可行的搜索方向, qS 7. 进行一维搜索寻找 *a 8. 令 qqq Saxx += *1 9. 检查收敛性;如果不收敛转到第2步 修正可行性方向法技术用以下几种方法之一来寻找每一次迭代的搜索方向: (1)如果没有约束起作用或冲突,那么使用无约束方法中的变梯度法。 (2)如果有任何约束起作用并且没有约束冲突,使用修正可行性方向法: 最小化 qq SxF )( 1 满足: JjSxg qqj ;0)( 1 1 qq S
13、S (3)如果一个或多个约束冲突,使用修正可行方向法: 最小化 b qq SxF )( 1 满足: JjSxg jqqj + ;0)( 1 b 1 qq SS 其中,J是起作用和冲突的约束的集合 是一个大的正数 j 是约束的一个偏离因子 对于起作用的约束 0= j 对于冲突的约束 0 j 起作用和冲突的约束如下确定: 如果 CTMINxgCT j )( , )(xg j 是起作用的 如果 CTMINxg j )( , )(xg j 冲突 25 图1 起作用和冲突约束识别 3连续线性规划 (Sequential Linear Programming) 连续线性规划法首先将目标函数和约束条件在起始
14、设计点 0X 处以一阶泰勒级数展开,将原问题转化为线性规划问题。这样就可以用线性规划中的算法进行求解,得到下一次的设计点 iX 。一般说来,这个新的设计点 iX 比起始设计点 0X 更接近原问题的最优点。在下一次的迭代中将原问题在 iX 处以一阶泰勒级数展开。如此反复,以线性规划问题去近似非线性规划问题,希望每次迭代得到的新的设计点都比前一个设计点更接近原问题的最优点。而在新的设计点上的近似子问题,也愈来愈接近原非线性问题最优点的附近区域。最终线性规划问题的最优点可以以很高的精度接近原问题的最优点。 该方法主要解决约束优化问题,编程简单,已经在很多实际工程设计问题中得到了应用。该方法有如下一些
15、特点: l 容易规划并且可应用于许多实际工程设计问题中; l 在选择移动界限和这些界限中的缩减因子以有效地获得最优值方面较为困难。 以下是执行连续线性规划的步骤: 1. 使目标和约束函数线性化: dxxFxFxF *)()()( 00 + Jjdxxgxgxg jjj + ;*)()()( 00 0xxdx = 2. 通过线性规划方法或其他优化器来解决这个线性逼近问题。 3. 重新线性化,转换逼近上的移动界限,并且重复到收敛点。 4. 移动线性逼近上的界限。 26 图2 连续线性规划 4广义既约梯度法(LSGRG2) 这种技术使用广义既约梯度法解决约束非线性优化问题。既约梯度法是目前求解非线性
16、优化问题的最有效的方法之一。这种方法使用一种搜索方向,在这个方向上对于一些小偏移所有约束都仍然起作用。同时这种方法通过消去某些变量在降维空间中的运算,能够较快的确定最优解,可用来求解大型的问题。 广义既约梯度法有如下特性: l 适合于非线性的设计空间; l 不适合不连续的设计空间; l 在初始设计点周围遍寻局部空间; l 依照起作用的约束来优化设计; l 直接处理不等和等式约束。 LSGRG2用一般既约梯度算法来解决约束非线性优化问题。算法用一条使得活动约束仍在小偏移上起作用的搜索路径。广义既约梯度方法是对原始的既约梯度法的扩展。这个扩展包括在每一个不等约束上加上一个松弛变量: 最小化 )(X
17、F 满足: 0)( =+ nXjXgj mj ,1= 0)( =Xhk lk,1= XUiXiXLi + nXj mj,1= 这里n是设计变量的数量,m是不等约束的数量,而k是等式约束的数量。前面的方法需要加上m个非负松弛变量,每个不等约束一个,所以总共是n+m个设计变量。 广义既约梯度法的基本概念是对于每一个等式约束,我们都可以定义一个相关变量,从而减少独立变量的数量。假定开始等式约束是可行的,对于判定变量的任何改变,等式约束27 都必须保持可行性。从这个需求出发,GRG 算法一开始就寻找一个判定变量的搜索方向,然后,对于在这个搜索方向上的每一个将要做的移动,更新判定变量的向量使得约束仍然可
18、行。 如果起始设计不可行,那么第一步就是要获得一个其后能一直保持可行性的可行点。这被称为用LSGRG2优化的第一个阶段。第一个阶段的目标函数是约束的偏离值之和,或是,真实的目标的一部分。这个优化阶段会以发出问题不可行或是找到一个可行的解决方案的消息结束。如果是不可行的消息,程序可能是卡在一个阶段一的局部最小值上了,而问题事实上是有可行解的。如果你猜测是这种情况的话,建议的补救方法是选择一个不同的起始点重新试一试。第二阶段从一个可行方案开始,这个可行方案或者是由第一阶段找到的,或者是用户提供的一个可行方案,然后优化由用户提供的目标函数。它将产生一个可行点的序列,这个序列的目标值一般来讲比开始更好
19、。 5Hooke-Jeeves直接搜索法(Hooke-Jeeves Direct Search Method) Hooke-Jeeves直接搜索法开始于一个估计点,结束于一个局部最小点。它不要求目标函数 ()f 是连续的,因为该算法不使用目标函数 ()f 的导数,所以目标函数不需要是可微的。这种方法有一个收敛参数rho, 它可以让你决定最大收敛概率情况下所需的函数计算的次数。 这种优化技术主要有以下特性: l 不需要连续的目标函数; l 因为这种算法没有用到 ()f 的导数,所以函数不需要被微分; l 这种技术有一个收敛参数,rho,它允许用户决定函数评估的次数。 下面是Hooke-Jeeve
20、s直接搜索法的步骤: 1. 0,0 xxq = 2. 1+= qq 3. 寻找一个点,xq,相当于非线性函数 )(xqf 的局部最小值,x 是一个向量,)(xqf 是一个标量。 6.可行方向法CONMIN 可行方向法-CONMIN是一种用来解决约束优化问题的直接数值优化技术。该方法可以直接处理非线性的搜索空间。该方法每次迭代都找到一个搜索方向并沿着这个方向进行一维搜索。它可看作是无约束下降算法的自然推广,其典型策略是从可行点出发,沿着下降的可行方向进行搜索,求出使目标函数值下降的新的可行点。算法的关键步骤是选择搜索方向和确定沿着该方向移动的步长。用数学表达式表示就是: iii ctionSea
21、rchDireADesignDesign *1 += 其中,下标i表示迭代次数,A是一维搜索过程中所确定的常量。 该方法在降低目标函数值的同时维持了解的可行性,而且效率较高。可行方向法目前不能处理等式约束的问题。这种技术有如下一些特点: l 能快速地得到优化设计; l 能处理不等式约束; 28 l 在优化中能十分准确地满足约束。 以下是可行方向法-CONMIN的算法步骤: 1. 0,0 xxq = 2. 1+= qq 3. 求 )(xF 和 )(xg j 的值; Mj ,2,1= 4. 确定临界的约束集,J 5. 计算梯度: )(xF 和 )(xg j , Jj 6. 确定可用和可行的搜索方向
22、, qS 7. 执行一维搜索来寻找a* 8. 令 qqq Sxaxx *1 += 9. 检查收敛性;如果不收敛转到第2步 可行方向法-CONMIN技术使用了以下几种方法之一来寻找每个迭代中的搜索方向: (1)如果没有约束起作用或冲突,那么使用无约束方法中的变梯度法 (2)如果有任何约束起作用并且没有约束冲突,使用改进的可行性方向法: 最小化 qq SxF )( 1 满足: JjSxg qqj ;0)( 1 1 qq SS (3)如果一个或多个约束冲突,使用可行方向法-CONMIN: 最小化 b qq SxF )( 1 满足: JjSxg jqqj + ;0)( 1 b 1 qq SS 其中,J
23、是起作用和冲突的约束的集合 是一个大的正数 j 是约束的一个偏离因子 对于起作用的约束 0= j 对于冲突的约束 0 j 起作用和冲突的约束如下确定: 如果 CTMINxgCT j )( , )(xg j 是起作用的 29 如果 CTMINxg j )( , )(xg j 冲突 7混合整型优化MOST 混合整型优化方法-MOST首先认定所给的设计问题是连续的,并使用连续二次规划法得到一个初始的峰值。如果所有的设计变量都是实数型的,优化过程停止。否则,对每一个非实数型参数寻找一个最近的设计点,该点满足非实数型参数的限制条件。这些限制条件被作为新的约束加进来,然后重新优化,产生一组新的峰值。这些峰
24、值作为新的迭代的起始点。在这个过程中,连续的非实数型参数被作为重点考虑的对象,直到所有的限制条件都得到满足,优化过程结束。 混合整型优化-MOST 技术起源于一个优化包,MOST(Multifunctional Optimization System Tool)。MOST结合了用来解决实值问题的连续二次规划优化、处理整数型和离散型参数的一个分歧定限法(branch-and-bound)外部回路、处理多目标问题的一系列标准程序、和让用户提供梯度的能力。这个优化包的iSIGHT界面支持除了多目标优化问题之外的所有特性( iSIGHT只处理单目标问题)。这些特性的组合使这种技术类似于连续二次规划-D
25、ONLP或连续二次规划-NLPQL和逐次逼近法的组合。 这种技术从忽略设计变量的所有整数型和离散型限制开始,并且在连续设计空间上应用了 SQP。开始时提出一个优化值的初始值X 。如果所有的设计变量事实上是实数型的,那么立刻终止并返回X 作为解决方案。如果一些设计变量被限制为整数型或是离散(数值)型,那么X 很可能不能满足那些限制。在这种情况下,这种技术会应用一个分歧定限法搜索来找到适合限制的点。 分歧定限过程开始时独立地考虑整数型和离散型的设计变量。典型的情况下,设计变量v的值 vx 会处在两个允许的值当中(例如,如果v的值必须是个整数,对于一些 N 来说是N 和N+1)。这个技术通过把 vx
26、 放置在这些允许的值当中来构建两个设计点 x 和 x ,评估这两个点,并且不管哪一个生成更好的目标值都先将它们放在一边。在这个分支过程结束的时候,会积累下一个满足一个整数形或离散形变量限制的一个新序列。然后,将每个分支点依次处理,通过应用每个整数型或离散型的值作为一个新的输入约束来限定问题,并且重新进行完整的分歧定限法循环,从分支点开始。 当每一个分支点被评估时,都会产生下一些分支点,但那些点会违反更少量的整数型或离散型限制。最后,会找到一个或多个满足所有限制的点,这就是最优值。 注意:iSIGHT 数据库文件会记下所有被评估过的设计。因为在大部分的优化过程(例如,在所有 SQP 阶段的有限差
27、分计算期间)中忽略了整数型和离散型的限制,所以数据库中的大部分设计点都不会在规定的设计空间中。为了确定真实的解决方案,用户必须首先过滤数据库,只保留处在设计空间中的点。 8.连续二次规划法DONLP DONLP对凸规划问题有着较强的处理能力,是基于 K-T条件的优化方法。DONLP是对Lagrange函数的Hessian矩阵的Pantoja-Mayne更新,是对armiji-type 步长算法的改进。其对变量上下界的处理采用类似于梯度法的方式。 连续二阶规划-DONLP(DO NonLinear Programming)技术有以下特点: l 对凸形问题很有效; l 公式表达基于Kuhn-Tuc
28、ker优化条件; l DONLP使用了Lagrangian的Hessian矩阵形式的Pantoja-Mayne的修正版本,是对armiji-type 步长算法的改进。 30 DONLP优化技术的数学问题表达如下所示: 数学表述 代表值 寻找 ),( 21 Nxxxx = 设计变量 使得 )(xF 最小或最大 目标函数 ef mjxg ,1;0)( = 不等约束 mmjxg ef ,1;0)( += 相等约束 ul xxx 边界约束 搜索方向子问题用以下公式解决: 最小化 SBSSxkFSQ kTT 21)()( += 满足 LkxkhSTxkh kk ,.,2,1;0)()( =+ 0)()(
29、 =+ xkgSTxkg AkAk 这里的运行设置确定为: ,.,2,1(: MEjjAk 和 )(xkgj 0 执行的方法是一个连续等式约束的二次算法,如果万一是不规则约束(例如,在运行设置中的线性相关梯度)也可以选用一个完整的系统化的混合约束子问题。 9.连续二次规划法NLPQL NLPQL用来解决带有约束的非线性数学规划问题,并假设目标函数和约束条件是连续可微的。二次连续规划法(SQP)是NLPQL的核心算法。将目标函数以二阶泰勒级数展开,并把约束条件线性化,原非线性问题就转化为一个二次规划问题,通过解二次规划得到下一个设计点。然后根据两个可供选择的优化函数执行一次线性搜索,其中Hess
30、ian矩阵由BFGS公式更新,该算法很稳定。 这个技术最主要的优点是容易和一个非常健壮的算法一起使用。 NLPQL优化技术的数学公式表达如下所示: 数学表达 代表值 寻找 ),.,( 21 Nxxxx = 设计变量 使得 )(xF 最小 目标函数 ej mjxg ,.,1;0)( = 不等约束 mmjxg ej ,.,1;0)( += 等式约束 ul xxx 边界约束 SQP方法是解决处于以下一些假定下的平滑非线性优化问题的标准通用工具: 31 l 优化问题不是很大; l 函数和梯度可以用非常高的精度来评估; l 平滑和容易缩放的优化问题; l 没有能被开发的深一层的模型结构(问题的数学模型)
31、。 SQP方法的数学收敛性和数值表现属性现在非常容易理解,根据已有的研究表明,SQP方法的理论收敛性在以上的假定下优于其他的数学规划算法。 SQP的关键问题是如何逼近二阶信息来获得一个快速的最后收敛速度。因而我们通过一个所谓的类牛顿矩阵 kB 定义了一个朗格拉日函数 ),( uxL 的二阶逼近和一个 ),( kk uxL 的Hessian形式矩阵的逼近。然后,我们可以获得二次规划的子问题: 最小化 dxfdBd TkkT )(21 + , nRd ; ,.,1,0)()( ekjTkj mjxgdxg =+ ,.,1,0)()( ekjTkj mjxgdxg =+ .kukl xxdxx 为了
32、让算法更加稳定,尤其是如果从一个糟糕的起始猜测点 0x 开始,而要保证它能达到全局收敛,所以我们在 NLPQL中应用了一个附加的线性搜索。只有当 1+kx 满足一个关于二次规划子问题的解决方案 kd 的下降性,才会执行一个步长计算 kkkk dxx a+=+1 来进行一个新的迭代。按照Schittkowski的方法,一个联立线搜索需要因数逼近和一个扩张的朗格拉日价值函数来确定线搜索的参数。此外,有一些可靠的安全措施也需要加以注意,以确保线性化的约束没有相互矛盾。 矩阵 kB 的更新在SQP 中可以用无约束优化中的标准技术来执行。在 NLPQL中,应用了 BFGS 方法。该方法是从单位矩阵开始的
33、一个简单二阶修正,并且只需要微分向量kk xx +1 和 ),(),( 1 kkkk uxLuxL + 。在一些安全措施的保证下,所有的矩阵 kB 都可以保证是正定的。 SQP方法的最吸引人的特征之一是在从 *1 xxxx kkk + g 所得到的解决方案的临近区域内的超线性收敛速度。在这里, kg 是收敛至零的正数序列,而 *x 是一个优化解决方案。 为了了解这个收敛的特性,我们用朗格拉日函数的Hessian行列式来代替 kB ,而且只考虑等式约束。然后就很容易看出SQP方法在处理带有n+m个等式的非线性系统时和牛顿方法是一样的,而且这个非线性系统有n+m个由Kuhn-Tucker条件带来的
34、自变量。这个结论同样可以扩展到不等约束的情况中。这样我们就立即可以看到二次收敛性的特性了。 10.逐次逼近法(Successive Approximation Method) 32 逐次逼近法可以把非线性问题转化为线性问题,再采用稀疏矩阵法和单纯型法求解线性问题。如果其中一个变量定义为整型,单纯型法可通过分歧定限法反复迭代直到找到最优点。逐次逼近法是在M. Berkalaar and J.J. Dirks提出的LP-SOLVE方法基础上发展起来的。 一个非线性问题可以规定为一个针对逐次逼近方法的线性问题。线性问题在 iSIGHT中通过drive_lpsolve.c驱动器来自动地进行公式化表达。
35、任何数量的变量都可以规定为实数值、整数值或离散值。逐次逼近法是一个通用的程序,其中除了用到针对线性问题的稀疏矩阵法,还用到一个单纯型法。如果其中一个变量定义为整数型,那么单纯型法要用一个分歧定限法重复迭代直到找到理想的优化方案。 输入文件包括一系列的代数表达式和类型说明: l 目标函数。目标函数是由分号结束的一个变量的线性组合。对象函数之前标明“max”或“min”表明函数是最大化或是最小化。缺省的设置是函数最大化。 l 约束。一个约束名以冒号结束,设计变量的线性组合和常数以分号结束。关系运算子可以是 =和之间没有语义差别。标记表明这个约束是等式约束或是不等约束。 l 变量声明。设计变量被声明
36、为实数型或是整数型。变量声明应该用以下形式(变量之间以逗号隔开): + varint 。 下面的等式显示如何用逐次逼近方法将一个非线性问题转化为一个线性问题。 下面等式为一个非线性问题: 最大化或最小化 )(xF 满足: Mjxg j ,.,2,1;0)( = Lkxhk ,.,2,1;0)( = x为整数型或是实数型 在这里, ix 为设计变量, ni ,.,1= , jg 是不等约束, kh 是等式约束。 下面是被转化为一个线性问题的非线性问题: 最大化或最小化: 满足: 33 其中, ix 为整数型或者是实数型,ix() 是敏度导数信息。 图3 iSIGHT中的逐次逼近法 有时优化问题在
37、数值上是不稳定的,并且无法避免的舍入错误会导致逐次逼近法中途失败。要给这个问题一个通用的解决办法是很困难的,较明智的做法是在问题中按数量级通过适当的缩放保持所有的值。 数值优化技术的优点 下面是数值优化技术的主要优点: l 数值优化遍寻当前设计点周围的区域。如果这个区域是连续且单峰的,数值优化就会在最速上升的方向上快速有效地移动。这表明数值优化技术能很快地获得邻近的最优值。精确的最优值在工程设计中并没有什么意义,因为分析属性(例如材料特性、负载和边界条件)往往都是不精确的。另外,进行详细分析时,数值优化技术尽可能少的使用了函数评估。每个设计方案的一次分析都对应着一个函数评估。在详细分析中的一个
38、函数评估可能非常耗时。 l 数值优化有着可靠的数学基础。在数学能证明在给定条件下技术的收敛性。 l 在工程设计中数值优化有着普遍应用。 数值优化技术的缺点 下面是数值优化技术的主要缺点: l 数值优化不能利用已有的工程经验或是领域知识。即使设计工程师可能知道几个特殊参数之间的物理关系,但数值优化无法利用这个信息。如果分析梯度没有用,一个数值优化器能用有限差技术计算出梯度。仿真程序的许多时间被用来找到一些工程师们已经知道的东西。 l 例如,在飞行器引擎涡轮设计中给定了100个设计变量,用前面提到的差分技术需要运行101次仿真代码才能找到搜索方向。一个新的搜索方向要花费100次附加的方针代码运行才
39、能再计算出来。即使工程师知道,当一定情况下,有七个特殊的输入变量会改变。而数值优化技术无法利用这个知识,而因此必须运行100次仿真程序,而不是运行工程师已经知道的七次。 l 数值优化技术在问题的公式表达上强加了一些约束。数值优化技术需要缩放设计变量和34 约束,且必须要删掉额外和多余的输出约束,离散的设计变量必须要转化为连续的参数类型。对设计工程师来说,要实现这些要求是很耗时和令人不快的。 l 数值优化技术也需要大量的计算能力来运行仿真程序。对每一个优化迭代来说,如果分析梯度无效,那么就必须对每一个设计变量计算梯度。如果有100个设计变量,仿真代码就必须要运行100次直到确定出搜索方向。如果运
40、行一次仿真代码需要30分钟,那么就要花费两天的时间来计算第一个搜索方向。另外,计算搜索方向要假定设计变量都是独立的。而这个假定并不一定成立。大量的设计变量会降低数值优化技术找到最优值的能力。性能的降低有一部分应归于前面提到的差分技术的逼近错误的累积。 四、 探索型优化技术 1遗传算法(GA) 自从生物进化理论被人们接受之后,关于进化的研究得到了很大的发展。虽然对进化的机制还没有完全搞清楚。但是进化的一些特征已经被人们所认识。生物学上的一些进展和研究成果在优化问题上的渗透就是进化计算。 遗传算法是Holland在60年代提出的,其同事和学生进一步发展了该算法。由于该算法简单、易用,且对很多优化问
41、题能够较容易的给出令人满意的解,所以得到了广泛的应用,其影响也越来越大。进化策略、进化规则、遗传算法构成了进化计算的主要框架。 遗传算法主要借助生物进化过程中“适者生存”的规律,模仿生物进化过程中的遗传繁殖机制,对优化问题解空间的个体进行编码(二进制或其他进制),然后对编码后的个体种群进行选择、交叉、变异等操作,通过迭代从新种群中寻找含有最优解或较优解的组合。适应度函数是评判解个体优劣的唯一标准。遗传操作根据适应度的大小决定个体繁殖的机会,适应度值大的个体得到繁殖的机会大于适应度值小的个体,从而使得新种群的平均适应度值高于旧群体的平均适应度值。 经过多年的研究,遗传算法有许多种形式和变形,这里
42、介绍的是标准的遗传算法。下面是遗传算法中的用到的主要概念: 1)基因链码 生物的性状是由生物的遗传基因的链码决定的。使用遗传算法时需要把问题的解编码成一个基因链码。假设整数 1552 是问题的一个解,我们就可以用 1552 的二进制形式1100001000 来表示这个解所对应的基因链码,其中每一位代表一个基因。每个基因链码也被称为一个个体,有时也称作染色体。 2)种群 一个种群是若干个个体的集合。因为每个个体代表了问题的一个解,所以一个种群就是问题的一些解的集合。 3)交叉 许多生物体的繁衍是通过染色体的交叉完成的。在遗传算法中使用了这个概念,把交叉作为一个操作算子。该算子的实现过程如下: 选
43、择群体中的两个个体,以这两个个体为双亲作基因链码的交叉,从而产生两个新的个体作为他们的后代。简单的交叉方法是:随机地选取一个截断点,将双亲的基因链码在截断点切开,并交换其后半部分,从而组成两个新个体。如下图所示: 双亲 后代 0110|11000110 1000|10011110 y x y x 1000|11000110 0110|10011110 35 交叉算子是以一定的交叉概率发生的。 4)变异 在生物的进化过程中变异是一个重要的步骤。通过在染色体上的某些基因位置产生突变使得新产生的个体与其他个体有所不同。在遗传算法中变异是一个重要的操作。该算子的实现方法如下: 对于群体中的某个个体,即
44、某个基因随机选取某一位,将该位的基因翻转(0改为1,1改为0)。如下图所示: 5)适应度 生物体对环境的适应程度的不同而表现出不同的生命力。因为每个个体对应问题的一个解,每个解对应一个函数值。所以函数值越小则表明个体对环境的适应度越高。 6)选择 选择的目的是为了从当前的种群中选出优良的个体,使他们有机会作为父代产生后代个体。判断个体优良与否的准则就是各自的适应度值。作为一种算子,选择操作在遗传算法中有多种实现方式,其中最简单的一种方法就是采用适应度比例法来进行选择。具体地说,就是首先计算群体中所有个体适应度的总和,再计算每个个体的适应度所占的比例,并以次作为相应的选择概率。有时也采用轮盘法。
45、 遗传算法的关键步骤: (1)令进化代数g0,并给出初始化群体P(g); (2)对P(g)中的每个个体估值,计算其适应度; (3)从P(g)中选择两个个体,并对这两个个体完成交叉和变异操作,得到新一代群体P(g1)。令gg1; (4)如果终止条件满足,则算法结束。否则转到步骤(2)。 2批处理遗传算法(Genetic Algorithm with Bulk Evaluation) 在优化过程中,优化技术产生一系列设计点,然后依次把他们传送给仿真代码进行评估,评估结果沿着相反的路径传送给相应的优化技术。在遗传算法中总是保持一个设计点的种群,每次循环都要产生新的种群,新种群中的个体都需要依次分派给
46、iSIHGT进行评估,一个一个地进行。设计点的评估是十分耗时的,这样严重影响了整个优化过程的进行。如果使新种群中的个体评估能够并行地执行,那么就能大大提高优化的效率,批处理遗传算法就是这样产生的。该算法可以并行地、独立地评估新种群的所有设计点。标准的iSIGHT并行执行能力是有限的,不能够直接利用这种方法解决问题。该方法通过提供一种叫作批处理(Bulk Evaluation)的方法绕过了这个限制。 在批处理遗传算法中,所有的新种群中的个体作为一个整体传送给iSIGHT。MDOL再把它们传送给一个特殊的仿真程序,该程序可以同时评估多个设计点,评估结果作为一个整体再按原路返回给iSIGHT中的遗传
47、算法程序,遗传算法程序再将这些评估结果转化为一个评估过的群体。也就是说,基本的计算路径是不变的,只是计算单位以群体代替了个体。 3模拟退火算法(SA) 模拟退火算法是模拟金属退火的物理过程得到的。在冶金业,退火是强化金属的一种方法。金属加热到一定的温度就会融化,这时分子可以自由地移动,如果金属在冷却槽中以特定的速率进行冷却,允许分子在较低的能态进行稳定,这样就产生了特定的晶格。 模拟退火算法通过模拟退火过程,将组合优化问题与统计力学中的热平衡问题类比,可找到全局(或近似)最优解。其基本思想为:把每种组合状态 S 看成某一物质系统的微观状100010011110 100010010110 36
48、态,而将其对应的目标函数C(S)看成该物质系统在状态S下的内能;用控制参数T类比温度,让T从一个足够高的值慢慢下降,对每个T用 Metropolis抽样法在计算机上模拟该体系的热平衡态,即对当前状态S作随机扰动以产生一个新状态s,如果C(s)C(s)则接受s为下一状态,否则以概率e-(c(s)-c(s)接受。经过一定次数(Markov链长)的搜索,认为系统在此温度T下达到平衡,则降低温度T再进行搜索,直到满足结束条件。模拟退火算法的改进算法有加温退火法、记忆模拟退火法等。如果一个问题潜在地存在大量解的话,该方法能够以最小的成本获得可行解。模拟退火算法在iSIGHT中称为自适应模拟退火算法。 模拟退火算法作为一种优化方法,从初始点开始每前进一步就对目标函数进行一次评估,只要函数值下降,新的设计点就被接受,反复进行,只到找到最优点。函数值上升的点也可能被接受,这样能够避免找到的是局部最优点。是否接受函数值上升点是依据Metropolis 判据决定的,它是温度的函数,温度高则更容易接受。由于该算法对目标函数的要求很松,所以在非二次面情况下是很稳定的。 模拟退火算法和遗传算法有很多相似之处,他们都需要从旧的设计点通过变异产生新的设计点。模拟退火算法比遗传算法简单,因为它每次在搜索空间中只检查一个设计点,而遗传算法检查一组设计点(一个种群)。除此之外,模拟退火算法的参