zoukankan      html  css  js  c++  java
  • SPFA加上SLF时判负环的条件

    转自:http://www.cnblogs.com/jffifa/archive/2011/12/17/2291061.html

    研究发现,SPFA加上SLF(Small Label First)优化时,是不能用“某个点的入队列次数>点数”这一条件来判负环的。

    数据举例如下:

    (u, v, d)

    V=4, E=6

    0 1 0

    0 2 0

    0 3 0

    2 1 -1

    3 1 -2

    3 2 -2

    则按照SLF,1这个点将被入队5次,而图显然不存在负环(根本不存在环)。

    究其原因在于SLF不保证被松弛点在被另外一个点松弛时还在队列中。

    那么必须换一种方法判负环。wikipedia提供了一种不错的选择:

    易知,无论在什么样的情形下,最短路径本身都不可以包含环。因此,最短路径上的节点个数永远不会超过图中节点的总数。因此,在求解的同时我们可以维护到达某一个节点的当前最短路径所需要经过的节点数,一旦发现到达某一个节点所需要的当前最短路径上的节点总数超过了图中节点的总数,就可以立即判定原图中存在负权回路,因而最短路径不存在。

  • 相关阅读:
    springboot/springcloud 启动速度慢 卡死问题
    数据分析路线
    java杂
    贪吃蛇
    设计模式的七大原则
    Java--GUI编程(三)总结AWT/Swing
    时间复杂度
    Java--GUI编程(二)简易加法计算器
    Java--GUI编程(一)
    Java--this与super区别
  • 原文地址:https://www.cnblogs.com/pony1993/p/2709216.html
Copyright © 2011-2022 走看看