COIN-OR::LEMON - Graph Library

Changes in / [1004:d59484d5fc1f:1001:e344f0887c59] in lemon-main


Ignore:
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • doc/groups.dox

    r1003 r919  
    408408
    409409In general, \ref NetworkSimplex and \ref CostScaling are the most efficient
    410 implementations.
    411 \ref NetworkSimplex is usually the fastest on relatively small graphs (up to
    412 several thousands of nodes) and on dense graphs, while \ref CostScaling is
    413 typically more efficient on large graphs (e.g. hundreds of thousands of
    414 nodes or above), especially if they are sparse.
    415 However, other algorithms could be faster in special cases.
     410implementations, but the other two algorithms could be faster in special cases.
    416411For example, if the total supply and/or capacities are rather small,
    417412\ref CapacityScaling is usually the fastest algorithm (without effective scaling).
    418 
    419 These classes are intended to be used with integer-valued input data
    420 (capacities, supply values, and costs), except for \ref CapacityScaling,
    421 which is capable of handling real-valued arc costs (other numerical
    422 data are required to be integer).
    423413*/
    424414
     
    459449
    460450This group contains the algorithms for finding minimum mean cycles
    461 \ref amo93networkflows, \ref karp78characterization.
     451\ref clrs01algorithms, \ref amo93networkflows.
    462452
    463453The \e minimum \e mean \e cycle \e problem is to find a directed cycle
     
    475465
    476466LEMON contains three algorithms for solving the minimum mean cycle problem:
    477 - \ref KarpMmc Karp's original algorithm \ref karp78characterization.
     467- \ref KarpMmc Karp's original algorithm \ref amo93networkflows,
     468  \ref dasdan98minmeancycle.
    478469- \ref HartmannOrlinMmc Hartmann-Orlin's algorithm, which is an improved
    479   version of Karp's algorithm \ref hartmann93finding.
     470  version of Karp's algorithm \ref dasdan98minmeancycle.
    480471- \ref HowardMmc Howard's policy iteration algorithm
    481   \ref dasdan98minmeancycle, \ref dasdan04experimental.
     472  \ref dasdan98minmeancycle.
    482473
    483474In practice, the \ref HowardMmc "Howard" algorithm turned out to be by far the
  • doc/min_cost_flow.dox

    r1002 r877  
    102102\f[ lower(uv) \leq f(uv) \leq upper(uv) \quad \forall uv\in A \f]
    103103
    104 However, if the sum of the supply values is zero, then these two problems
     104However if the sum of the supply values is zero, then these two problems
    105105are equivalent.
    106106The \ref min_cost_flow_algs "algorithms" in LEMON support the general
  • doc/references.bib

    r1002 r904  
    55  title =        {{LEMON} -- {L}ibrary for {E}fficient {M}odeling and
    66                  {O}ptimization in {N}etworks},
    7   howpublished = {\url{http://lemon.cs.elte.hu/}}
     7  howpublished = {\url{http://lemon.cs.elte.hu/}},
     8  year =         2009
    89}
    910
     
    211212  volume =       23,
    212213  pages =        {309-311}
    213 }
    214 
    215 @article{hartmann93finding,
    216   author =       {Mark Hartmann and James B. Orlin},
    217   title =        {Finding minimum cost to time ratio cycles with small
    218                   integral transit times},
    219   journal =      {Networks},
    220   year =         1993,
    221   volume =       23,
    222   pages =        {567-574}
    223214}
    224215
     
    235226}
    236227
    237 @article{dasdan04experimental,
    238   author =       {Ali Dasdan},
    239   title =        {Experimental analysis of the fastest optimum cycle
    240                   ratio and mean algorithms},
    241   journal =      {ACM Trans. Des. Autom. Electron. Syst.},
    242   year =         2004,
    243   volume =       9,
    244   issue =        4,
    245   pages =        {385-418}
    246 }
    247 
    248228
    249229%%%%% Minimum cost flow algorithms %%%%%
  • lemon/capacity_scaling.h

    r1004 r985  
    7070  /// \ref edmondskarp72theoretical. It is an efficient dual
    7171  /// solution method.
    72   ///
    73   /// This algorithm is typically slower than \ref CostScaling and
    74   /// \ref NetworkSimplex, but in special cases, it can be more
    75   /// efficient than them.
    76   /// (For more information, see \ref min_cost_flow_algs "the module page".)
    7772  ///
    7873  /// Most of the parameters of the problem (except for the digraph)
     
    682677    }
    683678
    684     /// \brief Copy the flow values (the primal solution) into the
    685     /// given map.
     679    /// \brief Return the flow map (the primal solution).
    686680    ///
    687681    /// This function copies the flow value on each arc into the given
     
    707701    }
    708702
    709     /// \brief Copy the potential values (the dual solution) into the
    710     /// given map.
     703    /// \brief Return the potential map (the dual solution).
    711704    ///
    712705    /// This function copies the potential (dual value) of each node
  • lemon/cost_scaling.h

    r1003 r938  
    9999  ///
    100100  /// In general, \ref NetworkSimplex and \ref CostScaling are the fastest
    101   /// implementations available in LEMON for solving this problem.
    102   /// (For more information, see \ref min_cost_flow_algs "the module page".)
     101  /// implementations available in LEMON for this problem.
    103102  ///
    104103  /// Most of the parameters of the problem (except for the digraph)
     
    706705    }
    707706
    708     /// \brief Copy the flow values (the primal solution) into the
    709     /// given map.
     707    /// \brief Return the flow map (the primal solution).
    710708    ///
    711709    /// This function copies the flow value on each arc into the given
     
    731729    }
    732730
    733     /// \brief Copy the potential values (the dual solution) into the
    734     /// given map.
     731    /// \brief Return the potential map (the dual solution).
    735732    ///
    736733    /// This function copies the potential (dual value) of each node
  • lemon/cycle_canceling.h

    r1003 r922  
    4949  /// \ref amo93networkflows, \ref klein67primal,
    5050  /// \ref goldberg89cyclecanceling.
    51   /// The most efficent one is the \ref CANCEL_AND_TIGHTEN
    52   /// "Cancel-and-Tighten" algorithm, thus it is the default method.
    53   /// It runs in strongly polynomial time, but in practice, it is typically
    54   /// orders of magnitude slower than the scaling algorithms and
    55   /// \ref NetworkSimplex.
    56   /// (For more information, see \ref min_cost_flow_algs "the module page".)
     51  /// The most efficent one (both theoretically and practically)
     52  /// is the \ref CANCEL_AND_TIGHTEN "Cancel and Tighten" algorithm,
     53  /// thus it is the default method.
     54  /// It is strongly polynomial, but in practice, it is typically much
     55  /// slower than the scaling algorithms and NetworkSimplex.
    5756  ///
    5857  /// Most of the parameters of the problem (except for the digraph)
     
    118117    ///
    119118    /// \ref CycleCanceling provides three different cycle-canceling
    120     /// methods. By default, \ref CANCEL_AND_TIGHTEN "Cancel-and-Tighten"
     119    /// methods. By default, \ref CANCEL_AND_TIGHTEN "Cancel and Tighten"
    121120    /// is used, which is by far the most efficient and the most robust.
    122121    /// However, the other methods can be selected using the \ref run()
     
    124123    enum Method {
    125124      /// A simple cycle-canceling method, which uses the
    126       /// \ref BellmanFord "Bellman-Ford" algorithm for detecting negative
    127       /// cycles in the residual network.
    128       /// The number of Bellman-Ford iterations is bounded by a successively
    129       /// increased limit.
     125      /// \ref BellmanFord "Bellman-Ford" algorithm with limited iteration
     126      /// number for detecting negative cycles in the residual network.
    130127      SIMPLE_CYCLE_CANCELING,
    131128      /// The "Minimum Mean Cycle-Canceling" algorithm, which is a
     
    133130      /// \ref goldberg89cyclecanceling. It improves along a
    134131      /// \ref min_mean_cycle "minimum mean cycle" in each iteration.
    135       /// Its running time complexity is O(n<sup>2</sup>e<sup>3</sup>log(n)).
     132      /// Its running time complexity is O(n<sup>2</sup>m<sup>3</sup>log(n)).
    136133      MINIMUM_MEAN_CYCLE_CANCELING,
    137       /// The "Cancel-and-Tighten" algorithm, which can be viewed as an
     134      /// The "Cancel And Tighten" algorithm, which can be viewed as an
    138135      /// improved version of the previous method
    139136      /// \ref goldberg89cyclecanceling.
    140137      /// It is faster both in theory and in practice, its running time
    141       /// complexity is O(n<sup>2</sup>e<sup>2</sup>log(n)).
     138      /// complexity is O(n<sup>2</sup>m<sup>2</sup>log(n)).
    142139      CANCEL_AND_TIGHTEN
    143140    };
     
    614611    }
    615612
    616     /// \brief Copy the flow values (the primal solution) into the
    617     /// given map.
     613    /// \brief Return the flow map (the primal solution).
    618614    ///
    619615    /// This function copies the flow value on each arc into the given
     
    639635    }
    640636
    641     /// \brief Copy the potential values (the dual solution) into the
    642     /// given map.
     637    /// \brief Return the potential map (the dual solution).
    643638    ///
    644639    /// This function copies the potential (dual value) of each node
     
    960955    }
    961956
    962     // Execute the "Cancel-and-Tighten" method
     957    // Execute the "Cancel And Tighten" method
    963958    void startCancelAndTighten() {
    964959      // Constants for the min mean cycle computations
  • lemon/hartmann_orlin_mmc.h

    r1002 r879  
    9999  /// This class implements the Hartmann-Orlin algorithm for finding
    100100  /// a directed cycle of minimum mean cost in a digraph
    101   /// \ref hartmann93finding, \ref dasdan98minmeancycle.
     101  /// \ref amo93networkflows, \ref dasdan98minmeancycle.
    102102  /// It is an improved version of \ref KarpMmc "Karp"'s original algorithm,
    103103  /// it applies an efficient early termination scheme.
  • lemon/howard_mmc.h

    r1002 r877  
    9999  /// This class implements Howard's policy iteration algorithm for finding
    100100  /// a directed cycle of minimum mean cost in a digraph
    101   /// \ref dasdan98minmeancycle, \ref dasdan04experimental.
     101  /// \ref amo93networkflows, \ref dasdan98minmeancycle.
    102102  /// This class provides the most efficient algorithm for the
    103103  /// minimum mean cycle problem, though the best known theoretical
  • lemon/karp_mmc.h

    r1002 r877  
    9999  /// This class implements Karp's algorithm for finding a directed
    100100  /// cycle of minimum mean cost in a digraph
    101   /// \ref karp78characterization, \ref dasdan98minmeancycle.
     101  /// \ref amo93networkflows, \ref dasdan98minmeancycle.
    102102  /// It runs in time O(ne) and uses space O(n<sup>2</sup>+e).
    103103  ///
  • lemon/network_simplex.h

    r1004 r984  
    4949  ///
    5050  /// In general, \ref NetworkSimplex and \ref CostScaling are the fastest
    51   /// implementations available in LEMON for solving this problem.
    52   /// (For more information, see \ref min_cost_flow_algs "the module page".)
     51  /// implementations available in LEMON for this problem.
    5352  /// Furthermore, this class supports both directions of the supply/demand
    5453  /// inequality constraints. For more information, see \ref SupplyType.
     
    10111010    }
    10121011
    1013     /// \brief Copy the flow values (the primal solution) into the
    1014     /// given map.
     1012    /// \brief Return the flow map (the primal solution).
    10151013    ///
    10161014    /// This function copies the flow value on each arc into the given
     
    10361034    }
    10371035
    1038     /// \brief Copy the potential values (the dual solution) into the
    1039     /// given map.
     1036    /// \brief Return the potential map (the dual solution).
    10401037    ///
    10411038    /// This function copies the potential (dual value) of each node
Note: See TracChangeset for help on using the changeset viewer.