| 
    Limbo
    
   | 
 
LP solved with min-cost flow. More...
#include <MinCostFlow.h>
Public Types | |
| typedef LinearModel< T, V > | model_type | 
| linear model type for the problem  | |
| 
typedef  model_type::coefficient_value_type  | coefficient_value_type | 
| 
typedef  model_type::variable_value_type  | variable_value_type | 
| typedef variable_value_type | value_type | 
| typedef model_type::variable_type | variable_type | 
| typedef model_type::constraint_type | constraint_type | 
| typedef model_type::expression_type | expression_type | 
| typedef model_type::term_type | term_type | 
| typedef model_type::property_type | property_type | 
| typedef lemon::SmartDigraph | graph_type | 
| typedef graph_type::Node | node_type | 
| typedef graph_type::Arc | arc_type | 
| 
typedef graph_type::NodeMap < value_type >  | node_value_map_type | 
| 
typedef graph_type::NodeMap < std::string >  | node_name_map_type | 
| 
typedef graph_type::ArcMap < std::string >  | arc_name_map_type | 
| 
typedef graph_type::ArcMap < value_type >  | arc_value_map_type | 
| 
typedef graph_type::ArcMap < value_type >  | arc_cost_map_type | 
| 
typedef graph_type::ArcMap < value_type >  | arc_flow_map_type | 
| 
typedef graph_type::NodeMap < value_type >  | node_pot_map_type | 
| 
typedef MinCostFlowSolver < coefficient_value_type, variable_value_type >  | solver_type | 
Public Member Functions | |||
| MinCostFlow (model_type *model) | |||
| constructor  More... | |||
| ~MinCostFlow () | |||
| destructor  | |||
| SolverProperty | operator() (solver_type *solver=NULL) | ||
| API to run the algorithm.  More... | |||
| graph_type const & | graph () const | ||
| arc_value_map_type const & | lowerMap () const | ||
| arc_value_map_type const & | upperMap () const | ||
| arc_cost_map_type const & | costMap () const | ||
| node_value_map_type const & | supplyMap () const | ||
| arc_flow_map_type & | flowMap () | ||
| node_pot_map_type & | potentialMap () | ||
| value_type | totalFlowCost () const | ||
| void | setTotalFlowCost (value_type cost) | ||
| value_type | totalCost () const | ||
print functions to debug.lgf  | |||
print graph 
  | |||
| void | printGraph (bool writeSol) const | ||
Protected Member Functions | |
| MinCostFlow (MinCostFlow const &rhs) | |
| copy constructor, forbidden  More... | |
| MinCostFlow & | operator= (MinCostFlow const &rhs) | 
| assignment, forbidden  More... | |
| SolverProperty | solve (solver_type *solver) | 
| kernel function to solve the problem  More... | |
| void | buildGraph () | 
| build min-cost flow graph  | |
| void | setObjective (expression_type const &obj) | 
| set objective, support incremental set  | |
| void | applySolution () | 
| apply solutions to model  | |
Protected Attributes | |
| model_type * | m_model | 
| model for the problem  | |
| graph_type | m_graph | 
| input graph  | |
| arc_value_map_type | m_mLower | 
| lower bound of flow, usually zero  | |
| arc_value_map_type | m_mUpper | 
| upper bound of flow, arc capacity in min-cost flow  | |
| arc_cost_map_type | m_mCost | 
| arc cost in min-cost flow  | |
| node_value_map_type | m_mSupply | 
| node supply in min-cost flow  | |
| value_type | m_totalFlowCost | 
| total cost after solving  | |
| arc_flow_map_type | m_mFlow | 
| solution of min-cost flow, which is the solution of LP  | |
| node_pot_map_type | m_mPotential | 
| solution of min-cost flow, which is the dual solution of LP  | |
LP solved with min-cost flow.
The primal problem of this LP is a min-cost flow problem, so we can solve the graph problem.
\begin{eqnarray*} & min. & \sum_{i, j \in E} c_{ij} \cdot x_{ij}, \\ & s.t. & l_{ij} \le x_{ij} \le u_{ij}, \forall (i, j) \in E, \\ & & \sum_{j \in V} x_{ij} = s_i, \forall i \ne t, \in V, \\ & & x_{ij} = -x_{ji}, \forall (i, j) \in E. (implicit) \end{eqnarray*}
| T | coefficient type | 
| V | variable type | 
Definition at line 60 of file MinCostFlow.h.
      
  | 
  inline | 
constructor
| model | pointer to the model of problem | 
Definition at line 91 of file MinCostFlow.h.
      
  | 
  protected | 
copy constructor, forbidden
| rhs | right hand side | 
| MinCostFlow< T, V >::arc_cost_map_type const & limbo::solvers::MinCostFlow< T, V >::costMap | ( | ) | const | 
Definition at line 189 of file MinCostFlow.h.
| MinCostFlow< T, V >::arc_flow_map_type & limbo::solvers::MinCostFlow< T, V >::flowMap | ( | ) | 
Definition at line 199 of file MinCostFlow.h.
| MinCostFlow< T, V >::graph_type const & limbo::solvers::MinCostFlow< T, V >::graph | ( | ) | const | 
Definition at line 174 of file MinCostFlow.h.
| MinCostFlow< T, V >::arc_value_map_type const & limbo::solvers::MinCostFlow< T, V >::lowerMap | ( | ) | const | 
Definition at line 179 of file MinCostFlow.h.
      
  | 
  inline | 
API to run the algorithm.
| solver | an object to solve min cost flow, use default updater if NULL | 
Definition at line 110 of file MinCostFlow.h.
      
  | 
  protected | 
assignment, forbidden
| rhs | right hand side | 
| MinCostFlow< T, V >::node_pot_map_type & limbo::solvers::MinCostFlow< T, V >::potentialMap | ( | ) | 
Definition at line 204 of file MinCostFlow.h.
| void limbo::solvers::MinCostFlow< T, V >::setTotalFlowCost | ( | value_type | cost | ) | 
| cost | total cost of min-cost flow graph | 
Definition at line 214 of file MinCostFlow.h.
      
  | 
  protected | 
kernel function to solve the problem
| solver | an object to solve min cost flow, use default updater if NULL | 
Definition at line 252 of file MinCostFlow.h.
| MinCostFlow< T, V >::node_value_map_type const & limbo::solvers::MinCostFlow< T, V >::supplyMap | ( | ) | const | 
Definition at line 194 of file MinCostFlow.h.
| MinCostFlow< T, V >::value_type limbo::solvers::MinCostFlow< T, V >::totalCost | ( | ) | const | 
Definition at line 219 of file MinCostFlow.h.
| MinCostFlow< T, V >::value_type limbo::solvers::MinCostFlow< T, V >::totalFlowCost | ( | ) | const | 
Definition at line 209 of file MinCostFlow.h.
| MinCostFlow< T, V >::arc_value_map_type const & limbo::solvers::MinCostFlow< T, V >::upperMap | ( | ) | const | 
Definition at line 184 of file MinCostFlow.h.
 1.8.8