利用负循环查找图上两个节点之间零/负权重的路径

时间:2012-08-22 14:26:16

标签: java graph depth-first-search backtracking weighted

我真的很难在标题中描述这一点,但我会用更长的格式来试试。

我真的很难解决这个问题,我不是在寻找答案,只是寻求一些帮助或一些特定主题来阅读。

我所拥有的是具有各种权重边缘的有向图,包括负数和正数。我试图做的是编写一个算法,该算法提供有两个位于图上的节点(并假设它们已连接)在它们之间找到一条路径,导致路径的总权重为零或负。路径可以多次包含节点(希望允许路径偏移包含边的正权重)。

我正在阅读Russel和Norvig的人工智能,但由于各种问题(算法不断绕过负循环),我很难找到一种方法将文本中的逻辑应用于我的问题。我还没有完全理解如何利用Backtrack和AStar等方法来实现这个目标

如果有人能指出我能够帮助我更好地理解我的问题的正确方向,这将是一个很大的帮助,我很好处理DFS和BFS以及与Graphs相关的许多其他事情,但不得不找到两个节点之间的路径与权重限制真是令我感到困惑。

由于

下面我已经包含了一个示例图表,我需要能够找到从开始到目标的路径,其中路径的总权重不超过零。

示例图 http://i144.photobucket.com/albums/r166/ZooropaTV/bu.jpg

刚刚意识到我所做的很多搜索/阅读都被误导了,因为我的目标不一定是按重量找到最短路径,而是通过访问所需的最小节点数,我现在需要另外考虑一下,但仍然想要任何建议

1 个答案:

答案 0 :(得分:0)

我认为这就是你想要的:Floyd-Warshall算法http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm

您必须对其进行修改以满足您的需求,但它会检测到负循环,从而允许您找到零重量或更小重量的路径。