# Changes in /[1163:e344f0887c59:1166:d59484d5fc1f] in lemon

Ignore:
Files:
10 edited

Unmodified
Removed
• ## doc/groups.dox

 r1023 In general, \ref NetworkSimplex and \ref CostScaling are the most efficient implementations, but the other two algorithms could be faster in special cases. implementations. \ref NetworkSimplex is usually the fastest on relatively small graphs (up to several thousands of nodes) and on dense graphs, while \ref CostScaling is typically more efficient on large graphs (e.g. hundreds of thousands of nodes or above), especially if they are sparse. However, other algorithms could be faster in special cases. For example, if the total supply and/or capacities are rather small, \ref CapacityScaling is usually the fastest algorithm (without effective scaling). These classes are intended to be used with integer-valued input data (capacities, supply values, and costs), except for \ref CapacityScaling, which is capable of handling real-valued arc costs (other numerical data are required to be integer). */ This group contains the algorithms for finding minimum mean cycles \ref clrs01algorithms, \ref amo93networkflows. \ref amo93networkflows, \ref karp78characterization. The \e minimum \e mean \e cycle \e problem is to find a directed cycle LEMON contains three algorithms for solving the minimum mean cycle problem: - \ref KarpMmc Karp's original algorithm \ref amo93networkflows, \ref dasdan98minmeancycle. - \ref KarpMmc Karp's original algorithm \ref karp78characterization. - \ref HartmannOrlinMmc Hartmann-Orlin's algorithm, which is an improved version of Karp's algorithm \ref dasdan98minmeancycle. version of Karp's algorithm \ref hartmann93finding. - \ref HowardMmc Howard's policy iteration algorithm \ref dasdan98minmeancycle. \ref dasdan98minmeancycle, \ref dasdan04experimental. In practice, the \ref HowardMmc "Howard" algorithm turned out to be by far the
• ## doc/min_cost_flow.dox

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

 r999 title =        {{LEMON} -- {L}ibrary for {E}fficient {M}odeling and {O}ptimization in {N}etworks}, howpublished = {\url{http://lemon.cs.elte.hu/}}, year =         2009 howpublished = {\url{http://lemon.cs.elte.hu/}} } volume =       23, pages =        {309-311} } @article{hartmann93finding, author =       {Mark Hartmann and James B. Orlin}, title =        {Finding minimum cost to time ratio cycles with small integral transit times}, journal =      {Networks}, year =         1993, volume =       23, pages =        {567-574} } } @article{dasdan04experimental, author =       {Ali Dasdan}, title =        {Experimental analysis of the fastest optimum cycle ratio and mean algorithms}, journal =      {ACM Trans. Des. Autom. Electron. Syst.}, year =         2004, volume =       9, issue =        4, pages =        {385-418} } %%%%% Minimum cost flow algorithms %%%%%
• ## lemon/capacity_scaling.h

 r1137 /// \ref edmondskarp72theoretical. It is an efficient dual /// solution method. /// /// This algorithm is typically slower than \ref CostScaling and /// \ref NetworkSimplex, but in special cases, it can be more /// efficient than them. /// (For more information, see \ref min_cost_flow_algs "the module page".) /// /// Most of the parameters of the problem (except for the digraph) } /// \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 } /// \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
• ## lemon/cost_scaling.h

 r1049 /// /// In general, \ref NetworkSimplex and \ref CostScaling are the fastest /// implementations available in LEMON for this problem. /// implementations available in LEMON for solving this problem. /// (For more information, see \ref min_cost_flow_algs "the module page".) /// /// Most of the parameters of the problem (except for the digraph) } /// \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 } /// \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
• ## lemon/cycle_canceling.h

 r1026 /// \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) /// /// \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() 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 /// \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 }; } /// \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 } /// \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 } // Execute the "Cancel And Tighten" method // Execute the "Cancel-and-Tighten" method void startCancelAndTighten() { // Constants for the min mean cycle computations
• ## lemon/hartmann_orlin_mmc.h

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

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

 r956 /// This class implements Karp's algorithm for finding a directed /// cycle of minimum mean cost in a digraph /// \ref amo93networkflows, \ref dasdan98minmeancycle. /// \ref karp78characterization, \ref dasdan98minmeancycle. /// It runs in time O(ne) and uses space O(n2+e). ///
• ## lemon/network_simplex.h

 r1136 /// /// In general, \ref NetworkSimplex and \ref CostScaling are the fastest /// implementations available in LEMON for this problem. /// implementations available in LEMON for solving this problem. /// (For more information, see \ref min_cost_flow_algs "the module page".) /// Furthermore, this class supports both directions of the supply/demand /// inequality constraints. For more information, see \ref SupplyType. } /// \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 } /// \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
Note: See TracChangeset for help on using the changeset viewer.