CN107193896A - 一种基于簇的图数据划分方法 - Google Patents
一种基于簇的图数据划分方法 Download PDFInfo
- Publication number
- CN107193896A CN107193896A CN201710319629.6A CN201710319629A CN107193896A CN 107193896 A CN107193896 A CN 107193896A CN 201710319629 A CN201710319629 A CN 201710319629A CN 107193896 A CN107193896 A CN 107193896A
- Authority
- CN
- China
- Prior art keywords
- summit
- paths
- path
- cluster
- diagram data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种基于簇的图数据划分方法,包括:确定图数据包括的V个顶点中每个顶点的度值,图数据包括E条边;根据每个顶点的度值,将V个顶点按度值从大到小的顺序进行排序,确定度值大于第一阈值的M个顶点;根据V个顶点、E条边以及M个顶点,确定T条路径;将V个顶点中T条路径不包括的顶点,归属到T条路径,组成归属后的T条路径,或者将其创建成N条路径;根据M个顶点、T条路径以及N条路径,确定M个簇;根据M个簇之间的关联度和预设划分块数目P,将图数据的M个簇划分为P个划分块。本发明将度值较大的顶点作为路径的端点,可以降低图数据划分的重复率,以路径为单元进行图规模缩减,降低了内存开销,可以处理大规模的图数据。
Description
技术领域
本发明属于大数据处理领域,更具体地,涉及一种基于簇的图数据划分方法。
背景技术
对真实世界关系图进行数据挖掘是时下的一个热门话题,比如社交网络分析,网页排名。无论是在单机上进行多线程并行处理还是运用分布式系统来处理这些图,都绕不开图数据划分这一关键步骤。但是图数据有着数据规模大,关系复杂等一些特点,故对其进行合适的划分是一项极具挑战性的工作。图规模反映图数据包括的顶点和边的数目。若图数据包括的顶点和边的数目较多,则为大规模图数据。
近几年随着图计算的普及,图数据划分算法也层出不穷。随机哈希(hash)和metis是比较常用的划分算法。随机hash划分耗时短,负载均衡性也较好,由于其忽略了图数据中顶点之间的关联,重复因子较大,重复率较高,从而划分结果并不是特别理想。Metis是一种层次划分方法,通过粗化,划分,细化三个步骤来完成整个划分工作,由于粗化过程需要存储很多中间结果。所以耗费内存较多,需要较大的内存开销,无法较好地处理大规模图数据的划分。
综上,现有图数据划分方法的重复率较高,划分结果不理想,或者内存开销大,无法较好地处理大规模图数据的划分。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术图数据划分方法的重复率较高,划分结果不理想,或者内存开销大,无法较好地处理大规模图数据的划分的技术问题。
为实现上述目的,第一方面,本发明实施例提供了一种基于簇的图数据划分方法,包括以下步骤:确定图数据包括的V个顶点中每个顶点的度值,所述图数据包括E条边;根据所述每个顶点的度值,将所述V个顶点按度值从大到小的顺序进行排序,确定度值大于第一阈值的M个顶点;根据所述V个顶点、E条边以及M个顶点,确定T条路径,所述T条路径中每条路径由V个顶点中的邻接顶点和E条边中的邻接边组成,每条路径包括M个顶点中的一个顶点,且每条路径的一个端点为所述M个顶点中的一个顶点,所述T条路径中两条路径之间最多共用一个端点;将所述V个顶点中所述T条路径不包括的顶点,归属到所述T条路径,组成归属后的T条路径,或者将其创建成N条路径;根据所述M个顶点、T条路径以及所述N条路径,确定M个簇;根据所述M个簇之间的关联度和预设划分块数目P,将所述图数据的M个簇划分为P个划分块;其中,所述路径为所述图数据的第一子集,包括多个顶点和多条边,所述簇为所述图数据的第二子集,包括多条路径,所述第一子集和所述第二子集为所述图数据的子集,所述关联度由所述两个子集之间边的数目确定。
其中,V表示图数据中顶点的总数目,E表示边的数目,T和N表示路径的数目,M表示从V个顶点中确定的顶点的数目,M还表示对应的簇的数目,P表示划分块的数目,V、E、T、M、N以及P均为正整数。
在一个示例中,通过确定一定的第一阈值,使得M个顶点可为度值在V个顶点中排序占前10%或5%的顶点。即上述M个顶点对应为V个顶点中度值较大的顶点集合,具体地,第一阈值可根据需要进行设计,也可根据预设划分块数目P和边的数目E确定,以保证路径、簇或者划分块之间的均衡性。
本发明实施例提供的技术方案通过将度值较大的顶点作为路径的端点,可以降低图数据划分中的重复率,以及以路径为单元进行图规模缩减,而降低了内存开销,可以处理大规模的图数据。同时,可以保持路径的完整性,使得该方法所应用的图数据处理系统的运行性能更好。
在一个可选的实施例中,根据所述V个顶点、E条边以及M个顶点,确定T条路径,具体包括以下步骤:选取所述M个顶点中顶点A,沿第一方向遍历,若其邻接点不属于T条路径中的一条路径,且其邻接点不属于M个顶点中的顶点,则沿其邻接点继续向第一方向遍历,直至遍历到所述M个顶点中的顶点B,由顶点A和顶点B为两个端点遍历确定的路径为遍历路径,所述第一方向为沿出度的方向或入度的方向;在第一顶点处分裂所述遍历路径,得到以所述顶点A和所述第一顶点为两个端点的第一子路径,和以所述顶点B和所述第一顶点为两个端点的第二子路径,所述第一顶点为所述遍历路径包括的顶点中度值最小的顶点;根据所述第一子路径和所述第二子路径,确定T条路径中的两条路径。
在一个可选的实施例中,根据所述V个顶点、E条边以及M个顶点,确定T条路径,具体还包括以下步骤:选取所述M个顶点中顶点C,沿所述第一方向遍历,若其邻接点不属于T条路径中的路径,且其邻接点不属于M个顶点中的顶点,则沿其邻接点继续向第一方向遍历,直至遍历到第二顶点,所述第二顶点为归属于T条路径中的一条路径的顶点;根据所述顶点C和所述第二顶点为两个端点遍历,确定T条路径中的一条路径。
在一个可选的实施例中,所述将所述V个顶点中所述T条路径不包括的顶点,归属到所述T条路径,组成归属后的T条路径,或者将其创建成N条路径,具体包括以下步骤:确定所述V个顶点的编号,并根据所述V个顶点的编号依次对每个顶点进行检查,检查每个顶点是否归属于所述T条路径中的一条路径;若其属于所述T条路径中的一条路径,则检查下一个顶点;若其不属于所述T条路径中的一条路径,则遍历其邻接点是否属于所述T条路径中的一条路径,若其邻接点属于所述T条路径中的一条路径,则将其归属到其邻接点所属的路径;若其不属于所述T条路径中的一条路径,则遍历其邻接点是否属于所述T条路径中的一条路径,若其邻接点不属于所述T条路径中的一条路径,则设其为顶点D,沿出度和入度的方向遍历其邻接点,直至遍历到顶点E和顶点F,顶点E和顶点F为两个端点遍历确定的路径为所述N条路径中的一条路径,所述顶点E和顶点F的邻接点分别属于所述T条路径中的两条路径。
在一个可选的实施例中,所述若其邻接点属于所述T条路径中的一条路径,则将其归属到其邻接点所属的路径,包括:若其至少一个邻接点属于所述T条路径中的至少一条路径,则确定其与其至少一个邻接点归属的至少一个路径中每条路径的关联边总数,其中,所述关联边为其与其至少一个邻接点归属的至少一个路径中每条路径之间的边;根据其与其至少一个邻接点归属的至少一个路径中每条路径的关联边总数,以及其至少一个邻接点归属的至少一个路径中每条路径包括的边的总数,确定其与其至少一个邻接点归属的至少一个路径中每条路径之间的均衡参数,将其归属其至少一个邻接点归属的至少一个路径中到均衡参数值最大的路径。
具体地,通过考虑顶点与路径之间的均衡参数,进一步降低了图数据划分的重复率。
在一个可选的实施例中,所述根据所述M个顶点、所述归属后的T条路径以及所述N条路径,确定M个簇,具体包括以下步骤:将所述M个顶点中每个顶点归属的T条路径中的路径划分到每个顶点的路径集;根据所述N条路径中每条路径与M个顶点中每个顶点路径集的关联度,将其划分到与其关联度最大的路径集,并更新其所在的路径集,更新后的M个顶点的路径集为M个簇。
在一个可选的实施例中,所述根据所述M个簇之间的关联度和预设划分块数目P,将所述图数据划分为P个划分块,具体包括以下步骤:当所述M个簇中簇Z内的边数目小于E/P时,根据簇Z与其邻接簇的关联度将簇Z与其关联度最大的簇Y合并为簇X,当所述簇X内的边数目不小于E/P时,簇X为所述P个划分块中的一个块;当所述簇X内的边数目还小于E/P时,继续将簇X与其关联度最大的簇合并,直至合并后的包括簇X的簇内的边数目不小于E/P。
具体地,本发明实施例通过平均划分块中边的数目,提高了图数据划分的均衡性。
在一个可选的实施例中,所述根据所述M个簇之间的关联度和预设划分块数目P,将所述图数据划分为P个划分块,具体还包括以下步骤:当划分完P-1个划分块后,将未被划分到所述P-1个划分块的簇,划分为第P个划分块。
具体地,本发明实施例通过在划分完P-1个划分块后,将未被划分到所述P-1个划分块的簇,划分为第P个划分块,保证了整体图数据划分过程的完整性。
在一个可选的实施例中,设待归属至所述T条路径的顶点为顶点G,则顶点G与T条路径中候选归属路径x的均衡参数通过以下公式得到:
其中,val表示顶点G与路径x的均衡参数,tmp[x]表示顶点G与路径x的关联边总数,pathweight[x]表示路径x包括的边的总数。
其中,A-G分别指代不同的顶点,并不具有实质性的含义。
第二方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的图数据划分方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1、本发明实施例提供的技术方案通过将度值较大的顶点作为路径的端点,可以降低图数据划分中的重复率,以及以路径为单元进行图规模缩减,而降低了内存开销,可以处理大规模的图数据。同时,可以保持路径的完整性,使得该方法所应用的图数据处理系统的运行性能更好。
2、本发明实施例提供的技术方案通过考虑顶点与路径之间的均衡参数,进一步降低了图数据划分的重复率。
3、本发明实施例通过平均划分块中边的数目,提高了图数据划分的均衡性。
4、本发明实施例通过在划分完P-1个划分块后,将未被划分到所述P-1个划分块的簇,划分为第P个划分块,保证了整体图数据划分过程的完整性。
附图说明
图1为本发明实施例提供的一种基于簇的图数据划分方法流程示意图;
图2为本发明实施例提供的另一种基于簇的图数据划分方法流程示意图;
图3为本发明实施例提供的一种步骤S205的细化流程示意图;
图4为本发明实施例提供的一种步骤S206的细化流程示意图;
图5为本发明实施例提供的一种步骤S208的细化流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为本发明实施例提供的一种基于簇的图数据划分方法流程示意图,如图1所示,该方法包括步骤S101至步骤S106。
S101,确定图数据包括的V个顶点中每个顶点的度值,所述图数据包括E条边。
其中,本领域技术人员可以理解,图数据中,存在多个顶点和多条边,其中,若一个顶点和另一个顶点之间存在一条边,则这两个顶点分别为该条边的两个端点。
具体地,可设每个顶点的度值为D,度值包括出度Do和入度Di的总和,即D=Do+Di。
S102,根据所述每个顶点的度值,将所述V个顶点按度值从大到小的顺序进行排序,确定度值大于第一阈值的M个顶点。
在一个可选的实施例中,通过确定一定的第一阈值,使得M个顶点可为度值在V个顶点中排序占前10%或5%的顶点。即上述M个顶点对应为V个顶点中度值较大的顶点集合。
例如,若图数据G共有100个顶点,将这100个顶点按照每个顶点的度值进行排序,则M个顶点为排序在前10的10个顶点或者排序在前5的5个顶点。
具体地,由于图数据划分中,度值较大的点一般会导致较高的重复率,需要区别对待这些度值较大的点,即本申请中提及的度值大于第一阈值的M个顶点。可参考步骤S103,以度值较大的M个顶点为端点,进而寻找T条路径。具体地,第一阈值可根据需要进行设计,也可根据预设划分块数目P和边的数目E确定,以便选取V个顶点中度值较大的顶点为端点构建路径,降低图数据划分的重复率。
本发明实施例通过将度值较大的顶点作为路径的端点,可以降低图数据划分中的重复率。本发明实施例以路径为单元进行图规模缩减,而降低了内存开销,可以处理大规模的图数据。同时,可以保持路径的完整性,使得该方法所应用的图数据处理系统的运行性能更好。
S103,根据所述V个顶点、E条边以及M个顶点,确定T条路径。
所述T条路径中每条路径由V个顶点中的邻接顶点和E条边中的邻接边组成,每条路径包括M个顶点中的一个顶点,且每条路径的一个端点为所述M个顶点中的一个顶点,所述T条路径中两条路径之间最多共用一个端点。所述路径为所述图数据的第一子集,包括多个顶点和多条边。
在一个可选的实施例中,选取所述M个顶点中顶点A,沿第一方向遍历,若其邻接点不属于T条路径中的一条路径,且其邻接点不属于M个顶点中的顶点,则沿其邻接点继续向第一方向遍历,直至遍历到所述M个顶点中的顶点B,由顶点A和顶点B为两个端点遍历确定的路径为遍历路径,所述第一方向为沿出度的方向或入度的方向。在第一顶点处分裂所述遍历路径,得到以所述顶点A和所述第一顶点为两个端点的第一子路径,和以所述顶点B和所述第一顶点为两个端点的第二子路径,所述第一顶点为所述遍历路径包括的顶点中度值最小的顶点。根据所述第一子路径和所述第二子路径,确定T条路径中的两条路径。
可以理解的是,一个顶点的邻接点指的是与该顶点之间共有一条边的顶点。
需要说明的是,以度值较大的顶点A和顶点B构建路径后,在该路径中度值最小的顶点处断开,由于该顶点的度值较小,因此对该顶点复制的重复率将会较低。本发明实施例在构建路径时,考虑在度值较小的顶点处分裂,可以大大降低图数据划分的重复率,避免了在度值较大的顶底处分裂时引起的较大重复率的情况。
在一个可选的实施例中,选取所述M个顶点中顶点C,沿所述第一方向遍历,若其邻接点不属于T条路径中的路径,且其邻接点不属于M个顶点中的顶点,则沿其邻接点继续向第一方向遍历,直至遍历到第二顶点,所述第二顶点为归属于T条路径中的一条路径的顶点。根据所述顶点C和所述第二顶点为两个端点遍历,确定T条路径中的一条路径。
可以理解的是,上述T条路径为以M个顶点中的一个顶点为一个端点的路径集合。
S104,将所述V个顶点中所述T条路径不包括的顶点,归属到所述T条路径,组成归属后的T条路径,或者将其创建成N条路径。
在一个可选的实施例中,确定所述V个顶点的编号,并根据所述V个顶点的编号依次对每个顶点进行检查,检查每个顶点是否归属于所述T条路径中的一条路径。
若其属于所述T条路径中的一条路径,则检查下一个顶点。
若其不属于所述T条路径中的一条路径,则遍历其邻接点是否属于所述T条路径中的一条路径,若其邻接点属于所述T条路径中的一条路径,则将其归属到其邻接点所属的路径。
若其不属于所述T条路径中的一条路径,则遍历其邻接点是否属于所述T条路径中的一条路径,若其邻接点不属于所述T条路径中的一条路径,则设其为顶点D,沿出度和入度的方向遍历其邻接点,直至遍历到顶点E和顶点F,顶点E和顶点F为两个端点遍历确定的路径为所述N条路径中的一条路径,所述顶点E和顶点F的邻接点分别属于所述T条路径中的两条路径。
在一个可选的实施例中,若其至少一个邻接点属于所述T条路径中的至少一条路径,则确定其与其至少一个邻接点归属的至少一个路径中每条路径的关联边总数,其中,所述关联边为其与其至少一个邻接点归属的至少一个路径中每条路径之间的边;根据其与其至少一个邻接点归属的至少一个路径中每条路径的关联边总数,以及其至少一个邻接点归属的至少一个路径中每条路径包括的边的总数,确定其与其至少一个邻接点归属的至少一个路径中每条路径之间的均衡参数,将其归属其至少一个邻接点归属的至少一个路径中到均衡参数值最大的路径。
在一个示例中,设待归属至所述T条路径的顶点为顶点G,则顶点G与T条路径中候选归属路径x的均衡参数通过以下公式得到:
其中,val表示顶点G与路径x的均衡参数,tmp[x]表示顶点G与路径x的关联边总数,pathweight[x]表示路径x包括的边的总数。
具体地,若顶点G与路径x1的关联边数目为2,路径x1包括的边的数目为10,若顶点G与路径x1的关联边数目为5,路径x2包括的边的数目为12,则根据顶点G分别与路径x1和路径x2的均衡参数可知,将确定顶点G归属至均衡参数值较大的路径x2。
本发明实施例将顶点归属至某条路径时,充分考虑了该顶点与路径的均衡性,以提高图数据划分的均衡性。
S105,根据所述M个顶点、T条路径以及所述N条路径,确定M个簇;所述簇为所述图数据的第二子集,包括多条路径。
在一个可选的实施例中,将所述M个顶点中每个顶点归属的T条路径中的路径划分到每个顶点的路径集。根据所述N条路径中每条路径与M个顶点中每个顶点路径集的关联度,将其划分到与其关联度最大的路径集,并更新其所在的路径集,更新后的M个顶点的路径集为M个簇。
S106,根据所述M个簇之间的关联度和预设划分块数目P,将所述图数据的M个簇划分为P个划分块。
其中,所述第一子集和所述第二子集为所述图数据的子集,所述关联度由所述两个子集之间边的数目确定。可以理解的是,若一条边的两个端点分别在两个子集内,则可将该边理解为这两个子集之间的一条边。
在一个可选的实施例中,当所述M个簇中簇Z内的边数目小于E/P时,根据簇Z与其邻接簇的关联度将簇Z与其关联度最大的簇Y合并为簇X,当所述簇X内的边数目不小于E/P时,簇X为所述P个划分块中的一个块。当所述簇X内的边数目还小于E/P时,继续将簇X与其关联度最大的簇合并,直至合并后的包括簇X的簇内的边数目不小于E/P。
本发明实施例通过平均划分块中边的数目,提高了图数据划分的均衡性。
在一个可选的实施例中,当划分完P-1个划分块后,将未被划分到所述P-1个划分块的簇,划分为第P个划分块。
本发明实施例通过在划分完P-1个划分块后,将未被划分到所述P-1个划分块的簇,划分为第P个划分块,保证了整体图数据划分过程的完整性。
图2为本发明实施例提供的另一种基于簇的图数据划分方法流程示意图,如图2所示,该方法包括步骤S201至步骤S208。
S201,处理邻接矩阵格式的原始图数据,以行为单位存储该图,记为G。记录顶点总数V,边总数E,以及划分块数目P,同时记录每个顶点的出度Do和入度Di。
S202,根据G中每行的起始偏移地址,建立哈希表hashtable。
S203,按行遍历G,将图中的边反向存储并排序,然后按行存储该逆向图,记为GR,并用hashtable记录每行的起始偏移地址。
其中,步骤S202和步骤S203中用hashtable存储图G或GR每行的起始偏移地址,以便快速查找图G中指定顶点的邻接点。
S204,记D=Do+Di,表示一个顶点出度和入度的总和。采用堆排序对顶点按照D的值进行降序排序,并标记前10%的顶点,可设被标记的顶点数目为M。
另外,也可标记前5%或其他范围的顶点,可根据实际需要进行设定,本发明实施例将不对此做任何限定。
S205,寻找并记录以被标记顶点作为端点的路径,并将这些路径在D最小的顶点处断开,分裂为两条路径。
S206,对于步骤S205中未遍历到的顶点,根据其相邻顶点是否归属于某条路径,将这些顶点归属到现有路径或者创建一条新路径。
S207,以在步骤S204中被标记的顶点为中心,将其与周围的路径相结合构成一个簇。
具体可参照步骤S105中的记载,在此不做赘述。
S208,根据簇之间的关联度,归并簇,构成划分块。
若簇内的边数目不小于E/P,则将该簇作为一个划分块。然后构建下一个划分块。
具体地,步骤S205-步骤S208的细化,可参照下述实施例中的介绍,在此不做赘述。
图3为本发明实施例提供的一种步骤S205的细化流程示意图。如图3所示,包括步骤S301至步骤S320。
S301,开始寻找以被标记顶点作为端点的路径。
S302,将步骤S204中标记的顶点置于队列Q,创建两个整形数组:vertextopath,以记录每个顶点属于哪条路径,数组元素的值初始化为0,对于步骤S204中标记的顶点,其值置为-1。pathweight,以记录路径中所有顶点出度Do的总和。此外设置一个计数器k=1。
需要说明的是,在vertextopath中值为-1的顶点,表示在步骤S204中被标记的顶点。k表示路径的序号。
S303,若队列Q为空,执行步骤S320,否则执行步骤S304。
S304,从Q中出队一个顶点s。
S305,判断s的邻接点是否都被访问过,若都被访问过,执行步骤S303,否则执行步骤S306。
其中,一个顶点被访问过指的是该顶点已归属到某条路径,当该顶点归属到某条路径时,该顶点在vertextopath中的值大于0。若该顶点在vertextopath中的值等于0,则说明该顶点未被访问过。
S306,选取一个未被访问的邻接点记为cur,创建一个临时队列tmpQ,并将cur压入队列。创建两个整形变量:minvertex,用于记录路径中D值最小的顶点;minval,值初始化为无穷大,记录minvertex中对应顶点的D值。
其中,队列tmpQ用于临时存放以顶点s为一个端点的路径。
S307,选取cur的一个邻接点next。
S308,判断vertextopath[next]的值,若大于0,表示邻接点next已被访问过,则执行步骤S309;若等于-1,表示邻接点next为步骤S204中标记的顶点,则执行步骤S311;若等于0,表示邻接点next未被访问过,则执行步骤S316。
S309,依次出队tmpQ中所有元素q,令vertextopath[q]=k。
可以理解的是,令vertextopath[q]=k表示将tmpQ中的所有顶点归属到路径k。
S310,k=k+1,执行步骤S305。
可以理解的是,k=k+1表示继续寻找下一条路径。
S311,判断tmpQ是否为空,若是,执行步骤S310,否则执行步骤S312。
S312,从tmpQ中出队一个元素q。
S313,判断q是否等于minvertex,若是,执行步骤S314,否则执行步骤S315。
S314,k=k+1。
需要说明的是,步骤S312-步骤314,为执行将以被标记顶点作为端点的路径在其D值最小的顶点处断开,分裂为两条路径的过程。
S315,令vertextopath[q]=k,pathweight[k]=pathweight[k]+Do[q],执行步骤S311。
其中,pathweight[k]=pathweight[k]+Do[q]表示将路径k包括的每个顶点的出度相加。
S316,判断D[next]是否小于minval,若是,则执行步骤S317,否则执行步骤S318。
S317,令minvertex=next,minval=D[next]。
S318,将next压入队列tmpQ。
S319,令cur=next,执行步骤S307。
需要说明的是,步骤S316-步骤S319为执行寻找并记录以被标记顶点作为端点的路径,并标记该路径上D值最小的顶点的过程。
S320,结束流程。
图4为本发明实施例提供的一种步骤S206的细化流程示意图。如图4所示,包括步骤S401至步骤S424。
S401,开始寻找步骤S205中未遍历到的顶点。
S402,设置一个计数器i,并令i=0。
其中,i表示当前访问顶点的序号。
S403,判断i是否小于V,若是执行步骤S404,否则执行步骤S424。
S404,令i=i+1。
S405,判断vertextopath[i]是否等于0,若是执行步骤S406,否则执行步骤S403。
其中,若vertextopath[i]等于0,则表示顶点i未归属于任何一条路径。
S406,创建一个临时数组tmp,长度为k,所有元素值初始化为0,同时创建变量id=0,val=0,x=0。
其中,tmp用于记录顶点i与其候选归属路径的关联边总数,id表示顶点i将会归属到的路径的序号,具体地,顶点i可能会归属到如图1中所述的T条路径,或如图1中所述的N条路径。x表示顶点i的候选归属路径的序号。val表示顶点i与其候选归属路径的均衡参数。该均衡参数根据顶点i与其候选归属路径的关联边总数(tmp[x]),以及其候选归属路径包括的边总数(pathweight[x])确定。
S407,判断是否存在未被访问的i的邻接点,若有,执行步骤S408,否则执行步骤S411。
S408,访问一个之前未被访问的i的邻接点,记为j。
S409,判断vertextopath[j]是否大于0,若是,执行步骤S410,否则执行步骤S407。
S410,令tmp[vertextopath[j]]=tmp[vertextopath[j]]+1,执行步骤S407。
具体地,tmp[vertextopath[j]]=tmp[vertextopath[j]]+1表示若顶点i的邻接点j属于某条路径,则顶点i与j所在的路径的关联边数加1。
具体地,步骤S407-步骤S410用于记录顶点i与路径的关联边数目。
S411,判断x是否大于k,若是执行步骤S418,否则执行步骤S412。
S412,令x=x+1。
S413,判断tmp[x]是否等于0,若是,执行步骤S411,否则执行步骤S414。
S414,判断id是否等于0,若是,执行步骤S415,否则执行步骤S416。
S415,令id=x,val=tmp[x]/pathweight[x],执行步骤S411。
S416,判断val是否大于tmp[x]/pathweight[x],若是,执行步骤S417,否则执行步骤S411。
S417,令id=x,val=tmp[x]/pathweight[x],执行步骤S411。
需要说明的是,步骤S411-步骤S417为执行寻找与顶点i之间均衡参数最大的路径的过程。
S418,判断id是否等于0,若是执行步骤S420,否则执行步骤S419。
S419,令vertextopath[i]=id,pathweight[id]=pathweight[id]+Do[i],执行步骤S403。
可以理解的是,步骤S418-步骤S419为执行将顶点i归属到与其均衡参数值最大的路径,以及更新顶点i归属后的路径的出度和的过程。
S420,令vertextopath[i]=k,pathweight[k]=pathweight[k]+Do[i]。
其中,pathweight[k]=pathweight[k]+Do[i]表示将顶点i归属到
S421,判断j的邻接点中是否若存在顶点v,满足vertextopath[v]等于0,若有,执行步骤S422,否则执行步骤S423。
S422,令vertextopath[v]=k,pathweight[k]=pathweight[k]+Do[v],j=v,执行步骤S421。
S423,令k=k+1,执行步骤S403。
具体地,步骤S420-步骤S423为执行创建如图1中提及的N条路径的过程。
S424,结束流程。
相应地,上述步骤S207可以具体包括以下步骤:
S207-1,创建两个数组:pathtocluster,用于保存路径到簇的映射关系,长度为k,所有元素初始化为0。clusterweight:用于记录簇中边数目,长度为count,所有元素初始化为0。同时设置计数器c=1,并将步骤S204中标记的顶点置于队列Q。
S207-2,若队列Q为空,进入步骤S207-6。否则从Q中出队一个元素,记为s,并令vertextopath[s]=-c,clusterweight[c]=clusterweight[c]+pathweight[vertextopath[s]]。
其中,vertextopath[s]=-c表示顶点s属于序号为c的簇,clusterweight[c]用于记录簇c的边总数。
S207-3,根据出边和入边依次遍历s的所有邻接点。全部邻接点都被遍历则进入步骤S207-5,否则遍历下一个邻接点,记为j。
S207-4,将顶点j所在的路径归入当前簇c,如果pathtocluster[vertextopath[j]]=0,令pathtocluster[vertextopath[j]]=c,以及clusterweight[c]=clusterweight[c]+pathweight[vertextopath[j]]。进入步骤S207-3。
具体地,步骤S207-4用于执行若顶点j所在的路径不属于任何簇,则将其归入到簇c。
S207-5,令c=c+1,执行步骤S207-2。
S207-6,设置计数器i=0。
S207-7,如果i大于k,则执行步骤S207-8。否则令i=i+1。
S207-8,判断pathtocluster[i]是否等于0,不等于0则执行步骤S207-7
S207-9,计算路径i和与其相邻的路径之间的关联度R。Rij=n表示存在n条不重复的边,这n条边一端的顶点在路径i中,另一端的顶点在路径j中。
具体地,通过计算,寻找一条路径m,使得Rim的值最大。然后令pathtocluster[i]=pathtocluster[m],clusterweight[pathtocluster[m]]=clusterweight[pathtocluster[m]]+pathweight[i],执行步骤S207-7。
具体地,步骤S207-9执行将路径i归属到路径m所属的簇,其中,路径i与路径m的关联度最大。
图5为本发明实施例提供的一种步骤S208的细化流程示意图。如图5所示,包括步骤S501至步骤S522。
S501,开始划分簇。
S502,定义两个簇i和j之间的关联度Rij=n,其中Rij=n表示簇i和簇j之间存在n条不重复的边,这些边的其中一个端点在i内,另一个端点在j内。创建数组ctp,用以记录每个簇分别属于哪个划分子集,所有元素初始化为0。创建变量pid,初始化为1。创建变量weight,初始化为0。设置计数器i=0。
其中,pid用于记录划分块的序号。weight用于记录划分块包括的边的数目。
S503,判断ctp[i]是否等于0,若是,执行步骤S505,否则执行步骤S504。
S504,令i=i+1。
S505,令ctp[i]=pid,weight=weight+clusterweight[i]。
其中,令ctp[i]=pid,weight=weight+clusterweight[i]表示将簇i归属到划分块pid,并将划分块pid的边数weight进行更新。
S506,搜索簇j,使得j满足Rij的值最大。令ctp[j]=pid,weight=weight+clusterweight[j]。
S507,判断weight是否大于E/P,若是,执行步骤S509,否则执行步骤S508。
S508,将簇j归并到簇i,执行步骤S506。
S509,pid=pid+1
步骤S503-步骤S509为执行寻找一个划分块的过程。
S510,判断pid是否等于预期划分块数目P,若是,执行步骤S511,否则执行步骤S503。
具体地,若pid=P,则表示开始划分最后一个划分块,将不再执行步骤S503-步骤S509的循环,而开始执行步骤S511。
S511,设置计数器u=0。
S512,判断u是否大于c,若是,执行步骤S516,否则执行步骤S513。
其中,c表示簇的数目。
S513,判断ctp[u]是否等于0,若是,执行步骤S514,否则执行步骤S515。
S514,令ctp[u]=pid。
S515,令u=u+1,执行步骤S512。
具体地,步骤S511-步骤S515执行将剩余未归属于任何划分块的簇归属至第P个划分块。
S516,创建数组result,用以保存最后结果。重置计数器u=0。
S517,判断u是否大于V,若是,执行步骤S522,否则执行步骤S518。
S518,令u=u+1。
S519,判断vertextopath[u]是否大于0,若是执行步骤S520,否则执行步骤S521。
S520,令result[u]=ctp[pathtocluster[vertextopath[u]]],执行步骤S517。
S521,令result[u]=ctp[-vertextopath[u]],执行步骤S517。
步骤S516-步骤S521执行记录每个顶点具体属于哪个划分块的过程。
S522,结束流程。
需要说明的是,上述实施例中,计数器i、j、c、x以及u等参数可能会重复使用,但本领域技术人员可知,在计算机处理领域,不同程序可设置相同的计数或循环参数,不同程序代码之间并不相互影响。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述的存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetic tape),软盘(floppy disk),光盘(optical disc)及其任意组合。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种基于簇的图数据划分方法,所述图数据包括V个顶点和E条边;其特征在于,包括以下步骤:
确定V个顶点中每个顶点的度值;
根据所述每个顶点的度值,将所述V个顶点按度值从大到小的顺序进行排序,确定度值大于第一阈值的M个顶点;
根据所述V个顶点、E条边以及M个顶点,确定T条路径,所述T条路径中每条路径由V个顶点中的邻接顶点和E条边中的邻接边组成,每条路径包括M个顶点中的一个顶点,且每条路径的一个端点为所述M个顶点中的一个顶点,所述T条路径中两条路径之间最多共用一个端点;
将所述V个顶点中所述T条路径不包括的顶点归属到所述T条路径中组成归属后的T条路径,或者将其创建成N条路径;
根据所述M个顶点、T条路径以及所述N条路径,确定M个簇;
根据所述M个簇之间的关联度和预设划分块数目P,将所述图数据的M个簇划分为P个划分块;
其中,所述路径为所述图数据的第一子集,包括多个顶点和多条边,所述簇为所述图数据的第二子集,包括多条路径,所述第一子集和所述第二子集为所述图数据的子集,所述关联度由所述两个子集之间边的数目确定,V表示图数据中顶点的总数目,E表示边的数目,T和N表示路径的数目,M表示从V个顶点中确定的顶点的数目,M还表示对应的簇的数目,P表示划分块的数目,V、E、T、M、N以及P均为正整数。
2.根据权利要求1所述的图数据划分方法,其特征在于,根据所述V个顶点、E条边以及M个顶点,确定T条路径,具体包括以下步骤:
选取所述M个顶点中顶点A,沿第一方向遍历,若其邻接点不属于T条路径中的一条路径,且其邻接点不属于M个顶点中的顶点,则沿其邻接点继续向第一方向遍历,直至遍历到所述M个顶点中的顶点B,由顶点A和顶点B为两个端点遍历确定的路径为遍历路径,所述第一方向为沿出度的方向或入度的方向;
在第一顶点处分裂所述遍历路径,得到以所述顶点A和所述第一顶点为两个端点的第一子路径,和以所述顶点B和所述第一顶点为两个端点的第二子路径,所述第一顶点为所述遍历路径包括的顶点中度值最小的顶点;
根据所述第一子路径和所述第二子路径,确定T条路径中的两条路径。
3.根据权利要求2所述的图数据划分方法,其特征在于,根据所述V个顶点、E条边以及M个顶点,确定T条路径,具体还包括以下步骤:
选取所述M个顶点中顶点C,沿所述第一方向遍历,若其邻接点不属于T条路径中的路径,且其邻接点不属于M个顶点中的顶点,则沿其邻接点继续向第一方向遍历,直至遍历到第二顶点,所述第二顶点为归属于T条路径中的一条路径的顶点;
根据所述顶点C和所述第二顶点为两个端点遍历,确定T条路径中的一条路径。
4.根据权利要求1所述的图数据划分方法,其特征在于,所述将所述V个顶点中所述T条路径不包括的顶点,归属到所述T条路径,组成归属后的T条路径,或者将其创建成N条路径,具体包括以下步骤:
确定所述V个顶点的编号,并根据所述V个顶点的编号依次对每个顶点进行检查,检查每个顶点是否归属于所述T条路径中的一条路径;
若其属于所述T条路径中的一条路径,则检查下一个顶点;
若其不属于所述T条路径中的一条路径,则遍历其邻接点是否属于所述T条路径中的一条路径,若其邻接点属于所述T条路径中的一条路径,则将其归属到其邻接点所属的路径;
若其不属于所述T条路径中的一条路径,则遍历其邻接点是否属于所述T条路径中的一条路径,若其邻接点不属于所述T条路径中的一条路径,则设其为顶点D,沿出度和入度的方向遍历其邻接点,直至遍历到顶点E和顶点F,顶点E和顶点F为两个端点遍历确定的路径为所述N条路径中的一条路径,所述顶点E和顶点F的邻接点分别属于所述T条路径中的两条路径。
5.根据权利要求4所述的图数据划分方法,其特征在于,所述若其邻接点属于所述T条路径中的一条路径,则将其归属到其邻接点所属的路径,包括:
若其至少一个邻接点属于所述T条路径中的至少一条路径,则确定其与其至少一个邻接点归属的至少一个路径中每条路径的关联边总数,其中,所述关联边为其与其至少一个邻接点归属的至少一个路径中每条路径之间的边;
根据其与其至少一个邻接点归属的至少一个路径中每条路径的关联边总数,以及其至少一个邻接点归属的至少一个路径中每条路径包括的边的总数,确定其与其至少一个邻接点归属的至少一个路径中每条路径之间的均衡参数,将其归属其至少一个邻接点归属的至少一个路径中到均衡参数值最大的路径。
6.根据权利要求1所述的图数据划分方法,其特征在于,所述根据所述M个顶点、所述归属后的T条路径以及所述N条路径,确定M个簇,具体包括以下步骤:
将所述M个顶点中每个顶点归属的T条路径中的路径划分到每个顶点的路径集;
根据所述N条路径中每条路径与M个顶点中每个顶点路径集的关联度,将其划分到与其关联度最大的路径集,并更新其所在的路径集,更新后的M个顶点的路径集为M个簇。
7.根据权利要求1所述的图数据划分方法,其特征在于,所述根据所述M个簇之间的关联度和预设划分块数目P,将所述图数据划分为P个划分块,具体包括以下步骤:
当所述M个簇中簇Z内的边数目小于E/P时,根据簇Z与其邻接簇的关联度将簇Z与其关联度最大的簇Y合并为簇X,当所述簇X内的边数目不小于E/P时,簇X为所述P个划分块中的一个块;
当所述簇X内的边数目还小于E/P时,继续将簇X与其关联度最大的簇合并,直至合并后的包括簇X的簇内的边数目不小于E/P。
8.根据权利要求7所述的图数据划分方法,其特征在于,所述根据所述M个簇之间的关联度和预设划分块数目P,将所述图数据划分为P个划分块,具体还包括以下步骤:
当划分完P-1个划分块后,将未被划分到所述P-1个划分块的簇,划分为第P个划分块。
9.根据权利要求5所述的图数据划分方法,其特征在于,设待归属至所述T条路径的顶点为顶点G,则顶点G与T条路径中候选归属路径x的均衡参数通过以下公式得到:
<mrow>
<mi>v</mi>
<mi>a</mi>
<mi>l</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>t</mi>
<mi>m</mi>
<mi>p</mi>
<mo>&lsqb;</mo>
<mi>x</mi>
<mo>&rsqb;</mo>
</mrow>
<mrow>
<mi>p</mi>
<mi>a</mi>
<mi>t</mi>
<mi>h</mi>
<mi>w</mi>
<mi>e</mi>
<mi>i</mi>
<mi>g</mi>
<mi>h</mi>
<mi>t</mi>
<mo>&lsqb;</mo>
<mi>x</mi>
<mo>&rsqb;</mo>
</mrow>
</mfrac>
</mrow>
其中,val表示顶点G与路径x的均衡参数,tmp[x]表示顶点G与路径x的关联边总数,pathweight[x]表示路径x包括的边的总数。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的图数据划分方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710319629.6A CN107193896A (zh) | 2017-05-09 | 2017-05-09 | 一种基于簇的图数据划分方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710319629.6A CN107193896A (zh) | 2017-05-09 | 2017-05-09 | 一种基于簇的图数据划分方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107193896A true CN107193896A (zh) | 2017-09-22 |
Family
ID=59873093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710319629.6A Pending CN107193896A (zh) | 2017-05-09 | 2017-05-09 | 一种基于簇的图数据划分方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107193896A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399268A (zh) * | 2018-03-29 | 2018-08-14 | 浙江大学 | 一种基于博弈论的增量式异构图聚类方法 |
CN109165325A (zh) * | 2018-08-27 | 2019-01-08 | 北京百度网讯科技有限公司 | 用于切分图数据的方法、装置、设备以及计算机可读存储介质 |
CN109255055A (zh) * | 2018-08-06 | 2019-01-22 | 四川蜀天梦图数据科技有限公司 | 一种基于分组关联表的图数据存取方法和装置 |
CN109885733A (zh) * | 2019-01-18 | 2019-06-14 | 清华大学 | 针对目标生成树查询的图数据压缩方法及装置 |
CN110688055A (zh) * | 2018-07-04 | 2020-01-14 | 清华大学 | 一种大图计算中数据访问方法及系统 |
CN111538867A (zh) * | 2020-04-15 | 2020-08-14 | 深圳计算科学研究院 | 一种有界增量图划分方法和系统 |
CN113254527A (zh) * | 2021-04-22 | 2021-08-13 | 杭州欧若数网科技有限公司 | 分布式存储图数据的优化方法、电子装置和存储介质 |
CN113792170A (zh) * | 2021-11-15 | 2021-12-14 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
CN114168805A (zh) * | 2022-02-08 | 2022-03-11 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及介质 |
WO2022262007A1 (zh) * | 2021-06-18 | 2022-12-22 | 深圳计算科学研究院 | 一种图算法的自动增量化方法、装置、设备及存储介质 |
-
2017
- 2017-05-09 CN CN201710319629.6A patent/CN107193896A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108399268A (zh) * | 2018-03-29 | 2018-08-14 | 浙江大学 | 一种基于博弈论的增量式异构图聚类方法 |
CN110688055A (zh) * | 2018-07-04 | 2020-01-14 | 清华大学 | 一种大图计算中数据访问方法及系统 |
CN110688055B (zh) * | 2018-07-04 | 2020-09-04 | 清华大学 | 一种大图计算中数据访问方法及系统 |
CN109255055A (zh) * | 2018-08-06 | 2019-01-22 | 四川蜀天梦图数据科技有限公司 | 一种基于分组关联表的图数据存取方法和装置 |
CN109255055B (zh) * | 2018-08-06 | 2020-10-30 | 四川蜀天梦图数据科技有限公司 | 一种基于分组关联表的图数据存取方法和装置 |
CN109165325A (zh) * | 2018-08-27 | 2019-01-08 | 北京百度网讯科技有限公司 | 用于切分图数据的方法、装置、设备以及计算机可读存储介质 |
CN113779322B (zh) * | 2018-08-27 | 2023-08-01 | 北京百度网讯科技有限公司 | 用于图检索的方法、装置、设备以及计算机可读存储介质 |
CN113779322A (zh) * | 2018-08-27 | 2021-12-10 | 北京百度网讯科技有限公司 | 用于图检索的方法、装置、设备以及计算机可读存储介质 |
CN109165325B (zh) * | 2018-08-27 | 2021-08-17 | 北京百度网讯科技有限公司 | 用于切分图数据的方法、装置、设备以及计算机可读存储介质 |
CN109885733A (zh) * | 2019-01-18 | 2019-06-14 | 清华大学 | 针对目标生成树查询的图数据压缩方法及装置 |
CN109885733B (zh) * | 2019-01-18 | 2020-09-15 | 清华大学 | 针对目标生成树查询的图数据压缩方法及装置 |
CN111538867B (zh) * | 2020-04-15 | 2021-06-15 | 深圳计算科学研究院 | 一种有界增量图划分方法和系统 |
WO2021208147A1 (zh) * | 2020-04-15 | 2021-10-21 | 深圳计算科学研究院 | 一种有界增量图划分方法和系统 |
CN111538867A (zh) * | 2020-04-15 | 2020-08-14 | 深圳计算科学研究院 | 一种有界增量图划分方法和系统 |
CN113254527A (zh) * | 2021-04-22 | 2021-08-13 | 杭州欧若数网科技有限公司 | 分布式存储图数据的优化方法、电子装置和存储介质 |
CN113254527B (zh) * | 2021-04-22 | 2022-04-08 | 杭州欧若数网科技有限公司 | 分布式存储图数据的优化方法、电子装置和存储介质 |
WO2022262007A1 (zh) * | 2021-06-18 | 2022-12-22 | 深圳计算科学研究院 | 一种图算法的自动增量化方法、装置、设备及存储介质 |
CN113792170B (zh) * | 2021-11-15 | 2022-03-15 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
CN113792170A (zh) * | 2021-11-15 | 2021-12-14 | 支付宝(杭州)信息技术有限公司 | 图数据划分方法、装置和计算机设备 |
CN114168805A (zh) * | 2022-02-08 | 2022-03-11 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及介质 |
CN114168805B (zh) * | 2022-02-08 | 2022-05-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193896A (zh) | 一种基于簇的图数据划分方法 | |
Pandiri et al. | A hyper-heuristic based artificial bee colony algorithm for k-interconnected multi-depot multi-traveling salesman problem | |
Lo et al. | A genetic algorithm with new local operators for multiple traveling salesman problems | |
Szeto et al. | Hybrid artificial bee colony algorithm for transit network design | |
CN101446962B (zh) | 一种数据转换方法、装置及数据处理系统 | |
MacLeod et al. | Deduction of probable events of lateral gene transfer through comparison of phylogenetic trees by recursive consolidation and rearrangement | |
CN108241712A (zh) | 一种地图数据处理方法和装置 | |
CA3036558C (en) | Device and method for improving route planning computing devices | |
CN107357846A (zh) | 关系图谱的展示方法以及装置 | |
CN113341889B (zh) | 带装配阶段和能耗的分布式阻塞流水车间调度方法及系统 | |
CN110909961A (zh) | 基于bim的室内路径查询方法及装置 | |
CN110598948A (zh) | 针对旅游景点多点归源的全排列路径规划的提速方法 | |
CN108629001A (zh) | 一种地理信息大数据的去重方法 | |
CN108920105A (zh) | 基于社区结构的图数据分布式存储方法及装置 | |
CN111340303A (zh) | 基于新型混合蛙跳算法的旅行商路线规划方法 | |
CN108509532B (zh) | 一种应用于地图的聚点方法和装置 | |
CN112269848B (zh) | 一种众包轨迹数据融合方法及装置 | |
Arge et al. | An optimal cache-oblivious priority queue and its application to graph algorithms | |
Regnauld et al. | Automatic amalgamation of buildings for producing ordnance survey® 1: 50 000 scale maps | |
US11803529B2 (en) | Unbalanced binary tree construction method based on calculation of binary boundary value | |
Rodrigues et al. | Solving the rural postman problem by memetic algorithms | |
CN106772358A (zh) | 一种基于cplex的多传感器分配方法 | |
CN104904122B (zh) | 基于压缩感知的信号重建方法及装置 | |
CN114936739A (zh) | 基于改进交叉熵算法的多目标柔性作业车间调度方法 | |
CN113204348A (zh) | 一种基于Contraction Hierarchies的国内路网数据编译方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170922 |