diff -r e344f0887c59 -r d59484d5fc1f lemon/cycle_canceling.h
--- a/lemon/cycle_canceling.h Thu Sep 13 12:23:46 2012 +0200
+++ b/lemon/cycle_canceling.h Wed Nov 07 17:39:39 2012 +0100
@@ -48,11 +48,12 @@
/// algorithms for finding a \ref min_cost_flow "minimum cost flow"
/// \ref amo93networkflows, \ref klein67primal,
/// \ref goldberg89cyclecanceling.
- /// The most efficent one (both theoretically and practically)
- /// is the \ref CANCEL_AND_TIGHTEN "Cancel and Tighten" algorithm,
- /// thus it is the default method.
- /// It is strongly polynomial, but in practice, it is typically much
- /// slower than the scaling algorithms and NetworkSimplex.
+ /// The most efficent one is the \ref CANCEL_AND_TIGHTEN
+ /// "Cancel-and-Tighten" algorithm, thus it is the default method.
+ /// It runs in strongly polynomial time, but in practice, it is typically
+ /// orders of magnitude slower than the scaling algorithms and
+ /// \ref NetworkSimplex.
+ /// (For more information, see \ref min_cost_flow_algs "the module page".)
///
/// Most of the parameters of the problem (except for the digraph)
/// can be given using separate functions, and the algorithm can be
@@ -116,26 +117,28 @@
/// for the \ref run() function.
///
/// \ref CycleCanceling provides three different cycle-canceling
- /// methods. By default, \ref CANCEL_AND_TIGHTEN "Cancel and Tighten"
+ /// methods. By default, \ref CANCEL_AND_TIGHTEN "Cancel-and-Tighten"
/// is used, which is by far the most efficient and the most robust.
/// However, the other methods can be selected using the \ref run()
/// function with the proper parameter.
enum Method {
/// A simple cycle-canceling method, which uses the
- /// \ref BellmanFord "Bellman-Ford" algorithm with limited iteration
- /// number for detecting negative cycles in the residual network.
+ /// \ref BellmanFord "Bellman-Ford" algorithm for detecting negative
+ /// cycles in the residual network.
+ /// The number of Bellman-Ford iterations is bounded by a successively
+ /// increased limit.
SIMPLE_CYCLE_CANCELING,
/// The "Minimum Mean Cycle-Canceling" algorithm, which is a
/// well-known strongly polynomial method
/// \ref goldberg89cyclecanceling. It improves along a
/// \ref min_mean_cycle "minimum mean cycle" in each iteration.
- /// Its running time complexity is O(n2m3log(n)).
+ /// Its running time complexity is O(n2e3log(n)).
MINIMUM_MEAN_CYCLE_CANCELING,
- /// The "Cancel And Tighten" algorithm, which can be viewed as an
+ /// The "Cancel-and-Tighten" algorithm, which can be viewed as an
/// improved version of the previous method
/// \ref goldberg89cyclecanceling.
/// It is faster both in theory and in practice, its running time
- /// complexity is O(n2m2log(n)).
+ /// complexity is O(n2e2log(n)).
CANCEL_AND_TIGHTEN
};
@@ -610,7 +613,8 @@
return _res_cap[_arc_idb[a]];
}
- /// \brief Return the flow map (the primal solution).
+ /// \brief Copy the flow values (the primal solution) into the
+ /// given map.
///
/// This function copies the flow value on each arc into the given
/// map. The \c Value type of the algorithm must be convertible to
@@ -634,7 +638,8 @@
return static_cast(_pi[_node_id[n]]);
}
- /// \brief Return the potential map (the dual solution).
+ /// \brief Copy the potential values (the dual solution) into the
+ /// given map.
///
/// This function copies the potential (dual value) of each node
/// into the given map.
@@ -954,7 +959,7 @@
}
}
- // Execute the "Cancel And Tighten" method
+ // Execute the "Cancel-and-Tighten" method
void startCancelAndTighten() {
// Constants for the min mean cycle computations
const double LIMIT_FACTOR = 1.0;