获取涵盖所有节点的路径以及特殊节点上的“开始”和“结束”

时间:2012-11-25 15:13:23

标签: algorithm graph graph-algorithm

我有这个图形问题,我有许多节点(公交车站)和一些特殊节点(公交车站),我必须覆盖所有节点 - 分配覆盖所有节点的公交路线 - 同时开始和结束于一个站,我对可以使用的公交车数量有一些限制,任何想法我应该如何开始?

2 个答案:

答案 0 :(得分:1)

找到连接所有节点的最短路径(具有公交车站限制)的问题可以从Traveling Salesman Problem减少而减少:给定TSP问题,用1/2创建此问题的实例站/“特殊节点”(取决于你们是否可以回到同一站)。

使用这种减少 - 如果这个问题可以多项式解决 - TSP也是如此。

因此 - 问题是NP-Hard没有已知的多项式解and the assumption is - one does not exist, though it is not proven yet

一些替代方法是启发式算法,例如Genetic AlgorithmHill Climbing,近似算法或指数算法(如果数据相对较小,可用于找到最佳解决方案),如动态编程或{ {3}}

编辑:(对编辑过的问题的回复)

即使您可以使用多条总线 - 但数量有限 - 但问题仍然是NP-Hard,因为(假设总线数量恒定/以一元编码方式给出):您可以将图表“复制”到k个不同的组件(其中k是有限的总线数量) - 并且每个组件都有一个新的TSP问题。

答案 1 :(得分:0)

这是一个简单的想法:

  1. 从图表中删除开始和结束节点。
  2. 搜索最小生成树
  3. 将起始端节点连接到生成树。
  4. 通过这种方式,您可以获得最小的封面解决方案。

    当然,如果您需要访问每个节点一次,那么如上所述,这是一个NP-Hard问题。