Changeset 649:a79ef774fae1 in lemon
- Timestamp:
- 02/24/09 09:52:26 (16 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tools/dimacs-solver.cc
r579 r649 45 45 #include <lemon/preflow.h> 46 46 #include <lemon/max_matching.h> 47 #include <lemon/network_simplex.h> 47 48 48 49 using namespace lemon; … … 92 93 } 93 94 95 template<class Value> 96 void solve_min(ArgParser &ap, std::istream &is, std::ostream &, 97 DimacsDescriptor &desc) 98 { 99 bool report = !ap.given("q"); 100 Digraph g; 101 Digraph::ArcMap<Value> lower(g), cap(g), cost(g); 102 Digraph::NodeMap<Value> sup(g); 103 Timer ti; 104 ti.restart(); 105 readDimacsMin(is, g, lower, cap, cost, sup, desc); 106 if (report) std::cerr << "Read the file: " << ti << '\n'; 107 ti.restart(); 108 NetworkSimplex< Digraph, Digraph::ArcMap<Value>, Digraph::ArcMap<Value>, 109 Digraph::ArcMap<Value>, Digraph::NodeMap<Value> > 110 ns(g, lower, cap, cost, sup); 111 if (report) std::cerr << "Setup NetworkSimplex class: " << ti << '\n'; 112 ti.restart(); 113 ns.run(); 114 if (report) std::cerr << "Run NetworkSimplex: " << ti << '\n'; 115 if (report) std::cerr << "\nMin flow cost: " << ns.totalCost() << '\n'; 116 } 117 94 118 void solve_mat(ArgParser &ap, std::istream &is, std::ostream &, 95 119 DimacsDescriptor &desc) … … 119 143 { 120 144 case DimacsDescriptor::MIN: 121 std::cerr << 122 "\n\n Sorry, the min. cost flow solver is not yet available.\n"; 145 solve_min<Value>(ap,is,os,desc); 123 146 break; 124 147 case DimacsDescriptor::MAX:
Note: See TracChangeset
for help on using the changeset viewer.