2

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

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

这肯定避免了负无穷大问题,但令人惊讶的是,在 Google 上搜索没有找到已知算法。最接近的是 Floyd-Warshall 算法,但它不允许负循环。

提前非常感谢。

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

4

1 回答 1

2

我将从CS-theory Stackexchange 上的这个问题复制我的答案:

没有重复顶点的路径称为simple-paths,因此您正在寻找具有负循环的图中的最短简单路径。

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

因此,您的问题是 NP-Hard。

于 2013-10-22T15:08:05.550 回答