一种基于多目标优化算法的电力网络关键节点识别方法与流程

文档序号:16249467发布日期:2018-12-11 23:52阅读:331来源:国知局
一种基于多目标优化算法的电力网络关键节点识别方法与流程

本发明涉及电力网络系统中的关键节点识别领域,具体的说是一种基于多目标优化算法的电力网络关键节点识别方法。

背景技术

电力网络是关乎人们生活的重要的基础设施,电力网络中的安全问题至关重要,近些年来,一些大规模停电事件的发生严重影响了人们的生活,研究发现,大规模停电事件的发生往往是由一些节点设施的失效导致的,这些节点设施的失效可能是由一些意外事件或者恶意破坏导致的,在这种情况下,电力网络中的关键节点设施的识别至关重要,通过识别关键节点设施,用户可以对这些对电力网络影响较大的节点设施进行重点保护,防止它们遭到破坏,对电力网络造成较大影响。因为用户的资源是有限的,用户需要仔细选择一些节点,这些节点的数量尽可能的少,同时这些节点的失效尽可能会对电力网络造成比较大的破坏。目前电力网络中的关键节点识别主要分为以下两类:

第一类:需设定关键节点的数量。提前设定电力网络中所需识别的关键节点数量,目前常见的有开发寻找一些衡量电力网络中节点关键性的指标,按照这些指标将节点排序来寻找所需的关键节点组合或者通过一些优化方法来寻找所需的关键节点组合,但这类方法需提前设定好关键节点的个数。

第二类:不需设定关键节点的数量。不需要提前设定电力网络中所需识别的关键节点数量,将关键节点的数量作为优化目标,从决策者的角度出发,决策者选择的关键节点数量尽可能的少,而选择的关键节点受到攻击后能对电力网络造成的破坏尽可能的大,这种情况下不需要事先设定关键节点的数量,目前常见的算法比如多目标概率解发现方法比较简单,缺失合适的策略,比如初始化、局部搜索等策略,所以在具体问题中的表现不是很好。



技术实现要素:

本发明针对现有技术中的一些不足,提供一种基于多目标优化算法的电力网络关键节点识别方法,将电力网络表征为一个二元组,利用多目标优化算法,通过有效的初始化策略、局部搜索策略,以期能短时间内解决电力网络关键节点识别的单一性问题,提供多种关键节点数量不同的关键节点组合供决策者选择,同时提高关键节点识别的准确性与有效性,从而满足解决实际问题的需要。

为解决上述技术问题,本发明采用如下技术方案:

一种基于多目标优化的电力网络关键节点的获取方法,其特征在于,按如下步骤进行:

(一)将电力网络表征为一个二元组

定义所述电力网络表征为二元组{v,e},v={v1,v2,…,vi,…,vn}表示电力网络中的发电机、变压器或变电站,vi表示第i个发电机、变压器或变电站;n为节点的总数;e={eij|i=1,2,…,n;j=1,2,...,n}表示任意两个节点之间存在输电线;eij表示第i个节点vi与第j个节点vj之间是否存在输电线路,若eij=1表示第i个节点vi与第j个节点vj之间有输电线路相连,且第i个节点vi与第j个节点vj互为称为邻居节点;若eij=0,表示第i个节点vi与第j个节点vj之间无输电线路相连;

初始时,根据式(1)可以计算出每个节点vi的初始负载li,根据式(2)计算出节点vi的容量,根据式(3)计算出第i个节点失效后,其上的负载向未失效的邻居节点j转移的量,根据式(4)判断节点vj在负载增加之后,是否失效,如果式(4)成立,则节点vj失效,否则节点vj不失效;直到电力网络中没有新的节点失效,级联过程结束;

li=a*dib(1)

其中di为节点vi的度,a、b为设定的参数;

ci=t*li(2)

其中t为设定的参数,用来衡量网络的健壮程度;

其中li为失效节点vi的负载,dj为节点vj的度,m表示节点vi中的未失效邻居节点;

(fj+δlji)>cj(4)

其中fj为节点vj的负载,δlji为节点vj的负载增加量,cj为节点vj的容量;

(二)采用多目标优化算法进行识别

步骤1、个体编码

对于电力网络中的所有节点,按照二进制方式进行编码,得到表示关键节点组合的一个个体x={x1,x2,...,xi,...xn},xi表示电力网络中第i个节点的状态,若xi=1表示节点xi为关键节点,受到攻击,发生失效,若xi=0表示节点xi为普通节点,没有受到攻击,处于正常状态;

步骤2、初始化

步骤2.1、定义种群规模为popsize,最大迭代次数为maxgen,初始迭代次数为gen=1,控制局部搜索次数的参数为m;

步骤2.2、网络评估

利用折半的思想先对电力网络进行评估,评估大概多少个节点的失效会造成整个电力网络的完全失效;

步骤2.2.1、计算每个节点的度di,将网络中每个节点按照节点的度di指标降序排序;

步骤2.2.2、记left=0,right=n,n为网络节点的数量,选取排序的前(right+left)/2个节点进行失效,记级联之后总的失效点数量为cf;

步骤2.2.3、判断cf是否小于n,如果cf不小于n,则将right=(right+left)/2,执行步骤2.2.2;如果cf小于n,则将left=(right+left)/2,执行步骤2.2.2;直到(right-left)≤1停止,将此时的right值记为max_num;

步骤2.3、设种群中有popsize个个体{x1,x2,...xi,...xpopsize},其中xi表示第i个个体;

步骤2.4、依据步骤2.2.3得到的max_num值,选择按度di降序排序之后的前max_num个节点,将这些节点的基因位值xi置为1,其他节点的基因位值xi置为0,构成种群中的一个个体,记为xpopsize;

步骤2.5、将0到max_num这个区间平均分成popszie-1个子区间,在每一个子区间里范围里随机选取一个值,对其取整,记为t,所以有popszie-1个t,记为t={t1,t2,...,tk,...,tpopsize-1},tk表示第i个子区间对应的t值,同时也是第k个个体xk中处于失效状态的节点数量;

步骤2.6、依据步骤2.5得到的第k个体对应的tk值,可以得出第k个个体xk中处于失效状态的节点数量为tk,具体确定第k个个体中每一个节点的基因位值xi;

步骤2.6.1、初始时每个节点处于正常状态,xi=0;

步骤2.6.2、随机从网络处于正常状态的节点中选取一个节点i,将它的基因位值xi置位1,更新节点的状态为失效状态;

步骤2.6.3、从节点i处于正常状态的邻居节点中选择度最大的节点j,将其的基因位值xj置位1,如果节点i的邻居节点中处于正常状态的节点为空集,转为步骤2.6.2,直到网络中处于失效状态的节点数量达到tk,将处于正常状态节点的基因位置为0,得到第k个个体xk={x1,x2,...,xi,...xn};

步骤2.7、重复执行步骤2.6popszie-1次得到个体{x1,x2,...xi,...xpopsize-1},加上步骤2.4得到的个体xpopsize,构成初始种群p1={x1,x2,...xi,...xpopsize};

步骤2.8、利用式(5)计算初始种群中第k个体xk相应的2个目标函数,包括:关键节点的数量占电力网络的比例,越小越好,关键节点失效后,最终电力网络中未失效节点占电力网络的比例,越小越好;

其中是统计第k个个体xk中受攻击的节点数量,xi表示个体xk中第i个节点的状态,为0表示未受到攻击,为1表示受到攻击,f(xk)为电力网络在个体xk体现的攻击下,电力网络最终的失效点数量,n为电力网络中节点的数量;

步骤2.9、利用非支配排序算法对所述初始化种群进行排序,得到排序后的具有多个前沿面的种群;

步骤2.10、根据欧式距离计算所述排序后的具有多个前沿面的种群的拥挤距离,并根据所得到的拥挤距离,对所述排序后的具有多个前沿面的种群进行降序排序,得到再次排序后的具有多个前沿面的种群;

步骤3、局部搜索

步骤3.1、通过级联模型计算电力网络在个体xi中的失效策略下,各个节点的负载情况,找出未失效节点;

步骤3.2、分别单独对于未失效节点失效,选择对于最终失效规模增加最大的节点j,将其在个体xi中的基因位xj置为1;

步骤3.3、对于个体xi中基因位为1的点,分别单独将其基因位置为0,选择对于最终失效规模增加最小的节点j,将其在个体xi中的基因位置为0;

步骤4、种群进化

步骤4.1、gen=2;

步骤4.2、根据式(6)判断当前种群是否要进行局部搜索,如果式(6)成立,对当前种群的第一前沿面的个体转为步骤3执行局部搜索,如果不成立,则执行步骤4.3表示不执行局部搜索;

gen|m==0(6)

其中,gen为当前的迭代次数,m是设定的参数,用来控制局部搜索的次数,‘|’为取模运算;

步骤4.3、采用锦标赛选择的策略对所述再次排序后的具有多个前沿面的种群进行选择,得到交配池,作为第gen次迭代的种群;

步骤4.4、利用交配池中的个体进行交叉变异产生新的大小为popsize的种群,称为子种群;

步骤4.5、根据步骤2.8计算第gen次迭代的子种群中个体相应的攻击代价、攻击效果;

步骤4.6、混合父种群和子种群,进行非支配排序并对排序后的种群依据欧式距离计算拥挤距离,根据所得到的拥挤距离,从非支配排序后的混合种群中选出popsize个个体作为第gen+1次迭代的种群;

步骤4.7、将gen+1赋值给g;并重复执行步骤4.2,直到迭代次数gen>maxgen为止,从而得到最终迭代后的种群,记为lastpop;

步骤4.8、并对种群lastpop进行非支配排序得到第一前沿面,前沿面中的电力网络关键节点组合可以为决策者提供多组不同关键节点数量的关键节点组合。

与已有技术相比,本发明有益效果体现在:

1、与固定关键节点数量,来不断优化关键节点组合的单目标相比,本算法能同时得到一组不同关键节点数量的关键节点组合;

2、与不固定关键节点数量的多目标方法相比,本算法提出了一种有效的初始化策略以及局部搜索策略,能有效提高关键节点识别的准确性。

附图说明

图1本发明算法流程图;

图2电力网络关键节点失效级联示意图。

具体实施方式

如图1、2,一种基于多目标优化算法的电力网络关键节点识别方法,按如下步骤进行:

(一)电力网络表征为一个二元组

定义所述电力网络表征为二元组{v,e},v={v1,v2,...,vi,...,vn}表示电力网络中的发电机、变压器或变电站,vi表示第i个发电机、变压器或变电站;n为节点的总数;e={eij|i=1,2,...,n;j=1,2,...,n}表示任意两个节点之间存在输电线;eij表示第i个节点vi与第j个节点vj之间是否存在输电线路,若eij=1表示第i个节点vi与第j个节点vj之间有输电线路相连,且第i个节点vi与第j个节点vj互为称为邻居节点;若eij=0,表示第i个节点vi与第j个节点vj之间无输电线路相连;

初始时,根据式(1)可以计算出每个节点vi的初始负载li,根据式(2)计算出节点vi的容量,根据式(3)计算出第i个节点失效后,其上的负载向未失效的邻居节点j转移的量,根据式(4)判断节点vj在负载增加之后,是否失效,如果式(4)成立,则节点vj失效,否则节点vj不失效;直到电力网络中没有新的节点失效,级联过程结束;

li=a*dib(1)

其中di为节点vi的度,a、b为设定的参数;

ci=t*li(2)

其中t为设定的参数,用来衡量网络的健壮程度;

其中li为失效节点vi的负载,dj为节点vj的度,m表示节点vi中的未失效邻居节点;

(fj+δlji)>cj(4)

其中fj为节点vj的负载,δlji为节点vj的负载增加量,cj为节点vj的容量;

(二)利用多目标优化算法进行识别

步骤1、个体编码

对于电力网络中的所有节点,按照二进制方式进行编码,得到表示关键节点组合的一个个体x={x1,x2,...,xi,...xn},xi表示电力网络中第i个节点的状态,若xi=1表示节点xi为关键节点,受到攻击,发生失效,若xi=0表示节点xi普通节点没有受到攻击,处于正常状态;

步骤2、初始化

步骤2.1、定义种群规模为popsize,最大迭代次数为maxgen,初始迭代次数为gen=1,控制局部搜索次数的参数为m;

步骤2.2、网络评估

利用折半的思想先对电力网络进行评估,评估大概多少个节点的失效会造成整个电力网络的完全失效;

步骤2.2.1、计算每个节点的度di,将网络中每个节点按照节点的度di指标降序排序;

步骤2.2.2、记left=0,right=n,n为网络节点的数量,选取排序的前(right+left)/2个节点进行失效,记级联之后总的失效点数量为cf;

步骤2.2.3、判断cf是否小于n,如果cf不小于n,则将right=(right+left)/2,执行步骤2.2.2;如果cf小于n,则将left=(right+left)/2,执行步骤2.2.2;直到(right-left)≤1停止,将此时的right值记为max_num;

步骤2.3、设种群中有popsize个个体{x1,x2,...xi,...xpopsize},其中xi表示第i个个体;

步骤2.4、依据步骤2.2.3得到的max_num值,选择按度di降序排序之后的前max_num个节点,将这些节点的基因位值xi置为1,其他节点的基因位值xi置为0,构成种群中的一个个体,记为xpopsize;

步骤2.5、将0到max_num这个区间平均分成popszie-1个子区间,在每一个子区间里范围里随机选取一个值,对其取整,记为t,所以有popszie-1个t,记为t={t1,t2,...,tk,...,tpopsize-1},tk表示第i个子区间对应的t值,同时也是第k个个体xk中处于失效状态的节点数量;

步骤2.6、依据步骤2.5得到的第k个体对应的tk值,可以得出第k个个体xk中处于失效状态的节点数量为tk,具体确定第k个个体中每一个节点的基因位值xi;

步骤2.6.1、初始时每个节点处于正常状态;

步骤2.6.2、随机从网络处于正常状态的节点中选取一个节点i,将它的基因位值xi置位1,更新节点的状态为失效状态;

步骤2.6.3、从节点i处于正常状态的邻居节点中选择度最大的节点j,将其的基因位值xj置位1,如果节点i的邻居节点中处于正常状态的节点为空集,转为步骤2.6.2,直到网络中处于失效状态的节点数量达到tk,将处于正常状态节点的基因位置位0,得到第k个个体xk={x1,x2,...,xi,...xn};

步骤2.7、重复执行步骤2.6popszie-1次得到个体{x1,x2,...xi,...xpopsize-1},加上步骤2.4得到的个体xpopsize,构成初始种群p1={x1,x2,...xi,...xpopsize};

步骤2.8、利用式(5)计算初始种群中第k个体xk相应的2个目标函数,包括:关键节点的数量占电力网络的比例,越小越好,关键节点失效后,最终电力网络中未失效节点占电力网络的比例,越小越好;

其中是统计第k个个体xk中受攻击节点的数量,xi表示个体xk中第i个节点的状态,为0表示未受到攻击,为1表示受到攻击,f(xk)为电力网络在个体xk体现的攻击下,电力网络最终的失效点数量,n为电力网络中节点的数量;

步骤2.9、利用非支配排序算法对所述初始化种群进行排序,得到排序后的具有多个前沿面的种群;

步骤2.10、根据欧式距离计算所述排序后的具有多个前沿面的种群的拥挤距离,并根据所得到的拥挤距离,对所述排序后的具有多个前沿面的种群进行降序排序,得到再次排序后的具有多个前沿面的种群;

步骤3、局部搜索

步骤3.1、通过级联模型计算电力网络在个体xi中的失效策略下,各个节点的负载情况,找出未失效节点;

步骤3.2、分别单独对于未失效节点失效,选择对于最终失效规模增加最大的节点j,将其在个体xi中的基因位xj置为1;

步骤3.3、对于个体xi中基因位为1的点,分别单独将其基因位置为0,选择对于最终失效规模增加最小的节点j,将其在个体xi中的基因位置为0;

步骤4、种群进化

步骤4.1、gen=2;

步骤4.2、根据式(6)判断当前种群是否要进行局部搜索,如果式(6)成立,对当前种群的第一前沿面的个体转为步骤3执行局部搜索,如果不成立,则执行步骤4.3表示不执行局部搜索;

gen|m==0(6)

其中,gen为当前的迭代次数,m是设定的参数,用来控制局部搜索的次数,‘|’为取模运算;

步骤4.3、采用锦标赛选择的策略对所述再次排序后的具有多个前沿面的种群进行选择,得到交配池,作为第gen次迭代的种群;

步骤4.4、利用交配池中的个体进行交叉变异产生新的大小为popsize的种群,称为子种群;

步骤4.5、根据步骤2.8计算第gen次迭代的子种群中个体相应的攻击代价、攻击效果;

步骤4.6、混合父种群和子种群,进行非支配排序并对排序后的种群依据欧式距离计算拥挤距离,根据所得到的拥挤距离,从非支配排序后的混合种群中选出popsize个个体作为第gen+1次迭代的种群;

步骤4.7、将gen+1赋值给g;并重复执行步骤4.2,直到迭代次数gen>maxgen为止,从而得到最终迭代后的种群,记为lastpop;

步骤4.8、并对种群lastpop进行非支配排序得到第一前沿面,前沿面中的电力网络关键节点组合可以为决策者提供多组不同关键节点数量的关键节点组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1