- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SNAP简介与应用SNAP简介与应用
SNAP简介
SNAP(Stanford Network Analysis Platform)是一个通用的、能高效的分析和处理大型网络的系统。它支持图和网两种数据结构。其中,图描述的是拓扑结构,即每个结点都有一个唯一的整数id,结点之间的边可以是有向的,也可以是无向的,并且两个结点之间可以有多条边;网可以看成是一种结点和(或者)边上赋有数据的图。这些数据的数据类型可以很容易的作为模板参数传递,这就为实现那些在其结点和边上有着丰富数据的各种各样的网络提供了一种快速便捷的方法。下面是对SNAP支持的两种数据结构的进一步的描述。
SNAP支持的图的类型:
无向图(TUNGraph):在一对结点之间只有一条无向边。
有向图(TNGraph):在一对结点之间只有一条有向边。
有向多重图(TNEGraph):在一对结点之间有任意多条有向边。
SNAP支持的网的类型:
有向结点网(TNodeNetTNodeData):每个结点上都有权值的有向图。
有向结点/边网(TNodeEDatNetTNodeData, TEdgeData):每个结点和每条边上都有权值的有向图。
有向结点多重网(TNodeEdgeNetTNodeData, TEdgeData):每个结点和每条边上都有权值的有向多重图。
巨型网(TBigNetTNodeData):有着数以亿计条边的有向结点网,这种网必须用高效的内存来实现并且要避免有内存碎片。其中,边的数量要取决于计算机的RAM有多大。
SNAP库的核心是用C++语言编写的,并且进行了优化以实现最优性能和最紧凑的图表示。它可以很容易的对一个有着数以亿计的结点和边的大型网络进行缩放(scales to),可以高效的处理大图,可以计算结构属性,还可以生成正则图和随机图,而且它还支持结点和边上的一些属性。另外,大图的可伸缩性是SNAP的另一个优点,即在计算的时候可以动态的改变图或表的结点、边和属性。
SNAP最初是由Jure Leskovec在他的博士研究过程中开发的,它的第一版在2009年12月发布。SNAP运用了一个像在Jozef Stefan Institute开发的GLib通用的标准模板库。SNAP和Glib都在积极开发中并且应用到了大量的学术研究项目和工程项目中。
这是一个怎样创建和应用有向图的例子:
// create a graph
PNGraph Graph = 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的很多操作是基于结点和边的迭代器进行的。这些迭代器允许高效实现网络上的那些算法而不必考虑网络的类型(有向、无向、图或是网),同时它们也允许针对特定类型网络的具体实现。
下面是迭代器的一个例子:
// create a directed random graph on 100 nodes and 1k edges
PNGraph Graph = TSnap::GenRndGnmPNGraph(100, 1000);
// traverse the nodes
for (TNGraph::TNodeI NI = Graph-BegNI(); NI Graph-EndNI(); NI++)
{
printf(node id %d with out-degree %d and in-degree %d\n,NI.GetId(), NI.GetOutDeg(), NI.GetInDeg());
}
// traverse the edges
for (TNGraph::TEdgeI EI = Graph-BegEI(); EI Graph-EndEI(); EI++)
{
printf(edge (%d, %d)\n, EI.GetSrcNId(); EI.GetDstNId());
}
// we can traverse the edges also like this
for (TNGraph::TNod
您可能关注的文档
- Schematic diagramof plasma polymerization techniques used in the experiment.doc
- SCI list.doc
- questions for population.doc
- science 期刊缩写.doc
- SCI分区——环境科学类.doc
- SCI和SSCI.doc
- SCI收录中国期刊及影响因子.doc
- SCI收录化工类(engineering,chemical)期刊目录.docx
- SCI收录的控制学科、计算机学科期刊.doc
- SCI收录遥感期刊.docx
- 1.1细胞是生命活动的基本单位课件-2024-2025学年高一上学期生物人教版必修1.pptx
- 1.2细胞的多样性和统一性第1课时课件-2024-2025学年高一上学期生物人教版必修1.pptx
- 第16课《白杨礼赞》课件-2025-2026学年统编版语文八年级上册.pptx
- 2026届高三生物一轮复习课件+减数分裂与生物的遗传、变异.pptx
- 3.1细胞膜的结构和功能第2课时课件-2025-2026学年高一上学期生物人教版必修1.pptx
- 2025届高三生物一轮复习课件2.1减数分裂和受精作用.ppt
- 中考语文二轮专题复习课件:新闻概括题.pptx
- 第6课《我看》课件+++2025-2026学年统编版语文九年级上册.pptx
- 第21课《人民英雄永存不朽》课件-2025-2026学年统编版语文八年级上册.pptx
- 2025年广西河池罗城特聘农机技术指导员的(1人)考前自测高频考点模拟试题含答案详解(b卷).docx
最近下载
- 神经内科三基考试题及答案.doc VIP
- 等离子体物理与当代高新技术(本科生).ppt VIP
- SMTC 2 800 003 LIN节点设计需求LIN node design requirements(20180730).pdf
- 医院医院安保服务及停车场运营管理服务招标文件.pdf
- (最新)社区网格员考试试题(含答案).docx VIP
- 老小区燃气管道改造监理实施细则.docx VIP
- 中国行业标准 YY/T 1831-2021梅毒螺旋体抗体检测试剂盒(免疫层析法).pdf
- Walkera华科尔无人机FCS-F8使用指南_CN_V1.2_2020.10.12(金属壳版).pdf
- 五升六数学暑假作业60天附答案.docx VIP
- 高中物理:强基计划专题讲座.pptx VIP
文档评论(0)