Improve module docs and references (#437)
authorPeter Kovacs <kpeter@inf.elte.hu>
Mon, 30 Jan 2012 23:24:14 +0100
changeset 1002f63ba40a60f4
parent 980 48e17328c155
child 1003 16f55008c863
Improve module docs and references (#437)
doc/groups.dox
doc/min_cost_flow.dox
doc/references.bib
lemon/hartmann_orlin_mmc.h
lemon/howard_mmc.h
lemon/karp_mmc.h
     1.1 --- a/doc/groups.dox	Sun Jan 29 22:33:14 2012 +0100
     1.2 +++ b/doc/groups.dox	Mon Jan 30 23:24:14 2012 +0100
     1.3 @@ -407,9 +407,14 @@
     1.4     strongly polynomial \ref klein67primal, \ref goldberg89cyclecanceling.
     1.5  
     1.6  In general, \ref NetworkSimplex and \ref CostScaling are the most efficient
     1.7 -implementations, but the other two algorithms could be faster in special cases.
     1.8 +implementations, but the other algorithms could be faster in special cases.
     1.9  For example, if the total supply and/or capacities are rather small,
    1.10  \ref CapacityScaling is usually the fastest algorithm (without effective scaling).
    1.11 +
    1.12 +These classes are intended to be used with integer-valued input data
    1.13 +(capacities, supply values, and costs), except for \ref CapacityScaling,
    1.14 +which is capable of handling real-valued arc costs (other numerical
    1.15 +data are required to be integer).
    1.16  */
    1.17  
    1.18  /**
    1.19 @@ -448,7 +453,7 @@
    1.20  \brief Algorithms for finding minimum mean cycles.
    1.21  
    1.22  This group contains the algorithms for finding minimum mean cycles
    1.23 -\ref clrs01algorithms, \ref amo93networkflows.
    1.24 +\ref amo93networkflows, \ref karp78characterization.
    1.25  
    1.26  The \e minimum \e mean \e cycle \e problem is to find a directed cycle
    1.27  of minimum mean length (cost) in a digraph.
    1.28 @@ -464,12 +469,11 @@
    1.29  function.
    1.30  
    1.31  LEMON contains three algorithms for solving the minimum mean cycle problem:
    1.32 -- \ref KarpMmc Karp's original algorithm \ref amo93networkflows,
    1.33 -  \ref dasdan98minmeancycle.
    1.34 +- \ref KarpMmc Karp's original algorithm \ref karp78characterization.
    1.35  - \ref HartmannOrlinMmc Hartmann-Orlin's algorithm, which is an improved
    1.36 -  version of Karp's algorithm \ref dasdan98minmeancycle.
    1.37 +  version of Karp's algorithm \ref hartmann93finding.
    1.38  - \ref HowardMmc Howard's policy iteration algorithm
    1.39 -  \ref dasdan98minmeancycle.
    1.40 +  \ref dasdan98minmeancycle, \ref dasdan04experimental.
    1.41  
    1.42  In practice, the \ref HowardMmc "Howard" algorithm turned out to be by far the
    1.43  most efficient one, though the best known theoretical bound on its running
     2.1 --- a/doc/min_cost_flow.dox	Sun Jan 29 22:33:14 2012 +0100
     2.2 +++ b/doc/min_cost_flow.dox	Mon Jan 30 23:24:14 2012 +0100
     2.3 @@ -101,7 +101,7 @@
     2.4      sup(u) \quad \forall u\in V \f]
     2.5  \f[ lower(uv) \leq f(uv) \leq upper(uv) \quad \forall uv\in A \f]
     2.6  
     2.7 -However if the sum of the supply values is zero, then these two problems
     2.8 +However, if the sum of the supply values is zero, then these two problems
     2.9  are equivalent.
    2.10  The \ref min_cost_flow_algs "algorithms" in LEMON support the general
    2.11  form, so if you need the equality form, you have to ensure this additional
     3.1 --- a/doc/references.bib	Sun Jan 29 22:33:14 2012 +0100
     3.2 +++ b/doc/references.bib	Mon Jan 30 23:24:14 2012 +0100
     3.3 @@ -4,8 +4,7 @@
     3.4    key =          {LEMON},
     3.5    title =        {{LEMON} -- {L}ibrary for {E}fficient {M}odeling and
     3.6                    {O}ptimization in {N}etworks},
     3.7 -  howpublished = {\url{http://lemon.cs.elte.hu/}},
     3.8 -  year =         2009
     3.9 +  howpublished = {\url{http://lemon.cs.elte.hu/}}
    3.10  }
    3.11  
    3.12  @misc{egres,
    3.13 @@ -213,6 +212,16 @@
    3.14    pages =        {309-311}
    3.15  }
    3.16  
    3.17 +@article{hartmann93finding,
    3.18 +  author =       {Mark Hartmann and James B. Orlin},
    3.19 +  title =        {Finding minimum cost to time ratio cycles with small
    3.20 +                  integral transit times},
    3.21 +  journal =      {Networks},
    3.22 +  year =         1993,
    3.23 +  volume =       23,
    3.24 +  pages =        {567-574}
    3.25 +}
    3.26 +
    3.27  @article{dasdan98minmeancycle,
    3.28    author =       {Ali Dasdan and Rajesh K. Gupta},
    3.29    title =        {Faster Maximum and Minimum Mean Cycle Alogrithms for
    3.30 @@ -225,6 +234,17 @@
    3.31    pages =        {889-899}
    3.32  }
    3.33  
    3.34 +@article{dasdan04experimental,
    3.35 +  author =       {Ali Dasdan},
    3.36 +  title =        {Experimental analysis of the fastest optimum cycle
    3.37 +                  ratio and mean algorithms},
    3.38 +  journal =      {ACM Trans. Des. Autom. Electron. Syst.},
    3.39 +  year =         2004,
    3.40 +  volume =       9,
    3.41 +  issue =        4,
    3.42 +  pages =        {385-418}
    3.43 +} 
    3.44 +
    3.45  
    3.46  %%%%% Minimum cost flow algorithms %%%%%
    3.47  
     4.1 --- a/lemon/hartmann_orlin_mmc.h	Sun Jan 29 22:33:14 2012 +0100
     4.2 +++ b/lemon/hartmann_orlin_mmc.h	Mon Jan 30 23:24:14 2012 +0100
     4.3 @@ -98,7 +98,7 @@
     4.4    ///
     4.5    /// This class implements the Hartmann-Orlin algorithm for finding
     4.6    /// a directed cycle of minimum mean cost in a digraph
     4.7 -  /// \ref amo93networkflows, \ref dasdan98minmeancycle.
     4.8 +  /// \ref hartmann93finding, \ref dasdan98minmeancycle.
     4.9    /// It is an improved version of \ref KarpMmc "Karp"'s original algorithm,
    4.10    /// it applies an efficient early termination scheme.
    4.11    /// It runs in time O(ne) and uses space O(n<sup>2</sup>+e).
     5.1 --- a/lemon/howard_mmc.h	Sun Jan 29 22:33:14 2012 +0100
     5.2 +++ b/lemon/howard_mmc.h	Mon Jan 30 23:24:14 2012 +0100
     5.3 @@ -98,7 +98,7 @@
     5.4    ///
     5.5    /// This class implements Howard's policy iteration algorithm for finding
     5.6    /// a directed cycle of minimum mean cost in a digraph
     5.7 -  /// \ref amo93networkflows, \ref dasdan98minmeancycle.
     5.8 +  /// \ref dasdan98minmeancycle, \ref dasdan04experimental.
     5.9    /// This class provides the most efficient algorithm for the
    5.10    /// minimum mean cycle problem, though the best known theoretical
    5.11    /// bound on its running time is exponential.
     6.1 --- a/lemon/karp_mmc.h	Sun Jan 29 22:33:14 2012 +0100
     6.2 +++ b/lemon/karp_mmc.h	Mon Jan 30 23:24:14 2012 +0100
     6.3 @@ -98,7 +98,7 @@
     6.4    ///
     6.5    /// This class implements Karp's algorithm for finding a directed
     6.6    /// cycle of minimum mean cost in a digraph
     6.7 -  /// \ref amo93networkflows, \ref dasdan98minmeancycle.
     6.8 +  /// \ref karp78characterization, \ref dasdan98minmeancycle.
     6.9    /// It runs in time O(ne) and uses space O(n<sup>2</sup>+e).
    6.10    ///
    6.11    /// \tparam GR The type of the digraph the algorithm runs on.