Graph 具有负权/圈的有向循环图上的最短无环路径

Graph 具有负权/圈的有向循环图上的最短无环路径,graph,shortest-path,Graph,Shortest Path,我有一个有圈的有向图。 所有边都已加权,且权重可以为负数。 可能存在负循环 我想找到一条从s到t的路径,它使路径上的总权重最小化。 当然,当负循环存在时,它可以变为负无穷大。 但是,如果我不允许在路径中循环(而不是在原始图形中),该怎么办? 也就是说,一旦路径离开一个节点,它就不能再次进入该节点 这当然避免了负无穷大问题, 但令人惊讶的是,谷歌上的搜索并没有发现已知的算法。 最接近的是Floyd–Warshall算法,但它不允许负循环 先谢谢你 编辑:我可能把我原来的问题概括得太多了。事实上,我

我有一个有圈的有向图。 所有边都已加权,且权重可以为负数。 可能存在负循环

我想找到一条从s到t的路径,它使路径上的总权重最小化。 当然,当负循环存在时,它可以变为负无穷大。 但是,如果我不允许在路径中循环(而不是在原始图形中),该怎么办? 也就是说,一旦路径离开一个节点,它就不能再次进入该节点

这当然避免了负无穷大问题, 但令人惊讶的是,谷歌上的搜索并没有发现已知的算法。 最接近的是Floyd–Warshall算法,但它不允许负循环

先谢谢你


编辑:我可能把我原来的问题概括得太多了。事实上,我得到了一个具有非负边权的循环有向图。但除此之外,每个节点也有一个积极的回报。我想找到一条简单的路径,它最小化(路径上的边权重之和)-(路径覆盖的节点奖励之和)。这当然可以转化为我发布的问题,但有些结构丢失了。子模块分析的一些提示表明,这个激励问题不是NP难问题。非常感谢

我将从CS理论Stackexchange上复制我的答案:

将调用没有重复顶点的路径,因此您正在寻找具有负循环的图中的最短简单路径

这可以从原始数据中减少。如果您的问题有一个快速解算器,那么给定一个只有正边权重的图,否定所有边权重并运行解算器将给出原始图中的最长路径

因此你的问题是NP难的


哦,仔细想想,我可能把我原来的问题概括得太多了。事实上,我得到了一个具有非负边权的循环有向图。但除此之外,每个节点也有一个积极的回报。我想找到一条简单的路径,它最小化(路径上的边权重之和)-(路径覆盖的节点奖励之和)。这当然可以转化为我发布的问题,但有些结构丢失了。子模块分析的一些提示表明,这个激励问题不是NP难问题。非常感谢。@Janathan:你的新问题基本上与(我碰巧也回答了:)相同。但是,在将来,与其完全改变你的问题,不如简单地问一个新问题。谢谢你,丹尼。我把问题重新发布在