跳到正文
格致开物MATHWIKI

哈密顿路径与回路

哈密顿路径经过图中每个顶点恰好一次;若最后还能沿一条边回到起点,则为哈密顿回路。例如四边形 a−b−c−d−a 中,a,b,c,d 是哈密顿路径,按 a,b,c,d,a 走就是哈密顿回路。回到起点的重复只用于闭合,不算重新访问一个待遍历顶点。这里讨论有限简单无向图;有向图也可作类似定义,但相邻顺序必须遵守箭头。

与欧拉问题区分

哈密顿问题要求“不漏顶点”,允许某些边完全不用;欧拉路径要求“不漏边”,允许某些顶点被多次经过。把一个三角形与一个四边形只共用一个顶点拼在一起,两圈的边可从公共顶点出发分别走一遍,形成欧拉回路;却没有哈密顿回路。因为若从三角形走到四边形,必须经唯一公共顶点;想回到三角形或闭合全图还需第二次经过它。这说明两个概念不能仅凭名字里的“路径”互换。

必要条件与一个反例

有哈密顿回路的图中,每个顶点在回路上要有一条进入边和一条离开边,所以顶点度数至少为 2。图也必须连通,且删去任意一个顶点之后仍应连通:将回路上的该顶点及两条相邻边删掉,剩下的回路部分是一条经过所有其余顶点的路径。故存在割点的图不可能有哈密顿回路。这里得出的只是必要条件;满足它们仍可能没有哈密顿回路。

例如完全二分图 K2,3 连通、每个顶点度数至少为 2,却没有哈密顿回路:任何二分图中的回路在左右两组之间交替,因此在两组使用的顶点数相等;K2,3 两组分别有 2 与 3 个顶点,无法在一个回路中各用尽。这个反例也提醒读者,检查最低度数只是开始,不是构造的替代品。

小图上的构造与复杂性

若图有顶点 1,2,3,4,5,候选顺序 1,3,5,2,4 只有在 13,35,52,24 都是边时才构成哈密顿路径;若还存在 41,才构成回路。验证一个给定顺序很直接:检查顶点是否各出现一次,再逐对检查相邻边。可是寻找顺序一般要在许多排列中选择,不能把“容易验证”误写成“容易求得”。对任意图判定哈密顿回路是否存在是经典的 NP 完全问题;特殊结构的图可以使用专门定理或动态规划,不应声称一项简单度数公式可解决全部图。

再看一个能帮助自己构造路线的边界情形:若图中有度数为 1 的顶点 u,任何哈密顿路径若存在,u 只能是路径的一个端点;路径若在 u 的中间经过,就必须从同一条唯一边进出,违反顶点不重复。若度数为 1 的顶点超过两个,哈密顿路径也不存在,因为一条路径只有两个端点。四点链 a−b−c−d 有两个度数为 1 的端点,确有哈密顿路径 a,b,c,d,却无哈密顿回路。由此可以先用度数排除部分图,再对尚有可能的图寻找具体顺序。

哈密顿问题常把“每个地点到一次”抽象出来;若再给边加距离并要求总距离最短,就进入旅行商问题,目标比仅判定是否有一圈更强。阅读图论和二分图可先弄清图中的顶点、边及交替结构。

参考资料