一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种高度受限的有向斯坦纳树构造方法及存储介质

2022-04-27 03:27:55 来源:中国专利 TAG:


1.本发明涉及斯坦纳树构造技术领域,特别涉及一种高度受限的有向斯坦纳树构造方法及存储介质。


背景技术:

2.斯坦纳树,是组合优化问题,属于最短网络中的一种。斯坦纳树在计算机网络、集成电路设计和生物信息学等领域具有越来越重要的应用,其中有向图上斯坦纳树问题近来在无线网络中得到重要应用。在无线传感器网络中,涉及组播,是实现从一个源节点到一组目标节点同时分发数据的一种高效方法,又由于传感器节点通常是能量受限的,在设计协议和算法时节省能量消耗是主要考虑因素。在实际网络设计中,通常还需要考虑网络延时,通过给定源节点和少量的目标节点,给每个传感器节点分配传输能量等级,从而构造出一棵满足延时界限的组播树,同时所有节点的总能量消耗最小。这个问题可以模型化为高度受限的有向斯坦纳树问题。
3.针对高度受限的斯坦纳树的研究主要集中在近似方法或启发式方法,通常基于贪婪等策略来构造问题的解。然而,近似方法或启发式方法通常只能得到问题的近似解而无法得到问题的最优解。另外,由于高度受限的有向图上斯坦纳树构造是一个np-难解问题,根据计算复杂性理论,任何精确方法不得不使用指数时间来最优化解决该问题。然而,在实际中运行指数时间方法时,时间的指数增长很快会变得实际不可行。
4.因此,一种高度受限的有向斯坦纳树构造方法及存储介质应运而生。


技术实现要素:

5.本发明的发明内容在于提供一种基于多屏的白色一致性调整方法及存储介质,主要解决了现有高度受限斯坦纳树的研究采用近似方法或启发式方法,但无法得到问题的最优解的问题,同时高度受限的有向图上斯坦纳树构造需要使用指数时间来最优化解决该问题,但是时间的指数增长很快会变得实际不可行,导致斯坦纳树构造失败的问题。
6.本发明提出了一种高度受限的有向斯坦纳树构造方法,包括以下步骤:
7.s1,产生高度受限有向斯坦纳树下的一个问题实例(g,r,s,h),其中g=(v,e)为边加权的有向图;
8.s2,枚举目标节点集合s的子集x,以及节点集合v中任一节点v的所有组合,计算实现(v,s,0)的斯坦纳树权值;
9.s3,枚举树高度i,以及目标节点集合s的子集x,以及节点集合v中任一节点v的所有组合,并利用动态规划技术计算实现(v,x,i)的斯坦纳树的权值w(v,x,i);
10.s4,基于权值w(v,x,i),利用回溯法构造代价为w(r,s,h)、实现(r,s,h)的斯坦纳树t;
11.其中,步骤s1与步骤s2中的v为顶点集合,e为边的集合;源节点r为g中的任一顶点;目标节点集合s为v的任一子集;h为非负整数;步骤s3与步骤s4中0<i≤h(i∈n)。
12.优选地,所述s2具体包括:
13.s21,判断x=={v}是否成立,若是则将w(v,s,0)赋值为零,若否则执行下一步;
14.s22,将w(v,s,0)赋值为无穷大。
15.优选地,所述步骤s3具体包括:
16.s31,计算实现(v,x,i)中,且v的度至少为2个最小代价树的权值;
17.s32,计算实现(v,x,i)的斯坦纳树的权值。
18.优选地,所述步骤s31具体包括:
19.s311,判断x中顶点个数是否大于等于2,若是则执行步骤s312,若否则执行步骤s313;
20.s312,枚举x的所有真子集x’,利用实现(v,x’,i)的斯坦纳树权值计算实现(v,x,i)、且v≥2的最小代价树的权值wc(v,x,i),计算公式为,
[0021][0022]
s313,将wc(v,x,i)赋值为正无穷大。
[0023]
优选地,所述步骤s32具体包括:
[0024]
s321,判断v是否属于v\x,若是则执行步骤s322,若否则执行步骤s323;
[0025]
s322,利用第一预设公式计算实现(v,x,i)的斯坦纳树权值w(v,x,i);
[0026]
s323,进一步判断x中的定点个数是否大于等于2,若是则利用第二预设公式计算所述w(v,x,i),若否则执行下一步;
[0027]
s324,设置所述w(v,x,i)为零。
[0028]
优选地,所述步骤s322中,第一预设公式为,
[0029][0030]
所述步骤s323中,第二预设公式为,
[0031][0032]
本发明还提出了一种存储介质,所述存储介质内存储有用于实现前述的斯坦纳树构造方法的程序语言。
[0033]
由上可知,应用本发明提供的技术方案可以得到以下有益效果:
[0034]
本发明提出的技术方案,基于高度受限的有向图上的斯坦纳树具有最优子结构的分解特性,利用动态规划技术,采用自底向上策略来问题的最优解。当网络的目标节点个数远远小于网络规模时,该方法具有较好的时间效率,能够在关于问题规模的多项式时间内实际求解得到问题的最优解。
附图说明
[0035]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0036]
图1为本发明实施例中斯坦纳树构造方法的具体流程;
[0037]
图2为本发明实施例中斯坦纳树构造过程中,以6个网络节点进行示例解释。
具体实施方式
[0038]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0039]
现有高度受限斯坦纳树的研究采用近似方法或启发式方法,但无法得到问题的最优解的问题,同时高度受限的有向图上斯坦纳树构造需要使用指数时间来最优化解决该问题,但是时间的指数增长很快会变得实际不可行,导致斯坦纳树构造失败的问题。
[0040]
应强调的是,需要说明的是,高度受限有向斯坦纳树的最优构造方法,利用的是有向图上斯坦纳树的最优子结构的分解特性。假设以r为根的有向树t,是实现(r,s,h)的斯坦纳树。t的左子树为t1,而右子树为t2。t1包含了目标节点集a,而t2包含了目标节点集b,显然,t1是实现(r,a,h)的斯坦纳树,而t2是实现(r,b,h)的斯坦纳树。利用高度受限有向斯坦纳树的分解属性,基于动态规划技术,采用自底向上策略实现高度受限有向斯坦纳树的最优构造。
[0041]
如图1所示,为了解决上述问题,本实施例提出了一种高度受限的有向斯坦纳树构造方法,其主要包括:
[0042]
s1,产生高度受限有向斯坦纳树下的一个问题实例(g,r,s,h),其中g=(v,e)为边加权的有向图;
[0043]
s2,枚举目标节点集合s的子集x,以及节点集合v中任一节点v的所有组合,计算实现(v,s,0)的斯坦纳树权值;
[0044]
s3,枚举树高度i,以及目标节点集合s的子集x,以及节点集合v中任一节点v的所有组合,并利用动态规划技术计算实现(v,x,i)的斯坦纳树权值w(v,x,i);
[0045]
s4,基于权值w(v,x,i),利用回溯法构造代价为w(r,s,h)、实现(r,s,h)的斯坦纳树t;
[0046]
其中,步骤s1与步骤s2中的v为顶点集合,e为边集合;源节点r为g中任一顶点;目标节点集合s为v的任一子集;h为非负整数;步骤s3与步骤s4中0<i≤h(i∈n)。
[0047]
在本实施例中,斯坦纳树中若设定h为一棵以节点v为根的树,且对于节点集合s中的任意节点s,存在一条路径长度不超过h的从v到s的简单有向路径,则称h为实现(v,s,h)的树,h上所有边的权值之和称为树的代价,如果h时实现(v,s,h)的最小代价的树,则称h是实现(v,s,h)的斯坦纳树。
[0048]
更具体地,步骤s2具体包括:
[0049]
s21,判断x=={v}是否成立,若是则将w(v,s,0)赋值为零,若否则执行下一步;
[0050]
s22,将w(v,s,0)赋值为无穷大。
[0051]
在本实施例中,步骤s2具体是进行高度为0的斯坦纳树的初始化。对于任何源节点v∈v,目标节点集s的子集x,如果x中只包含一个顶点且为源节点v,则实现(v,x,0)的斯坦纳树的代价为0,如果x≠{v},则不存在实现(v,x,0)的斯坦纳树,将w(v,x,0)设为无穷大。
[0052]
更具体地,步骤s3具体包括:
[0053]
s31,计算实现(v,x,i)中,且v的度至少为2个最小代价树的权值;
[0054]
s32,计算实现(v,x,i)的斯坦纳树的权值。
[0055]
优选地,s311,判断x中顶点个数是否大于等于2,若是则执行步骤s312,若否则执行步骤s313;
[0056]
s312,枚举x的所有真子集x’,利用实现(v,x’,i)的斯坦纳树权值计算实现(v,x,i)、且v≥2的最小代价树的权值wc(v,x,i),计算公式为,
[0057][0058]
s313,将wc(v,x,i)赋值为正无穷大。
[0059]
所述步骤s32具体包括:
[0060]
s321,判断v是否属于v\x,若是则执行步骤s322,若否则执行步骤s323;
[0061]
s322,利用第一预设公式计算实现(v,x,i)的斯坦纳树权值w(v,x,i),其中,第一预设公式为:
[0062][0063]
s323,进一步判断x中的定点个数是否大于等于2,若是则利用第二预设公式计算所述w(v,x,i),若否则执行下一步;其中,第二预设公式为,所述w(v,x,i),若否则执行下一步;其中,第二预设公式为,
[0064]
s324,设置所述w(v,x,i)为零。
[0065]
其中,第二预设公式中,no(v)表示顶点v所有出邻接顶点的集合,w([v,u])表示边[v,u]的权值。
[0066]
在本实施例中,步骤s3用动态规划技术自底向上构造高度受限有向斯坦纳树。为了能最后构造实现(r,s,h)的斯坦纳树,对特定实现(v,x,i)的斯坦纳树需构造出来。整个过程利用动态规划技术自底向上依次进行。树的构造按高度优先次序进行:首先构造高度为1的所有可能子树,然后是高度为2的子树,最后是高度为h的子树。在特定树高限制i下,按终端节点集合s子集x的大小j依次考虑:首先考虑大小为1(|x|=1)的情况,然后是大小为2的情况,最后是大小为|s|的情况。对特定(|x|=1)的情况,然后是大小为2的情况,最后是大小为|s|的情况。对特定实现(v,x,i)的斯坦纳树的构造按步骤s312、步骤s322、步骤s323中的公式进行。
[0067]
以下为本实施例中以6个网络节点为例进行介绍。图2所示的实施例中,顶点的集合v={1,2,3,4,5,6},边的集合e={[1,2],[1,3],[1,5],[2,4],[2,5],[3,6],[5,6]},方框表示目标节点,节点4、5、6是目标节点,目标节点集合s={4,5,6},而节点1是源节点r。设给定的树高限制为h=2。
[0068]
首先计树高i限制为0、实现(v,x,0)的斯坦纳树的权值。因为树高限制为0,当目标节点只有一个且该目标节点同时也是源节点时,构造的斯坦纳树的代价为0。对其它源节点v和目标节点集x的组合(v,x,0),无法构造相应斯坦纳树,代价设为正无穷大。
[0069]
接着利用动态规划技术进行实现(r,s,h)的斯坦纳树的构造。为了能最后构造实现(r,s,h)的斯坦纳树,对树的高度i、目标节点集合s的子集x、节点集合v中的某个节点v的
所有组合,实现(v,x,i)的斯坦纳树需构造出来。整个过程利用动态规划技术自底向上依次进行。树的构造按高度优先的次序进行:首先构造高度i为1的所有可能子树,然后是高度i为2的子树,最后是高度i为h的子树。在特定树高限制i下,按目标节点集合s的子集x的大小依次考虑:首先考虑大小为1(|x|=1)的情况,然后是大小为2的情况,最后是大小为|s|的情况。
[0070]
当i=1时,树高限制为1,在i=0的基础上,逐一考虑v和x不同组合(v,x,1),构造相应斯坦纳树。当x={4},源节点v为顶点1时,因x中只有一个元素4,只需考虑顶点1的每一个出邻接点,在i=0的三棵斯坦纳树基础上进行斯坦纳树的扩展。顶点1有三个出邻接点{2,3,5}。均无法完成斯坦纳树的扩展。接下来考虑x={4},根节点v为顶点2。顶点2有两个出邻接点{4,5}。当出邻接点为4时,能够完成斯坦纳树的扩展,得到如图2(3)从左到右的第一棵树。显然出邻接点为5时无法进行扩展。x={4},根节点v分别为3、4、5和6,使用前述类似方法进行斯坦纳树的扩展,3和5均无法完成扩展,4时得到的是图2(2)从上往下的第一棵树(实现(4,{4},1))。当x={5},得到两棵斯坦纳树,如图2(3)的第2、3棵树。当x={6},得到如图2(3)的第4、5棵树。当x={4,5}时,因x大小超过1,需同时考虑斯坦纳树的扩展和合并。图2(3)中的第6棵树是通过图2(3)中的第1棵和第3棵树合并而得到。当x={5,6}时,通过扩展图2(2)自上往下的第3棵树得到。
[0071]
当i=2时,新增加的树如图2(4)所示。第1棵树通过扩展图2(3)中的第1棵树得到。第2棵树通过扩展图2(3)中的第5棵树得到,目标节点集x={6}。第3棵树通过合并图2(4)中的第一棵树和图2(3)中的第2棵树(实现(1,{5},2)的斯坦纳树得到。第4棵树通过合并图2(4)第1棵和第2棵树得到。第5棵树(实现(1,{5,6},2))通过扩展图2(3)中的第7棵树得到。第6棵树通过合并图2(4)中第1棵和第5棵树得到。
[0072]
实现(1,{4,5,6},2)的斯坦纳树为图2(4)中的最后一棵树,其代价为7。
[0073]
应强调的是,本实施例提出的一种高度受限的有向斯坦纳树构造方法,用于实现上述方法的系统,以及存储有用于实现上述方法的程序语言的相关存储介质都属于本实施例的保护范围。
[0074]
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献