igraph 参考手册

用于使用 igraph C 库

搜索手册

第 1 章。 简介

igraph 是一个用于创建和操作图的库。你可以从两个方面来看待它:首先,igraph 包含了很多图算法的实现。这些包括经典的图算法,如图同构、图围长和连通性,以及新的图算法,如传递性、图 motif 和社群结构检测。浏览一下目录或本书的索引,就能了解有哪些可用功能。

其次,igraph 提供了一个用于开发和/或实现图算法的平台。它具有用于表示图的高效数据结构,以及许多其他数据结构,如灵活的向量、堆栈、堆、队列、邻接表,这些对于实现图算法很有用。事实上,这些数据结构是随着组成 igraph 库主要部分的经典和非经典图算法的实现而发展起来的。这样,它们经过了多次微调和正确性检查。

我们开发 igraph 的主要目标是创建一个在大型但不极端大型图上高效的图库。更准确地说,假设图适合计算机的物理内存。如今,这意味着具有数百万个顶点和/或边的图。我们对高效的定义是它在理论上和(更重要的是)在实践中运行都很快。

我们认为 igraph 的一大优势是可以嵌入到更高级别的语言或环境中。目前我们正在开发三个这样的嵌入(或者如果你从另一个角度来看,也可以说是接口):一个 R 包、一个 Python 扩展模块和一个 Mathematica (Wolfram Language) 包。未来可能会有更多。诸如 R 或 Python 等高级语言使得使用图例程更加舒适,而无需实际编写任何 C 代码。与 C 版本相比,它们有一些(通常非常小的)速度损失,但增加了易用性和灵活性。然而,本手册仅涵盖 C 库。如果您想使用 Python、R 或 Wolfram Language,请参阅专门为这些接口编写的文档,并且仅当您对这些文档中未涵盖的某些细节感兴趣时才返回此处。

我们仍然认为 igraph 是一个子项目。它还有很大的发展空间,我们确信在不久的将来会有很大的改进。我们可以从用户那里获得的任何反馈对我们来说都非常重要,因为大多数时候这些问题和评论会指导我们添加和改进什么。

igraph 是开源的,并根据 GNU GPL 版本 2 或(由您选择)任何更高版本的条款分发。我们坚信科学中使用的所有算法,无论是图论还是其他,都应该有一个高效的开源实现,允许任何人使用和修改。

1. igraph 是自由软件

igraph 库

版权所有 (C) 2003-2004 Gábor Csárdi <csardi.gabor@gmail.com>

版权所有 (C) 2005-2019 Gábor Csárdi <csardi.gabor@gmail.com> 和 Tamás Nepusz <ntamas@gmail.com>

版权所有 (C) 2020-2023 igraph 开发团队

本程序是自由软件;您可以根据自由软件基金会发布的 GNU 通用公共许可证条款重新分发和/或修改它;无论是许可证的第 2 版,还是(由您选择)任何更高版本。

本程序的发布是希望它会有用,但不作任何担保;既不包含适销性暗示的担保,也不包含对某一特定用途的适用性暗示的担保。请参阅 GNU 通用公共许可证来了解详情。

您应该已经收到了与本程序一同发布的 GNU 通用公共许可证的副本;如果没有,请写信给自由软件基金会。

2. 引用 igraph

要在出版物中引用 igraph,请使用以下参考文献

Gábor Csárdi, Tamás Nepusz: 用于复杂网络研究的 igraph 软件包。InterJournal Complex Systems, 1695, 2006.

igraph C 库在 Zenodo 上被分配了 DOI 10.5281/zenodo.3630268