资源描述
2021-12-4CO-PSO1PSO求解约束优化问题求解约束优化问题1)约束优化问题(Constrained Optimization, CO) 2)CPSO3) 函数扩展技术2021-12-4CO-PSO2构造算法构造算法为了简化CO问题的寻优过程,通常可采用如下的思路去构造算法:将约束优化问题转化为无约束优化问题、将非线性规划问题转化为线性规划问题、将复杂问题转化为简单问题。 2021-12-4CO-PSO3约束优化问题描述约束优化问题描述2021-12-4CO-PSO4约束优化问题的求解难点约束优化问题的求解难点(1) 优化曲面的复杂性。复杂的优化曲面对约束优化带来的求解难点类似于无约束优化问题, (2) 不可行域的存在性。约束的存在,导致决策 变量的搜索空间产生了不可行域。 (3) 满足约束与优化目标的不平衡。2021-12-4CO-PSO5求解约束极值问题的传统方法求解约束极值问题的传统方法可行方向法(Feasible Direction)、梯度投影法(Gradient Projection Method)、约束集法(Active Set Method)、罚函数法(Penalty Function Method)等等。这些方法各有不同的适用范围及局限性,其中大多数方法需要借助问题的梯度信息,要求目标函数或约束条件连续可微,并且常常为满足严格的可行性要求而付出很大的计算代价。2021-12-4CO-PSO6约束优化问题的求解思路约束优化问题的求解思路2021-12-4CO-PSO72.智能约束处理技术智能约束处理技术1)无约束化处理 罚函数法是最常用的约束处理技术,其基本思想是通过序列无约束最小化技术(Sequential Unconstrained Minimization Technique, SUMT),将约束优化问题转化为一系列无约束优化问题进行求解,其原理简单,实现方便,对问题本身没有苛刻要求。2021-12-4CO-PSO8罚函数法罚函数法罚函数法就是将目标函数和约束同时综合为一个罚函数,典型的罚函数如下:2021-12-4CO-PSO9G(x),H(x)常用形式常用形式如何合理设置罚因子,是利用罚函数法求解约束优化问题的一个瓶颈,也是约束优化领域的关键问题。2021-12-4CO-PSO10定常罚函数法定常罚函数法该类方法将罚因子在整个算法流程中设置为定值,但算法通常因数值的单一性而效果不佳。分层罚因子法,采用如下罚函数:2021-12-4CO-PSO112.动态罚函数法动态罚函数法在动态罚函数法中,罚因子的数值是时变的,通常随进化代数增大而增大。理由:在进化初期采用较小的罚因子,算法将有可能对不可行域进行一定程度的搜索;而进化后期采用较大的罚因子,将使算法的搜索集中在可行域,寻找目标更优的可行解。动态罚函数2021-12-4CO-PSO123.退火罚函数法退火罚函数法一种基于模拟退火策略的罚函数法,罚因子每隔一定的进化代数就随温度的减小而增大,到算法后期罚因子则因温度很低而变得很大。该技术可认为是一种特殊的动态罚函数方法,但可通过控制温度来调整罚因子。其中,表示温度,Vi(x)为各约束违反量的函数。2021-12-4CO-PSO134.适应性罚函数法适应性罚函数法 适应性罚函数法,把搜索过程中获得的信息作为反馈,来指导罚因子的调整。2021-12-4CO-PSO14非固定多段映射罚函数法 l通常,所构造的广义目标函数具有如下形式: 其中f(x)代表原目标函数;h(k)H(x)称为惩罚项,H(x)表示惩罚力度, h(k)为惩罚因子。如果在求解CO问题的整个过程中固定不变,则称之为固定罚函数法(Stationary PFM,SPFM);相反则称之为非固定罚函数法(Non-Stationary PFM NSPFM)。通常NSPFM对CO问题的求解结果总是要优于SPFM。 2021-12-4CO-PSO15动态调整l其中其中h(k)可以被动态调整,可以被动态调整,H(x)具体定义如下具体定义如下2021-12-4CO-PSO164.2.2基于排序的方法基于排序的方法基于排序的约束处理技术不再进行无约束化处理,而是通过综合考虑目标函数值和约束违反的程度来对不同候选解进行比较。 1)随机排序法2)改进的随机排序法3)基于可行性规则的方法2021-12-4CO-PSO174. 2. 3基于多目标的方法基于多目标的方法多目标优化问题通常可描述如下: 对于问题的两个可行解x1和x2,若下式满足,则称解x1支配解x2,记作x1x22021-12-4CO-PSO18Pareto最优解最优解 给定一个可行解x,若S中不存在支配x的解,则称x为Pareto最优解或非支配解(non-dominated solution)或非劣解。所有Pareto最优解构成目标空间的Pareto前沿(Pareto front) 。2021-12-4CO-PSO19目标函数和约束函数当作并列的目标函数和约束函数当作并列的多个目标多个目标基于多目标的约束处理技术就是把目标函数和约束函数当作并列的多个目标来处理。譬如,第4. 1节描述的约束优化问题,可转化为式(4-15)描述的多目标优化问题或式(4-16)描述的双目标优化问题。通过采用非支配解的概念来比较解,可使搜索向Pare-to前沿方向前进,其中非支配解集中第一个目标函数值最小且其余目标值均等于0的解就是原约束优化问题 的最优解。2021-12-4CO-PSO202.基于支配的选择技术基于支配的选择技术 一种基于支配的约束处理规则:(1)可行解总优于不可行解;(2)若两个解均可行,则目标值好的解为优;(3)若两个解均不可行且其中一个解为非支配解而另一个解为受支配解,则非支配解为优;(4)若两个解均不可行且它们同为非支配解或受支配解,则约束违反量小的解为优。2021-12-4CO-PSO21基于协进化基于协进化PSO算法的约束优化算法的约束优化 罚函数法求解约束优化问题的性能取决于两个关键环节:(1)罚函数形式的设计。罚函数要综合考虑约束和目标两个方面,因此设计罚函数时应该考虑挖掘不可行解违反约束的信息,设计有效的约束违反函数,合理体现可行解与不可行解在综合评价上的差异。(2)罚因子的选取。罚因子直接平衡约束违反量和目标间的平衡。2021-12-4CO-PSO22一种基于协进化模型的微粒群优化一种基于协进化模型的微粒群优化设计思路归纳为,在设计罚函数方面,不但考虑不可行解违反约束的总量,而且还利用各不可行解违反约束的个数这一信息;在罚因子选择方面,基于协进化模型,把罚因子也作为寻优变量,在搜索过程中利用PSO算法自适应地进行调整,使算法最终不仅获得约束优化问题的优良解,同时还获得适合于问题的最佳罚因子。2021-12-4CO-PSO234. 3 .2 协进化模型协进化模型l 协进化的原理可解释为,算法采用多个种群,或者将一个种群分为多个部分,各种群在各自独立进化的同时相互间共享和交互信息,各种群不仅利用从外界获得的信息来指导自身的搜索,同时还把探索得到的经验与其他种群分享,从而使整个系统协同进化,直至获得最优解。l本节的CPSO算法采用如图4. 7所示的协进化模型。2021-12-4CO-PSO24协进化模型示意图(图协进化模型示意图(图4.7)2021-12-4CO-PSO25cpso算法包含两类种群算法包含两类种群l一类种群包含M2个子种群Swarm1,j(j=1, , M2,子种群规模均为M1,种群中的每个微粒Ai(i=l,k)则表示问题的一个决策解,该类种群用于进化决策解; ,l另一个规模为M2的种群Swarm 2,其每个微粒Bjj=1,.,M2)代表一组罚因子。用于计算Swarm1 , j中各微粒的罚函数值(或称适配值)。2021-12-4CO-PSO26协进化的每代进化过程协进化的每代进化过程Swarm1 , j中的每个微粒利用B,表示的罚因子计算适配值,并连续采用PSO算法进化G、代获得一个新的解的种群Swarm1 ,j;然后,根据Swarm1 , j中所有解的优劣信息,评价Swarm 2中微粒Bj的优劣,即评价罚因子;当Swarm 2中所有微粒B,均得到评价后,Swarm 2采用PSO算法进化一代,从而获得新的种群Swarm 2,即得到M:组新的罚因子。在一代协进化结束后Swarm1,j(j=1.2,M2)再分别用新的M2组罚因子进行评价,以此类推,直到满足算法终止准则,例如达到给定的最大协进化代数G2。算法通过比较所有Swarm1,j得到的历史最好解,将最优者作为最终解输出,同时算法输出终止时Swarm 2中的最优微粒。即最佳罚因子。2021-12-4CO-PSO27CPSO小结小结协进化就是两类种群的交互进化工程,第一类种群Swarm1 ,j用PSO算法来进化解向量,第二类种群Swarm 2 用PSO算法来调整罚因子。通过协进化模型下的PSO算法,不但算法在解空间进化探索决策解,而且在罚因子空间进化探索罚因子,最终同时获得最优决策解和一组合适的罚因子。2021-12-4CO-PSO28CPSO算法设计算法设计1. Swarm1 , j的评价函数罚函数既是违反约束数量的函数,又是违反约束程度的函数,则其效果要比罚函数仅为约束数量的函数的情况好。基此,采用如下适配值函数评价Swarm1,j中第i个微粒其中,f(x)表示第i个微粒的目标值,sum_viol表示该微粒违反约束的总量,num_ viol表示该微粒违反约束的个数,w1,w2是由Swarm 2中微粒Bj对应的罚因子。2021-12-4CO-PSO29sum_ viol按如下公式计算2021-12-4CO-PSO302. Swarm 2的评价函数的评价函数Swarm 2的每一个微粒B,均代表一组罚因子,即w1和w2。当Swarm1 ,j进化G1代后,Swarm 2的第j个微粒B,采用如下方法进行评价。 (1)若Swarm 1 , j中至少有一个可行解,则称B,为一个有效(valid)微粒,并按下式评价B,2021-12-4CO-PSO31(2)若Swarm1 ,j中没有可行解(可认为惩罚项太小了),则称B,为一个无效( invalid)微粒,并采用下式评价B;2021-12-4CO-PSO32(3) Swarml , j和和Swarm 2的进的进化方程化方程l两类种群中的微粒均采用标准PSO算法进行进化。特别地,lSwarm 2里的每个微粒表示一组罚因子,即w1和w2, lSwarml , j里的每个微粒表示一个决策解向量。2021-12-4CO-PSO33(4)CPSO算法框架算法框架2021-12-4CO-PSO344. 3 .4 数值仿真与分析数值仿真与分析l对于每个测试问题,CPSO算法采用如下统一的一组参数。M1=50,M2 =20,G125,G2 =8,惯性因子LDW法,0.9-0.2, 加速因子c1=c2=2。l另外,Swarm1, j中微粒位置的最大值和最小值(即X1,max和X1,min对应于各问题变量的取值上下界,Swarm 2中微粒位置的最大值和最小值(即X2, max和X2.min设置为w1max= w2.max=1000. w1min= w2.min=0。l第一个例子的可行域相对较小,算法单独将罚因子的上下界设置为w1maxw2max=10000,w1min= w2min =5000。两类种群中微粒速度的上下界设置2021-12-4CO-PSO35该问题来自文献23 ,焊接条结构如图4. 9所示。优化目标是寻求满足切应力、弯曲应力、杆条弯曲载荷Pc、末端偏差和边界条件等约束的4个设计变量h(x1)、l(x2:) ,c(x2)和b(x4),使得制造焊接条所需的总费用最小。2021-12-4CO-PSO362021-12-4CO-PSO37该设计问题的数学模型描述如下该设计问题的数学模型描述如下:2021-12-4CO-PSO38其中其中2021-12-4CO-PSO3924-GA传统罚函数传统罚函数, 25几何规划法几何规划法26基于协进化模型的基于协进化模型的GA, 12基于支配选择机制的基于支配选择机制的GA2021-12-4CO-PSO402021-12-4CO-PSO412.对伸缩绳设计问题的求解结果对伸缩绳设计问题的求解结果l该问题来自文献27,伸缩绳结构如图4. 10所示。优化目标是寻求满足对最小偏差、切应力、湍振频率等一系列约束条件的3个决策变量,即平均卷直径D(x1 )、线直径d(x2)和活动卷的数量P(x3)。使得伸缩绳的重量最小。2021-12-4CO-PSO42该设计问题的数学模型描述如下该设计问题的数学模型描述如下2021-12-4CO-PSO432021-12-4CO-PSO442021-12-4CO-PSO453.对压力管设计问题的求解结果对压力管设计问题的求解结果l该问题来自文献29,压力管结构如图4. 11所示。优化目标是寻求满足一系列约束条件的4个设计变量Ts(x1,圆柱形管子的厚度)、Th(x2,半球形盖子的厚度)、R(x3,圆柱形管子的内径)和L(x4,圆柱形管子的长度,不包括两端的盖子),使得包括材料、焊接、铸造等费用在内的总费用最少。其中,Ts和Th均为0. 0625英寸的整数倍,R和L是连续变量。l在用CPSO算法求解时,Ts和Th均在实数空间搜索,只在求解目标函数值时才近似处理为0. 0625的整数倍。2021-12-4CO-PSO462021-12-4CO-PSO47该问题的数学模型描述如下该问题的数学模型描述如下2021-12-4CO-PSO48l CPSO算法与如下算法进行比较,包括遗传自适应搜索法30、扩张拉格朗日乘子法29、分支定界法31、基于协进化模型的GA26、基于支配选择机制的GA12。表4. 6列出了各种算法求得的最优解,表4. 7则给出了统计结果。2021-12-4CO-PSO492021-12-4CO-PSO502021-12-4CO-PSO514)对标准测试问题的求解结果)对标准测试问题的求解结果l13个不同类型的函数约束优化问题,作为标准问题常用于测试各种约束处理技术的性能和效率。下面,用其中的g04,g08, g09,g11和g12问题进一步检验CPSU算法的有效性和鲁棒性。lCPSO算法对每个测试函数均独立运行30次,表4. 8、表4. 9和表4. 10给出了CPSO算法所得的最优解、平均解和最差解以及学术界最具代表性的几种约束优化算法的结果,包括共形映射法HM2 ,随机排序法SR3 , SMES22, ASCHEA10 , 2021-12-4CO-PSO522021-12-4CO-PSO532021-12-4CO-PSO542021-12-4CO-PSO55讨论讨论l其余8个标准问题测试时发现CPSO算法的性能不是太理想,尤其在求解高维问题(g02,20维)时求解结果与理论最优解相差较大,l在求解可行域很小(gO1,gOS, g07, g13,P值几乎为0)的问题时经常找不到可行解。这说明单一的CPSO算法在寻优性能上还有待改进,尤其对于强约束优化问题。与其他约束处理技术(如文献10中的特殊等式约束处理技术)相结合,有望进一步提高算法性能。2021-12-4CO-PSO565)算法性能分析与参数设置)算法性能分析与参数设置l针对三个工程设计问题,首先考察算法首次获得最终最优解的代数,即在实验过程中对第一类种群中所有Swarm1 , j的最优解进行逐代跟踪,lCPSO算法30次独立运行的统计结果如表4. 11所示。由表可见,CPSO算法对于三个工程设计问题能够快速寻找到最优解。2021-12-4CO-PSO572021-12-4CO-PSO582021-12-4CO-PSO592021-12-4CO-PSO602021-12-4CO-PSO61l综合考虑算法搜索质量和计算效率,对于5维以内的问题,建议M1的取值选择在50-70之间。l 另外,Swarm 2的目的是找到合适的罚因子,由于不是直接在决策解空间进行搜索,因此其种群规模M2过大并不能给算法性能带来明显的提高。考虑到Swarm 2中每个微粒为2维向量,遵循PSO参数选择的原则,M2取20比较合适。l此外,在实验过程中还发现G2的增大并不能对搜索的性能有很大改善,因此在CPSO算法中,建议G2取值在10左右。2021-12-4CO-PSO624. 3. 5 CPSO算法的改进算法的改进1)改进措施措施1 约束违反量的归一化处理 为了消除不同约束间尺度上的差别,在计算、sum_viol时按下式对每个约束的违反量进行了归一化处理经这种处理后,不同约束的违反量都被限制在0到1之间。2021-12-4CO-PSO63措施措施II 使目标函数和约束违反量处于同一尺度使目标函数和约束违反量处于同一尺度引入一个尺度因子,考虑目标与约束违反量之间的平衡,即2021-12-4CO-PSO64 措施措施lII 用优良解替代种群中的个体用优良解替代种群中的个体对于可行域很小的问题,仅仅依靠PSO 算法对微粒的速度和位置进行更新,往往无法搜索到可行解,还甚至会因飞行速度过大而使搜索过程中找到的可行微粒丢失。为了尽可能利用可行解,在每代进化过程中可以将搜索到的优良解(通常是可行解)替换种群中随机选取的部分微粒,譬如用当前找到的最优解替换各Swarm1, j种群中随机选取的10%的个体。尽管可能失去一定的种群多样性,但可加快进人可行域和找到最优解的速度。2021-12-4CO-PSO652)数值仿真及分析)数值仿真及分析2021-12-4CO-PSO662021-12-4CO-PSO672021-12-4CO-PSO68函数“Stretching”技术函数“Stretching”技术,用于帮助提高优化算法的搜索效率及全局收敛能力.。l函数“Stretching”技术的实质是借助于问题的局部极值点信息,对原始目标函数进行一种“拉伸”变换,其目的是在优化算法的实施过程中,不断缩小目标函数的极值范围,从而降低优化问题的搜索难度。具体的变换定义如下: 2021-12-4CO-PSO69l上述两种变换式中,x是目标函数的局部极值点,符合定义式(8.2);1、2和是三个任意的正数常量;lsign ()为常见的符号函数:l也可采用人工神经网络中常用的线性激励函数sigmoid函数来近似计算2021-12-4CO-PSO70做法做法1)首先要通过优化算法按照常规的方法对其局部极值点进行搜索。2)当算法探测到某一局部极值点之后,再通过8.4与8.5式,对目标函数进行两次变换。在整个变换过程中,函数的解空间根据已搜索到的局部极值信息,被划分为两部分来考虑。一部分为区域: S1=x | f(x)f(x)2021-12-4CO-PSO71分析8.4与8.5式可知,区域S1在整个变换过程中,始终保持原始目标函数的形态特征不变,即对于任意xS1,均有G(x)=f(x)=H(x),同样原始目标函数在区域中的极值点(包括全局极小点在内)也始终保留不变。区域S2则不同,在两次变换中,目标函数经历了不同程度的拉伸。实施8.4式变换后,目标函数由f(x)变换为G(x),1( )( )2G xf xxx2021-12-4CO-PSO72相当于原始目标函数在区域S2中的每一函数值均向上进行了拉伸,并且点x越远离局部极值点x,则其函数值被拉伸的幅度越大。此次拉伸的结果,使得区域中目标函数的形态变得平缓,并且其中所包含的部分极值也由此转变为非极值,这意味着从搜索空间剔除掉了函数值高于f(x)的部分极值,从而降低了后续搜索的难度。2021-12-4CO-PSO73区域S2中的目标函数经8.5式实施第二次变换后,由G(x)变换为H(x)很显然,H(x)是将目标函数f(x)在G(x)的基础上进一步向上拉伸,其中距离极值点x越近且函数值越逼近f(x)的点,其拉伸程度越大。2021-12-4CO-PSO74l第二次变换的实质是将局部极值点x及其邻域范围内的点整体向上拉伸。既然点x被探测为目标函数的局部极值,则其邻域范围内的点往往与其具有接近的特性,l因此第二次变换的实施是有一定意义的,可以进一步缩小后续的搜索空间。2021-12-4CO-PSO752021-12-4CO-PSO762021-12-4CO-PSO772021-12-4CO-PSO782021-12-4CO-PSO79lVrahatis所提出的函数“Stretching”技术,可以有效地降低目标函数的复杂性。把此项技术与全局优化算法相结合,利用优化算法不断去搜索问题的局部极值信息,每当探测到问题的一个局部极小点,即对函数进行两次拉伸变换,将局部极小点以及劣于局部极小点的函数极值从搜索空间剔除掉,而优于局部极小点的解以及全局最优点却始终保持不变。l因此,函数拉伸技术的使用,并没有改变搜索目标,只是有效地降低后续搜索过程的难度,提高了优化算法的搜索效率。 2021-12-4CO-PSO80SPSOl为了有效地求解多模态复杂函数优化问题,K.E.Parsopoulos等人将函数“Stretching”技术引入到 PSO算法中,形成了一种高效的全局优化算法“Stretched PSO”(简称 SPSO)。 2021-12-4CO-PSO81流程流程2021-12-4CO-PSO822021-12-4CO-PSO83XOR函数函数2021-12-4CO-PSO84实验条件实验条件l实验中采用带有惯性权重的PSO计算模型,主要的实验参数如下:1=5000,20.5 mu=1e-10, c1=c2=0.5;l惯性权重系数W随时间递减,从1.0减小至0.4。 2021-12-4CO-PSO852021-12-4CO-PSO86小结小结1)约束PSO要采用智能约束处理方法2)CPSO有效3)SPSO有效
展开阅读全文