Index: doc/groups.dox
===================================================================
 doc/groups.dox (revision 687)
+++ doc/groups.dox (revision 843)
@@ 237,12 +237,4 @@
/**
@defgroup matrices Matrices
@ingroup datas
\brief Two dimensional data storages implemented in LEMON.

This group contains two dimensional data storages implemented in LEMON.
*/

/**
@defgroup paths Path Structures
@ingroup datas
@@ 294,14 +286,6 @@
This group contains the algorithms for finding shortest paths in digraphs.
  \ref Dijkstra algorithm for finding shortest paths from a source node
 when all arc lengths are nonnegative.
  \ref BellmanFord "BellmanFord" algorithm for finding shortest paths
 from a source node when arc lenghts can be either positive or negative,
 but the digraph should not contain directed cycles with negative total
 length.
  \ref FloydWarshall "FloydWarshall" and \ref Johnson "Johnson" algorithms
 for solving the \e allpairs \e shortest \e paths \e problem when arc
 lenghts can be either positive or negative, but the digraph should
 not contain directed cycles with negative total length.
+  \ref Dijkstra Dijkstra's algorithm for finding shortest paths from a
+ source node when all arc lengths are nonnegative.
 \ref Suurballe A successive shortest path algorithm for finding
arcdisjoint paths between two nodes having minimum total length.
@@ 328,14 +312,12 @@
\f[ 0 \leq f(uv) \leq cap(uv) \quad \forall uv\in A \f]
LEMON contains several algorithms for solving maximum flow problems:
 \ref EdmondsKarp EdmondsKarp algorithm.
 \ref Preflow GoldbergTarjan's preflow pushrelabel algorithm.
 \ref DinitzSleatorTarjan Dinitz's blocking flow algorithm with dynamic trees.
 \ref GoldbergTarjan Preflow pushrelabel algorithm with dynamic trees.

In most cases the \ref Preflow "Preflow" algorithm provides the
fastest method for computing a maximum flow. All implementations
provides functions to also query the minimum cut, which is the dual
problem of the maximum flow.
+\ref Preflow implements the preflow pushrelabel algorithm of Goldberg and
+Tarjan for solving this problem. It also provides functions to query the
+minimum cut, which is the dual problem of maximum flow.
+
+\ref Circulation is a preflow pushrelabel algorithm implemented directly
+for finding feasible circulations, which is a somewhat different problem,
+but it is strongly related to maximum flow.
+For more information, see \ref Circulation.
*/
@@ 422,25 +404,7 @@
\f[ cost^\pi(uv) = cost(uv) + \pi(u)  \pi(v).\f]
All algorithms provide dual solution (node potentials) as well,
if an optimal flow is found.

LEMON contains several algorithms for solving minimum cost flow problems.
  \ref NetworkSimplex Primal Network Simplex algorithm with various
 pivot strategies.
  \ref CostScaling PushRelabel and AugmentRelabel algorithms based on
 cost scaling.
  \ref CapacityScaling Successive Shortest %Path algorithm with optional
 capacity scaling.
  \ref CancelAndTighten The Cancel and Tighten algorithm.
  \ref CycleCanceling CycleCanceling algorithms.

Most of these implementations support the general inequality form of the
minimum cost flow problem, but CancelAndTighten and CycleCanceling
only support the equality form due to the primal method they use.

In general NetworkSimplex is the most efficient implementation,
but in special cases other algorithms could be faster.
For example, if the total supply and/or capacities are rather small,
CapacityScaling is usually the fastest algorithm (without effective scaling).
+\ref NetworkSimplex is an efficient implementation of the primal Network
+Simplex algorithm for finding minimum cost flows. It also provides dual
+solution (node potentials), if an optimal flow is found.
*/
@@ 466,6 +430,4 @@
 \ref HaoOrlin "HaoOrlin algorithm" for calculating minimum cut
in directed graphs.
 \ref NagamochiIbaraki "NagamochiIbaraki algorithm" for
 calculating minimum cut in undirected graphs.
 \ref GomoryHu "GomoryHu tree computation" for calculating
allpairs minimum cut in undirected graphs.
@@ 488,28 +450,14 @@
/**
@defgroup planar Planarity Embedding and Drawing
@ingroup algs
\brief Algorithms for planarity checking, embedding and drawing

This group contains the algorithms for planarity checking,
embedding and drawing.

\image html planar.png
\image latex planar.eps "Plane graph" width=\textwidth
*/

/**
@defgroup matching Matching Algorithms
@ingroup algs
\brief Algorithms for finding matchings in graphs and bipartite graphs.
This group contains the algorithms for calculating
matchings in graphs and bipartite graphs. The general matching problem is
finding a subset of the edges for which each node has at most one incident
edge.
+This group contains the algorithms for calculating matchings in graphs.
+The general matching problem is finding a subset of the edges for which
+each node has at most one incident edge.
There are several different algorithms for calculate matchings in
graphs. The matching problems in bipartite graphs are generally
easier than in general graphs. The goal of the matching optimization
+graphs. The goal of the matching optimization
can be finding maximum cardinality, maximum weight or minimum cost
matching. The search can be constrained to find perfect or
@@ 517,14 +465,4 @@
The matching algorithms implemented in LEMON:
 \ref MaxBipartiteMatching HopcroftKarp augmenting path algorithm
 for calculating maximum cardinality matching in bipartite graphs.
 \ref PrBipartiteMatching Pushrelabel algorithm
 for calculating maximum cardinality matching in bipartite graphs.
 \ref MaxWeightedBipartiteMatching
 Successive shortest path algorithm for calculating maximum weighted
 matching and maximum weighted bipartite matching in bipartite graphs.
 \ref MinCostMaxBipartiteMatching
 Successive shortest path algorithm for calculating minimum cost maximum
 matching in bipartite graphs.
 \ref MaxMatching Edmond's blossom shrinking algorithm for calculating
maximum cardinality matching in general graphs.
@@ 558,13 +496,4 @@
/**
@defgroup approx Approximation Algorithms
@ingroup algs
\brief Approximation algorithms.

This group contains the approximation and heuristic algorithms
implemented in LEMON.
*/

/**
@defgroup gen_opt_group General Optimization Tools
\brief This group contains some general optimization frameworks
@@ 583,21 +512,4 @@
various LP solvers could be used in the same manner with this
interface.
*/

/**
@defgroup lp_utils Tools for Lp and Mip Solvers
@ingroup lp_group
\brief Helper tools to the Lp and Mip solvers.

This group adds some helper tools to general optimization framework
implemented in LEMON.
*/

/**
@defgroup metah Metaheuristics
@ingroup gen_opt_group
\brief Metaheuristics for LEMON library.

This group contains some metaheuristic optimization tools.
*/
Index: lemon/suurballe.h
===================================================================
 lemon/suurballe.h (revision 670)
+++ lemon/suurballe.h (revision 843)
@@ 46,6 +46,6 @@
/// Note that this problem is a special case of the \ref min_cost_flow
/// "minimum cost flow problem". This implementation is actually an
 /// efficient specialized version of the \ref CapacityScaling
 /// "Successive Shortest Path" algorithm directly for this problem.
+ /// efficient specialized version of the Successive Shortest Path
+ /// algorithm directly for this problem.
/// Therefore this class provides query functions for flow values and
/// node potentials (the dual solution) just like the minimum cost flow