图 (数据结构)

✍ dations ◷ 2025-12-03 04:30:59 #图 (数据结构)

在计算机科学中,图(英语:graph)是一种抽象数据类型,用于实现数学中图论的无向图和有向图的概念。

图的数据结构包含一个有限(可能是可变的)的集合作为节点集合,以及一个无序对(对应无向图)或有序对(对应有向图)的集合作为边(有向图中也称作弧)的集合。节点可以是图结构的一部分,也可以是用整数下标或引用表示的外部实体。

图的数据结构还可能包含和每条边相关联的数值(edge value),例如一个标号或一个数值(即权重,weight;表示花费、容量、长度等)。

图数据结构支持的基本操作通常包括:

如果该数据结构支持和边关联的数值,则通常也支持下列操作:

下表给出了在图上进行各种操作的复杂度。其中,用||表示节点数量,||表示边的数量。同时假设存储的信息是边上对应的值,如果没有对应值则存储∞。

邻接表在稀疏图(英语:sparse graph)上比较有效率。邻接矩阵则常在图比较稠密的时候使用,判断标准一般为边的数量| |接近于节点的数量的平方| |2;邻接矩阵也在查找两节点邻接情况较为频繁时使用。

其它表示和存储图的数据结构还包括链式前向星、十字链表、邻接多重表(英语:adjacency multilist)等。

图问题的并行计算主要存在如下几种困难:处理大量的数据、求解非常规的问题、数据不分散、数据存取对计算的比例很高等。面对这些困难,并行计算中图的表示和存储方式很重要。如果选取了不合适的表示方式,可能带来不必要的通讯花费,进而影响算法的可扩展性。在本节中,并行计算的共享和分布式(英语:distributed memory)存储模型都在考虑之列。

在共享存储模型下,图的表示和非并行计算中的场景是相同的,,因为在此模型下,对图表示(如邻接表)的并行读取操作效率已经足够高了。

在分布式存储(英语:distributed memory)模型下,通常会采用划分(英语:graph partition)点集 V {displaystyle V} p {displaystyle p} 个集合 V 0 , , V p 1 {displaystyle V_{0},dots ,V_{p-1}} 的方式,其中 p {displaystyle p} 是并行处理器的数量。随后,这些点集划分及相连的边按照标号分配给每个并行处理器。每个处理器存储原图的一个子图,而那些两个顶点分属两个子图的边则需额外特殊处理。在分布式图算法中,处理这样的边往往意味着处理器之间的通讯。

图的划分需要谨慎地在降低通讯复杂度和使划分均匀之间取舍。但图划分本身就是NP难问题。因此,实践中会使用启发式方法。

机器学习、社会网络分析等领域中,有时会处理数万亿条边的图。图的压缩存储可以减少存取和内存压力。霍夫曼编码等一些数据压缩的常见方法是可行的。同时,邻接表、邻接矩阵等也有专门的压缩存储方法以提高效率。

相关

  • 工具书工具书指一种在学习中和工作中可以作为工具使用的特定类型的书籍,专供查考资料,以解决工作或学习过程中所遇到的某些疑难问题。这些书籍经过汇集、编著或译述的资料,把相关领域
  • 晚辈后辈、晚辈,可以指后代、子孙,也可以是对社会中无血缘关系而比自己年少者,或者同组织中科层地位相近而比自己资浅者的称呼。对于后辈,有若干不同的称呼法,例如在学徒、剧团之间叫
  • 自然语言理解自然语言理解是研究如何让电脑读懂人类语言的一门技术,是自然语言处理技术中最困难的一项。自然语言理解这个概括的术语,适用于多样的电脑应用,从小型、相对简单之事,例如发给机
  • 二面体在几何学中,二面体是指由2个面组成的多面体,但由于三维空间中的多面体至少又具有4个面,因此少于四个面的多面体只能是退化的,换句话说,小于4个面的多面体无法具有非零的体积。二
  • 路易吉·凯鲁比尼马里亚·路易吉·卡洛·泽诺比奥·萨尔瓦多·凯鲁比尼(意大利语:Maria Luigi Carlo Zenobio Salvatore Cherubini,1760年9月8日-1842年3月15日) 是一位出生于意大利、在法国渡过
  • 德国联邦铁路V162型柴油机车德国联邦铁路V162型柴油机车(德语:DB-Baureihe V 162,自1968年起改称217型)是德国联邦铁路的一款液力传动(德语:Strömungsgetriebe)柴油机车型号。它是在V160型机车的基础上发展而
  • 塞内加尔各区人类发展指数列表这是一个塞内加尔区域的塞内加尔的人类发展指数列表,2016年的报告采用的是2015年的数据。
  • 查蒂·史密斯查蒂·史密斯(英语:Zadie Smith,1975年10月25日-),英国小说家。至今为止她发表了三部小说。2003年《格兰塔》杂志把她列入20名最好的年轻作家之一。2010年9月1日她成为纽约大学写
  • 顾明青顾明青(1976年1月1日-),是一名已经退役的中国足球运动员,曾经效力于上海申花、上海浦东。
  • 贾克·福翠尔贾克·福翠尔(英语:Jacques Futrelle,1875年4月9日-1912年4月15日)是美国记者和奇幻小说作家。他最出名的小说是侦探故事,主角是奥古斯都·凡杜森(英语:Augustus S.F.X. Van Dusen)教