一种网络拓扑布局中拆分环状结构的方法及系统
技术领域
本发明涉及在网络拓扑布局中,通过一系列的计算和操作,实现在网络拓扑根据连接关系拆分一个复杂的环状结构的方法。
背景技术
信息可视化是一个跨学科领域,旨在研究大规模非数值型信息资源的视觉呈现,如软件系统之中众多的文件或者程序代码,以及利用图形图像方面的技术与方法,帮助人们理解和分析数据。信息可视化致力于创建那些以直观方式传达抽象信息的手段和方法。可视化的表达形式与交互技术则是利用人类眼睛通往心灵深处的广阔带宽优势,使得用户能够目睹、探索以至立即理解大量的信息。可视化把数据转换成图形,给予人们深刻与意想不到的洞察力,在很多领域使科学家的研究方式发生了根本变化。可视化技术的应用大至高速飞行模拟,小至分子结构的演示,无处不在。
网络拓扑结构由于具有大量的节点,且节点之间连接复杂,中心节点连接关系无规律,导致了网络拓扑布局研究的复杂性。树形结构的图由于能够清晰地找到根节点以及每个点的父节点和子节点,因此可以呈现较好的连接关系。而带环状结构的图,由于其内部的环状结构,导致了整体结构的无层次性,是研究网络拓扑布局的难点。
首先,在大型环状结构中,环状结构内部关系复杂,环内的点之间关系不清晰。较小的环状结构,由于内部点个数少,关系简单,因此比较容易排布,而大型环状结构由于其内部点过多,导致关系混乱,难以分清结构。
其次,计算复杂性的问题。带环状结构的图由于环内的点不能依据其与相邻节点的关系直接计算,因而只能采用力导向这样的方式重复计算,直到满足一定条件为止。这样不仅占用过多系统资源,也使得整体效率降低。在网络拓扑的环较为复杂,节点数量巨大的结构中,并不适用。
最后,拓扑结构的美观性问题。带环状结构的拓扑结构,由于环的复杂性,导致环内部点的排列比较困难,尤其是较大的环,由于占据面积较大,不能单纯当成一个点来进行整体计算,布局的效果不理想,影响整体的美观。
本发明的目的是解决上述大型环状结构带来的问题,通过对环内点的检测和判断,使得大型环状结构可以细分为若干个较小的环状结构,从而较好的布局拓扑节点。
发明内容
本发明提供了一种网络拓扑布局中拆分环状结构的方法及系统,可以使原本连接松散无序的环状结构连接紧密有规律排列直观,且计算的时间复杂度和空间复杂度都非常低,不会耗费过多的时间和占用过多的CPU资源,节省了计算机性能。
本发明采用如下方法来实现:一种网络拓扑布局中拆分环状结构的方法,包括:
S01、获取节点信息并做好记录,所述信息包括每个节点的ID以及相对应的节点簇;
S02、将所有节点随机分成两组,并记录每一个节点所属的组别序号,若所有节点总数为偶数,则两组内的节点数目相同,若为奇数,则两组内的节点数目差值为1;
S03、对上述两组节点分别进行权值设置,随机选定其中一个组别设定其所包含的所有节点的权值均为-Q,则另外一个组别所包含的所有节点的权值均为Q;
S04、分别计算两组中每个节点相对应的节点簇权值和,并将两组中所有节点的节点簇权值和的和定义为和值;
S05、分别计算不同组别中每一个节点相对应的节点簇权值和,并判断两个组别内的节点个数是否大于等于预设值,如果是,则选取节点簇权值和最大的节点簇相对应的节点,作为待移动点,否则,在节点个数不小于预设值的组别内,选取节点簇权值和最大的节点簇相对应的节点,作为待移动点,将待移动点移至另外组别,并重新计算移动后两组中每个节点相对应的的节点簇权值和及和值;
S06、判断移动后两组中每个节点相对应的节点簇权值和是否全为负数,如果是,则执行下一步,否则判断移动后的和值是否变小,如果是,则继续重复上一步骤,否则执行下一步;
S07、判断各个组别中的节点个数是否小于期望值,如果是,则拆分完毕,否则按照步骤S01~S06继续拆分。
本发明采用如下系统来实现:一种网络拓扑布局中拆分环状结构的系统,包括:
获取信息模块,用于获取节点信息并做好记录,所述信息包括每个节点的ID以及相对应的节点簇;
分组模块,用于将所有节点随机分成两组,并记录每一个节点所属的组别序号,若所有节点总数为偶数,则两组内的节点数目相同,若为奇数,则两组内的节点数目差值为1;
权值设置模块,用于对上述两组节点分别进行权值设置,随机选定其中一个组别设定其所包含的所有节点的权值均为-Q,则另外一个组别所包含的所有节点的权值均为Q;
计算模块,用于分别计算两组中每个节点相对应的节点簇权值和,并将两组中所有节点的节点簇权值和的和定义为和值;
选取模块,分别计算不同组别中每一个节点相对应的节点簇权值和,并判断两个组别内的节点个数是否大于等于预设值,如果是,则选取节点簇权值和最大的节点簇相对应的节点,作为待移动点,否则,在节点个数不小于预设值的组别内,选取节点簇权值和最大的节点簇相对应的节点,作为待移动点,将待移动点移至另外组别,并重新计算移动后两组中每个节点相对应的的节点簇权值和及和值;
第一判断模块,用于判断移动后两组中每个节点相对应的节点簇权值和是否全为负数,如果是,则由第二判定模块继续执行,否则判断移动后的和值是否变小,如果是,则由选取模块继续执行,否则由第二判定模块继续执行;
第二判定模块,用于判定各个组别中的节点个数是否小于期望值,如果是,则拆分完毕,否则所有模块继续执行,进行拆分。
综上所述,本发明提供了一种网络拓扑布局中拆分结构的方法及系统,包括:获取节点信息并做好记录,将所有节点随机分成两组,并记录每一个节点所属的组别序号,再将上述两组节点分别进行权值设置,分别计算两组中每个节点相对应的节点簇权值和并将两组中所有节点的节点簇权值和的和定义为和值;选取待移动点,将待移动点移至另外组别,并重新计算移动后两组中每个节点相对应的节点簇权值和及和值,判断移动后两组中每个节点相对应的节点簇权值和是否全为负数,如果是,则继续选取移动点并进行移动,并重新计算移动后两组中每个节点相对应的节点簇权值和及和值否则判断移动后的和值是否变小,如果是,则继续选取移动点并进行移动,并重新计算移动后两组中每个节点相对应的节点簇权值和及和值,否则判断各个组别中的节点个数是否小于期望值,如果是,则拆分完毕,否则重新继续拆分。该方法不仅能较好的体现原始网络拓扑的环状结构信息,还解决了带环的复杂网络图的布局问题,可以使原本连接松散无序的环状结构连接紧密有规律排列直观,减少了无数节点或连线的交叉和重叠的问题。此外,所述方法时间复杂度和空间复杂度都较低。节省计算性能,不会耗费过多的时间和占用过多的CPU资源,且应用范围广泛,可适用任何带有环状结构的拓扑图。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种网络拓扑布局中拆分环状结构的方法流程图;
图2为本发明提供的一种网络拓扑布局中拆分环状结构的系统结构图。
具体实施方式
本发明给出了一种网络拓扑布局中拆分环状结构的方法及系统,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
本发明首先提供了一种网络拓扑布局中拆分环状结构的方法实施例,如图1所示,包括:
S01、获取节点信息并做好记录,所述信息包括每个节点的ID以及相对应的节点簇;
其中,所述节点信息举例如下表所示:
节点ID |
相对应的节点簇 |
0 |
[1,2,4,6,8] |
1 |
[0,2,3,5,7] |
2 |
[0,1,4,6,8] |
3 |
[1,5,7] |
4 |
[0,2,6,8] |
5 |
[1,3,7] |
6 |
[0,2,4,8] |
7 |
[1,3,5] |
8 |
[0,2,4,6] |
S02、将所有节点随机分成两组,并记录每一个节点所属的组别序号,若所有节点总数为偶数,则两组内的节点数目相同,若为奇数,则两组内的节点数目差值为1;
其中,假设将节点ID为0、1、2、3、4的节点分到A组,节点ID为5、6、7、8的节点分到B组;
S03、对上述两组节点分别进行权值设置,随机选定其中一个组别设定其所包含的所有节点的权值均为-Q,则另外一个组别所包含的所有节点的权值均为Q;
将A组内的节点ID为0、1、2、3、4的权值设为-1,B组内的节点ID为5、6、7、8的权值设为1;
S04、分别计算两组中每个节点相对应的节点簇权值和,并将两组中所有节点的节点簇权值和的和定义为和值;
其中,以节点ID为0的节点(后续简称为节点0,其他节点也相应简称为节点N)为例,计算相对应的节点簇权值和,由节点信息可知,节点0的节点的节点簇为[1,2,4,6,8],已知节点1、2、4的权值均为-1,节点6、8的权值为1,则节点0的节点簇权值和为:(-1)+(-1)+(-1)+1+1=-1;同理节点1的节点簇为[0,2,3,5,7],则节点1的节点簇权值和为:(-1)+(-1)+(-1)+1+1=-1;同理,节点2的节点簇为[0,1,4,6,8],节点2的节点簇权值和为:(-1)+(-1)+(-1)+1+1=-1;依次计算两组中每个节点相对应的的节点簇权值和,如下表所示:
S05、选取待移动点,将待移动点移至另外组别,并重新计算移动后两组中每个节点相对应的的节点簇权值和及和值;
进一步地,所述选取待移动点的方法包括:分别计算不同组别中每一个节点相对应的节点簇权值和,并判断两个组别内的节点个数是否大于等于预设值,如果是,则选取节点簇权值和最大的节点簇相对应的节点,作为待移动点,否则,在节点个数不小于预设值的组别内,选取节点簇权值和最大的节点簇相对应的节点,作为待移动点;
其中,A组内节点个数为5,B组内节点个数为4,为避免出现环状结构的节点从一组全部移至到另外一组,故设置节点个数的预设值。此处设置预设值为3,又因A、B组内节点个数预设值均大于3,则选取节点簇权值和最大的节点簇相对应的节点,又因为节点6和节点8的节点簇权值和的值都为2,随机选取节点6或节点8作为待移动点皆可,在此,选择节点6作为待移动点;
移动后A、B两组的节点ID分别为:A组内节点为[0、1、2、3、4、6];B组内节点为[5、7、8];
其中,仍以节点0为例,计算相对应的节点簇权值和,由节点信息可知,节点0的点簇为[1,2,4,6,8],已知节点1、2、4、6的权值均为-1,节点8的权值为1,则节点0的节点簇权值和变化为:(-1)+(-1)+(-1)+(-1)+1=-3;同理节点2的节点簇为[0,1,4,6,8],则节点2的节点簇权值和变化为:(-1)+(-1)+(-1)+1=-2;
依次计算两组中每个节点相对应的的节点簇权值和,如下表所示:
S06、判断移动后两组中每个节点相对应的节点簇权值和是否全为负数,如果是,则拆环完毕,否则判断移动后的和值是否变小,如果是,则继续重复上一步骤,否则执行下一步;
其中,移动后两组中每个节点相对应的节点簇权值和不全为负数,则判断移动后的和值是否变小,移动后的和值为(-3)+(-1)+(-3)+1+(-2)+(-2)++1+1+4=-4,而移动前的和值为4,则移动后的和值已经变小,则继续移动,选取节点簇权值和最大的节点簇相对应的节点,则选取节点8作为待移动点;
移动后A、B两组的节点ID分别为:A组内节点为[0、1、2、3、4、6、8];B组内节点为[5、7];
依次计算两组中每个节点相对应的节点簇权值和,节点信息如下表所示:
其中,移动后两组中每个节点相对应的节点簇权值和不全为负数,则判断移动后的和值是否变小,移动后的和值为(-5)+(-1)+(-5)+1+(-4)+(-4)+(-4)+1+1=-20,而移动前的和值为-4,则移动后的和值已经变小,则继续移动,此时,A组内节点个数为7,B组内节点个数为2,B组内节点个数均小于预设值3,则在节点个数不小于预设值的组别内即A组,选取节点簇权值和最大的节点簇相对应的节点3,作为待移动点;
移动后A、B两组的节点ID分别为:A组内节点为[0、1、2、4、6、8];B组内节点为[3、5、7];
其中,移动后两组中每个节点相对应的节点簇权值和不全为负数,则判断移动后的和值是否变小,移动后的和值为(-5)+1+(-5)+(-4)+(-4)+(-4)+(-1)+(-1)+(-1)+1=-24,而移动前的和值为-20,则移动后的和值已经变小,则继续移动,此时,A组内节点个数为6,B组内节点个数为3,则选取节点1作为待移动点;
移动后A、B两组的节点ID分别为:A组内节点为[0、2、4、6、8];B组内节点为[1、3、5、7];
此时,移动后两组中每个节点相对应的节点簇权值和全为负数,则执行下一步;
S07、判断各个组别中的节点个数是否小于期望值,如果是,则拆分完毕,否则按照步骤S01~S06继续拆分。
其中,设各个组别中的节点个数的期望值为6,期望值的设置可根据拆分后的环状结构的大小和环与环之间的紧密程度调整。因A、B两个组别中的节点个数都小于期望值6,所以拆分完毕。
本发明还提供了一种网络拓扑布局中拆分环状结构的系统实施例,如图2所示,包括:
获取信息模块201,用于获取节点信息并做好记录,所述信息包括每个节点的ID以及相对应的节点簇;
分组模块202,用于将所有节点随机分成两组,并记录每一个节点所属的组别序号,若所有节点总数为偶数,则两组内的节点数目相同,若为奇数,则两组内的节点数目差值为1;
权值设置模块203,用于对上述两组节点分别进行权值设置,随机选定其中一个组别设定其所包含的所有节点的权值均为-Q,则另外一个组别所包含的所有节点的权值均为Q;
计算模块204,用于分别计算两组中每个节点相对应的节点簇权值和,并将两组中所有节点的节点簇权值和的和定义为和值;
选取模块205,用于选取待移动点,将待移动点移至另外组别,并重新计算移动后两组中每个节点相对应的的节点簇权值和及和值;
第一判断模块206,用于判断移动后两组中每个节点相对应的节点簇权值和是否全为负数,如果是,则由第二判定模块207继续执行,否则判断移动后的和值是否变小,如果是,则由选取模块205继续执行,否则由第二判定模块207继续执行;
第二判定模块207,用于判定各个组别中的节点个数是否小于期望值,如果是,则拆分完毕,否则所有模块继续执行,进行拆分。
进一步地,所述选取待移动点的方法包括:分别计算不同组别中每一个节点相对应的节点簇权值和,并判断两个组别内的节点个数是否大于等于预设值,如果是,则选取节点簇权值和最大的节点簇相对应的节点,作为待移动点,否则,在节点个数不小于预设值的组别内,选取节点簇权值和最大的节点簇相对应的节点,作为待移动点。
本发明提供了一种网络拓扑布局中拆分环状结构的方法及系统,所述方法不仅能较好的体现原始网络拓扑的环状结构信息,还解决了带环的复杂网络图的布局问题,可以使原本连接松散无序的环状结构连接紧密有规律排列直观,减少了无数节点或连线的交叉和重叠的问题。此外,所述方法时间复杂度和空间复杂度都较低。节省计算性能,不会耗费过多的时间和占用过多的CPU资源,且应用范围广泛,可适用任何带有环状结构的拓扑图。
以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。