旅行商和中国旅行者有什么区别?

时间:2010-12-14 19:30:41

标签: graph path

traveling-salesman problemchinese postman problem之间有什么区别? 对我来说,两个人都想去一个目的地,然后回来。

7 个答案:

答案 0 :(得分:11)

图形由边和顶点组成。 C ++需要访问所有边缘。 TSP需要访问所有顶点。

答案 1 :(得分:7)

旅行推销员将要到达每个城市并采取最短的路线。

中国邮递员问题是关于从每个城市到另一个城市的路径。

E.g。有了A,B,C和D点,旅行推销员可以去ABCDA,但是中国邮递员需要一条有AB AC AD等的路线。 / p>

旅行推销员路线在每个点之间没有直接关系(在上面的例子中没有A-C链接)。

修改
每个城市都是一个顶点,每个城市间的链接都是边缘。所以,我想我只是在重述@ Xodarap的回答。

答案 2 :(得分:2)

从这两篇文章的简短阅读中(我从未参加过图论的课程,所以我可以通过我的帽子说话),似乎“CPP”涉及访问所有边缘,而“TSP”涉及访问所有节点。

答案 3 :(得分:2)

保持简单:

旅行推销员问题是关于在返回原始城市(因此沿着Hamiltonian cycle行走)并且在所有可能的路线之间走最短的路线时,每个城市一次实现这个标准(如果存在这样的路线)。找到这样一个循环,发现可能具有最短距离的唯一最佳循环是“难”的。

中国邮递员问题路线检查问题是关于在返回原始城市并在所有可能路线中采用最短路线时至少访问城市之间的每条路线满足这个标准(如果存在这样的路线)。每个路由只需一次的解决方案会自动达到最佳状态,并称为Eulerian Cycle。找到这样一个循环是“可行的”。

答案 4 :(得分:1)

我认为这只是comp sci大学课程中提出的路径问题的另一种变体。

中国旅行商问题(C-TSP)是典型的对称TSP问题。这很简单 描述是:给出一个由31个中国首都城市及其成对距离组成的列表,任务是找到最短的旅行,每个城市只访问一次。 C-TSP是一种中等规模 TSP问题,有(31-1)!/ 2 = 1.326 * 1032可能的路线。

答案 5 :(得分:1)

两者之间的关键区别是:

旅行商问题不能多次访问节点。产生的路径将包含所有不同的节点/城市。

中国邮递员/路线检查问题可能在生成的路径中有重复的节点(但不是重复的边缘)。即只要你采取不同的路线,就可以多次访问节点。

答案 6 :(得分:1)

旅行推销员问题: 考虑到城市和城市之间的距离,找到最短距离的旅行,使其访问每个城市正好一个。将其可视化为与每个边缘相关联的图形和成本或权重,找到最便宜或最小权重的游览(哈密尔顿路径),使得每个顶点或节点仅被访问一次。我们可以认为这是找到所有可能的汉密尔顿路径,然后找到其中最好的。找到所有可能的路线是一个优化问题,在NP中 - 完全意味着没有多项式时间解决方案存在这个问题

中国邮递员问题: 与旅行推销员问题相反,CPP要求通过图表找到最低成本或最小权重,使得每个边缘至少被访问一次。该问题具有多项式解,并且如果图是欧拉,则最优解需要通过图找到欧拉之旅。否则修改图形使其成为欧拉并定义欧拉之旅。中国邮递员问题的一个特殊例子是我们不需要遍历图的所有边缘,而只需要其中的一些(所需边缘)。这种变化被称为农村邮递员问题,并且是NP完全的。换句话说,给定一个图表,找到一个最小成本/最小权重巡回,使得所有所需边缘至少被覆盖一次,可能是使用非必需边缘。