问题描述
我想找到cactus graph上具有特定限制定向路径的最长路径距离。
这意味着
- 如果我们访问1,我们将无法再访问2
即,不允许1→2和1→3→2。 但是,允许2→1。
类似
-
不能从2行驶到3
-
不能从3行驶到1
-
不能从1到0行驶
-
可以旅行其他任何人
因此,我们有可能的路径(1、3、2),(0、2、1),依此类推。因此,最长距离是3,而我们永远不会得到4。
在这种情况下,答案是9。(4、5、6、7、8、0、9、2、3),等等...
我在这个问题上停留了一个星期。我仍然不知道该如何处理。谢谢。
解决方法
观察1:当且仅当该节点集合诱导没有循环的子图时,该节点集合上才存在路径*。证明:如果存在一个循环,则我们无法访问该循环的所有节点,因为该循环中位于其之前的节点禁止访问最后一个节点。如果没有循环,则反转子图中的所有弧,并找到拓扑顺序。
观察2:此问题等效于经典的NP难题minimum feedback vertex set,该问题要求删除其消除所有周期的最小节点集。
在声明的仙人掌图中有有效的反馈顶点集算法,例如Das (2012)。
*这个问题的路径似乎是用非标准的方式定义的,因为节点序列是无重复的,因此对于图中的每个弧,弧的头部不会出现在尾部之后。这是与示例图(4、5、6、7、8、0、9、2、3)的解决方案相符的定义,该示例图中有多个不通过弧线连接的连续顶点。