下载此文档

SNAP简介与应用.doc


文档分类:办公文档 | 页数:约17页 举报非法文档有奖
1/17
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/17 下载此文档
文档列表 文档介绍
--------------------------校验:_____________-----------------------日期:_____________SNAP简介与应用SNAP简介SNAP(workAnalysisPlatform)是一个通用的、能高效的分析和处理大型网络的系统。它支持图和网两种数据结构。其中,图描述的是拓扑结构,即每个结点都有一个唯一的整数id,结点之间的边可以是有向的,也可以是无向的,并且两个结点之间可以有多条边;网可以看成是一种结点和(或者)边上赋有数据的图。这些数据的数据类型可以很容易的作为模板参数传递,这就为实现那些在其结点和边上有着丰富数据的各种各样的网络提供了一种快速便捷的方法。下面是对SNAP支持的两种数据结构的进一步的描述。SNAP支持的图的类型:无向图(TUNGraph):在一对结点之间只有一条无向边。有向图(TNGraph):在一对结点之间只有一条有向边。有向多重图(TNEGraph):在一对结点之间有任意多条有向边。SNAP支持的网的类型:有向结点网(<TNodeData>):每个结点上都有权值的有向图。有向结点/边网(<TNodeData,TEdgeData>):每个结点和每条边上都有权值的有向图。有向结点多重网(<TNodeData,TEdgeData>):每个结点和每条边上都有权值的有向多重图。巨型网(<TNodeData>):有着数以亿计条边的有向结点网,这种网必须用高效的内存来实现并且要避免有内存碎片。其中,边的数量要取决于计算机的RAM有多大。SNAP库的核心是用C++语言编写的,并且进行了优化以实现最优性能和最紧凑的图表示。它可以很容易的对一个有着数以亿计的结点和边的大型网络进行缩放(scalesto),可以高效的处理大图,可以计算结构属性,还可以生成正则图和随机图,而且它还支持结点和边上的一些属性。另外,大图的可伸缩性是SNAP的另一个优点,即在计算的时候可以动态的改变图或表的结点、边和属性。SNAP最初是由JureLeskovec在他的博士研究过程中开发的,它的第一版在2009年12月发布。SNAP运用了一个像在JozefStefanInstitute开发的GLib通用的标准模板库。SNAP和Glib都在积极开发中并且应用到了大量的学术研究项目和工程项目中。这是一个怎样创建和应用有向图的例子://createagraphPNGraphGraph=TNGraph::New();Graph->AddNode(1);Graph->AddNode(5);Graph->AddNode(32);Graph->AddEdge(1,5);Graph->AddEdge(5,1);Graph->AddEdge(5,32);每个结点有明确的id,但是这个id可以是任意的,不是必须从0开始连续编号。在一个多重图(TNEGraph)中,每条边有明确的整数id。在有向图和无向图中,边没有id,它们用一个结点对来标示。SNAP使用智能指针,所以没有必要显式的删除图对象。当图对象不再被使用时,它们就会进行自毁。在类名中,前缀P代表指针,前缀T代表类型。创建网的方法和创建图的方法是一致的。关于迭代器SNAP的很多操作是基于结点和边的迭代器进行的。这些迭代器允许高效实现网络上的那些算法而不必考虑网络的类型(有向、无向、图或是网),同时它们也允许针对特定类型网络的具体实现。下面是迭代器的一个例子://createadirectedrandomgraphon100nodesand1kedgesPNGraphGraph=TSnap::GenRndGnm<PNGraph>(100,1000);//traversethenodesfor(TNGraph::TNodeINI=Graph->BegNI();NI<Graph->EndNI();NI++){}//traversetheedgesfor(TNGraph::TEdgeIEI=Graph->BegEI();EI<Graph->EndEI();EI++){}//wecantraversetheedgesalsolikethisfor(TNGraph::TNodeINI=Graph->BegNI();NI<Graph->EndNI();NI++){{}}所有的图和网的数据类型中都定义了结点和边的迭代器。通常情况下,图和网的数据类型运用下列函数来返回各种各样的迭代器:BegNI():iteratortofirstnodeEndNI():iteratortoonepastlastnodeGetNI(u):iteratortonodewithiduBegEI():iteratortofirstedgeEndEI():iteratortoonepastlaste

SNAP简介与应用 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数17
  • 收藏数0 收藏
  • 顶次数0
  • 上传人漫山花海
  • 文件大小728 KB
  • 时间2019-11-14