想象你是城市道路规划师小林。你拿到一张空白图纸,要为一座新城设计道路网。你的愿望是:所有道路都在同一层平面上铺设,不修任何立交桥——因为立交桥太贵了。可是有些路规划着规划着就“打架”了:两条路非要横穿彼此。你渐渐发现,有的道路网天生就能在纸上摊得整整齐齐,有的却注定需要跨越式设计。数学家把这两种命运分别叫作“平面图”和“非平面图”。 本文的故事从小林的图纸展开:欧拉公式是他的“验算神器”,库拉托夫斯基定理教他识别两类“天堑”结构,对偶图让他从街区视角换位思考,五色定理则告诉他给街区涂色最少需要几种颜色。这些从画纸中诞生的智慧,最终走进芯片工厂和地图印刷厂,成为真实世界的基础规则。哪怕你完全没接触过图论,读完本文也能理解:一张图能不能“平铺”,背后竟藏着如此精巧的理论。

岗位关联

掌握平面图理论,让 AI 从业者理解图结构中的“空间可嵌入性”约束,在知识图谱布局、芯片布线、地图着色等场景中设计无冲突的图模型与可视化方案。

目录
  1. 可视化演示
  2. 平面图定义——纸上画路的艺术
  3. 欧拉公式——规划师的验算神器
  4. 库拉托夫斯基定理——两条无法逾越的天堑
  5. 对偶图构造——街区的社交网络
  6. 五色定理——五种颜色永远够用
  7. 应用场景——从画纸走进硅片与地图
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

交互演示平面图的欧拉公式V-E+F=2,以及K5和K3,3两个不可平面化的禁止子图,切换模式查看边交叉情况。

本节配有交互动效(进入视口后自动加载,约 3KB)。

平面图与欧拉公式 四面体K4为平面图,边不相交 欧拉公式验证V-E+F=2恒成立 V-E+F=2 平面嵌入满足欧拉示性数等于2

平面图定义——纸上画路的艺术

小林拿起铅笔,在图纸上画出第一版路网:五个广场两两相连。他越画越不对劲——当画到连接第五对广场的那条路时,铅笔无论如何都绕不开已经画好的路。他沮丧地意识到,这份规划如果不修立交桥,就永远无法画完。他的困惑,正是图论中“平面性”这一核心问题的开端。

数学上,如果一个图能画在平面上,使得所有边只在顶点处相交,就称它为平面图。注意关键词是“存在一种画法”:五角星图案的直观画法有交叉,但只要把五个顶点重新排列成五边形,再画对角线,所有交叉都消失了——所以它是平面图。而小林画的“五个广场两两相连”(即完全图 K5),无论怎样重排,总有一条线要横穿别人,这是平面性的“结构性障碍”。

判定平面性有两个层次的工具。一个来自欧拉公式的必要条件:连通平面图满足 E ≤ 3V−6。用这个式子可以一票否决 K5:V=5 时上界是 9,而 K5 有 10 条边,直接出局。但注意这只是必要条件——K3,3 满足 9 ≤ 12,仍然不是平面图,真正的“照妖镜”是下一节的库拉托夫斯基定理。

小林把这个不等式当作“体检指标”,快速筛查掉明显不靠谱的方案。他明白,在纸上画路的艺术,既考验手艺,更考验对结构规律的洞察。一张图能不能平铺,不是看运气,而是看它的“筋骨”是否触碰了边界。

E≤3V−6(V≥3)\displaystyle E \le 3V - 6 \quad (V \ge 3)
这个不等式说明:平面图的边数被顶点数“封印”住,不可能无限膨胀。它像一次体检指标,能快速筛查出明显非平面的图。
  1. 顶点数 V图中路口(顶点)的个数。例如 K5 有 5 个顶点。
    V=5V = 5
  2. 边数 E图中道路(边)的条数。K5 中每对顶点之间都有边,所以有 10 条边。
    E=C52=10E = C_5^2 = 10
  3. 上界 3V−6平面图边数的最大值。每个面至少由 3 条边围成,每条边属于 2 个面,结合欧拉公式化简即得。
    3F≤2E,F=E−V+2⇒E≤3V−63F \le 2E,\quad F = E - V + 2 \Rightarrow E \le 3V - 6

欧拉公式——规划师的验算神器

小林画了一百张设计图后,忽然发现一个铁律:每张图的路口数减去道路段数,再加上街区数,永远等于 2。他一开始以为是巧合,直到他在图纸角落写下了那个平凡的恒等式——V−E+F=2。这个公式后来以“欧拉公式”之名传遍数学界。

这里的 V 是顶点数,E 是边数,F 是面数。面数包括最外面的“无限大街区”——想象城市之外就是空旷荒野,那也算一个面。公式只对连通平面图成立:一旦有孤立的“飞地”(多个连通分量),常数 2 就变成 1+C(C 为连通分量数)。

证明并不困难,用对边数的归纳法。基础情形只有 1 个顶点、0 条边时,1−0+1=2,成立。添加一条新边时分类讨论:若新边连接两个已有顶点,则封闭一个新面,E 和 F 同时加 1;若新边连入一个新顶点,则 V 和 E 同时加 1。两种情况下 V−E+F 都保持不变,于是公式对所有连通平面图成立。

小林用这个公式轻松算出任意路网的街区数:只要数清楚路口和道路段。他甚至由此推导出边数天花板 E ≤ 3V−6——正是他用来“体检”规划的法宝。欧拉公式不仅是一道算术题,更像一把钥匙,打开了整个平面图理论的大门。

V−E+F=2\displaystyle V - E + F = 2
欧拉公式是平面图理论的“牛顿定律”:它把三个看似无关的计数联系起来,只要知道其中两个量,第三个立刻算出。
  1. 基础情形只有一个顶点、没有边时,图只有 1 个外部面。
    1−0+1=21 - 0 + 1 = 2
  2. 长出新枝连接一个新顶点(像是城市向外修出一条断头路),V 和 E 各加 1,F 不变,所以差值不变。
    (V+1)−(E+1)+F=V−E+F(V+1) - (E+1) + F = V - E + F
  3. 闭合环路连接两个已有顶点(像是修路围出一块新街区),E 和 F 各加 1,V 不变,差值依然不变。
    V−(E+1)+(F+1)=V−E+FV - (E+1) + (F+1) = V - E + F

库拉托夫斯基定理——两条无法逾越的天堑

欧拉公式能筛掉很多非平面图,但小林遇到了一个漏网之鱼:三个电厂各拉三条线到三个工厂,总共 9 条线、6 个顶点,完全满足 9 ≤ 12。但他无论如何都画不出无交叉的布线图。最终他明白了:有些结构障碍不是“量”的问题,而是“形”的问题。

图论中,K5(五个顶点两两相连)和 K3,3(左右各三个顶点,两两全连)是两座不可逾越的“天堑”。波兰数学家库拉托夫斯基证明了一个漂亮的充要条件:一个图是平面图,当且仅当它不含 K5 或 K3,3 的“细分”。细分就像在一条路中间增设几个并不改变交通拓扑的“环岛”——把一条边替换成一条更长的路径。只要能找到这样的“加站变体”,原图就注定非平面。

判定算法可以这样理解:先把所有度为 2 的顶点“压缩”回原来的边,再看压缩后的图是否藏有 K5 或 K3,3 的影子。现代线性时间平面性检测算法(如 Hopcroft-Tarjan)正是基于这一理论,用深度优先搜索和复杂的括号结构高效判别,而非暴力枚举子图。

对小林来说,“天堑”结构就像道路规划中的地质断层带:一旦探测到,就该立即调整方案,而不是徒劳地继续画线。他甚至学会了一种新思维——把复杂图“瘦身”成核心骨架,再检查骨架是否触碰红线。

G 是平面图  ⟺  G 不含 K5 或 K3,3 的细分\displaystyle G \text{ 是平面图} \iff G \text{ 不含 } K_5 \text{ 或 } K_{3,3} \text{ 的细分}
库拉托夫斯基定理是平面性问题的“终极答案”:它把几何直觉(能不能无交叉地画出来)翻译成纯粹的组合条件(有没有两种影子结构)。
  1. 细分操作把一条边 (u,v) 替换成一条更长的路径,路径中间的顶点度数为 2。
    (u,v)⟶u−w1−w2−⋯−wk−v(u,v) \longrightarrow u - w_1 - w_2 - \cdots - w_k - v
  2. 影子结构如果压缩掉所有度数为 2 的“环岛”后得到 K5 或 K3,3,则原图非平面。
    G≿K5或G≿K3,3G \succsim K_5 \quad \text{或} \quad G \succsim K_{3,3}
  3. 充要意义不满足这个条件,就必然存在一种无交叉画法。
    平面⟺无 SK5 且无 SK3,3\text{平面} \Longleftrightarrow \text{无 } SK_5 \text{ 且无 } SK_{3,3}

对偶图构造——街区的社交网络

小林决定换个视角看问题。他不再盯着道路,而是把每个街区当作一个“点”,两个街区共享一条街就连接一条“友谊线”。当他这样重绘时,原本的道路网消失不见,取而代之的是一张全新的图——这就是对偶图。

严格地说,给定平面图 G,它的对偶图 G* 这样构造:G 的每个面对应 G* 的一个顶点;G 中每一条边 e 两侧各有一个面(复边情形可能是同一面),在 G* 中连接这两个面对应的顶点。于是 G* 的顶点数等于 G 的面数,G* 的边数等于 G 的边数。更妙的是,对于连通平面图,双重对偶 (G*)* 又变回原图 G。

小林把这张“街区社交网络”拿给同事看,同事们恍然大悟:原来城市的地图还可以这样读。对偶图的价值不只是视角切换——它把“给面涂色”这个略显别扭的问题,翻译成了图论中最成熟的“给顶点涂色”问题,为下一节的五色定理铺平了道路。

V(G∗)=F(G),E(G∗)=E(G),F(G∗)=V(G)\displaystyle V(G^*) = F(G), \quad E(G^*) = E(G), \quad F(G^*) = V(G)
对偶图让“面”和“顶点”的角色互换:原图需要涂色的面,在对偶图里变成了需要涂色的顶点。地图着色问题由此转化为更经典的顶点着色问题。
  1. 面转顶点原图每一个被道路圈出的区域(含外部面),变成对偶图中的一个点。
    V∗=FV^* = F
  2. 共边转连线两个街区共享一条边界道路,就对偶图中两个点之间连一条线。
    E∗=EE^* = E
  3. 双重对偶对平面连通图做两次对偶,得到的图与原图同构。
    (G∗)∗≅G(G^*)^* \cong G

五色定理——五种颜色永远够用

小林接到新任务:给城市的每个街区涂上颜色,要求相邻街区(共享道路)颜色必须不同。省油漆的他问:最少需要几种颜色?五色定理斩钉截铁地回答:5 种颜色,永远够用。

证明的关键是一步“低度引理”:每个平面图都至少存在一个连了不超过 5 条边的顶点。这由欧拉公式和握手定理联手推出——所有顶点度数之和等于 2E,结合 E ≤ 3V−6 可知平均度数小于 6,所以必然存在度数不超过 5 的顶点。

证明思路用归纳法。先平面嵌入图,去掉这个低度顶点 v,给剩下的图涂 5 色,然后把 v 加回来。如果 v 的邻居们没用满 5 色,直接涂剩余色即可。麻烦在于 v 恰好有 5 个邻居且涂满了 5 色。这时用 Kempe 链技术:观察邻居 v₁ 与 v₃ 所在的两条“1-3 双色链”,若这两条链不相连,则可以把某条链上所有 1、3 颜色整体交换,硬是腾出一种颜色给 v。这就是五色定理的核心思想——证明比四色定理简单得多,且 Kempe 链本身成为后世无数算法的积木。

小林长舒一口气:五种颜色足够,意味着他不需要准备一打油漆桶。他甚至忍不住想,能不能用更少的颜色?答案在几十年后被计算机验证——四色定理,四种颜色就够。但那把钥匙,依然是从 Kempe 链这把“旧锁”里提炼出来的。

∃ v∈V(G): deg⁡(v)≤5\displaystyle \exists\, v \in V(G):\ \deg(v) \le 5
低度引理说明:平面图再复杂,也一定存在一个“容易处理”的顶点。这为归纳法提供了完美的突破口。
  1. 握手定理所有顶点度数之和等于边数的两倍。
    ∑v∈Vdeg⁡(v)=2E\sum_{v \in V} \deg(v) = 2E
  2. 代入边数上界把 E ≤ 3V−6 乘 2,得到度数总和上界。
    ∑deg⁡(v)=2E≤6V−12\sum \deg(v) = 2E \le 6V - 12
  3. 平均度推断总和除以 V 后平均度数小于 6,整数度数意味着必有顶点度数 ≤ 5。
    1V∑vdeg⁡(v)<6  ⟹  min⁡vdeg⁡(v)≤5\frac{1}{V}\sum_{v} \deg(v) < 6 \;\Longrightarrow\; \min_v \deg(v) \le 5

应用场景——从画纸走进硅片与地图

小林的图纸被一家芯片工厂看中了。他们把道路抽象成导体,把街区抽象成元件,要求所有导线在同一层板上不交叉——这不就是平面图吗?平面图理论从纸面走向了真实的硅片世界。

在超大规模集成电路(VLSI)中,平面性检测是布线阶段的第一道关卡:如果电路图非平面,工程师就必须设计过孔、跳线或改用多层板,成本随之上升。地图着色更是直接受益者:四色定理保证 4 种颜色足够区分任何国家的邻接关系,地图册的印刷成本和配图美观度因此大幅改善。在社交网络和知识图谱的可视化中,平面嵌入算法让复杂的实体关系图在屏幕上层次分明、不缠不乱。

从城市规划师的铅笔,到芯片工厂的蚀刻机,平面图理论横跨了数学与工程。读懂一张图能否“平铺”,你就掌握了一种“在硬约束下优雅布局”的思维模式——这种模式在算法设计、资源分配和可视化表达中价值无穷。

χ(G)≤4(G 为平面图)\displaystyle \chi(G) \le 4 \quad (G \text{ 为平面图})
四色定理是五色定理的“加强版”:平面图的色数上限从 5 收紧到 4。它虽然依赖计算机辅助证明,却并不妨碍我们在工程中放心使用。
  1. 色数定义图 G 的色数是最少需要的颜色数。
    χ(G)=min⁡{ k∣G 可 k-着色 }\chi(G) = \min\{\, k \mid G \text{ 可 } k\text{-着色}\, \}
  2. 四色结论平面图的色数不超过 4,任何地图都能用 4 色区分邻接区域。
    χ(G)≤4\chi(G) \le 4

AI 应用场景

知识图谱可视化布局

阶段:数据可视化与前端渲染

解决的问题:知识图谱在大屏展示时,实体关系线经常交叉缠绕成一团,用户难以追踪关键路径。传统力导向布局只优化“美观”,不保证“无交叉”。利用平面嵌入算法先给图谱一个无交叉的基础布局,再叠加力导向微调,可大幅提升可读性。

具体案例:某团队构建“学术论文知识图谱”,将论文、作者、期刊作为节点,引用关系作为边。对每个连通分量先做平面性检测,对可平面分量应用平面嵌入,再对非平面分量做分层拆解,最终生成的图谱所有主干关系零交叉,评审会上一次通过。

芯片布线预检

阶段:AI 硬件设计辅助

解决的问题:机器学习加速器芯片布线时,不同金属层之间的过孔和跳线会引入寄生电容,严重时导致信号串扰。平面性检测在布局阶段提前暴露“不可布线的版块”,避免后期反复迭代。

具体案例:某 NPU 芯片设计流程中,EDA 工具对每个金属层的连接图跑一次 K5/K3,3 子结构检测,发现 6 处 K3,3 型冲突区域,工程师据此调整引脚规划,布线成功率提升了 22%。

地图行政区对着色

阶段:GIS 数据处理与地图渲染

解决的问题:地图渲染引擎需要为相邻行政区域分配不同颜色,避免视觉混淆。传统手工配色的方法难以维护。通过对偶图将“区域邻接”转化为“顶点邻接”,再用贪心着色算法自动分配颜色,保证相邻区域颜色不同且用色尽量少。

具体案例:高德地图省级行政区着色模块,基于对偶图构建 34 个省级区域的邻接关系,用 4 色贪心算法自动着色,图例配色统一且刷新效率提升 5 倍。

Python 演示

python60 行
import itertools  class Graph:    """无向图: V 为顶点数, edges 为 (u, v) 边列表"""    def __init__(self, V, edges):        self.V = V        self.Edges = set(frozenset((u, v)) for u, v in edges)     def edge_count(self):        return len(self.Edges)     def has_k5_sub(self):        for comb in itertools.combinations(range(self.V), 5):            need = {frozenset(p) for p in itertools.combinations(comb, 2)}            if need.issubset(self.Edges):                return True        return False     def has_k33_sub(self):        for six in itertools.combinations(range(self.V), 6):            six = set(six)            for left in itertools.combinations(six, 3):                left = set(left)                right = six - left                cross = {frozenset((a, b)) for a in left for b in right}                if cross.issubset(self.Edges):                    return True        return False  def analyze(name, g):    V = g.V    E = g.edge_count()    bound = 3 * V - 6    print("[%s] V=%d  E=%d  3V-6=%d" % (name, V, E, bound))    print("  E <= 3V-6 : %s" % (E <= bound))    print("  K5 细分    : %s" % g.has_k5_sub())    print("  K3,3 细分  : %s" % g.has_k33_sub())    if g.has_k5_sub() or g.has_k33_sub():        print("  结论: 非平面图")    elif E <= bound:        print("  结论: 可能为平面图")    else:        print("  结论: 违反必要条件, 非平面图")  def main():    k4 = Graph(4, itertools.combinations(range(4), 2))    analyze("四面体 K4", k4)     k5 = Graph(5, itertools.combinations(range(5), 2))    analyze("完全图 K5", k5)     k33 = Graph(6, [(a, b + 3) for a in range(3) for b in range(3)])    analyze("完全二分图 K3,3", k33)  if __name__ == "__main__":    main()
目的:用暴力枚举检查三个经典图(K4、K5、K3,3)是否藏有 K5 或 K3,3 的细分,并同时验证欧拉公式推论的边数上界,从而判定其平面性。
  1. self.Edges = set(frozenset((u, v)) for u, v in edges)用 frozenset 统一边,消除 (u,v) 与 (v,u) 的顺序差异,让“无向”语义成立。
  2. need.issubset(self.Edges)检查 5 个点两两之间的 10 条边是否全部存在于图中,这是 K5 的精确判据。
  3. for left in itertools.combinations(six, 3)枚举 6 个顶点中的 3 个作为二分图左侧,剩余 3 个自动成为右侧。
  4. cross = {frozenset((a, b)) for a in left for b in right}构造跨组所有 9 条边,若全部在图中则找到 K3,3。
  5. if __name__ == "__main__":入口保护,保证脚本被其他模块导入时不会自动执行测试。

常见误区

误区“我在纸上画了个五角星,中间有交叉,所以它不是平面图!”

正解交叉只是“当前这种画法”的问题,不是图的本质。平面图定义要求的是“存在一种画法”使边不相交,而不是“所有画法”。五角星(即 K5 减去部分边的变体)实际上可以重新画成五边形加对角线,完全无交叉,它是平面图。判断时要问“能不能重画”,而不是“现在画得怎么样”。

为何常见:初学者把“图的某一种表示方式”误当作“图本身”,就像把一个人某天的发型当成他的身份证照片。

误区“V−E+F=2 不是所有图都成立吗?我把任何图都套进去算过!”

正解欧拉公式只对连通平面图成立。对非连通平面图,正确形式是 V−E+F=1+C(C 为连通分量数)。对非平面图,面数 F 压根没有定义——因为它没有平面嵌入,自然谈不上“被边围出的区域”。所以在套公式前,必须先确认两个前提:连通且平面。

为何常见:教材示例全是连通平面图,学生形成“公式万能”的思维定势,忽略了它推导时的前提条件。

误区“E ≤ 3V−6 成立了,所以我的图是平面图。”

正解E ≤ 3V−6 只是必要条件,不是充分条件。反例就是 K3,3:V=6、E=9,9 ≤ 12 完全成立,但 K3,3 不是平面图。要真正判定平面性,必须用库拉托夫斯基定理(不含 K5/K3,3 细分)或线性时间平面性检测算法。必要条件的作用是“一票否决”,而不是“一票通过”。

为何常见:混淆必要条件与充要条件,这是逻辑教育中常见的盲点——就像“发烧是感冒的症状”不等于“发烧就一定是感冒”。

误区“四色定理都证明了,五色定理还有什么用?过时了!”

正解四色定理的证明依赖长达数百页的计算机辅助穷举,而五色定理拥有简洁优雅的手写数学证明,是理解“平面图带宽有限”这个直觉的最佳入口。更重要的是,五色定理证明中发明的 Kempe 链技术,本身已成为图论和理论计算机科学中的标准工具,广泛用于着色、匹配等问题。五色定理不是被替代,而是为四色定理提供了理解阶梯。

为何常见:看到“四色定理”名气大,就忽略了五色定理作为教学工具和思想来源的独特价值。

面试题

Q1. 下列关于平面图的说法,正确的是?

单选题 · easy

  • A.图上只要出现交叉,就一定是非平面图
  • B.存在一种画法使所有边只在顶点处相交的图是平面图← 正确答案
  • C.所有顶点数大于 5 的图都不是平面图
  • D.平面图一定是树形结构

答案:B。平面图的核心是“存在无交叉画法”,与当前画法无关。A 错在混淆画法与图本身;C 错在平面图可以有大量顶点(如网格图);D 错在平面图可以含环(如 K4),不限于树。故选 B。

Q2. 一个连通平面图有 6 个顶点、9 条边,它的面数是多少?

单选题 · mid

  • A.3
  • B.4
  • C.5← 正确答案
  • D.6

答案:C。由欧拉公式 V−E+F=2,得 F = E−V+2 = 9−6+2 = 5。注意面数包含那个“无限大外部面”,所以是 5 而不是 4。就像城市规划里,城市外的荒野也算一个街区。

Q3. K5 不是平面图,最直接的理由是?

单选题 · mid

  • A.它的边数 10 大于 3×5−6=9← 正确答案
  • B.它的边数 9 大于 3×5−6=9
  • C.它的顶点数 5 小于 6
  • D.它的边数 10 小于 3×5−6

答案:A。K5 有 5 个顶点,任意两点之间都有边,所以 E=10。平面图必要条件 E≤3V−6 给出上界 9,10>9 违反条件,所以 K5 非平面。这像城市规划中道路数超过天花板,注定要架桥。B 边数算错,C 与平面性无关,D 方向反了。

Q4. 库拉托夫斯基定理指出,一个图是平面图当且仅当它不含下列哪组结构的细分?

单选题 · mid

  • A.K4 或 K3,3
  • B.K5 或 K4
  • C.K5 或 K3,3← 正确答案
  • D.K6 或 K4

答案:C。库拉托夫斯基定理的完整表述是:图是平面图当且仅当它不含 K5 或 K3,3 的细分。这两座“天堑”一个代表完全图结构的极限,一个代表二分图结构的极限。K4 是平面图,K6 非平面但可由 K5 细分覆盖,所以 A、B、D 均不正确。

Q5. 在一条边上插入一个度数为 2 的新顶点,这种操作称为?

单选题 · easy

  • A.对偶
  • B.细分← 正确答案
  • C.收缩
  • D.补图

答案:B。在边 (u,v) 中间加入新顶点 w,使 (u,w)、(w,v) 成为两条边,w 的度数为 2,这种操作叫细分。它就像在一条路上增设一个环岛,不改变道路的连通拓扑。对偶是把面变顶点,收缩是反向操作,补图是补全缺失边,均不符合题意。

Q6. 关于平面图 G 的对偶图 G*,下列说法正确的有?

多选题 · mid

  • A.G* 的顶点数等于 G 的面数← 正确答案
  • B.G* 的边数等于 G 的边数← 正确答案
  • C.G* 的边数等于 G 的顶点数
  • D.若 G 连通,则 (G*)* 与 G 同构← 正确答案

答案:ABD。对偶图的面与顶点互换:V*=F、E*=E、F*=V,所以 A、B 正确,C 错误。对于连通平面图,双重对偶回到原图,D 正确。这像街区社交网络:街区变节点、共街变连线,社交关系完全保留。

Q7. 五色定理证明中的关键引理是?

单选题 · hard

  • A.每个平面图存在度数不超过 5 的顶点← 正确答案
  • B.每个平面图存在度数不超过 4 的顶点
  • C.每个平面图都是二分图
  • D.每个平面图都有哈密顿回路

答案:A。由欧拉公式和握手定理可证平面图平均度数小于 6,所以存在度数 ≤5 的顶点。这是归纳法的突破口:删掉它、给剩下图涂 5 色、再把它放回。B 太强不成立(存在所有顶点度数都是 5 的平面图,如正二十面体);C 错(三角形就不是二分图);D 错(平面图不一定有哈密顿回路)。

Q8. 推导平面图边数上界 E ≤ 3V−6 时,依赖哪些前提?

多选题 · hard

  • A.每个面至少由 3 条边围成← 正确答案
  • B.每条边恰好被 2 个面共享← 正确答案
  • C.每个顶点度数至少为 3
  • D.图是连通平面图← 正确答案

答案:ABD。推导时用 3F ≤ 2E(每个面至少 3 边、每条边被 2 个面共享),再代入欧拉公式 F=E−V+2,因此 A、B、D 缺一不可。C 不是必要条件,推导过程从未假设顶点度数下界。

Q9. 一个连通平面图有 8 个顶点、14 条边,它的面数是?

单选题 · easy

  • A.6
  • B.7
  • C.8← 正确答案
  • D.9

答案:C。由欧拉公式 F = E−V+2 = 14−8+2 = 8。面数包含外部无限面。就像一块被道路分割的城区,8 个“街区”中有 7 个内部街区加上城外那 1 个“荒野面”。

Q10. 关于平面图的应用,下列说法正确的有?

多选题 · extreme

  • A.VLSI 芯片布线要求导线在同一层不交叉← 正确答案
  • B.地图着色可转化为对偶图的顶点着色← 正确答案
  • C.任何平面图的着色数不超过 4← 正确答案
  • D.非平面图绝对无法用于任何电路设计

答案:ABC。A 是 VLSI 布线的基本约束;B 是对偶图的核心价值——面着色变顶点着色;C 是四色定理(由五色定理加强而来),已获计算机辅助证明。D 太绝对:非平面图可通过多层板、过孔等工程手段实现,只是成本更高,所以错误。