Graph 在有向图中查找包含特定节点的路径

Graph 在有向图中查找包含特定节点的路径,graph,Graph,我有一个有向图,以及该图的一组U节点。 我想知道是否有一条路径(不一定是简单路径)包含集合U中的所有节点。最有效的方法是什么?提示:创建一个带有E的图G'=(U,E'),如果E的目标可以从原始图G中的E的源到达。(可达性的精确计算取决于是否允许节点访问两次。) 现在,为了解决您的问题,您必须检查G'什么?为什么您认为您决定实施的方法不够有效?请查找“汉密尔顿路径”或“汉密尔顿循环”。“汉密尔顿路径”只适用于无向图,它必须是一条简单的路径。我正在考虑选择U中的任意节点并使用BFS,但我不确定如何从

我有一个有向图,以及该图的一组U节点。 我想知道是否有一条路径(不一定是简单路径)包含集合U中的所有节点。最有效的方法是什么?

提示:创建一个带有E的图G'=(U,E'),如果E的目标可以从原始图G中的E的源到达。(可达性的精确计算取决于是否允许节点访问两次。)


现在,为了解决您的问题,您必须检查G'什么?

为什么您认为您决定实施的方法不够有效?请查找“汉密尔顿路径”或“汉密尔顿循环”。“汉密尔顿路径”只适用于无向图,它必须是一条简单的路径。我正在考虑选择U中的任意节点并使用BFS,但我不确定如何从那里继续。G'中必须至少有一个节点与其他每个节点都有边,但我不确定它是否保证路径的存在。创建G'将花O(n^2)时间,不是吗?@user1758674:如果我正确理解了你的问题,我认为这既不充分也不必要。构造至少需要O(E'),在最坏的情况下可能是O(n^2)。