Changes in tools/dimacs-solver.cc [614:19b6f20e0ea2:611:85cb3aa71cce] in lemon-main
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tools/dimacs-solver.cc
r614 r611 94 94 template<class Value> 95 95 void solve_min(ArgParser &ap, std::istream &is, std::ostream &, 96 Value infty,DimacsDescriptor &desc)96 DimacsDescriptor &desc) 97 97 { 98 98 bool report = !ap.given("q"); … … 101 101 Digraph::NodeMap<Value> sup(g); 102 102 Timer ti; 103 104 ti.restart(); 105 readDimacsMin(is, g, lower, cap, cost, sup, infty, desc); 106 ti.stop(); 107 Value sum_sup = 0; 108 for (Digraph::NodeIt n(g); n != INVALID; ++n) { 109 sum_sup += sup[n]; 110 } 111 if (report) { 112 std::cerr << "Sum of supply values: " << sum_sup << "\n"; 113 if (sum_sup <= 0) 114 std::cerr << "GEQ supply contraints are used for NetworkSimplex\n\n"; 115 else 116 std::cerr << "LEQ supply contraints are used for NetworkSimplex\n\n"; 117 } 103 ti.restart(); 104 readDimacsMin(is, g, lower, cap, cost, sup, 0, desc); 118 105 if (report) std::cerr << "Read the file: " << ti << '\n'; 119 120 106 ti.restart(); 121 107 NetworkSimplex<Digraph, Value> ns(g); 122 108 ns.lowerMap(lower).capacityMap(cap).costMap(cost).supplyMap(sup); 123 if (sum_sup > 0) ns.problemType(ns.LEQ);124 109 if (report) std::cerr << "Setup NetworkSimplex class: " << ti << '\n'; 125 110 ti.restart(); 126 bool res = ns.run(); 127 if (report) { 128 std::cerr << "Run NetworkSimplex: " << ti << "\n\n"; 129 std::cerr << "Feasible flow: " << (res ? "found" : "not found") << '\n'; 130 if (res) std::cerr << "Min flow cost: " << ns.totalCost() << '\n'; 131 } 111 ns.run(); 112 if (report) std::cerr << "Run NetworkSimplex: " << ti << '\n'; 113 if (report) std::cerr << "\nMin flow cost: " << ns.totalCost() << '\n'; 132 114 } 133 115 … … 170 152 { 171 153 case DimacsDescriptor::MIN: 172 solve_min<Value>(ap,is,os, infty,desc);154 solve_min<Value>(ap,is,os,desc); 173 155 break; 174 156 case DimacsDescriptor::MAX:
Note: See TracChangeset
for help on using the changeset viewer.