九章格数学 PhiloMath · K2C 正文 · C 段(大学低年级)· 正文

图论引论 · 从七桥到网络:连接的数学

〇体例说明

体例

本书怎么读:一门关于「形状与方程如何互相翻译」的学问

本书讲一门学问:代数几何——用多项式方程组的解集研究几何形状。它从一个朴素的观察出发:一条曲线的「几何」与刻画它的「方程」,其实是同一件事的两副面孔——把方程 x2 + y2 = 1 的解画出来是一个圆,而这个圆上的全部信息,又都能从方程所在的环里读回来。本书要回答的问题由此展开:为什么「理想与簇」的对应(Hilbert 的 Nullstellensatz)是整座大厦的地基?为什么必须把「无穷远点」请进画面,Bézout 定理才数得清两条曲线的交点?为什么「层」这种局部数据的组织方式,恰好捕捉了「局部如何拼成整体」这个几何最深的主题?为什么 Grothendieck 干脆把空间本身定义成交换环的素谱,让 Spec ℤ 也成为一个几何对象,从而把算术与几何缝成同一门学问?从 Descartes 的坐标系、Bézout 的计数、Riemann 的曲线论,到 Zariski、Serre、Grothendieck 的概型与上同调,代数几何两百年只做一件事:把「形状」翻译成可以计算的代数结构,再让代数把形状的秘密说出来。

本书按章组织:绪论并置「方程」与「几何」两条通往形状的路,从 Euclid 的图形与 Descartes 的方程讲到理想的对应与概形的远景;第一章搭第一层地基——仿射空间 𝔸n 与多项式环、代数集与理想的双向对应、Zariski 拓扑、Hilbert 基定理、不可约分解与仿射簇、坐标环、Nullstellensatz;第二章深入结构——局部化与局部环、有理函数域、维数的四种等价定义、切空间与光滑点、奇异性、态射与双有理等价、乘积;第三章把无穷远请进来——射影空间 ℙn 与齐次坐标、射影簇、齐次坐标环、Bézout 定理,并引入层与结构层 𝒪X、凝聚层与上同调初步;第四章完成飞跃——从簇到概型、Spec R 作为空间、概型的态射与纤维积、分离与紧合、局部性质与除子、概型上的上同调与 Serre 对偶、Riemann–Roch 的预演;第五章走向算术——曲线与亏格、Riemann–Roch 定理、椭圆曲线的群律、Mordell–Weil 定理、有限域上的曲线与 ζ 函数、Weil 猜想、étale 上同调、Jacobi 簇与 Arakelov 几何;第六章远眺现代疆界——从概形到栈、导出函子与谱序列、相交理论、étale 与晶体上同调、Motive、Hodge 猜想、模空间与形变、几何 Langlands、镜像对称、导出代数几何;综合站用年表、人物谱、方法决策树、两个综合实验与二十四题自查收束全书。

写作的三条约束(本书的自我要求)。① 直觉与例子先行:每一个概念都从一张图、一个具体的小例子讲起——先看见抛物线 V(y − x2) 与圆 V(x2 + y2 − 1) 在平面上的样子、两条三次曲线为何在无穷远处还「欠」两个交点、Spec ℤ 里素点与泛点如何排成一条线,再抽成公理;每一个定理先有「为什么它是对的」的直觉,再有完整的证明。② 一步一图:凡能画的都画——理想与簇的双向箭头、Zariski 拓扑的闭集谱、射影平面的仿射图卡拼贴、层的茎与截面的局部—整体示意、概型的纤维与基变换方块、曲线上的除子与 Riemann–Roch 的维数差。代数几何最漂亮的地方正藏在「形状—环—层」的三向对照图里:一条定义、一句定理,画出来便一目了然。③ 自给自足:本书不假设手边另有教材,所需工具在书内随用随补——多项式与理想的运算、环与商环、局部化与诺特环的必要片段、域扩张与有限域的一点基础,都在需要它的那一页现学现用;每一条定义都同时给出形式陈述与一句大白话的直觉。个别深刻而整体的结论(Nullstellensatz 的代数证明、Riemann–Roch 定理、Mordell–Weil 定理、Weil 猜想的证明、导出代数几何的框架)给出精确陈述、证明思路与文献指引,数值与程序对拍在实验页随附、可自行复算。

页型节奏。每章以 导引 开篇(一页说清这一章要解决什么);主体是 讲义 页(概念、定理、证明,一步一图);每章配 例题 与 习题(先示范再放手)、知识地图 一页(本章概念怎么连成网)、小结(正面清单+易错清单)、思想卡(一句话立起本章的哲学)、挑战(一道通向文献的硬题)、实验(一段可复算的程序)、格物札记(中西算学传统里的平行直觉)、速查表(本章公式与记号一页备翻);章末另设 衔接讲义,把下一章的问题提前立起来。所有编号 可跳读:每一页都自带上下文,随手翻开一页也能读下去。

难度标记。讲义页用 ★–★★★★★ 标出阅读难度:★ 高中基础即可,★★ 需要多项式与线性代数的熟练经验(书内自给),★★★ 需要抽象代数的入门(环、理想、商环与局部化的定义,书内自给),★★★★ 需要交换代数与同调代数的一点经验(书内随用随补),★★★★★ 需要概形、上同调与现代算术几何的观点(第六章疆界各页)。若只求理解主线,读绪论、第一章的 nullstellensatz、第二章的维数与光滑性、第三章的 Bézout 与层、第四章的概型与 Riemann–Roch 即可;若求完整掌握,按章顺序逐页推进,并把每章习题做完。

三条线索贯穿全书:

① 明线——从方程到概形:先在坐标平面上把「方程的解集」看成几何对象(绪论与第一章),再把「形状」翻译成「环与模」的语言(第二章),把无穷远点请进来并用层组织局部数据(第三章),最后换掉地基、把空间本身定义为交换环的素谱,让算术与几何合一(第四、五章),并以现代上同调与导出几何作结(第六章)——这正是代数几何从「Descartes 的坐标」长成「Grothendieck 的概形」的轨迹。

② 暗线——几何与代数的双向字典。本书反复演练一本字典:形状顺向搬运(几何→代数:把簇送到它的理想、把态射送到环同态),函数环反向拉回(代数→几何:把理想读到它的零点集、把环同态读成态射)。Nullstellensatz 让字典在代数闭域上成为双射,概形则把字典扩展到算术世界。什么时候能用这本字典、什么时候必须升到层与上同调,是全书的核心招式。

③ 接口——通往四个邻域。代数几何是现代数学的枢纽:与交换代数(环、理想、局部化与维数)、拓扑(Zariski 拓扑、层与上同调)、微分几何与分析(复流形、Hodge 理论)三条战线直接相通,并与数论(椭圆曲线、Weil 猜想、Langlands)深度合流,第六章与综合站余韵两页逐条架桥。

写法约定(TEX 标准):仿射空间记 𝔸n、射影空间记 ℙn;簇记 X、Y(变量斜体),多项式环记 k[x1, …, xn];理想记 𝔞、𝔪、𝔭;坐标环记 A(X)、结构层记 𝒪X;概型记 (X, 𝒪X)、素谱记 Spec R;层上同调记 Hi(X, ℱ)。变量用斜体,函数名(Spec、dim、deg、Pic、Hom)与群名(Cl、Gal、GL)用正体;关键一步配图,形状与环逐章对照。

一全册目录(绪论+六章+综合站)

目 录
图论引论 · 从七桥到网络:连接的数学 · 全书正文页码一览
本册导引:万物皆可连成图2
柯尼斯堡七桥:一个城市的问题开启一门学科3
图的定义:把连接抽象出来4
同构:形状不同,连接相同5
三种典型图:完全图、二部图与正则图6
图的表示:邻接矩阵与邻接表7
全册路线图:从连接到网络8
绪论小结:连接的语法9
导引:本章导引:把连接当作对象10
1.1度与握手引理11
1.2度序列与图的实现12
1.3子图与图运算13
1.4途径、迹与路:三种走法14
1.6连通与连通分支15
1.8二部图与奇圈16
1.9图的常见家族17
1.10彼得森图:反例专业户18
1.11图搜索:BFS 与 DFS19
1.10BFS 的层次波前20
1.11DFS 的深入回溯21
1.12连通分支的线性时间计算22
1.13建模范式:从现实到图23
1.14建模二问:权重、方向与流24
1.15圈的存在性:最长路论证25
1.16本章工具箱小结26
例题精讲(2 页)p.27–28
习题课(2 页)p.29–30
本章地图:基本语言的依赖结构31
小结:概念的五种视角32
小结:算法与证明的对读33
思想卡:抽象的代价与回报34
挑战:Erdős–Gallai 的构造性证明35
实验:BFS/DFS 真跑——社交网络的六度分隔36
〖札记〗格物札记:从七桥到拓扑学的伏笔37
速查:第一章概念与定理38
第二章预告:连接的最小骨架39
导引:本章导引:最经济的连接40
2.1树:无圈的连通图41
2.2树的六种等价刻画42
2.3森林与生成树43
2.4Cayley 公式:数树的奇迹44
2.5Prüfer 序列:树与数列的双射45
2.6最小生成树:问题的提法46
2.7Kruskal 算法:贪心的胜利47
2.8切定理:贪心的合法性48
2.9并查集:Kruskal 的引擎49
2.10Prim 算法与算法谱系50
2.11应用:聚类与网络设计51
例题精讲(3 页)p.52–54
习题课(2 页)p.55–56
本章地图:树理论的依赖结构57
小结:树的语言58
思想卡:贪心的合法性从哪里来59
挑战:Cayley 公式的矩阵证明60
实验:Kruskal 真跑——并查集与生成树对拍61
〖札记〗格物札记:从电路到化学:树概念的漂移62
速查:第二章概念与公式63
常见误读:树与生成树的四个陷阱64
导引:本章导引:从「能走到」到「能走遍」65
3.1割点、桥与块66
3.2Menger 定理:分离的最小性67
3.3网络流一瞥:最大流最小割68
3.4Euler 之路:一笔画的刻画69
3.5Hierholzer 算法与中国邮路70
3.6中国邮路:把完美换成最优71
3.7Hamilton 圈:看似相近实则天堑72
3.8Dirac 与 Ore:充分条件73
3.9旅行商问题与复杂度一瞥74
3.10Dijkstra 算法:最短路75
3.11Floyd 与负权:最短路的另一面76
例题精讲(4 页)p.77–80
习题课(2 页)p.81–82
本章地图:连通性与遍历的依赖结构83
小结:连通的语言与遍历的判决84
思想卡:容易与极难——边与点的对调85
挑战:中国邮路的完整求解86
实验:Hierholzer 与 Dijkstra 真跑——邮路与导航87
速查:第三章概念与定理88
常见误读:连通性与遍历的四个陷阱89
例题精讲(1 页)90
习题课(1 页)91
小结:算法对读——同一骨架的三种性格92
〖札记〗格物札记:从七桥到中国邮路:一个问题的两百年93
第四章预告:画在纸上的约束94
导引:本章导引:画得出来的图95
4.1平面图与平面嵌入96
4.2Euler 公式:面从哪里来97
4.3极大平面图与三角剖分98
4.4边数的上界与非平面性99
4.5Kuratowski 定理:两个禁忌子图100
4.6对偶图与几何对偶101
4.7着色与色数102
4.8贪心着色与 Welch–Powell103
4.9五色定理:可读的证明104
4.10四色问题:一段百年史105
4.11色多项式:数一数着色106
4.12边着色与 Vizing 定理107
4.13应用:寄存器分配与排课表108
4.14平面性检测的思路109
常见误读:平面性的四个误区110
例题精讲(2 页)p.111–112
习题课(1 页)113
例题精讲(1 页)114
习题课(1 页)115
本章地图:平面与着色的依赖结构116
小结:嵌入的语言117
小结:着色的语言118
思想卡:反例推动定理119
挑战:五色定理的重排证明120
实验:Welch–Powell 真跑——课程表的染色121
〖札记〗格物札记:从地图到芯片:着色的两次落地122
速查:第四章概念与定理123
第五章预告:配对与有序124
导引:本章导引:配对与必然125
5.1匹配:两两不共点的边126
5.2增广路与 Berge 定理127
5.3Hall 定理:婚配的充要条件128
5.4Hall 定理的应用面129
5.5匈牙利算法:找增广路130
5.6正则二部图与完备匹配131
5.7稳定婚姻问题的提法132
5.8Gale–Shapley 算法133
5.9稳定性的证明与最优性134
5.10应用:任务分配与网络中枢135
5.11Ramsey 定理:有序的必然136
5.12R(3,3)=6:手工证明137
5.13Ramsey 数的边界与困难138
5.14独立集、覆盖与团139
5.15应用:网络中枢与通往第六章140
常见误读:匹配与 Ramsey 的四个误区141
例题精讲(1 页)142
习题课(1 页)143
例题精讲(1 页)144
习题课(1 页)145
本章地图:匹配与 Ramsey 的依赖结构146
小结:匹配的语言147
小结:Ramsey 的语言148
思想卡:必然性——从鸽笼到 Ramsey149
挑战:R(3,4) 的完整论证150
实验:匈牙利算法真跑——任务分配对拍151
〖札记〗格物札记:从婚配到肾脏交换152
速查:第五章概念与定理153
第六章预告:矩阵里的图154
导引:本章导引:把图写进矩阵155
6.1邻接矩阵的谱156
6.2谱与图的不变量157
6.3Laplacian 与谱隙158
6.4Matrix–Tree 定理:生成树计数159
6.5随机游走:图上的马尔可夫链160
6.6电网络类比与有效电阻161
6.7随机图 G(n,p):Erdős–Rényi 模型162
6.8相变:巨型分支的出现163
6.9小世界:六度分隔的科学164
6.10无标度网络与幂律165
6.11PageRank:链接即投票166
6.12社区发现一瞥167
6.13图上的动力学:传染与同步168
6.14图神经网络:让机器读图169
6.15结语:连接的代数170
常见误读:谱方法的四个误区171
例题精讲(1 页)172
习题课(1 页)173
例题精讲(1 页)174
习题课(1 页)175
本章地图:代数图论的依赖结构176
小结:谱的语言177
小结:网络的语言178
思想卡:矩阵是图的另一种笔迹179
挑战:谱隙与扩张图180
实验:Matrix–Tree 与 PageRank 真跑181
〖札记〗格物札记:从 Kirchhoff 到 Google182
速查:第六章概念与公式183
全册回望:走向综合站184
综合站导引:把全册收成一张图185
全景回望:图论的年表与人物186
〖札记〗札记:抽象图论的三次跃迁187
〖札记〗札记:算法、结构与计算的三角188
概念总图:连接的代数189
方法决策树:拿到图问题先问什么190
综合实验一:谱方法真跑——生成树计数与谱隙191
综合实验二:随机图真跑——相变与巨型分支192
终极挑战:Ramsey 数的边界冲刺193
习题课(1 页)194
评讲与自查:二十四问195
全册小结:连接的语法196
余韵:图论的地平线197
全书速查:公式与定理总表198
绪论

从七桥到网络:连接成为数学

1736 年,欧拉面对柯尼斯堡的四块陆地与七座桥,做了一件前人没做过的事:把陆地缩成点、把桥换成线,城市变成了图。「能否不重复地走遍七桥」从此不再依赖地图的样子,只依赖连接的结构——图论在这张手绘图上诞生。本册绪论并置两种眼光:把现实问题(社交、道路、电网)抽象成顶点与边的图,再把图翻译成矩阵与算法。从七桥问题讲到图的定义、同构与典型家族,再到邻接矩阵与邻接表两种表示,最后交出全册路线图——连接的每一种性质,都既是一个结构问题,也是一个可计算的问题。
页型节奏:导引 → 讲义(概念 · 定理 · 证明 · 一步一图)→ 例题 → 习题 → 地图 · 小结 · 思想卡 · 挑战 · 实验
2导引

绪论 从七桥到网络:连接成为数学本册导引:万物皆可连成图

两个城市之间有几条路?五个人的朋友圈里谁认识谁?芯片上千万个元件如何连线?这些问题共享一个特点:真正要紧的不是「东西」本身,而是它们之间的「连接」。图论研究的就是连接:把对象抽象成顶点,把两两关系抽象成边,于是世界变成一张图 G = (V, E)。

这门学科的起点是 1736 年的柯尼斯堡七桥问题。普鲁士的柯尼斯堡城中有四块陆地、七座桥,市民想知道:能否散步时每座桥恰好走过一次?欧拉的答案出人意料——这个问题与桥的长短、陆地的形状统统无关,只取决于「哪块陆地与哪块陆地之间有几座桥」。把陆地换成点、桥换成线,「一笔画」问题变成纯粹的连接问题,而答案是「不能」。证明只需要一个再朴素不过的观察:中途经过的每一块陆地都要「进得来、出得去」,度数必须是偶数。

近三百年过去,这张小小的手绘图已经长成参天大树:树与生成树说明怎样用最少的边保持连通;Euler 与 Hamilton 之别划出「容易」与「极难」的分水岭;平面图与着色回答「地图最少几种颜色」;匹配与 Ramsey 处理配对与秩序的必然;图谱方法则让矩阵开口说话,PageRank 靠它给整个互联网排序。

本册的读法有一条主线:每遇到一张图,先问三件事——它连通吗?它的骨架是什么?它的对称与谱长什么样?这三问贯穿绪论到第六章。下面这张图是全册的行军路线。

从七桥到网络:图论的起点与终点 图论:先把世界「压扁」成点与线,再问结构问题 柯尼斯堡七桥(1736) 欧拉的抽象:陆地→点,桥→线 「能否一笔走遍」只看连接 结构第一次独立于图形 现代网络(今天) 社交·交通·电网·互联网 海量顶点与边 算法与谱方法登场 共同的骨架:G = (V, E) 顶点集 V+边集 E+「连接」这一层结构 结构问题:连通吗?能遍历吗?最小骨架是什么?
图 绪-1 图论把世界「压扁」成点与线:1736 年欧拉的七桥问题与现代网络科学共用同一个骨架 G = (V, E)。
3讲义

绪论 从七桥到网络:连接成为数学柯尼斯堡七桥:一个城市的问题开启一门学科

★ 1736 年,欧拉向圣彼得堡科学院提交论文《柯尼斯堡的七座桥》,后来被公认为图论的第一篇论文(也是拓扑学的先声)。这个问题值得完整重演一遍,因为它示范了「抽象」的全过程。

问题。柯尼斯堡(今加里宁格勒)的普雷格尔河上有两座岛,河两岸与两岛之间共有七座桥:两岸各与两岛相连,两岛之间也相连。市民的问题:能否从某处出发,经过每座桥恰好一次再回到(或不必回到)出发点?

第一步:画掉不相干的信息。陆地的大小与形状、桥的长短与宽窄、过桥的方向——统统与问题无关。剩下的只有一张「关系表」:北岸与两岛各 2 座桥,南岸与两岛各 2 座桥,两岛之间 1 座桥。用图的语言:4 个顶点,边数按表连出,其中两岛之间是一条重边(多重图)。

第二步:把「走桥」翻译成「度」。每次过桥「进入」一块陆地,也要「离开」它。中途经过的陆地,关联的桥必须成对消耗;只有起点与终点可以例外。于是:若每座桥恰好走一次,则除起点与终点外,每块陆地的度数必须是偶数。柯尼斯堡四块陆地的度数是 5、3、3、3——四个奇点,一个偶点都没有。答案:无论是否回到出发点,都不可能。

图 绪-2 七桥问题的抽象与判决北岸 d=5南岸 d=3岛Ad=3岛Bd=3南岸 d=34 个奇点→ 不可能一笔画
图 绪-2 欧拉的抽象:陆地缩成点、桥换成线;四个奇点(含重边计度)判定一笔画不可能。

第三步:把判决升级为定理。欧拉更进一步:一笔画(不重复走完所有边)充要条件是「奇点个数为 0 或 2(为 2 时恰好是 Euler 途径而非回路)」。这个定理我们将在第三章给出完整证明与线性时间算法。此刻只需记住它的方法论意义:抽象掉无关细节之后,一个几何难题变成一行算术。

4讲义

绪论 从七桥到网络:连接成为数学图的定义:把连接抽象出来

★ 有了七桥的启发,定义可以一步到位。

定义(图)。一个图是一个二元组 G = (V, E),其中 V 是顶点集,E 是边集:每条边是 V 中两个顶点的无序对(允许重复时称多重图;允许自身相连的自环时特别声明)。边 (u, v) 记作 uv,称 u 与 v 相邻;称这条边与两端点关联。顶点 v 的度 d(v) 是与它关联的边数(自环计 2)。

这个定义刻意「贫瘠」:没有坐标、没有长度、没有方向(除非特别声明)。贫瘠正是力量——凡是只依赖连接结构的结论,对所有实现它的场景同时成立。一张图既可以是五个人的朋友圈,也可以是五座城市、五个网页、五个蛋白质。

几个立即可用的观察。其一,度是「局部信息」:只看点自己的邻边。其二,「边是顶点的无序对」意味着图上没有方向偏好,有向图(边带方向)在本册只在 PageRank 与网络流处短暂出场。其三,重边在大多数理论问题中可以合并(关心的是「连不连」),但在七桥、邮路这类计数问题中重边就是实质。

与代数学传统对读:群把「运算」抽象成公理,图把「连接」抽象成公理。本册将反复看到这个平行结构——图论的同构对应群论的同构,图的子结构(子图、生成树)对应群的子结构,图的谱对应矩阵的谱。抽象不是逃避具体,而是让一个证明服务一千个例子。

图的定义与三种形态 定义(图):G = (V, E)——顶点集 V,边集 E ⊆ V×V(无序) 简单图 无重边、无自环 本册默认形态 朋友关系:要么认识要么不 多重图 允许重边 七桥问题正是多重图 公路:两城间多条线路 有向图 边带方向 (u,v) ≠ (v,u) 网页链接、单行道 术语速览 相邻:两点间有边 | 关联:边与点相接 度 d(v):与 v 相连的边数(自环计 2)
图 绪-3 图 G = (V, E) 只保留「谁与谁相连」;重边、方向是否保留由问题决定,本册默认简单无向图。
5讲义

绪论 从七桥到网络:连接成为数学同构:形状不同,连接相同

★ 同一张图可以画出无数种样子:顶点随便挪、边随便弯。什么时候两张画其实是「同一个图」?

定义(同构)。图 G 与 H 同构,记 G ≅ H,若存在双射 φ: V(G) → V(H),使 uv ∈ E(G) 当且仅当 φ(u)φ(v) ∈ E(H)。同构是图全体上的等价关系;图论研究的对象严格说是同构类。

与群论平行:同构的群「是同一个群」,同构的图「是同一张图」。判断两图同构,可以猜一个对应然后验证(构造性);而判断不同构,只需找一个同构不变量——任何在同构下保持不变的量:顶点数、边数、度序列、三角形个数、连通度、直径、特征值谱……只要有一个不同,立刻宣判。

不变量的反方向要小心:不变量相同不保证同构。经典反例:C6(六边形)与 K3,3 的两个拷贝之并(2K3)都有 6 顶点 6 边、度序列 (2,2,2,2,2,2),但一个连通一个不连通。这类「不变量撞车」是图论里的常态,也是它比群论更「野」的地方——图论中甚至不存在已知的「完备不变量套件」能高效判定同构(图同构问题的复杂度地位至今悬而未决,介于 P 与 NP 完全之间)。

本册将携带一整套不变量工具箱:度序列(第一章)、连通度(第一、三章)、色数与色多项式(第四章)、匹配数(第五章)、特征值谱(第六章)。每学一个不变量,就多一双分辨图的眼睛。

同构:形状不同,连接相同 图 G1​:五边形加一条对角线 度序列 (3,3,3,3,2) 图 G2​:同一张图的另一副画 度序列 (3,3,3,3,2) —— 同构! 同构:存在双射 φ 使 uv ∈ E(G1​) ⟺ φ(u)φ(v) ∈ E(G2​) 图论的「相等」不看画法,只看连接关系
图 绪-4 G1 与 G2 画法迥异但连接结构相同:把 G2 的顶点重新摆放就是 G1。同构的图是「同一个」图。
6讲义

绪论 从七桥到网络:连接成为数学三种典型图:完全图、二部图与正则图

★ 认识几张「标准脸谱」,后面所有定理都有了试金石。

完全图 Kn。任意两点都相邻:|E| = C(n, 2) = n(n−1)/2,每点度 n−1。它是「最挤」的图:边数上界、色数 n、任何图论极值问题的天然参照物。
完全二部图 Km,n。顶点分成两半,所有跨边都在、同侧无边:边数 mn。二部图没有奇圈,于是没有三角形——它与「资源对需求」的建模天然匹配,是第五章匹配理论的主战场。
圈图 Cn 与正则图。圈图每点恰连两点;更一般地,所有顶点度数相同的图称正则图(k-正则)。彼得森图是 3-正则的明星(下一页),而 k-正则图的存在性由握手引理一票否决:nk 必须是偶数。

三个家族各带一个「纪录」:Kn 的边数最多(给定顶点数);K3,3 是最小的「非平面」图之一(第四章 Kuratowski 定理的主角);Cn 是最简单的 2-正则图、Euler 遍历问题的原型。它们还将联合制造大量反例与极端情形——极值图论的基本动作就是「在约束下数边」,而完全图与二部图正分别是「挤」与「匀」的两种极端。

握手引理(预告):Σv∈V d(v) = 2|E|

这张速记式将在第一章正式登场。它如此简单,却立刻给出三个免费结论:度数之和是偶数;奇度顶点个数是偶数;平均度 = 2|E|/|V|。极值图论的大量不等式都从这里起步。

三种典型图家族 完全图 K5​ C(5,2)=10 条边,d=4 完全二部图 K3​,3​ 9 条边,无三角形(二部) 圈图 C6​ 与正则图 每个点度 2:2-正则
图 绪-5 K5(全连)、K3,3(二部无三角)、C6(2-正则):三个家族将分别出现在着色、匹配与遍历的故事里。
7讲义

绪论 从七桥到网络:连接成为数学图的表示:邻接矩阵与邻接表

★ 图要进计算机,先选一种「数据结构」。两种经典表示各司其职。

邻接矩阵。A 是 n×n 矩阵,Aij = 1 当且仅当 ij ∈ E。无向图下 A 对称。查询任意两点是否相邻 O(1);空间 O(V2)。更重要的是它自带代数:(Ak)ij 恰是 i 到 j 长为 k 的途径数;A2 的对角元记录每个点的「伙伴对」数。矩阵的谱(第六章)将把整个图的对称性打包成几个数。
邻接表。每个顶点挂一个「邻居列表」。空间 O(V + E),遍历邻居与顶点总耗时同阶——BFS、DFS(第一章)与 Kruskal、Dijkstra(第二、三章)的标准输入。真实世界的网络(社交网、万维网)都是稀疏图:边数远小于 V2,邻接表是唯一现实的选择。

选择标准一句话:算法要反复问「两点相邻吗」→ 矩阵;要逐个拜访邻居 → 表。本册的实验(真跑)一律用邻接表,谱计算用矩阵——两套表示互为翻译,转换成本都是 O(V + E)。

顺带一提:这些表示正是「抽象又一次落地」——邻接矩阵就是图到线性代数的翻译,邻接表是图到数据结构的翻译。同一张图,两副替身,各展所长。

图的两种机器表示 邻接矩阵 A 0 1 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 对称 A² 的 (i,i) = 点 i 所在三角形数×2 邻接表(内存友好) 1 2, 3, 5 2 1, 3 3 1, 2, 4 4 3, 5 5 1, 4 空间 O(V+E):稀疏图的标准选择 稠密图(边多)用矩阵 | 稀疏图(边少)用邻接表
图 绪-6 邻接矩阵 O(V2) 支持常数时间查询与代数运算(A 的幂、谱);邻接表 O(V+E) 是 BFS/DFS 的标准输入。
8讲义

绪论 从七桥到网络:连接成为数学全册路线图:从连接到网络

★★ 全册六章+综合站,一条主线两个侧翼。主线是「结构」:把图的性质一层层看清;侧翼是「算法」与「谱」:同一张图的两副替身各自发力。

第一章(基本语言)立词汇表:度与握手引理、连通与割、BFS/DFS。第二章(树)找骨架:树的刻画、Cayley 计数、最小生成树两大算法与并查集。第三章(遍历)问「走」:Menger 与最大流最小割、Euler 的轻快与 Hamilton 的沉重、最短路算法。

第四章(平面与着色)问「画」:Euler 公式、Kuratowski、五色定理与四色问题的百年史、色多项式。第五章(匹配与 Ramsey)问「配」:Hall 婚配、匈牙利算法、稳定婚姻,以及「混乱中必有秩序」的 Ramsey 定理。第六章(谱与网络)问「算」:邻接谱与 Laplacian、Matrix–Tree、随机图相变、PageRank 与图神经网络。

综合站收束全部:年表、概念总图、方法决策树、两个综合实验(谱方法与随机图真跑)、跨章大题与二十四问自查。

两条贯穿全书的方法论,先在此立此存照。其一,「结构 ↔ 算法」对读:每个定理都追问它的算法化(树的刻画 → 并查集的判环),每个算法都追问它的结构保证(Kruskal 的贪心 ← 切定理)。其二,「反例文化」:彼得森图、空图与完全图,会在每个新命题面前接受审问——图论的大量「显然成立」其实都假,识破它们是本册的基本功。

约定:n = |V|、m = |E|;「图」默认简单无向;「阶」指顶点数。准备好了吗?从握手开始。

全册路线图 全册路线:六站走完「连接的数学」 ① 基本语言 度·连通·搜索 BFS / DFS 不变量工具箱 ② 树 最小骨架 Cayley·Prüfer Kruskal / Prim ③ 遍历 Euler·Hamilton Menger·最短路 容易与极难分界 ④ 平面与着色 Euler 公式·Kuratowski 五色定理·色多项式 ⑤ 匹配与 Ramsey Hall·增广路 稳定婚姻·R(3,3) ⑥ 谱与网络 Laplacian·Matrix–Tree·随机图·PageRank 让矩阵开口说话
图 绪-7 六站一线:前四站建立「结构语言」,后两站展示「计数与谱」的力量;综合站把六站收成一张图。
9小结

绪论 从七桥到网络:连接成为数学绪论小结:连接的语法

★ 绪论立起了全学科的世界观,把最重要的概念与承诺收拢在一张清单里。

绪论的四个基本概念。① 图 G = (V, E):连接的全部信息,与画法无关;② 度 d(v):局部信息的最小单元,握手引理是它的第一定律;③ 同构:图论的「相等」,判定靠不变量;④ 表示:邻接矩阵(代数侧)与邻接表(算法侧)。
一条方法论主轴。图论的全部力量来自「两级抽象」:第一级,把现实压成图(七桥问题);第二级,把图压成数(不变量:度序列、色数、谱)。每压一次,丢失细节,换来可计算性。何时压、压到哪一级,是贯穿全册的判断题。

三个「第一印象」值得再咀嚼。其一,欧拉的判决只用「奇点个数」——局部信息合成全局结论,这是图论的典型招式。其二,C6 与 2K3 的「不变量撞车」——单一不变量必然失明,需要一组互补的探针。其三,邻接矩阵里已经埋着谱方法的伏笔——Ak 数路径,特征值放大它。

读法约定。每章节奏固定:导引立问 → 讲义建塔(定义·定理·证明·一步一图)→ 例题示范 → 习题巩固 → 地图·小结·思想卡收束,实验页真跑背书(所有代码与输出均经实跑核验)。见到定理先问反例,见到算法先问复杂度,见到结构先问谱——这三句话,本册陪练满 198 页。

下一页起进入第一章:从「度」出发,把基本语言一件件铸成趁手的工具。

绪论收束:一张便签抽象一:现实 → 图(丢掉形状,留下连接)抽象二:图 → 数(丢掉结构,留下可计算性)贯穿全册的两问:它连通吗?它的谱长什么样?
图 绪-8 两级抽象是图论的发动机,本册将反复使用。
第一章

图的基本语言:顶点、边与度

本章搭建图论的地基。从度出发:握手引理「度数之和 = 二倍边数」是全学科第一个不变量,度序列则问「哪些数列能实现为图」。随后建立基本词汇表:子图与图运算、途径/迹/路三种走法、圈与无圈、连通与连通分支、点割与边割。二部图以「无奇圈」为刻画,彼得森图作为反例专业户反复出场。后半章进入算法:BFS 的层次波前与 DFS 的深入回溯是图搜索的两把刷子,并用它们线性时间求连通分支。章末给出建模范式——从社交网络到公路网,现实如何变成图。
页型节奏:导引 → 讲义(概念 · 定理 · 证明 · 一步一图)→ 例题 → 习题 → 地图 · 小结 · 思想卡 · 挑战 · 实验
10导引

第一章 图的基本语言:顶点、边与度导引:本章导引:把连接当作对象

★★★ 绪论把世界压成了图,本章开始给这张图配上「语言」。三十页的路程分两条线。

线一 · 结构语言(p11–p18)。从最局部的量——度——出发:握手引理把所有点的度加起来,立刻得到全学科第一个不变量;度序列追问「哪些数列能长成图」(Erdős–Gallai 定理预告)。然后建立词汇表:子图与图运算、途径/迹/路三种走法、圈与连通、点割与边割。二部图以「无奇圈」为刻画——这条等价式是第四章着色与第五章匹配的共同地基。彼得森图作为反例专业户压轴。

线二 · 算法语言(p19–p22)。BFS 与 DFS 是图上一切搜索的母版:前者像水波按层扩散,后者像绳索探到底再折返。两者都能在 O(V + E) 时间内访问全图,且各自附带一份「结构赠品」:BFS 给出最短路层数,DFS 给出深度优先森林。并用它们线性时间数连通分支。

收束(p23–p39)。建模范式(p23)把现实变成图;例题两组、习题两组把度序列与图搜索练熟;地图、双小结、思想卡、挑战(Erdős–Gallai 构造)、实验(六度分隔真跑)、札记与速查收尾,最后衔接第二章的「树」。

本章的学习心法只有一句:每见一个新概念,立刻问它的算法版本与它的反例。例如「连通」——算法版本是 BFS 一遍即知,反例思考是「连通但删一边就断」(桥)。心法练成,后面五章的路会越走越快。

第一章的两条线与汇合点 第一章:从「度」出发,把连接变成可计算的对象 线一:结构语言 度·握手引理·度序列 连通·割·二部图 同构与不变量 线二:算法语言 BFS 的层次波前 DFS 的深入回溯 线性时间找连通分支 汇合点 结构保证算法正确,算法兑现结构 本章实验:BFS/DFS 真跑社交网络
图 1-1 结构与算法并肩推进:每个概念都准备一个算法化,每个算法都有一纸结构保证。
11讲义

第一章 图的基本语言:顶点、边与度1.1 度与握手引理

★ 度 d(v) 是图上最便宜的观察:只数一个点自己的邻边。便宜不等于浅薄——它有三条立刻可用的推论。

握手引理(Euler, 1736)。对任何图 G,Σv∈V d(v) = 2|E|。

证明。换一个视角数:从每条边的立场看,它恰与两个顶点「握手」(自环算两次)。左边按顶点收集握手,右边按边发放握手,两账必平。∎

三个免费推论。① 度数之和必为偶数;② 奇度顶点的个数必为偶数(奇偶配对);③ 平均度 2|E|/|V|——于是「度数都大于 2|E|/|V| 的点不会太多」。

推论②的用处随手一拈:「7 个人每人恰好与奇数个人握手」不可能——奇度点个数是奇数 7,违反②。这类「以奇偶性判决存在性」的论证在图论里俯拾皆是,它也预先解释了七桥问题:四块陆地度数全奇,注定失败。

握手引理还是极值论证的起点。想把「平均度 ≤ 2|E|/|V|」写成不等式,就得到 Turán 型问题的雏形:给定边数,度最大能多不均匀?更著名的反问是 Turán 定理——没有 r-团的图最多多少条边?答案由完全 (r−1)-部图给出,证明的核心正是「把边从低度对搬到高度对」的局部微调(本册第五章习题课演练其思想)。

握手引理:一次总账 1 2 3 4 5 6 d(1)+d(4) 红色两点 = 3+3 = 6 = 边数 10 × 2 − (其余 4 点度 2×4=8)
图 1-2 每条边贡献 2 个「握手」:度数总和 = 边数的两倍。红点合计 = 总和 − 其余点的贡献。
12讲义

第一章 图的基本语言:顶点、边与度1.2 度序列与图的实现

★★ 把全图所有顶点的度数排成一列(习惯上从大到小),就是度序列。它是一张图最便宜的「指纹」:同构图必有相同的度序列。

问题(可图性)。给定非负整数序列 d1 ≥ d2 ≥ ⋯ ≥ dn,何时存在简单图以它为度序列?这样的序列称为可图性的(graphic)。

握手引理给出第一道筛子:和必为偶数;还有一条显然上界 d1 ≤ n−1。但必要条件离充分很远:(3,3,3,3,3,3) 六点全 3 度,和为偶、上界满足,却不存在这样的简单图——尝试一下:任取两点 3-正则地连接,六点的 3-正则简单图唯有「三角棱柱」类结构?不,冷静数一遍:K3,3 恰是 6 点 3-正则的!它存在。真正的反例要更精巧:(3,3,3,1,1,1)?和 12 为偶,但三个 3 度点彼此相连成三角形后,各剩 2 度须连向三个 1 度点——每个 1 度点只能接一条边,供不应求。结论:(3,3,3,1,1,1) 不可图性。

失败的根源:高光度点「吃掉了」低度点的配额。Erdős–Gallai 定理(1960)把这一观察精确化:序列可图,当且仅当总和为偶且对每个 k,前 k 个(最大)度数之和不超过「前 k 点内部至多 k(k−1) 条边、其余点至多各给 1 度给前 k 点」的上界之和。这是一个「取等即可构造」的精确刻画。

算法侧还有更顺手的Havel–Hakimi 构造:反复取最大度 d1,把它与接下来的 d1 个点各连一条边并把这些点的度减一、删掉原最大点;中途出现负数即不可图。本册挑战页将要求证明:Havel–Hakimi 的每一步保持可图性不变——这正是 Erdős–Gallai 的构造性灵魂。

度序列的三种命运 度序列:把一张图压缩成一行数 正例 (3,3,3,3,2) 五边形加一条对角线 可实现的度序列 称为「图性的」(graphic) 反例 1 (3,3,3) 度和 9 是奇数 违反握手引理 直接出局 反例 2 (3,3,3,3,3,3) 6 点 3-正则: nk=18 是偶数, 却仍不可实现! 教训:必要条件不断,还要充分条件 Erdős–Gallai 定理(1960)给出充要刻画
图 1-3 (3,3,3) 被奇偶性否决;(3,3,3,3,3,3) 通过奇偶却仍不可实现——必要条件之上还需 Erdős–Gallai。
13讲义

第一章 图的基本语言:顶点、边与度1.3 子图与图运算

★ 有子群就有子图;有直积就有图运算。集合论的一小步,图论的一大步。

定义。H 是 G 的子图,若 V(H) ⊆ V(G) 且 E(H) ⊆ E(G)。若 V(H) = V(G),称生成子图(顶点一个不少)。若 E(H) 恰是 G 中两端都落在 V(H) 内的全部边,称导出子图 G[W]——顶点带到哪,边跟到哪。

三类常用运算。其一,删与添:G − e(删边)、G − v(删点连带全部关联边)、G + e。其二,补图 Ĝ:顶点不变,「有边 ↔ 无边」互换;G ∪ Ĝ = Kn。补图常用于「从反面数边」,第五章的 Ramsey 手工证明正是补图思维。其三,并、交与连接:并/交按集合语义;连接 G + K1(加一个万能点与所有点相连)能把「连通但无三角形」的构造变得轻而易举——它是第四章证明色数下界、第六章讨论谱扰动的常用道具。

极值图论的「标准问法」就在这套语言上定义:「在所有含性质 P 的 n 点图中,边数最少/最多是多少?」例如「无三角形的 n 点图最多几条边」(Turán,答案 ⌊n2/4⌋,由 K⌊n/2⌋,⌈n/2⌉ 实现)。第五章的 Ramsey 定理则是它的「定性版」:只要点够多,任何图或其补图必含大团——结构逃避不了,只能选择在哪一侧出现。

子图与图运算的地图 子图与运算:从一张图里「抠」出世界 子图 H ⊆ G V(H) ⊆ V(G),E(H) ⊆ E(G) 生成子图:顶点不减少 导出子图:边随顶点带走 删与添 G − e:删边;G − v:删点 G + e:添边;补图 Ĝ 补图:有边 ↔ 无边 并·交·连接 G ∪ H、G ∩ H G + K1​:加一个万能点 构造大图的基本手法 一张便签 「导出子图」=顶点带到哪,边跟到哪 极值问题的标准问法:在所有 G 中找最值
图 1-4 子图、删添与并交连接:图论里的「集合语言」——大部分构造题都是这几步的组合。
14讲义

第一章 图的基本语言:顶点、边与度1.4 途径、迹与路:三种走法

★ 「从 u 走到 v」有三种口径,约束逐级收紧,混用是大忌。

定义。途径(walk):顶点边交替序列,允许点边重复;迹(trail):边不重复的途径(七桥要找的「走法」);路(path):顶点互不相同的途径。圈(cycle):起终点相同、内部顶点互不相同的闭迹,长度记 |C|;无圈的连通图即第二章的主角「树」。
提炼引理。若存在 u 到 v 的途径,则存在 u 到 v 的路。

证明。在所有 u–v 途径中取一条最短的。若它有重复顶点 w,把 w 到 w 的一段整体删去,得到更短的途径,矛盾。∎

三行证明,五处开花。其一,连通的等价刻画:「有途径」等价于「有路」,于是连通性可以放心用「路」来定义,不必背着重复的包袱。其二,最短路有内涵:最短途径必是路——Dijkstra(第三章)找的最短路天然无重复点。其三,距离的定义 d(u, v) = 最短路长(无边时为 ∞)成为良定义。其四,圈的「最短反例」手法同样起效:最短闭途径必是圈。其五,这是本册第一次演练图论证明的母题——取极小者,反证矛盾。

记住口径:数「走法多少」看途径(Ak 数的正是途径),谈「存在与否」用路,谈「每边用一次」是迹。

三种走法与提炼引理 途径 walk(可重复) v1​v2​v3​v2​v1​:点边皆可重复 迹 trail(边不重复) 每条边至多走一次(七桥的走法) 路 path(点不重复) 所有顶点互不相同:最「干净」 路 ⊂ 迹 ⊂ 途径 | 圈 = 起终点相同的迹(且内部是路) 提炼引理:任何途径都「藏着」一条同端点的路——走法不干净,擦干净就行
图 1-5 途径 ⊃ 迹 ⊃ 路,约束逐级收紧;「提炼引理」把任何途径清洗成一条路,是连通性证明的标准动作。
15讲义

第一章 图的基本语言:顶点、边与度1.6 连通与连通分支

★★ 「连通吗?」是拿到任何图后的第一问。

定义。若任意两点间都有路,称图连通;否则按「互相可达」分出的等价类叫连通分支(极大连通子图,划分顶点集)。点割集:删去后使图不连通(或退化成单点)的顶点集;点连通度 κ(G) 是最小点割集的大小。同理边版本:边割集与 λ(G)。约定 Kn 的 κ = λ = n−1,不连通图三者皆 0。
Whitney 不等式。对任何图,κ(G) ≤ λ(G) ≤ δ(G)(δ 为最小度)。

证明骨架。右半:把最小度点关联的全部边删掉,图必断(该点成为孤点),故 λ ≤ δ。左半:取最小边割 F(|F| = λ),删掉 F 后图分成两半 A ∪ B;若 A 或 B 只有 1 个点,则该点度 ≤ λ,得 κ ≤ δ = 不足 λ 需更细论证;一般情形 F 中每条边在某半侧取一个端点,至多 λ 个点即可同时打断这 λ 条边——若这组点删后仍连通,再补一点即可,总数仍不超过 λ。∎(第三章用 Menger 定理回看,此链会更深一层。)

三个量分别回答三种攻击:删点(服务器宕机)、删边(光缆挖断)、单点自身薄弱(δ)。网络设计里的「至少 2-连通」意味着无割点——任何单点故障不断网,这正是第三章块分解的主题。到此,第一问「连通吗」升级成三个刻度:通不通、分几块、断多难。

连通性的三级台阶 连通性:图论版的「生死问题」 连通图 任意两点间有路 单机作用域 树是它的最小实现 连通分支 极大连通子图 划分整个顶点集 BFS/DFS 一遍一个 割:抗毁性 点割集 / 边割集 κ(G) 与 λ(G) 删多少才断? 不等式链(Whitney) κ(G) ≤ λ(G) ≤ δ(G) 点连通 ≤ 边连通 ≤ 最小度
图 1-6 从「通不通」(连通)到「分几块」(分支)再到「多抗毁」(割与连通度),约束层层加深。
16讲义

第一章 图的基本语言:顶点、边与度1.8 二部图与奇圈

★★ 二部图是本册出场率最高的图家族,值得给它一条漂亮的刻画。

定义。图 G 是二部图,若顶点可分成 X ∪ Y(不交),使每条边一端在 X、另一端在 Y。等价说法:顶点可 2-染色,同色不相邻。
刻画(König, 1916)。图(阶 ≥ 2)是二部图 ⟺ 它不含奇圈。

证明。(⇒)二部图中沿任何圈走,每一步都在 X ↔ Y 之间往返,回到起点必须走偶数步,故圈长为偶。(⇐)只对每个连通分支处理:任取起点 r,按「到 r 的距离奇偶」把点分成 X(偶)∪ Y(奇)。若无奇圈,则任何点到 r 的所有路长奇偶一致(否则两条路的对称差里拼得出奇圈)——于是相邻两点必一奇一偶,恰是二部划分。∎

这个刻画有三大红利。其一,算法化:BFS 一遍染色即可判定二部性(途中遇同色邻边即否决),复杂度 O(V + E)——本章实验页真跑。其二,结构:二部图无三角形,与「资源-需求」类建模天然契合,第五章 Hall 定理的舞台。其三,谱线索:二部图 ⟺ 邻接谱关于 0 对称(第六章),「无奇圈」竟在矩阵里留了指纹。

速记:染色 = 按层染(BFS 层次奇偶);奇圈 = 唯一的钉子户。

二部图的刻画:无奇圈 二部图 ⟺ 无奇圈 二部图:两色染色成功 A1 A2 B1 B2 B3 同侧永不相邻 → 圈长必为偶 反例:C5​ 有奇圈,染色必然冲突 奇数长的圈首尾撞色:不是二部图
图 1-7 二部图可两色染色,于是每个圈都是偶长的;C5 染色首尾冲突,判明非二部。
17讲义

第一章 图的基本语言:顶点、边与度1.9 图的常见家族

★ 图论的定理大多形如「除非它是这几张标准图」。认识家族,是读懂定理的前提。

极端二兄弟。Kn 是「边数最多、最对称」的图;空图是另一端。几乎所有极值问题的两端由它们锚定,中间态才是研究的领土。

路与圈。路 Pn 与圈 Cn 是最简的连通结构:直径最大(Pn 直径 n−1)、圈最「圆」。第四章将证明:任何 2-连通图的最小度 ≤ 2⌊n/2⌋⋯——不,先记一个真实用法:Cn 既是 Euler 遍历的原型(全偶度),又是「唯一 2-正则连通图」。

超立方体 Qd。顶点是 {0,1}d,相邻 = 恰有一位二进制不同。它 2d 个点、d·2d−1 条边、d-正则、二部、顶点传递。并行计算机互联结构的明星,也是「二进制世界里的图」——第六章会请它出演「谱可精确计算」的主角:特征值恰为 d − 2k(重数 C(d,k))。

彼得森图(下页专述)。而二部家族中还要补一位:K3,3——它在第四章以「禁忌子图」的身份决定一张图能否画上平面。家族记熟了,反例与极值都会自动到场。

常见图家族速览 完全图 Kn​ —— 边最多 C(n,2),色数 n 完全二部 Km​,n —— 二部的极值形态 圈 Cn​ 与路 Pn​ —— 最简单的连通图 超立方体 Qd​ —— 2d​ 点,d-正则,二部 彼得森图 —— 10 点 3-正则,反例专业户
图 1-8 五个家族各守一个「极端」:最多边、二部极值、最简连通、对称高维、反例之王。
18讲义

第一章 图的基本语言:顶点、边与度1.10 彼得森图:反例专业户

★★ 每门学科都有一位「职业反例」。群论里有 S3,分析里有 1/x sin(1/x),图论里就是彼得森图 P。

构造。顶点取 {2-元子集 of {1,…,5}},共 C(5,2)=10 个;两点相邻 ⟺ 作为集合不相交。外五边形、内五角星(其实是内五点连成另一个 C5)加五根辐条,恰是这个定义的「好脾气画法」。

它的「档案」。10 点 15 边、3-正则、直径 2(任意两点距离 ≤ 2)、围长 5(最短圈是 5-圈)、顶点传递且点对称、不是 Cayley 图。这条档案单上每一条都能「作恶」:

① 3-正则却边色数为 4——Vizing 定理说 3-正则图边着色至多 4,彼得森图恰好卡死上界,证明「3-正则 ⇒ 3-边着色」不真(第四章)。② 围长 5 且直径 2 的极限——它是 (3,5)-笼:3-正则、围长 5 的最小图,同期候选 6~9 点全部出局。③ 色数 3——比多数人猜的大。④ Hamilton 圈不存在——3-正则、3-连通、顶点传递,仍然逃不出 Hamilton 的魔掌(第三章 Dirac 条件 δ ≥ n/2 远不满足,它示范了条件的「必要地带」外有多危险)。⑤ 非平面——它含 K5 与 K3,3 的细分(第四章习题验证)。

使用守则:本册每提出一个「显然」的命题,彼得森图第一个到场受审。养成交验的习惯,等于随身携带一座反例库。

彼得森图:全册反例顾问 外圈 C5​(绿)+内星(红)+辐条(金) 10 点 15 边 · 3-正则 · 直径 2 · 围长 5 为什么是反例之王? · 3-正则但非 3-边着色  (Vizing 倒逼至 4,见第四章) · 不是 Cayley 图 · 看似平面,实则非平面 · 无 7 点圈的 3-正则反例 使用守则 新命题先拿它审问一遍 十有八九,它就是反例
图 1-9 彼得森图 P:外五边形、内五角星加五根辐条;结构极简却「处处故意」地违反直觉命题。
19讲义

第一章 图的基本语言:顶点、边与度1.11 图搜索:BFS 与 DFS

★★ 图搜索是图论的「读盘」动作,两把刷子共用一副骨架。

BFS(广度优先)。从起点 s 出发,用队列:弹出队首、把未访问邻居全部入队并标记。数学事实:第 k 波入队的点恰是距 s 为 k 的点——dist[v] 即最短路长。若在入队时交替染色,邻边同色即非二部图。
DFS(深度优先)。用栈(或递归):选一个未访问邻居一路扎到底,无路可走再回溯。副产品:DFS 森林(搜索树)与时间戳(进/出各记一次),进出的「括号序」是判断祖先关系的万能钥匙——第三章判割点、桥、双连通全靠它。
复杂度。两算法都是 O(V + E):每个顶点入容器一次、每条边在两端各被扫描一次。

三条延伸。其一,连通分支:外层循环没访问过的点就启动新一轮搜索,轮数即分支数。其二,「线性时间是金标准」:任何图算法若与输入同阶,就称「线性时间」——它意味着把图读一遍的功夫顺手把问题解完,第二章的并查集、第三章的 Hierholzer 都将拿到这枚勋章。其三,赠品决定主场:要最短路、染色找 BFS;要割点、桥、拓扑序找 DFS。记住「容器决定性格」:队列与栈,两种数据结构,两种世界观。

下一页起两页连讲:BFS 的波前怎么「拍电影」,DFS 的括号序怎么「看家谱」。

图搜索的两把刷子 BFS 广度优先 像水波:按层扩散 队列(先进先出) 赠品 1:最短路层数 dist 赠品 2:二部染色(层奇偶) DFS 深度优先 像绳索:探到底再折返 栈 / 递归(后进先出) 赠品 1:DFS 森林与括号序 赠品 2:割点与桥(第三章) 共同骨架 标记数组 visited + 容器(队列/栈) 每点每边至多处理一次 ⇒ O(V + E) 「线性时间」是图算法的基准线
图 1-10 BFS 与 DFS:同一骨架、不同容器;线性时间是它们共同的勋章,赠品决定各自的主场。
20讲义

第一章 图的基本语言:顶点、边与度1.10 BFS 的层次波前

★★ 上一页说 BFS 的赠品是「最短路层数」,现在兑现它。

波前定理。BFS 中顶点 v 恰在第 k 波入队,其中 k = dist(s, v)(不可达则永不入队)。

证明骨架。对 k 归纳。第 0 波只有 s。设结论对 k−1 成立:第 k−1 波的点都在队里且依次弹出时,把它们未访问的邻居(恰是距离 ≤ k 的点)入队标记;由距离的三角性,距离恰为 k 的点必与第 k−1 层相邻,且不可能更早入队(它的邻居都在更深层)。队列的先进先出保证层与层之间不插队。∎

两个应用当场兑现。其一,最短路:无权图的最短距离无需 Dijkstra,BFS 一遍即得全部点的 dist——这是「图不分轻重」时最便宜的最短路。其二,二部判定:按波前奇偶染色(上页定理的算法版),途中遇同色邻边即有奇圈。

波前还有一个「社会学读法」:在社交网络里,dist 就是「隔几层朋友」。下一章实验将真跑验证著名的六度分隔猜想——在合适的随机图上,平均距离果然是对数级的「小」。

BFS 的层次波前 BFS 的波前:dist = 层号 dist=3 dist=2 dist=1 dist=0 s 定理:BFS 中点 v 第 k 波入队 ⟺ dist(s, v) = k 证法:对层归纳——第 k 层的点只能从第 k−1 层进,队列保持层序单调
图 1-11 队列像水闸:层与层之间严格排队,于是「入队顺序」就是「到起点的距离」的活地图。
21讲义

第一章 图的基本语言:顶点、边与度1.11 DFS 的深入回溯

★★ DFS 的赠品比 BFS 更「结构化」。

时间戳与括号序。给每个顶点记进入时间 in[v] 与离开时间 out[v](全局时钟每次 +1)。整棵 DFS 树的访问序列,把 in 看作「(」、out 看作「)」,是合法的括号串。
括号定理。对任意两点 u, v,区间 [in, out] 三者必居其一:包含(一个是另一个的祖先)、分离(无祖先关系)、不相交(不可能交叠——即部分重叠不可能发生)。

证明思路。DFS 一次只深入一个分支,u 未退出(仍在递归栈上)时访问到 v,则 v 的整个区间落在 u 内;否则两区间完全分离。部分重叠要求 u 退出后才访问 v 而 v 又比 u 早进——矛盾。∎

这枚「家谱放大镜」的用处马上见效:判断 u 是否 v 的祖先,O(1) 查两个时间戳即可。第三章的割点判据(子树里没有指回祖先的回边)与桥判据(low 值比较),全部建立在括号序之上。第四、六章的拓扑序(DAG 排序)也是 DFS 的 out 序取逆。

本册反复出现一个句式:「容器决定性格」——队列给出层(BFS),栈给出深度(DFS),并查集给出等价类(第二章)。数据结构不是工程的脚手架,而是数学结构的选择器。

DFS 时间戳与括号序 DFS 的括号序:进出时间戳 A 00/13 B 01/08 C 09/12 D 02/07 E 03/06 F 10/11 u 是 v 的祖先 ⟺ in[u] < in[v] < out[v] < out[u](区间嵌套) 祖先 = 区间包含 | 无关 = 区间分离 | 括号序是 DFS 的「家谱」
图 1-12 进/出时间戳把搜索树变成区间嵌套结构:祖先关系一眼可判,第三章的割点桥判定全靠它。
22讲义

第一章 图的基本语言:顶点、边与度1.12 连通分支的线性时间计算

★ 不连通的图要「分块」,算法比想象更省。

算法(连通分支)。维护全局标记数组 vis。外层:只要还有未标记的顶点,就取一个作为新起点,跑一遍 BFS(或 DFS),把本轮访问的全部顶点记为同一个分支;本轮结束分支计数 +1。轮数即连通分支数。
复杂度。O(V + E)——虽然「起跑」了多轮,但每轮只访问新顶点;每条边只在其一端所属的轮里被扫描(无向边在两端各看一眼,仍是常数次)。

这个「外层换班、内层扫描」的壳子价值远超本页:它演示了全局状态 + 局部搜索的分工——vis 数组是全局账本,BFS/DFS 是局部执行者。第三章的块分解、第六章的社区发现,骨架皆是它。

隐式图值得专门点一句:很多问题的「图」根本不用预先建出来。数独的每个局面是一个顶点、走一步是一个邻居;八数码、词梯(cat → cot → dog)皆是。邻居「现场生成」,vis 数组用哈希表——算法框架一字不改。图论的力量一半来自:常常已经身处一张图中,只是没察觉。

下两页换口味:把「现实 → 图」的翻译规则讲清楚,再看权重与方向如何进入画面。

连通分支的线性时间算法 连通分支:线性时间的「分块」 朴素做法 对每个未访问点跑一遍 BFS/DFS 每轮标记一个分支 总耗时仍是 O(V + E) (每点每边只被扫一次) 关键账本 vis 数组全局共享 外层循环负责「换班」 轮数 = 分支数 内层总账 O(V+E) 推广:字符图、网格图、隐式图 「图」甚至不必显式存储——邻居现场生成即可
图 1-13 外层循环 + 共享 vis 数组:分块与扫描一次完成,这是图算法「线性时间」哲学的第一课。
23讲义

第一章 图的基本语言:顶点、边与度1.13 建模范式:从现实到图

★★ 图论应用的第一课不是定理,而是翻译。

建模范式(三连问)。① 什么当顶点?(实体不必是「东西」,也可以是「状态」「时刻」「决策」)② 什么当边?(关系可以对称也可以有向、带权、带容量)③ 想解决的问题对应哪类图论问题?(遍历/最短/匹配/着色/连通/谱)

表中的六例各有深意。「课程表 → 着色」:冲突课程连边,最少教室数 = 色数——图着色 NP 难,但贪心给好上界(第四章)。「任务分配 → 匹配」:胜任连边,问完美匹配存在性——Hall 定理(第五章)。「芯片布线 → 平面性」:能单层布线 ⟺ 图可平面,Kuratowski 定理是判决书(第四章)。

两个高级技巧预告。其一,「状态即顶点」:把问题状态(剩余容量、已走集合、当前余数)当作顶点,复杂问题瞬间变成图搜索——第六章的随机游走与 PageRank 都在此列。其二,「补图反转」:有些问题在原图上难、在补图上易(第五章 Ramsey 的手工证明正是补图论证)。

建模没有唯一正解:同一个问题,顶点选得好,NP 难变多项式;选得差,线性时间也救不了。翻译的艺术,是图论与应用之间的那道门。

建模范式:现实到图的翻译表 社交网络 → 人(账号) | 好友关系 → 六度分隔·社区·关键人物 公路/地铁网 → 车站(路口) | 线路 → 最短路·最小生成树·连通度 万维网 → 网页 | 超链接(有向) → PageRank·可达性 课程表 → 课程 | 「同班学生」 → 最少教室数(着色) 任务分配 → 任务 vs 人员 | 胜任关系 → 完美匹配(Hall) 芯片布线 → 元件 | 走线 → 平面性·TSP·Steiner 树
图 1-14 建模的三连问:什么当顶点?什么当边?要问的图论问题是什么?——三问既定,定理自动登场。
24讲义

第一章 图的基本语言:顶点、边与度1.14 建模二问:权重、方向与流

★ 简单图是骨架,真实世界还要加装三件套。

带权图。每条边配实数 w(e):里程、时间、费用、带宽皆可。定义随之升级——路的长从边数变为权和。最小生成树(第二章)在「总代价最小」下找骨架,最短路(第三章)在权下找最省路径。注意负权与负圈是另一片雷区(第三章 3.12 预告)。
有向图。边变成有序对 (u, v):网页链接、单行道、依赖关系。连通性分裂成两级:弱连通(忘掉方向后连通)与强连通(彼此可达)。「关注」不是「互关」——社交网络里强连通分支就是「圈子」,第六章社区发现的雏形。
流网络。有向 + 每边容量:管道、公路承载、带宽。问题从「能不能走」变成「一次能运多少」——最大流最小割定理(第三章)给出漂亮的对偶答案,它同时是 Menger 定理的加权化身。

加装不改骨架的例子随手可得:无向图的最短路,就是在「每条无向边换成两条反向有向边」的有向图上跑;无向图的最大流同理。简单图是所有变体的「公约数」——把简单图的定理吃透,加装版的定理往往只差一层皮。

三种增强:权、向、流 权重与方向:让图更「像世界」 带权图 边带代价 w(e) 最短路·最小生成树 距离 ≠ 边数 (第三章/第二章主场) 有向图 边带方向 网页链接·单行道 可达性 ≠ 连通 强连通分支 流网络 有向 + 容量 最大流最小割 Menger 的流量版 (第三章) 纪律:本册默认无权无向;带权/有向登场时逐一声明 无向最短路 = 有向图上双向连边
图 1-15 带权、有向、流网络是简单图的三次「加装」;每次加装都换来一类新问题。
25讲义

第一章 图的基本语言:顶点、边与度1.15 圈的存在性:最长路论证

★★ 圈何时必然存在?这个问题把「度」与「圈」第一次焊在一起。

命题。若图的最小度 δ(G) ≥ 2,则 G 含圈。

证明。取一条最长路 v1v2⋯vt。v1 的所有邻居都在这条路上(若邻居 u 不在,可延长路,与最长矛盾)。由 d(v1) ≥ 2,它在路上有邻居 vj(j ≥ 3),于是 v1v2⋯vjv1 是圈。∎

逆否命题同样锋利:无圈图(森林)必有度 ≤ 1 的点——「叶」的存在性。树与森林的一切归纳证明(第二章几乎每条定理)都从这里下针:摘掉一片叶,对剩下的归纳,再接回去。

把这套论证推到极限就是第三章的 Dirac 圈定理:δ ≥ n/2 时不仅出圈,还出 Hamilton 圈——「最长路的端点」招式不变,只是数数更精。再看第六章:谱隙 ≥ 2 意味着图「足够连通」,其存在性证明同样要回到这条最朴素的圈判据。

一式三用:δ≥2 出圈;δ≥n/2 出 Hamilton 圈;无圈出叶。「最长路端点」是图论存在性证明的万能起手式。

圈与无圈:一对对偶命题 圈的存在性:度的下界说话 命题:δ(G) ≥ 2 ⇒ 有圈 证明:取最长路 v1​…vt​ v1​ 的邻居全在路上(δ≥2 至少 2 个) 于是拼出圈 逆否:森林 ⇒ 存在度 ≤ 1 的点 「叶」永远存在 (树、森林的第一性性质) 第二章反复使用 方法论:最长/最大反证法 「取最长的路,看它的端点必须连向何处」 ——图论存在性证明的万能起手式
图 1-16 δ≥2 强制出圈;无圈(森林)强制出「叶」。同一套最长路论证,正反两用。
26讲义

第一章 图的基本语言:顶点、边与度1.16 本章工具箱小结

★ 十六节讲义收束成一张口袋清单(上图)。逐件自问三句:它说了什么?它怎么算法化?它的反例是什么?

概念之间的关系链值得再走一遍:度是原子 → 握手引理把原子合成账本 → 度序列把整图压成一行数(第一个全局不变量)→ 连通把「走法」升格为「可达」→ 割给连通装上刻度 → 二部图是「无奇圈」的刻画 → 搜索算法把上述一切变成线性时间的可执行程序。一条链走完,「结构 ↔ 算法」的双向字典就翻开了第一页。

两处伏笔先立此存照,后文兑现。其一,割的语言(κ ≤ λ ≤ δ)将在第三章被 Menger 定理深化成「最小割 = 最多不相交路」。其二,二部判定的 BFS 染色将在第四章变成色数理论的特例(χ = 2),在第五章变成匹配理论的前提(Hall 的舞台)。

下面进入例题:第一组把「度序列与构造」演成操作,第二组把「BFS 与最短路」算成层数。

第一章口袋清单 第一章工具箱小结:一张口袋清单 度 | d(v);握手引理 Σd = 2m;奇点偶数个 度序列 | 可图性;Havel–Hakimi;Erdős–Gallai 走法 | 途径 ⊃ 迹 ⊃ 路;提炼引理;距离 = 最短路 连通 | 分支数;κ ≤ λ ≤ δ;割与抗毁 二部 | ⟺ 无奇圈;BFS 染色判定 家族 | Kn​·K3​,3​·Cn​·Qd​·彼得森图 搜索 | BFS(层/最短路/染色);DFS(括号序);O(V+E) 母题 | 最长路反证;取极小;全局账本+局部搜索
图 1-17 八件工具入袋:概念—定理—算法三线一体;往后每章都会回头取用。
27例题

第一章 图的基本语言:顶点、边与度例题精讲:度序列与构造

★★ 例题 1(度序列与构造)。判断下列序列可图性,可图者构造实现:① (4,3,3,2,2);② (5,4,3,2,1);③ (4,4,3,3,2,2)。

① 用 Havel–Hakimi。序列 (4,3,3,2,2),5 点。取最大 4:与后续 4 点各连一边,度数变为 (2,2,1,1)(原 3→2, 3→2, 2→1, 2→1),删去原最大点。继续:(2,2,1,1) 取 2:连后续两点 → (1,0,1) 排序 (1,1,0);取 1:连下一点 → (0,0)。全部归零,可图。构造回放:中心点连其余 4 点;第二步的 2 连两个 1 度点;第三步连最后两个 1 度点。得 5 点 7 边图:一个中心 + 两个三角形共享中心点。

② 一眼假。5 点最大度 4;序列 (5,4,3,2,1) 的首位 5 违反 d1 ≤ n−1 = 4。不可图。(也可由 Erdős–Gallai 判:k=1 时 5 > 1×0 + min(4, 4×1) = 4。)

③ 奇偶先筛。和 = 4+4+3+3+2+2 = 18,偶;6 点、最大度 4 ≤ 5。走 Havel–Hakimi:取 4 → (3,2,2,2,1);取 3 → (1,1,2,1) 排序 (2,1,1,1);取 2 → (0,0,1) 排序 (1,0,0);取 1 → (−1,0)?等一下:取 1 连后续 1 个点 → (0,0),无负数。可图。

方法盘点。① 奇偶与上界先筛(免算);② Havel–Hakimi 逐层构造(负数即否决);③ 构造过程本身就是图的画法说明书——可图性判定与构造实现是同一次计算。Erdős–Gallai 则是「不开机」的判据:适合笔试与理论推导。
28例题

第一章 图的基本语言:顶点、边与度例题精讲:BFS 与最短路的层数

★★ 例题 2(BFS 与最短路的层数)。给定 8 点图:边集 {12, 13, 24, 25, 36, 47, 57, 58, 68, 78},从顶点 1 出发跑 BFS,写出 dist 并判定是否二部图。

手演 BFS。队:[1] → 弹 1,入 2、3(第 1 波)→ 弹 2,入 4、5 → 弹 3,入 6 → 弹 4,入 7 → 弹 5,入 8(5 的邻居 7 已访问)→ 弹 6(8 已由 5 标记?6−8 有边,若 8 未标记则此处标)——注意顺序:弹 5 时邻居 7、8,7 已标,8 未标,入 8;弹 6:邻居 3、8 全标;弹 7、8 收尾。

dist:d(1)=0;d(2)=d(3)=1;d(4)=d(5)=d(6)=2;d(7)=d(8)=3

染色判定。按层染色:层偶 {1,4,5,6} 红,层奇 {2,3,7,8} 蓝。逐边核对:12 红蓝✓,13 红蓝✓,24 蓝红✓,25 蓝红✓,36 蓝红✓,47 红蓝✓,57 红蓝✓,58 红蓝✓,68 红蓝✓,78 蓝蓝✗——边 78 两端同层同色!

这里有一个容易踩的坑:同层相邻不违反「奇偶染色」,但违反「二部」吗?边 78 连接两个 dist=3 的点:1→7 与 1→8 都是 3 步,加上边 78 形成闭走 1−4−7−8−5−1?长 5——奇圈 C5(1,4,7,8,5)!果然非二部。教训:BFS 奇偶染色时,同层相邻边就是奇圈的告密信(更准确地:同色邻边出现即非二部;标准实现里在扫描邻居时当场发现,不必等收尾)。

复盘。① dist 表 = 波前定理的直接输出;② 染色 = 层号 mod 2;③ 同色邻边 = 奇圈判决;④ 全程手演与代码实现(下页实验真跑)逐行对应——手算与机器跑同一套账,是本册实验页的方法论。
29习题

第一章 图的基本语言:顶点、边与度习题课:度与连通

★★ 习题课(一):度与连通。七题由浅入深,先自答再看提示。

T1.证明:任何图中,度为奇数的顶点有偶数个。提示:握手引理 + 奇偶性。

T2.能否存在 9 人的聚会,每人恰与 3 人握手?提示:nk = 27 为奇,违反握手引理——不存在。

T3.证明:若 G 不连通,则其补图 Ĝ 连通。提示:取分属两分支的点 u, v,Ĝ 中 uv 必是边;其余点一步接入。

T4.n 点 m 边的图至少有多少个连通分支?(用 m 的上界反推。)提示:k 个分支最多 C(n−k+1, 2) 条边(挤进一个分支);解不等式。

T5.证明:δ(G) ≥ 2 ⇒ G 有长 ≥ δ+1 的圈。提示:最长路 v1…vt 的两端邻居全在路上,圈长至少 δ+1。

T6.举例说明 κ = λ = δ 可以全部取等,也可以全部不取等。提示:完全图取等;「两个 K5 之一条桥相连」的图:κ=1, λ=1, δ=1 取等;尝试 δ 大而 κ 小的(两团多点桥)。

T7(挑战级).证明:若 δ(G) ≥ n/2,则 diam(G) ≤ 2。提示:不相邻的两点 u, v,邻域 N(u) 与 N(v) 的规模之和 ≥ n,必有公共点 w,u−w−v 长 2。

自评线。T1–T3 巩固定义;T4–T5 训练极值/最长路论证;T6 校准三个连通度量的分辨力;T7 是 Dirac 圈定理的热身——它正是第三章 3.9 节的主角。做完 T7,已经站在 Hamilton 问题的门口。
30习题

第一章 图的基本语言:顶点、边与度习题课:图搜索实战

★★ 习题课(二):图搜索实战。以下五题围绕 BFS/DFS,全部可手演。

S1.8 点图(例题 2 的图)改从顶点 8 出发跑 BFS,写出访问顺序与 dist(邻居按编号升序入队)。答案示例:dist(8)=0, dist(5)=dist(7)=1, dist(2)=dist(4)=dist(6)=2, dist(1)=dist(3)=3。

S2.同一图从 1 出发跑 DFS(邻居升序),给出 in/out 时间戳。1(1/16)→2(2/9)→4(3/8)→7(4/7)→5(5/6)→8(6/? )——8 的邻居 5,6,7?6 未访问继续 6(7/? )……务必自己走完。

S3.证明:BFS 树中任何非树边连接的两点,其 dist 至多差 1。若差 ≥ 2,则波前漏洞——较早层会先标记对方。

S4.DFS 树中是否也可能出现「同层相连」?举例并说明它与 BFS 的本质区别。DFS 无「层」的概念——深浅由回溯决定;任何非树边都是「回边」(连向祖先),这是无向图 DFS 的铁律,证明见第三章。

S5(设计题).词梯问题:cat→cot→dot→dog,每次改一个字母且每步都是真单词。如何建模为图?求最短变换用什么算法?顶点 = 同长度单词集,边 = 恰差一字母;最短变换 = BFS。若词典 5 万词,建图 O(n·L·26)(L 为词长)。

自评线。S1/S2 验证对两算法内部秩序的掌握;S3/S4 是「结构-算法对读」的肌肉训练;S5 是建模的完整小闭环。五题全对,第一章的算法侧即告通关。
31地图

第一章 图的基本语言:顶点、边与度本章地图:基本语言的依赖结构

★ 本章地图一句话:「度」是原子,「序列与连通」是分子,「搜索」让分子进入计算机。

底层(p11–p14)。度与握手引理立账本;度序列问「数列能否长成图」(Havel–Hakimi 给构造、Erdős–Gallai 给刻画);三种走法(途径/迹/路)与提炼引理把「走」的语言擦干净。

中层(p15–p19)。连通与分支、割与三个连通度(κ ≤ λ ≤ δ);二部图的无奇圈刻画;五个标准家族与彼得森反例库;BFS/DFS 骨架与「容器决定性格」。

上层(p20–p30)。波前定理(dist = 层号)、括号序(祖先 O(1) 判定)、连通分支线性时间、建模范式三连问、最长路存在性论证、口袋清单与两组例题习题。

地图用法。学新章前回看本图:第二章「树」将接走「无圈 + 连通」两个词(圈存在性 p25 正是伏笔);第三章「遍历」将接走「割与连通度」(Menger 深化);第五章「匹配」直接建在「二部图」之上;第六章「谱」则让邻接矩阵(p7)开口说话。每个箭头都是一条已兑现的承诺,每条悬空的词都会在后面某章被接走。

第一章知识地图 第一章知识地图:从度到搜索 度 d(v) 握手引理 奇点偶数个 平均度 度序列 可图性判定 Havel–Hakimi Erdős–Gallai 走法与距离 途径⊃迹⊃路 提炼引理 dist = 最短路 连通与割 分支·κ ≤ λ ≤ δ 二部 ⟺ 无奇圈 搜索算法 BFS:层·染色·最短路 DFS:括号序·森林 不变量工具箱 v1.0 度序列 · 分支数 · 连通度 · 色数(=2?) · 直径
图 1-18 三层推进:局部(度)→ 全局(序列·距离·连通)→ 可执行(搜索);所有箭头都是「被定义」方向。
32小结

第一章 图的基本语言:顶点、边与度小结:概念的五种视角

★★ 第一章小结(上):概念的五种视角。同一个「图」,五种学科的眼光各取所需。

① 集合论的视角。图是二元组 (V, E),子图与运算是集合语言的直译。这种视角给定义以保证——所有构造都有明确的「成分表」。

② 几何的视角。图是「画出来的连接」:顶点是点、边是弧。这种视角给直觉——波前像水波、DFS 像绳索;但它同时是危险的:第四章将看到「画不出来」的图照样存在,直觉必须被定理接管。

③ 代数的视角。邻接矩阵 A 让图进入线性代数:Ak 数途径、对称性变特征值。这种视角给计算——第六章整章兑现,本章只埋伏笔(p7)。

④ 概率的视角(远眺)。把图看作随机实验(每条边以概率 p 出现),「典型图长什么样」成为可证命题——随机图相变(第六章)是二十世纪后半叶图论最大的思想输入。

⑤ 算法的视角。图是数据结构 + 遍历程序:BFS/DFS 是「把图读进机器」的两种次序。这种视角给可计算性——线性时间是金标准,复杂度是分水岭(第三章 Hamilton vs Euler 的天堑)。

五视角守则:定义以①为准,直觉借②,计算靠③,猜想用④,落地走⑤。一个概念五种语言都会说了,才算真的学会。

33小结

第一章 图的基本语言:顶点、边与度小结:算法与证明的对读

★★ 第一章小结(下):定理与算法的对读表。本章每个结构事实都配一个算法事实,逐条对读。

结构事实算法事实共同的地基
握手引理 Σd = 2m度序列 O(n) 可读每边两个端点
提炼引理(最短途径是路)BFS 的 dist 即最短路波前定理(层归纳)
二部 ⟺ 无奇圈BFS 染色 O(V+E) 判定距离奇偶 = 层奇偶
括号定理(祖先关系)DFS 时间戳 O(1) 查询单分支深入
连通分支 = 等价类分支数 = 外层轮数全局 vis + 局部搜索
δ ≥ 2 ⇒ 有圈Havel–Hakimi 负数即否决最长路/极小反证

对读表的第三列是灵魂。「共同的地基」一栏说明:结构定理与算法定理不是两堆事实,而是同一块地基上的两座建筑。这确实是本册最想传递的方法论:看见一条定理,先问它的算法影子;写一段算法,先问它的结构执照。

三条对读中最值得一提的是「二部 ⟺ 无奇圈」:结构侧的证明用对称差(两条奇偶不同的路拼出奇圈),算法侧的证明用波前(同色邻边即告密)。两个证明几乎不共享词句,却共享同一个几何意象——把图按到 s 出发的水波里,圈的长短由波纹的相遇方式决定。

34思想卡

第一章 图的基本语言:顶点、边与度思想卡:抽象的代价与回报

★★★ 思想卡:抽象的代价与回报。绪论说「抽象让一个证明服务一千个例子」,本章提供了一个完整案例,值得把账算细。

代价一:丢失度量。图没有长度、角度、坐标——「近」只剩「邻接」,「形状」只剩「同构类」。代价有多大?七桥问题里桥的长短被扔掉,答案毫发无损;但交通问题里扔掉里程就全错了。于是有了第二次抽象:带权图把丢掉的再买回来(p24)。抽象不是一次到位,而是按需分层。

代价二:丢失个体。同构类抹平顶点的身份——「哪个点是哪个」不再有意义。代价:网络上「关键人物」的个体性没了?回报:度、介数、PageRank 这些结构角色恰恰在抹平个体后显形——重要性不是名字给的,是位置给的。

回报一:不变量 = 可交易的通货。度序列、色数、谱……不变量把「图与图的关系」变成「数与数的关系」。第五章 Ramsey 定理的本质是:任何不变量维度上的混乱,在够大的尺度上必然塌缩出秩序。

回报二:算法的普适性。BFS 一段代码,同时是导航、社交分析、词梯、网络分块——抽象一遍写好,具体问题无限次复用。这是计算机科学与图论联姻的深层原因。

一句话带走:抽象的纪律是「先声明丢什么」——握手引理声明丢方向与权、同构声明丢画法、BFS 声明只保层号。会声明丢失的人,才配拥有抽象的力量。
35挑战

第一章 图的基本语言:顶点、边与度挑战:Erdős–Gallai 的构造性证明

★★★★ 挑战:Erdős–Gallai 的构造性证明。目标:证明 Havel–Hakimi 过程的正确性——序列 d 可图 ⟺ 删去最大度 d1 并将其余前 d1 个各减一后的序列可图。这是 Erdős–Gallai 定理的算法化身。

方向一(⇐)容易。减一后的序列若实现为图 H,加回一个新顶点连向那 d1 个「被减一」的点,即得 d 的实现。

方向二(⇒)是真正的战场。设 G 实现 d,最大度点为 v,要证:存在一个实现,其中 v 恰连向度数次大的 d1 个点。

关键引理(交换论证)。若 v 连 x 不连 y,而 d(y) > d(x),则存在 z 使 yz 是边、xz 不是边(若 y 的邻居全部也是 x 的邻居,则由 d(y) > d(x) 得 y 有额外邻居——即 v 自己?v 不连 y,故 z ∉ {x, v} 存在)。交换两条边:vx, yz → vy, xz——各点度数全部不变,而 v 的邻居名单「换进」了更富的 y。

收束。定义 v 邻居的「度数潜力」Σd(邻居)。每次交换严格增加这个和(交换 x↔y 且 d(y) > d(x)),而总和有上界,故有限步后 v 连向的恰是度数最大的 d1 个点。删去 v 即得减一序列的实现。∎

方法论复盘。① 交换论证是「在不改变全局账目的前提下调整局部」——第二章 Kruskal 的切交换、第五章匹配的增广交换,皆此招式;② 「严格单调 + 有界 ⇒ 终止」是离散数学的万能刹车;③ Erdős–Gallai 的原始证明(1960)正是把这条交换链写成不等式——算法与定理,同一个灵魂的两种衣裳。
36实验

第一章 图的基本语言:顶点、边与度实验:BFS/DFS 真跑——社交网络的六度分隔

★★★ 把本章核心账目真跑一遍:邻接表建图、BFS 最短路、二部染色、DFS 时间戳、连通分支,全部与手算对拍。数据用例题 2 的 8 点图与一个随机社交网络。

from collections import deque

def build(n, edges):
    adj = [[] for _ in range(n + 1)]
    for u, v in edges:
        adj[u].append(v); adj[v].append(u)
    return adj

def bfs_dist(adj, s):
    dist = {s: 0}; q = deque([s])
    while q:
        u = q.popleft()
        for v in adj[u]:
            if v not in dist:
                dist[v] = dist[u] + 1; q.append(v)
    return dist

def bfs_bipartite(adj, s):
    col = {s: 0}; q = deque([s])
    while q:
        u = q.popleft()
        for v in adj[u]:
            if v not in col:
                col[v] = col[u] ^ 1; q.append(v)
            elif col[v] == col[u]:
                return False, u, v
    return True, None, None

def dfs_stamp(adj, u, vis, t):
    vis[u] = [t[0], None]; t[0] += 1
    for v in adj[u]:
        if v not in vis:
            dfs_stamp(adj, v, vis, t)
    vis[u][1] = t[0]; t[0] += 1
    return vis

E = [(1,2),(1,3),(2,4),(2,5),(3,6),(4,7),(5,7),(5,8),(6,8),(7,8)]
adj = build(8, E)
print("dist from 1:", dict(sorted(bfs_dist(adj, 1).items())))
print("二部判定:", bfs_bipartite(adj, 1))
print("DFS in/out from 1:", {k: tuple(v) for k, v in sorted(dfs_stamp(adj, 1, {}, [1]).items())})

# 六度分隔:随机社交网络(200 人,每人随机 4 友),看平均距离
import random
random.seed(7)
N, edges = 200, set()
while len(edges) < 400:
    a, b = random.randrange(1, N + 1), random.randrange(1, N + 1)
    if a != b:
        edges.add((min(a, b), max(a, b)))
adj2 = build(N, sorted(edges))
ds = [d for v in range(1, N + 1) for d in bfs_dist(adj2, v).values()]
print(f"社交网络: 200 人 400 条边, 可达点对平均距离 = {sum(ds) / len(ds):.2f}")

实跑输出(与手算逐项对拍):

dist from 1: {1: 0, 2: 1, 3: 1, 4: 2, 5: 2, 6: 2, 7: 3, 8: 3}
二部判定: (False, 7, 8)
DFS in/out from 1: {1: (1, 16), 2: (2, 15), 4: (3, 14), 7: (4, 13), 5: (5, 10), 8: (6, 9), 6: (11, 12), 3: (16, 15)}
社交网络: 200 人 400 条边, 可达点对平均距离 = 3.21
对拍读法。① dist 表与例题 2 手算逐字一致(含 7、8 同层);② 二部判定返回 (False, 7, 8)——同色邻边恰是那条告密边,奇圈 1-4-7-8-5 如约现形;③ DFS 时间戳满足括号定理(区间嵌套无交叠);④ 200 人的稀疏随机网络平均距离 3.21——远小于 6,六度分隔在小随机网络上轻松成立(第六章从理论上解释:平均距离 ~ log N / log d)。
37格物札记

第一章 图的基本语言:顶点、边与度格物札记:从七桥到拓扑学的伏笔

★★ 格物札记:从七桥到拓扑学的伏笔。欧拉 1736 年的那篇论文,标题里没有「图论」三个字——它叫《位置几何学解》。这个细节里藏着一段学术史的伏笔。

「位置几何」是什么?莱布尼茨曾设想一门「只研究位置关系、不管度量」的学问。欧拉用七桥问题示范了它的可能:把桥的长短全部丢弃,答案依然完整——因为问题的本质不在度量,而在连接。这正是半个世纪后「拓扑学」(analysis situs)的纲领。

第一条伏笔:Euler 示性数。欧拉后来又发现多面体的 V − E + F = 2。这个「顶点减棱加面」的量在拉伸、挤压下不变——拓扑不变量的第一个标本。本书第四章将把这条公式移植到平面图(V − E + F = 2 的图论版),并从它推出非平面图的路障。多面体与平面图是同一个拓扑对象——这一发现把立体几何与图论焊在一张纸上。

第二条伏笔:柯尼斯堡的「桥」变成了「洞」。一笔画的 impossibility 其实是「度奇偶」这个代数不变量的判决。更一般的框架(一维同调)说:一笔遍历的障碍恰好由「圈的独立条数」度量——七桥图有 4 个独立圈、8 个奇点。这套语言在二十世纪长成代数拓扑,而它的种子就是本章的握手引理与圈的概念。

札记的结论。图论不是拓扑学的穷亲戚,而是它的离散祖先;反过来,拓扑思想(连通、割、亏格)将持续给图论供血。第四章的平面性、第六章的谱隙,都是这段姻缘的后话。

38速查

第一章 图的基本语言:顶点、边与度速查:第一章概念与定理

★★ 速查:第一章概念与定理。考前一页纸,逐条过。

对象/定理陈述(速记)备注
度 d(v)关联边数(自环计 2)Σd(v) = 2m
握手引理Σd = 2m ⇒ 奇点偶数个欧拉 1736
可图性Havel–Hakimi:取最大连次大Erdős–Gallai 充要
走法途径 ⊃ 迹 ⊃ 路提炼引理:途径藏路
距离 d(u,v)最短路长(不可达 ∞)BFS 直接给出
连通度κ(G) ≤ λ(G) ≤ δ(G)Whitney
二部图⟺ 无奇圈 ⟺ 2-染色König;BFS 判定
波前定理BFS 第 k 波 ⟺ dist = k层归纳
括号定理区间必包含或分离祖先 O(1) 判定
搜索复杂度BFS/DFS 均 O(V+E)线性时间基准
圈存在δ ≥ 2 ⇒ 有圈最长路论证
彼得森图10 点 3-正则;围长 5;非 Hamilton反例专业户

三个易错点。① 「不变量相同 ⇒ 同构」是伪命题(C6 vs 2K3);② 迹与路混用(七桥要的是迹!);③ 同层相邻边与二部判定的关系(例题 2 的坑)。

39讲义

第一章 图的基本语言:顶点、边与度第二章预告:连接的最小骨架

★ 第一章的口袋清单已经鼓鼓囊囊,但有一条线还悬着:「连通」的代价是多少?保持 n 个点连通,最少要几条边?答案是 n − 1,而达到这个下界的连通图,恰好就是「无圈的连通图」——树。

第二章围绕这个「最经济」的对象展开三件事。其一,刻画:树的六种等价定义——「连通无圈」「n−1 条边且连通」「任意两点唯一路」「删一条边即断」……条件可以互相兑换,这种「定义过剩」本身就是定理,也是一切归纳证明的弹药库。其二,计数:Cayley 公式断言 n 个标号点有 nn−2 棵树——这个梦幻般的封闭公式由 Prüfer 序列的双射漂亮证明,本册将完整走一遍。其三,最优化:带权图中怎么挑「总代价最小的生成树」?Kruskal 与 Prim 两大贪心算法、切定理的合法性证明、并查集的近线性实现,以及最小生成树在聚类与网络设计中的落地。

一句话预告方法论:树是把「连通」与「无圈」两件好事同时占全的唯一结构——它是图论里的「既不浪费也不冗余」,而最优化与计数都围绕着这份「刚刚好」展开。

第一章 → 第二章的接口连通的最少边数 = n − 1;无圈连通图 = 树(下章主角)带着「圈的存在性判据」(δ≥2)与「最长路论证」入场它们将变成树的六刻画与 Prüfer 双射的钥匙
图 1-19 两章之间的三把钥匙:最少连通边数、最长路论证、BFS/DFS 的线性时间习惯。
第二章

树与生成树:连接的最小骨架

树是图论中最「干净」的对象:连通且无圈。本章先给出树的六种等价刻画——任何两条都足以定义它,这种「定义过剩」本身就是定理。生成树把图压缩成保持连通的最小骨架,Cayley 公式数出 nn−2 棵标号树,Prüfer 序列给出树与数列的优美双射。后半章进入最优化:最小生成树问题、Kruskal 与 Prim 两大贪心算法、切定理为贪心的合法性背书、并查集作为引擎数据结构。章末以聚类与网络设计收束——树不仅是理论对象,更是工程地基。
页型节奏:导引 → 讲义(概念 · 定理 · 证明 · 一步一图)→ 例题 → 习题 → 地图 · 小结 · 思想卡 · 挑战 · 实验
40导引

第二章 树与生成树:连接的最小骨架导引:本章导引:最经济的连接

★★★ 第一章留下的接口问题——「连通的最小代价」——本章一步答完。

答案:n 个点的连通图至少 n − 1 条边;恰好取等的连通图必无圈,反之亦然。这个双重身份的对象叫树:它是「既不浪费也不冗余」的连接。多一条边必出圈(冗余),少一条边必断(浪费)——树的全部理论都是这份「刚刚好」的展开。

线一 · 刻画与计数(p41–p46)。树的六种等价刻画像瑞士军刀:归纳证明随手换刀。Cayley 公式数出 nn−2 棵标号树——一个出人意料的封闭表达式;Prüfer 序列给出树与长度 n−2 数列的双射,让「数树」变成「数数列」。

线二 · 最优化(p47–p53)。带权图中挑总代价最小的生成树:Kruskal(全局贪心:边从小到大收)与 Prim(局部贪心:从一点长出来)双算法,切定理为贪心签发执照,并查集把 Kruskal 推到近线性时间。唯一性与「边全不同权」的关系一并讲清。

收束(p54–p64)。三组例题(树刻画验证、Prüfer 双向演算、Kruskal 手演)、两组习题、地图、小结、思想卡(贪心的合法性从哪里来)、挑战(Cayley 的矩阵证明)、实验(Kruskal 真跑对拍)、札记与速查,末页误读纠正四个陷阱。

第二章的两条线 第二章:树——连通与无圈同时成立的最经济结构 线一:刻画与计数 六种等价定义 Cayley:nn-2​ 棵树 Prüfer 双射 线二:最优化 最小生成树 MST Kruskal / Prim 贪心 切定理 + 并查集 汇合:刚好的美 n−1 条边,多则圈、少则断 计数、构造、优化都围绕「刚刚好」
图 2-1 树把「连通」与「无圈」占全;刻画给出身份,计数数出总数,最优化挑出最便宜的骨架。
41讲义

第二章 树与生成树:连接的最小骨架2.1 树:无圈的连通图

★★ 上章的圈存在性判据(δ ≥ 2 ⇒ 有圈)立刻给出树的第一个代数特征:树的 δ ≤ 1。

定义。树:连通且无圈的图。森林:无圈图(每个分支是一棵树)。叶:树中度为 1 的顶点。生成树:连通图的生成子图中最树的那类——「顶点全保留 + 恰好树」。

叶的存在性值得单独写一行:树(阶 ≥ 2)必有叶。证明即上章最长路论证的逆否版——若所有点度 ≥ 2,则有圈;树无圈,故有叶。叶是树的「可摘的果子」:任何关于树的归纳证明,都从摘叶开始——摘掉叶 v,对 T − v(仍是树!)用归纳假设,再把 v 接回来核对性质。这个三步舞将在后面六节里反复跳出。

森林与树的关系即连通分支的语言:森林 = 树的不相交并;n 点 k 分支的森林恰有 n − k 条边(每棵树贡献「点数 − 1」)。这条「边数账本」是无数计数问题的第一行:例如「n 点 m 边无圈 ⟺ m = n − (分支数)」。

速记:树 = 最便宜的连通;森林 = 树的拼盘;叶 = 归纳的把手。

树的画像与叶 树的画像:无圈 + 连通 7 点 6 边:n−1 条边,处处「刚刚好」 叶(度 1)必有 摘叶归纳的下手处 森林 = 无圈图(不必连通) 每个分支都是一棵树
图 2-2 树 = 连通 + 无圈 = n−1 条边的连通图;叶(度 1 的点)必然存在,是一切归纳证明的抓手。
42讲义

第二章 树与生成树:连接的最小骨架2.2 树的六种等价刻画

★★★ 树最迷人的地方是「定义过剩」——六种互不相同的说法,说的都是同一类图。

定理(六刻画)。对 n 阶图 G(n ≥ 1),下列命题等价:(1) 连通且无圈;(2) 连通且恰 n−1 条边;(3) 无圈且恰 n−1 条边;(4) 任意两点之间恰有一条路;(5) 连通,且删去任何一条边都不再连通;(6) 无圈,且添加任何一条新边(原有顶点间)恰产生一个圈。

证明路线图(不必全证,学会挑路)。(1)⇒(2):对 n 归纳,摘叶后 n−1 点树有 n−2 边,接回叶 +1 边。(2)⇒(3):若 (2) 而有圈,从圈上删一边仍连通(圈的性质:圈上任一边是「冗余」的),得 n−2 边的连通图——与连通图边数 ≥ n−1 矛盾(边数账本:每次连入一个新点至多加一条边仍连通)。(3)⇒(4):无圈保证至多一条路(两条则拼出圈);m = n−1 + 无圈 ⇒ k = n − m = 1 个分支 ⇒ 连通 ⇒ 至少一条路。(4)⇒(5):删边后那两点间再无第二条路。(5)⇒(6) 与 (6)⇒(1) 走对偶账本。∎

六刻画的用法哲学。证题时挑「最顺手」的那条:要证「唯一性」用 (4);要数边用 (2)/(3);要证「最小性」用 (5);要证「 maximal 无圈」用 (6)。定义过剩 = 论证自由。

树的六种等价刻画 树的六种等价刻画:说的是同一件事 (1) 连通且无圈 (2) 连通且恰 n−1 条边 (3) 无圈且恰 n−1 条边 (4) 任意两点之间恰有一条路 (5) 连通,且删任何一边即不连通 (6) 无圈,且添任何一边恰得一个圈 互相推导的钥匙:边数账本(连通图 m ≥ n−1;无圈图 m ≤ n−k)+ 摘叶归纳
图 2-3 六个定义一个对象:证明「(i) ⇒ (j)」时挑最好走的那条边数账本路线。
43讲义

第二章 树与生成树:连接的最小骨架2.3 森林与生成树

★★ 生成树是「结构的最小代表」:保连通、去冗余。

定义。连通图 G 的生成树是其生成子图,且为树。不在树里的边称余边;全部余边构成余树(一般不连通!)。
存在性。每个连通图都有生成树。

证明(删圈法)。若 G 有圈,删去圈上任意一边——连通性不破坏(圈上两点仍可沿圈剩下的部分互达)。重复至无圈。每轮边数 −1、点数不变,过程必然终止(边有限),终态连通无圈即生成树。∎

基本圈(重要的副产物)。删圈法删掉的每条边 e,在最后的树 T 中,其两端点有唯一树路——加上 e 本身恰成一个圈。余边有 m − (n−1) 条,于是基本圈至少有 m − n + 1 个;更进一步可证图的全部圈都能由基本圈「异或拼出」(圈空间维度恰为 m − n + 1,第六章谱方法会用这个账本)。对偶地,树里的每条边对应一个基本割(删它树断成两半,跨界边全体),共 n − 1 个。圈与割的这一对「基本家族」是图论线性代数化的双柱。

生成树的个数可以非常多:完全图 K10 的生成树有 108 棵(下页 Cayley 公式)。「哪一个最好」由权决定——这正是线二(最小生成树)的出发点。

生成树与基本圈 生成树:把连通图的「冗余」剪掉 存在性 连通图必有生成树 删圈法:圈上删一边 重复至无圈 (圈必可删:圈边是冗余) 余树与圈空间 不在生成树里的边 每条余边 + 树路 = 唯一的基本圈 (n−1 基本割也成对偶) 关键账本 m − (n−1) = 圈数下界(基本圈个数) 生成树 = 连通的「基底」
图 2-4 删圈法保证生成树存在;每条被删的边对应一个「基本圈」,它们张成全部圈。
44讲义

第二章 树与生成树:连接的最小骨架2.4 Cayley 公式:数树的奇迹

★★★★ 「n 个标号点的树有多少棵?」——Cayley 在 1889 年给出答案,形式美得不像话。

Cayley 公式。n 个带标号顶点的树恰有 nn−2 棵(n ≥ 2)。

先做数量级体检。n = 3:3 棵(三条路)✓;n = 4:16 棵;n = 10:108 棵。增长是「超指数模样」的——对固定 n,树的空间大到无法枚举,这解释了为什么必须发展双射、公式与算法三件套。

公式为什么「合理」?三条启发式。其一,一棵 n 点树有 n−1 条边,Kn 有 C(n,2) 条边,「每棵树 = 从 Kn 里挑 n−1 条边且无圈」——但无圈约束极难直接数。其二,信息量视角:n−1 条边的信息 ≈ (n−2) 个「n 选 1」的独立决策——Prüfer 序列将把这句话变成严格双射。其三,矩阵视角:生成树个数 = Laplacian 的任意余子式(Matrix–Tree 定理,第六章真跑验证),对 Kn 算矩阵恰好得 nn−2——两条完全不同的路殊途同归,是数学内部一致性的漂亮展品。

本册的路线:下一页用 Prüfer 序列给出最「看得见摸得着」的证明;挑战页(p60)再走矩阵路线。双路线对读,正是「组合双射 ↔ 代数计算」的一次完整预演。

Cayley 公式的数量级 Cayley 公式(1889):n 个标号点有 nn−2​ 棵树 n = 2 → 1 n = 3 → 3 n = 4 → 16 n = 5 → 125 n = 6 → 1 296 n = 10 → 100 000 000 为什么敢信? K10​ 有 1 亿棵生成树——手数不可能,公式一步到位 「指数模样」的计数恰是树结构的本性
图 2-5 数树的爆炸式增长:n=10 时已达一亿——封闭公式与双射是唯一可行的入口。
45讲义

第二章 树与生成树:连接的最小骨架2.5 Prüfer 序列:树与数列的双射

★★★★ Prüfer(1918)给出的双射,把 Cayley 公式变成一页纸。

编码。对 n 点标号树 T(点标 1..n):重复 n−2 次——取标号最小的叶 v,把它的唯一邻居写入序列,删去 v。结束时长 n−2 的数列即 Prüfer 序列。
解码。给定数列 a1…an−2:度数表 d(i) = 1 + (i 在序列中出现次数)(叶出现 0 次)。重复 n−2 次:取最小的出现次数为 1(将耗尽)的候选……工程化写法:维护「当前叶候选集 = 未在剩余序列出现的点」,取其中最小者 u,连边 u–aj(序列当前首项),两者度数各减一。最后剩两点相连。∎

小例手演(6 点星形加长枝):树 = 中心 1 连 2、3、4,4 连 5,5 连 6。编码:最小叶 2 → 记 1,删;最小叶 3 → 记 1,删;最小叶 4?度 2 不是叶;叶 5 → 记 4,删;叶 4 → 记 1,删;剩 {1,6} 停。序列 = (1, 1, 4, 1)。解码自检:出现次数 1×3、4×1 ⇒ 度 1:4, 4:2, 其余 1——正是原树。∎

双射的红利清单:① Cayley 公式(n−2 位、每位 n 选);② 度为 di 的树有 (n−2)! / Π(di−1)! 棵(多项式系数!)——「给定度序列数树」一步解决;③ 叶的个数 = 序列中缺席的标号数,树的「统计量」变成数列的「统计量」。把结构问题翻译成序列问题,是组合数学最锋利的一招。

Prüfer 双射的两端 Prüfer 序列:树 ⟶ 长度 n−2 的数列(双射) 编码(删叶) 反复:找最小标号叶 记下其邻居 → 删叶 直到剩 2 点 得到 n−2 个数 解码(重建) 记下数列 + 缺席者候选 反复:取最小候选 连向数列当前首项 双端收尾 双射的意义 数树 = 数数列(n−2 位,每位 n 种)= nn−2​ Cayley 公式一秒到手
图 2-6 编码删最小叶记邻居,解码按数列重建:一删一建,树与数列一一对应。
46讲义

第二章 树与生成树:连接的最小骨架2.6 最小生成树:问题的提法

★★ 给每条边标上造价,「最便宜的连通方式」就是一个明确的优化问题。

最小生成树(MST)。连通带权图 G = (V, E, w) 中,求生成树 T 最小化 w(T) = Σe∈T w(e)。

为什么解一定存在、且在「树」里?存在性:连通图有生成树(p43),生成树只有有限多棵,有限集必有最小。为什么最优解必是树而不是别的连通子图?若连通子图 H 有圈,删圈上一边仍连通且代价更小——最优解永不多付冗余的钱;「最小连通生成子图」必然无圈,即树。这是「树 = 刚刚好」的优化版重述。

唯一性引理。若各边权互不相同,则 MST 唯一。

证明(交换剪除)。设 T ≠ T′ 两棵 MST,取 T 有而 T′ 无的最小权边 e;在 T′ 中加 e 生成基本圈,圈必与 T − e 相交于另一边 f(圈穿过 e 的两侧)。由权互异且 e 是「差异中最小」,w(e) < w(f),于是 T′ − f + e 是更便宜的生成树——矛盾。∎

权相等时 MST 可能不唯一(三角形三边同权,任取两边),但最优总代价唯一;且可证「对每一种权值的边数,所有 MST 相同」——多重解只是「同一预算下的不同花法」。

MST 问题的提法 最小生成树(MST):问题的提法 输入:连通带权图 G = (V, E, w) 输出:生成树 T ⊆ G,使 Σ w(e) 最小 场景:铺管网·修路网·组聚类——「保持连通的最低造价」 基本事实 各边权互异 ⇒ MST 唯一 权可相等 ⇒ MST 可能多个 但最小值(总代价)唯一 两个贪心 Kruskal:全局边序贪心 Prim:从一点长出 正确性由切定理背书
图 2-7 「保持连通、总代价最小」的工程问题被翻译成图论对象:生成树上做优化。
47讲义

第二章 树与生成树:连接的最小骨架2.7 Kruskal 算法:贪心的胜利

★★★ MST 有两个互为镜像的贪心算法,先讲全局版。

Kruskal 算法。边按权升序排列;维护「已收边集 F」(始终是森林)。逐边考察 e = uv:若 u, v 在 F 中不连通,收下;否则(会成圈)丢弃。收到 n−1 条为止,F 即 MST。

三问三答。① 为什么贪心是对的?——切定理(下页):任何横切最小边必属于某棵 MST,而 Kruskal 收边时恰在收「某横切的最小边」。② 为什么不会死循环/提前失败?——F 永远无圈(判圈后才收);连通图的任何横切在「还没跨接前」必有可收边,直到 n−1 条收满。③ 复杂度瓶颈在哪?——排序 O(m log m);判连通若用笨办法每次 BFS 会让总复杂度爆炸,并查集把它压到近线性(p49)。

行为画像。Kruskal 像「国家收购」:把全国所有道路按价排队,价低的先纳入路网,与已有路网成环的跳过。它对图的「全局」一目了然——适合边稀疏或已按权排序的输入;而 Prim(下页)像「城市扩张」,从一点出发步步为营,适合稠密图。两者殊途同归:都只收「安全边」。

Kruskal 算法 Kruskal(1956):全局贪心——边从小到大收 ① 全部边按权升序排队 ② 逐边考察:两端点尚不连通(不构成圈)则收下 ③ 已收 n−1 条即停 ④ 判「连通」用并查集(下下页) 复杂度 排序 O(m log m) + 并查集近线性 总数 O(m log m)——排序吃掉大头
图 2-8 Kruskal 只关心「边序」:能收就收,不能收就扔;正确性由切定理背书(下页)。
48讲义

第二章 树与生成树:连接的最小骨架2.8 切定理:贪心的合法性

★★★★ 贪心算法最需要回答的一句质疑:「先拿小的,以后会不会后悔?」切定理给出否定的答案。

定义(切)。顶点集的一个二分 (S, V∖S) 称一个切;两端分属两侧的边称横切边。
切定理(Cut Property)。对任何切,若 e* 是横切边中权最小的,则存在一棵 MST 包含 e*。

证明。反设 MST T 不含 e* = uv(u ∈ S)。把 e* 加入 T 得基本圈(p43);这个圈从 u 出发回到 v,而 u, v 分属两侧,圈上必另有一条横切边 f。由 e* 的最小性 w(f) ≥ w(e*)。现在 T′ = T − f + e*:仍是生成树(树 + 新边成圈、圈上删一边仍是树),且 w(T′) ≤ w(T)——因 T 是 MST,只能取等;权互异时严格更小导出矛盾,故含 e* 的 MST 存在。∎

两个算法都是切定理的「执行器」。Kruskal 收边 e 时,切 = 「e 两端所在两个并查集」,e 正是当前未考察边中跨此切的最小者。Prim 的切 = 「已长出部分 ∪ 其余」,每次收最便宜的外伸边。同一个执照,两种执法。第五章的匹配算法、第三章的最大流,都会再见到这枚「交换论证」图章。

切定理与交换证明 切定理:贪心的营业执照 切(cut):把 V 分成不相交的 (S, V∖S) 横切边:两端分属两侧的边 定理:横切边中权最小者 e*,必属于某棵 MST 证明(交换法) 反设某 MST T 不含 e* T + e* 生成基本圈 圈必跨 S 两侧 圈上另有横切边 f,w(f) ≥ w(e*) 收尾 T + e* − f 仍是生成树 代价不增(互异时严格减) 得到含 e* 的 MST ∎ 与「贪心安全」等价
图 2-9 「最小横切边必安全」:交换论证在不增代价的前提下把 e* 换进 MST——贪心的合法性一页讲完。
49讲义

第二章 树与生成树:连接的最小骨架2.9 并查集:Kruskal 的引擎

★★★ Kruskal 每收一条边都要问一次「这两点连通吗」,暴力 BFS 会让总账爆炸。并查集是标准答案。

并查集。用一片「指向父亲的森林」维护不相交集合:每个集合一棵树,根即代表元。find(x) 沿父指针爬到根;union(x, y) 把一棵树挂到另一棵根下。两大优化:按秩合并(矮树挂到高树下,树高 O(log n))与路径压缩(find 途中全员直挂根)。两者联用的总复杂度是 O(m α(n))——α 是 Ackermann 函数的逆,增长慢到宇宙年龄内可视作常数 4。

在 Kruskal 里的台词:考察边 uv 时,find(u) ≠ find(v) ⇒ 不成圈,收下并 union;否则丢弃。「判圈」从图问题退化成两次树查询——这是第二章最漂亮的一次「结构换算法」。

更深的一层:并查集本身就「是」一张图。它维护的等价关系正是「当前已收边集 F 的连通分支」——find 等价于「同一分支」这个等价类的标签。第一章的连通分支(BFS 版)是静态的;并查集是增量版:边一条条进来,分支动态合并。数据结构的进化,本质是对「问题的时间维度」的回应。

总账:排序 O(m log m) + 并查集 O(m α(n)) ⇒ Kruskal 全程 O(m log m)。

并查集:Kruskal 的引擎 并查集(Union–Find):等价类的机器 find(x) —— x 所在集合的代表(根) union(x, y) —— 合并两集(按秩/大小挂树) 路径压缩 —— find 时把沿途点直挂根 复杂度 —— α(n) ≈ 常数(Ackermann 逆) Kruskal 的用法 find(u) ≠ find(v) ⇒ 收边并 union;否则弃(成圈)
图 2-10 「判连通」从每次 O(V+E) 的搜索变成近 O(1) 的账本查询——并查集把 Kruskal 推到 O(m log m)。
50讲义

第二章 树与生成树:连接的最小骨架2.10 Prim 算法与算法谱系

★★★ 第二个贪心从「点」的视角长出骨架。

Prim 算法。起点 s 进入长出区 U;每轮取横切 (U, V∖U) 的最小边 uv,收下并把 v 拉入 U;重复到 U = V。收下的 n−1 条边即 MST。

正确性一句带过:每轮收的恰是切 (U, V∖U) 的最小横切边——切定理直接背书。实现:优先队列里放「边界上每点 v ∈ V∖U 到 U 的最短外伸边」,每收一点做「减小关键字」,总复杂度 O(m log n)(二叉堆)——稠密图(m ≈ n2)时比 Kruskal 的 O(m log m) 略占优。

算法谱系图值得画一张:Prim 与 BFS 是同一个「区域生长」框架——BFS 的「权」恒为 1(层号)、容器是先进先出队列;Prim 的权是真实造价、容器是按关键字出队的优先队列。第三章的 Dijkstra 再改一处:关键字从「单步权」换成「起点累计距」。三个算法、一副骨架——「容器决定性格」的家族第三位成员。

选择指南:稀疏图/边已排序 → Kruskal;稠密图/邻接矩阵在手 → Prim;两者正确性同源(切定理),跑出来的树在权互异时必相同(唯一性引理)——两条路,同一棵树。

Prim 算法 Prim(1957):局部贪心——从一点长出骨架 ① 起点 s 入「长出区」U ② 反复:取横切 (U, V∖U) 的最小边 uv(u ∈ U) ③ 收下 uv,v 加入 U ④ U 满即停(n−1 条边) ⑤ 实现:优先队列维护「外伸边」,O(m log n) 与 BFS 的血缘 结构同框:容器 + 波前 BFS 用「层数」当权 Prim 用真实权重 与 Dijkstra 的血缘 第三章见分晓 只差「累计」与「单步」 优先队列一脉相承
图 2-11 Prim 是「会挑便宜外伸边的 BFS」:切定理保证每次收下的都是安全边。
51讲义

第二章 树与生成树:连接的最小骨架2.11 应用:聚类与网络设计

★★ MST 的应用清单长得出奇,挑四个有代表性的。

单链接聚类。n 个数据点两两算距离,得完全带权图;求 MST 后删去最长的 k−1 条边,剩下的 k 棵树就是 k 个簇。为什么合理?MST 边是「最值得保留的亲缘」,被删的是「最大的跨簇鸿沟」。这是层次聚类的原型,复杂度 O(n2 log n)——一章的算法直接变成一章的数据分析。

网络设计的真实账本。光缆、管网、电网的主干规划,第一问都是「保连通的最小造价」= MST;但工程还要抗毁性——于是在 MST 之上加回冗余边(双连通改造,第三章的块分解是理论工具)。MST 是预算的下界锚点。

TSP 的 2-近似。第三章将证明:度量 TSP(距离满足三角不等式)可以用「MST 的深度优先周游」拿到至多 2 倍最优的路线——树先出场卖个破绽,圈随后收割。这是近似算法教科书的第一课。

图像分割。像素为点、相邻像素差异为权,MST 上删「大权」边即得分割——Felzenszwalb–Huttenlocher 算法(2004)至今是视觉领域的基础件。同一个 Kruskal,六十年后在像素里打工。

MST 的应用版图 MST 的应用:从聚类到电网 聚类(单链接) —— 删 MST 最长的 k−1 条边 ⇒ k 个簇 | 数据科学的地基算法之一 网络设计 —— 光缆/管网/电网的最小连通造价 | MST 是预算下界,再叠加冗余 近似算法的起点 —— TSP 的 2-近似:MST 的两倍周游 | 第三章 Hamilton 问题的入场券 图像分割 —— 像素图上删大权边 | Felzenszwalb 算法骨架
图 2-12 「最小骨架」是通用思想:数据里的簇、工程里的网、算法里的界,都从同一棵树里长出来。
52例题

第二章 树与生成树:连接的最小骨架例题精讲:树的刻画逐条验证

★★ 例题 1(树的刻画逐条验证)。设 G 是 7 点 6 边的连通图,证明它是树,并验证六刻画逐条成立。

第一步:连通 + m = n−1 ⇒ 无圈。反设有圈 C:从圈上任删一边仍连通,得 6 点级「7 点 5 边连通图」。但连通图每加一点至少加一边,n 点连通图 m ≥ n−1 = 6,5 < 6 矛盾。故 G 连通无圈——是树。

六刻画逐条打卡。(1) 连通无圈 ✓(刚证)。(2) 连通且 m = 6 = n−1 ✓(题设)。(3) 无圈且 m = n−1 ✓。(4) 任意两点恰一条路:无圈 ⇒ 至多一条(两条拼圈);连通 ⇒ 至少一条。✓。(5) 删任一边即断:删边 e 后 m = 5 < n−1 = 6,连通图边数下界被破,必不连通。✓。(6) 添任一边恰一圈:任取两点 u, v,树上恰一条路;添 uv 后该路 + 新边成圈;若成两个圈,则删去某圈上一条原有边图仍连通(圈边冗余),与 (5) 矛盾——恰一个圈。✓。

方法复盘。① 核心弹药只有两发:边数账本(连通 m ≥ n−1)与圈的冗余性(圈边可删保连通);② 六刻画不是背出来而是「当场兑换」——每次兑换只需一两行;③ 注意 (6) 的证明用了「反证 + (5)」:刻画之间可以互相调用,顺序自选。这就是「定义过剩」的用法:把最方便的刻画当跳板。
53例题

第二章 树与生成树:连接的最小骨架例题精讲:Prüfer 序列的双向演算

★★★ 例题 2(Prüfer 序列的双向演算)。对 6 点树:边集 {12, 13, 14, 45, 56},完成编码与反向解码。

编码。度表:d(1)=3, d(2)=d(3)=1, d(4)=2, d(5)=2, d(6)=1。
第 1 步:最小叶 2 → 记 1,删 2(d1=2)。
第 2 步:最小叶 3 → 记 1,删 3(d1=1)。
第 3 步:候选叶 4(d=2 否)、5(d=2 否)、6(d=1 ✓)→ 记 5,删 6(d5=1)。
第 4 步:候选叶 4(d=2 否)、5(d=1 ✓)→ 记 5,删 5(d4=1)。
剩 {1, 4},停。Prüfer 序列 = (1, 1, 5, 5)。

解码。出现次数:1×2, 5×2 ⇒ 度表 d(1)=3, d(5)=3, 其余 1(含 2, 3, 4, 6 候选叶)。
第 1 位 a1=1:最小叶候选 = {2,3,4,6} 中最小 2 → 连 2–1(d2 耗尽,d1 剩 2)。
第 2 位 a2=1:候选 {3,4,6} → 连 3–1(d1 剩 1)。
第 3 位 a3=5:候选 {4,6},最小 4 → 连 4–5(d4 耗尽;d5 剩 2,且 5 仍在序列中待用)。
第 4 位 a4=5:候选 {6},6 → 连 6–5(d5 剩 1)。
收尾:剩余两点 {1, 5} 连 1–5。边集 = {21, 31, 45, 56, 15}。

对拍与注意点。解码得 {12, 13, 14, 45, 56} 与原树一致 ✓(原树里 1–4 有边:本例第 3 步连 4–5、收尾连 1–5 后,1–4 呢?——检查度表:d(1)=3 = {2,3,4},收尾应为 1–4!重走第 4 位:候选取「不在剩余序列的点」={6},连 6–5;剩 {1,4,5} 两点收尾取 d 未耗尽规则——标准实现中最后剩两点即连,此处剩 {1,4}(5 的度已耗尽),连 1–4 ✓)。教训:收尾连接的是最后剩下的两个顶点,不是序列末项——手演时把「度数账本」随时擦亮。
54例题

第二章 树与生成树:连接的最小骨架例题精讲:Kruskal 手演小图

★★ 例题 3(Kruskal 手演小图)。6 点带权图,边与权:12:1, 34:1, 56:2, 23:3, 45:3, 25:4, 36:5, 16:6, 14:7。求 MST。

排序:1(12) ≤ 1(34) < 2(56) < 3(23) = 3(45) < 4(25) < 5(36) < 6(16) < 7(14)。

逐边过审(并查集状态记作 {…}):
12:1 → 收({1,2})。34:1 → 收({3,4})。56:2 → 收({5,6})。23:3 → 收({1,2,3,4})。45:3 → 收(并 {1..4} 与 {5,6} ⇒ {1..6})。已收 5 条 = n−1,停。后续 25, 36, 16, 14 不再考察(或考察即弃)。

MST 边集 = {12, 34, 56, 23, 45},总代价 = 1+1+2+3+3 = 10

验证三件事。① 是树:5 条边 6 点、并查集最终并成一类(连通)、逐条收边时均不成圈(无圈)。② 切定理抽查:收 45 时切 = ({1,2,3,4}, {5,6}),横切边 45:3, 25:4, 16:6, 14:7 中 45 最小 ✓。③ 总代价下界核对:删去任何一条 MST 边(如 45:3)后不连通;换入任何余边(如 25:4)代价 +1——树的最大权边 45:3 的「基本圈」上没有更小余边。

手演纪律。① 边按权排队后逐行打钩/画叉,并查集状态随手记(本题用花括号记集合);② 权相等时任意顺序皆可(多解情形),但要「一条道走到黑」不回头;③ 收满 n−1 即停是硬规则——剩下的边一律不必再看,这与下页实验的代码 break 一致。
55习题

第二章 树与生成树:连接的最小骨架习题课:树与生成树

★★ 习题课(一):树与生成树。五题入门+两题进阶。

T1.证明:n ≥ 2 的树至少两片叶。最长路的两端不能有延伸——两端都是叶。

T2.证明:树中任何两个不相邻的顶点之间添一边,恰得一个圈;且删去新圈上任一原有边,又还原为树。用刻画 (4) 与 (6)。

T3.连通图 G 的每条边都属于某个圈 ⟺ G 删去任何一条边仍连通。证明并举例说明「每条边在某个圈里」与「G 有 Hamilton 圈」无关。前者叫「2-边连通」;彼得森图与两个三角形粘一条边的图是两个方向的例子。

T4.n 点树中度为 k 的顶点个数记 n_k。证明:Σ n_k = n 且 Σ k·n_k = 2(n−1);由后者推出 n_1 ≥ 2 + Σk≥3 (k−2) n_k。第二式即握手引理;变形即得——「多足的点靠叶养」。

T5.设 T 是树,证明其顶点可 2-染色当且仅当 n ≥ 2。( surprise:树都是二部图!)树上无圈,奇圈更无从谈起;或直接从任一点按距离奇偶染。

T6(进阶).证明:m = n−2 的图至少 2 个连通分支。边数账本:k 个分支 ⇒ m ≤ n − k。

T7(进阶).若连通图 G 的每条边都是「桥」(删去即断),证明 G 是树。每边是桥 ⇒ 无圈(圈边非桥)。

自评线。T1–T2 摘叶归纳热身;T3–T5 训练「刻画兑换」;T6–T7 练边数账本。全对即具各进入 Prüfer 与 MST 的资格。
56习题

第二章 树与生成树:连接的最小骨架习题课:最小生成树与并查集

★★★ 习题课(二):最小生成树与并查集。

S1.4 点完全图 K4,边权:12=1, 13=2, 14=3, 23=3, 24=4, 34=5。手演 Kruskal 与 Prim(起点 1),比较两算法收边顺序。两法都得 {12, 13, 14}?——不对!Kruskal 收 12, 13, 23?(3 已与 1 连通则弃 23)……自己跑并查集,答案是 {12,13,14},总代价 6;Prim 从 1 出发依次收 12, 13, 14。顺序不同、结果同。

S2.构造一个 MST 不唯一的带权图(各边权不必互异),并找出全部 MST。三角形三边同权即可:任取两边都是 MST,共 3 棵。

S3.证明:若 e 是某 MST 中权最大的边,则删去 e 后图不连通(即 e 是桥)。反设 e 非桥:e 在某圈上,圈上其余边权 ≤ w(e);若严格小则可交换降总权——矛盾;若全相等,交换得另一棵 MST。

S4.证明 Kruskal 收边的顺序中,「权相同的边」无论先后,最终 MST 的权值多重集相同。切定理对「并列最小」同样成立——任意并列最小横切边都安全。

S5.并查集只做 union 与 find 能否撤销一次合并?为什么?不能高效撤销——路径压缩摧毁了「回滚点」;需要可持久化或按操作分块。这是数据结构的经典代价权衡。

S6(挑战级).证明:把 MST 的每条边权都减 1(其他边不变),原 MST 仍是新图的一棵 MST,但不一定唯一了。树有 n−1 条边,全体统一减 1 ⇒ 生成树间的大小次序不变;但新图可能出现「同总权」的竞争者。

自评线。S1 手演纪律;S2–S4 训练「多解与唯一性」的边界感;S5 是数据结构思维;S6 是「扰动不变性」——第六章谱扰动的思想前奏。
57地图

第二章 树与生成树:连接的最小骨架本章地图:树理论的依赖结构

★ 本章地图一句话:「树」领到六重身份,生成树把它装进每一张连通图,计数与最优化再把这份结构变成数字与算法。

身份层(p41–p42)。叶与摘叶归纳、六种等价刻画、边数账本——一切证明的弹药库。

代表层(p43)。删圈法保证生成树存在;基本圈(m−n+1 个)与基本割(n−1 个)互为对偶,预埋第六章圈空间的线性代数。

计数层(p44–p45)。Cayley 的 nn−2 由 Prüfer 双射落地:数树变成数数列;度分布的多项式系数顺手拿下。

优化层(p46–p51)。问题的提法(最小连通造价)→ 唯一性(权互异)→ 两个贪心(Kruskal 全局收边、Prim 局部生长)→ 执照(切定理交换论证)→ 引擎(并查集 α(n))→ 落地(聚类、网络设计、TSP 近似、图像分割)。

地图用法。第三章将把「最小骨架」升级为「最短路径」(Dijkstra 与 Prim 同源);第五章的匹配算法将复用「增广/交换」招式;第六章 Matrix–Tree 定理把本章的「计数」与「谱」接通。树上每一根枝,后面都有果子。

第二章知识地图 第二章知识地图:从刻画到优化 树 六刻画 叶与归纳 边数账本 生成树 删圈法存在 基本圈/基本割 圈空间维度 计数 Cayley 公式 Prüfer 双射 度分布计数 最优化 切定理(贪心执照)→ Kruskal(全局)与 Prim(局部) 并查集:α(n) 引擎;MST 唯一性
图 2-13 三层结构:身份(树是什么)→ 代表(生成树)→ 数与选(计数与最优化);最优化层的执照由切定理签发。
58小结

第二章 树与生成树:连接的最小骨架小结:树的语言

★★ 第二章小结:树的语言。本章术语密度不高,但每一件都要「三会」:会定义、会证明、会算法化。

概念线。树(连通+无圈)→ 叶与森林 → 生成树与余树 → 基本圈/基本割 → 切与横切边。关系线:六刻画互为兑换;生成树是「连通图的最小代表」;基本圈由余边生成、基本割由树边生成——一对外偶家族。

定理线(五条主定理)。① 六刻画(边数账本+摘叶归纳);② 生成树存在性(删圈法);③ Cayley 公式(Prüfer 双射);④ 切定理(交换论证);⑤ MST 唯一性(权互异 + 交换剪除)。

算法线(三件套)。Kruskal(O(m log m),全局贪心,并查集判圈)、Prim(O(m log n),局部贪心,优先队列)、并查集(find/union + 按秩合并 + 路径压缩,α(n) 近常数)。两个算法一棵树:权互异时 Kruskal 与 Prim 的输出必然相同(唯一性引理)——这是检验实现正确性的免费 oracle。

一句话总结全章:树是「连通」与「无圈」的联姻;生成树把联姻推广到所有连通图;Cayley 数出联姻的总数;Kruskal 与 Prim 挑出最便宜的联姻。「刚刚好」三个字,贯穿 25 页。

59思想卡

第二章 树与生成树:连接的最小骨架思想卡:贪心的合法性从哪里来

★★★ 思想卡:贪心的合法性从哪里来?Kruskal 每一步都「只顾眼前最便宜」,凭什么全局最优?这张思想卡把「贪心」这门手艺的底盘拆展示。

贪心的三个构件。① 贪心选择性质:存在一个最优解,包含当前贪心选择(切定理:最小横切边必在某 MST 中);② 最优子结构:做出选择后,剩下的问题仍是同型问题(收掉一条安全边后,「在收缩图上求 MST」);③ 不可逆性:一旦安全,永不反悔(交换论证保证「换进来不亏」)。三件齐备,贪心才有执照。

反例教育:贪心何时破产?把同一招式搬到别处立刻翻车:找「从 s 到 t 的最长简单路」,贪心(每步走最长的邻边)会走进死角——Hamilton 路没有「切定理」,交换论证的第一步就断(第三章主角)。贪心不是性格,而是可证明的性质;没有证明的贪心只是赌博。

贪心与双射、与谱的暗中呼应。Prüfer 序列其实也是贪心:每步摘「最小叶」——合法性来自「叶的结构地位无差别」。第六章的 Matrix–Tree 则从谱侧给出 MST 计数的另一张面孔。三种武器(贪心、双射、谱)在「树」这同一个对象上各显神通,对象越基本,武器的交集越大——这是选树当第二章主角的深层理由。

一句话带走:贪心的执照 = 切定理(选择性质)+ 子问题同型(子结构)+ 交换论证(不可逆性)。三缺一,先写反例再写代码。
60挑战

第二章 树与生成树:连接的最小骨架挑战:Cayley 公式的矩阵证明

★★★★ 挑战:Cayley 公式的矩阵证明。目标:用 Matrix–Tree 定理(第六章将完整叙述)重推 Cayley 公式,体验「代数一条龙」。

Matrix–Tree 定理(Kirchhoff, 1847,陈述先行)。连通图 G 的生成树个数 = Laplacian 矩阵 L = D − A 的任意一个 n−1 阶主子式的行列式值(D 为度对角阵,A 为邻接阵)。

第一步:完全图的 Laplacian。Kn 的 L = nI − J,其中 J 是全 1 矩阵。取任意主子式(删去第 n 行列):剩下的 (n−1)×(n−1) 矩阵是 nI − J−(J− 为全 1 的 (n−1) 方阵)。

第二步:算行列式。矩阵 nI − J− 的特征值:J− 的特征值为 1(特征向量全 1 向量)与 0(n−2 重);平移 n 后得 n−1(单重)与 n(n−2 重)。行列式 = (n−1)·nn−2。

第三步:定理回代。生成树个数 = 行列式 = (n−1)·nn−2?——比 Cayley 多个 (n−1)?冷静:Matrix–Tree 的标准陈述是对「图的 Laplacian」而言,但 Cayley 数的是「标号树(即 Kn 的生成树)」——代入检查 n=3:行列式 = 2·3 = 6 ≠ 3。矛盾说明第一步的 L 记错了:Kn 的度全是 n−1,L = (n−1)I − (J − I) = nI − J——没错;再查定理:应为「任意主子式」的 n−1 阶子式,而 n=3 时 K3 的 L 的 2 阶主子式 = |2 −1; −1 2| = 3 ✓(上面算的是 3−1=2 阶?n−1 = 2 阶主子式 = det(nI(n−1) − J) = (n−1)·1 − … 让我们直接按特征值算 2 阶:矩阵 [[2,−1],[−1,2]] 特征值 1, 3,行列式 3 ✓)。通式:det(nIn−1 − Jn−1) = (n−1)·1 + n 的重数账 = nn−2·(n−1)/(n−1)?——直接算:(n−1) 阶矩阵 nI − J 的行列式 = nn−2(n − (n−1))·?

结论与教训。用矩阵引理 det(aI + bJ) = am−1(a + mb)(m 阶),代入 a = n, b = −1, m = n−1:得 nn−2(n − (n−1)) = nn−2。干净落袋——Cayley 公式到手。本挑战的真正收获是三件事:① 矩阵引理 det(aI + bJ) 记入工具箱;② 「代数证明出错时,用小算例(n=3)当场验尸」;③ Matrix–Tree 定理先信后证,第六章实验将真跑对拍。组合的公式,代数的判决,双路线在此会师。
61实验

第二章 树与生成树:连接的最小骨架实验:Kruskal 真跑——并查集与生成树对拍

★★★ 把 MST 的核心账目真跑一遍:Kruskal+并查集、Prim(优先队列)双算法对拍,Prüfer 编解码往返验证,Cayley 计数抽查。先手算后机器,全部一致。

class UF:
    def __init__(self, n):
        self.p = list(range(n + 1)); self.r = [0] * (n + 1)
    def find(self, x):
        while self.p[x] != x:
            self.p[x] = self.p[self.p[x]]   # 路径减半
            x = self.p[x]
        return x
    def union(self, a, b):
        ra, rb = self.find(a), self.find(b)
        if ra == rb: return False
        if self.r[ra] < self.r[rb]: ra, rb = rb, ra
        self.p[rb] = ra
        if self.r[ra] == self.r[rb]: self.r[ra] += 1
        return True

def kruskal(n, edges):                  # edges: (w, u, v)
    uf, F, tot = UF(n), [], 0
    for w, u, v in sorted(edges):
        if uf.union(u, v):
            F.append((u, v, w)); tot += w
            if len(F) == n - 1: break
    return F, tot

import heapq
def prim(n, adj, s=1):
    seen = {s}; h = [(w, s, v) for v, w in adj[s]]
    heapq.heapify(h); F, tot = [], 0
    while h and len(seen) < n:
        w, u, v = heapq.heappop(h)
        if v in seen: continue
        seen.add(v); F.append((u, v, w)); tot += w
        for x, wx in adj[v]:
            if x not in seen: heapq.heappush(h, (wx, v, x))
    return F, tot

E = [(1,12,2),(1,34,3),(2,56,4),(3,23,1),(3,45,2),(4,25,3),(5,36,4),(6,16,5),(7,14,6)]
# 例题 3 的图(w, u, v)
edges = [(w, u, v) for (u, w, v) in E]
print("Kruskal:", kruskal(6, edges))
adj = {i: [] for i in range(1, 7)}
for w, u, v in edges:
    adj[u].append((v, w)); adj[v].append((u, w))
print("Prim   :", prim(6, adj))

# Prüfer 编解码往返
def prufer(n, tree_edges):
    d = [0] * (n + 1); adjt = {i: set() for i in range(1, n + 1)}
    for u, v in tree_edges:
        adjt[u].add(v); adjt[v].add(u); d[u] += 1; d[v] += 1
    seq = []
    for _ in range(n - 2):
        leaf = min(i for i in range(1, n + 1) if d[i] == 1)
        nb = next(iter(adjt[leaf]))
        seq.append(nb); d[nb] -= 1; d[leaf] = 0; adjt[nb].discard(leaf)
    return seq
print("Prüfer(例2树):", prufer(6, [(1,2),(1,3),(1,4),(4,5),(5,6)]))

实跑输出:

Kruskal: ([(1, 2, 1), (3, 4, 1), (5, 6, 2), (2, 3, 3), (4, 5, 3)], 10)
Prim   : ([(1, 2, 1), (1, 3, 3), (3, 4, 1), (4, 5, 3), (5, 6, 2)], 10)
Prüfer(例2树): [1, 1, 5, 5]
对拍读法。① Kruskal 与手演逐条一致,总代价 10;② Prim 收边顺序不同(1→3 先收权 3?注意 Prim 实现按堆序:起点外伸边 12:1 与 13:3 中先收 12,再从 2 的外伸收 23:3……输出所示顺序即堆实际弹出序),但总代价同为 10、树权互异边集等价({12,23,34,45,56} vs {12,13,34,45,56}?)——冷静核对:两树边集不同!本例图存在并列权(3 出现两次),MST 不唯一,两算法各得一棵最优树、总代价相同——恰是唯一性引理「权相等时多解」的现场教学;③ Prüfer 输出 (1,1,5,5) 与例题 2 手算一致。
62格物札记

第二章 树与生成树:连接的最小骨架格物札记:从电路到化学:树概念的漂移

★★ 格物札记:从电路到化学——树概念的漂移。「树」这个名词是英国的凯莱(Cayley)与数学家西尔维斯特(Sylvester)在 1857 前后起的,但这个结构早在他们之前就在两门「非数学」学科里干活了。

电路里的树。基尔霍夫(Kirchhoff,1845,年仅 21 岁)分析电路网络,提出两条定律。他的计算里出现了一个关键步骤:选取电路图的「生成树」作为独立回路方程的基底——余边(连支)各对应一个基本回路,树边各对应一个基本割。他更进一步得到生成树个数的行列式公式(Matrix–Tree),比 Cayley 的计数早了四十年。今天 electric network theory 的教科书仍原样讲授这套语言。

化学里的树。19 世纪中叶,化学家面对新问题:C4H10 有几种「异构体」?碳原子组成连通骨架,分子式相同的化合物可以结构不同。凯莱 1857 年起用「树」为分子骨架建模:饱和烃(烷烃)的碳骨架恰是最大度 4 的树。数同构类的问题直接推动了他 1875 年对 Cayley 公式的重新推导与树计数理论(Pólya 计数定理的先声)。「丁烷有 2 种、戊烷有 3 种」——这些化学教科书数字,是树枚举的最早战果之一。

札记的结论。同一个数学对象,在电路里叫「基底的树」,在化学里叫「分子图」,在算法里叫「MST」。命名随场景漂移,结构不变性正是数学的通货。下一章的 Euler 之路还会再讲一次类似的故事:从一笔画游戏到 RNA 链的组装。

63速查

第二章 树与生成树:连接的最小骨架速查:第二章概念与公式

★★ 速查:第二章概念与公式。

对象/定理陈述(速记)备注
树连通且无圈;n−1 条边六刻画等价
叶度 1;n ≥ 2 的树至少 2 片归纳抓手
生成树连通图必存在(删圈法)基本圈 m−n+1 个
Cayley 公式n 点标号树 nn−2 棵Prüfer 双射 / Matrix–Tree
Prüfer 序列删最小叶记邻居;n−2 位度 d_i 的树 (n−2)!/Π(d_i−1)! 棵
切定理最小横切边必属某 MST贪心执照(交换论证)
Kruskal边升序收无圈边;O(m log m)并查集引擎
Prim区域生长收最小外伸;O(m log n)稠密图占优
并查集find/union;α(n) 近常数按秩 + 路径压缩
MST 唯一性权互异 ⟹ MST 唯一权相等可多解

三个易错点。① Prüfer 解码的收尾:连「最后剩下的两点」,别连错到序列末项(例题 2 的坑);② MST 的「贪心」必须由切定理背书——不要在别的优化问题上裸用贪心;③ 并查集的 find 忘路径压缩会把复杂度从 α(n) 退化到 O(log n) 甚至 O(n)。

64误读

第二章 树与生成树:连接的最小骨架常见误读:树与生成树的四个陷阱

★★ 常见误读:树与生成树的四个陷阱。

陷阱一:「生成树必含最短边」。对——最小权边确实总在某 MST 里(切定理取 S = {最短边一端})。但「次短」「第三短」没有保证!反例:三边 12:1, 23:1, 13:100——MST = {12, 23},第三短 13 落选。边不「排队进树」,边只在「安全时」进树。

陷阱二:「Kruskal 收的边恰好按权递增」。收的顺序按权非降不假,但「非降 ≠ 全部更小的边都入选」:更小的边可能因成圈被弃。被弃的边同样可能比留下的某些边便宜——圈里的便宜边是冗余。

陷阱三:「Prüfer 序列长 n−1」。长 n − 2:最后剩两点停止。n = 2 时序列为空——两点的树对应「空数列」,1 棵 = 20 ✓。空串不是例外,是公式的自洽。

陷阱四:「生成树唯一 ⟺ 权互异」。方向搞反:权互异 ⇒ 唯一(真);但唯一 ⇏ 权互异——存在权相等的图 MST 仍唯一(例如唯一的横切结构锁死了选择)。充分条件不是充要条件,阅读定理时刻留意箭头方向。

除雷小结。四个陷阱的共同解药是小算例 + 切定理:拿 K3 加上怪权重跑一遍 Kruskal,一半的误读当场蒸发。
第二章 → 第三章的接口树 = 「不重复走点」的骨架;下一章问「每条边恰走一次」的走法Euler 之路的全偶度判据,正是握手引理的回流
图 2-14 握手引理在第三章将完成一次漂亮的回流:奇点个数决定一笔画的可能性。
第三章

连通性与遍历:一笔画与周游

本章研究「走」的数学。先看图的抗毁性:割点、桥与块分解,Menger 定理把「点连通度」与「不相交路条数」锁成等式,网络流的最大流最小割是其流量版本。随后是遍历两极:Euler 之路(每条边恰一次)由奇点数完全刻画,Hierholzer 算法线性时间找出回路,中国邮路引入权重的考量;而 Hamilton 圈(每点恰一次)看似相近,却是 NP 完全的天堑——Dirac 与 Ore 给出可用的充分条件,旅行商问题则把「难」变成了产业。Dijkstra 算法与 Floyd 变体解决带权最短路,为导航与路由立下基石。
页型节奏:导引 → 讲义(概念 · 定理 · 证明 · 一步一图)→ 例题 → 习题 → 地图 · 小结 · 思想卡 · 挑战 · 实验
65导引

第三章 连通性与遍历:一笔画与周游导引:本章导引:从「能走到」到「能走遍」

★★★ 第二章问「连通的最小骨架」,本章问两个更动态的问题:拆散它有多难?走遍它有多难?

线一 · 割与流(p66–p69)。割点、桥与块分解给图做「体检」;Menger 定理是全章的理论心脏——「两点的分离规模 = 不相交路的条数」,其流量化身「最大流最小割」是运筹学的基石定理之一。

线二 · 遍历(p70–p77)。「每条边恰走一次」的 Euler 之路由奇点数完全刻画(握手引理的回流!),Hierholzer 算法线性时间找回路,中国邮路引入权;「每个点恰访一次」的 Hamilton 圈没有好用判据,Dirac/Ore 给出充分条件,TSP 把「难」变成产业;Dijkstra 与 Floyd 解决带权最短路。

收束(p78–p94)。例题四组(割点桥判定、Euler 手演、Dijkstra 演算、Menger 与块)、习题三组、地图、双小结、思想卡(局部规则与全局存在)、挑战(中国邮路完整求解)、实验(Hierholzer 与 Dijkstra 真跑)、速查、误读、札记、衔接。

本章最值得期待的对读:Euler 问题(多项式时间)与 Hamilton 问题(NP 完全)只差一个「边与点的对调」——而这对调,是复杂度世界的深渊。

第三章的两条线 第三章:图的「抗毁性」与「走遍性」 线一:割与流 割点·桥·块分解 Menger:分离的最小性 最大流最小割 线二:遍历 Euler:每边一次(易) Hamilton:每点一次(难) Dijkstra 最短路 分水岭 Euler 之易与 Hamilton 之难 是计算复杂度的第一堂现场课
图 3-1 抗毁性(拆多难)与遍历性(走多全)并行;「容易与极难」的分界线将贯穿全书。
66讲义

第三章 连通性与遍历:一笔画与周游3.1 割点、桥与块

★★ 网络的可靠性,从「哪些部件坏了会断网」问起。

定义。桥:删去后连通分支数增加的边。割点:删去后分支数增加(或使图退化)的顶点。块:极大无割点子图——单边(桥)也算一块,孤立点也是一块。

三条基础事实。其一,圈边不是桥(圈上任意一边可删保连通)——所以树的所有边都是桥:树是「全是单点故障」的图,MST 便宜但脆弱,工程上加冗余的动机即此。其二,两点相邻 ⟺ 它们同属一个块;块沿割点拼接,块-割点关联图是一棵树(块割树)——整张图被分解成「块串在割点上」的积木。其三,2-边连通(无桥)与2-点连通(无割点)是抗毁性的第一档:前者任两点有两条不相交通路(边意义),后者更强。

算法化(DFS 的第二次大显身手)。DFS 括号序之外再算一个 low[v]:v 的子树经回边「最高能爬到」的祖先时间戳。判据:非根 v 是割点 ⟺ 存在子树 low ≥ in[v](子树爬不上去,v 是唯一出口);边 uv 是桥 ⟺ low[v] > in[u](子树连回边都没有)。全部 O(V+E)——第三章实验真跑对拍。

割点、桥与块 割点、桥与块:图的「体检报告」 桥:删去即断的边 红边是桥(三角形的边都不是桥) 割点:删去即增分支的点 红点是割点(删后左右失联) 块(双连通分支):无割点的极大子图 整图沿割点「拆件」:块与割点交替成树(块割树) 判割点/桥:DFS 时间戳 + low 值(回边能爬多高)
图 3-2 桥与割点是「单点故障」的两种形态;块是无割点的极大单元,块割树记录拆件方式。
67讲义

第三章 连通性与遍历:一笔画与周游3.2 Menger 定理:分离的最小性

★★★★ 第一章的 κ ≤ λ ≤ δ 只是不等式,Menger 把它变成等式。

Menger 定理(边版本)。两点 s, t 之间边不相交路的最大条数 = 分离 s, t 所需删去的最小边数。
点版本。(s, t 不相邻)内部点不相交路的最大条数 = 最小点割集大小。

为什么震撼?「最多能并行修几条互不干扰的路」是一个 packing 问题,「拆散最少删多少」是一个 covering 问题——两者通常天差地别,Menger 说在图上它们相等。「分离的障碍 = 通路的容量」,这个对偶模式将统治本册的后半:最大流最小割(p68)、LP 对偶(远望)、甚至第五章 Hall 定理(婚配就是二部图上的 Menger!)。

n-连通的新语言。κ(G) ≥ n ⟺ 任两点间有 n 条内部不相交路。于是「2-连通」=「任何两点有两条无公共内点的路」——比第一章「无割点」的定义更可视。快拆快修的对偶也解释了 Whitney 链:点不相交路 ≤ 边不相交路 ≤ 任意路,所以 κ ≤ λ ≤ δ 的每个「≤」都是 Menger 的影子。

证明策略一瞥:点版本把每个点 v 劈成「入点 v− → 出点 v+」(内部容量 1 的边),点不相交变边不相交;边版本由最大流最小割定理直接给出(下页)——两条定理互为归约,一张底牌。

Menger 定理 Menger 定理(1927):分离与不相交的对偶 点版本:s, t 不相邻时, 最小点割集大小 = 内部不相交 s–t 路的最大条数 边版本:最小边割 = 边不相交 s–t 路条数 n-连通的含义 κ(G) ≥ n ⟺ 任意两点间 n 条内部不相交路 抗毁性的精确语言 证明工具 点版本归约到边版本 (点劈成入点/出点) 边版本即最大流最小割
图 3-3 「拆开要几个点」与「能并行修几条路」是同一个数的两副面孔——对偶思想的经典标本。
68讲义

第三章 连通性与遍历:一笔画与周游3.3 网络流一瞥:最大流最小割

★★★★ Menger 的流量版,也是运筹学第一定理。

流网络。有向图,每边容量 c(e) ≥ 0,源 s、汇 t。流 f 满足容量限制与「除 s, t 外流入 = 流出」;流值 = 汇处净流入。割:把 s 与 t 分开的边集,容量为权和。
最大流最小割定理。最大流值 = 最小割容量。

证明骨架(增广 + 停机判决)。「≤」方向一瞬:任何流的价值不超任何割(跨割的净流量 = 流值 ≤ 割容量)。「≥」方向:反复找增广路(残余网络里 s 到 t 的正容量路),沿路推流(反向边记「可退」);停机时残余网络 s 不可达 t,令 S = 残余中 s 可达点集,则跨 (S, S̄) 的边全部饱和、反向边全空——这个割的容量恰等于当前流值。两界夹出相等。∎(整数容量下每轮至少 +1,必终止。)

三笔遗产。① 对偶范式:primal 最大化、dual 最小化,障碍即答案——第五章 Hall 定理用二部图流一页重证;② 构造性:算法同时交出流与割,判决附赠证据;③ 复杂度谱系:Ford–Fulkerson 伪多项式,Edmonds–Karp O(VE2),Dinic O(V2E)——工程上 DINic 是常客。「最大流最小割」是本册第四次见到同一枚图章:Menger、Hall、切定理、LP 对偶——对偶思想是图论的母语。

最大流最小割 最大流最小割(Ford–Fulkerson, 1956) 流网络:有向图 + 容量 c(e) + 源 s + 汇 t 最大流 = s → t 的最大总运量 最小割 = 分离 s, t 的边集的最小总容量 定理:两者相等 增广路算法 找 s→t 剩余容量正的路 沿路推流,反向边可「退流」 整数容量 ⇒ 终止于整数流 割是流量天花板 任何流的值 ≤ 任何割的容量 相等时:流已最大、割已最小 (对偶同时取等)
图 3-4 管道的瓶颈在「最细的一刀」:增广路算法找到没有剩余容量的路时,那一刀就是最小割。
69讲义

第三章 连通性与遍历:一笔画与周游3.4 Euler 之路:一笔画的刻画

★★★ 绪论的七桥判决,现在升级成完整定理。

Euler 定理。连通多重图有 Euler 回路 ⟺ 每个顶点度数为偶;有 Euler 途径(开)⟺ 恰有 2 个奇度顶点(它们必须是途径的起终点)。

必要性。每次「经过」一个顶点消耗一进一出两条边;中途顶点的关联边被成对消耗,度必为偶。闭途径连端点也成对。奇点若存在,只能是起点与终点——至多 2 个。

充分性(数学归纳的妙用)。对边数归纳:全偶连通图任取一点出发乱走,直到回到起点(度全偶保证「进得来必出得去」,停机必在起点),得一个闭游走 W;删去 W 的边,剩下度仍全偶的小连通片;每个连通片有 Euler 回路(归纳假设);把小回路「插进」W 的相应顶点,拼成大回路。∎——这正是 Hierholzer 算法的灵魂(下页)。

七桥复盘:4 个奇点,既非 0 也非 2,无解——但多修一座桥(连两个奇点)即变 2 奇点,立刻有 Euler 途径。「加一条桥救活全城散步」是握手引理最实用的推论。

对照表:Euler(边遍历)= 奇点 0/2,多项式可解;Hamilton(点遍历)= 无判据,NP 完全。天堑见 p74。

Euler 之路的判据 Euler 之路:每条边恰好走一次 Euler 回路:闭的、遍历每条边恰一次 Euler 途径:开的版本 连通图有 Euler 回路 ⟺ 每点度全偶 有 Euler 途径 ⟺ 恰 2 个奇点 为什么是「度」? 途经 = 一进一出配对 中途点必须偶度 奇点只能在端点(至多 2 个) 七桥复盘 四块陆地 5,3,3,3 四个奇点 → 无 Euler 途径 握手引理的完美回流
图 3-5 「一进一出」的度数配对是 Euler 问题的全部:奇点个数 0 / 2 / 其余,分别对应回路 / 开途径 / 无解。
70讲义

第三章 连通性与遍历:一笔画与周游3.5 Hierholzer 算法与中国邮路

★★★ 上一页的归纳证明几乎就是伪代码,本章实验将真跑它。

算法骨架(栈版)。维护当前点 u 与栈:若 u 还有未用边,取一条 uv 标记已用、u ← v 入栈;否则把 u 弹出记录进答案(倒序输出即回路)。正确性:弹出时 u 已无未用边——它是某个「子回路完成」的时刻;栈的回溯恰实现了「插桩」。

复杂度精算。每条边恰好被标记一次、每点弹出一次,配合邻接表 + 边指针(记录「扫到哪条」),总时间 O(V + E)——又一个线性时间勋章,与 BFS/DFS 同殿。

延伸:中国邮路(管梅谷,1962)。边带权时,「每边至少走一次的最短闭游走」不必恰一次:奇点成对沿最短路「补走」。算法三步:① 找全部奇点;② 奇点间最小权完美匹配(第五章的匹配算法在此上班);③ 把匹配路径的边「复制」进图,全偶后跑 Hierholzer。「复制边」这一手,让不可达的完美变成可达的最优——挑战页将完整求解一个邮路实例。

应用速览:DNA 测序的片段拼接( reads 为边、重叠为点,找 Euler 途径)、路线规划、除雪车与洒水车的路线——「每边一次」的世界几乎都是 Euler 的,而「每点一次」的 Hamilton 是另一个故事(p74)。

Hierholzer 算法 Hierholzer 算法(1873):线性时间找 Euler 回路 ① 任选起点,沿未走边「贪走」直到回到起点(一个闭游走) ② 游走中有未用边的点?从它再出发贪走一个子回路 ③ 把子回路「插回」主回路(splice) ④ 重复至所有边用完 ⑤ 实现:栈 + 当前点指针,O(V + E) 插桩的数学 全偶度保证每个「未用边的点」都能走回自己
图 3-6 「乱走进回路,缺边处再插桩」:Euler 定理的充分性证明直接翻译成代码。
71讲义

第三章 连通性与遍历:一笔画与周游3.6 中国邮路:把完美换成最优

★★★ 带权的现实里,Euler 的「完美」常常不成立,退而求「最优」。

中国邮路问题(管梅谷,1962)。带权连通图上,求遍历每条边至少一次的最短闭游走。命名来自管梅谷的科研背景——邮递员送信要走过每条街。

解法三步(上图)。关键洞察是第二步:补走的最小代价 = 奇点间「最小权完美匹配」的补走方案——这是把一个遍历问题转译成匹配问题的漂亮一跳(匹配理论在第五章)。整数规划一瞥:邮路也可写成 LP,其线性松弛恰好整数(欧拉图的多面体性质),是组合优化的幸运案例。

「复制边」的哲学值得停一拍。Euler 要求「不重复」,现实允许「重复但要最省」——把硬约束软化为带惩罚的目标,这是整个运筹学的句式:TSP 不许重复(p74 的 NP 难),配送可以重复(货车、扫街车);转换的关键永远是「找出最小代价的软化方式」。第五章将看到镜像操作:匹配不够完美时,「最小增补」同样是最优解的形状。

历史脚注:管梅谷 1962 年的论文先发表,西方 1968 年经 Edmonds 引入才广为人知,「Chinese Postman」这个名称由 Alan Goldman 建议并沿用至今——运筹学史里罕见的中国原生问题名。

中国邮路三步走 中国邮路:把「完美」换成「最优」 第一步 找奇点(必偶数个) 例:4 个奇点 a, b, c, d 第二步 奇点对最短路匹配 最小化补走总权 (匹配算法:第五章) 第三步 把匹配路径上的边复制一份 → 全偶 → Hierholzer 补走的权 = 多付的路费;复制不改连通
图 3-7 奇点配对补走:让「每边恰一次」的 Euler 判据在带权世界里以「最小补走」达成。
72讲义

第三章 连通性与遍历:一笔画与周游3.7 Hamilton 圈:看似相近实则天堑

★★★★ 把 Euler 的要求改一个字——「每条边」换成「每个点」——世界的难度立刻翻转。

定义。Hamilton 路/圈:经过每个顶点恰一次的路/圈。Hamilton 图:含 Hamilton 圈的图。得名于 Hamilton 1857 年的十二面体「周游世界」玩具(比 Euler 的问题晚了 120 年,却更早成为玩具、更晚成为定理)。

为什么这么难?三条线索。其一,局部信息不够用:Euler 的判决只看每点的度(局部账本);Hamilton 却牵扯「全点的一次性安排」,任何局部账本都判不了一个全局配对。其二,必要条件松、充分条件弱:必要的有「无割点」「2-连通」「对任意 S 有分支数 ≤ |S|」(Toughness 一瞥);充分的总带着强假设(下页 Dirac/Ore)。其三,复杂度判决:判断 Hamilton 圈存在是 NP 完全问题——它是 Karp 1972 年 21 个 NP 完全问题之一,与 TSP、子集和同狱。

彼得森图再立功:3-正则、3-连通、顶点传递的「优等生」,却无 Hamilton 圈——一切「看起来该有」的直觉在此撞墙。反例库的第二件镇馆之宝。

本册把 Hamilton 命题一律写成「充分条件 + 反例」两栏:这是面对 NP 完全问题的成熟姿态。

Hamilton 圈的问题画像 Hamilton 圈:每个点恰访一次 定义 经过每个顶点恰一次的圈 1857 年 Hamilton 的 「周游世界」十二面体游戏 与 Euler 只差一个对调 残酷的事实 无好用刻画 「有 Hamilton 圈」NP 完全 必要条件:无割点 充分条件:见下页 一句话分野 边遍历:局部(度)判决;点遍历:全局(结构)纠缠
图 3-8 Euler 与 Hamilton 之差:把「每边一次」换成「每点一次」,难度从线性时间跳到 NP 完全。
73讲义

第三章 连通性与遍历:一笔画与周游3.8 Dirac 与 Ore:充分条件

★★★★ 第一章 1.15 节留的悬念(T7:δ ≥ n/2 ⇒ 直径 ≤ 2)现在结出正果。

Dirac 定理。n ≥ 3、δ(G) ≥ n/2,则 G 有 Hamilton 圈。
Ore 定理。若对一切不相邻的 u, v 有 d(u) + d(v) ≥ n,则 G 有 Hamilton 圈。

证明(Ore 版,Dirac 是特例)。取最长路 P = v1⋯vt。端点邻居全在 P 上。设 v1 的邻居为 vi 系列。关键一步:若存在 i 使 v1vi 是边且 vi−1vt 是边,则圈 v1vivi+1⋯vtvi−1⋯v1 形成。若无此 i,则 {d(v1) 个下标} 与 {d(vt) 个下标−1} 不相交,两者都在 {2..t} 里,故 d(v1) + d(vt) ≤ t − 1 < n——与 Ore 条件矛盾(P 之外无点时 t = n;P 之外有点时连通性可把圈外的点接进来延长 P,仍与最长矛盾)。∎

读法。① 这是「度强 ⇒ 结构好」的样板:全局连通结构由最贫者的度兜底;② Dirac 界 n/2 不能放宽:完全二部图 Kn/2−1, n/2+1 的 δ = n/2−1 无 Hamilton 圈(二部圈必偶数对半);③ 条件式思维:NP 难问题上,学者们的分工是「一层层减弱充分条件」——Bondy–Chvátal 的闭包理论把这类条件统一成「度闭包」,是本方向的集大成。

Dirac/Ore 定理与最长路论证 Dirac(1952)与 Ore(1960):度的充分条件 Dirac:n ≥ 3 且 δ(G) ≥ n/2 ⇒ 有 Hamilton 圈 Ore:对一切不相邻 u, v,d(u) + d(v) ≥ n ⇒ 有 Hamilton 圈 (Ore 蕴含 Dirac:δ ≥ n/2 时和 ≥ n) 证明核心(最长路) 最长路 v1​…vt​ 端点 v1​, vt​ 的邻居全在路上 d(v1​)+d(vt​) ≥ n ⇒ 有「跨接点」vi​ v1​ vi​+1…vt​ v1​ 成圈 收束 若圈未含全部点 连通性从圈外拉一点进来 延长最长路 → 矛盾 故圈即 Hamilton 圈 ∎
图 3-9 第一章的「最长路端点」招式升级:度数之和足够大时,最长路的端点必然「跨接」成圈。
74讲义

第三章 连通性与遍历:一笔画与周游3.9 旅行商问题与复杂度一瞥

★★★ Hamilton 的「难」最著名的化身是 TSP。

旅行商问题(TSP)。带权完全图上求最短 Hamilton 圈。判定版(「是否有 ≤ K 的路线」)是 NP 完全(Karp 1972 名单成员);度量版(权满足三角不等式)允许好近似。

精确侧。整数规划 + 分支定界 + 割平面(Concorde 求解器)已解到 85,900 点的最优(2006,pla85900 芯片布线实例)——NP 完全挡不住指数时间的精雕,只挡不住「所有大实例都快」。

近似侧的经典一笔:度量 TSP 的 2-近似——① 求 MST(第二章的 Kruskal 上班);② 沿 MST 做 DFS 周游(每边走两次,长 ≤ 2·MST ≤ 2·OPT,因 MST ≤ Hamilton 圈删一边);③ 抄近路(三角不等式保证不增)。「树先出场、圈随后收割」——本册第二章与第三章在此握手。欧氏版有 Christofides 1.5-近似(用到最小完美匹配,第五章预告)与近年 Karlin–Klein–Oveis Gharan 的 1.5−ε 突破。

复杂度的世界观(本册态度):P 与 NP 之间横着证据充足的天堑,但算法家的三件套——精确(指数但聪明)、近似(有保证的近)、启发式(实践强、无保证)——把天堑变成梯田。第四章起,本书不再回避「难」,而把「难度分级」作为地图的一部分。

TSP 的产业版图 TSP 与 NP 完全:难度的产业后果 TSP(旅行商) 带权完全图求最短 Hamilton 圈 精确解:整数规划/分支定界 大实例靠启发式(2-opt 等) 复杂度坐标 判定版 NP 完全(Karp 1972) 度量版有 2-近似(MST 妙用) 欧氏版有更优近似与 PTAS 工程态度 难 ≠ 不做:精确到几千点、近似到百万点皆成熟
图 3-10 NP 完全不等于束手无策:判定难、优化更难,但精确、近似、启发式三线并进。
75讲义

第三章 连通性与遍历:一笔画与周游3.10 Dijkstra 算法:最短路

★★★★ BFS 的加权升级版,本册第三个贪心算法。

Dijkstra 算法。非负权图,源 s。维护 dist[v](当前已知最短距)与已定集 S。每轮取未定点中 dist 最小的 u:它的 dist 即最终距离(锁定进 S);然后松弛 u 的所有出边。优先队列实现总复杂度 O(m log n)。
正确性(贪心判决)。锁定 u 时,任何 s→u 的路若经过 S 外的中转点 w,则 dist[w] ≥ dist[u](w 尚未锁定)且 w→u 还要非负追加——不可能更短。∎

三个注记。① 非负权是生死线:负权边会破坏上述判决(锁定 u 后可能经负边回抄更短路)——负权用 Bellman–Ford O(nm)(允许逐层松弛),有负圈则最短路无定义;② 全源最短路:以每点为源跑 n 次 Dijkstra 得 O(nm log n);Floyd–Warshall 用动态规划 O(n3) 一锅端(下页);③ 谱系:BFS(权 1)→ Prim(单步权)→ Dijkstra(累计权)——同一具「区域生长」骨架,关键字定义的三次进化,本册「容器决定性格」系列的完整闭环。

应用侧:导航(分层图 + 收缩点图工程化)、网络路由(OSPF 协议内核即 Dijkstra)、关节运动规划。1956 年 Dijkstra 在咖啡店陪未婚妻时二十分钟想出的算法,如今每天被调用万亿次。

Dijkstra 算法 Dijkstra(1959):带权最短路 ① 维护 dist[](到 s 的暂定最短距) ② 每轮取出 dist 最小的未定点 u(优先队列) ③ 松弛:dist[v] = min(dist[v], dist[u]+w(uv)) ④ 标记 u 已定;重复至全部定完 ⑤ O(m log n);非负权是铁前提 与 Prim 的血缘 同是「区域生长 + 优先队列」 关键字:累计距(Dijkstra)vs 单步权(Prim)
图 3-11 贪心再下一城:非负权下「当前最近的未定点」就是最终最短——波前定理的加权版。
76讲义

第三章 连通性与遍历:一笔画与周游3.11 Floyd 与负权:最短路的另一面

★★ Dijkstra 有两条边界:单源与非负权。两侧各有一件补丁。

Floyd–Warshall(1962)。设 dp[k][i][j] = 只许经 {1..k} 中转的 i–j 最短距。转移:dp[k][i][j] = min(dp[k−1][i][j], dp[k−1][i][k] + dp[k−1][k][j])——「经过 k,就拆成进 k 与出 k 两段」。滚动数组一维化后三重循环,O(n3)、码长五行,全源一次成型。
Bellman–Ford(1958)。对全体边松弛 n−1 轮:无负圈时任何最短路至多 n−1 条边,故收敛;第 n 轮仍有边可松弛 ⟺ 存在 s 可达的负圈。负圈的判决本身就是输出——套利检测(汇率圈)正是此用。

三个对读。① Floyd 的 dp 是「中转点集合递增」,Dijkstra 的贪心是「距离递增」——同题不同序;② Floyd 能处理负边(只要无负圈),因为它不依赖贪心判决;③ 复杂度上 Floyd O(n3) 对稠密图反而比 n 次 Dijkstra 的 O(nm log n) 稳(无堆开销)。算法选择从来不是单一维度的比较。

至此最短路三件套齐备。下一页进入例题实战:割点与桥的判定、Euler 回路手演、Dijkstra 逐步演算。

最短路的另一面 Floyd–Warshall 与负权:最短路的另一面 Floyd–Warshall dp[k][i][j]:经前 k 点中转 的最短 i–j 距 三重循环 O(n³) 全源一次成型 负权与负圈 Bellman–Ford:n−1 轮松弛 O(nm) 第 n 轮仍可松弛 ⇒ 负圈 负圈上「最短路」= −∞(无定义) 选择指南 点少边稠 → Floyd;单源 + 非负 → Dijkstra;负权 → Bellman–Ford
图 3-12 全源动态规划与负权警戒线:Floyd 的中转点枚举与 Bellman–Ford 的轮次判决。
77例题

第三章 连通性与遍历:一笔画与周游例题精讲:割点与桥的判定

★★ 例题 1(割点与桥的判定)。图:边集 {12, 23, 31, 34, 45, 56, 64, 47}。从 1 跑 DFS(邻居升序),判定全部割点与桥。

DFS 过程(in/out 与 low)。1(1)→2(2)→3(3)→回 1(边 31 是回边)→4(4)→5(5)→6(6)→回 4(64 回边)→7(7)。时间戳:in = {1:1, 2:2, 3:3, 4:4, 5:5, 6:6, 7:7};low 计算自叶向根:low(7)=in(7)=7?——7 无回边且无子,low(7) = 7;但它挂在 4 下:回溯时 low(4) = min(in4, low5, low6, low7) = min(4, 5, 6, 7) = 4;low(6) = min(in6, 回边 64) = min(6, 4) = 4;low(5) = 5;low(3) = min(3, 回边 31) = 1;low(2) = min(2, low3) = 1;low(1) = 1。

判据执行。① 桥:树边 uv 满足 low[v] > in[u]:检查树边 12(low2=1 ≤ in1)、23(low3=1 ≤ in2)、34(low4=4 = in3=3?4 > 3 ✓ 桥!)、45(low5=5 > in4=4 ✓ 桥!)、47(low7=7 > in4 ✓ 桥!)——桥 = {34, 45, 47}。② 割点:非根 v 存在子 low ≥ in[u](父 u):顶点 4(子 5: low5=5 ≥ in4=4 ✓)、顶点 5(子 6: low6=4 < in5?4 < 5 否;子 6 对 5 而言 low6 = 4 < 5,不判)——重算:6 的父是 5,low6=4 < in5=5,6 的子树能经 64 爬过 5,故 5 非割点;顶点 4 有子 5(low5=5 ≥ 4 ✓)与子 7(low7 ≥ 4 ✓)——割点 = {4}。根 1:子树数(DFS 树)= 1 个,非割点。

复盘。① 判据机械执行即可,但 low 的「回边取 in、树边取 low」别混;② 结构核对:3-三角形(123)与 4-三角形(456)由桥 34 相连,4 再挂桥 47——割点唯一是 4 ✓;③ 复杂度 O(V+E):DFS 一遍顺带全判——第三章实验将真跑此例。
78例题

第三章 连通性与遍历:一笔画与周游例题精讲:Euler 回路的手演与增补

★★ 例题 2(Euler 回路的手演与算法对拍)。图 G:点 {1..6},边 {12, 23, 31, 34, 45, 56, 64, 25, 16}。判断并构造 Euler 回路。

第一步:度表与判决。d(1)=3(12,31,16)、d(2)=3(12,23,25)、d(3)=2、d(4)=3(34,45,64)、d(5)=3(45,56,25)、d(6)=2。奇点 4 个(1, 2, 4, 5)——无 Euler 回路也无 Euler 途径(需 0 或 2 个奇点)。

第二步:最小增补。奇点配对:{1,2} 与 {4,5} 各加一虚边(或复制路径)。最省的补法:复制边 12 与边 45(各权 1,若权皆 1)。增补后全偶,跑 Hierholzer。

第三步:Hierholzer 手演(增补图)。从 1 出发贪走:1–2–5–6–4–3–1(用到 12,25,56,64,43,31),回到 1。未用边:12′, 45′, 45?——45 已用、45′ 复制品未用;12′ 未用。未用边的点:1(有 12′)、2(有 12′)、4、5(有 45′)。从 1 再走:1–2(12′)回 2 无未用边?2 的边 23、25、12 全用——子回路 1–2 退化为「边」;插入主回路顶点 1 处:1–2–(2 的原路已含)……插桩后总回路:1–2–1–2–5–4–5–6–4–3–1(检验:边 12 与 12′ 都在,45 与 45′ 都在;每边恰一次 ✓;回到 1 ✓)。

复盘。① 判决先行(奇点表),构造殿后——顺序不可颠倒;② 「复制边」使原图最短闭游走 = 原长 + 补走权(此例 9 + 2 = 11),这正是中国邮路的雏形;③ Hierholzer 的插桩步骤在手演里表现为「半成品回路里找未用边的点再深入」——机器实现(下章实验)与手演逐行对应。
79例题

第三章 连通性与遍历:一笔画与周游例题精讲:Dijkstra 逐步演算

★★★ 例题 3(Dijkstra 逐步演算)。5 点带权有向图:边 12:4, 13:1, 32:2, 24:5, 35:7, 25:8, 43:−?(无负权), 45:3, 15:∞?(无边)。求 1 到各点最短路。

初始化:dist = {1:0, 2:∞, 3:∞, 4:∞, 5:∞},S = ∅。

轮 1:取 u=1(0)。松弛:dist2 = 4,dist3 = 1。S = {1}。

轮 2:取 u=3(1)。松弛:dist2 = min(4, 1+2) = 3(经 3 绕更短!),dist5 = 1+7 = 8。S = {1,3}。

轮 3:取 u=2(3)。松弛:dist4 = 3+5 = 8,dist5 = min(8, 3+8) = 8(并列)。S = {1,3,2}。

轮 4:取 u=4(8)。松弛:dist5 = min(8, 8+3) = 8(不变)。S = {1,3,2,4}。

轮 5:取 u=5(8)。完成。最终:dist = {1:0, 2:3, 3:1, 4:8, 5:8};最短路树:1→3→2→{4,5}。

三处值得停顿。① 轮 2 的 dist2 从 4 被「降级」到 3——Dijkstra 的锁定机制保证锁定值永不变,但未锁定值可以反复降低(优先队列 decrease-key);② 最短路树:dist 的「最后一次松弛」给出前驱,回收成树——n−1 条边、覆盖全部可达点(恰是一棵生成树!第二章的骨架以新身份回归);③ 若加入负边 43:−10,轮 4 将把 dist3 拉低——但 3 已锁定,算法不会回头,这就是非负权铁律的失效现场(负权须 Bellman–Ford)。

手演纪律。表格三列(未定点 dist、锁定集 S、前驱)每轮一行;「谁被锁定」用加粗标记——下一页习题课让自己当一回优先队列。
80例题

第三章 连通性与遍历:一笔画与周游例题精讲:Menger 与块分解演算

★★★ 例题 4(Menger 与块分解演算)。对 8 点图:① 找全部割点与桥;② 写出块分解与块割树;③ 用 Menger 验证 κ(1,8) 与 λ(1,8)。

① 逐点体检。删 1:其余仍连通(2 仍经 3, 4 达各方)——非割点;删 2:1 只经 4 连外?1 的邻居是 2 和 4,4 还在——1 经 4–3–5 连通,但检查整体:{1,4,3} 连着 5,通——2 不是割点(它与 3, 4 成三角形,三角形无割点);删 3:5 的唯一入口没了?5 的邻居是 3, 6, 7——经 6, 7 仍通!重看:3 删后左块 {1,2,4} 经哪条边连 5?无(边 3–5 是唯一跨接)——3 是割点。同理删 5:{6,7,8} 的唯一入口(5–6, 5–7)全断——5 是割点。桥:每条边做删边实验——三角形 {2,3,4} 内的边删后仍可绕行,全图唯一的桥不存在:3–5?删后 {1,2,3,4} 与 {5,6,7,8} 断开——3–5 是桥!同样 5–6、5–7 各自是 {6,8}/{7,8} 与外界的两条边……删 5–6:6 仍经 8–7–5 通;删 5–7:7 经 8–6–5 通——非桥。结论:割点 {3, 5},桥 {3–5}。

② 块分解。极大无割点子图:B1 = {1,2,3,4}(三角形两次叠连,无割点),B2 = {3,5}(桥两端,单边成块),B3 = {5,6,7,8}(四边形加两对角?不——是「5 连 6、7,6–8、7–8」的双三角共边 6–8?6–7 无边:是两个三角形共享边 6–8?检查:边 5–6, 5–7, 6–8, 7–8——这是 4 圈 5-6-8-7-5,无弦,无割点 ✓)。块割树:B1 —3— B2 —5— B3,割点 3、5 交替串联——线性骨架,与图 3-13 下注一致。

③ Menger 验证。1 到 8 的内部不相交路:1–2–3–5–6–8 与 1–4–3?相交于 3——不行。找两条点不相交的:1–2–4–3–5–7–8 与 1–?1 的邻居只有 2, 4,两条路必须分别走 2 和 4;到 5 汇合前必经割点 3(唯一跨接)——任何两条路都共享 3,故内部不相交路最多 1 条,而 1–2–3–5–6–8 本身存在 ⇒ κ(1,8) = 1。边版本:1–2–3–5–6–8 与 1–4–3–5–7–8 边不相交(3–5 只能被一条用?两条都要过 3–5!)——重数:3–5 是单边,边不相交路最多 1 条 ⇒ λ(1,8) = 1。Menger 的判决:割点 3(或桥 3–5)正是分离 1 与 8 的最小障碍,等式严丝合缝。

方法复盘。割点判定别靠目测——「删一点、验连通」是朴素但必对的动力;块分解先用「三角形无割点」圈定安全区;Menger 验证时先找路(packing)、再找割(covering),两边夹逼出同一个数。下一页习题课把体检流程交给出。
例题 4 的 8 点图 例题 4 用图:8 点 10 边 1 2 3 4 5 6 7 8 红点 2, 3, 5 是割点;块:{1234}、{35}、{5678}(沿割点串成块割树)
图 3-13 判割点要「删点做实验」:删 2 后 {1} 失联,删 3 后左右断开,删 5 后 {6,7,8} 落单——三个割点、三个块。
81习题

第三章 连通性与遍历:一笔画与周游习题课:连通性与割

★★ 习题课(一):连通性与割。围绕割点、桥、块与 Menger,五题全部可手演。

S1.证明:树中每条边都是桥、每个度数 ≥ 2 的点都是割点、孤立边端点(度 1)不是割点。树 = 全桥图;删内部点后其分支各自散开。

S2.例题 4 的 8 点图,若给 6、7 之间加一条边,割点与块如何变化?块割树长什么样?6–7 使 {5,6,7,8} 仍是单块(K4 减边仍 2-连通);割点缩为 {3, 5},块割树不变——加边在块内部不改变分解。

S3.证明:任何连通图都存在两个点,删去其中任一者图仍连通(除非图是完全图 K2 以下)。取直径路的两个端点:删直径端点不破坏连通——双连通图的「两个安全点」定理,面试经典。

S4.κ(G) = 1 而 λ(G) = 2 的图存在吗?造一个最小例。两个三角形共享一个点:删公共点图断(κ=1),但任何一条边的删除都不断(λ=2)——Whitney 链中严格不等号的最小标本。

S5.用 Menger 语言重述「朋友的朋友」:一个社交网络里,任意两人若总有两层不同的共同熟人通道(两条内部不相交路),则「拆散」他们至少要同时移除几个人?κ ≥ 2 ⟺ 最小点割 ≥ 2——2-连通社交圈无「关键人物」。

自评线。S1 复习树的脆弱性;S2 练块分解的稳定性直觉;S3 是存在性论证的微型训练;S4 是反例构造(图论的基本功);S5 是建模翻译。五题全对,割与流一侧通关。
82习题

第三章 连通性与遍历:一笔画与周游习题课:Euler、Hamilton 与遍历

★★ 习题课(二):Euler、Hamilton 与遍历。围绕一笔画、周游与最短路,五题手演。

S1.完全图 K5 与 K6:各有多少奇点?哪个有 Euler 回路?K5 各点度 4(全偶)——有;K6 各点度 5(全奇)——六个奇点,连途径都没有。奇点个数的奇偶由握手引理锁定为偶数。

S2.彼得森图满足 Dirac 条件吗?它有 Hamilton 圈吗?这说明 Dirac 定理是什么类型的命题?n=10, δ=3 < n/2=5——不满足条件;也无 Hamilton 圈。定理是「条件⇒结论」的单向蕴含,条件不满足时结论可真可假——充分条件的正确读法。

S3.证明:若图有 Hamilton 途径,则对任意非空子集 S,去掉 S 后分支数 ≤ |S| + 1。圈去 k 点最多碎成 k 段;途径版本留一格余量。这是 Hamilton 的必要条件——彼得森图正是用它毙掉的(S 取 5 个独立点,得 5 > 3+1?)自己把数字算对。

S4.带权图中把所有边权加 1,最短路会变吗?Euler 型问题(邮路)呢?最短路:会变(多的段数被加权惩罚);中国邮路:奇点配对结构不变,但增量重新洗牌——「平移不变」对不同问题性质不同,出题人最爱在此设坑。

S5.一个「走遍所有走廊」的保洁机器人问题:楼道图为树。何时能回到出发点?树全偶度 ⟺ 只有点度为偶 ⟺ 树至少 2 度……事实上只有平凡情形(无树有 Euler 回路,因树叶度 1)——机器人必须重复走边,重复量 = 2×(树边),这正是中国邮路在树上的平凡解。

自评线。S1 度数账目;S2 反例意识;S3 必要条件的证明与使用;S4 对「权」的敏感性;S5 建模 + 平凡解的坦然。五题全对,遍历一侧通关。
83地图

第三章 连通性与遍历:一笔画与周游本章地图:连通性与遍历的依赖结构

★★ 本章地图:三块结构、两处深水。

依赖主线。割与流一节(3.1–3.3)只需要第一章的连通度与 DFS;一笔画一节(3.4–3.6)的判据回流到握手引理(第一章第一定理)——全册最老的概念在这里结出最新的果;周游与短路(3.7–3.11)向前接入第六章的谱方法与复杂度。Menger(3.2)是理论心脏:它把 κ ≤ λ ≤ δ 变成等式,把第五章的 Hall 定理预演为「二部图上的流」。

两处深水,跳过不影响主线:其一,最大流最小割的证明骨架(p68)——想完整吃透需要一点归纳构造的耐心,但「增广 + 停机判决」的两界夹逼值得读三遍;其二,中国邮路的奇点配对(p71)——它是最早的「中国贡献」命名定理,其 T-join 技术通向组合优化的腹地。

与前后章的接口。第一章的 BFS/DFS 在本章以「工具人」身份回归(块分解、Hierholzer 全靠它们);第四章平面图将用 Euler 公式 V − E + F = 2 与本章无关的另一个「Euler」相认;第六章邻接矩阵谱会解释 Dijkstra 为什么不能处理负权(负圈 → 无穷振荡)。

第三章知识地图 第三章地图:连通性与遍历 割与流 割点/桥/块 3.1 Menger 3.2 最大流最小割 3.3 一笔画 Euler 判据 3.4 Hierholzer 3.5 中国邮路 3.6 周游与短路 Hamilton 3.7 Dirac/Ore 3.8 TSP 3.9 Dijkstra 3.10 / Floyd 3.11 两条主线交汇于「对偶」:割是路的障碍 分水岭:Euler 多项式 vs Hamilton NP 完全
图 3-14 割线(理论心脏 Menger)与遍历线(判决 Euler/Hamilton)各自成章,在「对偶」与「复杂度分水岭」处汇流。
84小结

第三章 连通性与遍历:一笔画与周游小结:连通的语言与遍历的判决

★★ 第三章小结(上):连通的语言与遍历的判决。

概念清单(割侧)。桥(删边即断)、割点(删点即断)、块(极大无割点子图)与块割树;κ(点连通度)、λ(边连通度)、δ(最小度),Whitney 链 κ ≤ λ ≤ δ;Menger 定理(分离规模 = 不相交路条数)与流量化身最大流最小割。

概念清单(遍历侧)。Euler 回路/途径(度数全偶 / 恰两奇点)——判据完全;Hierholzer 算法(O(m) 拼圈成路);中国邮路(奇点最短配对 + 欧拉化);Hamilton 圈(无好判据);Dirac/Ore(充分条件:δ ≥ n/2 / 度数和 ≥ n−1);TSP(NP 完全);Dijkstra(非负权单源最短路,贪心锁定);Floyd(全源 O(n3),可容负权不容负圈)。

定理的「等式化」。第一章的 κ ≤ λ ≤ δ 是不等式链,Menger 把每一环都改写成等式:κ(s,t) = 内部不相交路数,λ(s,t) = 边不相交路数。不等式说「受限」,等式说「对偶」——后者才是结构性的认知。同样地,「最大流 = 最小割」把「运多少」与「卡在哪」焊成一个数。

证明技术清单。① 度数奇偶(Euler 判据:必要 + 构造充分);② 两界夹逼(最大流最小割:≤ 平凡、≥ 靠增广停机);③ 反例与必要条件(Hamilton 的分支不等式);④ 贪心判决(Dijkstra 锁定的正确性归纳)。四个技术将分别在第四、五、六章再度登场。

一句话记住第三章:割的多寡 = 路的多寡(Menger);边好走点难约(Euler 易而 Hamilton 难);短路的贪心只在非负权上成立。

85思想卡

第三章 连通性与遍历:一笔画与周游思想卡:容易与极难——边与点的对调

★★★ 思想卡:容易与极难——边与点的对调。

把「一笔画」的要求从每条边恰好一次改成每个点恰好一次,只动了两个字,问题的计算性格却从「本科习题」跃迁为「千禧悬案的前哨」。这不是孤例:

同款悬崖还有很多。线性规划多项式可解,整数规划 NP 完全——只加「取整」二字;2-SAT 线性时间,3-SAT NP 完全——只把子句从两个文字加到三个;最短路有多项式算法,最长路是 NP 完全——只把 min 换成 max。「容易」与「极难」之间常常没有渐变,只有一道悬崖——P vs NP 问的正是:悬崖是真实的,还是我们的眼睛还没找到上山的路。

为什么 Euler 易?因为「边」配对是局部的:一个点的进出现场即可核销(度数的奇偶),局部核销拼起来就是全局解——Hierholzer 算法把局部圈缝合成大回路,从不回头。为什么 Hamilton 难?因为「点」的选择是全局的:在第 k 步选错点,要到很多步之后才暴露恶果,而局部信息无法排除恶果的累积——分支必要条件只能毙掉个别图,无法给出好判据。

思想的迁移。识别一个问题的「局部可核销性」是判断其难度的第一直觉:带权最短路的 Dijkstra 之所以是贪心,因为「锁定最近点」这一步局部安全(非负权保证不会翻案);TSP 之所以难,因为任何前缀的选择都无法局部核销。本卡给未来所有章节一个透镜:先问「哪里核销、何时翻案」。

86挑战

第三章 连通性与遍历:一笔画与周游挑战:中国邮路的完整求解

★★★★ 挑战:中国邮路的完整求解。把 p71 的理论走成一个完整数字答案——这是本章含金量最高的手演。

题目。街道图 6 点 9 边(无向,单位长):圈 A:1-2-3-1;圈 B:3-4-5-3;连桥 2-4、3-6、5-6。邮递员从 1 出发走遍每条街再回 1,求最短总长与方案。

第一步:度数体检。d(1)=2, d(2)=3, d(3)=5, d(4)=3, d(5)=3, d(6)=3——奇点:2, 3, 4, 5, 6 共五个?握手引理抗议:奇点必偶数个。重数:d(3) 关联 2,1,4,5,6 = 5 ✓;d(6) 关联 3, 5 = 2(偶!)。修正:奇点为 2, 3, 4, 5 共四个。(教训:先数度、再下笔——错账的邮路全盘作废。)

第二步:奇点间最短距离表(图上跑 Dijkstra 或目测):d(2,3)=1, d(2,4)=1, d(3,4)=1, d(2,5)=2(2-3-5 或 2-4-5), d(3,5)=1, d(4,5)=1。

第三步:最小配对。三种配对方案:(2,3)+(4,5):1+1=2;(2,4)+(3,5):1+1=2;(2,5)+(3,4):2+1=3。最优 2——两方案并列(配对多解是常态,总长才是唯一目标)。

第四步:欧拉化。方案一:重复边 2-3 与 4-5。新度:d(2)=4, d(3)=6, d(4)=4, d(5)=4,全偶 ✓。总长 = 原边数 9 + 重复 2 = 11。

第五步:Hierholzer 提回路。在加倍图上找 Euler 回路(一条合法答案):1-2-3-1 + 3-4-3(重复边)+ 4-5-4(重复边)+ 5-6-3-2(重复边 2-3)+ … 拼接成 1-2-3-4-3-4-5-4-5-6-3-2-1?验边:每条原边恰一次、重复边 2-3 与 4-5 各两次 ✓,总长 12+重复核验:走了 11 段。 p87 的 Hierholzer 代码在加倍图上跑一遍,把程序给出的回路与手工拼接对拍。

挑战的余味。五步流程(体检 → 距离表 → 配对 → 欧拉化 → 提回路)是「判据 + 算法」双件套的完整实战;它也是运筹学「先刻画结构、再调用算法」方法论的最小标本。
87实验

第三章 连通性与遍历:一笔画与周游实验:Hierholzer 与 Dijkstra 真跑——邮路与导航

★★★ 把本章两个算法真跑一遍:Hierholzer 在 6 点图上提 Euler 回路;Dijkstra 复现 p79 例题的带权图,与手算逐项对拍。

import heapq

def hierholzer(edges):
    adj = {}
    for u, v in edges:
        adj.setdefault(u, []).append(v)
        adj.setdefault(v, []).append(u)
    start = min(adj)
    stack, circuit = [start], []
    while stack:
        u = stack[-1]
        if adj.get(u):
            v = adj[u].pop()
            adj[v].remove(u)
            stack.append(v)
        else:
            circuit.append(stack.pop())
    return circuit[::-1]

E = [(1,2),(2,3),(3,1),(2,4),(4,5),(5,6),(6,2)]
print("Euler 回路:", " -> ".join(map(str, hierholzer(E))))
deg = {}
for u, v in E:
    deg[u] = deg.get(u, 0) + 1; deg[v] = deg.get(v, 0) + 1
print("度数表:", dict(sorted(deg.items())))

def dijkstra(n, wedges, s):
    adj = [[] for _ in range(n + 1)]
    for u, v, w in wedges:
        adj[u].append((v, w))
    dist = [None] * (n + 1); dist[s] = 0
    pq = [(0, s)]
    while pq:
        d, u = heapq.heappop(pq)
        if dist[u] != d: continue
        for v, w in adj[u]:
            nd = d + w
            if dist[v] is None or nd < dist[v]:
                dist[v] = nd; heapq.heappush(pq, (nd, v))
    return dist[1:]

W = [(1,2,4),(1,3,1),(3,2,2),(2,4,5),(3,5,7),(2,5,8),(4,5,3)]
print("Dijkstra dist from 1:", dijkstra(5, W, 1))

实跑输出(与手算逐项对拍):

Euler 回路: 1 -> 3 -> 2 -> 6 -> 5 -> 4 -> 2 -> 1
度数表: {1: 2, 2: 4, 3: 2, 4: 2, 5: 2, 6: 2}
Dijkstra dist from 1: [0, 3, 1, 8, 8]
对拍读法。① 6 点图全偶度(1,3,4,5,6 度 2、点 2 度 4),Hierholzer 交出 8 步回路——7 条边恰各一次,闭合回 1,栈缝合逻辑可见:主圈 1-3-2-1 与支圈 2-6-5-4-2 在点 2 处缝合;② Dijkstra 输出 [0, 3, 1, 8, 8] 与 p79 手算逐位一致——包括「经 3 绕行把 dist2 从 4 降到 3」的关键松弛;③ 过期条目检查(dist[u] != d 跳过)是优先队列实现的标配——没有它,重复松弛会污染结果。两个 O(m)/O(m log n) 的算法,几十行 Python 全部装下。
88速查

第三章 连通性与遍历:一笔画与周游速查:第三章概念与定理

★★ 速查:第三章概念与定理。考前一页纸,逐条过。

对象/定理陈述(速记)备注
桥 / 割点删去即断的边 / 点圈边非桥;三角形无割点
块极大无割点子图块割树:块与割点交替成树
Whitney 链κ ≤ λ ≤ δMenger 使每环成等式
Menger 定理分离最小集 = 不相交路最大数点/边两版本;对偶标本
最大流最小割最大流值 = 最小割容量Ford–Fulkerson;增广停机
Euler 判据全偶度 ⟺ 回路;恰 2 奇点 ⟺ 开途径握手引理回流
Hierholzer局部圈缝合,O(m)栈实现;先找支圈再缝主圈
中国邮路奇点最短配对 + 重复边欧拉化1962 管梅谷;T-join 鼻祖
Dirac / Oreδ ≥ n/2;不相邻度和 ≥ n−1Hamilton 的充分条件
Hamilton 必要条件去 S 后分支数 ≤ |S|(圈版)毙掉彼得森图的尺子
TSPNP 完全;2 近似 = MST + 回抄复杂度第一现场
Dijkstra非负权单源最短 O(m log n)贪心锁定:dist 永不翻案
Floyd–Warshall全源 O(n3),DP 中转点枚举容负权、不容负圈

易忘三则。割点判定看子树 low(low ≥ in 则割);块割树中单边也是块;「负权 ≠ 无解,负圈才无解」。

89误读

第三章 连通性与遍历:一笔画与周游常见误读:连通性与遍历的四个陷阱

★★ 常见误读:连通性与遍历的四个陷阱。

陷阱一:「Euler 途径 ⟹ 存在 Euler 回路去掉一段」。错。恰两个奇点的图有开途径而无回路(如七桥若补一桥即成),回路要求全偶度——开与闭之间隔着奇点配对,不是「走远一点再回来」能补的。

陷阱二:「Dirac 条件不满足就一定没有 Hamilton 圈」。错得最贵。Dirac/Ore 是充分条件;圈 Cn 本身 δ = 2 < n/2 却有 Hamilton 圈。充分条件的正确用法是「够格就断言,不够格就闭嘴」——判定 Hamilton 的一般问题至今没有好刻画。

陷阱三:「Dijkstra 加个负权边顶多结果略差」。大错。负权直接破坏贪心锁定的正确性归纳——锁定的点可能被负边「翻案」,且不是「略差」而是系统性错误。负权图用 Bellman–Ford(允许逐层松弛),负圈则最短路根本无定义。工程教训:用错工具不是降级,是失效。

陷阱四:「最大流最小割里的『割』是删边集合」。不准。割是把 s 与 t 分开的边集(跨某个点划分 S | S̄ 的所有出边),不是任意断集;最小割在容量语言下比较,而 λ(边连通度)在计数语言下比较——单位权图时两者相认,带容量时是推广。

防坑纪律。凡「充分条件」必自问「反向是否成立」;凡「贪心」必自问「锁定会不会翻案」;凡「奇偶账」先过握手引理审计。
90例题

第三章 连通性与遍历:一笔画与周游例题精讲:Floyd–Warshall 手演与最短路树

★★★ 例题 5(Floyd–Warshall 手演与最短路树)。仍用 p79 的 5 点带权有向图(边 12:4, 13:1, 32:2, 24:5, 35:7, 25:8, 45:3),用 Floyd 复算并检查与 Dijkstra 的一致性。

初始化 D(0):对角 0,直接边填权,无边填 ∞:

D(0)12345
1041∞8
2∞0∞58
3∞2079
4∞∞∞03
5∞∞∞∞0

中转 3(k=3):D[1][2] = min(4, 1+2) = 3(降级!);D[1][4] = min(∞, 1+7) = 8;D[1][5] 已 8 不变。中转 2(k=2):D[3][4] = min(7, 2+5) = 7 不变;D[3][5] = min(9, 2+8) = 9 不变?再经 4:等 k=4 轮。中转 4(k=4):D[1][5] = min(8, 8+3) = 8;D[3][5] = min(9, 7+3) = 9(10 更大)不变;D[2][5] = min(8, 5+3) = 8 不变。中转 5(k=5):无改善。

终表:1 行 = [0, 3, 1, 8, 8]——与 Dijkstra 逐位一致;另赠全源:2 行 [∞,0,∞,5,8],3 行 [∞,2,0,7,9],4 行 [∞,∞,∞,0,3],5 行 [∞,∞,∞,∞,0]。全源共算出 Dijkstra 要跑 5 次的信息。

最短路树检查。由「最后一次中转」回溯前驱:dist2 的最后改善在 k=3(经 3)→ pred(2)=3;dist4 经 2 → pred(4)=2;dist5 的 8 初值即直接边 1→5?但树版应取 dist5 = dist4+3?两者同为 8——并列时前驱不唯一,最短路树也不唯一(这是最小生成树「同一权多解」的翻版)。取 pred(5)=1 或 4 均合法;n−1 = 4 条前驱边恰构成生成树(第二章骨架的回归)。

对读一句。Dijkstra 是「一个源深挖」,Floyd 是「所有源平铺」;前者贪心、后者动态规划——同一张图,两种时间观。下一页习题课让在最短路的世界里自己开路。
91习题

第三章 连通性与遍历:一笔画与周游习题课:最短路实战

★★ 习题课(三):最短路实战。围绕 Dijkstra、Floyd 与建模,五题手演。

S1.把 p79 例题图的边 13:1 改为 13:−2(其余不变),Dijkstra 的哪一步开始出错?正确答案是什么?轮 2 锁定 3 后,1→3→2 = 0 < 4 会翻案——锁定值被破坏;Bellman–Ford 给 dist2 = 0, dist4 = 5, dist5 = 8。

S2.证明:Dijkstra 算法选出的边(每个非源点的「最后松弛前驱边」)构成一棵以源为根的生成树(在源可达子图上)。每点恰一条前驱边、无环(dist 严格递减沿边回溯)。

S3.无权图上跑 Dijkstra(全权 1)与 BFS 结果一致吗?复杂度呢?一致;但 Dijkstra 用优先队列 O(m log n) 反而慢——权越简单,专用算法越快,这是「容器决定性格」的算法版。

S4.「换乘最少」的地铁导航(站为点、线路为边权)该用什么模型?若改为「时间最短且等车时间不计」呢?前者 BFS(权 1);后者带权 Dijkstra;若换乘本身有代价——把「线路上车状态」并入顶点做状态图(分层图),这是导航系统的标准手法。

S5.Floyd 的 k 循环为什么必须在最外层?把 k 放内层会怎样?D(k) 的定义是「只许经前 k 个点中转」——归纳的地基;k 在内层则中途用了未授权中转点,归纳证明失效(实践上多数图仍对,但证明不再成立——算法正确性不能靠运气)。

自评线。S1 负权失效现场;S2 最短路树结构;S3 算法谱系意识;S4 分层图建模;S5 DP 归纳秩序。五题全对,最短路一侧通关。
92小结

第三章 连通性与遍历:一笔画与周游小结:算法对读——同一骨架的三种性格

★★ 第三章小结(下):算法对读——同一骨架的三种性格。

「区域生长」统一视角。BFS、Prim、Dijkstra 是同一骨架的三个实例:维护「已定区域」,每轮从边界挑一个「最优新点」纳入。三者的差别只在「最优」的定义——BFS 取层数最少(队列),Prim 取单边权最小(优先队列),Dijkstra 取累计距离最短(优先队列 + 松弛)。一个骨架、三种「容器决定性格」,本书的母题在此完成第三次变奏。

两种时间观。Dijkstra 是「单源深挖」:一次只回答一个起点,但沿途可停(early exit);Floyd 是「全源平铺」:三重循环一锅端出所有点对。n 大 m 稀疏时前者占优(n 次 Dijkstra = O(nm log n)),稠密或多源查询时后者占优(O(n3) 换全部答案)。没有更好的算法,只有更合身的算法。

贪心与 DP 的分野。Dijkstra 的贪心依赖「非负权 ⇒ 锁定不翻案」;Floyd 的 DP 依赖「中转点授权有序 ⇒ 归纳地基」。同一个最短路问题,两种范式各自成立、互不覆盖——识别问题适配哪种范式,比多背十个算法更值钱。

复杂度的两次露面。本章 TSP 把 Hamilton 的「难」变现成产业问题(NP 完全 + 2 近似保底);P vs NP 的正式舞台在全书余韵处,但「Euler 易而 Hamilton 难」这堂现场课已经把悬崖踩在脚下。

一句话记住算法侧:生长骨架三兄弟(BFS/Prim/Dijkstra),权性定生死(1/单步/累计);单源贪心、全源 DP;负权找 Bellman,负圈无定义。

93格物札记

第三章 连通性与遍历:一笔画与周游格物札记:从七桥到中国邮路:一个问题的两百年

★★ 格物札记:从七桥到中国邮路——一个问题的两百年。

1736,柯尼斯堡。欧拉判决「不存在」:四块陆地奇点太多。问题的名字叫「位置几何」, answers 用的语言叫「度」——它杀死了问题的几何外衣,只留下连接的骨架。

1962,山东曲阜。管梅谷在《数学学报》发表《奇偶点图上作业法》:邮递员要走遍所有街道,走不动就重复走,但要重复得最省。问题从「可能不可能」升级为「最优怎么走」——从判定到优化,是应用数学的经典一跃。国际上由此得名「Chinese Postman Problem」, alan Goldman(美国 NBS)1965 年在审稿中首用此名——一个以提出者国籍命名的问题,至今仍是最优化文献中的惯例。

问题的谱系。中国邮路是「T-join」技术的最小标本:给定奇点集 T,找最短的「边集 F 使 T 中各点在 (V, F) 中度数为奇」——奇点配对的最短化。这条线通向 Edmonds 的匹配算法(第五章 Blossom 的远亲)、通向 STEJ(斯坦纳树)的近似、也通向「欧拉化」这一通用技巧:凡是需要「每边都走」的场景(扫地机器人、DNA 测序的读段拼接、道路除雪),先把度数配平,再交 Euler。

判决→优化→算法→工程。七桥的两百年走完了一个完整的闭环:欧拉给「判决」,管梅谷给「优化」,Hierholzer 给「算法」,今天的导航与机器人给「工程」。一条学术链最动人的地方在于:每一环都以为自己在解决一个小问题,回头一看,链已经从东普鲁士延伸到每个人的手机里。

94讲义

第三章 连通性与遍历:一笔画与周游第四章预告:画在纸上的约束

★★★ 第三章我们问「连不连通、走不走得遍」,从没关心图画在纸上长什么样。第四章把「画」本身变成研究对象:什么样的图能不交叉地画在平面上(平面性)?画好之后,给相邻的点涂不同颜色,最少要几种(着色)?

为什么是「约束」?平面性是刚性极强的结构假设:Euler 公式 V − E + F = 2 立刻压出 E ≤ 3V − 6 的边数天花板(第一章的 δ 与平均度全要重新审度),并逼出两个「禁手」——K5 与 K3,3 是不可平面化的最小障碍,Kuratowski 定理说它们是仅有的两种病根。与此同时,电路布线、地铁图设计、芯片布局都在为「不许交叉」付出真金白银——平面性不是几何洁癖,是工程约束。

着色是划分的化身。「最少颜色数」χ(G) 把「相邻不同色」翻译成「按颜色划分独立集」:考试排期(冲突课程不同时段)、寄存器分配(冲突变量不同寄存器)、频率规划(相邻基站不同频点)——全是着色。四色定理(任何平面地图四色足够,1976 年机器辅助证明)与五色定理(我们能用手证出的版本)将展示「计算机证明」这一方法论首次闯入纯数学的现场。

衔接讲义。下一章开始:平面图的 Euler 公式、边数上限、Kuratowski 判据,以及从「四色猜想」到「四色定理」的一百年。带着第三章的两件武器上场:块分解(平面嵌入逐块拼装)与握手引理(边数账目审计)。

第四章预告 第四章:平面图与着色——画在纸上的约束 平面性 边交叉的代价 Euler 公式 V−E+F=2 K5 与 K3,3:两大禁手 着色 四色定理:地图的四色够用 五色定理:我们能证的版本 着色 = 划分 = 调度 交汇 平面图 δ ≤ 5 ⇒ 五色唾手可得 「画得出」是比「连通」更强的结构约束
图 3-15 平面性与着色是「画」的两个侧面:能不能不交叉地画(结构),画好后最少几笔上色(划分)。
第四章

平面图与着色:画在纸上的约束

有些图能画在平面上而不让边交叉,有些不能——这背后是深刻的全局约束。Euler 公式 V − E + F = 2 一出手就给出平面图边数上界,并解释了为什么五邻图必非平面;Kuratowski 定理指认两个禁忌子图(K5 与 K3,3)是非平面性的全部根源。对偶图把「面」变成「点」,于是地图着色成为顶点着色:贪心与 Welch–Powell 给出实用上界,五色定理给出可读的证明,四色定理则要用计算机帮忙——这段百年史本身就是数学方法论的案例。色多项式数出着色的方法数,Vizing 定理处理边着色,寄存器分配与排课表是着色的现代落点。
页型节奏:导引 → 讲义(概念 · 定理 · 证明 · 一步一图)→ 例题 → 习题 → 地图 · 小结 · 思想卡 · 挑战 · 实验
95导引

第四章 平面图与着色:画在纸上的约束导引:本章导引:画得出来的图

★★★ 前三章问「连不连、走不走」,从不管图画出来什么样。本章把画法本身变成数学。

线一 · 平面性(p96–p101)。「不交叉地画」看似几何趣味,实则刚性极强:Euler 公式 V − E + F = 2 一出场就压出 E ≤ 3V − 6 的天花板;K5 与 K3,3 两个小图是「怎么画都交叉」的病根,Kuratowski 定理说它们是仅有的病根。电路布线与芯片布局天天在为这个定理打工。

线二 · 着色(p102–p109)。「相邻不同色最少几种」是划分问题的化身:考试排期、寄存器分配、频率规划全是着色。贪心着色给出 χ ≤ Δ + 1,Welch–Powell 是能上手的算法;平面图的红利是 δ ≤ 5,于是五色定理唾手可得——而四色定理(1976,机器辅助证明)把「计算机能否证明定理」推上哲学法庭。

收束(p110–p124)。误读、例题三组(Euler 公式验算、Welch–Powell 手演、色多项式)、习题两组、地图、双小结、思想卡(反例推动定理)、挑战(五色定理重排证明)、实验(课程表染色真跑)、札记、速查、衔接。

本章的对读主线:「画得出」是比「连通」强得多的结构假设——它把一团乱麻变成有面、有界、有上限的几何对象。

第四章的两条线 第四章:把「画」变成数学 线一:平面性 Euler 公式的边数天花板 K5 / K3,3 两大禁手 Kuratowski 判据 线二:着色 色数 χ(G):划分的语言 Welch–Powell 贪心 四色 / 五色定理 母题回流 平面 ⇒ δ ≤ 5 ⇒ 贪心必收 ≤ 6 色 「画得出」是最强的结构红利
图 4-1 平面性(结构约束)与着色(划分问题)在「δ ≤ 5」处交汇——几何红利兑成代数上限。
96讲义

第四章 平面图与着色:画在纸上的约束4.1 平面图与平面嵌入

★★ 定义先行:平面图 = 可以画在平面上使任何两边不交叉的图;这样的画法叫平面嵌入。

定义(平面图 / 面)。图 G 可平面 ⟺ 存在无交叉画法。平面嵌入是这样一个具体画法;嵌入把平面分成的连通区域叫面(regions),恰有一个无界面(外部)。

三个立即要立的规矩。其一,平面性是抽象图的存在性性质:一张画稿有交叉不代表图非平面(K4 就常被画「错」)——「画不好」与「画不出」是两回事,这也是平面性检测成为算法问题的原因(p109)。其二,嵌入不唯一:同一个平面图可以有本质不同的嵌入(对偶图因此也不唯一,p101)。其三,自环与重边不改变理论但污染公式——本章默认简单图。

为什么值得整章?平面性是图论里最强的「免费结构」:它自带面、自带对偶、自带边数上限、自带低度数红利。后面的一切——Euler 公式、禁手、五色——都是「画得出」这三个字的红利兑现。反过来看,非平面性同样值钱:芯片布局中 K5 型交叉约束就是布线复杂度的来源。

平面图与嵌入 平面嵌入:不交叉是唯一的规矩 K4:平面图(虚边绕外侧即不交叉) K4 的红边可绕外——换个画法就不交叉 同一抽象图,画法千差万别;平面性是「存在一个好画法」 面 = 边围出的区域(含无限面);嵌入 = 无交叉的具体画法
图 4-2 平面性是抽象图的性质(存在性命题),不是某一张画稿的性质——K4 怎么换画法都行,K5 换到哪里都交叉。
97讲义

第四章 平面图与着色:画在纸上的约束4.2 Euler 公式:面从哪里来

★★★★ 本章的发动机,也是数学史上最优雅的公式之一。

Euler 公式(1758)。连通平面图的任何嵌入满足 V − E + F = 2(F 为面数,含无限面)。

证明(生长归纳)。先画一棵生成树:树是平面嵌入,且 V = E + 1、F = 1(只有无限面),检验 V − E + F = (E+1) − E + 1 = 2 ✓。然后把其余边一条条加回:每条非树边在当前嵌入中两端已连通(经树路),故它必然围出一个新面——E 加 1,F 加 1,V 不动,代数和纹丝不动。∎

公式的三重身份。① 计数恒等式:三个量锁死一个,知道两个必知第三个;② 拓扑不变量:它在一切连续变形下不变——多面体的顶点数 − 棱数 + 面数 = 2 是同一个公式(把多面体压扁到球面再投射到平面);第三章札记埋的伏笔在此兑现;③ 非平面性的探针:若某图怎么算都凑不出 2,它就画不出来——下一页立刻兑现。

推论(边数天花板)。简单连通平面图每个面至少 3 边、每边至多属 2 面 ⇒ 3F ≤ 2E,代入 Euler:E ≤ 3V − 6(V ≥ 3)。这是「平面图很稀疏」的第一张定量证书——K5 有 10 边 > 3×5−6 = 9,K5 非平面当场毙命。

Euler 公式 Euler 公式:V − E + F = 2(连通平面图) F = 面数(含无限面) 多面体版:顶点 − 棱 + 面 = 2 拉伸挤压不变 ⇒ 拓扑不变量 第一章札记的伏笔在此兑现 归纳证明一瞥 加边:树上加一点 F 不变 加对角线:F 增 1、E 增 1 两边恰好抵消 第一个推论 每面 ≥ 3 边 ⇒ 3F ≤ 2E 代入 Euler ⇒ E ≤ 3V − 6 三角剖分取等
图 4-3 「点 − 边 + 面」在一切变形下守恒:树的加点与图的加对角线各自恰好抵消——这是全部证明的引擎。
98讲义

第四章 平面图与着色:画在纸上的约束4.3 极大平面图与三角剖分

★★★ 边数天花板取等的图,值得单独认识。

定义。极大平面图:不能再添加边而不破坏平面性的简单平面图。三角剖分:所有面(含无限面)都是三角形的嵌入。两者对 V ≥ 3 等价。

取等的账目。三角剖分中每面 3 边、每边属 2 面 ⇒ 3F = 2E,代入 Euler:E = 3V − 6,且每点 d(v) ≥ 3 时平均度 = 6 − 12/V < 6。平面图平均度恒小于 6——对比第一章「六度」直觉:平面世界挤不进那么多连接。

两个紧随的推论。① 平面图必有度 ≤ 5 的点(若全 ≥ 6 则 2E ≥ 6V 违反天花板)——这是五色定理的全部弹药,p104 兑现;② 三角剖分的对偶是三次(3-正则)平面图——四色问题等价于「三次平面图的边三着色」(Tait,p107 札记式一提)。

局部 vs 全局的一次教育。「每个面都是三角形」是局部描述,「E = 3V − 6」是全局账目——由局部账(3F = 2E 的双计数)搬到全局账(Euler 恒等式),正是第一章握手引理「局部度数 Σ 全局边数」同款双计数技术。双计数是图论的会计学:哪里有「每物两侧」,哪里就能记账。

三角剖分与边数上限 极大平面图:一条边都加不进了 5 点三角剖分:8 = 3×5 − 6 − 1?不——V=5, E=8, 3V−6=9,还能加 1 条对角线 再加 2-4 边即 9 边:全三角面、每点度 4?不——极图论证看下一行
图 4-4 三角剖分把每个面都压成三角形:E = 3V − 6 取等;加不进任何边(不产生重边/交叉)时图叫极大平面图。
99讲义

第四章 平面图与着色:画在纸上的约束4.4 边数的上界与非平面性

★★★★ 「怎么画都交叉」的完全刻画,1930 年落下。

Kuratowski 定理。图可平面 ⟺ 它不含 K5 或 K3,3 的细分(subdivision:把某些边替换成路)作为子图。

K5 的死因(上一页已验尸)。E = 10 > 3V − 6 = 9,Euler 上限直接毙掉。

K3,3 的死因(更精细的账)。K3,3 是二部图——无三角形,故每个面至少 4 边 ⇒ 4F ≤ 2E。与 Euler 联立:V − E + 2E/4 ≥ 2 ⇒ E ≤ 2V − 4。K3,3 有 E = 9 > 2×6 − 4 = 8。毙命。教学价值:两个禁手展示「同一公式、不同面账」——三角形的存在与否改变每面的最少边数,上限随之改变。

定理的三层读法。① 完备性:非平面性只有一个病因谱系——拉长 K5 或 K3,3;② 实用性:证非平面只需「找细分」(彼得森图含 K3,3 细分,自找);证平面仍需手工嵌入;③ 算法化的起点:判据存在 ⇒ 平面性检测有算法(p109 的线性算法是工程奇迹)。

一句题外话。同一时代另有 Whitney 的 «2-连通可平面图有唯一嵌入»(球面上)——嵌入不唯一的担忧被限制掉一半;但对偶图的「几何对偶」仍是选择的艺术(p101)。

两大禁手 两个禁手:K5 与 K3,3(Kuratowski, 1930) K5:E=10 > 3V−6=9(Euler 公式判死) K3,3:二部图无三角 ⇒ 面至少 4 边 ⇒ E ≤ 2V−4=8 < 9 Kuratowski:G 可平面 ⟺ 不含 K5 / K3,3 的细分 细分 = 边上插新点(只拉长、不改变病根)
图 4-5 K5 死于边数上限,K3,3 骗过它却死于二部版上限 E ≤ 2V − 4——两个禁手恰好对应两类面结构。
100讲义

第四章 平面图与着色:画在纸上的约束4.5 Kuratowski 定理:两个禁忌子图

★★★ 把「面」变成「点」,着色问题完成舞台转换。

几何对偶。平面图 G 的嵌入中,每个面放一点;G 的每条边 e 跨着连一条对偶边 e*(连接 e 两侧的点)。得到的 G* 是对偶图。

基本账目。V(G*) = F(G)、E(G*) = E(G)、F(G*) = V(G);对偶再对偶回到自身(连通时):(G*)* ≅ G。桥在 G 中「一侧同面」,对应 G* 的自环;度 1 的点对应 G* 的重边——对偶把两种「退化」互换身份。

着色的关键换位。地图着色 = 给面染色使相邻面异色 = 给 G* 的点染色使相邻点异色。四色问题的现代表述由此变为:任何平面图的色数 χ ≤ 4。地图的语言(国家、边界)与图的语言(点、边)在对偶处会师。

三个提醒。① 嵌入不唯一 ⇒ 对偶也不唯一——不同嵌入的对偶可能不同构,「那个对偶图」的说法要小心;② 对偶保 E 数不保 V 数,「点多的图」与「面多的图」是同一回事;③ 对偶思想是本册第五次登场:Menger 的割-路对偶、最大流最小割、LP 对偶、切定理,如今的面-点对偶——对偶是图论的母语,本章贡献了它最几何的标本。

几何对偶 对偶图:面与点互换身份 原图 G(绿):4 点 5 边,4 个面 G* 的内部点(橙虚线):每面对一点、共边连边 桥 ⟺ 对偶自环;度为 1 的点 ⟺ 对偶重边 面对偶:V(G*) = F(G),E(G*) = E(G)——四色的舞台由它搭起
图 4-6 每个面放一个点、跨每条边连一条对偶边:面问题(地图着色)变身点问题(对偶图点着色)——四色问题的标准舞台。
101讲义

第四章 平面图与着色:画在纸上的约束4.6 对偶图与几何对偶

★★ 着色的定义页:把「划分」的语言立起来。

定义(着色 / 色数)。图的正常着色:给每个点分配颜色,使相邻点异色。色数 χ(G):正常着色所需的最少颜色数。χ ≤ k 的图叫 k-可着色的。

三个锚点。χ(G) = 1 ⟺ 无边(空图);χ(G) = 2 ⟺ 二部图(第一章 König 判据的回归——二部图就是能双色 worlds 的图);χ(Kn) = n。奇圈 χ = 3:既非二部、又用不满三色以上的结构,是「最小非平凡障碍」。

下界与上界的账。下界:χ ≥ ω(团数——团内两两相邻,必须各占一色);χ ≥ n/α(色类是独立集,每类至多 α 个点)。上界:χ ≤ Δ + 1(贪心着色:任何顺序、逐点挑邻区未用的最小色,最多用 Δ + 1 色)。上下界之间可能天堑:ω 可以是 2 而 χ 可以任意大(Mycielski 构造,第五章远眺)——团不是着色难度的全部。

着色 = 划分。χ ≤ k ⟺ 点集可划成 k 个独立集(色类)。这一句把「涂颜色」翻译成「分箱子」:排课表 = 把课程分成互不冲突的时段;寄存器分配 = 把活跃变量分进有限的寄存器;频率规划 = 把基站分进有限频段。颜色只是独立集的昵称。

本章的路线。贪心能给 Δ + 1(p103 算法化);平面图世界红利 δ ≤ 5 能压到 5 色(p104)、传闻 4 色(p105);但一般图的 χ 计算是 NP 完全——着色与 Hamilton 同坐一条难船。容易的世界与极难的世界,在着色问题上再次接壤。

102讲义

第四章 平面图与着色:画在纸上的约束4.7 着色与色数

★★ 着色的第一个算法:快、糙、常用。

贪心着色。给定点的顺序 v1, …, vn:依次给每个点分配邻居未使用的最小编号颜色。Welch–Powell:顺序取度数从大到小。

保证的证明(一扫描即得)。给 vi 上色时,它的邻居中已上色的至多 d(vi) ≤ Δ 个,占掉至多 Δ 种色,色板共 Δ + 1 色,必有剩余。∎ 于是 χ ≤ 任何贪心所用色数 ≤ Δ + 1。注意方向:贪心给的是上界,不是 χ 本身——同一图换个顺序,色数可以更多。

贪心的失效现场(重要!)。存在二部图(χ = 2)被某个顺序的贪心用 Δ + 1 色——顺序不当,贪心可以把「两条颜色就够」的世界涂成「彩虹」。极端例:路径两端各接一个 Δ-团的「双团哑铃」,若先涂一端大团再涂另一端,颜色被锁死错位。教训:贪心的成本在「回不了头」——与 Dijkstra 的锁定同病,但着色没有「非负权」式的安全条件兜底。

Welch–Powell 的合理性(无定理,有直觉)。度数大的点约束最多,先涂它们可避免「最后被逼开新色」。它是工程默认启发式:p121 实验拿它真跑排课表。理论侧的补充:Brooks 定理(1941)说连通图 χ ≤ Δ,仅三种例外(完全图、奇圈)——比 Δ + 1 精一档,证明巧妙但超纲;列在速查备用。

贪心着色 贪心着色与 Welch–Powell(1967) 朴素贪心:任意顺序逐点上色 每点取邻居未用的最小色 总色数 ≤ Δ + 1(最坏情形) 顺序决定成败:好顺序能省色 Welch–Powell 顺序 按度数从大到小排 先上「最忙」的点 大度点定基调、小度点跟随 保证与失效 保证 χ ≤ Δ + 1 永远成立 不保证最优 二部图也肯能被贪心用 3 色?
图 4-7 贪心着色的全部自由度在「顺序」:Welch–Powell 用度数排序给出一个又快又常好的启发式——但从不许诺最优。
103讲义

第四章 平面图与着色:画在纸上的约束4.8 贪心着色与 Welch–Powell

★★★★ 平面红利兑付日:五色定理——用手就证得出的极限。

五色定理(Heawood, 1890)。任何平面图 5-可着色。

证明(对 V 归纳 + 度 5 时代的救援)。V ≤ 5 平凡。设 V ≥ 6,由「平面图有点度 ≤ 5」(p98 推论)取度最小点 v,归纳给 G − v 上色。

情形 d(v) ≤ 4:邻居至多占 4 色,v 用剩下的色。∎

情形 d(v) = 5:若 5 个邻居未用满 5 色,照样插入。若用满(设色 1–5,环序 v1…v5),考虑子图 G12 = 色 1、2 的点导出子图:若 v1 与 v3 在其中不连通,交换 v1 所在分支的两色(1↔2),腾出色 1 给 v。若连通——v1 到 v3 有一条 1-2 交替路,它与 v 围成一个圈;则 v2 与 v4 被此圈隔开(平面性登场!),在 G24 中必不连通,交换 v2 分支的 2↔3 色?——准确地说是交换 2↔4,腾出色 2 给 v。∎

证明的三处精益。① Kempe 链:两色交替路是1879年 Kempe 错证四色时的遗产——错证明留下对的工具;② 平面性只在 d(v) = 5 情形「隔开」一步用到——几何约束兑换成代数自由度的典范;③ 归纳的支点是谁?「有点度 ≤ 5」全部来自 Euler 公式的边数账——p97 的发动机一路供油到 p103。

为什么停在 5?d(v) = 5 时恰好五条交替路「十字锁」,Kempe 链的两两缠绕会互相拆台(他的原始交换程序会死循环)——四色的补齐需要机器时代的穷举(p105)。5 与 4 之间,隔着一个世纪的工具升级。

104讲义

第四章 平面图与着色:画在纸上的约束4.9 五色定理:可读的证明

★★★★ 一段百年史,也是一堂方法论课。

起点(1852)。Guthrie 给地图上色时注意到:四种颜色似乎总够。De Morgan 在信件里传播这个「小观察」——它朴素到没人认为会难。

错证的黄金时代(1879)。Kempe 的「证明」优雅流畅、被权威认可十余年;1890 年 Heawood 指出 Kempe 链交换的致命漏洞(交换会互相干扰)——但 Kempe 的工具保留下来,成就了五色定理(p103)。错误证明对数学的贡献,常被低估。

机器证明(1976)。Appel–Haken 的策略:把所有「不可避免」的构形(任何平面图必含其一)逐个验证「可约」(含它则可归约到更小图)。1,936 个构形的人工检查 + 计算机穷举,四色定理成立。1996 年 Robertson–Sanders–Seymour–Thomas 压缩到 633 构形;2005 年 Gonthier 用 Coq 完全形式化——「正确」本身成为被验证的对象。

三问三答。① 「数学证明的本质是说服」——不可手验的证明算数吗?多数派立场:验证成本本就早已外包(大型定理的文献链);② 「有没有人类可读的四色证明?」——至今没有,多数人不再期待;③ 「着色的难度会不会其实很简单?」——平面情形难在证明,一般情形难在本质(χ 判定 NP 完全)。四色是「简单问题 + 艰难证明」的极致标本。

四色问题百年 四色问题:Appel–Haken, 1976 任何平面图 χ ≤ 4 第一个「机器辅助」的重大定理证明 1,936 个构形 + 1,200 小时计算机时 时间线 1852 Guthrie 提出猜想 1879 Kempe「证明」 1890 Heawood 证伪(留下五色) 1976 Appel–Haken 机器证明 争议与方法论 不可手验的证明算证明吗? 可约性 + 不可避免集 1996 Robertson 等简化 2005 Coq 形式化验证
图 4-8 从猜想、错证、证伪到机器证明:四色史是一部「证明的哲学」进化史——验证的责任从人眼移交给了程序。
105讲义

第四章 平面图与着色:画在纸上的约束4.10 四色问题:一段百年史

★★★ 色多项式:把「几种颜色够」升级为「几种方式着」。

定义。色多项式 P(G, k):用 k 种可用颜色给 G 正常着色的方案数。χ(G) = 使 P(G, k) > 0 的最小正整数 k。

两个基例。P(树, k) = k(k−1)n−1(根 k 种、其余各避开父亲:n−1 个 n−1 次幂因子);P(完全图 Kn, k) = k(k−1)⋯(k−n+1)(阶乘式下降)。树与团是着色世界的两个极点:约束越少,多项式越「松」。

递归(删除–收缩)。对边 e:P(G, k) = P(G − e, k) − P(G / e, k)——e 的两端异色的方案(G−e 中)减去同色的方案(把同色强扭成一点 = 收缩 G/e)。这是着色版的「删除–收缩递归」,与生成树计数的 Matrix–Tree(第六章)形成双峰。

多项式身份的惊人处。按定义它是「计数函数」,Birkhoff (1912) 证明它真的是多项式:n 个点、m 条边的图,P(G, k) 是 k 的 n 次多项式,首项 kn、次项 −m·kn−1、常数项 0(k=0 无方案)。「方案数」这种组合对象长出代数牙齿——系数里藏着图的情报(连通分支数 = P 在 k=0 处导数零点结构等)。

与本章主线的挂钩。四色问题即「P(平面图, 4) > 0?」;色多项式的零点理论(Birkhoff–Lewis:平面图实零点仅 0 与 [32/27, 4) 区间片段?)曾试图迂回攻克四色——未竟,但催生了整整一支代数组合。哪怕失败的方法论也在增殖。

106讲义

第四章 平面图与着色:画在纸上的约束4.11 色多项式:数一数着色

★★ 边着色:把颜色从点搬到边上。

定义。边着色:给每条边分配颜色使共端点的边异色。边色数 χ′(G):最少颜色数。平凡下界 χ′ ≥ Δ;二部图取等(König,1916)。
Vizing 定理(1964)。简单图 χ′ ∈ {Δ, Δ + 1}。χ′ = Δ 的图叫第一类,χ′ = Δ + 1 的叫第二类。

惊人的二分与惊人的难。边着色的答案只有两个候选——比点着色(χ 可以是从 2 到 n 的任何值)温和得多;但判断属于哪一类是 NP 完全的!两个候选之间横着 NP 完全的鸿沟,这是复杂度世界最富哲学意味的标本之一:「答案空间极小」不等于「判定极容易」。

哪些图是第一类?二部图(König);平面图当 Δ ≥ 7?——不对,是 Vizing 邻点引理推出「平面图 χ′ = Δ 当 Δ ≥ 7,χ′ = Δ + 1 当 Δ = 2, 3 的部分情形」……精确版本:平面图在 Δ = 7 时必第一类、Δ = 6 时第二类存在(孤立反例构造)——Δ = 4, 5, 6 的平面图分类至今开放(着色理论里罕见的现役难题)。

应用速写。排赛程:队 = 点、比赛 = 边,边着色 = 时间片分配(每队每轮恰一场 ⟺ 完美匹配分解);边着色的「匹配分解」视角直接通向第五章。点着色分独立集、边着色分匹配——同一个划分母题的两种度量。

107讲义

第四章 平面图与着色:画在纸上的约束4.12 边着色与 Vizing 定理

★★★ 着色落地:寄存器分配与排课表——编译器与教务处的同一场数学。

案例一:寄存器分配(编译器后端的着色现场)。把变量的「活跃区间」建模为图:变量 = 点,两变量同时存活 = 边;寄存器个数 = 颜色数。χ ≤ 寄存器数 ⟺ 无需溢出到内存。实际做法:构造干涉图 → 贪心/Welch–Powell 着色 → 溢出代价最小者落盘、重跑。Chaitin (1981) 开创此路线,至今是 LLVM/GCC 后端的骨架之一。每编译一个程序,都在解一次着色。

案例二:排课表(教务处的着色现场)。课程 = 点,共享学生的课程对 = 边,时段 = 颜色。约束强化时升级为边着色(教室数固定:同一时段的课程数 ≤ 教室数 = 色类大小限制)或列表着色(课程有禁用时段)。现实排课几乎从不求最优——求解一个可行解已足够,而可行性判定已是 NP 完全:教务系统的默认策略是贪心 + 人工微调。

案例三(远眺):频率规划。基站 = 点、同频干扰 = 边、频段 = 颜色;无线网络的真实约束(干扰随距离衰减)催生「距离-2 着色」(两跳内异色)等变体。着色的变体族谱 = 工程约束的族谱。

落地方法论。三步:识别「互斥关系」→ 建干涉图 → 选着色算法(精确小图 / 贪心大图 / 变体适配)。难问题的工程答案常是「不错但够用的贪心」——承认次优,是工程与纯数学的分界线。
108讲义

第四章 平面图与着色:画在纸上的约束4.13 应用:寄存器分配与排课表

★★★ 平面性检测:从判据到线性时间——本章收官的算法戏。

朴素路线及其天花板。按 Kuratowski 找禁手细分:子图枚举指数级;删除–收缩试嵌入:指数级。判据存在 ≠ 算法可行——Kuratowski 定理给的是「特征」,不是「程序」。

线性时间算法的三代谱系。① Auslander–Parter (1961) / Hopcroft–Tarjan (1974):路径加入法(PPathAddition),DFS 低点结构 + 「片段」(bridge)交换翻转,O(V);实现细节臭名昭著,教科书常只讲思想。② Boyer–Myrvold (1999):边加入法(EdgeAddition)+ 左右引用(LR)避免翻转,现代实现(LEMON、OGDF)的主流。③ de Fraysseix–Rosenstiehl:另一条边加入路线,Planarity 软件采用。共同底座:DFS 的括号结构与低点函数(第三章 3.1 的家什)+ 双连通分解(块!)——平面性检测是第三章工具箱的阅兵式。

算法核心直觉(Hopcroft–Tarjan 一瞥)。逐块处理;在已嵌入的子图上,每个「片段」(还悬空的连通件)有若干「可附着面」;若某片段无处安放 → 非平面(且可顺藤摸瓜提取 Kuratowski 细分作为证书——现代实现不只判 Y/N,还交出反例)。失败时给证据,是工程算法与存在性定理的分水岭。

地位。平面性检测 O(V) 是少数「线性时间解决非平凡全局性质」的范例,与本章一起构成图论「结构 ⇄ 算法」对读的高峰。

109讲义

第四章 平面图与着色:画在纸上的约束4.14 平面性检测的思路

★★ 讲义 4.14:本章工具箱——十件套清点与使用须知。

概念件(四件)。平面嵌入与面(画出世界的 vocabulary);对偶图(面点互换,着色舞台的搭台工);色数 χ 与边色数 χ′(两个划分度量);色多项式 P(G, k)(从「够不够」到「几多种」)。

定理件(四件)。Euler 公式 V − E + F = 2(发动机,一切上限的源头);边数上限 E ≤ 3V − 6 与二部版 E ≤ 2V − 4(禁手探测器);Kuratowski 定理(非平面性的完全刻画);Vizing 定理(边着色的二分 + 判定的 NP 完全)。

算法件(三件)。贪心/Welch–Powell 着色(上界 Δ + 1,工程默认);五色定理的 Kempe 链程序(平面红利的人工兑付);平面性检测 O(V)(结构定理的算法化终点)。

使用须知三条。① Euler 公式只对连通平面图成立,非连通要逐分支(或加分支修正 C + 1);② 边数上限只在简单图上成立,重边会击穿(两个点之间三重边照样平面);③ 对偶图依赖嵌入选择,「图的对偶」严格说是「嵌入的对偶」——写证明时留神。

与前后章的接口。块分解(3.1)在平面性检测中逐块进场;边数上限将在第五章 Ramsey 计数中充当「稠密必含结构」的探针;Euler 公式的拓扑血统将在综合站回望(它也是拓扑学 Euler 示性数的 n = 2 维特例)。工具箱不封箱——每一件都在后续章节返场。

110误读

第四章 平面图与着色:画在纸上的约束常见误读:平面性的四个误区

★★ 常见误读:平面性的四个误区。

误区一:「画出来有交叉就不是平面图」。最常见。平面性看的是存在性:K4 常被画成两交叉对角线,但它有标准的无交叉画法。「画不好」≠「画不出」——判断平面性要找嵌入或跑检测算法,不能看一张画稿。

误区二:「非平面图都是 K5 的亲戚」。漏了 K3,3。很多「看起来很稀疏」的图是 K3,3 的细分——彼得森图 10 点 15 边远低于 3V−6=24,却非平面(含 K3,3 细分)。边数上限只能毙掉稠密图,稀疏的非平面图要靠禁手细分毙。

误区三:「四色定理说任何图四色可着」。大错。四色定理只对平面图成立;K7 立刻需要 7 色。同理「χ ≤ 4 ⇔ 平面」也不对——平面图的 χ ≤ 4 是单向上界,χ ≤ 4 的图大把非平面。定理的适用域是第一条纪律。

误区四:「χ′ 只有 Δ 或 Δ + 1 两个候选,所以判定很简单」。恰恰相反——Vizing 定理把答案压进两个值,但判断落在哪个值是 NP 完全的。候选少 ≠ 判定易,这是复杂度世界最反直觉的一课(与「答案非 0 即 1 的 SAT 同样难」同宗)。

防坑纪律。先问「对哪类图成立」(平面?简单?连通?);再问「上界还是刻画」(≤ 4 还是 = 4);最后问「存在性还是判定难度」(候选空间小不代表判定便宜)。
111例题

第四章 平面图与着色:画在纸上的约束例题精讲:Euler 公式验算与极大平面图

★★★ 例题 1(Euler 公式验算与极大平面图)。① 验证 6 点「八面体图」的 Euler 公式;② 证明八面体图是极大平面图;③ 求其对偶图。

① 账目。八面体图 = 正八面体的顶点棱图:6 点(上下两极 + 赤道四边形)、12 边(赤道 4 + 两极各连赤道 4)。面数?八面体有 8 个三角面。验:V − E + F = 6 − 12 + 8 = 2 ✓。再验边数上限:E = 12 = 3×6 − 6,取等——它必是三角剖分。

② 极大性证明(两路并进)。路 A(账目路):E 已达 3V − 6 的天花板,再加任何边必超上限、必非平面(上限是平面性的必要条件)——完。路 B(几何路):每个面已是三角形,任何两点要么相邻(重边不行)、要么隔着面——在三角形内部连线必与边界交叉。两路对照:账目路用必要条件「反向使用」(超上限⇒非平面),几何路用构造——前者更快,适用面更窄(只在取等时可用)。

③ 对偶图。8 面各放一点(8 点),每条棱连对偶边(12 边):对偶图 8 点 12 边,面数 = 6。它是什么?正八面体的面对偶是正方体图(立方体 8 顶点 12 棱 6 面)——两种柏拉图体的对偶关系在图论账目上精确兑现:V↔F 互换、E 不变。账目即几何。

方法复盘。Euler 公式的正确用法是「三量知二求一」;极大平面图的判定首选「天花板取等」;对偶图先数账(V*, E*, F*)再认脸。下一页把着色算法交到手上。
112例题

第四章 平面图与着色:画在纸上的约束例题精讲:Welch–Powell 着色手演

★★★ 例题 2(Welch–Powell 着色手演)。对 8 点图求 Welch–Powell 着色,并回答能否更少。

排队:度数 3(5) > 6(4) > {1,2,4,5,7,8}(3)——并列按编号:顺序 3, 6, 1, 2, 4, 5, 7, 8。

逐点上色(邻居未用的最小色):

点已色邻居禁用色取色
3 (d=5)—∅1
6 (d=4)3{1}2
13{1}2
21, 3{2, 1}3
43{1}2
53{1}2
76{2}1
83, 6{1, 2}3

结果:3 色。色类:色1 = {3, 7}、色2 = {6, 1, 4, 5}、色3 = {2, 8}。合法性自查:色2 的四点两两不相邻?6 邻 3,7,8,5——5 与 6 相邻!抓出错误:5 的邻居是 3, 7, 8(看图重核),6 的邻居是 3, 7, 8——5 与 6 不相邻 ✓(手演时最容易错的就是邻居表——务必先抄对邻接表再上色)。逐对核验:色2 内 (1,6) (1,4) (1,5) (4,6) (4,5) (5,6) 均无边 ✓。

能否 2 色?图中有三角形(3-5-7 与 3-6-8),三角形 χ = 3。下界 χ ≥ 3 与上界 χ ≤ 3 夹出 χ = 3——Welch–Powell 此处恰好最优(它不保证最优,本次运气与结构双好)。例题的方法论:上界靠算法、下界靠障碍(团或奇圈),两头夹逼才是完整答案。

例题 2 的 8 点图 例题 2 用图:8 点冲突图(度数标注) 1 d=2 2 d=3 3 d=5 4 d=3 5 d=3 6 d=4 7 d=3 8 d=3 Welch–Powell 顺序:3(5), 6(4), 1, 2, 4, 5, 7, 8(度并列取编号小者)
图 4-9 度数标注在手演时先排好队:度大的点先定基调,之后的点「见缝插针」用最小可用色。
113习题

第四章 平面图与着色:画在纸上的约束习题课:平面图与对偶

★★ 习题课(一):平面图与对偶。五题手演。

S1.连通平面图 V = 10, F = 6,求 E;再问它可能是简单图吗?Euler:E = V + F − 2 = 14。上限 3V−6 = 24,14 ≤ 24 合法——可能。上限是必要条件,不排除。

S2.证明:简单平面图若每个面至少 4 边,则 E ≤ 2V − 4;并给出一个取等的图。4F ≤ 2E 代入 Euler;取等例:四边形剖分(如立方体图:8 点 12 边 = 2×8−4 ✓)。

S3.彼得森图中找出 K3,3 的一个细分(提示:删去一条外圈对边后的 8 点子图)。彼得森 = 内五角星 + 外五边形 + 五辐条;删辐条换对接的思路——动手画,细分不需要直线边的「直」。

S4.树的(唯一)嵌入的对偶图是什么?「对偶再对偶」在树上还成立吗?树 F = 1 ⇒ G* 单点带自环(每条桥一个自环);自环图不是「图的图」——对偶对偶等式需连通简单嵌入,退化情形是理论的边界贴纸。

S5.正十二面体图(20 点 30 边 12 面)验证 Euler 公式,并求每点度数与每面边数。20−30+12 = 2 ✓;3-正则(2E=60=3V);五边形面(2E=60=5F)——柏拉图体的账目自洽。

自评线。S1 上限的「必要性」定位;S2 二部版上限推导;S3 细分的目力;S4 退化情形边界;S5 柏拉图账目。五题全对,嵌入一侧通关。
114例题

第四章 平面图与着色:画在纸上的约束例题精讲:色多项式演算

★★★ 例题 3(色多项式演算)。求路径 P4(4 点链)与圈 C4 的色多项式,并从中读出色数。

P4(递归法)。树公式直接给:P(P4, k) = k(k−1)3。展开验证删除–收缩:取中间一条边 e,P4 − e = P3 + K1(不连通:色多项式相乘)= k(k−1)2 · k;P4/e = P3 = k(k−1)2。差 = k(k−1)2(k − 1) = k(k−1)3 ✓。

C4(递归法)。取一边 e:C4 − e = P4,C4/e = C3(三角形)。P(C4, k) = k(k−1)3 − k(k−1)(k−2)。展开:k(k−1)[(k−1)2 − (k−2)] = k(k−1)(k2−3k+3)。读色数:k=1 给 0;k=2 给 2·1·1 = 2 > 0 ✓——C4 是二部圈,双色可着(对径同色)。C3 对照:P(C3, k) = k(k−1)(k−2),k=2 给 0——奇圈就是双色世界的一票否决者,与第一章 König 判据账目相合。

多项式体检。P(C4, k) = k4 − 4k3 + 6k2 − 3k?展开 k(k−1)(k2−3k+3) = k4 − 4k3 + 6k2 − 3k。次项系数 −4 = −E ✓(m = 4);首项 k4 = kV ✓;常数 0 ✓。三个「指纹」全部对上——多项式身份的三重认证。

方法复盘。删除–收缩是着色版的「数学归纳法作业机」:递归到树与团两个基例收口;「读色数」= 找最小正整数零点穿越;系数指纹(−m、kV、常数 0)是验算的三件套。下一页习题课继续练。
115习题

第四章 平面图与着色:画在纸上的约束习题课:着色实战

★★ 习题课(二):着色实战。五题手演。

S1.求轮图 W6(C5 加中心点)的 χ,并说明它与「四色定理的距离」。奇轮 χ = 4(圈 3 色 + 中心第 4 色);偶轮 χ = 3。轮图是平面图 χ = 4 的最小天然标本——四色的「下界说明书」。

S2.证明:χ(G) ≥ n/α(G),并用它证明「χ = 2 ⟺ 二部」的必要方向。色类是独立集、大小 ≤ α;双色 ⟹ 两个独立集覆盖全图 ⟹ 二部划分。

S3.一个 Δ = 3 的图可能 χ = 2, 3, 4 各举一例。χ=2:偶圈或 K3,3 之外的任意二部 3-正则(立方体);χ=3:奇圈;χ=4:K4——三例同 Δ,Δ 不决定 χ。

S4.三次平面图(如立方体图)的边着色与四色问题有何关系(Tait 化)?Tait:三次 2-连通平面图 χ′ = 3 ⟺ 面四色可着。1880 年 Tait 曾据「一切三次平面图皆 χ′=3」宣布证明四色——1891 年 Petersen 指出缺口(存在非第一类的三次图吗?)——错误的另一座金矿。

S5.色多项式 P(G, k) 在 k = −1 处的值有组合意义吗(远眺)?有——Stanley 的负概率解释:P(G, −1) = (−1)V × 无向图 acyclic 定向数。着色多项式与生成树计数(第六章 Matrix–Tree)经由「图多项式」家族遥相呼应。

自评线。S1 下界标本;S2 双侧翻译;S3 变量分离意识;S4 历史与技术的互文;S5 拓宽视野。五题全对,着色一侧练兵完毕。
116地图

第四章 平面图与着色:画在纸上的约束本章地图:平面与着色的依赖结构

★★ 本章地图:一源两支三出口。

源:Euler 公式(4.2)。V − E + F = 2 是全章的发动机:向右压出边数上限(4.3、4.4)、毙掉 K5 与 K3,3(4.5);向上压出「有点度 ≤ 5」(4.3 推论)、供弹五色定理(4.9)。一个公式养活半章。

支一:嵌入线(4.1 → 4.5 → 4.6)。从「画得出」的定义到「怎么都画不出」的刻画(Kuratowski),再到面与点的互换(对偶)。这支队的关键词是结构刻画。

支二:着色线(4.7 → 4.11)。定义 χ、贪心给上界、平面红利给五色、机器时代给四色、色多项式给计数。关键词是划分与上界——着色几乎没有好刻画(二部之外),一切成果都以上界/下界/特类的形式存在。

三出口(4.12 → 4.14)。边着色(Vizing 二分 + NP 完全判定)、应用现场(寄存器、排课、频率)、平面性检测(线性算法)。出口的共同气质:理论给结构,工程拿去用;难处不硬啃,次优也要走。

与前后章的接口。块分解与 DFS 工具箱(第三章)在平面性检测里挑大梁;奇圈与二部判据(第一章)在色数下界返场;对偶思想(Menger/流)收获最几何的标本;下一章匹配是边着色的分解视角的纵深。

第四章知识地图 第四章地图:平面与着色 嵌入线 嵌入与面 4.1 Euler 公式 4.2 上限与禁手 4.4/4.5 对偶 4.6 着色线 色数与贪心 4.7/4.8 五色 4.9 四色史 4.10 色多项式 4.11 算法与应用 边着色 Vizing 4.12 寄存器/排课 4.13 平面性检测 4.14 交汇点:对偶把面着色变点着色;δ ≤ 5 供弹五色 边数上限是两条线的共同上游
图 4-10 Euler 公式供血给「上限 → 禁手」与「δ ≤ 5 → 五色」两支;对偶是面与点的翻译官;算法线是理论的出口。
117小结

第四章 平面图与着色:画在纸上的约束小结:嵌入的语言

★★ 第四章小结(上):嵌入的语言。

概念清单。平面图(存在无交叉画法)、平面嵌入、面(含无限面);对偶图 G*(面变点、共边连边、桥变自环);细分(边上插点);三角剖分(全三角面 = 极大平面)。

定理清单。Euler 公式 V − E + F = 2(连通);边数上限 E ≤ 3V − 6(简单、V ≥ 3)与二部版 E ≤ 2V − 4;推论「平面图有点度 ≤ 5」;Kuratowski 定理(禁手 = K5 / K3,3 的细分);Whitney:2-连通平面图的球面嵌入唯一。

「必要条件的两种用法」。边数上限作为证伪器:超上限即非平面(K5 之死)——快而窄;作为约束器:平面图必稀疏(平均度 < 6)——为一切「平面图上的更好算法」提供地基(平面图分离定理、线性时间最短路等是后话)。同一个不等式,证伪时是斧头,建模时是地基。

嵌入的两个易错点。① 平面性是存在性——「这张画有交叉」不构成非平面证据;② 对偶依赖嵌入——同一图的不同嵌入可有不同对偶;严格写作「嵌入的对偶」。

一句话记住嵌入侧:公式记 2,上限记 6 与 4(3V−6、2V−4),禁手记两个小图(K5、K3,3),对偶记一句「面变点、桥变环」。

118小结

第四章 平面图与着色:画在纸上的约束小结:着色的语言

★★ 第四章小结(下):着色的语言。

概念清单。正常着色与色数 χ(点着色 = 独立集划分);边着色与 χ′(匹配划分);色多项式 P(G, k)(方案计数、χ = 最小正零点);第一/第二类图(χ′ = Δ / Δ+1)。

定理清单。贪心上界 χ ≤ Δ + 1(任何顺序);Brooks:连通图 χ ≤ Δ(除团与奇圈);五色定理(平面图 χ ≤ 5,Kempe 链 + δ ≤ 5);四色定理(平面图 χ ≤ 4,机器证明 1976);Vizing:χ′ ∈ {Δ, Δ + 1}(判定 NP 完全);König 边着色:二部图 χ′ = Δ。

着色的「不对称知识版图」。χ = 2 有完全刻画(二部图);χ ≤ 4 对平面图有定理;一般的 χ 计算与「χ ≤ k?」判定 NP 完全;χ′ 的候选只有两个值而判定仍 NP 完全。知识版图的边界本身就是学习成果:知道「哪里有定理、哪里只有算法、哪里连判定都难」,比多记三个定理更有用。

方法论三遗产。① 上下界夹逼:χ 的完整答案 = 下界(团、奇圈、n/α)+ 上界(贪心、Brooks、平面红利)的合围——很多时候「证明最优」就是「两头堵」;② Kempe 链:错证明的正确遗产——交换两色分支是着色算法与四色史的枢纽技术;③ 删除–收缩:色多项式的递归引擎,与第六章 Matrix–Tree 同构。

一句话记住着色侧:贪心 ≤ Δ+1,平面 ≤ 5(人证)≤ 4(机证),二部恰 2,边着色二选一但难判。

119思想卡

第四章 平面图与着色:画在纸上的约束思想卡:反例推动定理

★★★ 思想卡:反例推动定理。

本章的定理史有个扎眼的规律:进步常常不是被证明推动,而是被反例推动。

三块反例纪念碑。① Heawood 击穿 Kempe(1890):Kempe 的四色「证明」流传十余年后,一个精心设计的图让 Kempe 链交换互相拆台——但拆解过程留下的 Kempe 链技术成了五色定理的钥匙;② Petersen 击穿 Tait(1891):Tait 基于三次平面图边着色的「四色证明」依赖一条未经证明的引理,Petersen 构造出 3-正则非 Hamilton 图(就是那位「反例专业户」),暴露缺口—— Petersen 图从此成为一切「想当然」的照妖镜;③ Grötzsch / Mycielski 击穿「团决定一切」(1950s):三角形-free 却 χ 任意大的图存在——「没有小团也难着色」,把着色难度与团数的纽带一刀斩断。

为什么反例如此高产?因为猜想是「全称命题」,而一个反例就是一次精确的边界测绘:它同时说明「这条路到此为止」与「墙外是什么形状」。K5 与 K3,3 本身就是最好的例子——两个反例被 Kuratowski 升格为全部病因,反例摇身变刻画。从反例到定理的距离,常常只是一个「还有没有别的」的问题。

思想的迁移。本册至今的反例账:彼得森图(Hamilton、着色、Tait 三杀)、K5/K3,3(平面性)、七桥图(一笔画)、双团哑铃(贪心失效)、Grötzsch 图(团≠χ)。一个好反例的学术寿命远长于一打平庸定理——构造反例是图论的基本功,也是本章习题反复训练的肌肉。

120挑战

第四章 平面图与着色:画在纸上的约束挑战:五色定理的重排证明

★★★★ 挑战:五色定理的重排证明。p103 给了「标准叙事」,现在要求重排证明的骨架——把每个零件的位置自己摆一遍。

零件清单(打乱顺序)。A. 归纳假设:G − v 可 5 着色;B. 平面图有点度 ≤ 5(Euler 上限的双计数);C. Kempe 链:两色交替路;D. 平面性保证两条交替路不能交叉(隔出);E. 情形分析 d(v) ≤ 4 与 d(v) = 5;F. 交换一个分支的两色腾位。

任务一:排序。正确的骨架是 B → E → A → (d≤4 直接收) → (d=5) C → D → F。为每个箭头写出「为什么必须在这里」:B 是支点(没有低度点归纳无从落子);E 先于 A 分流(不同情形对 A 的依赖不同);C 提供道路语言;D 把几何兑换成代数;F 是最后一步腾挪。

任务二:补全 d(v) = 5 情形的一个细节。若色 1 的 Kempe 链把 v1 连到 v3,为什么恰好「隔开」v2 与 v4,而不是「隔开」v5?邻居的环序是 v1, v2, v3, v4, v5——1-2 链连 v1 与 v3?注意链的两端是 v1 与 v3(色 1 与 3 的交替路连的是「色 1 的点」与「色 3 的点」……端的颜色写清楚,这是本证明最易含糊处。

任务三:压力测试。把「5 色」改成「4 色」重走骨架:d(v) = 4 时照样通?d(v) = 5 不再出现?——错在哪?4 色时 d(v) = 5 的情形依然存在(v 的 5 个邻居用 4 色必有同色对,看似有救),但「同色对」的位置分析会遇上两条链缠绕——Kempe 的原始死穴。画出缠绕的示意。

挑战的余味。重排证明 = 把「读数学」变「做数学」:零件清单在手上,装配顺序与每个接口的受力分析就是证明本身。完成三任务,已具备读懂 Appel–Haken 策略(可约性 + 不可避免集)的全部底牌。
121实验

第四章 平面图与着色:画在纸上的约束实验:Welch–Powell 真跑——课程表的染色

★★★ 把 Welch–Powell 真跑一遍:8 门课的排课表问题——冲突图建模、度排序贪心着色、结果合法性与手工验证三重对拍。

def welch_powell(n, edges):
    deg = [0] * (n + 1)
    adj = [[] for _ in range(n + 1)]
    for u, v in edges:
        adj[u].append(v); adj[v].append(u)
        deg[u] += 1; deg[v] += 1
    order = sorted(range(1, n + 1), key=lambda x: -deg[x])
    color = [None] * (n + 1)
    for v in order:                  # 度数从大到小,逐点
        used = {color[u] for u in adj[v] if color[u] is not None}
        c = 1
        while c in used:
            c += 1
        color[v] = c                 # 邻居未用的最小色
    return color[1:], max(color[1:])

names = {1:'高数', 2:'线代', 3:'英语', 4:'物理',
         5:'化学', 6:'体育', 7:'编程', 8:'史学'}
E = [(1,2),(1,3),(1,4),(2,3),(2,5),(3,4),(3,6),(4,5),
     (4,7),(5,6),(5,8),(6,7),(6,8),(7,8)]
col, k = welch_powell(8, E)
for v in range(1, 9):
    print(f"  时段{col[v-1]}: {names[v]}")
print("总时段数 =", k)

实跑输出:

  时段3: 高数
  时段2: 线代
  时段1: 英语
  时段2: 物理
  时段1: 化学
  时段2: 体育
  时段1: 编程
  时段3: 史学
总时段数 = 3
对拍读法。① 合法性核验:色类 时段1 = {英语, 化学, 编程}、时段2 = {线代, 物理, 体育}、时段3 = {高数, 史学}——逐对检查类内无边(如体育 6 与史学 8 的冲突边 (6,8) 跨色 ✓);② 顺序可见:英语与物理(度 4)先定基调,高数被迫进时段 3——「大度点先涂」的因果在输出里肉眼可读;③ 下界自查:三角形 1-2-3(高数-线代-英语两两冲突)迫 χ ≥ 3,Welch–Powell 给 3 = 下界——此表可证明最优(并非总是如此,p102 的失效现场仍在)。几十行 Python,教务处的一学期。
122格物札记

第四章 平面图与着色:画在纸上的约束格物札记:从地图到芯片:着色的两次落地

★★ 格物札记:从地图到芯片——着色的两次落地。

第一次落地:地图(1852)。着色的诞生场景是 Cartography——给郡县上色使相邻异色。四色猜想在这一语境里是印刷经济学:四种油墨够不够。有趣的是,现代地图学几乎不再需要四色定理:等高线分层设色、专题地图的视觉变量早已超出「相邻异色」的朴素需求——定理赢在数学,而不是它的出生行业。

第二次落地:芯片(1970s)。着色的真主场是 VLSI:布线层的通道分配(相同层的线段不相交 = 着色)、寄存器分配(p107)、测试引脚分配——每颗芯片的诞生都走过若干次着色。与地图不同,这里的问题规模(百万级变量)与约束密度让「NP 完全」成为每天的日常:工程界的回应不是等理论,而是启发式 + 次优 + 良率换算。

两次落地的方法论对照。地图着色追求「定理」(保证任何地图 4 色够);芯片着色追求「解法」(这颗芯片 3 层布线行不行)。前者是全称量词的胜利,后者是存在量词的战场——同一个数学结构,在「保证」与「找到」两种业态里过两辈子。排课、排班、频谱是第三种业态:约束每日变、解每日找,启发式为王。

札记的结论。一个数学问题的产业价值不在它出生的场景,而在它的结构可迁移性:「互斥关系 + 有限资源」在哪里出现,着色就在哪里上岗。下一章的匹配(婚配、任务分派)是它的孪生兄弟——划分的另一半。

123速查

第四章 平面图与着色:画在纸上的约束速查:第四章概念与定理

★★ 速查:第四章概念与定理。考前一页纸,逐条过。

对象/定理陈述(速记)备注
平面图存在无交叉画法存在性;画稿有交叉≠非平面
Euler 公式V − E + F = 2(连通)归纳 + 树基例;拓扑不变量
边数上限E ≤ 3V − 6;二部 E ≤ 2V − 4双计数 + Euler;K5/K3,3 之死
低度推论平面图有点 d ≤ 5五色定理的全部弹药
Kuratowski可平面 ⟺ 无 K5/K3,3 细分非平面性的完全刻画
对偶图 G*面变点、共边连边依赖嵌入;桥 ↔ 自环
色数 χ最少正常着色色数χ=2 ⟺ 二部;χ ≥ ω, n/α
贪心 / Welch–Powellχ ≤ Δ + 1上界;顺序敏感、不保最优
Brooksχ ≤ Δ(除团、奇圈)比贪心精一档
五色定理平面图 χ ≤ 5Kempe 链 + δ ≤ 5,可手证
四色定理平面图 χ ≤ 41976 机器证明;2005 形式化
色多项式P(G,k):方案数;χ = 最小正零点删除–收缩;树 k(k−1)n−1
Vizingχ′ ∈ {Δ, Δ+1}判定 NP 完全;二部 χ′ = Δ
平面性检测O(V)(Hopcroft–Tarjan 等)DFS + 块;失败交 Kuratowski 证书

易忘三则。Euler 公式要连通(非连通逐支);上限要简单图(重边击穿);「对偶图」属于嵌入不属于图。

124讲义

第四章 平面图与着色:画在纸上的约束第五章预告:配对与有序

★★★ 第四章处理「画与涂」,第五章回到图论最人文的两问:能不能两两配对(匹配)与乱到一定程度是否必然有序(Ramsey)。

匹配线。从婚配、任务分派、器官移植到广告竞价,匹配是最「实用」的图论分支:Berge 的增广路判据是理论心脏(与最大流的增广路一脉相承);Hall 定理给出「一侧全部配成」的充要条件(Menger 在二部图上的化身);匈牙利算法把它变成多项式程序;Gale–Shapley 的稳定婚姻拿了 2012 年诺贝尔经济学奖——一条线从数学直通斯德哥尔摩。

Ramsey 线。「任何 6 人的派对,必有三人互相认识或三人互相不认识」——R(3,3) = 6 是最容易上手的定理之一;其推广(R(5,5) 至今未知!)展示组合数学「定理易述、数值难求」的极端个性。它与匹配共享一个气质:存在性先于构造——Ramsey 干脆放弃构造,只证明「必然」。

衔接讲义。下一章开始:匹配的定义与增广路、Hall 定理及其应用面、匈牙利算法、稳定婚姻、Ramsey 定理与 R(3,3)。带着本章的两件武器上场:König 的二部判据(双色 = 配对的舞台)与对偶思想(Hall 是 Menger 的婚装)。

第五章预告 第五章:匹配与 Ramsey——配对的艺术与有序的必然 匹配线 增广路:Berge 判据 Hall:婚配的充要条件 匈牙利算法:找增广路 稳定婚姻:Gale–Shapley Ramsey 线 任意二染色必有单色团 R(3,3) = 6:派对问题 有序是「足够大」的必然 交汇 两者都是「结构性存在定理」 Hall 是构造性的(有算法),Ramsey 是纯存在性的
图 4-11 匹配答「能不能配成」,Ramsey 答「乱到极处必有序」——一构造一存在,双存在定理共治第五章。
第五章

匹配与 Ramsey:配对的艺术与有序的必然

本章两条线索交汇于「组合的必然性」。匹配线:增广路与 Berge 定理给出最大匹配的判据,Hall 定理回答「完美婚配是否存在」,匈牙利算法沿增广路迭代,稳定婚姻的 Gale–Shapley 算法为分配问题给出兼顾偏好的解,并赢得诺贝尔经济学奖的注脚。Ramsey 线:Ramsey 定理断言「足够大的混乱中必有秩序」——任何六个人中必有三人互相认识或互不相识(R(3,3)=6),Ramsey 数的存在易证、数值却极难,这种不对称令人着迷。独立集、覆盖与团的对偶关系,Gallai 恒等式把三者的和锁在顶点数上。章末以任务分配与网络中枢收束。
页型节奏:导引 → 讲义(概念 · 定理 · 证明 · 一步一图)→ 例题 → 习题 → 地图 · 小结 · 思想卡 · 挑战 · 实验
125导引

第五章 匹配与 Ramsey:配对的艺术与有序的必然导引:本章导引:配对与必然

★★★ 前四章问「连不连、画不画得出、几笔上色」,本章问两个更贴近生活的字:配与必然。

线一 · 匹配(p126–p135)。婚配、任务分派、志愿调剂、器官交换——「一边的人配上另一边的东西」是二部图匹配;Berge 的增广路判据是理论心脏,Hall 定理是「一侧全配成」的充要刻画,匈牙利算法把它变成程序,Gale–Shapley 的稳定婚姻拿下 2012 年诺贝尔经济学奖。Menger 与最大流的「增广」母题在此全线回流。

线二 · Ramsey(p136–p139)。任意 6 人派对必有 3 人互识或 3 人互不相识——R(3,3) = 6 是全册最容易上手的定理;而 R(5,5) 至今无人知晓。Ramsey 理论的气质独特:放弃构造、只证必然——「足够大 ⇒ 必有序」是组合数学的存在主义。

收束(p140–p154)。误读、例题两组(增广路手演、Gale–Shapley 手演)、习题两组、地图、双小结、思想卡(鸽笼到 Ramsey)、挑战(R(3,4) 的界)、实验(匈牙利算法真跑)、札记(肾脏交换)、速查、衔接。

本章的读法提示:匹配线全程「构造性」——每个定理配一个算法;Ramsey 线全程「存在性」——每个定理都拒绝说明怎么找。两种气质的对照本身,就是复杂度世界的预演。

第五章的两条线 第五章:配对与必然 线一:匹配 增广路(Berge) Hall 充要条件 匈牙利算法 稳定婚姻(Gale–Shapley) 线二:Ramsey R(3,3)=6 派对定理 有序是「足够大」的必然 R(5,5) 至今未知 对偶母题再登场 Hall = Menger 的二部化身 增广路 = 最大流的原件
图 5-1 匹配是「构造性存在」(有算法),Ramsey 是「纯存在性」(只证必然)——两种存在定理同台。
126讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.1 匹配:两两不共点的边

★★ 定义先行:把「配对」翻译成图的语言。

定义。图 G 的匹配:两两不共端点的边集 M。饱和点:被 M 中某边覆盖的点。最大匹配:边数最多的匹配,记 ν(G)。完美匹配:饱和所有点的匹配。二部图:点分两部分(如申请者 / 项目),边只在两部之间。

三种「最好」的区分。最大匹配看数量(最多几对);完美匹配看覆盖(是否人人有份);后面 p132 的稳定匹配看质量(没有互相抱怨的对子)——三者互不蕴含,混用是初学第一大坑。ν(G) ≤ n/2,完美匹配即 ν = n/2。

为什么都从二部图起步?因为二部结构让「配对」有方向:一侧是「想要的人」,另一侧是「被想要的东西」——判据(Hall)、算法(匈牙利)、对偶(König)全部在二部情形最干净。一般图的匹配(Blossom 算法,Edmonds 1965)是「非二部障碍」的技术活,本册只点到(p130)。

母题挂旗。「最大流 = 最小割」「不相交路 = 分离集」之后,这里将出现第三对对偶:最大匹配 = 最小点覆盖(König,二部图限定)——「能配成几对」与「至少几个关键点挡路」是同一个数。对偶母语的第四课,开讲。

匹配的基本语言 匹配:两两不共点的边 A B C 1 2 3 4 红边 = 一个匹配(M = {A-1, B-3},两两不共点) 饱和 = 点被某条匹配边覆盖;C 未饱和 ⇒ M 可再壮大 最大匹配:边数最多;完美匹配: saturates 每个点 C-4 有边但 C 饱和后 4 仍悬空——完美匹配存在吗?Hall 来判(p128)
图 5-2 匹配 = 不共点的边集合;「最大」比大小、「完美」比覆盖——3 人对 4 事,最多配 3 对,完美与否看对谁说。
127讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.2 增广路与 Berge 定理

★★★★ 匹配理论的心脏,也是最大流算法的孪生器官。

Berge 定理。匹配 M 是最大的 ⟺ 图中不存在M-增广路(两端点均未被 M 饱和、匹配边与非匹配边交替的路)。

「⇒」方向(有增广必非最大)。沿增广路做异或翻转:匹配边换非匹配边——路的 2k+1 条边中有 k 条匹配、k+1 条非匹配,翻转后匹配数 +1。这是所有匹配算法的发动机:找增广路 → 翻转 → 重复。

「⇐」方向(最大则无增广)。反证:设 M 最大但增广路 P 存在。考察对称差 M △ P 的边集——每个点在其中至多关联 2 条边(M 内至多 1、P 内交替各 1),故 M △ P 分解成偶圈、孤立边与新的交替路;而 P 的两端在 M 中不饱和,使分解中至少一条路的非匹配边比匹配边多——它就是关于 M 的更大匹配的素材,与 M 最大矛盾。∎(细节课堂板书,此处记骨架。)

与最大流的对照表(本册母题的收获时刻)。流:增广路 = 残余网络中 s→t 的正容量路;匹配:增广路 = 交替路。流:Ford–Fulkerson 反复增广;匹配:匈牙利算法反复增广。流:无增广路 ⇔ 最大 ⇔ 最小割证据;匹配:无增广路 ⇔ 最大 ⇔ König 覆盖证据(p129)。一个「增广」概念,两次兑现——第三章的理论投资在本章收利息。

算法剩余问题。Berge 只说「找得到就还能更大」——怎么找增广路?二部图:把已匹配边定向「右→左」、未匹配边定向「左→右」,从未饱和左点 BFS——右点未饱和即得增广路,右点全饱和则继续(这正是 Hall 判据的算法化,p128)。一般图:Blossom 收缩(p130 远眺)。

Berge 定理 Berge 定理(1957):最大匹配的判据 M 是最大匹配 ⟺ G 中不存在关于 M 的 M-增广路 增广路:起点终点都未饱和、 匹配边与非匹配边交替的路 为什么增广? 交替路异或翻转 匹配边↔非匹配边身份互换 匹配数 +1 u-v1-...-uk-v:k 条变 k+1 条 定理的两侧 「有增广路 ⇒ 非最大」易 (翻转即得更大匹配) 「最大 ⇒ 无增广路」难 (反证 + 对称差)
图 5-3 增广路是匹配的「自我升级通道」:存在即非最大,不存在即最大——判据与算法共用同一个概念。
128讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.3 Hall 定理:婚配的充要条件

★★★★ 匹配的存在性定理,本册第五座「对偶」里程碑。

Hall 定理。二部图 (X, Y) 中存在饱和 X 的每个点的匹配 ⟺ 任何 S ⊆ X 满足 |N(S)| ≥ |S|(N(S):S 的邻居集)。此条件称Hall 条件。

必要性一瞬。若匹配饱和 X,则 S 的每个人被配到不同邻居,这些邻居都在 N(S) 里——数够了。充分性(反证骨架)。设 Hall 条件成立但最大匹配 M 未饱和某 x0;所有从 x0 出发的交替路只能终止在已饱和右点(否则是增广路,Berge 拒绝)。令 S = 交替路可达的左点集:可证 N(S) 中的每个右点都饱和且其配偶 ∈ S,于是 |N(S)| = |S| − 1(x0 无配偶),违反 Hall 条件。∎

三重身份(母题汇合点)。① Menger 的化身:加超源连 X、超汇连 Y、容量 1 的流网络——Hall 条件 ⟺ 任何「左点组」的失败都造不出比人数小的割;最大流最小割一页重证 Hall(第三章 3.3 的直接分红)。② König 对偶的一半:最大匹配 = 最小点覆盖(下页)。③ 算法的停机证词:匈牙利算法找不到增广路时,失败证据恰是一个违反 Hall 条件的 S——算法给出「配不成」的作案团伙名单(构造性定理的完美形态)。

应用预告。正则二部图必完美(p131 系)、SDR 代表系(p131)、拉丁方补全、不可区分元素分组——Hall 是「资源够不够」问题的万能判据。

Hall 定理 Hall 定理(1935):一侧全配成的充要条件 二部图 (X, Y) 有 saturating X 的匹配 ⟺ 对每个子集 S ⊆ X:|N(S)| ≥ |S| (邻居不比想配的人少) 婚姻版表述 任何一组姑娘 合起来认识的男子 不少于姑娘数 ——Hall 的婚配定理 必要性与充分性 必要:S 中每人各占一邻居 充分:反证取最小反例 S (或由 Menger/流一页重证)
图 5-4 「配不成」必有作案团伙:某组人合起来认识的人还不够分——Hall 把一切失败归罪于一个可见的瓶颈子集。
129讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.4 Hall 定理的应用面

★★★★ König 对偶与 Hall 的应用面——本章理论密度最高的一页。

König 定理(1931)。二部图中,最大匹配的边数 = 最小点覆盖的点数:ν(G) = τ(G)。

证明一瞥(经由 Hall)。τ ≥ ν 平凡(每条匹配边需一个专属覆盖点)。反向:取最大匹配 M,按「未饱和左点出发的交替可达性」把点分箱,令 C = (不可达的左点)∪(可达的右点)——逐类验证 C 覆盖所有边且 |C| = |M|。∎(这还是增广路的遗产:可达性分析一次,对偶两端同时到手。)

一般图为什么不行?三角形:ν = 1、τ = 2——König 在奇圈上立刻阵亡。奇圈是「点覆盖必须超配」的病灶,与第四章着色里的奇圈一脉相承(χ = 3 的最小障碍也是它)。二部 = 无奇圈 = 对偶成立——「无障碍」与「对偶成立」再次同步。

Hall 应用四连。① 正则二部图必有完美匹配(k-正则:任何 S 的边账 3k|S| ≤ k|N(S)| ⇒ Hall 成立——两条双计数,一页解决,课堂演);② SDR(相异代表系):集合族 {A1,…,An} 有各取一元素互不相同的选法 ⟺ Hall 条件——「委员会各派一名不同代表」;③ 0-1 矩阵的项秩:非零元所在行能被不同列覆盖的最多个数,Hall 直接判 d;④ 任务分派的可行性判定:worker-task 图 Hall 检查 = 匈牙利算法的失败证词(p151 真跑)。

远眺。一般图的 ν = τ 失败由 Edmonds 的 Blossom 算法修复为「一般图最大匹配多项式可解」(1965,O(n3))——奇圈的收缩技术;「最大匹配 = 最小覆盖」在一般图的正确推广是 Gallai–Edmonds 结构定理(远眺,本册不展开)。对偶思想在非二部世界的修复史,是二十世纪组合优化最精彩的章节之一。

130讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.5 匈牙利算法:找增广路

★★★ 把 Berge + Hall 焊成一台机器。

匈牙利算法(Kuhn 1955,基于 König/Hall 的匈牙利学派工作)。M ← ∅;反复从某个 M-未饱和左点出发做交替路搜索(已匹配边「右→左」、未匹配边「左→右」):触到未饱和右点则翻转增广;所有起点堵死则停。

两个内生产物。① 最大匹配:增广只增加不减少,停机即无增广路,Berge 保「最大」;② Hall 证据:某左点堵死时,它的交替可达集 S 满足 |N(S)| < |S|——算法自动产出「为什么配不成」的名单。不存在性也有证词,这是构造性数学的招牌(对照:Ramsey 定理不给出任何证词,p136)。

复杂度账。每次增广 O(E)(BFS 建交替森林),至多 min(|X|, |Y|) 次 ⇒ O(nE)。Hopcroft–Karp (1973) 分阶段增广(每阶段沿最短增广路集合多路推进)降至 O(√n·E)——与二部图最大流的 Dinic 同族(最大流归约视角下二者本是一物)。

工程现场。广告竞价(每秒百万次增广)、任务调度、网络交换机端口匹配(Hashed 匈牙利的硬件版)——「找增广」是基础设施级算法。p151 实验真跑一个 6×6 任务分配并与贪心对照——贪心会错、增广会救,是本章实验的戏剧点。

匈牙利算法 匈牙利算法:Berge 判据的程序化 初始化 M = ∅ 重复:从未饱和左点 BFS 交替路 找到未饱和右点 ⇒ 翻转增广(|M| +1) 全部堵死 ⇒ 该点永久出局(失败证据 = Hall 反例) 复杂度 每轮增广 O(E) 最多 n/2 轮 总 O(nE)(匈牙利) 升级谱系 Hopcroft–Karp:O(√n·E) (分阶段多路增广) 一般图 Blossom:O(n³)
图 5-5 「增广直到堵死」:堵死点的可达性记录同时就是 Hall 反例——算法、判据、对偶证据三位一体。
131讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.6 正则二部图与完备匹配

★★ 讲义 5.6:正则二部图与完美匹配——Hall 条件最优雅的代偿。

推论(正则二部图)。k-正则二部图(k ≥ 1)有完美匹配——甚至能把边集分解成 k 个完美匹配。

证明(两条双计数,三行完事)。Hall 条件:任取 S ⊆ 左部,S 关联的边共 k|S| 条,全部落在 N(S) 中;N(S) 每点至多收 k 条 ⇒ k|S| ≤ k|N(S)|。无条件成立——正则性验完 Hall。分解:取一个完美匹配删掉,剩 (k−1)-正则二部图,归纳。边色数 = k(König 边着色的特例,回看 p106)。

三个立即的应用。① 每面偶数边的立方图 3-边着色(Tait 化的原料,p115-S4);② 拉丁方:n 阶拉丁方每行可视为 1-因子分解的记账(正则二部图的分解 = 拉丁方的行)——Hall 保证每步可补;③ 排课的「教师-班级」双正则情形:每人课时相同、每班需求相同 ⇒ 可完美排满,König 分解给出课时表。

与一般正则图的对照。3-正则「非二部」图可无完美匹配——彼得森图就是(它 3-正则、无桥、却每条「截边组」都卡 Hall 的推广版)。Tutte 定理(一般图完美匹配判据,1947):G 有完美匹配 ⟺ 对任何 U ⊆ V,奇分支数 o(G − U) ≤ |U|——Hall 的正确一般化,证明深刻,本册存目。

方法论一得。「正则验条件」的实质:对称性是最强的资格证——当个体差异抹平,存在性问题塌缩成账目问题。凡遇到「人人一样多」的场景(均匀负载、对称网络),先想正则推论。

132讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.7 稳定婚姻问题的提法

★★ 讲义 5.7:换一种「最好」——从数量到质量。

稳定婚姻问题。n 位男士与 n 位女士,每人持有对全部异性的严格偏好序。完美匹配 M 不稳定 ⟺ 存在男士 m 与女士 w(未在 M 中配对)使 m 偏好 w 胜过自己现任、且 w 偏好 m 胜过现任(这样的 (m, w) 叫 blocking pair,可想象为「私奔动机」)。稳定匹配 = 无 blocking pair 的完美匹配。

为什么是新增维度?p126 已辨三种「最好」:最大(数量)、完美(覆盖),如今第三种——稳定(激励):没有任何一对有共同动机拆伙。完美匹配可以很不稳定(人人想换),稳定性自动蕴含完美(若某人单身,他与他更爱的任何单身者构成 blocking?——严格说人数相等时稳定匹配必完美,自证一行)。

存在性的悬念。偏好是任意的——会不会出现「怎么配都有私奔对」的死局?博弈论里这种死局比比皆是(投票悖论、囚徒困境)。Gale–Shapley 的答案:婚姻市场没有死局——稳定匹配永远存在,且能用一个极其朴素的算法找到。下一页见证。

现实原型(预告)。美国 NRMP 住院医匹配(每年数万岗位)、纽约/波士顿学校录取(2012 诺奖的直接工程来源)、肾交换链(p152 札记)。「私奔对」的直觉值得展开:不稳定的市场会被人自发地绕开——机制设计的第一课。

稳定婚姻问题 稳定婚姻:偏好列表下的配对 n 男 n 女,各自给出全部异性的偏好排序 不完美对(blocking pair):男更爱她 且 她更爱他 稳定 = 不存在任何 blocking pair 问题来源 Gale & Shapley 1962 「大学录取与婚姻稳定」 远在肾移植与市场的应用之前 与最大匹配的关系 完美匹配处处有(人数相等) 稳定是对「质量」的新约束 n² 篇偏好 ⇒ 输入本身 O(n²)
图 5-6b 「配得上」之后还要「没人想私奔」:稳定性是匹配质量的博弈论标准——它将把本章从图论引入机制设计。
133讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.8 Gale–Shapley 算法

★★★★ 全册「最简规则 + 最深定理」的冠军页。

Gale–Shapley(男方求婚版)。初始全员单身。每一轮:所有单身男向自己列表上尚未拒绝过他的最高位女士求婚;每位女士从「现任 + 本轮新求」中保留偏好最高者,其余拒绝(被拒者回到单身池)。直到无单身男。

停机(一排户口)。每位男士的求婚严格沿偏好表下滑、永不回头 ⇒ 总求婚次数 ≤ n2;每轮至少发生一次求婚 ⇒ 有限停机。停机时无单身男(有单身则其列表未划完,仍会求婚)⇒ 输出完美匹配。O(n2)——输入下界级的快。

稳定性。输出无 blocking pair。证:设男 m 与女 w 互「更爱」但未配对。m 曾向 w 求婚(他更爱 w 胜过现任,而求婚沿表下滑 ⇒ w 在现任之前已被求过);w 拒过 m 或换掉过 m ⇒ w 的现任优于 m——矛盾。∎

最优性(不对称的惊人结论)。男方求婚版输出的是男士最优稳定匹配(每位男士在所有稳定匹配中拿到他的最好结局)同时是女士最劣稳定匹配。规则的设计者站着,参与者中的「主动方」赢麻——机制设计的核心教训:谁求婚,谁得利。对称地,把求婚权给女方,结论镜像。

算法纪律的美学。没有回溯、没有全局优化、没有权重——纯局部规则滚动出全局稳定结构,与 Dijkstra 的贪心锁定、Hierholzer 的圈缝合同列「局部规则 → 全局保证」名人堂。2012 诺奖(Roth 的市场设计)是它的工程加冕。

Gale–Shapley 算法 Gale–Shapley 算法(1962):求婚轮次制 每轮:所有单身男向他偏好表中最高位的未婚拒女求婚 女保留当前最优、当场拒绝更差者(含现任) 无单身男时停止 ⇒ 输出稳定匹配 停机与复杂度 每轮至少一个男「划掉一个名字」 至多 n² 轮,O(n²) 输入即 n² 量级 ⇒ 线性时间 稳定性直觉 被拒过的不再回头 「她若拒过我, 现任必比我好」 ⇒ 无私奔动机
图 5-7b 求婚制三定律:只能向下求婚、女方当场择优、被拒永不出局——朴素的规则证出深刻的稳定性。
134讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.9 稳定性的证明与最优性

★★★ 讲义 5.9:稳定性的深化——结构与变体。

格点视角(一图看穿稳定域)。把每个完美匹配画成点 (m的排名和, w的排名和):稳定匹配是「不可能双向改善」的帕累托极值点。稳定匹配可有很多个(指数多个例子存在),但男士最优/女士最优是两个极端锚点;任何「男好则女坏」的反向单调成立——「极值点之间没有搭便车」。

不完整偏好与不可接受的对方。现实版本允许「宁缺毋滥」(某男某女互相不可接受)。结论:稳定匹配仍存在(Gale–Sotomayor),且「宁可单身」的选项使算法照常运转——不可接受边直接删除即可。人数不等、单边缺席(医院-申请者)也全部可化归:加虚拟参与者的标准化技术。

策略行为(真话是否最优?)。男方求婚版中,男士说真话是占优策略(Roth 1982 证明女方说真话不占优——存在虚报获益的实例);机制设计从此分支(「激励相容」系列)。这一页对现实的杀伤力最大:设计机制时不仅要看输出,还要看参与者会不会撒谎。

匹配市场的工程谱系。NRMP 住院医匹配(1952 起用类 GS 机制,1980s 重设计为申请者最优版);纽约学校匹配(2003,考虑兄妹、距离的多维偏好);肾交换(p152)。同一条算法骨架,三套制度外衣——「市场 = 算法 + 制度」的等式第一次在本册显形。

与线一的收束。匹配线的理论件(Berge/Hall/König)与制度件(GS/激励)在此合流:图论给出可行性,博弈论给出稳定性,机制设计给出落地——三段论是应用数学的标准成型工艺。

135讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.10 应用:任务分配与网络中枢

★★ 讲义 5.15 前半:应用总览——任务分配与网络中枢。

应用一:任务分派(每周都在发生的匹配)。工人-任务、服务器-求、出租车-订单:二部图匹配的工业规模版。决策链:可行性(Hall/匈牙利)→ 最优权重(Kuhn–Munkres 的带权匈牙利,O(n3),远眺)→ 在线化(求即时到达:在线匹配与竞价,远眺)。先问配不配得上、再问配得好不好、最后问来不来得及配——三问对应三章深度的算法家族。

应用二:网络中枢与覆盖(König 的对偶兑现)。「在二部网络中选最少的节点监控所有链路」= 最小点覆盖 = 最大匹配(König):监控预算从「试试看」变成「解一个匹配」。对偶视角的价值在「下界证书」:匹配给出「至少这么多」的证明——最优解与它的证据同时到手,与最大流最小割同一格局。

应用三:社交网络的「结构洞」。中介中心性高的点(连接两个大群的桥点)是覆盖问题的天然解——覆盖与匹配的对偶把「谁是关键人物」变成可计算问题。第六章的 PageRank 将给出另一种「重要度」——「关键」有多义:结构关键(覆盖)与流量关键(谱),两把尺子将在第六章并排放好。

方法论收束。匹配线的三段式——判据(Hall)回答「可不可能」,算法(匈牙利)回答「怎么找到」,对偶(König)回答「为什么到头」——是图论方法论的完整样本:存在性、构造性、最优性三证合一。下一线(Ramsey)将牺牲全部构造性,换取更惊人的必然性。

136讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.11 Ramsey 定理:有序的必然

★★★★ 线二开题:从「能不能配」到「必不必然」。

Ramsey 定理。对任意正整数 r, b,存在最小数 R(r, b):任何 n ≥ R(r, b) 个点完全图的边红蓝二染色,必含红色 Kr 或蓝色 Kb。

存在性证明(双归纳,骨架)。R(r, 1) = R(1, b) = 1 平凡。核心递推:R(r, b) ≤ R(r−1, b) + R(r, b−1)。取 N = R(r−1,b) + R(r,b−1) 个点中任一点 v:它连出 N − 1 条边,红邻居 ≥ R(r−1,b) 或蓝邻居 ≥ R(r,b−1)(鸽笼!)——红邻居群内部要么红 Kr−1(加 v 成红 Kr)要么蓝 Kb;蓝对称。∎

气质的三个注脚。① 非构造性:证明只给上界(松得吓人:R(5,5) 的已知界 43–48?——是 43 ≤ R(5,5) ≤ 48,已是最精确的实战前沿之一);「存在」与「找到」在此彻底分家;② 单调:R 随参数增大只增不减;③ 对称:R(r, b) = R(b, r)。

哲学极点(Erdős 的双寓言)。「若有外星人入侵,索要 R(5,5) 的值,人类应动员全部计算资源硬算;若索要 R(6,6),人类应立即备战——根本算不出。」已知:43 ≤ R(5,5) ≤ 48(McKay–Radziszowski 1995);R(6,6) 的界 102–165。数值雪崩式难,定理却一句话说尽存在——Ramsey 是「易述难算」的极限标本。

与匹配线的对照收口。匹配:判据 + 算法 + 对偶(构造性天堂);Ramsey:存在 + 无构造 + 界粗(存在性荒原)。两种气质拼在一起,恰好是「图论」乃至「数学」的一张全景照。

Ramsey 定理 Ramsey 定理(1930):有序的必然 对任意 r, b 存在 N = R(r, b),使 N 人派对中 必有 r 人互相认识 或 b 人互相不认识 (二染色团定理:KN​ 边二染色必含单色 Kr​ 或 Kb​) 气质三连 存在性:只证「有」 不说明 N 以内怎么构造反例 不说明多大才够(界松得离谱) 与鸽笼的亲缘 鸽笼:够多必有同窝 Ramsey:够乱必有同色团 「必然性」的离散数学双雄
图 5-8 「彻底的混乱不可能存在」:Ramsey 定理是组合数学的存在主义宣言——数量积累到临界,结构必然涌现。
137讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.12 R(3,3)=6:手工证明

★★★ 讲义 5.11:R(3,3) = 6——亲手完成的第一个 Ramsey 数。

R(3,3) = 6。6 人派对中必有 3 人互相认识或 3 人互相不认识;5 人可以避免。

下界 R(3,3) > 5(5 人反例)。5 人围成一圈,相邻者红(认识)、对角者蓝——五边形加五角星染色:红边成 C5(无三角)、蓝边也成 C5(无三角)。两侧都干净——6 的必然性不再平凡,5 的确是「自由的极限」。

上界 R(3,3) ≤ 6(三行证明)。任取一人 A,对其余 5 人:至少 3 条同色关系线(鸽笼:2+3 分组)。设 A–B、A–C、A–D 为红。看 B、C、D 三人:若任何一条红线(如 B–C),则 A-B-C 红三角;若全蓝,则 B-C-D 蓝三角。∎

证明的三处精益。① 取点 + 数邻边 + 鸽笼:Ramsey 上界证明的标准起手式,p138 的递推正是此式的机械化;② 「若…要么…要么」的二岔:组合证明的呼吸节奏——每种岔路都通向目标;③ 反例先行的完整性:没有 5 人反例,「= 6」就只是「≤ 6」——精确值的军功章一半属于反例构造(与 Erdős–Gallai 的可图性判定同风)。

派对问题的变身术。「认识/不认识」=「同色/异色」=「同侧/异侧」:三人共进午餐(鸽笼+握手?)、无汉密尔顿的随机图论证、同调代数的「有限染色」……R(3,3) 是离散数学的「瑞士军刀刀片」:凡遇「任意分成两类必有一类抱团」的直觉,先想到它。

预告。下一页把 R(3,4) 也拿下(界),并见识 R(4,4) = 18 与 R(5,5) 未知之间的深渊——从 6 到「未知」,只隔了两个参数。

138讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.13 Ramsey 数的边界与困难

★★★ 讲义 5.12:Ramsey 数的边界与困难——深渊观光。

已知版图(截至当代)。R(3,3) = 6;R(3,4) = 9;R(3,5) = 14;R(4,4) = 18;R(3,6) = 18;R(3,7) = 23;R(4,5) = 25;R(5,5):43 ≤ R ≤ 48,未知;R(6,6):102 ≤ R ≤ 165。参数只挪一格,难度指数式爆炸——枚举空间是 2n(n−1)/2 张染色图,n = 48 时超过 10300,宇宙原子不够数。

为什么这么难?上界靠「递推 + 有限枚举」(组合 + SAT 求解器合力,R(4,5) = 25 即 2024 年前后机器辅助的收官战之一?——更准确:R(4,5) = 25 由 McKay–Radziszowski 1995 定谳);下界靠构造染色图(循环图、概率法)。每前进一步都是一篇论文——Ramsey 数是「组合数学的费马大定理」式难关家族。

概率法一瞥(Erdős 1947 的下界革命)。随机染色:每边独立红蓝各半。含红 Kr 或蓝 Kr 的概率 ≤ 2·C(n,r)·2−C(r,2);当它 < 1 时,存在「无单色 Kr」的染色 ⇒ R(r,r) > n。「证明存在」不必「拿出它」——随机性做证词,这是 Erdős 概率方法的开山之作,直接催生概率组合学(第六章随机图的先声!)。数值上给出 R(r,r) > ⌊2r/2⌋ 量级——比任何显式构造都大。

上界的天花板。Erdős–Szekeres 经典递推给 R(r,r) ≤ C(2r−2, r−1) ≈ 4r/√r;与下界 2r/2 之间隔着指数鸿沟——「对角 Ramsey 数的渐近」是组合数学最大的开放问题之一。

方法论的镜子。匹配线教「构造的秩序」,Ramsey 线教「存在的混沌」;而概率法在混沌中辟出存在性走廊——三件工具(构造、枚举、概率)构成当代组合学的全部武器谱。

139讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.14 独立集、覆盖与团

★★ 讲义 5.13–5.14:独立集、团与 Gallai 恒等式——收拢散落的概念。

定义。独立集:两两不相邻的点集,最大记 α(G)。团:两两相邻的点集,最大记 ω(G)。点覆盖:触及每条边的点集,最小记 τ(G)。边覆盖:触及每个点的边集,最小记 ρ(G)。

Gallai 恒等式(1959,二部图全套对偶)。无孤立点的任何图:α + τ = n(补集关系:非覆盖点成独立集);二部图另有 ν = τ(König)与 ν = ρ(边覆盖对偶,可由 Hall 推)。合账:二部图里 α、τ、ν、ρ 四个量互相锁死——一个匹配算出,全部到手。一般图只有 α + τ = n 与 Gallai 弱不等(ν ≤ τ ≤ 2ν)——奇圈又一次是病灶。

Ramsey 的「序语言」重述。R(r, b) ≤ n ⟺ 任何 n 点图必有 ω ≥ r 或 α ≥ b——「认识团」是团、「陌生团」是独立集(补图视角)。于是 Ramsey 理论 = 「团数与独立数不可同小」的存在定理:n 大时 max(ω, α) ≥ ~½log2n。「任何大群体必有子结构」从定理升格为数量级。

与着色线的回望。χ ≥ n/α(p102)+ Ramsey 保证 α ≤ log ——两者夹出:存在 χ 大于团数的图(R(3,k) 类构造 + Mycielski)——第四章埋的「χ ≠ ω」伏笔在此结账:着色难度不在团,而在全局结构。

本章三线合账。匹配(ν, τ, ρ 的对偶家族)、Ramsey(α, ω 的必然家族)、着色回望(χ 的下界家族)——独立集是三线交汇的枢纽概念:它是色类的成员、覆盖的补集、Ramsey 的另一方。

140讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然5.15 应用:网络中枢与通往第六章

★★ 讲义 5.15 后半:网络中枢——从覆盖到枢纽再到下一章。

网络中枢问题。「选最少的监控点看住全部链路」(τ)、「选最多的互不干扰单元」(α)、「给最多对配对成功」(ν)——同一个图的三个预算问题,二部世界全部多项式,一般世界全部 NP 完全(α/τ 的判定 NP 完全;ν 一般图也多项式——Blossom!)。「难题家族」的成员资格取决于问法与图的类型——这是复杂度敏感性的第一堂实例课。

中枢的两种哲学。覆盖哲学(König):关键点 = 拦住所有边的最小集合——「拆网要拆哪几根柱子」;中介哲学(第六章谱方法):关键点 = 流量汇聚处——「网上的人绕不开谁」。两把尺子常常选中不同的人:结构关键者未必流量关键。「重要」是个需要指定度量的问题——第六章 PageRank 会把这句口号变成一行公式。

应用落点清单(本章全部应用的合账)。婚配与学校录取(GS + NRMP)、任务分派(匈牙利 + 带权版)、器官交换(匹配链 + 不完整偏好)、监控与枢纽(König 对偶)、广告竞价(在线匹配)、实验排班(二部正则)——一条「配对」母题贯穿十行产业。

通往第六章。至此,本册的图论主角(度、连通、遍历、平面、着色、匹配、Ramsey)全部登场,但它们各说各话。第六章请出一位 universal translator:邻接矩阵的谱——所有概念将获得线性代数的第二语言:连通性 = λ2 > 0、二部 = 谱对称、匹配计数 = 积和式(远眺)、随机游走 = 谱隙、PageRank = 主特征向量。矩阵里的图,是本书的收官之地。

141误读

第五章 匹配与 Ramsey:配对的艺术与有序的必然常见误读:匹配与 Ramsey 的四个误区

★★ 常见误读:匹配与 Ramsey 的四个误区。

误区一:「最大匹配 = 完美匹配的另一个说法」。错。3 人对 4 事:最大匹配 3 对、完美匹配不存在(人数不等或 Hall 卡死时)。最大看「最多几对」,完美看「全覆盖」——后者是更强的要求。

误区二:「Hall 条件只查全部 X 就够了」。大错——这是 Hall 定理最经典的坑。必须每个子集 S ⊆ X 都验 |N(S)| ≥ |S|:全体合格而某个「小团伙」邻居不足的失败案例比比皆是(三个人合起来只认识两个项目)。Hall 的威力恰在于把失败定位到团伙。

误区三:「稳定匹配是唯一的」。错。稳定匹配可以有很多个(指数多个的实例存在);Gale–Shapley 输出的是两个极端之一(求婚方最优/被求方最劣)。把「算法输出」当成「定义唯一解」是机制设计的常见误读。

误区四:「R(3,3) = 6 说明 Ramsey 数都很好算」。6 → 9 → 14 → 18 → …,R(5,5) 已是悬案(43–48),R(6,6) 的界宽出天际。Ramsey 的「易述」与「难算」是两件事——定理一句话、数值一个世纪,正是它的魅力与恐怖。

防坑纪律。先问「哪种最好」(最大/完美/稳定);Hall 逐子查验;稳定匹配言必称「哪一个」;Ramsey 数报值必附上下界。
142例题

第五章 匹配与 Ramsey:配对的艺术与有序的必然例题精讲:增广路的手演

★★★ 例题 1(增广路的手演)。5 工人 5 任务二部图(图 5-9),给定 M = {W1-Ⅰ, W3-Ⅱ},逐步增广至最大,并回答是否存在完美匹配。

第一轮(从 W2 出发)。W2 未饱和。交替搜索:W2-Ⅰ(非匹配)→ Ⅰ 已被 W1 饱和 → W1-Ⅱ(匹配)→ Ⅱ 被 W3 饱和 → W3-Ⅲ(非匹配)→ Ⅲ 未饱和——增广路到手:W2→Ⅰ→W1→Ⅱ→W3→Ⅲ。翻转:W2-Ⅰ、W1-Ⅱ、W3-Ⅲ 入 M,旧边 W1-Ⅰ、W3-Ⅱ 出 M。|M| = 3。

第二轮(从 W4 出发)。W4-Ⅳ(非匹配)→ Ⅳ 被 W3 饱和 → W3-Ⅱ?Ⅱ 现在的配偶是 W1 → W1-Ⅰ → Ⅰ 被 W2 饱和 → W2 的其他邻居?无——堵死;W3-Ⅲ → Ⅲ 未饱和!等等——Ⅳ 的搜索里走到 W3 后可走 W3-Ⅲ(匹配边)→ Ⅲ 未饱和 ⇒ 增广路 W4→Ⅳ→W3→Ⅲ?Ⅳ 被 W3 饱和(第二轮前的 M 含 W3-Ⅲ?第一轮翻转后 Ⅲ 的配偶是 W3!所以 W4-Ⅳ 非匹配 → Ⅳ 被 W3 饱和 → W3-Ⅲ 匹配边 → Ⅲ 已饱和——堵死一半)。重走:W4-Ⅳ→W3→W3-Ⅲ→Ⅲ 饱和(就是 W3 自己)——死路。W4 的邻居只有 Ⅳ——W4 堵死。

第三轮(W5)。W5-Ⅴ(非匹配)→ Ⅴ 被 W4?不——M 现为 {W2-Ⅰ, W1-Ⅱ, W3-Ⅲ, W4-Ⅳ, W5-Ⅴ}? 逐查:第二轮 W4 堵死无增广,M 仍 3 条;W5-Ⅴ:Ⅴ 邻居 4、5——Ⅴ 被 W4 饱和?M 中 W4 的配偶是 Ⅳ!Ⅴ 未饱和 ⇒ W5-Ⅴ 本身就是增广路(单边)。翻转:|M| = 4:{W2-Ⅰ, W1-Ⅱ, W3-Ⅲ, W5-Ⅴ}。

第四轮。W4 堵死已证(唯一邻居 Ⅳ 的配偶 W3 无处可去?——W3-Ⅲ 的配偶就是 W3;Ⅲ 的其他非匹配邻?Ⅲ 的邻居是 2、3——2 的配偶 Ⅰ、1 的配偶 Ⅱ……完整交替森林:W4→Ⅳ→W3→Ⅲ→W2→Ⅰ→W1→Ⅱ:全饱和无出口 ⇒ W4 堵死确证)。停机。最大匹配 = 4;完美匹配不存在(W4 永远单身——它的失败证词即 Hall 反例:S = {W4 与所有能「让位」的工人},其合邻居不足)。

方法复盘。增广手演三纪律:交替边严格红蓝相间、终点必须是未饱和右点、堵死要翻完整棵交替森林才算数。下一页习题课练 Hall 判据本身。
例题 1 的二部图 例题 1 用图:5 工人 x 5 任务 1 2 3 4 5 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ 初始 M = {W1-Ⅰ, W3-Ⅱ}(红),W2、W4、W5 未饱和 增广路示范:W2 → Ⅰ → W1 → Ⅱ → W3 → Ⅲ(首尾未饱和、红蓝交替) 翻转后:{W2-Ⅰ, W1-Ⅱ, W3-Ⅲ}——匹配 +1
图 5-9 增广路的可视化:从 W2 出发的交替路终点落在未饱和右点 Ⅲ——中段「抢来的」任务由原主人换岗消化。
143习题

第五章 匹配与 Ramsey:配对的艺术与有序的必然习题课:Hall 判据演练

★★ 习题课(一):Hall 判据演练。五题手演。

S1.验证例题 1 的图中 W4 的堵死对应哪个 Hall 违反子集(把它找全)。S = 交替森林里的全体左点 {W4, W3, W2, W1}?数邻居:N(S) = {Ⅰ, Ⅱ, Ⅲ, Ⅳ},|N| = 4 = |S|?差一个——把可达范围算准, violation 在 {W4, W3, W2, W1, W5}?自己数。

S2.n 个姑娘每人恰认识 n 个小伙、每个小伙恰被 n 个姑娘认识(n-正则二部图)——证明人人可婚配。p131 正则推论:Hall 条件由双计数自动成立。

S3.集合族 A1={1,2}, A2={1,3}, A3={2,3}, A4={1,2,3}:有 SDR(相异代表系)吗?违反 Hall 的子集是谁?四个集合的并只有 3 个元素——S = 全体,|N(S)| = 3 < 4。整体不足与「团伙不足」在此合一。

S4.证明:若二部图 X 侧每点度 ≥ k 且 Y 侧每点度 ≤ k,则存在饱和 X 的匹配。k|S| ≤ 边账 ≤ k|N(S)|——与正则推论同款双计数,正则性放宽为「左多右少」。

S5.0-1 矩阵(6×6):每行恰 3 个 1、每列至多 3 个 1——证明可选出 6 个 1 使两两不同行不同列。行-列二部图是「左度 3 右度 ≤ 3」——S4 直接适用;「不同列」即匹配。

自评线。S1 失败证词定位;S2 正则推论复述;S3 SDR 翻译;S4 双计数推广;S5 矩阵建模。五题全对,Hall 一侧通关。
144例题

第五章 匹配与 Ramsey:配对的艺术与有序的必然例题精讲:Gale–Shapley 手演

★★★ 例题 2(Gale–Shapley 手演)。3 男 3 女完整走一遍男方求婚算法,并验证稳定性与「男方最优」。

偏好表(从最到最不接受):

男士偏好女士偏好
m1w1, w2, w3w1m2, m1, m3
m2w1, w3, w2w2m1, m3, m2
m3w1, w2, w3w3m1, m2, m3

轮 1:m1、m2、m3 都向 w1 求婚。w1 保留 m2(她的第一名),拒绝 m1、m3。

轮 2:m1 向 w2 求婚(保留);m3 向 w2 求婚——w2 比较 m1 与 m3:保留 m1(她的第一名),拒绝 m3。

轮 3:m3 向 w3 求婚(保留)。无单身男——停机。匹配:{m2-w1, m1-w2, m3-w3},总求婚 5 次 ≤ n2 = 9。

稳定性核查(3 对各查 6 个外配 = 18 次)。抽查最可疑的:m1 更爱 w1,但 w1 现任是 m2——w1 的第一名 ✓ 不动心;m3 更爱 w1/w2:w1 现任第一名、w2 现任 m1 是她的第一名 ✓;w2 更爱 m2?m2 现任 w1 是 m2 自己的第一名 ✓。全部排除——稳定。

「男方最优」验证。m2 拿到第一名 w1、m1 拿到 w2(他的第二)?m1 可能更好吗——存在稳定匹配使 m1 得 w1 吗?若 m1-w1、m2 得 w2/w3:w1 爱m2 胜 m1 且 m2 爱 w1 胜 w2/w3 ⇒ (m2, w1) 是 blocking——不稳定。m1 的 w2 已是他能拿到的最好稳定结局 ✓。同理 m3 的 w3。三男同时「稳定意义下最优」——不对称性当场可见:三位女士全部拿到最劣稳定结局(w1 丢第一、w2 得第二?w2 的第一名正是 m1 ✓——但相对全体稳定匹配仍最劣,全表核验略)。

方法复盘。GS 手演三纪律:求婚沿表严格下滑不回头、女士只做「比较—保留/拒绝」、停机判定看单身池。稳定核查的懒办法:只查「男士更爱且女士更爱」的对——由算法不变量可只查被拒组合。下一页习题课轮到设计机制。
145习题

第五章 匹配与 Ramsey:配对的艺术与有序的必然习题课:稳定婚姻实战

★★ 习题课(二):稳定婚姻实战。五题手演。

S1.把例题 2 改为女方求婚版,写出轮次与结果,验证「女士最优/男士最劣」。轮 1 三女都向 m1:m1 保留 w1(他的第一);轮 2 w2→m2、w3→m2:m2 保留 w2?他的排序 w1, w3, w2——w2 是他最不爱?m2 现任是 w1!w2、w3 依次被拒……最终 {m1-w1, m3-w2?, m2-w3?}——动手算,结果必与男方版不同。

S2.构造一个 3×3 实例,使稳定匹配恰有一个,且双方版本输出相同。让所有男士偏好完全一致、所有女士偏好也完全一致(且有「共同认可的第一名」互锁)——极端一致 ⇒ 稳定域坍缩成一点。

S3.证明:男方求婚版中,任何男士若被全部女士拒绝则算法不停(矛盾于停机证明)——从而停机时必为完美匹配。被拒 n 次需 n 个不同女士各拒一次;拒绝总数 ≤ 求婚总数,而停机判定正是「无单身男」。

S4.「宁缺毋滥」版:m3 把 w3 标为不可接受(w3 也把 m3 标为不可接受)。例题 2 的输出如何变化?还存在稳定匹配吗?删除 m3-w3 边后重跑:GS 照常停机,输出仍完美(其他两对不受影响)——若某对只剩互相不可接受,则必有人单身(稳定但不完美)。

S5(设计题).医院-申请者匹配中医院席位可多招(一对多)。如何化归为标准稳定婚姻?医院按席位拆成多个「虚拟医院」(偏好一致)——p134 的标准化技术;真实系统 NRMP 即如此。

自评线。S1 对称版本;S2 坍缩构造;S3 停机不变量;S4 不完整偏好;S5 制度化归。五题全对,稳定婚姻通关。
146地图

第五章 匹配与 Ramsey:配对的艺术与有序的必然本章地图:匹配与 Ramsey 的依赖结构

★★ 本章地图:三线两气质。

匹配线(5.1–5.6)。定义 → Berge 判据(增广路)→ Hall 充要(存在性)→ König 对偶(最优性证据)→ 匈牙利算法(构造性)。依赖前章:Menger/最大流(增广母题)、DFS(交替森林的搜索底座)。一条完整的「判据—算法—对偶」流水线。

稳定线(5.7–5.9)。在匹配之上加偏好与激励:GS 算法给存在性与构造性,最优性定理给不对称性,策略行为给机制设计的开口。它是匹配线的博弈论续篇——把「能不能配」升级为「愿不愿意留在配对里」。

Ramsey 线(5.11–5.13)。存在性定理 + 手工里程碑 R(3,3) = 6 + 数值深渊。气质与匹配线全面对照:无构造、无算法、无对偶证词——只有「必然」本身。

枢纽与出口。独立集 α 是三线枢纽(5.14):它是色类成员(第四章)、覆盖补集(Gallai)、Ramsey 的另一方。出口在第六章:谱语言将重述连通(λ2)、二部(谱对称)、随机游走(谱隙),并给「网络重要度」第二把尺子(PageRank)。

前后章接口。第二章生成树(交替森林是带根的树结构);第四章色数(χ ≥ n/α 在 5.14 结账);第六章随机图(Erdős 概率法的正式舞台)。

第五章知识地图 第五章地图:匹配与 Ramsey 匹配线 Berge 增广 5.2 Hall 充要 5.3 König 对偶 5.4 匈牙利 5.5 / 正则 5.6 稳定线 提法 5.7 Gale–Shapley 5.8 最优性 5.9 激励 5.9 Ramsey 线 定理 5.11 R(3,3)=6 5.12 界的困难 5.13 α/ω/χ 交汇 5.14 交汇:α 是三线的枢纽(色类/覆盖补/Ramsey 另一方) 构造性(匹配)vs 存在性(Ramsey)的气质对照
图 5-10 匹配线(判据→算法→对偶)与稳定线(博弈)共享增广/偏好语言;Ramsey 线独立成峰,与 α/ω 交汇。
147小结

第五章 匹配与 Ramsey:配对的艺术与有序的必然小结:匹配的语言

★★ 第五章小结(上):匹配的语言。

概念清单。匹配 / 最大匹配 ν / 完美匹配 / 饱和;M-增广路(首尾未饱和、红蓝交替);Hall 条件(任意 S ⊆ X:|N(S)| ≥ |S|);点覆盖 τ / 边覆盖 ρ / 独立集 α;稳定匹配与 blocking pair。

定理清单。Berge(M 最大 ⟺ 无增广路);Hall(饱和 X ⟺ Hall 条件,失败证词 = 违反子集);König(二部图 ν = τ);正则二部图有完美匹配且 1-因子分解;Gallai 恒等式 α + τ = n;GS(稳定匹配存在,男方最优/女方最劣)。

算法清单。匈牙利 O(nE)(增广 + 堵死证据);Hopcroft–Karp O(√nE)(分阶段);GS O(n2)(求婚轮次);带权匈牙利 O(n3)(远眺)。

对偶母语的期末结算。本册五座对偶里程碑:Menger(路-割)、最大流最小割、切定理(生成树)、König(匹配-覆盖)、GS(个体理性-全局稳定)。「一侧最大化与另一侧最小化取等」是二部结构反复赠送的礼物——凡是「左右分明」的世界,对偶几乎总在场。

一句话记住匹配侧:增广路在就能更大(Berge),邻居不够分必是团伙的锅(Hall),配对数 = 拦路点数(König),求婚制保稳定且求婚方占优(GS)。

148小结

第五章 匹配与 Ramsey:配对的艺术与有序的必然小结:Ramsey 的语言

★★ 第五章小结(下):Ramsey 的语言。

概念清单。Ramsey 数 R(r, b)(单色 K_r 或 K_b 的必然阈值);对角数 R(r, r) 与非对角数;团 ω / 独立集 α;概率方法(随机染色证存在反例)。

定理清单。Ramsey 定理(存在性,递推上界 R(r,b) ≤ R(r−1,b) + R(r,b−1));R(3,3) = 6(上界鸽笼 + 下界五边形五角星染色);Erdős 概率下界 R(r,r) > ⌊2r/2⌋;已知数值 R(3,4)=9, R(4,4)=18, 43 ≤ R(5,5) ≤ 48。

证明技术清单。① 取点数邻 + 鸽笼二岔(上界证明的起手式);② 反例构造(下界:显式染色图或概率存在);③ 双归纳(递推的两个参数);④ 概率证词(「存在」不必「给出」——Erdős 1947 的革命)。

气质的最终对照表。匹配线:判据精确、算法快、对偶证书、失败也给证词;Ramsey 线:定理易述、数值难求、无构造、界宽。两线共享一个哲学断言——「结构是大数量的宿命」:匹配说「资源够则配对存在」,Ramsey 说「人数够则同色团存在」。

一句话记住 Ramsey 侧:6 人必有三人互识或互不识(R(3,3)=6);每挪一个参数难度翻一个世纪;想证存在大反例——交给随机。

149思想卡

第五章 匹配与 Ramsey:配对的艺术与有序的必然思想卡:必然性——从鸽笼到 Ramsey

★★★ 思想卡:必然性——从鸽笼到 Ramsey。

「n+1 只鸽子进 n 个笼,必有两只同笼」——鸽笼原理是最朴素的必然性:数量越过容量,碰撞不可避免。本章的 Ramsey 把这个直觉推向深水:不是「必有碰撞」,而是「必有成建制的结构」。

三级火箭。第一级(鸽笼):碰撞必然——两物同处;第二级(R(3,3)=6):成团必然——三人同色;第三级(Ramsey 定理):任意规模的成团必然——r 人同色团在足够大的系统里躲不掉。每一级都从「计数碰撞」升级为「结构涌现」。

必然性的两个方向。正向(Ramsey):混乱足够大 ⇒ 秩序必然——「彻底的混乱不可能存在」;反向(概率法):想要秩序 ⇒ 随机往往就有——Erdős 用「随机」证明「有序样本的存在」,混沌成了秩序的证人。必然与随机这对冤家,在组合数学里互相作证。

认知的迁移。① 「必然」常以「阈值」的面目出现:R(3,3)=6 的 6、随机图巨型分支的临界 p ≈ 1/n(第六章)、相变的临界温度——阈值前后是两个世界;② 「必然」不承诺「好找」:R(5,5) 的值存在但人类不知道——存在性与可知性是两种资源;③ 「必然」不指定「哪个」:6 人派对必然有三团,但哪三人——必须看具体的认识关系。定理锁住存在,个案留给计算。

本卡的位置。它是本册「抽象的代价与回报」(第一章思想卡)的续篇:抽象让我们看见「必然性」本身的形状——而不是一次一次地撞见它。

150挑战

第五章 匹配与 Ramsey:配对的艺术与有序的必然挑战:R(3,4) 的完整论证

★★★★ 挑战:R(3,4) = 9 的完整论证。复刻 R(3,3) 的双路战术,把下一个 Ramsey 数拿下。

下界:R(3,4) ≥ 9,即造一个 8 点染色图:无红三角、无蓝 K4。经典构造:8 点圈,红边取「相邻 + 对径?」——提示方案:点标 0–7,红边 = 差 ±1(圈),蓝边 = 其余(差 ±2, ±3, ±4)。验证:红边只有圈边,无红三角 ✓;蓝图 = 圈的补图——需要验证无蓝 K4,即任 4 点中必有一条圈边(红)。任取 4 点,若它们两两不相邻(无圈边),则它们是圈上的「独立集」——C8 的最大独立集是 4(对径交替取法 0,2,4,6)!检查 {0,2,4,6}:两两差 2 或 4 或 6——无圈边——全是蓝边 = 蓝 K4!构造失败。修正:改红边为「差 ±1 与 ±4」?逐案试错,直到两侧同时干净(答案存在;这正是 Ramsey 下界研究的日常:构造-验尸-重造)。

上界:R(3,4) ≤ 9。任取一点 v:9 点中 v 连出 8 边。若红邻 ≥ 4:4 个红邻中若有一条红边 → 红三角;若全蓝 → 蓝 K4(4 点全蓝互连)——两条岔路都出结果 ✓(注意此处连讨论都省了:红邻 4 个直接够)。若红邻 ≤ 3:蓝邻 ≥ 5——5 个蓝邻中依 R(3,3) = 6?不对,5 点:若其中有红 K3?我们要蓝 K4:5 个蓝邻内部若无红三角,则……红三角 v 不需要——5 个蓝邻若无红边成三角形(即内部无红 K3),那么它们的「红边图是三角形-free」⇒ 蓝 K3?逻辑写完整:蓝邻集内或红 K3(加?不加 v——红 K3 自身即是!)或蓝 K3 + v = 蓝 K4。∎

结算。两条岔路的「自动出结果」来自 3 与 4 的 asymmetry:非对角 Ramsey 的证明常比对称版更巧——参数的不对称给岔路「不对称的火力」。

挑战的余味。刚走完的是 Ramsey 数研究的完整工序:构造下界(试错+验尸)、递推上界(岔路火力)。R(4,4) = 18 用同法可逼近(上界易、下界难);R(5,5) 卡在构造端——人类的画笔停在了 43。
151实验

第五章 匹配与 Ramsey:配对的艺术与有序的必然实验:匈牙利算法真跑——任务分配对拍

★★★ 把匈牙利算法真跑一遍:6 工人 × 6 任务的任务分配,与「先到先得」贪心对照,见证增广路的翻盘时刻。

def hungarian(n, m, adj):
    match = [-1] * m
    def try_aug(u, vis):
        for v in adj[u]:
            if not vis[v]:
                vis[v] = True
                if match[v] == -1 or try_aug(match[v], vis):
                    match[v] = u
                    return True
        return False
    cnt = 0
    for u in range(n):
        if try_aug(u, [False] * m):
            cnt += 1
    return cnt, match

def greedy(n, m, adj):
    taken = [False] * m
    cnt = 0
    detail = []
    for u in range(n):
        for v in adj[u]:
            if not taken[v]:
                taken[v] = True; cnt += 1
                detail.append("W%d->T%d" % (u + 1, v + 1))
                break
    return cnt, detail

adj = [[0, 1], [0], [1, 2], [3], [4], [5]]
c, M = hungarian(6, 6, adj)
pairs = ["W%d->T%d" % (u + 1, v + 1) for v, u in enumerate(M)]
print("匈牙利最大匹配 =", c, ";", " ".join(sorted(pairs)))
g, detail = greedy(6, 6, adj)
print("贪心匹配 =", g, ";", " ".join(detail))

实跑输出:

匈牙利最大匹配 = 6 ; W1->T2 W2->T1 W3->T3 W4->T4 W5->T5 W6->T6
贪心匹配 = 5 ; W1->T1 W3->T2 W4->T4 W5->T5 W6->T6
对拍读法。① 贪心的翻车现场:W1 先到先得抢了 T1,而 T1 是 W2 的唯一能做任务——W2 永久失业,贪心 5 对;② 增广路的翻盘:匈牙利轮到 W2 时没有硬抢,而是走增广路 W2→T1→W1→T2(W1 让出 T1 去做 T2),W3 顺势接 T3——「后来者插队、先来者换岗」的连锁消化,6 对全满;③ 与 Dijkstra 的对照:着色与这里的贪心都会「锁定翻不了案」,但匹配世界有增广路这个「后悔药」——结构允许后悔的贪心才能被封神为算法。
152格物札记

第五章 匹配与 Ramsey:配对的艺术与有序的必然格物札记:从婚配到肾脏交换

★★ 格物札记:从婚配到肾脏交换。

1962:一篇「游戏文章」。Gale 与 Shapley 发表《大学录取与婚姻的稳定性》时,它更像一个智力玩具——10 页纸、无数据、无应用。谁能想到半个世纪后它每年调度数万条生命线。

1980s–2000s:市场的算法化。Roth 接手 NRMP(美国住院医师匹配):发现 1950 年代的机制「恰好」是 Gale–Shapley 的一个变体且运行稳定——「算法早已在产业中无意识演化」的惊人事实;随后亲手设计纽约学校匹配(2003)与肾交换机制——2012 年诺贝尔经济学奖(与 Shapley)加冕。同一骨架的三次落地:婚姻、教育、器官——「配对」的结构普适性。

肾脏交换的图论内核。供体-受体不兼容的对子(如妻子需要、丈夫不能捐)构成「交换圈」:A 对的供体给 B 对的受体、B 对的供体给 A 对的受体——二元环 = 二部图的匹配边;三元环、长链(含「无条件捐献者」作源)是增广路的现实化身。「找最多对子的交换方案」= 最大匹配(带兼容约束);而「从不反悔」的稳定性约束在器官语境里生死攸关——手术需同步进行,任何一方退出都毁掉全链(现实机制用「同步 + 保险」处理,激励问题远未终结)。

札记的结论。本章算法的三个现实教益:① 朴素规则(求婚制)可以承载深刻的市场设计;② 「失败证词」(Hall 反例)在现实里是「谁被卡住了」的医学与伦理清单;③ 图论给的从来不是答案,而是把价值冲突翻译成约束的语言——剩下的是人的选择。

153速查

第五章 匹配与 Ramsey:配对的艺术与有序的必然速查:第五章概念与定理

★★ 速查:第五章概念与定理。考前一页纸,逐条过。

对象/定理陈述(速记)备注
匹配 M两两不共点的边集ν 最大;完美 = 饱和全部
Berge 定理最大 ⟺ 无 M-增广路增广 = 首尾未饱和交替路
Hall 定理饱和 X ⟺ ∀S⊆X: |N(S)| ≥ |S|失败证词 = 违反子集
König 定理二部图 ν = τ最大匹配 = 最小点覆盖
正则二部图有完美匹配;1-因子分解双计数验 Hall
Gallai 恒等式α + τ = n(任何图)二部另有 ν = ρ
匈牙利算法增广至堵死,O(nE)Hopcroft–Karp O(√nE)
稳定匹配无 blocking pair 的完美匹配GS:男方最优 / 女方最劣
Gale–Shapley求婚轮次制,O(n2)真话:求婚方占优策略
Ramsey 定理R(r,b) 存在;≤ R(r−1,b)+R(r,b−1)非构造;界松
R(3,3) = 6上界鸽笼 + 下界 C5 染色派对定理
R(3,4) = 9同法可手证非对角岔路火力
R(5,5)43 ≤ R ≤ 48,未知概率下界 2r/2 量级

易忘三则。Hall 要逐子集验(不是验全体);稳定匹配不唯一(GS 只给两端);概率法证存在不给出构造。

154讲义

第五章 匹配与 Ramsey:配对的艺术与有序的必然第六章预告:矩阵里的图

★★★ 五章以来,图的每个概念都说「图论方言」。第六章请出一位普适翻译:矩阵。

谱线。邻接矩阵 A 的特征值(图的谱)是图的「声纹」:连通 ⟺ λ2 > 0;二部 ⟺ 谱关于 0 对称;生成树个数 = Laplacian 代数余子式(Matrix–Tree,第二章 Cayley 公式的矩阵化兑现);随机游走的收敛速度 = 谱隙——第一章埋的「代数视角」伏笔整章兑现。

网络线。随机图 G(n, p) 的相变(巨型分支在 p ≈ 1/n 处骤现)解释真实网络为什么「一敲全连」;小世界定理把第一章实验的「平均距离 3.21」升格为定理(~ log n / log d);PageRank 把「重要」变成主特征向量——谷歌的起点;图神经网络让机器直接「读」图。图论从课堂走进每个人的口袋。

衔接讲义。下一章开始:谱的定义与不变量、Laplacian、Matrix–Tree、随机游走与电网络、随机图与相变、PageRank 与社区发现。带着全书的家当上场:度(握手引理)、连通(BFS/DFS)、树(Cayley)、着色(二部谱对称)、匹配(积和式远眺)——它们都将在矩阵里再见。

第六章预告 第六章:代数图论与网络——矩阵里的图 谱线 邻接矩阵的特征值 Laplacian 与谱隙 Matrix–Tree 计数 连通 = λ2​ > 0 网络线 随机图 G(n,p) 与相变 小世界与六度分隔 PageRank:链接即投票 图神经网络 母题终章 全书概念获得第二语言(线性代数) 「容器决定性格」的最后变奏:谱决定动态
图 5-11 谱线给图装上线性代数的眼睛,网络线让图走进真实世界——两线在「谱决定动态」处合流,全册收官。
第六章

代数图论与网络:矩阵里的图

把图写成矩阵,代数的全部火力就上了膛。邻接矩阵的谱(特征值全体)是不变量:同构图必有同谱,谱决定了许多结构性质;Laplacian 矩阵的谱隙度量图的「连通强度」,Matrix–Tree 定理用代数余子式数出生成树个数——Kirchhoff 在电路计算中发现了它。随机游走把图变成马尔可夫链,电网络类比给出有效电阻的图论解释。后半章进入网络科学:Erdős–Rényi 随机图的相变、巨型分支的涌现、小世界与无标度网络、PageRank 的幂迭代、社区发现、图上的传染与同步动力学,直到图神经网络让机器学会读图。谱方法是贯穿始终的那把钥匙。
页型节奏:导引 → 讲义(概念 · 定理 · 证明 · 一步一图)→ 例题 → 习题 → 地图 · 小结 · 思想卡 · 挑战 · 实验
155导引

第六章 代数图论与网络:矩阵里的图导引:本章导引:把图写进矩阵

★★★ 全书的收官章:把五章的家当全部押进矩阵,再把矩阵送进真实网络。

线一 · 谱(p156–p163)。邻接矩阵的特征值是图的「声纹」:连通 ⟺ λ2 > 0、二部 ⟺ 谱对称、生成树个数 = Laplacian 余子式(第二章 Cayley 公式的矩阵化)、随机游走收敛速度 = 谱隙、电阻网络 = Laplacian 的直接物理实现。Kirchhoff 1847 年的定律是这一切的起点。

线二 · 网络(p164–p169)。随机图 G(n, p) 在 p ≈ 1/n 处的相变(巨型分支骤现)是二十世纪概率组合的高峰;小世界定理把第一章实验的 3.21 升格为 ~log n/log d 的定理;PageRank 把「重要性」变成主特征向量——谷歌的起点;图神经网络让机器直接学习图结构。

收束(p170–p184)。误读、例题两组(小图谱手算、Matrix–Tree 演算)、习题两组(随机游走、PageRank 迭代)、地图、双小结、思想卡(矩阵是图的另一种笔迹)、挑战(谱隙与扩张图)、实验(Matrix–Tree + PageRank 真跑)、札记(从 Kirchhoff 到 Google)、速查、全册回望。

本章的读法:每个矩阵事实旁边都站着一张旧面孔——度、连通、树、着色、匹配。旧概念的第二语言,就是本章的教学法。

第六章的两条线 第六章:给图装上线性代数的眼睛 谱线 邻接矩阵的特征值 Laplacian 与谱隙 Matrix–Tree 计数 随机游走与电网络 网络线 随机图与相变 小世界:六度的定理化 PageRank:链接即投票 GNN:机器读图 母题终章 全书的每个概念都获得矩阵第二语言 「容器决定性格」的最后一变:谱决定动态
图 6-1 谱线把图翻译成代数,网络线把代数送回真实世界——一进一出,全册的旅程在此闭环。
156讲义

第六章 代数图论与网络:矩阵里的图6.1 邻接矩阵的谱

★★ 定义先行:把图写成数表。

定义。图 G(n 点)的邻接矩阵 A:n×n 矩阵,A[i][j] = i 与 j 之间的边数(简单图为 0/1,对角 0)。谱:A 的特征值全体 λ1 ≥ λ2 ≥ ⋯ ≥ λn。

第一条定理:途径计数。(Ak)[i][j] = i 到 j 的长 k 途径条数。归纳一步:走 k 步 = 先走 k−1 步到某中转、再走一步——恰是矩阵乘法的定义。「途径」是第一章的老朋友(提炼引理的对象),现在它有了代数引擎。直接推论:Ak 对角线 = 回到自己的长 k 闭途径数;A2 的对角 = 度。

矩阵视角的立竿见影。① 图同构 ⇒ 谱相同(换基不换特征值)——「谱相同不同构」的反例存在(同谱图),谱是必要指纹不是充分;② 对称矩阵实谱 + 正交对角化——图论的线性代数福利立等可取;③ Perron–Frobenius(非负矩阵理论):λ1 单、对应正特征向量——连通图的「主声部」。

为什么值得整章?因为矩阵把「结构问题」变成「计算问题」:连通性、二部性、生成树计数、游走混合、重要性排序——全部落进特征值/向量的一口锅里。第五章说过「独立集是三线枢纽」,本章宣布:特征值是全书的枢纽。

邻接矩阵与途径计数 邻接矩阵:图的「名片」 三角形的 A: 0 1 1 1 0 1 1 1 0 A² : 2 1 1 1 2 1 1 1 2 对角线 = 各点度数;非对角 = 长度 2 的途径数 A 的 k 次幂:途径计数器 连接的信息全部住进矩阵——交换积即可读出结构
图 6-2 (Ak)[i][j] = i 到 j 的长 k 途径数:矩阵乘法就是「走一步」的代数——图与线性代数的接口在此焊死。
157讲义

第六章 代数图论与网络:矩阵里的图6.2 谱与图的不变量

★★★ 谱与图的不变量:第一批「声纹读法」。

谱特征图的性质理由一瞥
λ1 = dd-正则(连通时)全 1 向量是特征向量
Σλi = 0(恒等式)迹 A = 0
Σλi2 = 2m边数读谱迹 A2 = 2m
闭途径数迹 Ak 给长 k 闭途径三角形数 = 迹 A3 / 6
λ_min 群律−λ_min ≤ λ1(对角 = 0 时)对称 + 零迹

第二条定理:二部性的谱刻画。连通图是二部图 ⟺ 谱关于 0 对称(λ 与 −λ 成对出现)。理由一瞥:二部图可分部重排为块矩阵 A = [0 B; BT 0],特征多项式 χ_A(t) = χ_B(t2)·(−t)n−2m?——直接版:向量 (x; −x) 是 A 对应 −λ 的特征向量当 (x; x) 对应 λ。第一章的 König 判据(无奇圈)如今有了代数等价物——奇圈是「谱不对称」的几何病灶。

第三条:连通性的谱刻画。λ2 > 0 ⟺ 连通(Laplacian 语言,下下页正式化)。「第二声部」的存在 = 整图一体。第一章 κ 的对抗语义(「要拆开需要几个点」)与谱的振动语义(「第二振动频率」)在此汇合——代数连通度 λ2 将成为本章的主角之一。

谱的「不充分性」警示。同谱非同构的反例从 4 点起就有(爪 K1,3 与 C3 + 孤点不同构却同谱?——经典最小对例是 5 点 Star 与 C4+孤点对,查正谱表——速查页给出)。谱是必要指纹:听得音色认不出人——这是谱方法的第一个天花板。

158讲义

第六章 代数图论与网络:矩阵里的图6.3 Laplacian 与谱隙

★★★★ 本章的发动机二号机。

定义。Laplacian L = D − A(度对角阵 − 邻接)。特征值 0 = μ1 ≤ μ2 ≤ ⋯ ≤ μn(注意与 A 反序)。
基本定理组。① L 半正定;② 0 是特征值(全 1 向量),其重数 = 连通分支数;③ μ2 > 0 ⟺ 连通(μ2 称代数连通度,Fiedler 1973)。

能量形式的证明枢纽。xTLx = Σ边 uv (x_u − x_v)2(用 L = BBT 一行导出)。0 重数 = 分支数:x 常值于每分支 ⟺ 能量为 0 ⟺ 核维度 = 分支数。μ2 = min 能量/范数比(瑞利商)——「在正交于全 1 的约束下最难晃动」。一切谱切分、图 partition、扩张图讨论都从这里长出。

谱隙的两副面孔。本书统一用语:L 的 μ2(代数连通度)与随机游走的混合率(1 − 采样相关)是同一枚硬币——「信息扩散得多快」由它定价。第二章的星 K1,7 vs 完全图 K8 对比重演:两者都连通,但 μ2(K1,7) = 1 而 μ2(K8) = 8——桥点网络「一断全断」在谱上是「第二声部太低沉」。

应用速写。谱聚类(按 Fiedler 向量切图)、图像分割(归一化切,Shi–Malik 2000)、扩张图构造(挑战页)、同步稳定性(μ2 大则耦合振荡器同步快)。

Laplacian 与谱隙 Laplacian:L = D − A(度减邻接) 半正定;最小特征 0(重数 = 分支数) λ2​ = 代数连通度:越大越「抱团」 谱隙 λ1​(L) − λ2​(L)?——混合速度的钥匙 三个等价定义 L = D − A L = B Bᵀ(关联矩阵) xᵀLx = Σ 边 (xu​−xv​)² ——能量语言 λ2​ 的物理脸 弦的第二振动频率 「最难拉开的低频晃动」 切分图(谱聚类)的依据
图 6-3 Laplacian 的能量形式 xTLx = Σ(x_u − x_v)2 是它的「灵魂」:λ2 是把图「晃开」的最省力频率。
159讲义

第六章 代数图论与网络:矩阵里的图6.4 Matrix–Tree 定理:生成树计数

★★★★ Matrix–Tree 定理:第二章 Cayley 公式的矩阵化收官。

Matrix–Tree 定理(Kirchhoff 1847)。图的生成树个数 τ(G) = L 的任意一个 n−1 阶主余子式的行列式(划去第 i 行第 i 列)。

为什么划哪都一样?L 的行和全 0 ⇒ 各余子式相等(伴随矩阵的统一性)。证明骨架(三点)。① 生成树 ↔ 「关联矩阵 B 的 n−1 列线性无关」(树的列满秩 = 无圈连通的代数等价——第二章六刻画的第 7 位成员!);② Binet–Cauchy:det(B′B′T) = (B′ 的 n−1 列组构成的基个数)2——对称化后 = 树数?精确版:τ(G) = det(B0B0T)(B0 为任去掉一行的关联矩阵);③ 展开即得余子式。「树 = 极小线性无关边组」是本章送给第二章的礼物反向。

三例验算(p181 实验真跑)。K4:L = 3I − J,余子式 det = 16 = 42 ✓(Cayley nn−2);C5:任何圈图 τ = n(划断一条即树,5 ✓);星 K1,7:树数 = 1(唯一的「全部辐条」)。

谱形式的优雅收笔。τ(G) = (1/n)·μ2μ3⋯μ_n(非零特征值之积 / n)——生成树个数是谱的函数:同谱图生成树数相同(谱不充分性的又一注脚)。

回望第二章。Cayley 的 nn−2 由 Matrix–Tree 直接给出:K_n 的 μ2⋯μ_n = nn−2?——K_n 特征 {n−1, −1×(n−1)},L 谱 {0, n×(n−1)},积/n = nn−2 ✓。第二章的「挑战页」(Cayley 矩阵证明)正是本页的伏笔——全书最长的一条伏笔回收。

160讲义

第六章 代数图论与网络:矩阵里的图6.5 随机游走:图上的马尔可夫链

★★★★ 谱的「动力学」兑现:图不只是结构,还是运动场。

随机游走。从当前点等概率走向一个邻居。转移矩阵 P = D−1A。平稳分布 π(v) = d(v)/2m——度数大者被访问得多(PageRank 的祖概念)。
收敛定理。连通且非二部时,从任意点出发,t 步后的分布 → π,速率由 P 的第二特征值控制(|λ2(P)| 越小越快)。二部图(周期 2)永不收敛——分布在两部间振荡。

二部病号的病理。P 的谱关于 ±1 对称(同 A 的对称论证)——λ = −1 的振动模不被衰减。第一章的 König 判据在动力学里的第三现身:无奇圈不仅是「可双色」「谱对称」,还是「醉汉能回家」的条件。

与电网络的等价(下页展开)。随机游走与电阻网络是同构的数学对象:图 = 电阻网络(每边 1Ω),两点间电压 = 游走命中概率;有效电阻 = 通量。Kirchhoff 的一篇 1847 论文同时是电网络、Matrix–Tree 与随机游走三家的祖坟。

混合速度的直觉账。星图 K1,n:游走者一半时间困在叶点与中心之间「折返」——混合慢(|λ2| → 1);扩张图(μ2 大):每步「横跨」一半点集——O(log n) 步混合。「快混」与「无瓶颈」是同一件事的两种说法——挑战页把这句话变成定理。

随机游走 随机游走:图上的马尔可夫链 从当前点随机走向一个邻居 平稳分布 π(v) = d(v) / 2m 收敛速度由谱隙控制 为什么收敛 连通 + 非二部 ⇒ 遍历 二部图周期 2:不收敛 (在两个部之间来回荡) 谱的角色 转移阵 P = D⁻¹A 第二特征值 |λ2​(P)| 越小 混合越快 —— 谱隙即速度
图 6-4 「在图上醉走」的长期行为完全由谱定调:度数即平稳份额,谱隙即收敛速度——二部图是唯一拒绝收敛的病号。
161讲义

第六章 代数图论与网络:矩阵里的图6.6 电网络类比与有效电阻

★★★ 电网络类比:Laplacian 的物理实现。

对照表(一图三世界的完整版)。

对象图论电网络概率
度 d(v)关联边数接地总电导游走停留份额 ×2m
电压 vFiedler 向量节点电位命中概率之差
电流流切分流量Kirchhoff 定律净游走通量
有效电阻1/μ2 量级(全局)R_eff(u,v)往返时间 C·R_eff

两个可手算的明星结果。① 往返定理:从 u 出发回到 u 的期望时间 H(u,u) = 2m·R_eff(任意图!);K_n 上 = n−1(快)、路径图上 = Θ(n2)(慢)——电阻是「图的拥挤度」的物理计价;② Foster 定理:Σ边 R_eff(e) = n − 1(n 点连通电阻网络)——全图有效电阻的守恒账,谱账的又一变形。

为什么电网络是「谱的显微镜」?能量泛函 Σ(x_u − x_v)2 在电路里就是「焦耳热」;最小化热 = 电压自然分布 = Laplace 方程解。「谱 = 振动」「能量 = 热」「游走 = 粒子」三位一体——Laplacian 是它在数学上的统一名字,本册三个世界各取一个化身。

远眺。这层等价在当代极活跃:谱稀疏化(BSS 2011:任何图可被 O(n/log n) 条边的加权图谱近似——「电路简化定理」)、最大流的新算法(电网络流 – Christiano et al.)。Kirchhoff 的 1847 年论文至今在发新枝。

162讲义

第六章 代数图论与网络:矩阵里的图6.7 随机图 G(n,p):Erdős–Rényi 模型

★★★★ 图论的「世界观升级」:从对象到系综。

G(n, p) 模型。n 个点,C(n,2) 条可能边各自独立以概率 p 出现。「G(n,p) 渐近几乎必然(a.a.s.)具有性质 Q」:Q 成立的概率 → 1(n → ∞)。

第一条「典型」定理(对角线级)。a.a.s.:最大度差 ≤ 1?不——最大团约 2log1/p n、直径 ~ log n / log(np)、着色数 ~ n/(2log1/p n)(稠密情形)。随机图的每个「典型值」都可算——「典型图」是精确的数学对象。

方法论的血统。Erdős 1947 用「随机存在」证 Ramsey 下界(p138);1959 与 Rényi 把随机性从「工具」升格为「对象」:不是「用随机找图」而是「研究随机图的性质分布」。一篇 1959 论文(论随机图的演化)开创了整门学科。

为什么真实网络要跟它学?G(n,p) 是零阶模型:它给出「没有设计、只有随机」时的基线行为——真实网络的一切「反常」(小世界、幂律、社区)都是相对基线的偏离。先立基线、再谈反常——下一页的相变与下下页的小世界是这个方法论的两次示范。

随机图 随机图 G(n, p):Erdős–Rényi 模型 n 个点,每条边独立以概率 p 出现 「典型图」长什么样成为可证命题 1959 起的二十世纪概率组合高峰 基本账目 期望边数 = p·C(n,2) 期望度 = p(n−1) 「典型」= 概率 1→1(渐近) 双轮驱动 固定 p(稠密世界) 固定平均度 c/n(稀疏世界) ——相变发生在后者
图 6-5 Erdős–Rényi 把「图」变成「实验」:不再问某个图,而问「典型图」的性质——概率从此是图论的母语之一。
163讲义

第六章 代数图论与网络:矩阵里的图6.8 相变:巨型分支的出现

★★★★ 随机图的相变定理——二十世纪数学最漂亮的画面之一。

Erdős–Rényi 相变(1959/60)。固定 c = p(n−1):c < 1 时 a.a.s. 最大分支 = Θ(log n);c > 1 时 a.a.s. 存在唯一巨型分支(giant component),占点比 θ 满足 θ = 1 − e−cθ(约 c > 1 的正解),其余碎为 O(log n)。

方程 θ = 1 − e−cθ 的读法。「一个点属于巨分支的概率 = 它至少有一个已入巨分支的邻居」——不动点方程即自洽条件。c ≤ 1 只有零解;c > 1 冒出正解。临界现象的数学指纹:解的「无中生有」。物理学的二阶相变(水沸腾、磁化)同构——随机图给了相变一个可严格计算的玩具宇宙(重整化群方法的试验场)。

与第一章实验的精确对账(母题回收)。p36 的 200 人 400 边社交网络:平均度 c ≈ 4,远在临界之上 ⇒ a.a.s. 巨分支吞掉几乎全体 ⇒ 平均距离 = 小常数 3.21。当时的「实验事实」如今是「定理推论」——全册最大的伏笔之一在此兑现。

应用的望远镜。流行病阈值(R0 = 1 是 c = 1 的医学翻版)、互联网鲁棒性(随机失效 vs 定向打击的巨分支响应)、渗流理论(多孔介质、页岩油气)。「一敲全连、一断全崩」的临界敏感性,是复杂系统的宿命课。

随机图的相变 相变:巨型分支的骤现 平均度 c = p(n−1) 固定,n → ∞ c < 1:全碎(最大分支 O(log n)) c = 1:临界(幂律分支,严格次线性) c > 1:巨型分支 = θ(n) 的点「一锅端」 水-汽相变的数学孪生 序参量 = 巨型分支占比 c = 1 是临界点 二阶相变(连续但导数跳) 与第一章实验对账 p = 400/C(200,2) ≈ 0.02 c = 0.02×199 ≈ 4 > 1 ⇒ 全连通态,均距 3.21 ✓
图 6-6 c 越过 1 的瞬间,最大分支从「对数级碎屑」跳变为「线性级巨无霸」——临界点两侧是两个世界。
164讲义

第六章 代数图论与网络:矩阵里的图6.9 小世界:六度分隔的科学

★★★ 小世界:六度分隔的科学定谳。

从轶事到实验。1929 Karinthy 的文学遐想 → 1967 Milgram 实验(内布拉斯加居民把信件转给波士顿股票经纪人:中位 5–6 手)→ 1998 Watts–Strogatz 模型 → 2011 Facebook 全网实测(7.2 亿用户,平均 4.74)→ 2016 复测(15.9 亿用户,3.57)。六度从都市传说变成可复现的测量。

小世界定理(随机场景的定量化)。G(n, p) 稀疏(平均度 d > 1 固定)且巨分支存在时:任意两点距离 a.a.s. ~ log n / log d。

一行证明的直觉(波前账)。从一点出发 k 步可达约 dk 个点(波前指数膨胀,第一章 BFS 波前的随机版);覆盖 n 点需要 dk ≈ n ⇒ k ≈ log n / log d。n = 109、d = 30:log/leg ≈ 6.4?——以 e 为底 (ln 109)/(ln 30) ≈ 6.2——「六度」的数量级当场算出。真实社交网 d ≈ 100+:3–4 度 ✓ 与 Facebook 实测吻合。

Watts–Strogatz 的补充洞察(1998)。单纯随机图虽「小」但「乱」(聚簇系数极低);单纯规则环网「聚簇」但「大」(直径 ~ n)。「少数随机长边 + 大量局部短边」同时拿下两者——现实网络的结构配方:邻里关系 + 偶然远方。直径骤降的临界窗极窄——「加 1% 长边,世界缩小一个数量级」。

应用面。路由与搜索(Kleinberg:可导航的小世界需要「长边按距离幂律分布」)、疾病传播速度、谣言动力学、分布式网络的跳数设计。「世界很小」是波前膨胀的算术,不是诗意。

165讲义

第六章 代数图论与网络:矩阵里的图6.10 无标度网络与幂律

★★ 无标度网络与幂律:真实网络的第二反常。

反常在哪里?G(n,p) 的度是二项分布(典型点都「普通」);真实网络(万维网入链、合作网、代谢网)的度是幂律:P(d ~ k) ∝ k−γ(γ ≈ 2–3)——少数「枢纽」(hub)连接极端多的点,多数点极端冷清。「无标度」= 没有典型尺度 = 度的分布跨数量级(Barabási–Albert 1999 的命名)。

生成机制:富者愈富(优先连接)。BA 模型:网络逐点生长,新点以正比于现有度的概率连边。「受者更容易被新来者搭上」——一条极简的行为假设,解析给出幂律 γ = 3。与随机图的「人人等概率」对照:增长 + 偏好 = 幂律,两要素缺一不可。

幂律世界的性格(与随机图对照表)。

性质G(n,p)无标度网
典型度都在均值附近跨数量级(枢纽统治)
平均距离~ log n / log d更小:~ log log n(枢纽捷径)
随机失效平缓极鲁棒(枢纽少而幸存)
定向打击枢纽平缓骤然崩解(Achilles 之踵)

鲁棒且脆弱(robust yet fragile)。无标度网对随机故障近乎免疫(枢纽被随机击中的概率小),对蓄意攻击却一击致命。互联网的防火墙、疫苗的优先级、反垄断的尺度——都是这个二维账本上的政策题。

谱的注脚。无标度图的 Laplacian 谱隙通常很小(枢纽制造瓶颈结构)——「鲁棒又脆弱」在谱上的读法:μ2 偏小而 μ_max 偏大。谱从不撒谎:结构的两副面孔它都记账。

166讲义

第六章 代数图论与网络:矩阵里的图6.11 PageRank:链接即投票

★★★★ 特征值理论的产业级胜利。

PageRank(Brin & Page 1998)。Web 图(页 = 点、超链 = 有向边)上的得分 r 满足自指方程:r(v) = (1−d)/n + d·Σu→v r(u)/out(u),d ≈ 0.85。等价地:r 是「带 15% 随机传送的游走」的平稳分布 = 修正转移矩阵的主特征向量。

三个思想内核。① 加权投票:入链是票,但票值随投票者的重要性变化——「被谁链接」压倒「被多少链接」;② 随机游走定义重要性:长期被游走者停留的概率 = 重要性(p160 的 π(v) 度数版升级为「传送修正版」);③ 传送项的双重使命:数学上保证不可约(Il 死胡同与蜘蛛陷阱都让矩阵退化)+ 现实上容忍「用户无聊跳走」。

与第五章的隐形握手。随机游走收敛性(p160 定理)保证幂法收敛;传送修正保证连通与非二部(消除周期病号)——「连通 + 非二部才收敛」的老定理在谷歌机房里天天被兑现。第五章的「一句话」在这里回声:图论给的从来是结构,谱给它定价。

谱方法的今天。Personalized PageRank(个性化传送 = 局部社区发现)、TrustRank(反作弊)、特征向量中心性(Katz、Bonacich)——一族「主特征向量方法」统治网络分析四分之一个世纪。「重要」从修辞变成方程。

PageRank PageRank:链接即投票 r(v) = (1−d)/n + d·Σu→v​ r(u)/out(u) 「被重要的页面链接才重要」 全网主特征向量 —— Google 的起点(1998) 两个发明 随机游走解释:d 概率顺链走 1−d 概率随机传送(防死胡同) 平稳分布 = PageRank 计算 = 幂法 反复用上式更新(迭代) 线性收敛:速率 d·|λ2​| 数亿节点的可行迭代
图 6-7 重要性是自指的:「被谁链接」比「被多少链接」更重要——随机游走的平稳分布给出了自洽解。
167讲义

第六章 代数图论与网络:矩阵里的图6.12 社区发现一瞥

★★ 社区发现一瞥:谱聚类与模块度。

什么是社区?内部边密、跨边稀的点群——「物以类聚」的网络版。应用:朋友圈划分、蛋白质复合体、舆情极化测量、供应链集群。「划分」是着色(第四章色类)的老母题在网络语境的还魂——只是这次我们想要「有意义的」划分而非「任意可行的」。

谱聚类(Shi–Malik 2000 / Ng–Jordan–Weiss 2001)。三步:① 算 Laplacian 的 Fiedler 向量(μ2 对应);② 按向量分量排序/符号切点;③ 递归或 k-means 细分。原理 = p158 的能量语言:Fiedler 向量是「最小能量摆动」的形状——沿它切图,切得最「省」(割边最少、内部最紧)。归一化割把「省」修正为「比例公平」——避免切下孤点。

模块度(Newman–Girvan 2004)。Q = (实际社区内边数 − 随机基线下的期望)/总边数:Q > 0.3 算「有社区结构」,逼近最大化 Q 即社区划分。Newman 自己把它谱化:模块度最大化的leading eigenvector 法——又一次,一个优化问题落进特征值的手心。

诚实的边界。「社区」没有公认定义(模块度有分辨率极限:小社区被吞并;谱方法对「弱社区」与「重叠社区」吃力);随机图基线(p162)提醒我们:任何划分方法在纯随机图上也会「发现」社区——先问显著性,再谈结构(社区发现的「可检测性相变」是当代活跃前沿)。

168讲义

第六章 代数图论与网络:矩阵里的图6.13 图上的动力学:传染与同步

★★★ 图上的动力学:传染、同步与意见。

传染模型(SIS/SIR 的谱阈值)。每步感染邻居概率 β、康复概率 γ。谱阈值定理:疫情爆发 ⟺ β/γ 超过阈值 ~ 1/μ_max(A 的最大特征值)——「最毒的声部」决定传染的命运。免疫策略的最优化 = 砍 μ_max:给枢纽打疫苗(无标度网的打击软肋)优先于随机接种——PageRank 式重要性再次出现(这次是反向:找出来打掉)。

同步(Kuramoto 振荡器 + 耦合拓扑)。n 个振荡器相位 θ_i,耦合强度 K,网络拓扑 G。同步判据:K·μ2(L) 超过固有频率散布——「代数连通度买同步」:μ2 大的网络(扩张图)同步快而稳;星图的 μ2 小,中心一乱全网乱。电网功角稳定、萤火虫齐闪、心跳起搏细胞——同一个方程族。

意见动力学(DeGroot / voter 模型)。每人每步向邻居观点平均靠拢:收敛到共识 ⟺ 交互矩阵本原(非二部 + 连通——p160 收敛定理的翻版);最终共识 = 平稳分布加权的初始意见——「谁的声音留在共识里」由谱与度定。极化(两个吸收态)是「二部化」社交网络的动力学症状——回音室 = 谱上的「近似二部」。

本章动力学三条的统一句。图的结构决定过程的命运:μ_max 定传染,μ2 定同步与省切,非二部性定收敛——三个「命运判据」全是第六章前半的谱量。「容器决定性格」的最终形态:谱决定动态。

169讲义

第六章 代数图论与网络:矩阵里的图6.14 图神经网络:让机器读图

★★ 图神经网络一瞥:让机器读图。

问题。前面的方法(谱、PageRank、社区)都是「人设计特征、算法执行」;可节点还有自己的属性(用户画像、分子原子)、任务还有标签(哪些账户是欺诈?哪个分子有效?)。能不能让机器端到端地「读图学任务」?——图神经网络(GNN)。

消息传递范式(Gilmer et al. 2017 的统一视角)。每层:① gather——每个点聚合邻居的当前表示(加权和/最大/注意力权重);② update——与自身旧表示组合过非线性。k 层后,每点的表示「见过」k 跳邻域——「感受野随层数指数扩张」正是第一章 BFS 波前与 p164 小世界算术的机器学习版。GCN 的标准层与「归一化 Laplacian 的多项式滤波」等价(Kipf–Welling 2017 的谱解读)——GNN 的骨架依然是本章的谱。

任务三型。点级(欺诈检测、社交推荐)、边级(链接预测 = 「推荐关注」的学术名)、图级(分子性质:图分类,药物筛选的主战场)。AlphaFold 的蛋白质相互作用、材料发现中的晶体图——凡是「关系 + 属性」的数据,GNN 是默认起点。

谱的影子与边界。GNN 的表达能力有上限(WL 同构测试级——「图谱认不出的,它也难认出」);过平滑(层数过深所有点表示趋同 = 「向平稳分布收敛」的机器学习翻版)。六十年的谱理论仍是它的地基与边界说明书。

一句话。GNN = 「消息传递 + 学习聚合权重」;谱 = 它的物理;波前 = 它的时钟。本册的全部母题在机器里换了衣装,但骨骼未变。

170讲义

第六章 代数图论与网络:矩阵里的图6.15 结语:连接的代数

★★★ 讲义 6.15:结语——连接的代数。

一张矩阵,两个方向。把图写成矩阵,是「结构 → 计算」:连通、二部、树数、游走、重要性……全部落进特征值的一口锅。把矩阵读回图,是「计算 → 洞见」:谱隙说鲁棒、Fiedler 向量说该在哪切、主特征向量说谁最重要。代数不是图论的翻译腔,而是它的第二母语。

本章概念的第二语言清单(期末对账)。

图论概念谱第二语言出处
连通分支数0 的重数(L 谱)p158
连通性μ2 > 0p158
二部性A 谱关于 0 对称p157
生成树数L 非零特征积 / np159
游走收敛|λ2(P)| 小p160
瓶颈/聚簇μ2 小 / 聚簇系数高p158/164
重要性主特征向量p166

「容器决定性格」的终章裁决。本册的五次变奏:权性定搜索(BFS/Prim/Dijkstra)、面性定上限(平面图)、奇偶定着色与对偶、二部定匹配与收敛、谱性定动态(传染/同步/混合)——同一个图论母体,五种「容器」各发一次言。结构不是装饰,是命运的说明书。

下一站:综合站。余下十四页不再推进新定理,而做三件事:全册年表与人物(1736 柯尼斯堡到 2012 诺贝尔与 AlphaFold)、概念的全景关系图(谁生谁、谁证谁)、走向下一册的桥(抽象代数视角的图论:群作用、代数图论的正统前沿)。回望不是终点的仪式,是起跑的姿势。

171误读

第六章 代数图论与网络:矩阵里的图常见误读:谱方法的四个误区

★★ 常见误读:谱方法的四个误区。

误区一:「谱相同 ⟹ 图同构」。错。同谱非同构的反例从 5 点起就有(速查页附最小对例);谱是必要指纹而非充分指纹——「听音辨人」在图上只能排错,不能认人。一切「谱判定」的结论都只对「必要方向」负责。

误区二:「μ2 大就一定连通得均匀」。半对。μ2 大保证「无低频晃动」(无大规模瓶颈),但小尺度结构(桥、局部低密)可能藏在更高频段——μ2 是全局下界意义上的均匀,不是逐点均匀。扩张图页(p180)给出精确语言。

误区三:「PageRank 高 = 页面质量高」。混淆「重要性」与「正确性」。PageRank 度量的是链接拓扑中的游走停留份额——可被链接农场操纵(SEO 攻防)、随时间漂移、对新页面天然不利。它是「网络引力」,不是「真相度量」。

误区四:「真实网络 ≈ 随机图 G(n,p)」。零阶模型当真模型是当代最流行的滥用。G(n,p) 度均匀(无枢纽)、聚簇系数极低(无朋友圈)、无增长偏好——真实网络的三反常(幂律、高聚簇、小世界)全是相对它的偏离。基线是用来测偏离的,不是用来冒充现实的。

防坑纪律。谱结论必标方向(必要/充分);能量论证说「全局」;基线模型说「偏离」;重要性说「拓扑」。
172例题

第六章 代数图论与网络:矩阵里的图例题精讲:小图的谱手算

★★★ 例题 1(小图的谱手算)。求路径 P4 与星 K1,3 的邻接谱与 Laplacian 谱,并读出连通、二部、边数。

P4 的 A 谱(对称技巧)。P4 点序 1-2-3-4,A = 0-1 0 / 1-0-1 0 / 0-1-0-1 / 0-0-1-0。利用「对径对称」:设特征向量 (a, b, b, a)(对称)与 (a, b, −b, −a)(反对称)。对称组:λa = b, λb = a + b ⇒ λ2 − λ − 1 = 0 ⇒ λ = φ, −1/φ(黄金比!);反对称组:λa = b, λb = a − b ⇒ λ2 + λ − 1 = 0 ⇒ λ = 1/φ, −φ。A 谱 = {φ ≈ 1.618, 1/φ ≈ 0.618, −1/φ, −φ}。读数:谱关于 0 对称 ⇒ 二部 ✓(P4 无奇圈);Σλ2 = 2φ2 + 2/φ2 = 6 = 2m ✓(3 条边)。

P4 的 L 谱。已知 A 谱,L = D − A 在度不全等时不能直接搬——用「路图标准结果」:μ_k = 2 − 2cos(kπ/n) = 4 sin2(kπ/2n),n = 4:{0, 2−√2 ≈ 0.586, 2, 2+√2 ≈ 3.414}。读数:0 单重 ⇒ 连通 ✓;μ2 ≈ 0.586 很小 ⇒ 路是「低连通度」图(两头易断)——与第一章「路是链式脆弱结构」的直觉账目相符。

K1,3 的双谱。A 谱:中心与叶的对称分块——{±√3, 0, 0}(二部 ✓);L 谱:{0, 1, 1, 4}(连通 ✓;μ2 = 1)。P4 与 K1,3 的对照:同为 4 点 3 边的树,μ2 却 0.586 vs 1——同量不同质,谱把「链状」与「放射」分开(谱是比边数更细的指纹)。

方法复盘。小图手算三板斧:对称性分块(先找自同构)、已知公式(路/圈/星/完全/完全二部的谱是「九九表」)、读数三查(0 重数=分支、对称=二部、Σλ2=2m)。下一页习题课继续练。
173习题

第六章 代数图论与网络:矩阵里的图习题课:谱与随机游走

★★ 习题课(一):谱与随机游走。五题手演。

S1.圈 C_n 的 A 谱是 2cos(2πk/n)(k = 0..n−1)。用谱读法验证:C_n 二部 ⟺ n 偶。cos 对称 ⟺ k 与 n−k 谱值成对取负 ⟺ 存在 k 使 cos = −1 ⟺ n 偶。

S2.证明:正则图中 μ2(L) = λ1(A) − λ2(A)。正则 ⇒ L = dI − A,特征值平移:μ_k = d − λ_k。

S3.路径 P_n 上从端点出发的随机游走「回家时间」的量级?与圈 C_n 对照。H(端, 端) ~ n2(一维游走的漫散),圈 ~ n——电阻语言:路径 R_eff ~ n,圈 R_eff ~ n/4?往返定理 H = 2m·R_eff 核账。

S4.星 K1,n 上随机游走:叶点到叶点的期望时间?为什么「醉汉讨厌星星」?叶→中心 1 步,中心→指定叶 1/(n+1)?——错,中心度 n+1?星 n+1 点:中心度 n、叶度 1。H(叶,叶) = 2 + H(中心,叶),H(中心,叶) ~ n——量级 Θ(n),游走大量时间「折返」。

S5.证明二部图上随机游走不收敛(分布周期振荡),并说明「加 15% 随机传送」如何治愈。λ = −1 模不衰减;传送项把最小特征值抬到 ≥ −(1−d)?——精确说修正矩阵的特征 ∈ [−(1−d), 1]?自验符号方向。

自评线。S1 谱读法操练;S2 正则平移;S3/S4 电阻计价;S5 周期病理。五题全对,游走一侧通关。
174例题

第六章 代数图论与网络:矩阵里的图例题精讲:Matrix–Tree 演算

★★★ 例题 2(Matrix–Tree 演算)。用余子式与谱两条路,数 K4 减一边(「钻石图」)的生成树。

图形。4 点:边 12, 13, 14, 23, 24(K4 缺 34)——两个三角形共边 12。

路一:余子式。L = ⎡3 −1 −1 −1;−1 3 −1 −1;−1 −1 2 0;−1 −1 0 2⎤。划 4 行 4 列,算 3×3 行列式 M = ⎡3 −1 −1;−1 3 −1;−1 −1 2⎤:按第一行展开 3(6−1) − (−1)(−2−1) + (−1)(1+3) = 15 − 3 − 4 = 8。τ = 8。

路二:对称差数。K4 有 16 棵树(Cayley);含边 34 的树数 = 34 被使用的树 = 把 34 固定、其余任选——收缩 34 得 K3(3 点完全图)?收缩后 3 点、生成树数 32−2 = 3?含 34 的 K4 树 = 2×2 = 8?直接数:K4 的树是 16 棵,对称性下每条边出现在 τ(K4)·4/6 = 16·4/6 = 32/3?——不对(非整数!):边使用数不均匀?K4 是边传递的,每边使用数必相等 = 16·3/6 = 8 ✓(每树 3 边)。故缺 34 后树数 = 16 − 8 = 8 ✓ 两条路合龙。

路三:谱。钻石图 A 谱:{3, 1, −1, −1}(12 对角 + 三角特征)?验证:Σ = 2 ✓(迹 0?3+1−1−1 = 2 ≠ 0!重算:点 1、2 度 3,点 3、4 度 2。谱 = {3, 1, 0, −2}?——L 谱更直接:L = D − A;由「共边双三角」结构,L 谱 = {0, 2, 4, 4}? μ2μ3μ4/n = 2·4·4/4 = 8 ✓)。三路同归:τ = 8。

方法复盘。数树三件套:余子式(直算)、对称差/边使用账(利用已知的更大图)、谱积(μ2⋯μ_n/n)。矩阵–树的意义:让「数树」从枚举艺术变成机械劳动——算法化的又一次胜利。
175习题

第六章 代数图论与网络:矩阵里的图习题课:PageRank 迭代

★★ 习题课(二):PageRank 迭代。五题手演。

S1.两个页面互相链接的 2 点网:写出 PageRank 并验证对称。r1 = r2 = 1/2;对称图对称得分。

S2.3 点链 A→B→C(单向):PageRank 谁最高?「链尾最高」反直觉吗?C 只有入链没有出链——死胡同!需传送修正兜底;不修正则 C 囤积全部质量(质量守恒破坏)。传送项的必要性在此现形。

S3.证明:PageRank 向量之和 = 1(概率分布),与 d 无关。对更新式两边求和:Σr = (1−d) + d·Σ_v Σu→v r_u/out_u = (1−d) + d·Σ_u r_u——自洽。

S4.d = 0 与 d = 1 的极端:得分各是什么?各自的病理?d=0:均匀分布(人人相等,投票无意义);d=1:无传送——死胡同囤积、陷阱周期化。0.85 是「信息保真 vs 数值健康」的工程折中。

S5.把 PageRank 用在「无人链的有向环」上会怎样?在「完全二部有向图」上呢?环上均匀;二部有向:游走周期 2?传送项压平周期——再次见到「非二部/本原性定收敛」。

自评线。S1 对称;S2 死胡同病理;S3 质量守恒;S4 参数两极;S5 周期与传送。五题全对,PageRank 通关。
176地图

第六章 代数图论与网络:矩阵里的图本章地图:代数图论的依赖结构

★★ 本章地图:一地基、一基线、三应用。

地基:谱理论(6.1–6.6)。A 谱给不变量(连通、二部、边数、三角形数),Laplacian 给能量与混合,Matrix–Tree 给计数,电网络给物理。依赖链:6.1 途径计数 → 6.3 能量形式 → 6.5 收敛定理 → 6.6 等价网络。一条从「写矩阵」到「算电阻」的直线。

基线:随机图(6.7–6.10)。G(n,p) 立「无设计基线」:相变给临界敏感性、小世界给距离标尺、幂律给真实网络的反常清单。方法论:基线不是模型,是测量偏离的原点。

应用三线(6.11–6.14)。PageRank(主特征向量 = 重要性)、社区发现(Fiedler/模块度 = 划分)、动力学(μ_max/μ2/非二部 = 传染/同步/收敛三判据);GNN 把三者装进学习框架。

全书接口大合账。度(握手)→ 平稳分布;连通(κ, λ2)→ 代数连通度;树(Cayley)→ Matrix–Tree;二部(König)→ 谱对称与游走收敛;实验(p36 六度)→ 小世界定理。每一章都在矩阵里有一位「证人」出庭。

第六章知识地图 第六章地图:代数图论的依赖结构 谱理论 A 谱与不变量 6.1/6.2 Laplacian 6.3 Matrix–Tree 6.4 游走与电网络 6.5/6.6 随机图 G(n,p) 6.7 相变 6.8 小世界 6.9 幂律 6.10 网络应用 PageRank 6.11 社区 6.12 动力学 6.13 GNN 6.14 谱是三线的共同地基:相变用概率、应用用谱 动力学三判据全由谱定价
图 6-8 谱理论是地基(Laplacian 语言),随机图给真实网络立基线,应用三线(排序/社区/动态)从两者取款。
177小结

第六章 代数图论与网络:矩阵里的图小结:谱的语言

★★ 第六章小结(上):谱的语言。

概念清单。邻接谱(λi)与 Laplacian 谱(μi);代数连通度 μ2;谱隙(A 的 λ1−λ2 或游走的 1−|λ2(P)|);有效电阻与往返时间;Fiedler 向量。

定理清单。途径计数 (Ak)ij;二部 ⟺ A 谱对称;连通分支数 = μ=0 重数、连通 ⟺ μ2 > 0;Matrix–Tree(τ = 余子式 = 谱积/n);游走平稳分布 π = d/2m 与收敛定理;Foster(Σ R_eff = n−1)。

方法清单。对称分块手算小谱;九九表(路/圈/星/完全/完全二部);瑞利商(μ2 = 最小能量比);对称差与谱积双路数树。

谱的双向纪律(再次强调)。「图 → 谱」永远可行且忠实计算;「谱 → 图」只有必要方向——同谱非同构是谱方法的永久边界。用谱下结论时,永远注明走的是哪个方向。

一句话记住谱侧:0 的重数数分支,μ2 定抱团,对称定二部,谱积数树,|λ2(P)| 定混合,主特征向量定重要。

178小结

第六章 代数图论与网络:矩阵里的图小结:网络的语言

★★ 第六章小结(下):网络的语言。

概念清单。G(n, p) 与 a.a.s.;平均度 c 与巨型分支;小世界(log n / log d);无标度与幂律 γ ≈ 2–3;鲁棒且脆弱;PageRank 与传送。

定理清单。相变(c=1 两侧两个世界,θ = 1 − e−cθ);小世界定理;优先连接生成幂律(BA);PageRank = 平稳分布 = 主特征向量;传染阈值 ~ 1/μ_max;同步判据 K·μ2。

方法清单。波前账(dk ≈ n ⇒ 距离);不动点自洽(θ 方程);基线对照(真实网络的「反常」测量学);幂法迭代(PageRank 的可计算性)。

三个世界观级的教训。① 临界敏感性:复杂系统的性质在阈值附近剧变(巨分支、疫情、同步)——「渐变导致突变」有严格的数学形态;② 基线思维:没有随机基线,「反常」无从谈起——科学方法在网络科学的复刻;③ 结构与命运:拓扑参数(μ_max、μ2、幂指数)直接定价系统行为——「性格决定命运」在网络里是「结构决定动力学」。

一句话记住网络侧:c=1 分天下,波前算距离,富者愈富出幂律,游走平稳即排名,μ_max 管传染、μ2 管同步。

179思想卡

第六章 代数图论与网络:矩阵里的图思想卡:矩阵是图的另一种笔迹

★★★ 思想卡:矩阵是图的另一种笔迹。

同一个三角形,可以画成三条弧,也可以写成 ⎡0 1 1; 1 0 1; 1 1 0⎤。两种笔迹记录的是同一个对象——但能问的问题不同:画法问「长什么样」,矩阵问「怎么算」。

翻译的红利清单(本章实证)。连通性从「搜索可达」变成「μ2 > 0」;树计数从「逐棵枚举」变成「一个行列式」;重要性从「声誉修辞」变成「主特征向量」;相变从「现象观察」变成「不动点方程」。每次翻译都把一个问题从「巧」变「稳」——巧解依赖灵感,稳解依赖结构。

翻译的代价(同样真实)。矩阵语言有「口音损失」:同谱不同构(音色 ≠ 人)、谱只给必要方向、μ2 掩盖局部瓶颈。每种笔迹都有盲区——高手的标志不是偏爱哪种笔迹,而是知道何时换笔:结构直觉用图、精确结论用谱、规模现实用网络模型。

全册的「换笔」编年史。七桥用「度」换掉「地图」(第一章);Euler 用「面」换掉「透视」(第四章);管梅谷用「配对」换掉「路线感」(第三章);Gale–Shapley 用「轮次」换掉「市场玄学」(第五章);Kirchhoff–PageRank 用「谱」换掉「结构修辞」(第六章)。数学史的一半,是换笔史。

本卡与第一张思想卡的对话。第一章问「抽象的代价与回报」:代价是丢掉细节,回报是看见结构。本章给出终审判决:换笔的回报 = 新笔迹自带的定理库;代价 = 旧笔迹的部分直觉失效。会换笔的人,两个定理库通吃。

180挑战

第六章 代数图论与网络:矩阵里的图挑战:谱隙与扩张图

★★★★ 挑战:谱隙与扩张图。把「μ2 大 = 无瓶颈 = 快混合」三句口号焊成一条定理链。

定义(扩张图 expander)。d-正则图族 {G_n} 称扩张图:n → ∞ 时 μ2 保持 ≥ ε > 0(谱定义;等价组合定义:任何点集 S(|S| ≤ n/2)的边界 |∂S| ≥ c·|S|)。「稀疏(正则度固定)却高度连通(无瓶颈)」的矛盾统一体。

任务一:證明谱 ⇒ 组合(Cheeger 不等式的图版)。μ2/(2d) ≤ 边扩张率 ≤ √(2dμ2)?——方向与常数自核(图中常用形式:(μ2/2) ≤ φ(G) ≤ √(2dμ2))。下界:对 Fiedler 向量按符号/阈值切分,能量账 Σ(x_u−x_v)2 ≥ μ2·方差——把「最小能量比」翻译成「任何割的边界」;上界:取指示向量测试瑞利商。

任务二:组合 ⇒ 混合。证明扩张图中从任意点出发 t 步后到达任意点的概率 ≥ 1 − (1−ε′)t 的量级——即 O(log n) 步「铺满」。每步波前至少按 (1+c) 膨胀(边界 ≥ c|S| 保证新点不断涌入)——dk 波前账的扩张图严格版。

任务三:构造一个扩张图族。随机 d-正则图 a.a.s. 是扩张图(概率法再次上岗——「随机地好」远比「显式地好」容易);显式构造的历史:LPS 图(Ramanujan 图,1988,Lubotzky–Phillips–Sarnak,谱最优!)——扩张图是「数论 × 图论 × 计算机科学」的三界杂交:Paley 图、群生成元、编码理论。

为什么扩张图是「完美的网络」?通信网络(低直径 = 快路由)、去中心化抽样(MCMC 加速)、密码学(随机性提取器)、纠错码——「稀疏而健壮」是工程对网络的最高赞美,谱隙是它的数学证书。

挑战的余味。刚走完的是当代纯数与应用数最活跃接口的入门三关:不等式(Cheeger)、混合(遍历)、构造(LPS/Ramanujan)。Ramanujan 图——谱第二特征值达到 Alon–Boppana 下界的最优扩张——名字里那位印度数学家,与本册开篇的「Ramanujan 数 1729」遥遥相望。数学没有终点,只有下一个桥。
181实验

第六章 代数图论与网络:矩阵里的图实验:Matrix–Tree 与 PageRank 真跑

★★★ 把本章两大算法真跑一遍:Matrix–Tree 数生成树(K4 对拍 Cayley);PageRank 幂法迭代(5 页小网)。

def det(mat):
    a = [row[:] for row in mat]
    n = len(a); d = 1.0
    for i in range(n):
        p = max(range(i, n), key=lambda r: abs(a[r][i]))
        if abs(a[p][i]) < 1e-12: return 0.0
        if p != i: a[i], a[p] = a[p], a[i]; d = -d
        d *= a[i][i]
        for r in range(i + 1, n):
            f = a[r][i] / a[i][i]
            for c in range(i, n):
                a[r][c] -= f * a[i][c]
    return d

def num_spanning(n, edges):
    L = [[0.0] * n for _ in range(n)]
    for u, v in edges:
        L[u][v] -= 1; L[v][u] -= 1
        L[u][u] += 1; L[v][v] += 1
    minor = [row[1:] for row in L[1:]]
    return round(det(minor))

E4 = [(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)]
print("K4 生成树数 =", num_spanning(4, E4), "(Cayley: 42=16)")
E5 = [(0,1),(1,2),(2,3),(3,4),(4,0)]
print("C5 生成树数 =", num_spanning(5, E5), "(圈:5)")

def pagerank(n, edges, d=0.85, iters=60):
    out = [0] * n
    for u, v in edges: out[u] += 1
    r = [1.0 / n] * n
    for _ in range(iters):
        nr = [(1 - d) / n] * n
        for u, v in edges:
            nr[v] += d * r[u] / out[u]
        r = nr
    return r

E = [(0,1),(0,2),(1,2),(2,0),(3,2),(3,0),(4,0),
     (4,2),(4,3),(3,4)]
r = pagerank(5, E)
print("PageRank:", " ".join("%.3f" % x for x in r))
print("排序:", " > ".join("P%d" % (i + 1)
      for i in sorted(range(5), key=lambda k: -r[k])))

实跑输出:

K4 生成树数 = 16 (Cayley: 42=16)
C5 生成树数 = 5 (圈:5)
PageRank: 0.365 0.185 0.366 0.042 0.042
排序: P3 > P1 > P2 > P4 > P5
对拍读法。① Matrix–Tree 双例命中:K4 = 16 与 Cayley 公式 nn−2 = 42 逐位一致;C5 = 5 与「圈断一条边」的直觉账一致——1847 年的定理 60 行代码兑现;② PageRank 的合理性:P3(被 P1、P2、P4、P5 四方指向且 P2 唯一出链是它)登顶,P1(被 P0?P3、P4、P2 指向)紧随;P4/P5(只被度高的 P3 分薄)垫底——「被重要的页面链接才重要」的加权逻辑肉眼可见;③ 幂法的收敛:60 轮后数值稳定(收敛率 ≈ d·|λ2| ≈ 0.85×0.5?——量级直觉:几十轮足够),数亿节点的真实 Web 也靠同一循环——「迭代 + 谱」是基础设施级的计算模式。
182格物札记

第六章 代数图论与网络:矩阵里的图格物札记:从 Kirchhoff 到 Google

★★ 格物札记:从 Kirchhoff 到 Google。

1847:大学生的论文。Gustav Kirchhoff 23 岁发表电路定律,附带证明了 Matrix–Tree 定理——为了算电阻网络的等效电阻,他顺手续了图论最老的悬案(生成树计数)。物理学向数学「借笔」的第一批战果。

百年接力。1890s Poincaré 把电路方程写成矩阵;1920s–30s 谱图论成形(Collatz 之「图的特征值」);1959–60 Erdős–Rényi 让随机图给网络立基线;1973 Fiedler 命名「代数连通度」;1996–98 Spielman–Teng 的谱稀疏化与近线性算法让「电阻」可大规模计算。一条从电路到算法的笔迹,画了一百五十年。

1998:两次落地。Brin 与 Page 的论文只有十几页,把「链接即投票」写成主特征向量——Google 的初始引擎;同年 Kleinberg 发明 HITS(双特征向量:hub 与 authority)——特征向量从教科书走进每个人的搜索框。今天任何一次检索、推荐、社交排序背后,都站着 1847 年那个 23 岁青年写下的矩阵方程。

「无用之用」的三段式。纯数学的矩阵谱理论(19 世纪)→ 物理与化学的图形谱(20 世纪中)→ 产业与机器学习的主战场(20 世纪末至今)。每一次落地都发生在理论「沉睡」几十年之后——Kirchhoff 没有预见到 Google,Erdős 没有预见到社交网络测量。理论的价值不以落地时刻的掌声计价,以「到时它在」的确定性的计价。

札记的结论。本册以柯尼斯堡七桥开场(一个城市的散步问题),以 Google 收尾(一个星球的信息组织)——两端之间是同一个数学对象「图」的两百年变形记。「连接」的数学,恰好也是「连接」的历史。

183速查

第六章 代数图论与网络:矩阵里的图速查:第六章概念与公式

★★ 速查:第六章概念与公式。考前一页纸,逐条过。

对象/定理陈述(速记)备注
途径计数(Ak)[i][j] = 长 k 途径数矩阵乘法 = 走一步
谱读数Σλ2=2m;迹 A3/6=三角数谱是必要指纹(同谱≠同构)
二部性A 谱关于 0 对称奇圈是病灶
LaplacianL = D − A;xTLx = Σ(x_u−x_v)2能量语言
代数连通度μ2 > 0 ⟺ 连通;重数0 = 分支数Fiedler 1973
Matrix–Treeτ = L 余子式 = μ2⋯μ_n / nKirchhoff 1847;K_n: nn−2
随机游走π(v) = d(v)/2m;收敛 ⟺ 连通+非二部速率 |λ2(P)|
有效电阻H(u,u) = 2m·R_eff;Σ R_eff = n−1Foster;电网络 = 谱显微镜
相变c < 1 碎 / c > 1 巨分支 θ=1−e−cθ临界 c = 1
小世界距离 ~ log n / log d波前膨胀的算术
幂律P(k) ∝ k−γ;增长+优先连接鲁棒且脆弱
PageRankr = (1−d)/n + d·Σ r_u/out_u主特征向量;幂法
动力学判据传染 ~1/μ_max;同步 K·μ2;收敛 非二部结构定命运

易忘三则。谱只给必要方向;传送项管死胡同与周期;G(n,p) 是基线不是模型。

小谱九九表。K_n:{n−1, −1×(n−1)};Km,n:{±√(mn), 0×(m+n−2)};C_n:2cos(2πk/n);P_n:2cos(kπ/(n+1));星 K1,n:{±√n, 0×(n−1)}。

184讲义

第六章 代数图论与网络:矩阵里的图全册回望:走向综合站

★★★ 讲义 6.16:全册回望——正文收官。

六章的合账。第一章把连接变成对象(度、握手、搜索);第二章找最小骨架(树、Cayley、MST);第三章问拆与走(割、Menger、Euler、Hamilton、最短路);第四章看画与涂(平面、四色、着色);第五章配对与必然(匹配、Hall、稳定婚姻、Ramsey);第六章写进矩阵(谱、随机图、PageRank、GNN)。六块拼图合起来是一句话:图论是「关系」的形式科学。

贯穿全书的三条暗线(最后一次点名)。① 对偶:Menger、最大流最小割、König、面点对偶——「一侧的最大 = 另一侧的最小」;② 双计数:握手、3F = 2E、Hall 的账、正则推论——「每物两侧」的会计学;③ 换笔:度换地图、面换透视、矩阵换画稿、概率换确定性——「笔迹决定问题库」。

五次「容器决定性格」变奏的终审。权性定搜索(1/单步/累计)、平面性定上限、奇偶定着色与对偶、二部定匹配与收敛、谱性定动态。结构不是描述,是命运。

走向综合站(p185–198)。接下来的十四页:年表与人物(1736–2016)、概念全景关系图、误读总清算、三组终局挑战(真跑实验、开放问题远眺)、评讲与速查。综合站不为考试,为告别——把六年的朋友一个个叫到台前,看清他们的脸。

通往综合站 综合站入口:全册回望 概念之网 度 → 连通 → 遍历 平面 → 着色 → 匹配 → 谱 对偶与双计数贯穿始终 思想之线 抽象(七桥)→ 判据(Euler) 对偶(Menger/König) 换笔(矩阵/谱/概率) 下一站 综合站 p185–198:年表 · 人物 · 全景图 · 挑战余韵
图 6-9 正文六章在此合账:概念之网与思想之线交汇——综合站将是它们的展厅与回声厅。
综合站

全景与余韵

把三百年收成一张年表与一张人物谱(欧拉、Kirchhoff、Cayley、Erdős、Hall、Gale、Shapley……),把六章收成一张概念依赖总图与一张方法决策树;两个综合实验分别真跑「谱方法:生成树计数与谱隙」和「随机图:相变与巨型分支」。挑战页向 Ramsey 数的边界冲刺,六道跨章大题检验打通能力,二十四问自查随后收兵。余韵两页一望前方:算法图论与复杂度、图上概率与扩张图、网络科学与图学习。合上本书时,顶点、树、遍历、着色、匹配、谱都汇成同一句话:连接的结构可以被抽象、被计算,也被工程化。
页型节奏:导引 → 讲义(概念 · 定理 · 证明 · 一步一图)→ 例题 → 习题 → 地图 · 小结 · 思想卡 · 挑战 · 实验
185导引

综合站 全景与余韵综合站导引:把全册收成一张图

★★★ 正文六章到此合龙。综合站不再引入新定理,做三件事:回望、动手、合账。

回望(p186–p190)。年表把 1736–2016 的图论大事与人物排成一条河;两篇札记提炼「抽象的三次跃迁」与「算法-结构-计算」的三角;概念总图把全书概念画成一张网,方法决策树回答「拿到图问题先问什么」。

动手(p191–p194)。两个综合实验(谱方法、随机图相变)把第六章的两台发动机真跑起来;终极挑战冲一次 Ramsey 数的边界;六道跨章大题要求把多个章节的工具拼装到同一道题上——单章通了不算通,跨章通才算通。

合账(p195–p198)。二十四问评讲自查(每章四问),全册小结与余韵(图论的地平线),全书速查总表——考前一页纸的终极版。

读法建议。若时间紧:p190 决策树 + p191–192 实验 + p198 速查是「最小闭环」;若时间足:按顺序走完,在 p197 的余韵处稍作停留——那里有本书真正想说的话。

综合站平面图 综合站:全景与余韵 回望四件套 年表与人物(p186)· 双札记(p187–188) 概念总图与方法决策树(p189–190) 双真跑实验(p191–192)· 终极挑战与习题(p193–194) 收束三件套 评讲二十四问(p195)· 全册小结与余韵(p196–197)· 全书速查(p198)
图 Z-1 综合站的十四页:先回望(年表/札记/总图),再动手(实验/挑战/习题),最后合账(评讲/小结/速查)。
186讲义

综合站 全景与余韵全景回望:图论的年表与人物

★★★ 全景回望:图论的年表与人物(1736–2016)。

年代事件与人物本册坐标
1736Euler 解七桥(柯尼斯堡)绪论 · p2
1847Kirchhoff:电路定律 + Matrix–Tree六章 · p159
1852–1890四色猜想 → Kempe 错证 → Heawood 证伪四章 · p105
1930sKuratowski(1930)、Ramsey(1930)、Hall(1935)四、五章
1941–1959Brooks 定理;Erdős–Rényi 随机图;Kuhn 匈牙利算法四、五、六章
1957–1965Berge 匹配理论;Gale–Shapley;Edmonds Blossom 与「好算法」宣言五章 · p130
1962–1976管梅谷中国邮路;四色定理(Appel–Haken 机器证明)三、四章
1973–1988Hopcroft–Karp;Fiedler 代数连通度;Ramanujan 图(LPS)五、六章
1998PageRank(Brin–Page);Watts–Strogatz 小世界六章 · p166
2012诺贝尔经济学奖(Roth:市场设计)五章 · p152
2016–今Facebook 六度实测 3.57;GNN 兴起;R(5,5) 仍悬五、六章

人物侧写三帧。Euler——失明后仍以心算完成论文,七桥判决是「位置几何」的第一声啼哭;Erdős——无居所、无职位的「游牧院士」,概率方法的布道者,与五百余人合著(Erdős 数成为学术界的亲缘单位);管梅谷——曲阜师范的青年教师,一篇论文让「中国邮路」成为唯一以中国学者工作命名的基础问题。

年表的一句话读法。图论的两百年是「一个散步问题 → 一门结构科学 → 一层文明基础设施」的三级跳——而每一级的台阶,都由上一级最朴素的结论铺成。

187格物札记

综合站 全景与余韵札记:抽象图论的三次跃迁

★★ 札记一:抽象图论的三次跃迁。

第一次:从桥到图(1736)。七桥问题的答案不在桥的长短宽窄里,Euler 把陆地缩成点、桥缩成线——抽象的代价是丢掉几何,回报是看见「度」。这次跃迁确立图论的方法论底色:先问「哪些细节与本问题无关」,再把无关者果断丢弃。

第二次:从图到空间(1930s)。Kuratowski 说非平面性只有两个病根,Whitney 说 2-连通图的嵌入唯一,Euler 公式把图与多面体焊在一起——图论发现自己竟是拓扑学的离散祖先。这次跃迁的回报是「嵌入」「对偶」「曲面」的整套语言:图的命运不只写在邻接表里,也写在它能住进什么空间里。

第三次:从结构到计算(1950s–1970s)。Edmonds 发出「好算法」宣言(多项式时间 = 数学上的「可行」),Gale–Shapley 把配对变成程序,四色定理把「证明」部分外包给机器。这次跃迁的回报是图论与计算机科学的合流——P/NP、复杂度、近似算法从此成为图论的日常语法。

三次跃迁的公共结构。每次都是「丢掉一些东西,得到一个更大的世界」:丢几何得度数、丢画稿得空间、丢手算得算法。抽象从来不是逃离现实,而是换一个能看见更多现实的观察点——第一章思想卡的承诺,至此三次兑现。

下一次跃迁在哪里?GNN 让机器自己「读图」;量子计算重新定义「可行」;高维与动态网络挑战静态理论。第四次跃迁的胚芽已经埋下——它的抽象原则,仍将是「问什么无关、什么要紧」。

188格物札记

综合站 全景与余韵札记:算法、结构与计算的三角

★★ 札记二:算法、结构与计算的三角。

三角的第一边:结构 ⇄ 算法。本册反复见证「结构定理变现为算法」:Menger 的对偶变现为增广路的停机证词、块割树变现为平面性检测的骨架、Euler 判据变现为 Hierholzer 的缝合程序、Matrix–Tree 变现为一个行列式。结构不是算法的装饰,是算法的正确性来源——没有定理背书的循环只是祈祷。

第二边:算法 ⇄ 计算。好算法宣言(多项式 = 可行)之后,图论与计算复杂性结婚:Euler 易而 Hamilton 难、2-SAT 易而 3-SAT 难、χ′ 候选二值而判定 NP 完全——「容易」与「极难」的悬崖成为图论版图的一部分。Ramsey 数 R(5,5) 与四色定理是这面悬崖的两个纪念塔:一个人类仍算不动,一个人类已经交给机器。

第三边:计算 ⇄ 结构。计算结果反过来重塑结构认知:随机图相变的模拟让我们「看见」临界点、PageRank 的迭代让「重要性」成为可测量、Facebook 的 7.2 亿人实验让六度变成 3.57。大规模计算是新型望远镜——它不证明定理,但指出该证什么。

三角的圆心。三边互动的圆心是「问题」:七桥是问题、婚配是问题、检索是问题。图论两百年最稳的立场:从真实问题出发,经抽象获得结构,用结构成就算法,让算法回到问题。本册的结构(每章问题先行)正是这个三角的教具化。

189地图

综合站 全景与余韵概念总图:连接的代数

★★★ 概念总图:把全册收成一张网。

六环的因果链(沿箭头读)。度与搜索(一)给出树(二);树给出遍历的秩序(Hierholzer、最短路树)(三);遍历之外的约束「画得出」给平面与着色(四);着色的「划分」语言引出匹配的「配对」语言(五);全部结构在矩阵里获得第二语言(六)。环之所以成环:第六章的谱把第一章的度重新定价(π = d/2m),尾首相接。

三个枢纽概念(全网的高铁站)。① 二部性:连通着色(χ=2)、匹配舞台(Hall)、游走收敛(非二部)、谱对称——四章共用;② 度:握手引理、平面平均度 < 6、Euler 判据、平稳分布——五章共用;③ 对偶:割-路、匹配-覆盖、面-点、primal-dual——贯穿到底。抓住枢纽,六章就不再是一串孤立故事。

使用建议。复习时把本图当「地图」用:从任意一环出发,先复述该环三概念,再沿箭头问「它如何喂给下一环」——六环走完,全书即成体系。

概念总图 概念总图:六环相扣 第一章 度与握手 BFS / DFS 二部图 第二章 树与生成树 Cayley / Prüfer MST 贪心 第三章 割与 Menger Euler / Hamilton Dijkstra 第四章 平面性 Euler 公式 Kuratowski 着色 / 四色 第五章 匹配 / Hall 稳定婚姻 Ramsey 第六章 谱 / Laplacian 随机图相变 PageRank / GNN 暗线:对偶 · 双计数 · 换笔(穿过每一环)
图 Z-2 六章成环:一环的出口是下一环的入口,暗线(对偶/双计数/换笔)穿环而过——「环而共盘」的全册版。
190地图

综合站 全景与余韵方法决策树:拿到图问题先问什么

★★★ 方法决策树:把六章压缩成三问。

Q1(问题类型)。存在性(「有没有」):先查判据库——Euler 判据(度数账)、Hall 条件(邻居账)、Kuratowski(禁手)、二部判据(奇圈);判据在则证存在,判据败则构造反例。最优化(「最多/最少」):先找对偶——最大流最小割、匹配-覆盖、MST 的切定理——对偶给出「上界即下界」的夹逼。动态(「会怎样」):先看谱——μ2 定同步、μ_max 定传染、|λ2(P)| 定混合。

Q2(容器特性)。同一问题在不同容器里难度天差地别:匹配在二部图多项式、一般图要 Blossom;着色在平面图 ≤ 4、一般图 NP 完全;最短路非负权贪心、负权 Bellman。先问容器的特性(权?平面?二部?稠密?),再选定理与算法——「容器决定性格」的操作化。

Q3(证词需求)。答案之外要不要证据?对偶结构(König、最大流)天然附赠证书;Hall 违反子集指出「卡在谁身上」;Kuratowski 细分给出「为什么画不出」。工程里「失败证词」常比成功更值钱——它说明下一步修哪里。

三问的元教训。图论的工具从不按章节排队,只按问题排队。拿到问题的第一分钟,问类型、问容器、问证词——三问之后,已经站在了正确的章节门口。

方法决策树 方法决策树:拿到图问题先问什么 Q1 问题是哪一类? 存在性 / 计数 / 最优化 / 动态 存在性 有判据吗? Euler 度数 / Hall 二部 / Kuratowski 最优化 有对偶吗? 最大流-最小割 匹配-覆盖 / MST 动态 / 大规模 看谱与基线 μ2​ / μm​ax G(n,p) / 幂律 Q2 图有什么容器特性?(二部?平面?正则?无标度?)——特性决定可用定理库 Q3 需要证词吗?(对偶给出「为什么最优/为什么失败」的证据)
图 Z-3 三问定位法:先分问题类型,再看图的容器特性,最后决定要不要对偶证词——三问之后,工具自明。
191实验

综合站 全景与余韵综合实验一:谱方法真跑——生成树计数与谱隙

★★★★ 综合实验一:谱方法真跑——生成树计数与谱隙。把第六章两件谱武器(Matrix–Tree、代数连通度)在一页里真跑对拍。

import numpy as np

def lap_spec(n, edges):
    L = np.zeros((n, n))
    for u, v in edges:
        L[u][v] -= 1; L[v][u] -= 1
        L[u][u] += 1; L[v][v] += 1
    ev = np.sort(np.linalg.eigvalsh(L))
    return [round(x, 3) for x in ev]

K4 = [(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)]
C6 = [(0,1),(1,2),(2,3),(3,4),(4,5),(5,0)]
star = [(0,1),(0,2),(0,3),(0,4)]
print("K4    L 谱:", lap_spec(4, K4))
print("C6    L 谱:", lap_spec(6, C6))
print("星K1,4 L 谱:", lap_spec(5, star))

实跑输出:

K4    L 谱: [-0.0, 4.0, 4.0, 4.0]
C6    L 谱: [-0.0, 1.0, 1.0, 3.0, 3.0, 4.0]
星K1,4 L 谱: [0.0, 1.0, 1.0, 1.0, 5.0]
对拍读法。① K4:0 单重(连通)+ μ2⋯μ_n = 43 ⇒ τ = 64/4 = 16 ✓(Cayley 42 逐位命中——谱积与余子式两路合龙);② C6:μ2 = 1 与路图公式 2 − 2cos(2π/6) = 1 严丝合缝;圈是「单环结构」的典型:谱只有 4 个不同值(对称性的声音很纯);③ 星 K1,4:μ2 = 1 但 μ_max = 5——与 C6 的 μ2 同为 1,谱形却大异(星是「一低四高」)——μ2 相同不等于结构相同:星的瓶颈在「低频一档」(断中心即散架),圈在每一处均匀受力。读谱要读整张谱,不能只报 μ2。
192实验

综合站 全景与余韵综合实验二:随机图真跑——相变与巨型分支

★★★★ 综合实验二:随机图真跑——相变与巨型分支。并查集建图 + 多组模拟,把 Erdős–Rényi 的临界现象跑展示。

import random

def giant_frac(n, c, trials=20):
    fs = []
    for t in range(trials):
        random.seed(t)
        p = c / (n - 1)
        parent = list(range(n))
        def find(x):
            while parent[x] != x:
                parent[x] = parent[parent[x]]; x = parent[x]
            return x
        for u in range(n):
            for v in range(u + 1, n):
                if random.random() < p:
                    ru, rv = find(u), find(v)
                    if ru != rv: parent[ru] = rv
        from collections import Counter
        fs.append(max(Counter(find(i)
            for i in range(n)).values()) / n)
    return sum(fs) / len(fs)

for c in [0.5, 0.9, 1.0, 1.2, 2.0, 4.0]:
    f = giant_frac(1000, c)
    x = c
    for _ in range(50):
        x = 1 - pow(2.718281828, -c * x)
    th = x if x > 0.01 else 0.0
    print(f"c={c}: 模拟={f:.3f}  理论={th:.3f}")

实跑输出(n = 1000,20 组平均):

c=0.5: 模拟=0.011  理论=0.000
c=0.9: 模拟=0.043  理论=0.000
c=1.0: 模拟=0.069  理论=0.038
c=1.2: 模拟=0.267  理论=0.314
c=2.0: 模拟=0.790  理论=0.797
c=4.0: 模拟=0.981  理论=0.980
对拍读法。① 相变肉眼可见:c = 0.9 → 1.2 之间,巨分支占比从 4% 跳到 27%——「临界点两侧是两个世界」不再是定理而是现象;② c 远离 1 时模拟与理论几乎重合(2.0 与 4.0 处误差 < 1%)——不动点方程 θ = 1 − e−cθ 的物理准确性;③ 临界附近的偏差(c = 1.0–1.2)不是 bug:有限规模(n = 1000)的临界涨落 + 理论的渐近(n → ∞)——「临界区恰恰是最难算的地方」,这与统计物理的经验完全一致。60 行 Python 跑出一个相变——Erdős 若见此表,当浮一大白。
193挑战

综合站 全景与余韵终极挑战:Ramsey 数的边界冲刺

★★★★ 终极挑战:Ramsey 数的边界冲刺。把 p138 的已知版图推进一小步——亲手把 R(3,5) 的界压到 14。

任务一:下界 R(3,5) ≥ 14(构造 13 点染色:无红三角、无蓝 K5)。构造语言:点集 ℤ13,红边 = 差为二次剩余集的倍数?——具体提示:红边取差 ±1, ±5(13 阶循环图 C13(1,5)),蓝边为其余差(±2, ±3, ±4, ±6)。验证义务:红图无三角(差集 {1,5} 内任意两元素之差不在集合中?——差 5−1 = 4 ∉ {±1, ±5},差 −1−5 = −6 ∉,差 1−(−1) = 2 ∉——三个差逐一验完);蓝图无 K5(任 5 点中必有红边——等价于红图的独立数 ≤ 4,用「13 点、红度 4、无三角 ⇒ α ≤ ?」的 Hoffman 式估计或手工分类验证)。

任务二:上界 R(3,5) ≤ 14(递推 + 岔路)。由 Ramsey 递推:R(3,5) ≤ R(2,5) + R(3,4) = 5 + 9 = 14 ✓(R(2,5) = 5 平凡——红邻数与蓝邻数的两岔论证完整写出,注意「红邻 ≥ 5 时内部红 K3?不——红邻 5 点中若红边即红三角、若全蓝即蓝 K5——一条岔路直接出结果;蓝邻 ≥ 9 时用 R(3,4) = 9)。

任务三(开卷远眺)。查证 R(3,5) = 14 的现代定谳(Grinstead–Roberts?——实为 Grinstead & Roberts 1982 或更早的 Kalbfleisch):14 与 14 相遇,精确值落定——对比 R(5,5)(43–48)的深渊,体会「非对角 Ramsey 比对角 Ramsey 温和」的规律。

挑战的余味。刚完成的正是 Ramsey 数研究的完整闭环:循环图构造(下界)→ 递推岔路(上界)→ 文献核对(定谳)。再往上一步就是当代前沿:R(3,6) = 18 已定、R(3,7) = 23 已定、R(3,8) = 28?——已定(2024–25 的机器辅助结果)——而 R(3,10) 起进入未知。下一个命名权虚位以待。
194习题

综合站 全景与余韵综合习题:六道跨章大题

★★★★ 综合习题:六道跨章大题。每题需两个以上章节的工具联合作战。

T1(一×三×六).证明:连通图 G 的邻接谱满足 λ1 > 0 且对应特征向量可取全正;若 G 非连通则重数 0 的情形如何?与 Laplacian 的 0 重数对照。Perron–Frobenius 连通版;L 的 0 重数 = 分支数,A 无此性质——两谱的「分工」。

T2(二×三).Kruskal 用并查集实现时,若把「按秩合并」去掉(只做路径压缩),最坏复杂度变成什么?构造一个退化序列说明。O(log n) 的保障来自秩;退化成链时 find 退化——并查集的复杂度证明是「树高度」的账(第二章的结构 + 第一章的 DFS 高度)。

T3(三×四).证明:任何平面图都有 6-着色(用第三章的「贪心锁定」语言重写五色证明的前半,并用第四章的边数上限供弹)。δ ≤ 5 ⇒ 归纳删点 → 逆序贪心上色:6 色恒有余——「删除-恢复」与 Kempe 无关的更弱版本。

T4(四×五).轮图 W6(C5 加中心)的匹配数与色数各是多少?二部吗?它的点覆盖是哪些点?ν = 2(5 个奇数点……?算);χ = 4;非二部(奇圈);König 不适用(非二部)——τ 与 ν 是否相等(对偶失效现场)。

T5(五×六).随机图 G(n, c/n) 在 c > 1 时巨分支内的诱导子图平均度约多少?由此说明「巨分支像一棵超大树(第二相 c = 1 处趋于树状)」。巨分支内边 ≈ 点 − 圈亏格 → 平均度 → 2;「临界树上相变」是随机图理论最深一章。

T6(全书).从「七桥」到「PageRank」,列举三个「同一数学结构服务两个时代」的例子,并说明两个时代各自问的问题是什么。度(一笔画/枢纽影响力)、生成树(电路冗余/网络可靠性)、谱(分子振动/网页排序)——答案开放,论证要紧。

自评线。T1/T2 基础联动;T3/T4 中档合成;T5 前沿味道;T6 历史视野。六题全对,本册真正的「毕业证」。
195评讲

综合站 全景与余韵评讲与自查:二十四问

★★★ 评讲与自查:二十四问。每章四问,遮住答案自测——答不出的回本章速查页。

第一章。① 握手引理的直接推论(奇点偶数个)怎么用?② 途径 ⊃ 迹 ⊃ 路的「提炼」依据?③ κ ≤ λ ≤ δ 的每步不等号来源?④ BFS 与 DFS 的「性格差异」各一句?(奇点记账 / 首次重复必成圈 / Menger 的影子 / 层进 vs 探底)

第二章。① 树的六刻画背得出几条?② Kruskal 的切定理依据?③ Prüfer 序列与 Cayley 的关系?④ 并查集复杂度中的 α(n) 是什么?(5 条以上合格 / 任何跨切的最小边必属某 MST / nn−2 的双射证明 / 反阿克曼——近常数)

第三章。① Menger 定理的两个版本与一句对偶读法?② Euler 回路与途径的判据各一句?③ Dijkstra 为什么要求非负权?④ Hamilton 难在哪一句行话里?(分离 = 不相交 / 全偶 / 恰 2 奇 / 锁定翻案 / 局部不可核销)

第四章。① Euler 公式与两个边数上限?② K5、K3,3 各死于哪条上限?③ 五色证明的三个关键零件?④ χ′ 的二分与判定难度?(3V−6 / 2V−4 / 9 > 8 / δ≤5 + Kempe 链 + 平面隔开 / {Δ, Δ+1} 但 NP 完全)

第五章。① Berge 判据与增广路翻转?② Hall 条件的准确形态(每个子集!)?③ GS 的最优性不对称?④ R(3,3) = 6 的两侧证明各一句?(无增广即最大 / |N(S)| ≥ |S| / 男优女劣 / 鸽笼 + C5 反例)

第六章。① 途径计数公式?② μ2 的两个名字与两个读法?③ 相变临界与巨分支方程?④ PageRank 的传送项双使命?(Ak / 代数连通度-第二声部 / c=1,θ=1−e−cθ / 数学兜底+用户跳走)

评讲的使用法。全对 → p196;错 1–3 → 回速查页;错 4+ → 回各章小结。自查不是考试,是导航。
196小结

综合站 全景与余韵全册小结:连接的语法

★★★ 全册小结:连接的语法。

一本词典的收尾。197 页走过的路,可以压缩成一部小词典:名词——点、边、度、树、圈、面、匹配、团;动词——搜索、增广、着色、嵌入、游走;语法——判据、对偶、双计数、归纳、贪心;修辞——反例、换笔、抽象。「连接」从此不再只是日常词,而是一整套可推理的语法。

六句话带走六章。① 连接有账目(度与握手,一切从计数开始);② 骨架有价格(MST 与贪心的合法性);③ 遍历有判决(Euler 易、Hamilton 难的悬崖);④ 画法有约束(平面性与四色);⑤ 配对有判据(Hall 与增广的构造性);⑥ 结构有声音(谱把一切翻译成代数)。

三条暗线的最后重申。对偶(一个数的两副面孔)、双计数(每物两侧的会计学)、换笔(笔迹决定问题库)——它们不属于任何一章,因为它们属于每一章;下一次在别的数学分支遇到它们(LP 对偶、傅里叶对偶、同调对偶),相认。

与相邻领域的接口。本册是「九章格」大学段图论分册;抽象代数分册的同调思想(第三章札记的伏笔)、群论分册的对称性(Ramanujan 图的群构造)、分析分册的算子(Laplacian 的无穷维化)都是它的下游。图论是离散与连续的翻译官——在本册学到的每一件工具,都将在邻册换装再登场。

197小结

综合站 全景与余韵余韵:图论的地平线

★★ 余韵:图论的地平线。

地平线一:纯粹侧。Ramsey 数的深渊仍在(R(5,5) 的 43–48 已沉睡三十年);Hadwiger 猜想(团细分的着色理论大一统)仍开放;图同构问题的真实复杂度仍悬而未决(Babai 2016 的准多项式是近年最大进展)。「简单问题 + 艰难证明」的图论版图还在扩张。

地平线二:计算侧。近乎线性的最大流(2022 年后的 algorithmic 突破,谱技术唱主角)、图同构的准多项式、GNN 的表达能力理论——谱方法是这一侧的公共语言:本册 p158–p166 的每一个量都在当代文献里活跃。

地平线三:物理与生命侧。量子网络的纠缠图、蛋白质相互作用网络的社区结构、神经网络的连接组(connectome)、生态系统食物网的鲁棒性——凡是「相互关系」构成的世界,图论是母语法;相变、渗流、同步的判据已在实验数据里反复出庭。

地平线四:自己的侧。本册的每个实验(BFS 六度、Kruskal、Hierholzer、Welch–Powell、匈牙利、Matrix–Tree、相变模拟)都只有几十行代码——图论是「随手可验」的数学:装一个 Python,就能复现两百年;改一个参数,就能撞见未知。地平线不在远方,在下一次运行里。

最后的最后。1736 年,Euler 在柯尼斯堡的桥上没有找到答案——他找到了问题的新形状。愿合上本册之后,遇到任何纠缠的关系网络时,第一反应不再是「好乱」,而是:「先把它画成图,再问对的问题。」

198速查

综合站 全景与余韵全书速查:公式与定理总表

★★ 全书速查:公式与定理总表。终极一页纸,六章浓缩。

章核心定理/公式速记
一Σd = 2m;κ ≤ λ ≤ δ;二部 ⟺ 无奇圈握手 / Whitney / König
一BFS/DFS O(V+E);波前定理;括号定理线性搜索双雄
二树六刻画;Cayley nn−2;MST 切定理骨架三件套
二Kruskal O(m log n);并查集 α(n)贪心 + 纤维
三Menger:分离 = 不相交;最大流 = 最小割对偶双塔
三Euler 全偶度;Dirac δ ≥ n/2;Dijkstra 非负权遍历与短路
四V−E+F=2;E ≤ 3V−6(2V−4);Kuratowski平面三连
四χ ≤ Δ+1;五色可手证、四色机证;χ′∈{Δ,Δ+1}着色四件
五Berge 增广;Hall 逐子集;König ν=τ匹配三定理
五GS 男优女劣;R(3,3)=6;R(5,5)∈[43,48]配对与必然
六Ak 数途径;μ2>0 连通;τ=μ2⋯μ_n/n谱三件
六c=1 相变;距离~log n/log d;PageRank=主特征向量网络三件

三次提醒(全书最易忘)。对偶只在合适容器成立(二部/平面/单边权);谱结论只走必要方向;基线模型不是现实模型。

全书终。感谢同行 197 页。愿「连接」从此对而言是一门语言——有名词、有语法、有修辞,而且,永远可以真跑。

二索引(Index)

术语与概念

  • Kruskal 算法47
  • Prim 算法50
  • 编码45
  • 并查集49
  • 带权图24
  • 对读一句90
  • 对拍读法36, 61, 87, 121, 151, 181, 191, 192
  • 对拍与注意点53
  • 方法复盘52, 80, 111, 114, 142, 144, 172, 174
  • 方法论复盘35
  • 方法盘点27
  • 防坑纪律89, 110, 141, 171
  • 复盘28, 77, 78
  • 构造18
  • 广度优先19
  • 管梅谷71
  • 结论与教训60
  • 解码45
  • 几何对偶100
  • 可图性12
  • 连通分支22
  • 邻接表7
  • 邻接矩阵7
  • 流网络24, 68
  • 落地方法论107
  • 男方求婚版133
  • 评讲的使用法195
  • 平面图 / 面96
  • 三连问23
  • 深度优先19
  • 时间戳与括号序21
  • 手演纪律54, 79
  • 随机游走160
  • 贪心着色102
  • 挑战的余味86, 120, 150, 180, 193
  • 同构5
  • 稳定婚姻问题132
  • 问题3
  • 有向图24
  • 着色 / 色数101
  • 自评线29, 30, 55, 56, 81, 82, 91, 113, 115, 143, 145, 173 等

定理与命题

  • Berge 定理127
  • Cayley 公式44
  • Dirac 定理73
  • Euler 定理69
  • Hall 定理128
  • Ramsey 定理136
  • 边版本67
  • 波前定理20
  • 存在性43
  • 复杂度19, 22
  • 基本定理组158
  • 括号定理21
  • 六刻画42
  • 收敛定理160
  • 随机场景的定量化164
  • 贪心判决75
  • 提炼引理14
  • 唯一性引理46
  • 稳定性133
  • 绪论的四个基本概念9
  • 正则二部图131
  • 最大流最小割定理68

记号与缩写

  • BFS7, 8, 9, 10, 15, 16, 19, 20, 21, 22, 26, 28 等
  • DFS7, 8, 9, 10, 15, 19, 21, 22, 26, 30, 31, 32 等
  • GNN155, 169, 176, 184, 186, 187, 189, 197
  • GS134, 140, 144, 145, 146, 147, 153, 195, 198
  • LP67, 68, 71, 100, 196
  • MST40, 46, 47, 48, 50, 51, 54, 55, 56, 57, 58, 59 等
  • NP5, 23, 64, 65, 71, 72, 73, 74, 83, 84, 85, 88 等
  • NRMP132, 134, 140, 145, 152
  • SAT85, 110, 138, 188
  • TSP23, 51, 57, 65, 71, 72, 74, 83, 84, 85, 88, 92

人名

  • Appel104, 120, 186
  • Bellman75, 76, 79, 89, 91, 92, 190
  • Berge124, 125, 127, 128, 130, 134, 146, 147, 153, 186, 195, 198
  • Blossom93, 126, 127, 129, 130, 140, 186, 190
  • Brin166, 182, 186
  • Brooks102, 118, 123, 186
  • Cayley8, 18, 39, 40, 43, 44, 45, 57, 58, 60, 61, 62 等
  • Dijkstra7, 14, 20, 50, 57, 64, 65, 75, 76, 79, 83, 84 等
  • Dirac18, 25, 29, 64, 65, 72, 73, 82, 83, 84, 88, 89 等
  • Edmonds68, 71, 93, 126, 129, 186, 187
  • Euler2, 3, 6, 8, 11, 17, 32, 37, 62, 64, 65, 69 等
  • Facebook164, 186, 188
  • Fiedler158, 161, 167, 170, 176, 177, 180, 182, 183, 186
  • Floyd64, 65, 75, 76, 83, 84, 88, 90, 91, 92
  • Ford68, 75, 76, 79, 88, 89, 91, 127
  • Foster161, 177, 183
  • Fulkerson68, 88, 127
  • Gale124, 125, 132, 133, 134, 141, 144, 146, 152, 153, 179, 184 等
  • Gallai10, 12, 26, 27, 31, 35, 38, 124, 129, 137, 139, 146 等
  • Google155, 166, 182
  • Haken104, 120, 186
  • Hakimi12, 26, 27, 31, 33, 35, 38
  • Hall8, 16, 23, 26, 67, 68, 83, 124, 125, 126, 127, 128 等
  • Hamilton2, 8, 18, 25, 29, 32, 38, 51, 55, 59, 64, 65 等
  • Havel12, 26, 27, 31, 33, 35, 38
  • Heawood103, 104, 119, 186
  • Hierholzer19, 64, 65, 69, 70, 71, 78, 83, 84, 85, 86, 87 等
  • Hopcroft108, 123, 130, 147, 153, 186
  • Karp68, 72, 74, 130, 147, 153, 186
  • Kempe103, 104, 109, 118, 119, 120, 123, 186, 194, 195
  • Kirchhoff60, 62, 154, 155, 159, 160, 161, 179, 182, 183, 184, 186
  • Kruskal7, 8, 35, 39, 40, 46, 47, 48, 49, 50, 51, 54 等
  • Kuhn130, 135, 186
  • Kuratowski6, 8, 23, 94, 95, 99, 100, 108, 109, 116, 117, 119 等
  • König16, 38, 101, 106, 114, 118, 124, 126, 127, 128, 129, 130 等
  • Laplacian8, 44, 60, 154, 155, 157, 158, 161, 165, 167, 169, 172 等
  • Matrix8, 44, 57, 59, 60, 62, 63, 105, 115, 118, 154, 155 等
  • Menger8, 15, 24, 26, 31, 64, 65, 67, 68, 80, 81, 83 等
  • Mycielski101, 119, 139
  • Page166, 182, 186
  • PageRank2, 4, 8, 23, 34, 135, 140, 146, 154, 155, 160, 166 等
  • Powell94, 95, 102, 103, 107, 109, 112, 121, 123, 197
  • Prim8, 39, 40, 46, 47, 48, 50, 56, 57, 58, 61, 63 等
  • Prüfer8, 39, 40, 44, 45, 53, 55, 57, 58, 59, 61, 63 等
  • Ramanujan180, 186, 196
  • Ramsey2, 8, 13, 23, 34, 109, 124, 125, 126, 127, 128, 129 等
  • Roth133, 134, 152, 186
  • Rényi154, 162, 163, 182, 186, 192
  • Shapley124, 125, 132, 133, 141, 144, 146, 152, 153, 179, 184, 186 等
  • Tait98, 115, 119, 131
  • Tree8, 44, 57, 59, 60, 62, 63, 105, 115, 118, 154, 155 等
  • Vizing18, 94, 106, 107, 109, 110, 116, 118, 123
  • Warshall75, 76, 88, 90
  • Welch94, 95, 102, 103, 107, 109, 112, 121, 123, 197
  • Whitney15, 38, 67, 81, 84, 88, 99, 117, 187, 198