一种基于深度优先的配电网路径搜索方法与流程

文档序号:11231404阅读:438来源:国知局
一种基于深度优先的配电网路径搜索方法与流程

本发明涉及一种基于深度优先的配电网路径搜索方法,属于配电网的分析领域。



背景技术:

目前,配电网的规划和运行中存在大量需要分析的问题,如配电网重构、馈线供电能力分析、配电网n-1分析、配电网n-1分析、负荷转供路径优化等。配电网的路径在这些问题的分析中起到重要的作用。现有的配电网路径搜索方法中搜索得到的路径不够全面,难以对路径进行分类利用,使用时效率较低。且无法直接通过得到路径对配电网的运行结构和运行方式进行充分完整的描述,在配电网分析中,会产生大量不符合要求的运行结构,需要另外采取搜索生成树等方法,以保证配电网正确的运行结构,降低了效率。



技术实现要素:

为了克服上述现有方法的不足,本发明提供了一种基于深度优先的配电网路径搜索方法。该方法基于深度优先的思想,对配电网的拓扑图进行遍历,并按特定的条件筛选,得到配电网中所有的供电路径。通过对搜索得到的路径进行分类,最终得到三种供电路径:按电源分类的所有供电路径;按路径终点的负荷分类的所有路径;按路径中经过的支路分类的所有路径。该方法搜索得到的三种路径具有很强的规律性,能够对配电网的运行给出充分的描述,可用在配电网重构、馈线供电能力分析、配电网n-1分析、负荷转供路径优化等众多问题中,且方法的复杂度性能十分优越,具有良好的实际应用价值。

本发明是通过以下技术方案来实现的:一种基于深度优先的配电网路径搜索方法,该方法包含以下步骤:

步骤1:搜索配电网中所有的供电路径,按电源分类。对配电网拓扑图中每一个电源节点,搜索出以该电源为起点的所有路径。

步骤2:搜索按终点负荷节点分类及经过支路分类的两类路径。这两种路径都通过搜索已经得到的按电源分类的所有路径而得到。首先找出以某个负荷节点为终点的所有路径和经过某一条支路的所有路径,再对所有负荷和支路的结果进行汇总,得到所需的两种路径。

进一步地,所述步骤1中对配电网的搜索中采用一个堆栈结构来实现遍历的递归过程,在堆栈中保留搜索过程经过的节点,保存路径信息。每次搜索到一个节点,则对应的也有一条从电源到该节点的供电路径p,即将当前栈中的节点依次相连,再将栈顶节点与新搜索到的节点相连得到的一条新的路径。

对于新搜索到的节点,判断是否满足以下三个条件:该节点不存在于栈中;当前生成的该节点的供电路径p不能与已经搜索到的路径相同;该节点不为电源节点。若新搜索到的节点不满足上述任一个条件,则继续对栈顶元素的下一个邻接点进行搜索;若都满足,则令该节点入栈,并记录新得到的路径p。这样保证不会遗漏也不重复记录任何一条供电路径。

通过路径搜索最终得到的结果为:以第一个电源为起点的所有路径,以第二个电源为起点的所有路径,…,以第n个电源为起点的所有路径。这一系列按电源分类的路径,存储在数组pathes中。用一个数组supplystart记录不同类的路径在pathes中的起始位置。

搜索按电源分类的所有供电路径的方法详细流程如下,流程图如图1所示:

1)建立一个arraylist数组列表变量pathes,用于存放搜索得到的路径。建立一个栈。设图中的电源节点共有n个,分别为s1,s2,…,sn,si表示第i个电源节点。令i=1,即从第1个电源节点开始处理。建立一个数组supplystart,记录从每一个电源出发的路径在pathes中的起始位置。

2)当前处理的电源节点为si,将si压入栈中。将supplystart[i]赋值为pathes中已经存储的路径条数。

3)当前的栈顶元素为节点t,设与t邻接的所有节点为a1,a2,…,am,aj表示第j个邻接节点。设置一个布尔型的标记变量flag1,令flag1=true。令j=1,即从第1个邻接点开始处理。设置一个布尔型的标记变量flag2。

4)当前处理的t的邻接节点为aj。令flag2=true。

5)判断aj是否在栈中。若在栈中,则令flag2=false。

6)判断aj是否为电源节点。若是电源节点,则令flag2=false。

7)用当前栈中的节点,加上节点aj,生成一条对应的路径p。路径p的生成过程为:从栈底节点到栈顶节点,将栈中的节点依次连接,所得到的支路依次加入p中,最后再将栈顶节点与节点aj连接所得到的支路加入p中。遍历pathes中已经得到的路径,判断是否已经存在新生成的路径p。若存在,则令flag2=false。

8)判断flag2值是否为true:

①如果flag2的值为true,则转入9)。

②如果flag2的值为false,则转入10)。

9)令aj入栈,令flag1=false。将新生成的路径p记录到pathes中。此时,栈顶元素t更新为新入栈的节点aj,转入11)。

10)令j=j+1。若j≤m,则转入4),对t的下一个邻接点进行搜索;若j>m,表示与当前的栈顶元素t邻接的所有节点都已经处理完,转入11),m为t的邻接节点的个数。

11)判断flag1的值是否为true

①如果flag1的值为false,则转入3)。

②如果flag1的值为true,则栈顶节点t出栈。判断栈是否为空:

i若栈不为空,转入3)。

ii若栈为空,令i=i+1。若i≤n,则转入2),对下一个电源节点进行处理。若i>n,搜索完成,结束,n为所有电源节点的个数。

进一步地,所述步骤2中搜索以某个负荷为终点的所有路径,过程为:遍历按电源分类的所有路径,对每一条路径,判断其终点处的节点是否为指定的负荷节点,若是,则将该路径记录。

搜索经过某一条支路的所有路径,过程为:遍历从电源出发的所有路径,对每一条路径中所包含的支路进行搜索,若含有指定的支路,则将该路径记录。

进而对图中的每一个负荷节点,进行相应的搜索,可以得到按路径终点的负荷分类的所有路径,存入数组cnpathes中。用数组cnstart记录非同一终点负荷节点的路径在cnpathes中的起始位置。对图中的每一条支路都进行相应搜索,可以得到按路径中经过的支路分类的所有路径,存入数组edgepathes中。用数组edgestart记录非经过同一支路的路径在edgepathes中的起始位置。

本发明中基于深度优先的配电网路径搜索方法,该方法的时间复杂度为o(n3),空间复杂度为o(m2),其中,n为配电网中的节点个数,m为配电网中支路条数。该方法具有优异的时间复杂度和空间复杂度性能,在配电网分析中具有广泛的实际应用价值。

与现有的方法相比,本发明的有益效果是:该方法搜索得到的三种路径具有很强的规律性,能够对配电网的运行给出充分的描述,可用在配电网重构、馈线供电能力分析、配电网n-1分析、负荷转供路径优化等众多问题中。且方法保持了优越时间复杂度和空间复杂度性能,能够准确和快速地搜索出配电网中的供电路径。

附图说明

图1为本发明搜索配电网中所有供电路径的方法的流程示意图;

图2为包含3个电源、5个负荷节点的配电网拓扑图;

图3为采用本发明方法从图2中搜索得到由电源s1出发的所有路径。

具体实施方式

下面结合附图对本发明进一步说明。

本发明的方法是先获得以每个电源为起点的所有路径,具体采用一个堆栈结构来实现遍历的递归过程,在堆栈中保留搜索过程经过的节点,保存路径信息。每次搜索到一个节点,则对应的也有一条从电源到该节点的供电路径p,即将当前栈中的节点依次相连,再将栈顶节点与新搜索到的节点相连得到的一条新的路径。

对于新搜索到的节点,判断是否满足以下三个条件:该节点不存在于栈中;当前生成的该节点的供电路径p不能与已经搜索到的路径相同;该节点不为电源节点。若新搜索到的节点不满足上述任一个条件,则继续对栈顶元素的下一个邻接点进行搜索;若都满足,则令该节点入栈,并记录新得到的路径p。这样保证不会遗漏也不重复记录任何一条供电路径。

再遍历按电源分类的所有路径,对每一条路径,判断其终点处的节点是否为指定的负荷节点,若是,则将该路径记录;遍历从电源出发的所有路径,对每一条路径中所包含的支路进行搜索,若含有指定的支路,则将该路径记录。

该方法基于深度优先的思想,对配电网的拓扑图进行遍历,并按特定的条件筛选,得到配电网中所有的供电路径。通过对搜索得到的路径进行分类,最终得到三种供电路径:按电源分类的所有供电路径;按路径终点的负荷分类的所有路径;按路径中经过的支路分类的所有路径。该方法搜索得到的三种路径具有很强的规律性,能够对配电网的运行方式给出充分的描述,可用在配电网分析的众多问题中,如配电网重构、馈线供电能力分析、配电网n-1分析、负荷转供路径优化等,且方法的时间复杂度和空间复杂度性能十分优越,具有广泛的实际应用价值。

下面以如图2所示的配电网拓扑图为例说明本发明的主要思路,其中电源节点为s1、s2和s3。搜索得到的路径用c1-c2…-cn的形式表示,其中c1、c2、…、cn表示路径中包含的节点名称。以s1为例说明路径形成的过程。

首先s1入栈,成为栈顶节点,邻接节点只有l2,判断l2是否满足上文所述入栈的3个条件:栈中不存在l2;已经找到的路径中不存在s1-l2;l2不是电源节点。3个条件都满足,l2入栈,得到路径s1-l2。

继续对l2的邻接节点进行搜索:若搜索到s1,则s1已经在栈中,不能入栈;若搜索到l3或l5,则符合入栈的三个条件。假设先搜索到l3,则l3入栈得到路径s1-l2-l3。

继续从l3开始搜索,搜索到l1,则l1入栈,得到路径s1-l2-l3-l1。

搜索l1的邻接节点,其中s3为电源节点,l3已经在栈中,所以l1的邻接节点都不满足入栈的条件,则l1出栈。

此时栈顶元素为l3,继续对l3的邻接节点进行搜索。若再次搜索到l1,则生成的路径为s1-l2-l3-l1。已经得到的路径中包含该路径,因此l1不再满足入栈的条件。

搜索到下一个满足入栈条件的节点为l4。

至此,节点入栈的三个条件中每个条件不满足的情况都已经分别遇到,节点入栈和出栈的操作也已经涉及,后续的搜索中所遇到的情况将与之前的类似。搜索完成后得到的从电源s1出发的所有路径如图3所示。搜索获得所有电源相应的所有路径后,再遍历按电源分类的所有路径,对每一条路径,判断其终点处的节点是否为指定的负荷节点,若是,则将该路径记录;遍历从电源出发的所有路径,对每一条路径中所包含的支路进行搜索,若含有指定的支路,则将该路径记录。

基于深度优先的配电网路径搜索方法的优势在于:通过特定的筛选条件,基于深度优先的思想,对配电网的拓扑图进行遍历,能够不重复也不遗漏地得到配电网中所有的供电路径。通过对搜索得到的路径进行分类,全面地得到三种供电路径:按电源分类的所有供电路径;按路径终点的负荷分类的所有路径;按路径中经过的支路分类的所有路径。该方法最有价值的意义在于搜索得到的三种路径具有很强的规律性,能够对配电网的运行方式给出充分的描述,可用配电网重构、馈线供电能力分析、配电网n-1分析、负荷转供路径优化等问题中,且方法的时间复杂度和空间复杂度性能十分优越。

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