枚举任意图中两个顶点之间的所有简单路径通常需要指数时间,因为顶点之间可能存在指数数量的简单路径。但是,如果我们只对两个端点之间至少一条简单路径上的顶点感兴趣呢?
那就是:给定一个无向图和两个不同的顶点,是否有一种多项式时间算法可以找到两个顶点之间至少一条简单路径上的每个顶点?这与连接性不同;死胡同和死胡同被排除在外。但是,允许分支和连接路径。
我发现编写一个看起来可以解决这个问题的算法非常容易,但在某些情况下会失败,或者在病态情况下需要指数级的运行时间。
更一般地说:给定图中的两组不相交的顶点,是否有一种多项式时间算法可以找到位于从一组顶点到另一组顶点的简单路径上的所有顶点?
(如果有一个非常明显的解决方案,请原谅我。当然感觉应该有。)