一,旅行商问题与H回路的联系(H回路 定义为 哈密尔顿回路)
旅行商问题是希望售货员恰好访问每个城市一次,最终回到起始城市所用的费用最低,也即判断图中是否存在一个费用至多为K的回路。(K相当于图中顶点的个数)
由于售货员可以从某个城市到其他任何一个城市。因此,该问题对应的是一个完全图(设为G′)。而关于判断哈密尔顿回路的图(设为G)并不一定为完全图,因此,在将哈密尔顿回路问题归约到旅行商问题时,定义一个费用函数(详情参考《算法导论第二版中文版》第626页。
通过这个费用函数,将判断G′是否存在一个费用至多为K的路径转化为G中是否有哈密尔顿回路。
二,最长路径问题与H回路的联系
图的最长路径:若一条路径包含了图中所有的顶点且各个顶点只包含一次,那么它就是一条最长路径。(如果有回路或圈则某个顶点一定会出现在路径中出现了两次)
哈密尔顿回路问题对应的图为G,最长路径问题对应的图为G′,那么将哈密尔顿回路问题归约到最长路径问题,实质上是已经G具有H回路(H圈),如何判断G′具有H路?
如何根据实际要证明的已知的最长路径问题建模而成的G′,构造出G呢?-----在G′的基础上增加一个顶点V,并将G′中各个点与V连一条边,形成的图即G。
若G中存在H圈则G′中存在H路。
理论证明参考《图论》中的度序列定理。