1.1 --- a/lemon/preflow.h Mon Jan 10 09:34:50 2011 +0100
1.2 +++ b/lemon/preflow.h Mon Feb 28 10:19:34 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