首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bellman算法跟踪

Bellman算法跟踪
EN

Stack Overflow用户
提问于 2012-12-04 06:40:12
回答 1查看 1.6K关注 0票数 3

我不知道还能在哪里发布这个问题,我只想知道我是否正确地做了这个跟踪。我得到了这张图表

以下是一个问题:

在以下有向图上显示Bellman算法的跟踪,使用顶点t作为源。在每次传递中,按(x,t),(y,z),(u,t),(y,x),(u,y),(t,x),(t,y),(t,z),(z,u)的顺序松弛边。每次传递后显示d值。这个图有负加权圆吗?你如何用Bellman算法来检验它呢?

我得到的答案是u=12,t=0,x=4,y=12和z=-3,它没有负加权圆。这个问题值很多分,一个错误意味着负很多,所以我不知道还有谁能帮我检查这个问题。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-04 07:11:49

按你规定的顺序放松-

最初,d值是<t = 0, u = inf, x = inf, y = inf, z = inf>

代码语言:javascript
复制
(x, t) <0, inf, inf, inf, inf>  
(y, z) <0, inf, inf, inf, inf>   
(u, t) <0, inf, inf, inf, inf>   
(y, x) <0, inf, inf, inf, inf>   
(u, y) <0, inf, inf, inf, inf> <--Upto this no update because no relaxation started from non-inf  
(t, x) <0, inf, 7, inf, inf>   
(t, y) <0, inf, 7, 12, inf>   
(t, z) <0, inf, 7, 12, -3>   
(z, x) <0, inf, 4, 12, -3>   
(z, u) <0, 12, 4, 12, -3>

第二次迭代

代码语言:javascript
复制
(x, t) <0, 12, 4, 12, -3>  
(y, z) <0, 12, 4, 12, -3>   
(u, t) <0, 12, 4, 12, -3>   
(y, x) <0, 12, 4, 12, -3>   
(u, y) <0, 12, 4, 12, -3>  
(t, x) <0, 12, 4, 12, -3>   
(t, y) <0, 12, 4, 12, -3>   
(t, z) <0, 12, 4, 12, -3>   
(z, x) <0, 12, 4, 12, -3>   
(z, u) <0, 12, 4, 12, -3>

由于它在第二次迭代后没有改变,这是最后的答案,它与您的答案相匹配。此外,没有负权循环,因为在整个迭代中没有变化。

注:如果边的顺序不同,我们可能会在第二次迭代中预料到变化。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13697414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档