改进多粒子群优化算法(精选10篇)
改进多粒子群优化算法 篇1
0引言
长期以来,冷连轧轧制规程优化都是轧制控制领域的一项重要研究课题,其优化的实质内容是带钢的总厚度变形量在各机架之间的合理分配。随着轧制技术的不断发展,许多学者对规程优化进行了大量研究。传统的采用 “计算-判断修正”的单目标规程优化[1,2]虽然有明确的目标, 但考虑的角度单一,使优化结果不尽合理。根据轧制规程的复杂性和优化目标的多样性,人们又提出了以加权系数聚合的多目标优化设计[3,4],但由于目标函数量纲不统一,在多目标转化为单目标过程中权值难以确定,人为因素太多,结果也不能令人满意。
本文从提高板形质量、降低能耗、延长轧机使用寿命角度考虑,选择等相对负荷和预防打滑[5]为目标,建立了轧制规程多目标优化模型[6]。根据粒子群 算法收敛 迅速、计算量相 对较小等 优点[7],将改进的多目标粒子群算法[8]应用到冷连轧规程优化中,并针对粒子群算法存在的收敛性和多样性难以均衡的缺陷[9]进行了改进;当算法陷入局部最优时,提出了一种带个体扰动的全局最优领导粒子选择策略,取得了很好的效果。
1轧制规程优化模型
冷连轧规程优化的目的是使轧制过程处于最佳状态,实现节能轧制,并充分发挥轧机的生产能力,同时保证产品质量。本文选用等相对负荷和预防打滑进行优化。
1.1前滑模型
在冷连轧实际生产中,薄窄料容易产生打滑现象,会直接影响带钢表面的质量,严重时出现划痕,导致成品被判报废。根据白振华等[5]提出的打滑因子,设计了轧制规程优化预防打滑的目标函数。打滑因子为
式中,Δh为绝对压 下量,mm;R′ 为工作辊 压扁半径, mm;μ为摩擦因数;T、T0为前后张力,kN;F为轧制力, kN;γ为中性角;α为咬入角。
当中性角占咬入角一半,即γ/α=0.5时,不会出现打滑现象。
很显然,打滑因子ψ越大时,表示中性面离变形区的中部越远,越容易发生打滑现象;相反,打滑因子越小,发生打滑的概率越小。 考虑到各机架轧制的整体性和彼此的差异性,预防打滑的目标函数可表示为
式中,β1和β2为相关权重系数;n为机架数;ψi为第i机架打滑因子。
1.2等相对负荷目标函数
在冷连轧机组中,为了更充分地发挥轧制设备的能力,可按各机架主电机的相对负荷来制定规程,其目标函数为
式中,ηi、η′i分别为第i机架主电机的实际轧制功率和额定功率。
1.3规程优化约束条件
冷连轧机在实际生产中会受到设备因素和工艺因素的约束,其中工艺约束有
式中,εmin、Tmin分别为允 许的最小 压下率、最小张力; εmax、Tmax分别为允许的最大压下率、最大张力。
设备因素约束有
式中,Mi、Fi分别为第i机架电机 实际力矩 和实际轧 制力;Mi M、Fi max分别为第i机架电机额定轧制力矩和设备所能承受的最大轧制力。
1.4轧制规程多目标优化数学模型
本文以等相对负荷、预防打滑为目标,建立多目标优化数学模型:
式中,J为目标函数;X为变量;gi(X)为第i个约束条件。
2改进的多目标粒子群算法
粒子群算法[10]可如下描述:设搜索空间为D维,个体总数为Psize;第i个粒子位置表示为Xi= (xi1,xi2,…,xiD);第i个粒子在寻优过程中的历史最优位置为Pi=(pi1,pi2,…,pid),设Pg为所有Pi(i=1,2,…,n)中的最优值;第i个粒子的位置变化率(速度)为向量Vi=(vi1,vi2,…,viD);每个粒子的速度和位置按照如下公式进行更新:
式中,vid(t+1)为下一代粒子的速度;vid(t)为当前代粒子的速度;ω 为惯性因子;c1、c2为正常数,称为加速因子; rand()为[0,1]之间的随机数;Pid(t)为个体的历史最优领导粒 子;Pgd(t)为所有粒 子的全局 最优领导 粒子; xid(t+1)为下一代 粒子的位 置;xid(t)为当前粒 子的位置。
在多目标粒子群算法中,最优解集存在多样性和收敛性难以平衡[9]以及易于陷入局部最优的缺陷。 本文采用 基于平行 坐标系 (parallel cell coordinate system,PCCS)的多目标粒子群优 化算法(MOPSO),通过计算外部集密度和收敛潜能来平衡收敛性和分布性,并加入带个体扰动的全局最优领导粒子选择策略,有效避免了算法陷入局部极值。
2.1收敛性能和分布性能的分析
首先通过下式将外部集中的粒子映射到一个N行M列的平行坐标系中:
式中,N为外部集的大小;M为目标函 数的个数;ceil(x) 表示大于x的最小整数;fn,m为第n个粒子对于第m个目标函数的适应值;fmaxn,m= max fn,m表示外部集中第n个粒子对于第m个目标函数的最大值;fminn,m= min fn,m表示外部集中第n个粒子对于第m个目标函数的最小值; Wn,m为映射后的适应值。
在分布性方面,根据下式计算平行坐标系中任意两个矢量之间的距离:
式中,S(Pi,Pj)为第i个和第j个粒子之间的距离,当Pi和Pj映射到同一个表格时,将两个向量之间的距离设置为0.5。
一个粒子的分布性受到周围所有 粒子的影 响,根据下式得到该粒子Pi的密度Den(Pi):
密度越小,被选为领导粒子的可能性也就越大。而对于密度较大的粒子,当外部集的大小达到允许的最大值时,将被删除。
外部集中粒子 的适应值 越大,则离真实 的Pareto前沿越远,收敛性能就越强。 根据下式计算出外部集中粒子的收敛潜能Pot(Pi):
在算法进化过程中,当粒子接近真实Pareto前沿时,粒子的收敛潜能会下降到一个稳定值,此时算法逐渐收敛。
2.2基于Pareto熵和个体扰动的全局最优领导粒子的选择
熵是一种检测微观分布均匀性的方法,通过Pareto熵来检测外部集中粒子的分布性,采用熵差来表示外部集中粒子相邻迭代时刻熵的变化大小,从而推测出种群发现新解的能力,估计种群的收敛状态和分布状态,进而确定领导粒子的选择方案。
熵H(t)和熵差 ΔH(t)由如下公式定义:
式中,Knm(t)表示外部集中粒子映射到平行坐标系后,第n行m列的格子中的坐标分量个数。
将外部集中粒子的密度Den(Pi)和收敛潜能Pot(Pi)分别从小到大排序,选择按Den(Pi)排序的前n个作为最优密度集dgb,选择按Pot(Pi)排序的前n个作为最优潜能集cgb。在进化前期,算法产生较多的新解来支配旧解,从而推动种群向真实的Pareto前沿收敛,此时熵和 熵差变化 较大,随机选择cgb中的粒子作为全局最优领导粒子Pgd;在进化后期,种群逼近真实的Pareto前沿后, 算法发现的新解只能支配当前解集中极少的个体,仅能引起Pareto熵和熵差的很小的变化,此时随机选择dgb中的粒子作为全局最优领导粒子Pgd。
粒子群算法的特点在于其学习机制和信息共享机制,粒子通过外部集中的全局最优领导粒子和自身经验来调整速度和位置,从而忽略了其他粒子的信息,使算法易于陷入早熟收敛。因此,当算法多代未更新且多代选用同一个 全局最优值时,增加一个扰动向量,使算法跳出局部极值。从种群中随机选择与当前个体相互支配或支配当前个体的粒子作为扰动粒子。第i个粒子第d维的速度和位置按照下式进行更新:
式中,Pdd为随机选出的扰动粒子的第d维。
判断新产生的扰动粒子与当前全局最优领导粒子的支配关系,若当前全局最优粒子被新粒子支配,则替换为新粒子。
经过多次仿真验证,加入个体扰动后的算法有效避免了陷入局部极值。采用测试函数ZDT2分别对基于PCCS的MOPSO算法[9]和加入个体扰动的MOPSO算法进行 仿真验证,算法迭代200代,得到的结果如图1、图2所示。
将算法分别 运行30次,加入个体 扰动的MOPSO算法,30次均收敛到近似Pareto前沿。 而未引入个体扰动的基于PCCS的MOPSO算法仅有12次能收敛到近似Pareto前沿,多数情况会陷入局部极值,如图2所示。
2.3轧制规程优化流程
根据现场的生产条件以及工艺参数,为了保持带钢板形的良好,本文将末机架作为平整机使用,仅对前四机架进行优化,第5机架采用固定压下率方式,压下量约为5%~10%。优化设计的基本思想是,根据给定带钢的初始数据,随机初始化前4个机架的压下率分配比,利用MOPSO算法求出使目标函数最小的压下率分配方案。算法步骤如下:
(1)初始化种群参数。设定种群大小为150。 外部集大小与种群大小一致。最大迭代次数为200。
(2)根据约束条件,产生初始种群和外部集。
(3)判断外部集的个数是否大于所允许的最大值,若大于,则根据拥挤距离策略,删除密集的多余个体,保证外部集个体数为最大值,执行(4)。 否则,直接执行(4)。
(4)按照支配关系更新个体历史最优领导粒子Pid。
(5)根据式(12)~式(15),计算外部集的每个粒子的密度和收敛潜能,获得外部集中粒子收敛性和多样性参数,并根据Pareto熵检测种群收敛和分布状态,更新全局最优领导粒子Pgd。
(6)判断算法是否陷入局部最优,若种群陷入局部极值,根据式(18)~式(19),采用带个体扰动的全局最优领导粒子更新机制,跳出局部极值,执行(7)。否则,直接执行(7)。
(7)根据粒子 的速度和 位置更新 公式 (式 (10)、式(11)),对粒子进行更新,产生新的种群。
(8)将产生的新种群放入外部集,并根据支配关系更新外部集。
(9)判断是否满足终止条件,是则执行下一步,否则转到(4)。
(10)输出外部 集,获得近似 最优Pareto前沿。
3仿真验证
为验证轧制规程的优化效果,本文选用某钢厂1250 mm冷连轧机 为例,来料宽度 为1000mm,来料厚度为1.5mm,要求成品厚度为0.3mm,此宽度下轧机的纵向刚度为3200kN。 其他参数见表1。
根据本文选用的MOPSO算法,得到冷连轧规程优化的近似Pareto前沿与原规程对比如图3所示。图3中,点“·”为优化出的近似Pareto前沿,五角星“☆”为原规程。可以明显地看到,优化出的近似Pareto前沿在原规程下方,则必然存在优于原规程的解。但图中近似Pareto前沿反映的是两个目标的折中关系,若想降低打滑指标,则必然要损失功率指标,在实际轧制过程中,决策者可根据近似Pareto前沿,依据现场需要,选取适当的解。
4结语
本文针对冷连轧机预防打滑和等相对负荷目标函数,采用了多目标粒子群优化算法进行优化, 并针对多目标粒子群算法存在的收敛性和多样性难以平衡的缺点,采用基于平行坐标系的方法,根据外部集中粒子的收敛程度和分布程度适当地选取全局最优领导粒子,当算法陷入局部最优时,采用带个体扰动的全局最优领导粒子选择策略,取得了明显的效果。
摘要:合理的轧制规程能够提高轧机的产量和产品的质量,带来显著的经济效益。采用多目标粒子群算法,选择等相对负荷和预防打滑为目标进行冷连轧规程优化。针对算法存在的收敛性和分布性难以均衡的问题,引入一种基于平行坐标系的密度和收敛潜能计算方法;同时,为克服算法易于陷入局部最优的缺陷,提出一种带个体扰动的全局最优领导粒子选择策略。仿真结果表明,该方法能快速跳出局部极值,获得具有更好收敛性和分布性的近似Pareto前沿。最后应用该方法对某五机架冷连轧机进行了轧制规程优化。
关键词:多目标粒子群,冷轧规程优化,局部极值,收敛性,分布性
改进多粒子群优化算法 篇2
一种改进粒子群优化算法及其在投资规划中的应用
粒子群优化算法(PSO)是模拟生物群体智能的优化算法,具有良好的`优化性能.但是群体收缩过快和群体多样性降低导致早熟收敛.本文引入了多样性指标和收敛因子模型来改进PSO算法,形成多样性收敛因子PSO算法(DCPSO),并且对现代资产投资的多目标规划问题进行了优化,简化了多目标规划的问题,并且表现出了比传统PSO算法更好性能.
作 者:刘羿 陈增强 袁著址 LIU Yi CHEN Zeng-qiang YUAN Zhu-Zhi 作者单位:南开大学,自动化系,天津,300071刊 名:数学的实践与认识 ISTIC PKU英文刊名:MATHEMATICS IN PRACTICE AND THEORY年,卷(期):200737(11)分类号:O1关键词:PSO算法(Particle Swarm Optimization) 现代资产投资 多样性 收敛因子模型 多目标优化
改进多粒子群优化算法 篇3
摘要:供热管网优化设计一直是多年来城市地下管网工程中的研究热点。通过分析供热管网的优化模型,建立关于供热管网的目标函数即供热管网投资费用,根据供热管网的目标函数及约束条件建立适应度函数。利用粒子群优化算法对该非线性模型进行求解,借鉴遗传算法中变异操作的思想,设计基于遗传算法的混合粒子群算法,寻求在水力约束条件下目标函数的最小值。实例结果表明,将粒子群优化算法应用于供热管网优化设计可以取得较好的优化结果,并且充分的体现出粒子群算法的寻优能力。
关键词:供热管网;目标函数;粒子群优化算法;遗传算法;水力约束条件
中图分类号:TP311文献标识码:A
Abstract:By analyzing the optimization model of heat supply network, a heat supply network objective function, i.e., the heat supply network investment cost, was established, then the fitness function was established on the basis of the objective function and constraint conditions of heat supply network. To solve this nonlinear model with the particle swarm optimization algorithm, by using the idea of the mutation operation of genetic algorithm, a hybrid particle swarm algorithm based on genetic algorithm was designed, and the minimum of objective function with the hydraulic constraint was sought. The results show that the application of the particle swarm optimization algorithm in the optimization design of heat supply network can achieve better optimization results, and the searching capability of the particle swarm algorithm can be fully embodied.
Key words:heat supply network;objective function; particle swarm optimization algorithm;genetic algorithm;hydraulic constraints
1引言
取暖是保证我国寒冷区域基本生活必要条件之一。随着我国城市供热管网建设的快速发展,原有的供热管网已不能完全满足城市建设的需求,这就需要准确地把握城市供热管网的现状,包括旧管线的维护管理、新管线的设计建设和新小区的管网规划等[1]。目前,对于供热管网的需求,我国已经不满足于规模的逐渐扩大,对于供热管网的适用性、合理性以及热能的有效以及充分的利用率也有了更高的需求。
对于传统的供热管网设计,设计者一般是根据经验进行设计,并且优化设计方案也仅仅是考虑几种不同的布置形式方案比较,并未考虑到同一种布置形式的不同设计的参数组合方案比较[2]。随着优化方法的不断完善,如何使用优化设计优化水力参数,已经成为供热管网设计中非常重要的课题。
粒子群算法由于有精度高、容易实现、收敛速度快等优点,引起学术界的重视,并且在应用于实际的问题中展示了优越性[3]。通过研究粒子群优化算法及遗传算法,以供热管网投资费用作为目标函数,建立供热管网数学优化设计模型,并把粒子群算法应用于这一模型。
2供热管网优化模型
2.1目标函数
管线是供热系统的主要组成部分,供热管材的选择关系到整个供热系统的可靠性和安全性[4]。在供热管网优化设计中,主要设计目标就是在满足管网设计约束条件情况下,使供热管网投资费用即目标函数C最小,以保证经济性。考虑到管径、施工环境、地下水位以及地下及地上构筑物等因素,需要考虑各节点的用水量及水压,来确定根据管线上各管段的设计流量及水压来确定管线干路和支路上流量及水压[5]。供热管网投资费用由供热管线造价、实施费用、年折损值、水电的运行费用四部分组成。本文主要考虑粒子群优化算法在供热管线中的应用,目标函数包括管线造价和管线运行费用两部分。
目标函数如下:
2.2约束条件
通常的情况下,在供热管网中默认水为不可压缩的流体,密度恒定不变[6]。为了解决供热管网优化模型的目标函数,即使供热管网投资费用在一定约束条件下获得最优解,需要在目标函数基础上加上约束条件[7]。
1)管段流速的约束条件
在供热管网设计中,管段流速理应在管段设计最小流速与管段设计最大流速之间,即:
3粒子群优化算法基本理论
粒子群优化算法(particle swarm optimization,PSO)是一种基于种群的智能算法[9]。是20世纪90年代由作者J.Kenndy和R.C.Eberhart等提出一种基于启发式的优化算法。PSO算法起源于对鱼群和鸟群等运动轨迹的观察[10]。此算法中,个体仅仅是通过对同伴的行为追踪以及自身简单的行为,就可以让整个群体的运动达到一种和谐的状态。
其中,每个个体抽象成一个“粒子”,它不具有体积,仅仅包含速度和位置的信息,所有的粒子都有适应度值(fitness),且fitness=1/C。粒子根据不断地向自身经历过的最优的位置和当前种群的最优位置学习,向解空间中更好位置进行搜索,直到搜索到全局最优解[11]。
图1为第t代和第t+1代的粒子位置和速度调整示意图。其中,v1为迭代时刻t粒子通过对“社会部分”的学习使粒子向群体位置最优值(gbest)方向不断靠近的速度;v2为迭代时刻t+1粒子通过对“自知部分”的学习使粒子向群体位置最优值(pbest)方向不断靠近的速度;v3表示粒子自身具有的速度。在速度v1,v2和v3的共同作用下,粒子在迭代时刻t+1以速度vt+1到达位置xt+1,在下一个迭代时刻,粒子以同样模式的位移和速度组成方式继续向最优位置靠近,从位置xt+1如此继续迭代下去。
粒子群优化算法的基本数学模型如下:假设问题求解于D维的搜索空间,每个粒子作为一个可能解,所有的粒子形成一个群体(Swarm)。Swarm={x(k)1,x(k)2,…,x(k)m},其中,m为粒子个数。在D维搜索空间中,k时刻第i个粒子当前的位置向量为x(k)i=(x(k)i1,x(k)i2,…,x(k)id),i=1,2,…,m,这是目前为止个体在搜索空间内的极好位置,即个体极值[12]。其中,下标d表示为粒子第d维(d=1,2,…,D)。与该个体的位置向量对应的该个体速度向量是v(k)i=(v(k)i1,v(k)i2,…,v(k)id)。在k时刻第i个粒子的第d维领域计算公式如下:
v(k)id=w·v(k-1)id+c1·r1·(p(k-1)id-x(k-1)id)+
c2·r2·(p(k-1)ld-x(k-1)id)(13)
x(k)id=x(k-1)id+v(k)id(14)
式中:w为惯性权重[13],用来表示粒子的惯性对于速度的影响程度;c1,c2为粒子加速因子,用来影响粒子速度,一般c1=3,c2=2;r1,r2为(0,1)之间的随机数;k为迭代次数;p(k-1)id,p(k-1)ld分别为粒子个体位置最优解与粒子群体位置最优解。
粒子更新机制是在搜索空间中随机的初始每个粒子的初始速度和粒子群的初始速度,通过粒子的不断迭代从初始粒子群开始搜索粒子的适应度函数最优解[14]。每次迭代过程中,粒子通过跟踪个体位置最优解与粒子群体位置最优解不断调整自己的方向和速度,用来更新粒子位置。
4PSO算法在供热管网优化设计中的应用
由于粒子群优化算法容易陷入局部最优解,所以通过对照遗传算法中变异操作的思想,使用变异算子对粒子进行变异操作,设计基于遗传算法的混合粒子群算法。对操作算子的引进进行解析:
首先,对于算子选择方案,按照一定比例选择进行选择,按照实际问题采用相应的比例度。本文根据适应度函数选取前半部分较好的粒子直接进入下一代,使粒子的优良基因一直地传递下去,有利于找到更优解。
杂交算子操作的设定,采用遗传算法中杂交操作的概念,提出杂交粒子群算法思想。在每一次的迭代过程中,选择适量的粒子放入一组中,并赋予粒子一个与适应度函数无关的随机的概率,即杂交概率ρn*。首先,凭借ρn*对选取的粒子进行杂交的操作计算,并且把上一代个体替换成新产生同等数量的个体。其次,在整体数量不变的基础上,凭借原来粒子位置加权来计算新粒子的位置。然后,根据类似交叉的思想,选择已经根据适应度值排序完毕的前半部分粒子进行两两交叉操作运算,赋予与适应度不相关的一个随机的ρn*,产生同等数量的粒子安置到下一代的粒子群的后半部分替换原来粒子群[15]。按照下列式子进行位置交叉:
是两个即将进行杂交操作的粒子速度,采用杂交之后的粒子速度用来替换上一代粒子速度,这样粒子就完成了对于位移和速度的杂交方案。
变异操作是在随机初始化整个粒子群的基础上,设定一个变异概率ρn*,与随机产生的变异概率进行对比,若满足了相应的条件,即随机生成的变异概率小于ρn*,那么就进行对粒子得变异操作。ρn*表达式如下:
ρn*=0.10-m·(0.10)/n(19)
其中,m表示粒子当前的序数,通过粒子的变异操作可以有效的防止PSO算法陷入收敛或局部早熟。
基于PSO算法的供热管网优化设计步骤如下:
1)确定供热管网数学模型,初始化粒子群的个体位置与速度,输入原始数据;
2)根据初始的粒子位置和速度计算粒子的适应度值;
3)初始化粒子的个体最优值pbest和群体最优值gbest;
4)计算惯性权重w值,更新粒子速度和位置;
5)计算当前粒子适应度值,按照适应度值排序;
6)按照改进的选择交叉变异算子进行操作;
7)重新计算粒子的适应度值,更新粒子个体最优值pbest;
8)判断全部粒子是否计算完毕,未完成粒子数加1,转步骤4),若完成则更新群体最优值gbest;
9)判断是否达到迭代次数n,未达到迭代次数则n+1,转步骤4),达到则输出结果,运行结束。流程图如下;5实例分析
实例:图3为某小区供热管网示意图,进行管段优化设计计算。小区的供热管网共有一个热源和17个热源连接节点,热源节点为1,设计流量300 t/h(吨/时),管线压力为0.4 MPa,热源连接节点分别为2~18。由于此小区管线管线敷设方式为直埋,故β=0.15。
6结论
供热管网的优化设计一直是多年来城市地下管网系统中的研究热点[16]。针对供热管网管径的选择问题,本文通过借鉴遗传算法中变异操作的思想,使用变异算子对粒子进行变异操作,设计基于遗传算法的混合粒子群算法。通过粒子的速度与位置的寻优寻找最优解,即最优供热管线管径组合。实例结果表明,优化后年运行费用比优化前年运行费用节省约61万元。理论上年运行费用节约7%,管线年基础费用节约5%。故粒子群优化算法在供热管网优化设计中取得了满意的效果,同时也证明了该粒子群算法在供热管网优化中的可行性。此外,PSO算法最终的解还需要更进一步的验证,优化算法的效率也有待更进一步的提高。
参考文献
[1]孙巍.供热管网的建模分析及水力平衡调节[D].北京:北京化工大学硕士学位论文.2008.
[2]任伟建,黄晶,杨有为,等.基于改进粒子群算法的油田注水管网优化设计[J]. 给水排水.2009,9(11):2929-2933.
[3]杨亚红,王瑛,曹辉.基于粒子群优化算法的环状管网优化设计[J].兰州理工大学学报.2007,33(1):136-138.
[4]孙明月,许文斌,邹彬,等.基于整数编码粒子群算法的树状供水管网优化[J].水资源与水工程学报.2012,23(6):168-171.
[5]殷方康.基于蚁群粒子群混合算法的多目标优化在供水管网优化设计中的应用[J].山东商业职业技术学院学报.2014,14(4):102-105.
[6]ZHOU Y,CHEN Y,XU G,et al.Home energy management with PSO in smart grid[C]//Industrial Electronics(ISIE),2014 IEEE 23rd International Symposium on.IEEE,2014:1666-1670.
[7]薛英文,文倩倩.基于粒子群算法的污水管网优化设计[J].中国农村水利水电.2010,(8):40-42.
[8]YANG J,HE L,FU S.An improved PSO-based charging strategy of electric vehicles in electrical distribution grid[J].Applied Energy,2014,128:82-92.
[9]刘孟军,邹平华.供热管网经济性分析软件的研究[J].暖通空调,2005,35(10):12-16.
[10]秦芳芳.供热管网水力计算模型研究[D].北京:华北电力大学硕士学位论文,2008.
[11]张保花.关于供热管网敷设分析的设计探讨[J].山西建筑.2015,41(24):127-128.
[12]QIAN L,WEN Y L,GUOHUA G.OCCI And PSO-based Optimization And Management System for Grid Maintenance Scheduling[J].2013.
[13]THEOBALD D M.GIS concepts and ArcGIS methods[M].Conservation Planning Technologies,2007.
[14]李祥立,邹平华.基于模拟退火算法的供热管网优化设计[J].2005,35(4):77-81.
[15]谢元平.改进粒子群优化算法的研究及其在控制系统设计中的应用[D].北京:北京化工大学硕士学位论文,2011.
改进多粒子群优化算法 篇4
多模态函数求极值问题, 其算法的目的是求得所有的最优解以及尽可能多的局部解, 这种思想与生物的进化思想有着相似之处。在描述粒子的运动轨迹以及如何保证它们向着最优解方向移动, 最终求得函数的最优解这个思想的引导下可以借鉴粒子群算法。
粒子群优化算法[1]是一种非常有效而被广泛应用的迭代优化算法。其基本思想是通过群体中个体之间的协作和信息共享来寻找最优解。PSO自提出来以后, 因其概念简单、容易实现、搜索速度快等优点, 而受到了广泛的研究与关注。在基本的PSO算法的后期, 粒子群会向局部最优或全局最优收敛, 但是, 粒子群优化算法并不保证一定能找到最优解。这是由于PSO算法在优化过程中存在着一些问题, 这些问题使得粒子在搜索过程中易陷入局部最优, 导致算法“早熟”。
经典算法例如最速下降法、共轭梯度法、Newton法、轴向搜索法等, 对于连续可微函数, 具有收敛速度快、精度高的特点。既然PSO具有容易陷入局部最优情况, 而经典算法则具有收敛速度快, 并且具有局部搜索能力, 本文在前人的基础上, 尝试将改进的粒子群算法与经典算法结合起来, 提出两种算法融合的方案:一种是PSO与Powell直接法;另外一种是PSO与ZX。通过利用经典测试函数来做实验, 比对测试数据, 发现这两种方法都提高了算法精度和收敛速度, 并且能够克服PSO算法的易陷入局部最优值和“早熟”的现象, 而且还能遍历多模态函数的所有峰。两种方法使用同峰判断可以消除PSO算法陷入局部最优的隐患。
1 粒子群优化算法及其改进
1.1 标准的PSO算法
标准PSO算法[2]首先初始化一群随机微粒 (初始解) , 然后进化 (迭代) 找到最优解。每个微粒通过跟踪两个“极值”来更新自己:一个极值是微粒本身找到的最优解, 这个位置称为个体极值pbest;另一个极值是所有微粒找到的最优位置, 通常称作gbest。
标准PSO算法的数学描述为:设在一个n维的搜索空间中, 由m个微粒组成的种群X={x1, x2, …, xm}。其中第i个微粒位置为xi={xi1, xi2, …, xin}T, 速度为vi={vi1, vi2, …, vin}T. 该微粒迄今为止搜索到的最好位置记为pbest={pbesti1, pbesti2, …, pbestin}T, 所有微粒迄今为止搜索到的最好位置为gbest={gbesti1, gbesti2, …, gbestin}T, 微粒i的速度和位置更新公式[3]分别为:
式中, d=1, 2, 3, …, n (n为搜索空间维数, 即待优化的变量个数) ;i=1, 2, 3, …, m (m为种群规模) ; t为当前进化代数;c1、c2表示正的加速常数, 其中c1反映了微粒飞行过程中所记忆的最好位置 (pbest) 对微粒飞行速度的影响, 又被称为“认知系数”, c2则反映了整个微粒群所记忆的最好位置 (gbest) 对微粒飞行速度的影响, 又称为“社会学习系数”;rand () 表示 (0, 1) 之间的均匀分布随机数;ω为惯性权重, 它决定了微粒先前速度对当前速度的影响程度。
1.2 粒子群算法的优缺点
粒子群算法具有原理和机制简单、可调用参数少、收敛速度快, 易实现等优点, 但算法中粒子的初始位置、速度和算法的一些参数是被随机初始化的, 因此算法每一次寻优的结果可能并不相同, 有时会差别很大, 这样会导致算法优化结果的不稳定。由于PSO算法在优化过程中存在着一些问题, 这些问题使得粒子在搜索过程中易陷入局部最优, 导致算法“早熟”。
1.3 粒子群认知模型的改进
PSO收敛快, 在算法早期也存在着精度较低, 易发散等缺点[4]。同时算法收敛到一定精度时, 无法继续优化, 所能达到的精度也比GA低。所以通过以下途径改善PSO的缺点。
(1) 参数的改进
①惯性权重法
Shi等提出了惯性权重的方法。惯性权重w是与前一次速度相关的一个比例因子。用惯性权重来控制前面的速度对当前速度的影响, 较大的w可以加强PSO的全局搜索能力, 而较小的w可以加强局部搜索能力。
②模糊惯性权重法
Shi等提出用模糊控制器来动态自适应地改变惯性权重的技术[5]。模糊法能预测使用什么样的w更合适。
③压缩因子
压缩因子有助于确保PSO算法收敛, 且可以有效搜索不同的区域, 该法能得到高质量的解。
(2) 增加多样性的改进
①空间临域法[6]
基本的局部版PSO中粒子的临域是基于粒子序号划分的。Suganthan提出了基于粒子的空间位置划分的方案。
②加入混沌初始化
利用混沌初始化粒子初始种群, 可以增加种群的多样性。
③动态目标函数法
很多实现优化问题的目标函数是随时间变化的。
(3) “粒子进化”和“多粒子群”[7]
“粒子进化”的思想来源于自然界适者生存[8]的法则, 在粒子群算法进行时, 如果某个粒子在陷入局部最优后不能够跳出, 这就表明这个粒子不能在该区域内继续搜索更好的点, 因此可认为该粒子在搜索过程中处于劣势, 应当被淘汰;而其他的粒子则不受其淘汰的影响, 继续在空间寻优。当陷入局部最优的粒子需要淘汰时, 就会有新的粒子加入, 而且刚加入的粒子有很强的搜索能力, 使整个算法在搜索的中期和后期仍然能保持好的收敛方向。粒子的淘汰和填补过程称为“粒子进化”。但是, 所有自理的趋向同一有可能使种群失去多样性, 导致算法在后期的收敛速度明显减慢。因此在改进算法避免陷入局部最优的同时也要保证粒子种群的多样性。“多粒子群”就是在迭代的后期重新应用混沌算法, 重新初始化粒子的位置以及速度。
(4) 混沌算法初始化粒子群[9]
混沌是自然界一种看似杂乱、其实暗含内在规律性的常见非线性现象。研究表明, 粒子群初始化对算法性能产生一定影响, 混沌微粒初始化利用混沌运动遍历性、随机性和规律性等特点。在算法的初始化阶段, 利用混沌运动的遍历性以粒子群的历史最佳位置为基础产生混沌序列, 并将此序列中的最优位置随机替代粒子群中的某个粒子的位置。在算法运行过程中, 对粒子的位置进行混沌更新和粒子群更新相结合的更新方式, 使全局收敛和局部收敛达到一定平衡。混沌微粒群算法提高对多维空间局部搜索能力, 可有效避免早熟收敛现象。
2 Powell直接法以及PSO与Powell的融合
2.1 Powell直接法
powell法实际上是一种改进的共轭梯度法, 求极小值很有用, 所谓非线性是因为初始点的搜索方向不是固定的, 随着初始点位置的变化其加速方向会改变, 并不是沿着一条直线进行搜索的。该算法的具体算法步骤如下:
①选定初始值x0和初始查找方向。一般是选择n个有顺序的线性独立方向p1, p2, …, pn, 即取N维空间 (e1, e2, …, en) 。
②由x0出发沿p1方向进行一维查询, 求的x1, x2, …, xn极小值依次求得所有点。
③在上述查找过程中, fk=f (xk) 表示点xk上的目标函数值, 并比较前后两次目标函数值的差值, 即比较f0-f1, f1-f2, …, 用Δm=fm-1-Δm表示前后两次目标函数差值最大值。
④将x0-xn的距离延长一倍, 计算2xn-x0. 求这个新点上的目标函数值, 表示为:延长方向寻查的目标函数极小点大于原方向各次迭代的目标函数的差值, 所以下次的迭代式从当时点算起的。
⑤重复以上步骤, 直到前后两次迭代的目标函数值达到给定精度为止:
(1) 黄金分割法 (求Powell的步长t1) [10]
为了进行一维搜索, 比较Fibonacci和黄金分割法, 我们保留了Fibonacci的优点:
①如果缩小的区域包含原来的试点, 则该试点在下一步被利用。
②效率最高, 有限个试点的情况下, 将最优点所在的区域缩小到最小。黄金分割法 (minHJ) , 我们保留了Fibonacci的优点, 改进其缺点。它的算法流程是:
给定a、b (a<b) 以及δ>0,
Step1 令x2=a+0.618 (b-a) , f2=f (x2) ;
Step2 令x1=a+0.382 (b-a) , f1=f (x1) ;
Step3 若|b-a|<δ, 则x0= (a+b) /2, Stop;
Step4 若f1<f2, 则b=x2, x2=x1, f2=f1, 转Step2; 若f1=f2, 则a=x1, b=x2, 转Step1; 若f1>f2, 则a=x2, x1=x2, f1=f2, 转Step5;
Step5 令x2=a+0.618 (b-a) , f2=f (x2) , 转Step3。
通过调用Powell函数的“[a, b]=minJT (fy, 0, 0.1) ;”确定搜索范围, 接着被进退法“t1=minHJ (fy, a, b) ;”调用生成Powell的加速步长。
(2) 进退法 (求出Powell的搜索范围) [10]
在一维搜索之前, 必须知道一个f (x) 的下单峰区间, 对原先算法进行改进, 求出f (x) 的一个形如[0, b]形式的下单峰区间我们的目的是找出两个点x1<x2, 使得f (x1) <=f (x2) , f (x1) <=f (0) 。给定初始点x0=0, 初始步长△x>0, x1=x0+△x.我们分两种情况讨论:
①f (x1) <=f (x0)
此时x1取值很小, 加大步长向右搜索, 取△x=2△x, x2=x1+△x.
②若f (x1) <=f (x2) , 则我们要找的区间是[x0, x2]
③若f (x1) >f (x2) , 则我们所取的步长偏小, 令x1=x2, △x=2△x, x2=x1+△x. 继续往下判断, 直到满足f (x1) <=f (x2) , 此时x1取值很大, 我们缩小步长向x1左边搜索。取△x=△x/2, x2=x1, x1=x2-△x
若f (x1) <=f (x0) , 则我们要找的区间即为[x0, x2], 否则继续缩小区间, 知道满足f (x1) <=f (x0) 。
通过调用Powell函数的“tl = minHJ (fy, a, b) ;”确定下步搜索的步长, 更新极值点的位置。
2.2 基于Powell、PSO融合算法
为了解决多峰寻优问题, 本文提出的混合优化算法流程如下:
Step1 利用随机序列设置微粒群中微粒的初始位置, 初始化参数包括:群体规模SwarmN, 惯性权重w, 微粒的速度Velocity, 微粒群算法迭代次数MaxDT, 非线性Powell直接法迭代次数D, 算法总迭代次数M, 精度ε.
Step2 若未达到总迭代次数M, 转Step3, 否则停止迭代, 输出找到的所有极值点。
Step3 计算微粒群中每个微粒的函数值Fvalue, 得到微粒经历过的最好位置Pi.
Step4 根据式 (5) 、式 (6) 更新每个微粒的速度和位置, 若未达到微粒群算法迭代次数MaxDT转的点记为Pi′, 并用Pi′代替Pi. 若未达到非线性Powell直接法迭代次数M转Step5, 否则转Step6。
Step6 若
Step7 若达到迭代次数M利用随机序列更新微粒群以提高种群多样性, 转Step2, 否则直接转Step2。
PowellPSO程序流程图:
首先有粒子群优化算法产生随机位置, xSwarm (i, j) , p (i) =Fvalue (xSwarm (i, j) ) 。 应用粒子群优化算法认知模型产生的变异xSwarm (i, j) , 通过适应度值p (i) 与Fvalue (xSwarm (i, j) ) 比较取其较小值。只要在Powell算法搜索的范围内就调用Powell算法, 迅速收敛到极小值点, 并且通过同峰判断实现对最小极值点的管理。Powell融合算法的主要目的是实现找到尽可能多的局部极值点, 避免PSO算法的“早熟”问题, 就是尽可能多的找到局部极值点。PowellPSO搜索过程示意图如图1所示。
(1) 同峰判断 (实现同峰、异峰判断, 极值点管理) [11]
新发现的极值点与已发现的某个极值点是否同峰一直是求多极值点优化问题的难点。 在适应值共享遗传算法中, 通过比较两极值点间的距离与预先设定的小生境半径或峰半径来确定相距较近的极值点是否同峰, 当极值点分布不均匀时容易出现判断错误。本文提出一种同峰判断方法, 原理如下:设A, B为两个极值点, 在A, B之间插入n-1个点, 将
本算法利用微粒群算法在可行域内找到较好的解, 再利用非线性Powell直接法进行快速的高精度的搜索, 这样可以解决微粒群算法在进行“开发”时收敛速度慢, 精度不高。
3 轴向搜索法以及轴向搜索法与PSO的融合
3.1 轴向搜索法简述
轴向搜索法又叫hooke-jeeves算法。算法描述如下:
Step1 取初始点x (0) ∈R (n) , 初始步长δ>0, 步长缩小因子β∈ (0, 1) , 步长加速因子α≥0, 精度ε>0, 给定n个坐标轴向量e (i) , i=0, 1, …, n-1。 令y (0) :=x (0) , k:=0, j:=0。
Step2 若f (y (j) +δe (j) ) <f (y (j) ) , 则令y (j+1) =y (j) +δe (j) . 转Step4。否则转Step3。
Step3 若f (y (j) -δe (j) ) <f (y (j) ) , 则令y (j+1) =y (j) -δe (j) . 转Step4。否则令y (j+1) :=y (j) , 转Step4。
Step4 若j<n-1, 令j:=j+1并转Step2, 否则, 转Step5。
Step5 若f (y (n) ) <f (x (k) ) , x (k+1) :=y (n) , y (0) :=x (k+1) +α (x (k+1) -x (k) ) , k:=k+1, j:=0, 并转Step2。否则转Step6。
Step6 若δ:=βδ, y (0) :=x (k) , x (k+1) :=x (k) , k:=k+1, j:=0。转Step2。
3.2 程序的流程图, 如何实现与PSO的融合
首先有粒子群优化算法产生随机位置, xSwarm (i, j) , p (i) =Fvalue (xSwarm (i, j) ) 。 应用粒子群优化算法认知模型产生的变异xSwarm (i, j) , 通过适应度值p (i) 与Fvalue (xSwarm (i, j) ) 比较取其较小值。只要在ZX算法搜索的范围内就调用ZX算法, 迅速收敛到极小值点, 并且通过同峰判断实现对最小极值点的管理。ZX融合算法的主要目的是实现找到尽可能多的局部极值点, 避免PSO算法的“早熟”、局部最优问题, 就是尽可能多的找到局部极值点。轴向搜索算法与PSO算法融合的搜索过程示意图如图2所示。
4 实验及算法性能分析
4.1 列举9个测试函数
4.2 比较不同算法针对相同测试函数、分析算法优劣
本节通过实验来比较上述所提到的各种算法的性能。表中的比例是指, 通过算法调用相应的测试函数所搜索到的局部极值点数与该函数理论值的比值。本文以它作为算法效率优劣的参考值。由于表格有限, 所以本文引入了一个较优值作为比对数据, 通过比较点值的情况, 可以分析出算法性能。
NCGPSO为文献[11]中陈红安最近提出的“基于非线性共轭梯度法的混沌粒子群优化算法”, 具有典型的代表性, 在本文中作为论文比对研究对象。
从表中可以看出, DNAPSO[12]为“一种基于DNA计算的多模态函数求解问题”在测试函数f4, 该方法表现出了很好的效果, 找出了18个局部极值点。简单遗传算法很难同时搜索到这个函数的多个峰点, 并容易陷入局部模态。MPGA[13]为 “一种多模态单亲遗传算法”在测试函数f6, 同样找到了25个局部峰值, 表现出了较好的效果。BFGS[14]为“混沌-BFGS混合优化方法”比对测试函数f8、f9, 取得了很好的效果。非线性直接法与改进粒子群算法的融合算法 (PWPSO) 在测试函数f1, f5, f6, f7, f8, f9上, 比对其它的方法取得很好的效果, 算法的精度和收敛速度也得到了提高。轴向搜索与改进粒子群算法的融合算法 (ZXPSO) , 在测试函数f1, f2, f5, f6, f7, f9上, 比对其他算法取得了较好的效果, 算法的精度和收敛速度也得到了提高。非线性直接法与改进粒子群算法的融合算法 (PWPSO) 在测试函数f4, f8, 上比轴向搜索与改进粒子群算法的融合算法 (ZXPSO) 取得的效果好, 轴向搜索与改进粒子群算法的融合算法 (ZXPSO) 在测试函数f2上比非线性直接法与改进粒子群算法的融合算法 (PWPSO) 取得的效果好。
根据以上的理论和实验分析我们可以得出以下结论:
(1) 非线性直接法与改进粒子群算法的融合算法 (PWPSO) 与轴向搜索与改进粒子群算法的融合算法 (ZXPSO) 在对多模态函数优化问题上, 求极值方面的精度符合要求。
(2) 非线性直接法与改进粒子群算法的融合算法 (PWPSO) 与轴向搜索与改进粒子群算法的融合算法 (ZXPSO) 在许多求多模态函数优化问题上对比其他的算法, 其收敛的速度和算法的精度都得到了提高。
(3) 非线性直接法与改进粒子群算法的融合算法 (PWPSO) 与轴向搜索与改进粒子群算法的融合算法 (ZXPSO) 在许多测试函数上表现出了较好的性能。
(4) 但就PWPSO和ZXPSO这两种算法来说, 在求解多模态局部极值点时轴向搜索法精度稍微高于非线性直线法的, 但是对于局部极值点多的函数来说PWPSO可以在相同的条件下搜索到更多的局部点。但是PWPSO算法在调用比较复杂的函数时所花耗的时间比较多, 主要是因为在调用minpowell函数时, 执行了MINHJ、MINJT两种算法, 迭代的时间比较久, 所以轴向搜索法的时间开销相应少点。
5 结束语
本文提出了基于非线性Powell直接法融合改进的粒子群优化算法, 以及轴向搜索法与PSO融合的算法, 给出这两种算法的实验以及算法性能和其他算法的对比分析, 实验表明利用改进微粒群的认知模型实现局部寻优, 利用非线性Powell直接法、轴向搜索法提高算法的收敛速度和解的精度, 可以快速可靠求得多峰函数的局部极值点。算法不仅在精度上有大幅度提高, 在寻找多峰时也取得比较好的效果。对于不连续可微、可导函数, 非线性Powell直接法恰好显示了它的搜索速度快, 精度高的特点, 对多模态函数寻优上, 能在找到全局最优值的同时, 找到较多的局部最优值。
改进多粒子群优化算法 篇5
基于粒子群算法的并联机构结构参数优化设计
介绍了粒子群优化算法的原理和实现方法,分析了该算法的主要参数对搜索性能的`影响,并把粒子群算法用于六自由度的并联机构的参数优化设计中,取得了较好的效果,试验证明,粒子群算法是一种有效的优化方法,适用于大型复杂结构的优化设计.
作 者:孙凡国 黄伟 KONG Fan-guo HUANG Wei 作者单位:五邑大学,机电工程系,广东,江门,529020刊 名:机械设计与研究 ISTIC PKU英文刊名:MACHINE DESIGN AND RESEARCH年,卷(期):22(3)分类号:V221.6关键词:粒子群优化算法 进化计算 优化设计
改进多粒子群优化算法 篇6
随着全球化日益严重的能源危机、资源短缺和环境恶化,世界各国开始重视开发和利用可再生、无污染的能源。近年来,风力发电在技术上日趋成熟,商业化应用不断提高,同时,风力发电的成本也在不断降低,这为充分利用风能提供了诸多有利的条件。但是,随着风力发电在电力系统中比重的持续增加,在电力系统优化调度中需要考虑风电场的影响。风电场并网运行对电力系统的供电质量和运行可靠性都带来了不可避免的影响,风力发电的随机性和波动性对常规电力系统的分析、调度及控制方式提出了新的挑战,含风电场电网调度研究成为重要的课题[1,2,3]。
针对风电具有较强随机性和间歇性的特点,国内外一些学者对风电系统发电计划的制定与调度方法做了一些相关的研究。文献[4]提出了一种改进的粒子群优化算法,用来求解含风电场的电力系统动态经济调度问题,优化模型中引入了正、负旋转备用约束,但是在目标函数中只考虑了常规机组的发电成本,模型不够全面。文献[5]提出了求解含有风电场的动态经济调度问题的模糊模型,模糊模型中使用隶属度函数较为简单,不能真实反应实际情况,有很大的人为因素。文献[6]通过对含风电场机组组合的多个目标进行无量纲化处理,采用加权的方法,把环境经济调度多目标问题转化为单个目标的优化问题,并通过变换权重系数来寻找多目标的最优解集。这种方法的不足在于,需要运行多次才能找到最优解。在目前的研究中对目标函数和约束条件的考虑不够全面,并且在求解多目标优化问题时大多没有考虑各优化目标之间的冲突性,只是简单地转化为单目标问题进行求解。因此,这些模型和算法并不能准确地描述和求解含风电场的优化调度问题。
本文提出了一种结合遗传算法和粒子群算法的改进多目标粒子群算法,目标函数在常规考虑的系统发电总成本、污染气体排放量的基础上加入了新的目标函数,即风电场输出功率短期波动引起的系统运行风险。采用多目标算法进行求解时,在这三个目标之间进行协调权衡,使所有目标函数尽可能达到最优,并运用模糊决策,从多目标粒子群算法所得到的非劣解集中选取最合适的调度方案。最后通过算例验证了:风电并网可以显著降低系统总发电成本和污染气体排放量;同时,采用启发式规则和遗传算子搜索机组组合的能力要优于优先顺序法,算法有一定的实用价值。
1 含风电场电力系统优化调度数学模型
1.1 目标函数
(1)发电总成本最小
由于风电场不消耗燃料,系统发电总成本主要为火电机组发电成本。风电的随机性和波动性会改变机组的启停策略,因此,目标函数包括常规机组的启停成本。发电总成本的表达式为
式中:Cgeneration为总发电成本;T为调度周期总时段数;t为时段号;N为总的火电机组数目;n为机组号;Sn为机组n的启停费用;unt表示机组n在t时刻的启停状态,1为开机0为停机;Fnt表示机组n在时段t的发电成本,表达式为
式中:pnt为机组n在t时段的出力;an、bn、cn为机组n的成本系数。
(2)污染气体排放量最小
考虑到环境污染对生态平衡的影响,一些法律规定各电厂必须控制CO2、NOx、SO2以及烟尘的排放量,以减小空气污染。为不失普遍性,本文考虑CO2、NOx、SO2这三个因素,其排放量可表述为
式中:Memission为总污染气体排放量;kNOx和kSO2为NOx和SO2相对于CO2的污染严重程度;coalcostn为机组n的单位出力的煤耗量,CO2emission、NOxemission、SO2emission分别为机组单位煤耗量得出的CO2、NOx、SO2的排放量,与煤炭各成分含量以及污染气体末端处理技术有关。
(3)系统的运行风险最小
风电的短期波动很大,10 min功率波动尤为显著。因此,系统应该有足够的10 min旋转备用来应对风电波动。本文所用风机24天的10 min功率波动相对于装机容量的波动范围如图1所示。其中,波动范围大于20%的概率小于1%,大于10%的概率小于5%,极少数点波动范围能超过40%。
本文对系统的运行风险程度定义如下:
式中:riskt为时段t系统的风险水平;r%是应对风电波动的备用系数,根据前文分析,本文取20%;Runt、Rd nt为系统正、负10 min旋转备用;ptmax,n、ptmin,n是机组n在时段t所能达到的出力上下限;Pmax,n和Pmin,n为机组n的出力上下限;urn、drn是机组n的上升爬坡速率和下降爬坡速率;Pw是系统中所有风电场的额定装机容量之和;T10为10 min。
1.2 约束条件
(1)系统功率平衡约束,不考虑网损
式中,pwt、PLt分别为t时段风电场有功功率预测值和负荷预测值。
(2)火电机组出力约束
式中,Pmax,n和Pmin,n为机组n的出力上下限。
(3)系统旋转备用容量约束
在含有风电场的电力系统,为保证系统的可靠运行,需要增加正负旋转备用容量,来应对风电波动和预测误差给系统带来的影响[7]。
正旋转备用容量约束
负旋转备用容量约束
式中:ptmax,n、ptmin,n是机组n在时段t所能达到的出力上下限;L%为系统总负荷对正、负备用的需求系数;us%、ds%是风电预测误差对正、负备用的需求系数;Pw是系统中所有风电场的额定装机容量之和。
(4)火电机组爬坡速率约束
式中:urn、drn是机组n的上升爬坡速率和下降爬坡速率;T60为一个运行时段60 min。
(5)火电机组最小启停时间约束
式中:Tun为机组n的最小连续开机时间;Tdn为机组n的最小连续停机时间。Tnt为机组n在时段t时已连续运行或停运的时段数,正值表示累计连续运行时间,负值表示累计连续停机时间。
2 采用遗传算子的改进多目标粒子群算法
标准粒子群算法(PSO)的基本思想是:随机初始化一群没有质量和体积的粒子,将每个粒子看成是待求问题的一个解,用适应度函数来衡量粒子的优劣,所有粒子在可行解空间内按一定的速度运动并不断追随当前最优粒子,经过若干代搜索后得到该问题的最优解[8,9,10,11]。
为使含风电场电力系统优化调度的三个目标函数同时达到最优,本文提出了改进多目标粒子群算法。本算法通过设计启发式规则和引入遗传算子来改善多目标粒子群算法搜索机组组合的能力;通过所设计的外部档案维护策略和粒子全局最优解的选取策略来改善多目标粒子群算法优化负荷分配的能力。最后运用模糊决策,使得决策者可以根据对优化目标的偏好以及负荷水平和风功率预测情况,从多目标粒子群算法所得到的非劣解集中选取最合适的调度方案。
2.1 初始化机组组合的启发式规则
针对模型中大量的约束条件,本文设计了可以生成可行的初始机组组合的启发式规则。将机组出力范围大小顺序和优先顺序法得到的机组优先顺序作为引导规则,用于产生初始的机组组合,以满足多样性和一定的合理性。这两个引导规则通过式(15)产生机组组合。
式中:un为机组n的启停状态;Ppl为根据机组优先顺序设定的开机概率;Prange为根据机组出力范围设定的开机概率;R1和R2为(0,1)之间的随机数。
2.2 选择、交叉和变异
采用适应度比例方法来完成选择操作,同时选用精英保存策略,交叉操作采用单点交叉来完成。变异操作分两步完成,首先进行传统单点变异操作,然后进行启发式两点变异。启发式两点变异的规则为,当存在关机的机组A和开机的机组B,并且A的优先顺序或者出力范围要高于B时,按0.5的概率开启A,关闭B。
为保持交叉变异操作后的粒子优化搜索的延续性,本文每隔10代进行一次选择、交叉和变异操作。
2.3 机组组合的可行化检查
为确保交叉、变异产生的新个体为可行解,需要进行机组组合的可行化检查。检查内容包括最小启停时间约束检查和旋转备用容量约束检查。
当最小启停时间约束不满足时,需要根据上一时段机组的连续开机/停机状况,对机组组合进行修改。当正旋转备用容量约束不满足时,需要增加开机机组的数量,开启机组时可选择出力范围大的机组,以满足上升旋转备用容量约束;当负旋转备用容量约束不满足时,需要减少开机机组的数量,关停机组时可选择优先顺序小的机组,以满足下降旋转备用容量约束。
2.4 负荷分配方案的可行化调整
粒子群算法执行初始化以及速度和位置更新后,所得到的负荷分配方案往往无法满足系统功率平衡约束,因此本文使用文献[12]提出的可行化调整机制对负荷分配方案进行调整。对时段t的负荷分配方案pt=[p1t,p2t,…,pNt],可行化调整机制具体描述如下:
式中:pt为调整前的负荷分配方案;pt,*为调整后的负荷分配方案;ptmax和ptmin为时段t机组所能达到的出力上下限。
2.5 外部档案维护和粒子全局最优解的选取
外部档案维护。多目标粒子群算法的外部粒子群称为外部档案。当外部档案大小小于规定值时,非劣解直接进入外部档案;当外部档案大小等于规定值时,如果新解支配了外部档案的部分个体,则新解取代受支配的那些个体,否则,将新解加入档案中,并从中移除一个密度值最差的个体。
粒子全局最优解的选取。当外部档案中存在支配该粒子的非劣解集时,用擂台赛法从中选取一个解为粒子的全局最优解;当外部档案中不存在支配该粒子的非劣解时,从外部档案中随机选取一个非劣解,作为粒子的全局最优解。
2.6 模糊决策
多目标粒子群算法所得到的最终的外部档案,即为每个时段调度方案的非劣解集。本文使用模糊决策方法从非劣解集中得到最终的调度方案。首先,将发电成本和污染气体排放量两个目标函数进行模糊化处理,其隶属函数为
式中:fi为第i个非劣解的目标函数值;aimi为模糊化后的目标函数值;fmax和fmin为非劣解集的目标函数的最大最小值。
然后,把[发电成本,污染气体排放量,系统风险]作为因素集,并对粒子群算法所得非劣解集做单因素评价,组成模糊评价矩阵。为简单起见,本文统一取[0.3,0.3,0.4]。最后进行模糊综合评判,取最优者作为最终的调度方案。
3 算法流程
以目标函数值作为粒子的适应度值,改进多目标粒子群算法的求解步骤如下:
(1)输入系统原始数据及机组参数,计算机组的优先顺序和出力范围大小顺序。
(2)调度时段t=1。
(3)根据启发式规则初始化粒子的机组组合并进行可行化检查,根据机组组合随机初始化粒子负荷分配方案并执行可行化调整,粒子速度随机初始化,个体最优值和全局最优值初始化为无穷大。
(4)迭代次数k=1。
(5)计算每个粒子三个目标函数的适应度值,更新粒子的个体最优值,并执行外部档案维护。
(6)若k是10的倍数,执行选择、交叉和变异操作,然后对发生交叉和变异的粒子执行可行化检查,重新初始化负荷分配方案和个体最优值。
(7)从外部档案为每个粒子选取全局最优解,更新粒子的速度和位置,更新粒子位置时仅更新负荷分配方案而保持机组组合不变。
(8)对更新后的粒子按照速度和位置约束进行相应处理,并对负荷分配方案执行可行化调整。
(9)迭代次数k=k+1,更新惯性权重和学习因子。
(10)如果k≤K,转到步骤(5)进行下一次迭代。否则说明本时段迭代过程完成。
(11)使用模糊决策从外部档案中选取最合适的调度方案,并更新机组持续运行/停运时间。
(12)t=t+1,如果t≤T,转到步骤(3);否则说明算法运算完成。
4 算例分析
为验证本文所提算法的可行性,以10机24时段调度周期为例进行验证。常规发电机参数参见文献[13]。粒子群优化算法种群规模取为60,最大迭代次数K=200。交叉和变异概率分别为0.6和0.4。设置系统总负荷对正、负备用的需求系数L%为7%;设置应对风电波动的备用系数r%为20%;考虑到现阶段中国数值天气预报精度还不够高,设置风电对正、负备用的需求系数us%和ds%分别为10%递增到20%和10%递增到30%。10机系统负荷预测(PL)及风电场功率预测数据(Pwind)如图2所示。
采用改进多目标粒子群算法的10机系统优化调度策略如表1所示。
本文的改进多目标粒子群算法和使用优先顺序法的普通多目标粒子群算法的计算结果比较如表2所示。
由表2可以看出,本文所提算法和使用优先顺序法的普通多目标粒子群算法相比,得到的机组组合并不完全相同;对比结果显示,本文算法在污染气体排放量稍有增加的情况下,发电总成本有较大的下降,程序的运行时间有一定增加,但仍然能满足快速性要求。总的来说,本文的改进多目标粒子群算法性能有相当的改善。
10机系统风电场并网前后各类成本以及污染气体排放量的对比如表3所示。
由表3可以看出,风电场的并网减少了电力系统一次能源的消耗,降低了燃料成本,减少了污染气体排放量。然而,由于风电的随机性和波动性,其并网改变了机组的机组组合策略,增加了机组启停费用,另外系统需要安排更多的旋转备用来应对风电的不稳定性。但总的说来,含风电场的电力系统发电总成本和污染气体排放量有较大下降。
5 结论
改进多粒子群优化算法 篇7
随着鄱阳湖湖区以及周围的经济的快速发展,工业用水、农业用水、生活用水、生态用水等的需求量将日益增加。然而其供水量却日趋减少,同时水资源利用程度低,浪费比较严重,供需矛盾日益突出。鄱阳湖供水量的减少使得鄱阳湖环湖区的工农业发展、人民生活、生态环境都受到了严重的影响。因此对鄱阳湖水量、环湖区的需水量、环湖区的水资源合理配置的研究已成为一个急需解决的重要问题。
水资源优化配置问题一般是多目标优化的问题[1],目前求解多目标优化问题的方法一般是将多目标问题转化成为单目标问题[2],然后对转后的单目标问题进行求解。转化方法根据决策者的不同而不同,因此求解结果有可能不同。针对上述问题,利用Pareto支配观念,将多目标粒子群算法应用到鄱阳湖环湖区水资源优化配置的多目标优化问题的求解中。然而粒子群算法存在容易陷入局部极值点、早熟等缺点,本文引入线性变换的惯性权重、遗传算法的变异思想、混沌优化思想去改进多目标粒子群算法;应用改进的多目标粒子群算法求解鄱阳湖环湖区水资源优化配置模型。
1目标函数
目标函数就是水资源优化配置所要达到的目标,鄱阳湖环湖区水资源多目标优化配置的数学模型如下:
式中:x为各种水源对用户的供水量;f1(x),f2(x),f3(x)分别为社会目标、经济目标、以及生态目标;G(x)为约束条件,如供水量约束、水库供水能力约束、输水能力约束以及其他社会约束等;H(x)为水量平衡方程等。
(1)社会目标f1:水平年各子区缺水率平方和最小:
式中:x
(2)经济目标f2。
①水平年各子区不同行业用水产生的经济效益最大:
式中:b
②水平年各子区不同行业用水总成本最小:
式中:c
③水平年各子区不同行业用水净效益最大,即同时考虑a和b:
上式中的x
(3)生态目标f3:
要保证鄱阳湖的生态安全,必须要保证鄱阳湖的水位不能低于鄱阳湖的最小生态水位,即:
式中:h′为鄱阳湖的最小生态水位;h为鄱阳湖的水位;g(h)为鄱阳湖的水位容积关系函数。
2约束条件
根据鄱阳湖环湖区的特点,确定了鄱阳湖环湖区水资源配置的约束条件的数学形式为:
(1)各水源可供水量约束。
公共水源:
独立水源:
式中:x
(2)江西省水量分配约束:
式中:z为江西省水量分配方案中给鄱阳湖环湖区的水量分配量。
(3)水源至用户的输水能力约束。
公共水源:
独立水源:
式中:Q
(4)用户需水能力约束:
式中:W
(5)水库水量平衡约束:
式中:Vle和Vlb为l水库在时段T的初、末库容;Qlin为l水库的入库流量;Qlsa为供水流量;Qlqi为弃水流量。
(6)其他约束。包括水库的水位库容约束、变量非负约束等。
3多目标粒子群算法
粒子群优化算法是1995年由美国社会心理学家James Kennedy博士和电气工程师Russell Ebethart博士在模拟鸟群觅食过程中的迁徙和集群行为时,受人工生命和演化计算理论的研究结果的启发提出的[3]。每个粒子按照如下方程来更新:
式中:w为惯性权重系数;c1,c2为加速因子;rand()为[0,1]范围区间内的随机数;Vid为粒子i在D维空间上的速度,Vid∈[-Vimax,Vimax];Pid为个体极值点;Pgd为全局极值点;Xid为粒子i在D维空间上的位置。
在单目标问题中,粒子群算法的适应度函数值为目标函数的值。在多目标问题中,根据归档机制[4],用一个外部的集合来储存迭代过程中的非劣解,粒子的全局最优位置由该解确定。然后根据多目标演化算法的密度估计技术,从外部集合中选取一个新的全局最优解。在这个过程中,如果每次迭代过程中的非支配解集都进入外部集合,那外部集合的计算过程将非常复杂。因此设定外部集合的最大数量为N,当非支配解集的个数大于N时,则要通过一定的筛选准则来确定保留哪些精英部分。本文参考一些学者的做法[6,7],采用ε支配关系来过滤外部集合的解,通过用户定义ε,将目标空间划分为一系列边长为ε的小盒子,每一个盒子内仅保留一个非支配解。
而个体最优解的选择方法为:如果当前粒子支配个体最优解,则用当前粒子替代个体最优解;反之,则当前个体最优解不变;若当前粒子和个体最优解互相不支配,则从两者中随机选择一个,或者计算两者所支配的粒子的数量,选择数量较多者作为个体最优值。
对于约束条件采用K.Deb[8]提出的一种约束主导原理来处理多目标问题中的优化条件。该方法通过比较违反约束条件的程度来确定个体之间的顺序,避免了惩罚因子选取的问题。
4多目标粒子群算法的改进
(1)惯性权重的改进。
Shi Y.[5]等人提出一种随时间线性递减w的策略,其惯性权重为:
式中:iter为当前粒子的迭代次数,itermax为粒子群算法开始设置的最大迭代次数;wmax、wmin分别为最大惯性权重和最小惯性权重,wmax的典型取值为0.9,wmin通常取0.4。这样能够使得粒子群算法一开始就能够搜索到较大的区域,较快的找到最优粒子的大致位置。随着惯性权重的减小,粒子开始搜索局部区域。这样大大提高了算法的寻优速度和寻优性能。
(2)粒子的变异。
将遗传算法中的复制、交叉等变异操作引入到粒子群算法中,首先定义变异概率,此概率与粒子的适应值无关,首先随机的选择一定数量的粒子放入一个集合汇总,按照变异概率对随机地两两交叉产生形同数量的子代个体进行交叉变异,并用子代个体代替父代个体,以保持种群的规模不变。经过杂交、变异操作之后,由父代个体随机产生两个新的位置,速率的操作与位置向量是一样的。变异操作可以更好的搜索整个空间,使得处于不同局部极小值处的两个个体经过变异后,可以逃出该局部极小值处。
(3)c1和c2的混沌优化。
c1和c2采用如下公式进行优化:
c1和c2是粒子群算法的重要因素,利用混沌技术对其优化,可提高粒子群算法的全局收敛性。
(4)全局最优值的混沌优化。
①对粒子群算法全局最优解计算混沌初值h
②计算t+1时刻的混沌变量h
③将h
④根据x
该方法能够提高全局最优值的全局收敛性。
5改进的粒子群算法求解水资源优化配置问题步骤
(1)设置种群的大小m,最大迭代次数Nmax,外部集合大小h,交叉变异概率p。
(2)根据约束条件,确定粒子的选择范围,初始化粒子。
(3)根据Pareto支配关系,选择一部分初始粒子,并将其放入外部集合。
(4)计算初始化粒子的个体适应值。
(5)从外部集合中,随机选择一个粒子作为全局最优解;根据Pareto支配关系,从初始化的群体中,选择个体最优解。
(6)对粒子按照Xid(k+1)=Xid(k)+Vid(k+1)更新粒子,其中将惯性权重设置成随运算次数线性递减;加速因子按照混沌优化公式进行优化。
(7)根据约束主导思想,判断粒子破坏约束条件的程度,并对其进行排序。选择较优粒子,计算它们的个体适应值,并利用pareto支配关系判断这些粒子与外部集合中的粒子的关系,选择优秀的粒子进入外部集合。若外部集合的数目超过设置的外部集合的大小,按照拥挤距离归档选择方法确定外部集合中的粒子。
(8)对全局最优值进行混沌局部搜索。
(9)对粒子按照概率p选择外部集合中的一部分粒子与当前粒子进行变异操作。
(10)判断是否达到最大迭代次数,若没有达到则转到步骤(6);若达到最大迭代次数,则输出外部集合中的粒子,将其作为目标函数的非劣解集。
6计算结果
在对鄱阳湖进行配置的时候,为了计算方便,将经济效益最大目标函数取倒数,变为求其倒数的最小值。设多目标粒子群的外部集合的大小为100,最大训练次数为100,变异概率为0.5,惯性系数w为线性递减,wmax取0.9,wmin取0.4,种群规模为500,应用改进的多目标粒子群算法对鄱阳湖环湖区水资源优化配置模型进行求解,得到的鄱阳湖水资源优化配置的目标函数值的非劣分布区域如图1所示。
采用模糊近似理想点法进行对非裂解集进行评价,得出的最佳目标对应的鄱阳湖环湖区2030年的配置结果如表1。
7结语
本文将改进的多目标粒子群算法引入到水资源优化配置模型的求解中,它是基于Pareto支配关系的求解方法,不需要通过主观方法将多目标问题转化成单目标问题,增加了模型的求解精度。针对粒子群算法容易陷入局部最小值、早熟等缺点,引入了随着时间线性改变的惯性系数,遗传算法的变异思想,以及基于混沌优化思想的加速系数的改进和局部最优值的混沌搜索。经计算证明改进后的粒子群算法能够更加全面的搜索到全局最优解。通过计算得出了鄱阳湖环湖区2030年的水资源优化配置结果。
摘要:鄱阳湖水资源优化配置问题是一个多目标优化问题。将Pareto支配关系、精英保留策略、约束主导原理引入到多目标粒子群算法中。针对粒子群算法的容易陷入局部极小值、早熟等缺点,采用了线性变换惯性系数提高搜索的速度和性能,引入遗传算法的变异思想、混沌优化思想避免了陷入局部极小值。应用改进的多目标粒子群算法对鄱阳湖环湖区的水资源优化配置模型进行了求解,得出了一组非劣解集。采用模糊近似理想点法对非劣解进行了评价,得出了鄱阳湖环湖区2030年水资源配置的最佳方案。
关键词:水资源配置,多目标粒子群算法,鄱阳湖,混沌优化,遗传算法
参考文献
[1]董增川.大规模多目标系统决策理论、方法及应用[D].南京:河海大学,1990.
[2]刘卫林.水资源配置系统的计算智能方法及其应用研究[D].南京:河海大学,2008.
[3]丁根宏.水库防洪调度智能优化算法研究与应用[D].南京:河海大学,2008.
[4]王德智.供水库群优化调度的计算智能方法及应用研究[D].南京:河海大学,2007.
[5]Shi Y,Eberhart R C.Empirical study of particle swarm optimiza-tion[C]∥Proc of Congress on Computational Intelligence,Wash-ington DC,USA,1999:1 945-1 950.
[6]Laumanns M,Thiele L,Deb K,et al.Combining convergence anddiversity in evolutionary multi-objective optimization[J].Evolu-tionary Computation,2002,10(3):263-282.
[7]Margarita R S,Carlos C A C.Improving PSO-based multi-objec-tive optimization using crowding,mutation andε?dominance[C]∥The 3rd International Conference on Evolutionary Multi-CriterionOptimization(EMO 2005).Guanajuato,Mexico:Springer-Verlag,LNCS,2005:505-519.
改进多粒子群优化算法 篇8
关键词:粒子群,算法,工程项目,多目标,优化算法
现代工程实践和科学研究中遇到的很多问题都是多目标优化问题, 多个目标之间通过决策变量项目制约, 对于单个目标的优化问题的唯一最优来说, 多目标问题的解并不是唯一的, 而是存在一个最优解结合, 在该集合内的每一个解都称为多目标非支配解。对于工程项目来说, 工期、成本和质量是工程项目的“三大目标”, 也是决定项目成功与否的关键因素, 对于任何一个项目, 即需要在约定时间内完成, 也需要控制项目成本, 同时还必须确保项目质量符合需求。但是工期、成本和质量这三个目标存在相互制约的关系, 一般来说, 工期和成本成正比, 工期和质量成反比, 成本和质量成反比。。因此, 需要采用多目标算法来求解工期、成本和质量三个目标优化问题, 并且从得到的解集中根据需求挑选出最优解作为该项目的最优规划目标解。
1 多目标粒子群算法
1.1 多目标算法
多目标优化算法可以描述为:一个由满足一定约束条件的决策变量组成的向量, 使得一个由多个目标函数组成的向量函数最优化。目标函数组成了性能标准的数学描述, 而性能标准之间通常是互相冲突的。优化意味着要找到一个使得所有目标函数值都可接受的解。
多目标优化问题中的最优概念最先由Francis Ysidro Edgeworth提出, 后来Vilfredo Pareto给出了系统的定义, 通常称为Pareto最优[1,2]。
不失一般性, 在一个有k个目标函数最大化的问题中, 称决策向量x*∈F是Pareto最优的, 当不存在另外一个决策向量x∈F同时满足式1。
同样地, 在最大化问题中称决策向量x优于y, 或者支配y, 需要满足式2。
1.2 多目标粒子群算法
结合粒子群算法搜索思想和多目标算法原理设计多目标粒子群算法, 由于相对于单目标粒子群算法中的个体历史最优和群体历史最优的唯一性, 多目标算法中个体历史最优和群体历史最优均是一个非支配解集, 因此在多目标算法的设计中需要解决从非支配解集中挑选出最优跟踪个体的问题。该文采用了文件记录的方法来记录在算法搜索的过程中找到的所有的非支配解, 并且采用一定的方法来选择个体跟踪的优秀目标。
由于多目标粒子群算法在搜索的过程中同时记录个体全局最优解, 个体最优解和局部最优解, 因此需要三个记录文件来记录。但是由于三个记录文件中的非支配解存在相互交叉支配的现象, 并且为了算法简洁高效, 该文采用一个档案文件同时记录全局最优解, 个体最优解和局部最优解, 档案文件在算法搜索的过程中, 只要发现新得到的搜索解存在支配管理, 就把该解放入记录文件中, 同时根据支配关系, 密度关系等调整记录文件中的最优解。
在记录文件记录所有最优解的基础上, 通过非支配解排序的方法来解决这个每次迭代搜索的时候, 粒子跟随的最优个体问题, 具体思路就是首先评估排序所有的非支配解, 然后从排序好的解集中根据排序的序号, 以选择概率的方法选择排序靠前的非支配解作为个体跟踪对象, 非支配解排序的序号越靠前, 其被选中的概率越大。
2 工程项目多目标建模
2.1 工程项目分解
本文在求解的时候首先采用网络计划技术把整个项目进行工序分解, 并且得到工序流程图, 流程图中的每个工序节点都有多种不同的施工方案, 每个施工方法都对应不同的施工费用、工期和质量。因此项目建设规划便存在多种工期、成本和质量的组合方案, 工程项目网络计划图如图1所示[3]。
其中, Mij表示第i道工序的第j种执行模式, Cij、Tij、Qij为该执行模式需要的执行成本、执行工期以及工序质量。
2.2 模型建立
在多目标模型建立的环节, 首先分别建立工期目标模型、成本目标模型和质量目标模型, 然后把三个模型进行组合, 得到了工程项目工期、成本和质量多目标优化模型[4]。
项目工期模型如式 (3) 所示。
其中, L表示路径集合, Li表示具体的路径, xim为0或者1, 代表是否执行了活动i的第m道执行模式, 其中1表示执行, 0表示没有执行。tim表示执行了活动i的的第m道执行模式所获得的所需工时。
项目成本模型如式 (4) 所示。
其中, xim为0或者1, 代表是否执行了活动i的第m道执行模式。uim, k表示在执行活动i第m道执行模式时, 所耗费的第k项资源的单位费用, rmi, k表示在执行活动耗费的第k项资源的量。idcim, k表示执行活动耗费的第k项间接资源费用。
质量目标模型如式 (5) 所示。
其中, qim表示在子工序i的在第m道执行模式中对应的质量值, 分母表示把所有子工序对应的指标质量值均设为10时的项目总质量值。
因此, 总体的多目标模型如式 (6) 所示。
3 仿真实验
采用工程项目多目标粒子群算法仿真实际工程道路项目, 该道路工程为典型的土方施工项目, 根据项目施工规划要求以及施工地的地质特点, 整个项目可以细化为包括施工准备、路基土方、软土处理、防护工程等在内的15项具体活动, 该连接线工程的网络计划图如图2所示。
采用多目标粒子群算法优化项目工序模式选择, 因为项目工序模式为整数, 所以采用对种群进行离散化, 即每一次迭代得到新的种群后, 都采用四舍五入的方法把新的种群离散化。因为一共有14道施工工序, 所以粒子维数为14, 从而每一个粒子都代表一个施工方案, 其他的参数为种群个数为100, 算法迭代次数为20。算法得到的多目标非支配解如图3所示。
从图3可以看出, 该文提出的多目标粒子群算法搜索性能较高, 算法在运行的时候能够找到较多的非支配解集, 对于每个非支配解集中的解来说, 都代表其中的一个施工方案。
4 小结
针对工程项目建设规划问题中工期-成本-质量三个目标相互制约, 一般算法难以得到三个目标的最优解的问题, 该文采用多目标粒子群算法进行求解, 在建立寻优问题的基础上, 采用粒子群算法搜索多目标问题的非支配解集, 仿真实验表明多目标粒子群算法能够得到工期-成本-质量多目标优化问题的解集, 从而为工程项目规划提供了一个新的参考方法。
参考文献
[1]郑向伟, 刘弘.多目标进化算法研究进展[J].计算机科学, 2007, 34 (7) :187-192.
[2]崔逊学.多目标进化算法及其应用[M].北京:国防工业出版社, 2006:6-12.
[3]曹吉鸣, 徐伟.网络计划技术与施工组织设计[M].上海:同济大学出版社, 2000 (6) .
改进的小生境粒子群优化算法 篇9
小生境(Niche)是来自于生物学的一个概念,是指特定环境下的一种生存环境。生物在其进化过程中,一般总是与自己相同的物种生活在一起,共同繁衍后代,这些生物赖以生存的环境资源,称为小生境。人们把这种思想提炼出来,运用到优化算法中来。优化算法实现小生境的方法最早由Cavicchio于1970年提出,该方法叫做基于预选机制的小生境方法[1];1975年DeJong提出了基于排挤机制的小生境实现方法[2];Goldberg在1987年提出了基于共享机制的小生境实现方法[3]。随着研究的深入,越来越多的小生境实现方法被提出,小生境在优化算法中的应用也越来越广泛。文献[4]提出了小生境粒子群优化算法。在标准PSO算法中,种群中的粒子会不断向当前最优位置靠拢,算法迅速收敛,但同时种群的多样性也快速下降。在NPSO算法中,若某个粒子在连续几代的进化过程中,适应度值只有很细微的变化,那么该粒子和它的邻居将就会形成一个小生境粒子群,该粒子是这个小生境粒子群的中心。具体算法如下:
Step1:初始化主粒子群,并设置小生境的参数。
Step2:主粒子群中的粒子进行速度、位置和适应度值的更新。
Step3:对每个小生境粒子群中的粒子进行速度、位置和适应度值的更新。
Step4:根据小生境半径的设置,查看是否有需要合并的小生境粒子群。
Step5:查看主群中是否有粒子进入了小生境范围,若有,则将该粒子吸收进入小生境粒子群中。
Step6:搜索主群中是否有满足产生新的小生境的条件的粒子,若有满足条件的粒子,则建立以该粒子群为中心的新的小生境子粒子群。
Step7:返回至Step2,直到满足算法终止条件。
NPSO算法实现过程中,需要输入两个参数μ和δ ,μ是判断子群是否合并的阈值,δ是判断子群是否产生的阈值,算法的实现效果依赖于参数的设置。在文献[5]中,小生境子粒子群的合并依赖于参数μ,如果该参数的选择不合适,算法很容易将处在不同山峰上的两个小生境子群合并,造成寻优效率下降;在文献[4]中,新的小生境子群的产生依赖于给定的 参数δ,不同的参 数其算法 性能也不同,算法需要先验知识才能保持其稳定性。
2改进的小生境粒子群优化算法
在NPSO进化过程中,需要根据参数μ和δ的设定进行。若有一种简单的方法能够判断两个粒子是否在同一个山峰上,此方法可以大大提高NPSO算法的收敛速度和收敛性能,也可以避免算法过于依赖参数设置。文献[6]设计了一个hill-valley函数,能够判别搜索空间的任意两点是否在同一个山峰上。将此函数应用到遗传算法上可求解多峰值问题,本文将此函数与NPSO算法相结合,进行多峰函数的求解。
设搜索空间的任意两点e1和e2,hill-valley(e1,e2)为判断e1和e2是否在同一山峰上的函数,若e1和e2不存在适应度值同时小于e1和e2适应度值的内点,则e1和e2在同一个山峰上,hill-valley函数的返 回值为0,否则hillvalley函数的返回值为非0值,则e1和e2不在同一个山峰上。e1和e2之间的内点由抽样向量samples确定:
其中,j=1,…,L,L是抽样向量samples的长度,本文中L的取值为5。
一维hill-valley函数如图1所示,图中e1、e2之间的内点i1、i2的适应度值均大于e1和e2的适应度值,不存在适应度值小于该两点的内点,判定e1和e2在同一个山峰;图中e3和e4之间的内点i3、i4、i5、i3的适应度值大于e3和e4的适应度值,而i4、i5的适应度值小于e3和e4的,故e3和e4 不在同一 座山峰上。 将上述hill-valley函数应用 到NPSO算法中,解决NPSO算法依赖参数设置的弊端,新算法称为改进的小生境粒子群优化算法(ImprovedNicheParticleSwarmOptimization,INPSO)。算法具体 实现如下:
Step1:参数设置及主粒子群的初始化,主粒子群以认知模型进行更新。
Step2:判断主粒子群中的每一个粒子xi是否为潜在的最优解,如果是,则产生一个以xi为中心的小生境子粒子群。判断最优解时,设粒子xi的适应度值变化为σi,在算法进化过程中若在连续几代(本算法中设置是5代)内均满足σi <δ(δ设定的一个很小的阈值),则产生新的小生境子群。
Step3:对每一个子群中的粒子进行迭代。
Step4:对所有子群进行合并操作,当任意两个子群的最优粒在同一个山峰时,合并这两个子群。假设子群Di(i≥1)的最优粒子xm,子群Dj(j≥1)的最优粒子xn处于同一山峰时,即hill-valley(xm,xn)=0时,合并两个子群。合并后的子群粒子数目变大,保留适应度值较好的R个粒子,其余粒子移到主粒子群中。
Step5:对每个子群进行吸收粒子的操作,主群中的粒子xm移动到小生境的Di(i≥1)范围内,即对于任意xm∈Di都有hill-valley(xm,xn)=0,且Di中的粒子 数目小于R,则粒子xm被吸收到小生境子粒子Di中,若Di中的粒子数目等于R,用xm替换Di中适应度值最小的粒子。
Step6:判断是否满足终止条件,若不满足转到Step2。
3实验分析
为了验证INPSO算法的有效性,针对3个典型的多峰函数做了两组实验,第一组实验测试算法能否搜索到多峰函数的所有山峰;第二组实验测试算法的精度。测试函数如下:
(1)f1(x)=xsin(10πx)+2.0,x∈ (-1,2)。该函数具有17的局部最大值,这些峰值大小不等,间隔相等,当x =1.850549时,函数有全局最大值[7]为3.850274。
函数具有19个局部极大值,当x=-7.0835、-0.8003、5.4829时,函数有3个全局最大值:14.508008。
(3)f3(x,y)=cos(x)2+sin(y)2,x∈ (-5,5),y∈(-5,5)。函数具有12个局部极大值2。
测试中的参数设置 为:迭代次数50,惯性权重 ω =0.729 ,学习因子c1=c2 =1.49,实验结果为30次独立实验的平均值。
第一组实验是为了验证新算法的有效性,函数f1和f2 的初始种群规模为100,函数f3的初始种群规模为80。
3个函数运行的结果如图2所示,其结果是30次运行结果的平均值。图中星星表示粒子,a、b、c图是函数的图形表示,d、e、f图是小生境子群中最优粒子在图形中的位置。d图是函数f1的运行结果,基本上最优的粒子都爬到了山峰的顶端。e是函数f2的运行结果,所有的峰值都有粒子。f1 和f2是的维度是一维,函数f3的维度设定为二维。f图是函数f3的俯视效果图,图上的白色星星表示粒子。从图形上可以看出粒子处在山峰的顶端位置,本算法能够找到所有的峰值。因此,本算法对多元函数仍然适用。
第二组实验是为了验证新算法的有效性,将本文所得测试结果与NPSO算法[8]所得结果进行对比分析。参数的设置和第一组实验中的参数设置基本相同,个别参数设置如表1所示。本文INPSO算法不需要设置参数,是否合并两个子群由hill-valley判断两个子群中的最优粒子是否在同一山峰上实现。两种算法的实验对比结果如表2所示。
从实验结果可知,本文提出的INPSO与文献[8]提出的NPSO算法在一维函数f1和f2上都得到了较好的结果,收敛率是100,而在二维函数运行上INPSO算法每次都能搜索到函数的全部峰值,而NPSO算法只有26次找到全部峰值,收敛率87%。另外,INPSO算法搜索到每个峰值的平均位置偏差要比NPSO算法要小,说明本文提出的INPSO算法的精确度高于NPSO算法。
4结语
本文引入一个函数判断两个粒子是否在同一座山峰上,克服了NPSO算法需要输入两个参数的弊端。通过对3个典型函数的优化实验可以看出,本文所提出的算法能够找到多峰函数的所有峰值,并且在平均偏离度和收敛率上都优于NPSO方法,是一种有潜力的优化方法。改进后的小生境粒子群算法有更强的全局搜索能力和更高的收敛速度,能够高效地寻找到多个全局最优值是一种寻优能力、效率和可靠性更高的优化算法,其综合性能比基本NPSO算法有显著提高。
摘要:传统的小生境粒子群优化算法(NPSO)需要两个参数的输入,一个是判断子群合并的阈值,另一个是子群产生的阈值。参数设置的不当,将直接影响计算结果。引入一个函数判断两个点是否在同一座山峰上,以克服NPSO算法需要输入参数的弊端。在程序运行时,无须严格限定小生境的半径,也不需太多的先验知识。实验结果证明,该算法合理有效,能够能快速有效地找到多峰函数的全局最优点。
基于质心的改进型粒子群优化算法 篇10
粒子群优化(PSO)算法是一种模拟鸟类群体觅食行为的优化算法。该算法是由 Kennedy和 Eberhart[1] 于 1995年提出的一种优化算法。PSO算法的运行机理不是依靠个体的自然进化规律,而是对生物群体的社会行为进行模拟,通过对类似生物群体的行为的研究[2],发现生物群体中存在着一种社会信息共享机制,它为群体的进化提供了一种优势[3,4],这也是 PSO算法形成的基础。由于算法参数较少,易于实现,且能够较有效地解决复杂优化问题的特点,PSO算法已经被广泛用于很多优化问题上。
PSO算法由于种群的多样性,使其收敛性随着迭代的次数增加而快速下降,由于它的过早的收敛性很容易陷入局部极值,使得种群局部收敛速度变慢和种群进化停滞不前。该算法一经提出,越来越多的研究人员就开始针对基本PSO参数的选择、位置的变化、粒子的速度[4]或其他优化算法[5]来研究PSO的特点和其收敛性的改进[6]。例如文献[7]引入了基因换位和变异算子,文献[8]引入了牛顿法、最速下降法来对PSO算法进行优化。现通过对社会群体的智能行为和基于质心[9]的粒子群算法的研究,提出了一种新的基于质心的改进型粒子群优化算法模型(CPSO)。仿真实验结果表明,该算法的收敛速度和全局收敛性要优于PSO和改进型PSO(AF-PSO[10])。
1 基本PSO算法
PSO首先初始化为一组随机粒子群,每个粒子都有自己的位置矢量xi(i=1,2,…,M),速度矢量vj(j=1,2,…,M)和一个用于衡量粒子位置质量的参数值w,粒子根据自己及种群的搜索经验来调整自己的搜索方向,从而不断地改变自己的矢量值,为下一次迭代搜索的位置和方向做好准备,每个粒子在搜索过程所经历过的最好位置,就是粒子本身找到的最优解,整个种群找到的最好位置,就是整个种群目前找到的最优解。前者叫做个体最优解pi,后者叫做全局最优解pg。这样,粒子通过个体最优和全局最优指引自己不断地调整位置,从而产生新一代群体。粒子速度和位置矢量更新的公式如下
其中,Xi=(xi1,xi2,…,xin)为第i个粒子的当前位置,Vi=(vi1,vi2,…,vin)为第i个粒子的当前搜索速度,pi和pg分别为第i个粒子找到的最优位置和所有粒子的最好位置,t=1,2,…,为迭代的次数,w是惯性权重,其大小决定对粒子当前速度继承的多少;c1和c2是学习因子或加速系数,一般是正常数;ξ1,ξ2为两个相互独立的[0,1]区间中均匀分布的随机数。从式(1)可以看出粒子通过最初的位置和速度来提供飞行动力,在飞行中不断根据自身及同伴的新发现的最优位置和速度来调整自己,引导粒子飞向粒子群中的最好位置。
2 改进后的PSO算法
在基本PSO算法中,由于每个粒子在搜索时依靠的是自己和种群的经验,粒子之间缺乏合作和信息共享,使得大多数粒子将快速地向某一特定的区域搜索,最终陷入局部最优解中。现提出的基于质心的粒子群优化算法(CPSO)将通过提高粒子之间的合作和信息共享来避免粒子陷入局部最优解中。
假定pi是第i个粒子xi的最优解,M是种群规模,x
把式(3)和式(4)代入式(1)得到
v
c3ξ3(α×x
式(5)中α是[0,1]区间的一个常数,称为权重调节因子;c1和c2、c3是学习因子或加速系数,ξ3是[0,1]区间中均匀分布的随机数。
由式(5)和式(2)组成了基于质心的粒子群优化算法模型(CPSO)。新的算法表明种群中的每个粒子在搜索时不仅和个体最优解和全局最优解有关,而且还得依靠其他粒子的个体最优解和全局最优解,有效地提高了粒子之间的合作和信息共享能力,使整个PSO性能得到很大提高,在更新粒子的速度和位置过程中,限定粒子的搜索空间,对每一维的粒子xi都限制在[0,N]中,N为搜索区域边长。速度vij都限制在[-vmax,vmax]之间,使得粒子在飞行过程中速度始终在该范围内,不至于因为速度过快或过慢而飞离最优解或陷入局部最优解中。
CPSO算法实现流程如下:
(1) 在整个搜索范围内初始化所有的粒子;
(2) 计算每个粒子的适应值,并更新全局最优解;
(3) 根据粒子搜索的聚集度来决定是否要重新初始化粒子;
(4) 设定p
(5) 根据式(5)和式(2)来更新粒子的速度和位置;
(6) 如果搜索没有达到一个满意的解或一个预设的最大迭代数,返回步骤2;否则,停止迭代,输出结果。
3 仿真实验结果分析
为了证明CPSO算法的有效性,实验使用4个Benchmark函数来测试比较CPSO算法和基本PSO算法及其它改进型算法的实验结果。
(1) Ackley 函数,函数在搜索空间中存在很多局部极小值点,当 xi=0时达到全局最小值0。
-32≤xi≤32 (6)
(2) Rastrigrin 函数,函数在搜索空间中存在大量正弦凸起的局部极小值点,当xi= 0时达到全局最小值0。
-5.12≤xi≤5.12 (7)
(3) Rosenbrock 函数,函数在(1,1)处有一个全局最小值0。
-30≤x2≤30 (8)
(4) Schaffer函数,函数全局最大点在(0,0)处,而在距离全局最大点3.14的范围内,有无限个次全局最大点。
PSO,AF-PSO,CPSO(α=0.0, 0.5, 1.1)被分别运行50次,PSO和AF-PSO两算法共同参数设置相同,即种群规模设置为60,学习因子c1=c2=2.0,CPSO的学习因子c1=c2=c3=1.4,惯性权重w取值为从0.9到0.4线性递减,其他参数参照表1所列,3种算法的实验比较结果如表2所列。
从100个粒子中随机抽取50个粒子计算出粒子和其质心的位置以及粒子和其质心的距离偏差分别如图1、图2所示。从图中可以发现在一定速度范围内,合理利用质心迭代更新粒子的速度可以使粒子快速合理地向全局最优解飞行,很大程度上提高了算法的收敛性。
从表2可以清楚地看到,CPSO算法的求解速度和精度要优于其它两种算法,而且从均方差和求解成功率上来看,CPSO算法也要优于其他两种算法,平均求解成功率几乎都是100%。CPSO通过粒子内部之间合作和信息共享能有效地避免陷入局部最优解中,从而获得全局最优解。值得注意的是,对于不同的测试函数算法PSO、AF-PSO、CPSO表现出一定的差异性,以Ackley函数为例,见图3,可以看出,CPSO算法具有比PSO和AF-PSO更高的收敛性,CPSO通过粒子内部之间合作和信息共享能有效地避免陷入局部最优解中,从而快速地获得全局最优解,但其寻优结果比AF-PSO要差,原因是CPSO采用了质心提高了寻优速度,但难以保证达到最小值点。
4 结论
为了避免陷入局部最优解和有效地提高基本PSO的优化性能,提出了一种基于质心的新的粒子群优化模型(CPSO),其搜索最优解的能力得到很大提高,因为提高了粒子之间的合作和信息共享,从而大大降低了陷入局部最优解的概率。仿真实验结果证明该算法模型具有快速收敛速度和较高的全局收敛能力。如何使该算法在更广泛的领域里得到应用, 并且通过新的优化技术来提高该算法的性能将是下一步研究的重点。
参考文献
[1]Eberhart R C,Kennedy J.A new optimizer using particle swarm theo-ry.Proceedings of the 6th International Symposium on Micromachineand Human Science,Nagoya,Japan,1995:39-43
[2]邓璐娟,林楠,卢华琦,等.基于改进粒子群算法的测试数据自动生成研究.计算机测量与控制,2011;19(2):250-252
[3]Wilson E O.Sociobiology:the new synthesis.MA:BelknapPress,1975
[4]Jin Xinlei,Ma Longhua,Wu Tiejun.Convergence analysis of theparticle swarm optimization based on stochastic processes.ZidonghuaXuebao/Acta Automatica Sinica,2007;33(12):1263-1268
[5]Monson C K,Sepp K D.The Kalman swarm--a new app roach toparticle motion in swarm optimization.Proceedings of the Genetic andEvolutionary Computation Conference.Springer,2004:140-150
[6]Shelokar P S,Patrick S,Jayaraman V K.Particle swarm and ant col-ony algorithms hybridized for improved continuous optimization.Ap-plied Mathematics and Computation,2007;188(n1):129-142
[7]朱冰,齐名军.混合粒子群优化算法.计算机工程与应用,2012;48(9):47-50
[8]殷脂,叶春明,温蜜.结合局部优化算法的改进粒子群算法研究.计算机工程与应用,2011;47(9):51-53
[9]汪永生,李均利.质心粒子群优化算法.计算机工程与应用,2011;47(3):34-37
【改进多粒子群优化算法】推荐阅读:
基于改进粒子群算法的盘式制动器优化设计07-21
改进混沌粒子群算法10-18
改进的粒子群算法07-05
多目标粒子群算法12-29
粒子群优化算法研究10-23
离散粒子群优化算法10-27
混沌粒子群优化算法12-08
多目标粒子群优化06-10
自适应粒子群优化算法06-12
双层多目标粒子群优化08-08