微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

最短路径:确定导致负循环的边

如何解决最短路径:确定导致负循环的边

| 我有一个负边缘权重的有向图。该图由程序修改,有时会形成负循环。当发生这种情况时,最短路径算法(Bellman-ford / Johnson / Floyd-Warshall)将检测到这种负周期的存在并失败,但是不会产生其他有用的信息。 我想确定导致负周期的边沿,并禁止在图形中进行此类修改。有人可以帮我指点一下吗? 谢谢, 保罗     

解决方法

保罗,如果您要添加一条边线(源,目标,权重),并且知道从目标到源的距离,那么当且仅当新权重+旧距离为负时,您才创建一个负周期。 另一方面,如果您只有一个图形,则Bellman-ford算法会检测到负周期,并在找到一个时显示一个。您只需要找到一个实现该目标的实现(而不只是失败),或者自己编写一个。这不是一个困难的算法,网络上有很多伪代码。 (如果您想为自己编写一份定制的文章,可能需要几天的咨询工作。我做这种事情是为了谋生,并且会很高兴。) 我不确定您到底需要什么。我不知道,但是我想像有一种Bellman-Ford的在线版本,随着新边缘的出现,它的价格保持最新,并且如果您添加一个不好的版本会尖叫。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。