gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Add citations to CycleCanceling (#180, #184)
0 1 0
default
1 file changed with 7 insertions and 3 deletions:
↑ Collapse diff ↑
Ignore white space 24 line context
... ...
@@ -36,25 +36,27 @@
36 36
#include <lemon/bellman_ford.h>
37 37
#include <lemon/howard.h>
38 38

	
39 39
namespace lemon {
40 40

	
41 41
  /// \addtogroup min_cost_flow_algs
42 42
  /// @{
43 43

	
44 44
  /// \brief Implementation of cycle-canceling algorithms for
45 45
  /// finding a \ref min_cost_flow "minimum cost flow".
46 46
  ///
47 47
  /// \ref CycleCanceling implements three different cycle-canceling
48
  /// algorithms for finding a \ref min_cost_flow "minimum cost flow".
48
  /// algorithms for finding a \ref min_cost_flow "minimum cost flow"
49
  /// \ref amo93networkflows, \ref klein67primal,
50
  /// \ref goldberg89cyclecanceling.
49 51
  /// The most efficent one (both theoretically and practically)
50 52
  /// is the \ref CANCEL_AND_TIGHTEN "Cancel and Tighten" algorithm,
51 53
  /// thus it is the default method.
52 54
  /// It is strongly polynomial, but in practice, it is typically much
53 55
  /// slower than the scaling algorithms and NetworkSimplex.
54 56
  ///
55 57
  /// Most of the parameters of the problem (except for the digraph)
56 58
  /// can be given using separate functions, and the algorithm can be
57 59
  /// executed using the \ref run() function. If some parameters are not
58 60
  /// specified, then default values will be used.
59 61
  ///
60 62
  /// \tparam GR The digraph type the algorithm runs on.
... ...
@@ -115,30 +117,32 @@
115 117
    /// \ref CycleCanceling provides three different cycle-canceling
116 118
    /// methods. By default, \ref CANCEL_AND_TIGHTEN "Cancel and Tighten"
117 119
    /// is used, which proved to be the most efficient and the most robust
118 120
    /// on various test inputs.
119 121
    /// However, the other methods can be selected using the \ref run()
120 122
    /// function with the proper parameter.
121 123
    enum Method {
122 124
      /// A simple cycle-canceling method, which uses the
123 125
      /// \ref BellmanFord "Bellman-Ford" algorithm with limited iteration
124 126
      /// number for detecting negative cycles in the residual network.
125 127
      SIMPLE_CYCLE_CANCELING,
126 128
      /// The "Minimum Mean Cycle-Canceling" algorithm, which is a
127
      /// well-known strongly polynomial method. It improves along a
129
      /// well-known strongly polynomial method
130
      /// \ref goldberg89cyclecanceling. It improves along a
128 131
      /// \ref min_mean_cycle "minimum mean cycle" in each iteration.
129 132
      /// Its running time complexity is O(n<sup>2</sup>m<sup>3</sup>log(n)).
130 133
      MINIMUM_MEAN_CYCLE_CANCELING,
131 134
      /// The "Cancel And Tighten" algorithm, which can be viewed as an
132
      /// improved version of the previous method.
135
      /// improved version of the previous method
136
      /// \ref goldberg89cyclecanceling.
133 137
      /// It is faster both in theory and in practice, its running time
134 138
      /// complexity is O(n<sup>2</sup>m<sup>2</sup>log(n)).
135 139
      CANCEL_AND_TIGHTEN
136 140
    };
137 141

	
138 142
  private:
139 143

	
140 144
    TEMPLATE_DIGRAPH_TYPEDEFS(GR);
141 145
    
142 146
    typedef std::vector<int> IntVector;
143 147
    typedef std::vector<char> CharVector;
144 148
    typedef std::vector<double> DoubleVector;
0 comments (0 inline)