Changeset 2556:74c2c81055e1 in lemon-0.x for lemon/min_cost_flow.h
- Timestamp:
- 01/13/08 11:32:14 (17 years ago)
- Branch:
- default
- Phase:
- public
- Convert:
- svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@3437
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/min_cost_flow.h
r2553 r2556 34 34 /// \brief An efficient algorithm for finding a minimum cost flow. 35 35 /// 36 /// \ref lemon::MinCostFlow "MinCostFlow" implements an efficient37 /// a lgorithm for finding aminimum cost flow.36 /// \ref MinCostFlow provides an efficient algorithm for finding 37 /// a minimum cost flow. 38 38 /// 39 /// \note \ref lemon::MinCostFlow "MinCostFlow" is just an alias for40 /// \ref lemon::NetworkSimplex "NetworkSimplex", wich is the most41 /// efficient implementation for the minimum cost flow problem in the42 /// LEMON library according to our benchmarktests.39 /// \note \ref MinCostFlow is just an alias for \ref NetworkSimplex, 40 /// which is the most efficient implementation for the minimum cost 41 /// flow problem in the LEMON library according to our benchmark 42 /// tests. 43 43 /// 44 44 /// \note There are three implementations for the minimum cost flow 45 /// problem, that can be used in the same way. 46 /// - \ref lemon::CapacityScaling "CapacityScaling" 47 /// - \ref lemon::CycleCanceling "CycleCanceling" 48 /// - \ref lemon::NetworkSimplex "NetworkSimplex" 45 /// problem, that can be used exactly the same way. 46 /// - \ref CapacityScaling 47 /// - \ref CycleCanceling 48 /// - \ref NetworkSimplex 49 /// 50 /// \note For the detailed documentation of this class see 51 /// \ref NetworkSimplex. 49 52 /// 50 53 /// \param Graph The directed graph type the algorithm runs on. … … 55 58 /// 56 59 /// \warning 57 /// - Edge capacities and costs should be non negative integers.58 /// 60 /// - Edge capacities and costs should be non-negative integers. 61 /// However \c CostMap::Value should be signed type. 59 62 /// - Supply values should be signed integers. 60 63 /// - \c LowerMap::Value must be convertible to 61 /// 62 /// 64 /// \c CapacityMap::Value and \c CapacityMap::Value must be 65 /// convertible to \c SupplyMap::Value. 63 66 /// 64 67 /// \author Peter Kovacs … … 71 74 <typename CapacityMap::Value> > 72 75 class MinCostFlow : 73 public NetworkSimplex< Graph, 74 LowerMap, 75 CapacityMap, 76 CostMap, 77 SupplyMap > 76 public NetworkSimplex< Graph, LowerMap, CapacityMap, 77 CostMap, SupplyMap > 78 78 { 79 79 typedef NetworkSimplex< Graph, LowerMap, CapacityMap, 80 CostMap, SupplyMap > 81 MinCostFlowImpl; 80 CostMap, SupplyMap > MinCostFlowImpl; 82 81 typedef typename Graph::Node Node; 83 82 typedef typename SupplyMap::Value Supply; … … 85 84 public: 86 85 87 /// \briefGeneral constructor of the class (with lower bounds).88 MinCostFlow( const Graph & _graph,89 const LowerMap &_lower,90 const CapacityMap &_capacity,91 const CostMap &_cost,92 const SupplyMap &_supply ) :93 MinCostFlowImpl( _graph, _lower, _capacity, _cost, _supply) {}86 /// General constructor of the class (with lower bounds). 87 MinCostFlow( const Graph &graph, 88 const LowerMap &lower, 89 const CapacityMap &capacity, 90 const CostMap &cost, 91 const SupplyMap &supply ) : 92 MinCostFlowImpl(graph, lower, capacity, cost, supply) {} 94 93 95 /// \briefGeneral constructor of the class (without lower bounds).96 MinCostFlow( const Graph & _graph,97 const CapacityMap &_capacity,98 const CostMap &_cost,99 const SupplyMap &_supply ) :100 MinCostFlowImpl( _graph, _capacity, _cost, _supply) {}94 /// General constructor of the class (without lower bounds). 95 MinCostFlow( const Graph &graph, 96 const CapacityMap &capacity, 97 const CostMap &_ost, 98 const SupplyMap &supply ) : 99 MinCostFlowImpl(graph, capacity, cost, supply) {} 101 100 102 /// \briefSimple constructor of the class (with lower bounds).103 MinCostFlow( const Graph & _graph,104 const LowerMap &_lower,105 const CapacityMap &_capacity,106 const CostMap &_cost,107 Node _s, Node _t,108 Supply _flow_value ) :109 MinCostFlowImpl( _graph, _lower, _capacity, _cost,110 _s, _t, _flow_value ) {}101 /// Simple constructor of the class (with lower bounds). 102 MinCostFlow( const Graph &graph, 103 const LowerMap &lower, 104 const CapacityMap &capacity, 105 const CostMap &_ost, 106 Node s, Node t, 107 Supply flow_value ) : 108 MinCostFlowImpl( graph, lower, capacity, cost, 109 s, t, flow_value ) {} 111 110 112 /// \briefSimple constructor of the class (without lower bounds).113 MinCostFlow( const Graph & _graph,114 const CapacityMap &_capacity,115 const CostMap &_cost,116 Node _s, Node _t,117 Supply _flow_value ) :118 MinCostFlowImpl( _graph, _capacity, _cost,119 _s, _t, _flow_value ) {}111 /// Simple constructor of the class (without lower bounds). 112 MinCostFlow( const Graph &graph, 113 const CapacityMap &capacity, 114 const CostMap &cost, 115 Node s, Node t, 116 Supply flow_value ) : 117 MinCostFlowImpl( graph, capacity, cost, 118 s, t, flow_value ) {} 120 119 121 120 }; //class MinCostFlow
Note: See TracChangeset
for help on using the changeset viewer.