lemon/min_cost_flow.h
changeset 2581 054566ac0934
parent 2579 691ce54544c5
child 2588 4d3bc1d04c1d
     1.1 --- a/lemon/min_cost_flow.h	Wed Feb 27 11:39:03 2008 +0000
     1.2 +++ b/lemon/min_cost_flow.h	Thu Feb 28 02:54:27 2008 +0000
     1.3 @@ -43,9 +43,7 @@
     1.4    /// \ref NetworkSimplex.
     1.5    ///
     1.6    /// There are four implementations for the minimum cost flow problem,
     1.7 -  /// which can be used exactly the same way except for the fact that
     1.8 -  /// \ref CycleCanceling does not provide dual solution (node
     1.9 -  /// potentials) since it is a pure primal method.
    1.10 +  /// which can be used exactly the same way.
    1.11    /// - \ref CapacityScaling The capacity scaling algorithm.
    1.12    /// - \ref CostScaling The cost scaling algorithm.
    1.13    /// - \ref CycleCanceling A cycle-canceling algorithm.
    1.14 @@ -60,20 +58,16 @@
    1.15    /// \warning
    1.16    /// - Edge capacities and costs should be \e non-negative \e integers.
    1.17    /// - Supply values should be \e signed \e integers.
    1.18 -  /// - \c LowerMap::Value must be convertible to \c CapacityMap::Value.
    1.19 -  /// - \c CapacityMap::Value and \c SupplyMap::Value must be
    1.20 -  ///   convertible to each other.
    1.21 -  /// - All value types must be convertible to \c CostMap::Value, which
    1.22 -  ///   must be signed type.
    1.23 +  /// - The value types of the maps should be convertible to each other.
    1.24 +  /// - \c CostMap::Value must be signed type.
    1.25    ///
    1.26    /// \author Peter Kovacs
    1.27  
    1.28    template < typename Graph,
    1.29               typename LowerMap = typename Graph::template EdgeMap<int>,
    1.30 -             typename CapacityMap = LowerMap,
    1.31 +             typename CapacityMap = typename Graph::template EdgeMap<int>,
    1.32               typename CostMap = typename Graph::template EdgeMap<int>,
    1.33 -             typename SupplyMap = typename Graph::template NodeMap
    1.34 -                                  <typename CapacityMap::Value> >
    1.35 +             typename SupplyMap = typename Graph::template NodeMap<int> >
    1.36    class MinCostFlow :
    1.37      public NetworkSimplex< Graph, LowerMap, CapacityMap,
    1.38                             CostMap, SupplyMap >
    1.39 @@ -85,7 +79,7 @@
    1.40  
    1.41    public:
    1.42  
    1.43 -    /// General constructor of the class (with lower bounds).
    1.44 +    /// General constructor (with lower bounds).
    1.45      MinCostFlow( const Graph &graph,
    1.46                   const LowerMap &lower,
    1.47                   const CapacityMap &capacity,
    1.48 @@ -100,7 +94,7 @@
    1.49                   const SupplyMap &supply ) :
    1.50        MinCostFlowImpl(graph, capacity, cost, supply) {}
    1.51  
    1.52 -    /// Simple constructor of the class (with lower bounds).
    1.53 +    /// Simple constructor (with lower bounds).
    1.54      MinCostFlow( const Graph &graph,
    1.55                   const LowerMap &lower,
    1.56                   const CapacityMap &capacity,
    1.57 @@ -110,7 +104,7 @@
    1.58        MinCostFlowImpl( graph, lower, capacity, cost,
    1.59                         s, t, flow_value ) {}
    1.60  
    1.61 -    /// Simple constructor of the class (without lower bounds).
    1.62 +    /// Simple constructor (without lower bounds).
    1.63      MinCostFlow( const Graph &graph,
    1.64                   const CapacityMap &capacity,
    1.65                   const CostMap &cost,