APP下载

基于改进飞蛾扑火算法的单时刻参数可变机组组合优化

2021-02-18赖伟鹏陈璟华胡文波

宁夏电力 2021年6期
关键词:二进制飞蛾适应度

赖伟鹏,陈璟华,胡文波

(广东工业大学 自动化学院,广东 广州 510006)

0 引 言

机组组合是指在满足各种实际运行约束条件的前提下,对机组进行合理调度以实现系统低成本、高可靠性运行的决策过程[1]。目前求解机组组合优化问题的常用方法可以分成经典算法与智能算法。其中分支定界法(branch and bound method,BBM)、混合整数线性规划(mixed integer linear programming,MILP)、动态规划法(dynamic programming,DP)、优先次序法(priority rule,PL)、拉格朗日松弛法(Lagrangian relaxation,LR)等经典算法因表达简单、鲁棒性强、收敛速度快而被长期应用[2]。随着机组数目不断增加,高维度问题的出现使得经典算法求取最优解出现各种问题。

智能优化算法因具有良好的求解速率及全局搜索能力而被应用于求解机组组合问题。文献[3-6]分别运用带精英策略的非支配排序遗传算法(elitist non-donminated sorting genetic algorithm,NSGA-II)、改进二进制微分进化算法(binary differential evolution,BDE)、离散鲸鱼优化算法、离散纵横交叉算法对机组组合优化问题进行求解。文献[7]提出求解大规模系统的两阶段机组组合方法,运用改进PL法求解机组启停状态,但PL所求解的质量会随系统规模增加而降低。文献[8]将智能优化算法与经典算法相结合,该方法在搜索能力上有所提升,但由于采用经典算法对所有候选解进行调整,导致解的多样性有所下降。文献[9]提出结合PL法与双重粒子群算法的机组组合降维求解方法,运用PL法避免算法早熟,同时对机组组合进行降维处理,构建单时刻机组组合优化以提升求解速率,但该文献采用降维方式对机组组合进行拆分,而未对单时刻变量进行调整,使得单时刻变量优势未得到发挥。在双阶段机组组合问题中,负荷分配产生的总费用将作为机组启停的适应度进行启停状态优化,因此能否在负荷分配阶段获取更优秀的解是决定机组组合求解质量的关键,而这需要算法具有更好的全局搜索能力。

飞蛾扑火算法(moth flame optimization,MFO)在搜索方式上与其他算法有所不同,MFO会在整个搜索空间中提供多个火焰,飞蛾围绕相应火焰进行搜索,而非仅围绕单一空间最优解进行搜寻,该特性为算法提供优秀的全局搜索能力,在经济调度[10-11]、稳定器参数优化[12]和最优潮流计算[13]等方面都取得了很好的效果。本文在飞蛾扑火算法基础上进行改进,进一步提升算法搜索能力,同时提出参数可变策略,对单时刻变量进行调整以提升运算收敛速率;提出PL法概率调整策略,在保证候选解多样性的同时提升解的质量。

1 机组组合数学模型

1.1 目标函数

火电机组组合问题目标函数通常为在调度周期内总费用(机组煤耗费用与启停费用)最小,即:

(1)

式中:TC—火电机组运行总费用;

SUi—机组i的启动费用,机组停机费用往往远小于开机费用,故在启停费用中只考虑开机费用而忽略停机费用。

机组的耗能特性函数一般表示为出力的二次函数,如式(2)所示:

(2)

式中:ai,bi,ci—常数,代表机组i的运行耗量特性。

火电机组的启动方式主要有冷启动和压火启动两类。SUi根据机组的启动方式不同而不同,如式(3)所示:

(3)

式中:Ki—机组i启动的固定费用;

Bi,τi—机组i的启动耗能系数;

1.2 约束条件

1)功率平衡约束

(4)

2)发电机输出功率上下限约束

(5)

3)机组旋转备用容量约束

(6)

4)机组爬坡、滑坡速率约束

(7)

5)机组最小启停时间约束

(8)

Ng—机组数目;

URi,DRi—机组i出力爬坡速率的上下限;

MUTi,MDTi—机组最小连续开机和停机时间。

2 优化算法

本文将机组组合问题拆分为单时刻机组启停状态主问题及经济分配子问题。本文采用成熟且广泛使用的二进制粒子群算法求解机组启停状态主问题,采用全局搜索能力更优的改进飞蛾扑火算法求解负荷分配子问题。

2.1 二进制粒子群算法

二进制粒子群算法将离散问题空间映射到连续空间中,使粒子在状态空间中取值仅为0与1。

二进制粒子群算法速度更新公式为

(9)

二进制粒子群算法位置更新公式为

(10)

(11)

式中:w—惯性权重;

c1与c2—学习因子;

r1与r2— 0到1的随机数;

2.2 改进的飞蛾扑火算法

2.2.1 飞蛾扑火算法

飞蛾扑火算法[14]作为一种新型群智能优化算法,其灵感来源于夜间飞蛾围绕灯光螺旋飞行的生物特性。螺旋飞行代表飞蛾围绕火焰周围飞行,而非在两者直线空间搜索,从而使算法具有更广的搜索空间,保证了算法的全局搜索及局部开发能力。飞蛾作为搜索空间中的候选解,用矩阵M表示,数组ZM储存各飞蛾对应的适应度。火焰作为各飞蛾在搜寻过程中获取的局部最优解,用矩阵F表示,数组ZF存储各火焰相应的适应度值。

式中:N—飞蛾的个数;

dm—维度,即待求变量的个数。

飞蛾的位置更新公式为

(14)

式中:Mn—第n只飞蛾更新后的位置;

Dn—第n只飞蛾与第j个火焰的距离;

b—等角螺线参数;

t—从1线性递减到-1的随机数。

为提升算法收敛速率及收敛精度,MFO采用火焰自适应减少机制,根据公式(15)确定火焰数目,仅保留NF内最佳火焰。

(15)

式中:NF—当前火焰数目;

NFmax—最大火焰数量;

k—当前迭代次数;

T—最大迭代数。

2.2.2 Tent混沌序列

各类元启发式算法通常随机生成初始种群,而随机生成的种群分布不均匀,造成算法的优化速度及收敛性能降低。为提升初始种群的质量,增加种群多样性,提高算法的搜索效率,本文基于混沌理论,采用Tent混沌序列对算法初始种群进行改良,构建混沌飞蛾扑火算法(adaptive binary particle swarm optimization algorithm-adaptive chaos moth flame optimization,ABPSO-ACMFO),具体步骤如下:

(1)生成1个N行dm列的随机数组,构成飞蛾初始种群M,各参数含义同公式(12)。

(2)根据公式(16)对数组的每个元素进行计算,生成Tent混沌映射数组,并将该数组作为算法初始种群进行后续算法运算。

图1是分别采用随机生成与Tent混沌映射生成的50个初始功率值,对比可知,Tent混沌映射产生的初始种群重叠数更少,初始种群质量更好。

(a)随机生成种群

Tent映射公式为

(16)

3 单时刻参数可调机组组合优化

机组组合问题变量往往为包含调度时刻及机组数目的矩阵变量。以矩阵形式处理约束条件通常采用以下三种方法:忽略次要约束条件,加入惩罚系数,运用调整策略。其中,忽略次要约束条件可导致出现无用解;运用惩罚系数法难以处理离散约束条件,此外过大的惩罚系数会导致惩罚函数值在可行域的边界附近呈现病态;运用调整策略能较好处理约束条件,然而新生成的矩阵变量不一定能满足约束条件,需要修正调整,这将导致计算复杂度增加。故本文将机组组合问题拆分为单时刻机组组合优化,将矩阵形式转化为向量形式,降低计算复杂度。

3.1 二进制粒子群算法解决机组启停

3.1.1 粒子群种群初始化

在粒子群种群初始化时,对初始化粒子进行调整,保证收敛速度。

(17)

2)确定算法基本优化参数。状态保持不变的机组处于已知状态,剩余未确定状态的机组通过算法进行求解,而不同时间段已知的机组状态数目有所差异,导致二进制粒子群算法需计算的未知量有较大差距。按照最多未知量来设定算法基本参数将造成未知量少时算力浪费,而基本参数设定较少将造成未知量多时算法无法收敛;因此本文采用可变化基本参数,对未知变量数划分区间,在不同区间,二进制粒子群算法的迭代次数及种群数按公式(18)进行调整,构建参数可变二进制粒子群算法(adaptive binary particle swarm optimization algorithm,ABPSO)。

式中:Nt—第t时刻的算法种群数;

Tt—t时刻的算法迭代次数;

3)劣解初始粒子概率调整。劣解粒子代表机组运行数目过多或者过少,机组运行数目过多将造成系统备用容量过多,增加运行费用。机组运行数目过少将导致系统不满足功率平衡约束及备用容量约束。而直接对粒子运用策略调整将对种群多样性造成影响,容易陷入局部最优解。本文采用概率调整策略。对于开启机组数目过少、机组最大输出总功率小于负荷的粒子根据公式(19)开启最优机组,直至满足功率平衡约束及备用容量约束。对于开启机组数目过多,机组最小输出总功率大于负荷的粒子,根据公式(19)确定开启机组中的最劣机组,如果最劣机组停机后系统不满足约束,则停止机组调整;如果满足,则按概率停止该机组。

机组排序指标为

(19)

式中:Pait—发电机t时刻输出功率上下限的平均值。

3.1.2 粒子群算法更新

粒子群按式(9)—(11)进行速度及方向的更新。离散粒子群算法迭代过程中,将粒子代表的机组启停排序过度到飞蛾扑火算法,运用飞蛾扑火算法计算出该排序的最优机组出力以及最少总费用,将该排序的最少总费用作为该粒子适应度,以确定该代的全局最优解以及粒子的局部最优解。多次重复迭代过程直到确定当前调度时刻的最优机组组合状态及对应的最优负荷分配。在迭代更新过程中,对劣解粒子通过机组排序指标进行概率调整。

3.2 基于飞蛾扑火算法的负荷分配

3.2.1 飞蛾扑火算法初始化

1)运行机组数目随粒子不同及时刻变化而呈现不确定性,飞蛾扑火算法只需求解开启机组的输出功率,因此将粒子开启机组数目作为飞蛾扑火算法待求变量数。通过公式(18)确定飞蛾数目及迭代次数,从而提升优化过程效率,减少算力浪费。

2)根据公式(20)求出单时刻机组最大、最小输出功率,将机组最大、最小输出功率作为种群上下限。

单时刻机组最大、最小输出功率具体计算公式为

(20)

3)应用Tent混沌映射生成初始种群,提升种群多样性。将参数可变策略与Tent混沌应用于飞蛾扑火算法,构建参数可变ABPSO-ACMFO。

3.2.2 飞蛾扑火算法更新

为使所求解满足功率平衡约束及备用容量约束,将公式(21)作为算法适应度函数。在算法种群初始化后,运用适应度函数求解各飞蛾对应适应度。通过适应度大小对比,将更好的飞蛾作为新火焰对矩阵进行调整,并通过公式(14)、(15)进行飞蛾位置更新及减少火焰数目。多次迭代并将最终所得最优总费用作为该粒子的适应度返回二进制粒子群算法。

(21)

3.2.3 粒子群算法与飞蛾扑火算法流程

1)初始时刻确定二进制粒子群算法的基本参数并产生初始种群,并对劣解粒子进行概率调整。

2)劣解粒子概率调整,得到改进粒子种群。

3)根据粒子的开机数目确定飞蛾扑火算法基本参数,并以单时刻机组最大、最小输出功率作为种群上下限,采用Tent混沌映射生成初始种群。

4)运用公式(21)求解适应度,将飞蛾按适应度递增进行排列后赋值给第一代火焰。运用公式(14)更新飞蛾位置,并计算新飞蛾适应度。将新飞蛾适应度与火焰适应度进行排序,选取适应度更优的空间位置作为新一代火焰,通过公式(15)减少火焰数目。多次迭代求出最优出力及最优总费用。

5)将最优总费用作为二进制粒子适应度以确定全局最优解及个体极值。通过公式(9)、公式(10)进行二进制粒子更新。

6)重复采用飞蛾扑火算法求解粒子适应度及粒子位置更新过程直到二进制粒子群算法迭代结束,得到初始时刻最优机组出力、机组最优启停状态及最优总费用。

7)进入下一调度时刻,根据最小启停约束确定部分机组状态,将状态不确定的机组数作为待求变量,根据公式(18)确定算法基本参数,并生成初始种群。

8)重复步骤(2)—(7)直到求出整个调度时刻的最优机组启停状态及最优机组出力。

4 仿真及分析

为验证本文所提方法的有效性,分别采用12机及100、200机算例进行仿真,其中12机发电机参数及负荷数据见文献[15],100机组与200机组参数及负荷数据由文献[16]的10机组数据复制生成。程序在Wndows10、Matlab2018b平台上实现。

4.1 12机系统仿真及分析

为验证改进飞蛾扑火算法的全局搜索能力,选取12机算例中第12 h负荷分配过程作为单时刻算例,并运用改进飞蛾扑火算法、飞蛾扑火算法与连续粒子群算法进行求解。其中设置前11 h机组启停状态及输出功率相同,第12 h机组启停状态为仅7、8机组关闭。其中二进制粒子群参数为c1=c2=2,w=0.4。飞蛾扑火算法参数为b=1,t=[-1,1]。三种算法的收敛曲线如图2所示。由图2可知,改进的飞蛾扑火算法在62代收敛于3.691×104美元,未改进飞蛾扑火算法在92代收敛于3.709×104美元,粒子群算法在52代收敛于3.736×104美元。与粒子群算法相比,飞蛾扑火算法能获得更低的运行费用,表明该算法具有更优的全局搜索能力。从迭代次数及运行费用对比可知,与未改进相比,改进之后的飞蛾扑火算法在收敛精度及收敛速度上有进一步提升。

图2 单时刻算法收敛曲线

为验证改进飞蛾扑火算法在全时刻机组组合问题方面的求解能力,分别采用二进制粒子群算法及飞蛾扑火算法(binary particle swarm optimization algorithm-moth flame optimization,BPSO-MFO)、二进制粒子群算法及混沌飞蛾扑火算法(binary particle swarm optimization algorithm-chaos moth flame optimization,BPSO-CMFO)及文献[9]的混合遗传算法(hybrid genetic algorithm,HGA)、混沌优化算法(chaotic optimization algorithm COA)、混沌混合遗传算法(hybrid chaotic genetic algorithm,HCGA)、双重粒子群算法(dimension reduction particle swarm optimization,DRPSO)求解12机算例,结果对比如表1所示。由表1可知:运用BPSO-MFO求得运行费用比文献[15]所提的TOPSO相比更少;而对飞蛾扑火算法进行改进后,运行费用进一步降低,与TOPSO所求运行费用相比减少了8674美元,表明在求解机组组合问题上,采用改进飞蛾扑火算法具有很好的经济效益。

表1 优化结果对比

4.2 大规模机组组合仿真及分析

本文采用对10机系统进行复制的方式,生成100及200机系统,并分别采用参数固定的二进制粒子群及飞蛾扑火算法(binary particle awarm optimization algorithm-chaos moth flame Optimization,BPSO-CMFO)、参数可调的二进制粒子群及飞蛾扑火算法(adaptive binary particle swarm optimization algorithm-adaptive chaos moth flame optimization,ABPSO-ACMFO)、PL法概率调整BPSO-CMFO与运用PL法概率调整的ABPSO-ACMFO对多机系统进行求解,结果如表2所示。由表2可知,采用BPSO-CMFO求解200机系统所得运行费用为采取100机系统运行费用的192.4%,求解200机系统所用耗时为求解100机系统耗时的182.8%,表明运行费用及计算耗时随机组规模增加平稳上升,算法搜索能力及运算速率并未出现明显下降。

从表2中ABPSO-ACMFO与BPSO-CMFO求解的耗时数据对比可知,采用参数可变策略后,求解100机及200机系统的运行时间分别降低12.8%与15.8%,体现参数可调策略能根据变量数目调整算法运行参数,减少不必要运算时间。PL法概率调整BPSO-CMFO及BPSO-CMFO求解的运行费用数据对比可知,采用PL法概率调整策略后运行费用分别降低17 289美元及98 734美元,表明PL法概率调整策略通过改善候选解质量,能有效提升最终解的质量。从表2中PL法概率调整ABPSO-ACMFO的耗时及运行费用数据可知,综合采用PL法概率调整策略及参数可变策略能有效提升求解过程中运行速率及运行效率,体现了本方法在求解大规模机组组合问题上的优越性。

表2 大规模机组优化结果对比

5 结 论

本文提出基于二进制粒子群及改进飞蛾扑火算法的单时刻参数可调机组组合优化方法,将总调度周期优化拆分为单时刻启停状态优化及单时刻负荷分配优化。采用二进制粒子群算法求解单时刻的机组启停,改进飞蛾扑火算法求解单时刻负荷分配,两种算法相互迭代,更快速、有效地求解最优机组组合。提出参数可调策略,根据算法待求变量数目的不同,调节算法种群数目和迭代次数以提升算法运行速率,同时运用PL法对候选解进行概率调整以提升解的质量及平衡种群的多样性。经典算例仿真结果证明了本文所提优化求解策略具有更好的经济效益,同时在求解大规模机组组合问题上的有效性及优越性。

猜你喜欢

二进制飞蛾适应度
改进的自适应复制、交叉和突变遗传算法
用二进制解一道高中数学联赛数论题
Trolls World Tour魔发精灵2
有用的二进制
飞蛾说
花木兰
有趣的进度
启发式搜索算法进行乐曲编辑的基本原理分析
勇敢的小飞蛾
基于人群搜索算法的上市公司的Z—Score模型财务预警研究