lemon/preflow.h
branch1.2
changeset 902 79fab87ee483
parent 895 f63fd24c0aea
parent 901 30d5f950aa5f
child 927 d303bfa8b1ed
     1.1 --- a/lemon/preflow.h	Wed Sep 22 09:32:53 2010 +0200
     1.2 +++ b/lemon/preflow.h	Mon Feb 28 09:58:07 2011 +0100
     1.3 @@ -543,9 +543,6 @@
     1.4            if ((*_level)[u] == _level->maxLevel()) continue;
     1.5            _flow->set(e, (*_capacity)[e]);
     1.6            (*_excess)[u] += rem;
     1.7 -          if (u != _target && !_level->active(u)) {
     1.8 -            _level->activate(u);
     1.9 -          }
    1.10          }
    1.11        }
    1.12        for (InArcIt e(_graph, _source); e != INVALID; ++e) {
    1.13 @@ -555,11 +552,12 @@
    1.14            if ((*_level)[v] == _level->maxLevel()) continue;
    1.15            _flow->set(e, 0);
    1.16            (*_excess)[v] += rem;
    1.17 -          if (v != _target && !_level->active(v)) {
    1.18 -            _level->activate(v);
    1.19 -          }
    1.20          }
    1.21        }
    1.22 +      for (NodeIt n(_graph); n != INVALID; ++n) 
    1.23 +        if(n!=_source && n!=_target && _tolerance.positive((*_excess)[n]))
    1.24 +          _level->activate(n);
    1.25 +          
    1.26        return true;
    1.27      }
    1.28