图 (数据结构)

✍ dations ◷ 2025-12-08 07:24:55 #图 (数据结构)

在计算机科学中,图(英语: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难问题。因此,实践中会使用启发式方法。

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

相关

  • 哈德森湾哈德森湾(英语:Hudson Bay,或称哈德逊湾)位于加拿大东北部巴芬岛与拉布拉多半岛西侧的大型海湾,面积122.6万平方千米。平均水深257米。北部时常会有北极熊出现。主要港口有丘吉尔
  • 龙华集中营龙华集中营是第二次世界大战太平洋战争期间,日本在上海中学校园内建立的集中营,主要用来关押上海公共租界的欧美侨民。电影《太阳帝国》反映的是这里的生活。
  • 阿里雷扎·萨利希·内贾德阿里雷扎·萨利希内贾德(Alireza Salehi Nejad)是一名伊朗-土耳其籍的社会科学家及多学科研究者,目前隶属于德黑兰大学世界研究学院。他也是总部位于马来西亚吉隆坡的商业资讯
  • 何毓藻何毓藻(1791年9月27日-1853年1月9日),字荷舫,号芸樵,陕西省宝鸡县人。乾隆五十六年八月三十日生,嘉庆十八年(1813年)拔贡、二十一年(1816年)丙子科举人。道光九年(1829年)任陕西三水县训
  • 搭飞机去《搭飞机去》(韩语:비행기 타고 가요,英语:Cabin Crew),为韩国Channel A电视台于2019年推出的综艺节目,由Yura、申铉濬、郑珍云、黄帝圣、奇熙贤等人共同出演。节目由首尔航空协助
  • 哈通·艾努尔·叙吕居哈通·艾努尔·叙吕居(库德语:Hatun Aynur Sürücü‎,女性,1982年1月17日(柏林)-2005年2月7日(柏林))是一位库尔德裔德国人,所谓荣誉谋杀的受害者。2005年在滕珀尔霍夫(英语:Tempelhof)
  • 冰上恭子冰上恭子(日语:氷上 恭子,1969年1月11日-),日本女性配音员。出身于兵库县宝冢市。身高154cm。A型血。Mausu Promotion所属(1994年加入),东映演员养成所大阪校、东京广播学院毕业。为
  • 天津开放大学宝坻分校天津开放大学宝坻分校简称宝坻电大,是宝坻区唯一一所成人教育学校,天津电大宝坻工作站成立于1979年,2001年更为天津广播电视大学宝坻分校,2020年12月29日更为现名。学校位于天津
  • 前639年
  • 马库斯·丹尼尔森马库斯·安德烈亚斯·丹尼尔森(Marcus Andreas Danielson,1989年4月8日-)是一名瑞典职业足球运动员,司职后卫,效力于中国足球协会超级联赛俱乐部大连人,代表瑞典国家足球队参加国际比赛。