# 图 (数学)[编辑]

一個有6個頂點，7条邊的圖
在离散数学中，**图**（英語：graph）是用于表示物体与物体之间存在某种关系的结构。数学抽象后的“物体”称作**节点**或**顶点**（vertex, node, point），节点间的相关关系则称作**边**。在描绘一张图的时候，通常用一组点或小圆圈表示节点，其间的边则使用直线或曲线。

图中的边可以是有方向或没有方向的。例如在一张图中，如果节点表示聚会上的人，而边表示两人曾经握手，则该图就是没有方向的，因为甲和乙握过手也意味着乙一定和甲握过手。相反，如果一条从甲到乙的边表示甲欠乙的钱，则该图就是有方向的，因为“曾经欠钱”这个关系不一定是双向的。前一种图称为**无向图**，后一种称为**有向图**。

图是图论中的基本概念。1878年，詹姆斯·西尔维斯特首次使用“图”这一名词：他用图来表示数学和化学分子结构之间的关系（他称为“化学图”，英語：chemico-graphical image）。

## 定义

在图论中，图的定义有很多。下面是一些比较基本的定义方式以及与它们相关的数学结构。

### 图

一张有3个节点和3条边的图
一张图（为了和**有向图**区分，也称**无向图**；为了和多重图区分，也称**简单图**）是一个二元组 WIKINIUM\_MATH\_PH\_0 ，其中集合 WIKINIUM\_MATH\_PH\_1 中的元素称为**节点**，集合 WIKINIUM\_MATH\_PH\_2 中的元素是两个节点组成的无序对，称为**边**。集合 WIKINIUM\_MATH\_PH\_3 称为**点集**， WIKINIUM\_MATH\_PH\_4 称为**边集**。

一条边 WIKINIUM\_MATH\_PH\_5 上的两个节点 WIKINIUM\_MATH\_PH\_7 和 WIKINIUM\_MATH\_PH\_8 称作这条边的**顶点**或**端点**；也说这条边**连接**了节点 WIKINIUM\_MATH\_PH\_9 和 WIKINIUM\_MATH\_PH\_10 ，或这条边与 WIKINIUM\_MATH\_PH\_11 和 WIKINIUM\_MATH\_PH\_12 **关联**（英語：incident）。一个节点可以不属于任何边，即它不与任何节点相连。由于 WIKINIUM\_MATH\_PH\_13 是无序对， WIKINIUM\_MATH\_PH\_15 和 WIKINIUM\_MATH\_PH\_17 表示的是同一个元素。

更一般地，多重图的定义中允许同一对节点之间存在多条不同的边。在特定语境中，多重图也可以直接称作图。此时，在上面的定义中，集合*E*应该为多重集。

有时，图的定义中允许**自环**（简称**环**，英語：loop），即一条连接一个节点和其自身的边。允许自环的图也称为**自环图**。

点集*V*一般是有限集；这意味着边集*E*也是有限集（不考虑多重图）。相对地，无限图中的点集可以是无限的。然而，由于有限图中的结论大多不能延伸到无穷图，无穷图通常更被视为一种特殊的二元关系。

一个点集为空集的图称为空图（因此边集也是空集）。图的**阶**（英語：order）是指其中节点的数量，即 WIKINIUM\_MATH\_PH\_19 。图的**边数**是指其边的数量，即 WIKINIUM\_MATH\_PH\_20 。图的**大小**（size）一般也指图的边数。但在一些语境中，例如描述算法复杂度的时候，图的大小是指 WIKINIUM\_MATH\_PH\_21 （否则非空图的大小也有可能是0）。节点的**度**（英語：degree或valency）是指连接到该节点的边的数量；对于允许自环的图，环要算做两条边（因为两端都连接到这个节点）。

如果一个图的阶是 WIKINIUM\_MATH\_PH\_22 ，则其节点的度最大可能取 WIKINIUM\_MATH\_PH\_23 （对于允许自环的图则是 WIKINIUM\_MATH\_PH\_24 ），而边最多可能有 WIKINIUM\_MATH\_PH\_25 条(对于允许自环的图则是 WIKINIUM\_MATH\_PH\_26 ）。

在图的定义中，边的概念定义了节点上的一个对称关系，即“邻接”关系（英語：adjacency relation）。具体地说，对于两个节点 WIKINIUM\_MATH\_PH\_27 和 WIKINIUM\_MATH\_PH\_28 ，如果 WIKINIUM\_MATH\_PH\_29 是一条边，则称它们是邻接的。一张图因此可以用其邻接矩阵*A*来表示，即一个 WIKINIUM\_MATH\_PH\_31 的矩阵，其中每个元素*Aij*表示节点*i*和*j*之间的边的数量。对于一个简单图，总有 WIKINIUM\_MATH\_PH\_33 ，分别表示“不相连”和“相连”，而 WIKINIUM\_MATH\_PH\_35 （即一条边的两个顶点不能相同）。允许自环的图上 WIKINIUM\_MATH\_PH\_37 的取值可以是非负整数，而多重图则允许任何 WIKINIUM\_MATH\_PH\_39 的取值都是非负整数。无向图的邻接矩阵是对称阵（ WIKINIUM\_MATH\_PH\_41 ）。

### 有向图

一张3个节点和4条边组成的有向图（双向箭头表示两个方向上各有一条边）
边为有方向的图称作**有向图**（英語：**directed graph**或**digraph**）。

有向图的一种比较严格的定义是这样的：一个二元组 WIKINIUM\_MATH\_PH\_43 ，其中

* WIKINIUM\_MATH\_PH\_45 是**节点**的集合；
* WIKINIUM\_MATH\_PH\_47 是**边**（也称为*有向边*，英語：**directed edge**或**directed link**；或**弧**，英語：**arcs**）的集合，其中的元素是节点的有序对。

为了和多重图区分，这样的有向图也称为**有向简单图**。

在从 WIKINIUM\_MATH\_PH\_49 到 WIKINIUM\_MATH\_PH\_51 的边 WIKINIUM\_MATH\_PH\_53 上，节点 WIKINIUM\_MATH\_PH\_55 和 WIKINIUM\_MATH\_PH\_57 称作这条边的**顶点**，其中 WIKINIUM\_MATH\_PH\_59 是**起点**或**尾**（英語：tail）， WIKINIUM\_MATH\_PH\_61 是**终点**或**头**。也说这条边**连接**了节点 WIKINIUM\_MATH\_PH\_63 和 WIKINIUM\_MATH\_PH\_65 、这条边与节点 WIKINIUM\_MATH\_PH\_67 和 WIKINIUM\_MATH\_PH\_69 **关联**。一张有向图中的节点可以不属于任何一条边。边 WIKINIUM\_MATH\_PH\_71 称为边 WIKINIUM\_MATH\_PH\_73 的**反向边**。

节点的**出度**（英語：out-degree）是指起点为该节点的边的数量；节点的**入度**（英語：in-degree）是指终点为该节点的边的数量。

更一般地，如果一张有向图允许多条头尾都分别相同的边，则称这样的图为**有向多重图**，这样的边称为**多重边**。一种允许多重边的有向图定义方法如下：一个**有向图**是这样的三元组 WIKINIUM\_MATH\_PH\_75 ：

* WIKINIUM\_MATH\_PH\_77 是节点的集合；
* WIKINIUM\_MATH\_PH\_79 是边的集合；
* WIKINIUM\_MATH\_PH\_81 是一个**关联函数**，将每条边映射到一个由顶点组成的有序对上（即一条边被按顺序关联到两个顶点）。

自环是指一条起点和终点相同的边。前面的两个定义都不允许自环，因为若节点 WIKINIUM\_MATH\_PH\_83 上有一个自环，则边 WIKINIUM\_MATH\_PH\_85 存在；但这样的边不在 WIKINIUM\_MATH\_PH\_87 中。因此，如果要允许自环，则上面的定义要做修改：对于有向简单图， WIKINIUM\_MATH\_PH\_89 的定义应该修改为 WIKINIUM\_MATH\_PH\_91 ；对于有向多重图， WIKINIUM\_MATH\_PH\_93 的定义应该修改为 WIKINIUM\_MATH\_PH\_95 。为了避免定义不清，这样的图分别称作**允许自环的有向简单图**或**允许自环的有向多重图**（英語：quiver）。

在允许自环的有向简单图 WIKINIUM\_MATH\_PH\_97 中，边是 WIKINIUM\_MATH\_PH\_99 上的一个齐次关系 WIKINIUM\_MATH\_PH\_101 ，称作 WIKINIUM\_MATH\_PH\_103 上的**邻接关系**。
对于顶点是 WIKINIUM\_MATH\_PH\_105 和 WIKINIUM\_MATH\_PH\_107 的边 WIKINIUM\_MATH\_PH\_109 ，我们说 WIKINIUM\_MATH\_PH\_111 和 WIKINIUM\_MATH\_PH\_113 是彼此**邻接**的，记作 WIKINIUM\_MATH\_PH\_115 。

### 混合图

边既可以有向、也可以无向的图称作**混合图**。**混合简单图**是一个多元组*G* = (*V*, *E*, *A*)，而**混合多重图**则是多元组*G* = (*V*, *E*, *A*, *ϕ**E*, *ϕ**A*)，其中*V*、*E*（无向边集）、*A*（有向边集）、*ϕ**E*、*ϕ**A*的定义可以参考前面的无向图和有向图定义。在此定义下，有向图和无向图是混合图的特殊情况。

### 赋权图

一张有10个节点和12条边的赋权图
**赋权图**（英語：weighted graph，也称**加权图**、**网络**（英語：network））是指每条边都对应有一个数字（即“权重”，weight）的图。根据具体问题，权重可以表示诸如费用、长度或容量等意义。这样的图会出现在最短路径问题和旅行商问题等问题中。

## 基本术语

* **子图**（subgraph）：对于圖 WIKINIUM\_MATH\_PH\_117 和图 WIKINIUM\_MATH\_PH\_119 ，若 WIKINIUM\_MATH\_PH\_121 且 WIKINIUM\_MATH\_PH\_123 ，则称 WIKINIUM\_MATH\_PH\_125 是 WIKINIUM\_MATH\_PH\_127 的子图。
* **生成子图**（spanning subgraph）：指满足条件 WIKINIUM\_MATH\_PH\_129 的 WIKINIUM\_MATH\_PH\_131 的子图 WIKINIUM\_MATH\_PH\_133 。
* **链**(chain或walk)、**轨迹**(trail)、**路径**(path)：链是顶点 WIKINIUM\_MATH\_PH\_135 和边 WIKINIUM\_MATH\_PH\_137 交替出现的序列 WIKINIUM\_MATH\_PH\_139 称作一个长度为*k*的链，其中 WIKINIUM\_MATH\_PH\_141 和 WIKINIUM\_MATH\_PH\_143 为其端点，其余顶点为内部点。所有边都不相同的链称为轨迹（简称迹）。所有顶点都不相同的轨迹称为路径（简称路）。在有向图中，若链（迹、路）的方向和其中每条边的方向一致，则称其为有向链（迹、路）。
* 两端点相同的链和迹分别称为闭链（或环，cycle）、闭迹（或回路，circuit）。
* **距離**（Distance）： 从頂點 WIKINIUM\_MATH\_PH\_145 出發到頂點 WIKINIUM\_MATH\_PH\_147 的最短路徑若存在，則此路徑的長度稱作從 WIKINIUM\_MATH\_PH\_149 到 WIKINIUM\_MATH\_PH\_151 的距離。

## 特殊的图

### 正则图

**正则图**是指每个节点的**邻居**（英語：neighbor）数量都相同的图，即每个节点的度都相同的图。节点的度为*k*的正则图也称作*k*-正则图。

### 完全图

一张有5个节点和10条边的完全图，其中每个节点都和所有其它节点相连。
**完全图**（英語：complete graph）是指每对节点之间都有一条边相连的图。一张完全图包含简单图所有可能出现的边。

### 有限图

**有限图**（英語：finite graph）是指点集和边集是有限集的图。否则，则称为**无限图**。在不加说明的情况下，图论中讨论的图大多是有限图。

### 连通图

在无向图中，如果存在*x*和*y*之间的路径，则称此两节点的无序对 WIKINIUM\_MATH\_PH\_153 是**连通**的；否则，则称此两点是**非联通**的。

**连通图**是指每对节点都连通的无向图。否则，则称图是**非连通图**。

在有向图中，如果存在*x*和*y*之间的有向路径，则称此两节点的有序对 WIKINIUM\_MATH\_PH\_155 是**强连通**的。此外，若将图中的所有边都换为无向边，得到的无向图中存在*x*和*y*之间的路径，则称此两节点是**弱连通**的。否则，则称此两点是**非联通**的。

**强连通图**是指每对节点都强连通的有向图。此外，**弱连通图**是指每对节点都弱联通的有向图。否则，则称图是**非连通图**。

对于一张图，若不存在大小为*k* − 1的点集或边集，使得从图中移除该集合后，图就变为非连通图，则称该图是k*-点连通图**或k*-边连通图**。*k*-点连通图通常也简称*k*-连通图。

### 二分图

**二分图**（英語：bipartite graph）是指这样的简单图：其点集可以被划分称两个集合*W*和*X*，其中*W*中的任意两个节点之间没有边相连，*X*中的任意两个节点之间也没有边相连。二分图是点着色色数为2的图。

若一张图的点集是两个集合*W*和*X*的无交并，使得*W*中的任意节点都和*X*中的所有节点邻接，且*W*或*X*之内没有边，则称此图是**完全二分图**。

### 平面图

**平面图**是指可以将其节点和边画在平面上，而没有两边相交的图。

### 循环图

阶为*n*≥3的**循环图**（英語：cycle graph）或**环形图**（英語：circular graph）是指其节点可以列为*v*1, *v*2, ..., *v**n*，使得图中的边为 WIKINIUM\_MATH\_PH\_157 ，其中*i*=1, 2, ..., *n* − 1，以及 WIKINIUM\_MATH\_PH\_159 。循环图的另一种定义是所有点的度都为2的连通图。如果循环图是另一个图的子图，则它是那个图中的一个环。

### 树和森林

**树**是指任意两点之间都有且仅有一条路径的无向图。等价地，**树**是一个连通无环无向图。

**森林**是指任意两点之间**至多**仅有一条路径的无向图。等价地，**森林**是一个无环无向图，或一组树的无交并。

### 其它特殊的图

一些进阶的特殊图包括：

* 佩特森圖；
* 完美图；
* 弦图；
* 强正则图。

## 例子

一张6个节点和7条边的图
* 右边的图示是一个点集为 WIKINIUM\_MATH\_PH\_161 、边集为 WIKINIUM\_MATH\_PH\_163 的图。
* 在计算机科学中，有向图可以用于表示概念图、有限状态自动机，以及其它许多数据结构。
* 任意集合*X*上的二元关系*R*都可定义一个有向图。*X*中的元素*x*到*y*有一条边，当且仅当*xRy*。
* 有向图可以用于表示信息网络。例如，在推特上，用户之间的关注关系可以用有向图表示。

## 图运算

图上可以进行一些运算或变换，使一个图变为另一个图：

* **一元运算**，将一个图变换为另一个图，例如：
	+ 边收缩，
	+ 线图，
	+ 对偶图，
	+ 补图；
* **二元运算**，结合两个图为一个新图，例如：
	+ 图的无交并，
	+ 图乘积，包括图的笛卡尔乘积、图的张量积、图的强乘积、图的字典积等，
	+ 图的串并联等。

## 图的推广

在超图中，允许一条边连接多于两个节点。

无向图可以看作是由1-单纯形（边）和0-单纯形（节点）组成的单纯复形。由此，复形成为图的推广，其中允许维度更高的单纯形。

图可以看作是一种拟阵。

在模型论中，图是一个结构。这样一来，边的数量可以是任意基数。参见图极限。

在计算生物学中，幂图推广了无向图的定义。

在地理信息系统中，为了进行道路网络或电网的时空分析而提出的几何网络的定义参考了图，并借用了许多图论的概念。

* 概念图
* 图 (数据结构)
* 图论
* 图数据库
* 网络理论

## 参考资料

* *Introduction To Graph Theory*, by Gary Chartrand and Ping Zhang, McGraw Hill
* 徐, 俊明. 图论及其应用 第二版. 合肥: 中国科学技术大学出版社. 2004. ISBN 7-312-00979-4.
* Balakrishnan, V. K. Graph Theory 1st. McGraw-Hill. 1997. ISBN 978-0-07-005489-9.
* Bang-Jensen, J.; Gutin, G. Digraphs: Theory, Algorithms and Applications. Springer. 2000  [2021-08-14]. （原始内容存档于2011-08-26）.
* Bender, Edward A.; Williamson, S. Gill. Lists, Decisions and Graphs. With an Introduction to Probability. 2010  [2021-08-14]. （原始内容存档于2021-08-17）.
* Berge, Claude. Théorie des graphes et ses applications. Paris: Dunod. 1958 （法语）.
* Biggs, Norman. Algebraic Graph Theory 2nd. Cambridge University Press. 1993. ISBN 978-0-521-45897-9.
* Bollobás, Béla. Modern Graph Theory 1st. Springer. 2002. ISBN 978-0-387-98488-9.
* Diestel, Reinhard. Graph Theory 3rd. Berlin, New York: Springer-Verlag. 2005  [2021-08-14]. ISBN 978-3-540-26183-4. （原始内容存档于2019-12-16）.
* Graham, R.L.; Grötschel, M.; Lovász, L. Handbook of Combinatorics. MIT Press. 1995. ISBN 978-0-262-07169-7.
* Gross, Jonathan L.; Yellen, Jay. Graph Theory and Its Applications. CRC Press. 1998. ISBN 978-0-8493-3982-0.
* Gross, Jonathan L.; Yellen, Jay. Handbook of Graph Theory. CRC. 2003. ISBN 978-1-58488-090-5.
* Harary, Frank. Graph Theory. Addison Wesley Publishing Company. 1995. ISBN 978-0-201-41033-4.
* Iyanaga, Shôkichi; Kawada, Yukiyosi. Encyclopedic Dictionary of Mathematics. MIT Press. 1977. ISBN 978-0-262-09016-2.
* Zwillinger, Daniel. CRC Standard Mathematical Tables and Formulae 31st. Chapman & Hall/CRC. 2002. ISBN 978-1-58488-291-6.
* Trudeau, Richard J. Introduction to Graph Theory Corrected, enlarged republication. New York: Dover Publications. 1993  [8 August 2012]. ISBN 978-0-486-67870-2. （原始内容存档于2019-05-05）.

* Springer-Verlag, Heidelberg. Graph Theory. 2016  [2019-07-22]. （原始内容存档于2012-02-08）.
* 维基共享资源上的相關多媒體資源：图
* WIKINIUM\_MATH\_PH\_165