学习指南

图论算法 II

Edexcel 国际 A-Level 数学· D1 §3.1 至 §3.4 2018 第3版· 25 分钟阅读

1. 路线检查(中国邮路)问题★★☆☆☆⏱ 8 min

✓ 计算器

📘 定义

路线检查问题

寻找最短闭合路径,至少遍历连通网络的每条边一次,最终返回起点顶点。

例:

用于规划配送路线、撒盐除冰路线、或者覆盖区域内所有街道的邮递路线。

该问题基于可遍历网络的欧拉定理:一个网络存在闭合欧拉迹(恰好遍历每条边一次)当且仅当它有0个奇度顶点。如果存在奇度顶点,你需要重复经过某些边来消除奇顶点,将奇顶点两两配对,重复每对之间的最短路径,从而最小化总额外距离。对于Edexcel D1考试,涉及的网络最多有4个奇顶点:如果是2个奇顶点,重复它们之间的最短路径;如果是4个奇顶点,列出所有3种可能的配对,计算每种配对的总额外距离,选择最小值。总路径长度等于所有边的权重之和加上最小额外距离。

📐 例题

一个连通网络的总边权重为128,有4个奇顶点:A、B、C、D。奇顶点对之间的最短路径为:AB=7,AC=12,AD=9,BC=5,BD=10,CD=8。求至少遍历每条边一次并返回起点的最短路径的最小长度。

  1. 1

    列出4个奇顶点的全部3种有效配对:

  2. 2

    配对1:(A,B) 和 (C,D):总额外距离 = 7 + 8 = 15

  3. 3

    配对2:(A,C) 和 (B,D):总额外距离 = 12 + 10 = 22

  4. 4

    配对3:(A,D) 和 (B,C):总额外距离 = 9 + 5 = 14

  5. 5

    选择最小额外距离:14

  6. 6

    总路径长度 = 128 + 14 = 142

Exam tip:

即使你一眼就能看出最小配对,也必须明确列出4个奇度节点的全部3种配对,才能拿到全部方法分。

2. 旅行商问题(TSP)变体★★★☆☆⏱ 6 min

✓ 计算器

📘 定义

旅行商问题

TSPTSP

寻找最短闭合路径,恰好访问网络中的每个顶点一次,最终返回起点顶点。

Edexcel D1区分两种变体:经典TSP:适用于满足三角不等式的完全图(任意两个顶点之间的最短路径就是它们之间的直接边)。实用TSP:适用于非完全图,或者不满足三角不等式的图。对于实用TSP,首先将原始网络转换为所有顶点对之间都是最短距离的完全网络,然后在这个新网络上求解经典TSP。你可以使用捷径优化TSP上界:如果一条路径多次访问某个顶点,就将重复的路段替换为到下一个未访问顶点的直接路径,从而缩短总长度。

📐 例题

5顶点网络上的一条TSP路径为:A → B → C → A → D → E → A,总长度79。已知最短路径C→D为10,C→A + A→D = 14,使用捷径优化这个上界。

  1. 1

    识别重复顶点:在访问完C之后、遍历完所有顶点之前,A被访问了两次。

  2. 2

    将路段C → A → D替换为直接最短路径C → D,权重为10(原路段权重为14)。

  3. 3

    新路径:A → B → C → D → E → A,总长度 = 79 - 14 + 10 = 75,得到更紧的上界。

Exam tip:

捷径只有在不跳过任何未访问顶点的情况下才有效:应用捷径后要确保所有顶点仍然恰好被访问一次。

3. 使用MST方法计算TSP边界★★★★☆⏱ 6 min

✓ 计算器

由于大型网络的精确TSP解计算成本极高,在Edexcel D1考试中你只需要计算最优TSP路径的上界和下界。上界:任意一条有效TSP路径的长度(上界越小,越接近最优解)。下界:最优TSP路径可能的最小长度(下界越大,对最优解的约束越严格)。

📘 定义

MST TSP下界

通过从网络中删除一个顶点,找到剩余顶点的MST,然后将连接被删除顶点和MST的两条最短边的权重相加得到的下界。最优TSP路径的长度至少等于该值。

📐 例题

4顶点完全网络的边权重为:AB=6,AC=8,AD=5,BC=3,BD=9,CD=4。通过删除顶点A计算TSP的下界。

  1. 1

    删除顶点A,剩余顶点为B、C、D。

  2. 2

    求B、C、D的MST:边BC=3,CD=4,MST总权重=7。

  3. 3

    找到连接A和剩余顶点的两条最短边:AD=5,AB=6,和为11。

  4. 4

    下界 = 7 + 11 = 18。

使用MST方法求有效上界的方法是:将MST的每条边都复制一份,得到一条遍历每条边两次的闭合路径,然后应用捷径得到一条有效TSP路径。对于经典TSP,该方法得到的上界最多是最优TSP长度的两倍。

Exam tip:

为多个被删除的顶点分别计算下界,然后取最大值作为最终下界(这是对最优路径最严格的约束)。

4. 最近邻算法★★★☆☆⏱ 5 min

✓ 计算器

📘 定义

最近邻算法

求解TSP上界的启发式算法,从指定顶点出发,反复访问最近的未访问顶点,直到所有顶点都被访问,然后返回起点顶点。

最近邻算法的执行步骤:1. 选择一个起点顶点。2. 从当前顶点移动到最近的未访问顶点。3. 重复步骤2直到所有顶点都被访问。4. 直接返回起点顶点。得到的路径长度就是TSP的一个上界。从每个顶点出发都运行一次该算法,选择得到的最小长度,就能得到最紧的上界。

📐 例题

使用上一例题中的4顶点网络,从顶点A出发运行最近邻算法:AB=6,AC=8,AD=5,BC=3,BD=9,CD=4。

  1. 1

    从A出发,最近的未访问顶点是D(权重5)。当前路径:A→D。

  2. 2

    在D点,最近的未访问顶点是C(权重4)。当前路径:A→D→C。

  3. 3

    在C点,仅剩的未访问顶点是B(权重3)。当前路径:A→D→C→B。

  4. 4

    从B返回A(权重6)。总路径长度 = 5 + 4 + 3 + 6 = 18。

  5. 5

    由于这个上界等于之前计算的下界,因此这就是最优TSP路径。

Exam tip:

必须明确写出最近邻算法的每一步才能拿到全分,不要只写出最终路径。

5. 常见陷阱

错误做法:

路线检查问题中,4个奇度节点只列出2种配对,而不是全部3种。

原因:

你可能会漏掉总额外距离最小的配对,导致总路径长度计算错误,同时丢失方法分。

正确做法:

始终列出4个奇度节点的全部3种不同配对,计算每种配对的额外距离,然后选择最小值。

错误做法:

没有先将实用TSP网络转换为完整的最短距离网络,就直接对其应用最近邻算法。

原因:

得到的路径可能无效,或者得到的上界过于宽松。

正确做法:

对于实用TSP,首先构建所有顶点对之间的最短路径完整矩阵,然后在该矩阵上运行最近邻算法。

错误做法:

计算TSP下界时,没有先删除一个顶点,直接计算所有顶点的MST权重。

原因:

得到的下界值过低,不符合要求的计算方法。

正确做法:

删除一个顶点,计算剩余顶点的MST,然后加上连接被删除顶点和网络的两条最短边的权重。

错误做法:

优化TSP上界时,使用跳过未访问顶点的捷径。

原因:

得到的路径不是有效TSP路径,因为它没有恰好访问每个顶点一次。

正确做法:

只替换返回到已访问顶点的路段,确保所有未访问顶点仍然被包含在路径中。

错误做法:

路线检查问题中,忘记将所有边的总权重加上重复路段的额外距离。

原因:

你只会计算出额外长度,而不是总路径长度,丢失精度分。

正确做法:

总路径长度 = 所有边的权重之和 + 奇节点配对得到的最小重复额外距离。

6. 速查表

算法

核心步骤

适用场景

路线检查

  1. 统计奇节点数量 2. 列出所有配对 3. 最小化额外距离 4. 与总边权重相加

覆盖每条边至少一次的最短路径

TSP MST下界

  1. 删除一个顶点 2. 求剩余顶点的MST 3. 将两条最短边加回被删除顶点

最优TSP路径的最小可能长度

最近邻算法

  1. 从一个顶点出发 2. 访问最近的未访问顶点 3. 重复,返回起点

求解TSP上界

实用TSP预处理

  1. 构建完整最短距离矩阵 2. 在矩阵上求解经典TSP 3. 应用捷径

非完全网络或不满足三角不等式的网络

7. 常见问题

路线检查问题中,4个奇度节点我需要列出多少种配对方式?

对于4个奇度节点,恰好有3种不同的配对方式需要计算。你不需要使用任何算法来寻找配对:直接通过枚举列出所有配对即可获得全部方法分。

什么时候我需要为TSP构建完整的最短距离网络?

对于实用TSP(原始网络不是完全网络,或者不满足三角不等式),你需要先将其转换为所有节点对之间都是最短路径的完全网络,之后再计算边界或者应用最近邻算法。

深入阅读

下一步

掌握了路线检查和TSP的图算法之后,你就可以继续学习Edexcel IAL决策数学1的后续核心主题了。这些图算法经常和网络流、关键路径分析一起出现在8-12分的大题中,所以一定要通过真题练习巩固这些知识点的综合应用。你还需要练习从非完全网络构建完整最短距离矩阵,这是很多实用TSP题目的第一步,也是很多学生失分的地方。考试中一定要完整写出所有配对、MST计算、最近邻算法步骤的推导过程,才能拿到全部方法分。