粒子群优化(Particle Swarm Optimization,PSO)算法是1995年由美国社会心理学家James Kennedy和电气工程师Russell Eberhart共同提出的。同年,在IEEE国际神经网络学术会议上正式发表了题为《Particle Swarm Optimization》的文章,标志着粒子群算法的诞生。其基本思想是对鸟类群体行为研究结果的启发,并利用了生物学家Frank Heppner的生物群体模型(黄强等,2007)。粒子群算法与其他进化类算法相类似,也采用“群体”与“进化”的概念,同样是根据个体(粒子)的适应值大小进行操作。所不同的是,PSO算法的进化过程是一个自适应过程,粒子的位置代表被优化问题在搜索空间中的潜在解;粒子在空间中以一定的速度飞行,这个速度根据它本身的飞行经验以及同伴的飞行经验进行调整,决定它们飞翔的方向和距离。粒子们追随当前的最优粒子在解空间中搜索。PSO初始化为一群随机粒子,通过迭代来找到最优解。以求解上述梯级水库的多目标联合调度模型为例,PSO算法流程如下:
(1)确定参数:假设梯级水电站的个数为i,调度周期为T,以各水库水位作为粒子位置,则第i个粒子在T维搜索空间中的位置为Z(i,T),粒子种群规模为m,最大迭代次数及基本参数为c1、c2、r1、r2。
(2)初始化粒子群,对可行搜索空间进行优化,生成Z(i,T):在已知各水库始末水位Z0(i)的基础上,对各水库特征水位、下泄流量、水量平衡及流量平衡等约束条件进行转化,根据上述方法对可行搜索空间进行优化,得到满足约束的Z(i,1),Z(i,2),…,Z(i,T-1),Z(i,T)初始序列,即初始化该粒子群的位置和速度。以发电量或供水量作为粒子的适应度,计算每个粒子的适应度,挑选出最优粒子。
(3)对粒子的位置和速度进行更新、迭代。
(4)判断更新后的粒子是否满足不可转化约束。如不满足,则抛弃该组粒子,重新在初始序列中随机生成一组满足不可转化约束的粒子。(www.xing528.com)
(5)计算更新后粒子的适应度,比较选择,记录粒子的个体最优位置和全局最优位置。
(6)检验是否满足迭代终止条件。如果当前迭代次数达到了预先设定的最大迭代次数,或达到最小误差要求,则迭代终止,输出结果,否则转到(3),继续迭代。
由于标准遗传算法存在收敛速度慢、接近全局最优解时很难收敛、容易早熟收敛的问题,特别是对于复杂非线性问题(如梯级水库群联合优化调度)极易发生局部收敛。因此,许多改进的遗传算法应运而生。改进方法主要从搜索机制着手,有从编码方式的角度改进遗传算法,有通过采用自适应的交叉率和变异率改进的遗传算法,也有从算子的选择、复制、变异等遗传操作上进行的改进,极大地改进了标准遗传算法在水库联合调度应用中的求解效率和精度。同样,由于粒子群算法自身也有缺陷,如局部收敛即早熟问题、后期收敛速度慢的问题,因此难以处理优化问题的约束条件。粒子群算法主要的改进方式有对惯性权重和粒子的最大速度限制的改进、对变异算子的改进、引入邻域操作以及引进其他优化算法的混合粒子群算法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。