海贼007

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年7月23日

摘要: 最近在看算法概论,关于DAG的思考:Q:为什么DAG需要按照拓扑排序的顺序来求最短路径?这样就可以保证正确性了?1.我们得从dijkstra算法的分析中得出结论。2.为什么dijkstra不能有负边?因为负边可能导致已经求出的最短路径dist(u)不正确(新发现的负边(v1,u)导致dist(u)可以更小)。3.负边导致dist(u)更小的原因,是我们在确定dist(u)时,u的度并没有考虑完全(至少(v1,u)还没有考虑到)。4.对DAG进行线性化(拓扑排序),然后按照顺序来更新dist(u),这样就可以避免已确定dist(u)继续被更改。因为每次考虑的u必满足入度为0,即所有可以到达它的边 阅读全文
posted @ 2013-07-23 15:59 wzhscript 阅读(195) 评论(0) 推荐(0) 编辑