lemon/cycle_canceling.h
changeset 1002 f63ba40a60f4
parent 921 140c953ad5d1
parent 919 e0cef67fe565
child 1003 16f55008c863
equal deleted inserted replaced
10:616b2a3f93b3 11:e21af7af4032
    66   /// algorithm. By default, it is the same as \c V.
    66   /// algorithm. By default, it is the same as \c V.
    67   ///
    67   ///
    68   /// \warning Both \c V and \c C must be signed number types.
    68   /// \warning Both \c V and \c C must be signed number types.
    69   /// \warning All input data (capacities, supply values, and costs) must
    69   /// \warning All input data (capacities, supply values, and costs) must
    70   /// be integer.
    70   /// be integer.
    71   /// \warning This algorithm does not support negative costs for such
    71   /// \warning This algorithm does not support negative costs for
    72   /// arcs that have infinite upper bound.
    72   /// arcs having infinite upper bound.
    73   ///
    73   ///
    74   /// \note For more information about the three available methods,
    74   /// \note For more information about the three available methods,
    75   /// see \ref Method.
    75   /// see \ref Method.
    76 #ifdef DOXYGEN
    76 #ifdef DOXYGEN
    77   template <typename GR, typename V, typename C>
    77   template <typename GR, typename V, typename C>
   115     /// Enum type containing constants for selecting the used method
   115     /// Enum type containing constants for selecting the used method
   116     /// for the \ref run() function.
   116     /// for the \ref run() function.
   117     ///
   117     ///
   118     /// \ref CycleCanceling provides three different cycle-canceling
   118     /// \ref CycleCanceling provides three different cycle-canceling
   119     /// methods. By default, \ref CANCEL_AND_TIGHTEN "Cancel and Tighten"
   119     /// methods. By default, \ref CANCEL_AND_TIGHTEN "Cancel and Tighten"
   120     /// is used, which proved to be the most efficient and the most robust
   120     /// is used, which is by far the most efficient and the most robust.
   121     /// on various test inputs.
       
   122     /// However, the other methods can be selected using the \ref run()
   121     /// However, the other methods can be selected using the \ref run()
   123     /// function with the proper parameter.
   122     /// function with the proper parameter.
   124     enum Method {
   123     enum Method {
   125       /// A simple cycle-canceling method, which uses the
   124       /// A simple cycle-canceling method, which uses the
   126       /// \ref BellmanFord "Bellman-Ford" algorithm with limited iteration
   125       /// \ref BellmanFord "Bellman-Ford" algorithm with limited iteration
   348     /// and the required flow value.
   347     /// and the required flow value.
   349     /// If neither this function nor \ref supplyMap() is used before
   348     /// If neither this function nor \ref supplyMap() is used before
   350     /// calling \ref run(), the supply of each node will be set to zero.
   349     /// calling \ref run(), the supply of each node will be set to zero.
   351     ///
   350     ///
   352     /// Using this function has the same effect as using \ref supplyMap()
   351     /// Using this function has the same effect as using \ref supplyMap()
   353     /// with such a map in which \c k is assigned to \c s, \c -k is
   352     /// with a map in which \c k is assigned to \c s, \c -k is
   354     /// assigned to \c t and all other nodes have zero supply value.
   353     /// assigned to \c t and all other nodes have zero supply value.
   355     ///
   354     ///
   356     /// \param s The source node.
   355     /// \param s The source node.
   357     /// \param t The target node.
   356     /// \param t The target node.
   358     /// \param k The required amount of flow from node \c s to node \c t
   357     /// \param k The required amount of flow from node \c s to node \c t