一种有向图及无向图所有生成树的搜索算法

文档序号:6546019阅读:2708来源:国知局
一种有向图及无向图所有生成树的搜索算法
【专利摘要】本发明公开了一种有向图及无向图所有生成树的搜索算法,基于MATLAB平台,在有向或无向图中找到以为根节点,包含给定子树的所有生成树,包括节点邻接支路、支路扩张、所有生成树搜索三个部分,所有生成树搜索调用节点邻接支路、支路扩张而实现,在时间复杂度及空间复杂度方面具有十分优越的性能,能够可靠、快速地搜索出有向图及无向图的所有生成树,方法巧妙,思路新颖,具有良好的应用前景。
【专利说明】一种有向图及无向图所有生成树的搜索算法
【技术领域】
[0001]本发明涉及一种传统配电网以及分布式电源接入后的复杂配电网配网自动化系统中的有向图及无向图所有生成树的搜索算法,属于配电网分析、运行与控制【技术领域】。
【背景技术】
[0002]目前,传统配电网以及分布式电源接入后的复杂配电网时,存在以下问题,一方面,配电网一、二次设备数量众多,配变、线路损耗严重,电力系统损耗主要在配电网;另一方面,配网自动化示范工程在全国各城市全面铺开,网络重构是配电自动化的重要内容,其主要目标是通过调整联络开关与分段开关状态达到降低配电网网损、消除过载、均衡负荷、提高配网电压的目的。但是由于负荷是实时变化的,要求主站系统中的网络重构功能能够适应负荷变化快速调整开关状态。遗传算法具有不依赖于初值、鲁棒性强、能找到全局最优解等特点在网络重构中得到了广泛的应用。但是目前的网络重构遗传算法在遗传操作中会产生大量不可行解,效率较低。基于无向图所有生成树的网络重构遗传算法在种群的遗传操作中产生的后代个体自动满足配电网无孤岛、连通的约束条件。目前的无向图所有生成树的搜索算法时间与空间复杂度较高,算法复杂,难以满足实时网络重构的要求。

【发明内容】

[0003]本发明的目的是为了克服传统的不足。
[0004]为了解决上述技术问题,本发明所采用的技术方案是:
[0005]一种有向图及无向图所有生成树的搜索算法,其特征在于:该算法基于MATLAB平台,在有向或无向图G1中找到以r为根节点,包含给定子树T的所有生成树,包括节点邻接支路、支路扩张、所有生成树搜索,
[0006]节点邻接支路的实现过程,包括以下步骤,
[0007]步骤(Al)输入节点支路关联矩阵A,行数为节点数,列数等于支路数;
[0008]步骤(A2)通过赋值语句生成一个与节点支路关联矩阵A维数相同的全零矩阵X ;
[0009]步骤(A3)从左到右依次扫描节点支路关联矩阵A的每一行对应的元素,若元素不为零,则在全零矩阵X的对应位置记录该元素所处的列号;
[0010]支路扩张的实现过程,包括以下步骤,
[0011]步骤(BI),在图G1中选择一条边e1; ei的父节点属于T,子节点不属于T,找到包含T U θι的所有生成树,并从图G1中删去,形成图G2 ;
[0012]步骤(B2),重复步骤(I),在图Gi中选择一条边ei; ei的父节点属于T,但是子节点不属于T,在图Gi中,找到包含T U ei所有的生成树,并从图Gi中删去边ei;形成图Gi+1 ;
[0013]步骤(B3),若删去边ek是图Gk的桥,停止搜索,所述图Gk的桥为当删去边ek后,被修改后的图Gk被分成两个孤立的图;
[0014]所有生成树搜索的实现过程,包括以下步骤,
[0015]步骤(Cl)若G为有向图,则执行步骤(C3);若为无向图,执行步骤(C2),将无向图转化为有向图;
[0016]步骤(C2),将无向图的每条边加上一个箭头,并在每条有箭头的边的端点之间加上一条箭头方向相反的边,边的编号为原来边的编号加上总边数,所述无向图转化为有向图,执行步骤(C3);
[0017]步骤(C3),初始化T中只包含根节点,F中只包含以根节点为父节点的有向支路。调用节点邻接支路的实现过程,以及支路扩张的实现过程找到以r为根节点包含T的所有生成树。
[0018]前述的一种有向图及无向图所有生成树的搜索算法,其特征在于:对于有向图,该算法的时间复杂度为0(V+E+E*N),空间复杂度为0(V+E);对于无向图,该算法的时间复杂度为0(V+E+V*N),空间复杂度为0(V+E),其中,V为有向图或无向图的顶点数,E为边数,N为生成树的数量
[0019]本发明的有益效果是:本发明的有向图及无向图所有生成树的搜索算法,基于MATLAB平台,在有向或无向图中找到以为根节点,包含给定子树的所有生成树,包括节点邻接支路、支路扩张、所有生成树搜索三个部分,所有生成树搜索调用节点邻接支路、支路扩张而实现,在时间复杂度及空间复杂度方面具有十分优越的性能,能够可靠、快速地搜索出有向图及无向图的所有生成树,方法巧妙,思路新颖,具有良好的应用前景。
【专利附图】

【附图说明】
[0020]图1是本发明的有向图及无向图所有生成树的搜索算法的流程图。
【具体实施方式】
[0021]下面将结合说明书附图,对本发明作进一步说明。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0022]如图1所示,本发明的有向图及无向图所有生成树的搜索算法,该算法基于MATLAB平台,在有向或无向图G1中找到以r为根节点,包含给定子树T的所有生成树,包括节点邻接支路、支路扩张、所有生成树搜索,
[0023]节点邻接支路的实现过程,包括以下步骤,
[0024]步骤(Al)输入节点支路关联矩阵A,行数为节点数,列数等于支路数;
[0025]步骤(A2)通过赋值语句生成一个与节点支路关联矩阵A维数相同的全零矩阵X ;
[0026]步骤(A3)从左到右依次扫描节点支路关联矩阵A的每一行对应的元素,若元素不为零,则在全零矩阵X的对应位置记录该元素所处的列号;
[0027]支路扩张的实现过程,包括以下步骤,
[0028]步骤(BI),在图G1中选择一条边e1; θι的父节点属于T,子节点不属于T,找到包含T U θι的所有生成树,并从图G1中删去,形成图G2 ;
[0029]步骤(B2),重复步骤(I),在图Gi中选择一条边ei; ei的父节点属于T,但是子节点不属于T,在图Gi中,找到包含T U ei所有的生成树,并从图Gi中删去边ei;形成图Gi+1 ;
[0030]步骤(B3),若删去边ek是图Gk的桥,停止搜索,所述图Gk的桥为当删去边ek后,被修改后的图Gk被分成两个孤立的图;
[0031]所有生成树搜索的实现过程,包括以下步骤,[0032]步骤(Cl)若G为有向图,则执行步骤(C3);若为无向图,执行步骤(C2),将无向图转化为有向图;
[0033]步骤(C2),将无向图的每条边加上一个箭头,并在每条有箭头的边的端点之间加上一条箭头方向相反的边,边的编号为原来边的编号加上总边数,所述无向图转化为有向图,执行步骤(C3);
[0034]步骤(C3),初始化T中只包含根节点,F中只包含以根节点为父节点的有向支路。调用节点邻接支路的实现过程,以及支路扩张的实现过程找到以r为根节点包含T的所有生成树。
[0035]基于本发明的有向图及无向图所有生成树的搜索算法,对于有向图,该算法的时间复杂度为0(V+E+E*N),空间复杂度为0(V+E);对于无向图,该算法的时间复杂度为0(V+E+V*N),空间复杂度为0(V+E),其中,V为有向图或无向图的顶点数,E为边数,N为生成树的数量,在时间复杂度及空间复杂度方面具有十分优越的性能,能够可靠、快速地搜索出有向图及无向图的所有生成树,方法巧妙,思路新颖,具有良好的应用前景。
[0036]以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
【权利要求】
1.一种有向图及无向图所有生成树的搜索算法,其特征在于:该算法基于MATLAB平台,在有向或无向图G1中找到以r为根节点,包含给定子树T的所有生成树,包括节点邻接支路、支路扩张、所有生成树搜索, 节点邻接支路的实现过程,包括以下步骤, 步骤(Al)输入节点支路关联矩阵A,行数为节点数,列数等于支路数; 步骤(A2)通过赋值语句生成一个与节点支路关联矩阵A维数相同的全零矩阵X ; 步骤(A3)从左到右依次扫描节点支路关联矩阵A的每一行对应的元素,若元素不为零,则在全零矩阵X的对应位置记录该元素所处的列号; 支路扩张的实现过程,包括以下步骤, 步骤(BI),在图G1中选择一条边e1; θι的父节点属于T,子节点不属于T,找到包含T U θι的所有生成树,并从图G1中删去,形成图G2 ; 步骤(B2),重复步骤(I),在图Gi中选择一条边ei,ei的父节点属于T,但是子节点不属于T,在图Gi中,找到包含T U e,所有的生成树,并从图 ' 中删去边ei;形成图Gi+1 ; 步骤(B3),若删去边ek是图Gk的桥,停止搜索,所述图Gk的桥为当删去边ek后,被修改后的图Gk被分成两个孤立的图; 所有生成树搜索的实现过程,包括以下步骤, 步骤(Cl)若G为有向图,则执行步骤(C3);若为无向图,执行步骤(C2),将无向图转化为有向图; 步骤(C2),将无向图的每条边加上一个箭头,并在每条有箭头的边的端点之间加上一条箭头方向相反的边,边的编号为原来边的编号加上总边数,所述无向图转化为有向图,执行步骤(C3); 步骤(C3),初始化T中只包含根节点,F中只包含以根节点为父节点的有向支路。调用节点邻接支路的实现过程,以及支路扩张的实现过程找到以r为根节点包含T的所有生成树。
2.根据权利要求1所述的一种有向图及无向图所有生成树的搜索算法,其特征在于:对于有向图,该算法的时间复杂度为0(V+E+E*N),空间复杂度为0(V+E);对于无向图,该算法的时间复杂度为0(V+E+V*N),空间复杂度为0(V+E),其中,V为有向图或无向图的顶点数,E为边数,N为生成树的数量。
【文档编号】G06F17/30GK103984718SQ201410195264
【公开日】2014年8月13日 申请日期:2014年5月9日 优先权日:2014年5月9日
【发明者】张剑, 袁晓冬 申请人:国家电网公司, 江苏省电力公司, 江苏省电力公司电力科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1