图的性质#
设图有 n 个顶点、e 条边(有向图中称为弧)。除非特别说明,本文只讨论简单图:无自环、无重边,且 n⩾1、e⩾0。
- e 主导:已知顶点数 n,求边数 e 的范围。
- n 主导:已知边数 e,求顶点数 n 的范围。
- 表中的“有解”表示至少存在一张满足条件的图;n 和 e 均取整数。
为简化公式,记
U(e)=⌈21+1+8e⌉,D(e)=⌈21+1+4e⌉.U(e) 是满足 e⩽(2n) 的最小 n,D(e) 是满足 e⩽n(n−1) 的最小 n。
无向图#
无向简单图的一对顶点之间至多有一条边,因此最多有 (2n) 条边。
| 情况 | e 主导(已知 n) | n 主导(已知 e) |
|---|
| 任意无向图有解 | 0⩽e⩽2n(n−1) | U(e)⩽n |
| 非连通图有解 | n⩾2,0⩽e⩽2(n−1)(n−2) | ⌈23+1+8e⌉⩽n |
| 连通图有解 | n−1⩽e⩽2n(n−1) | U(e)⩽n⩽e+1 |
边界的构造方法如下:
- 非连通图的边数最大时,由一个孤立顶点和一个 n−1 阶完全图 Kn−1 组成。
- 连通图至少含有一棵生成树,因此 e⩾n−1。
- n 主导时,如果不要求连通,可以不断加入孤立顶点,所以 n 没有上界。
无向图中的环#
无环的无向图称为森林,连通的森林称为树。
| 情况 | e 主导(已知 n) | n 主导(已知 e) |
|---|
| 森林有解 | 0⩽e⩽n−1 | e+1⩽n |
| 树有解 | e=n−1 | n=e+1 |
| 含环图有解 | n⩾3,3⩽e⩽2n(n−1) | e⩾3,U(e)⩽n |
| 连通且含环图有解 | n⩾3,n⩽e⩽2n(n−1) | e⩾3,U(e)⩽n⩽e |
若森林有 c 个连通分量,则
e=n−c.因此,无向图满足 e⩾n 时一定含环;反过来不成立,因为“一个三角形加若干孤立顶点”在 e<n 时也可以含环。
“含环图”表示图中至少有一个环;“环图” Cn 特指所有顶点度数均为 2 的连通图,此时 n⩾3 且 e=n。
有向图#
有向简单图中,一对不同顶点 u,v 之间可以同时存在 u→v 和 v→u,所以最多有 n(n−1) 条弧。
有向图的“连通”需要区分:
- 弱连通:忽略所有弧的方向后,得到的无向图连通。
- 强连通:任意两个顶点 u,v 之间都同时存在从 u 到 v 和从 v 到 u 的有向路径。
| 情况 | e 主导(已知 n) | n 主导(已知 e) |
|---|
| 任意有向图有解 | 0⩽e⩽n(n−1) | D(e)⩽n |
| 非弱连通图有解 | n⩾2,0⩽e⩽(n−1)(n−2) | ⌈23+1+4e⌉⩽n |
| 弱连通图有解 | n−1⩽e⩽n(n−1) | D(e)⩽n⩽e+1 |
| 非强连通图有解 | n⩾2,0⩽e⩽(n−1)2 | max{2,⌈1+e⌉}⩽n |
| 强连通图有解 | n=1,e=0;或 n⩾2,n⩽e⩽n(n−1) | e=0 时 n=1;e=1 时无解;e⩾2 时 D(e)⩽n⩽e |
其中:
- 弱连通有向图至少需要 n−1 条弧;给一棵无向生成树的每条边指定方向即可达到下界。
- n⩾2 时,强连通有向图至少需要 n 条弧;一个经过全部顶点的有向环可以达到下界。
- 非强连通图最多有 (n−1)2 条弧。达到上界的一种方法是:取一个顶点 v,其余 n−1 个顶点构成完全有向图,并只保留 v 与其余顶点之间同一方向的弧。
有向图中的环#
不含有向环的有向图称为有向无环图(Directed Acyclic Graph,DAG)。
| 情况 | e 主导(已知 n) | n 主导(已知 e) |
|---|
| DAG 有解 | 0⩽e⩽2n(n−1) | U(e)⩽n |
| 弱连通 DAG 有解 | n−1⩽e⩽2n(n−1) | U(e)⩽n⩽e+1 |
| 非弱连通 DAG 有解 | n⩾2,0⩽e⩽2(n−1)(n−2) | ⌈23+1+8e⌉⩽n |
| 含有向环图有解 | n⩾2,2⩽e⩽n(n−1) | e⩾2,D(e)⩽n |
DAG 一定存在拓扑序。按照拓扑序,弧只能从前面的顶点指向后面的顶点,因此每对顶点之间至多选一个方向,最多有 (2n) 条弧。把所有靠前的顶点都指向靠后的顶点即可达到上界。
这里把 u→v→u 视为长度为 2 的有向环,因此含有向环图最少可以只有 2 条弧。
需要注意:DAG 只要求不存在有向环。忽略方向后,它对应的无向图仍然可能含环。例如 1→2、1→3、2→3 是 DAG,但忽略方向后得到一个三角形。
常用判定结论#
- 无向图中,e>2(n−1)(n−2) 时一定连通。
- 无向图中,e⩾n 时一定含环;e=n−1 只有在图连通时才能判定它是一棵树。
- 有向图中,e>(n−1)(n−2) 时一定弱连通。
- 有向图中,e>(n−1)2 时一定强连通。
- 有向图中,e>2n(n−1) 时一定含有向环。