Algorithm 在有向循环图中寻找最长路径

Algorithm 在有向循环图中寻找最长路径,algorithm,graph,tree,path-finding,Algorithm,Graph,Tree,Path Finding,假设我们有一个有向循环图,其中每个节点都有一条边正好指向另外两个节点——除了一个“最终节点”,它只有多个东西进入其中,而没有任何东西出来 给定一个源,我想找到最后一个节点的最长路径,该节点不会多次命中。有一些算法可以做到这一点,但唯一的问题是,我的图有许多不同的循环,其中一些循环相互之间,而大多数幼稚的算法在计算时会陷入无限循环中 我尝试折叠所有强连接的组件(其中只有一个),但是如果我想要的源位于该组件内部,则该算法不起作用。它在一般情况下也不起作用,因为在强连接的组件中,要命中每个节点,可能需

假设我们有一个有向循环图,其中每个节点都有一条边正好指向另外两个节点——除了一个“最终节点”,它只有多个东西进入其中,而没有任何东西出来

给定一个源,我想找到最后一个节点的最长路径,该节点不会多次命中。有一些算法可以做到这一点,但唯一的问题是,我的图有许多不同的循环,其中一些循环相互之间,而大多数幼稚的算法在计算时会陷入无限循环中

我尝试折叠所有强连接的组件(其中只有一个),但是如果我想要的源位于该组件内部,则该算法不起作用。它在一般情况下也不起作用,因为在强连接的组件中,要命中每个节点,可能需要多次命中某些节点,这是我不希望的


在无权有向循环图中计算返回最终顶点的最长路径的有效算法是什么,这样就不会多次命中节点了?

您可以看到这个问题,这也是在有向循环图中查找最长路径的问题,标准代码也可用

问题:


回答:

您是否有样本i/o或测试用例可以使用?如果图形具有循环,请将访问的节点存储在散列中,或向节点类添加
visted
属性