Limbo
3.5.4
Toggle main menu visibility
Loading...
Searching...
No Matches
test
solvers
test_MinCostFlow.cpp
Go to the documentation of this file.
1
7
8
#include <iostream>
9
#include <
limbo/solvers/MinCostFlow.h
>
10
14
void
test
(std::string
const
& filename,
int
alg)
15
{
16
typedef
limbo::solvers::LinearModel<double, int>
model_type;
17
model_type optModel;
18
optModel.
read
(filename);
19
20
// print problem
21
optModel.print(std::cout);
22
23
// solve
24
limbo::solvers::MinCostFlowSolver<double, int>
* minCostFlowSolver = NULL;
25
switch
(alg)
26
{
27
case
0:
28
minCostFlowSolver =
new
limbo::solvers::CostScaling<double, int>
();
29
break
;
30
case
1:
31
minCostFlowSolver =
new
limbo::solvers::CapacityScaling<double, int>
();
32
break
;
33
case
2:
34
minCostFlowSolver =
new
limbo::solvers::NetworkSimplex<double, int>
();
35
break
;
36
case
3:
37
default
:
38
minCostFlowSolver =
new
limbo::solvers::CycleCanceling<double, int>
();
39
break
;
40
}
41
limbo::solvers::MinCostFlow<double, int>
solver (&optModel);
42
limbo::solvers::SolverProperty
status = solver(minCostFlowSolver);
43
//limbo::solvers::SolverProperty status = solver();
44
std::cout <<
"Problem solved "
<<
limbo::solvers::toString
(status) <<
"\n"
;
45
delete
minCostFlowSolver;
46
47
// print solutions
48
optModel.printSolution(std::cout);
49
// print problem
50
optModel.print(std::cout);
51
52
// print graph with solution information
53
solver.
printGraph
(
true
);
54
}
55
63
int
main
(
int
argc,
char
** argv)
64
{
65
if
(argc > 1)
66
{
67
int
alg = 0;
68
if
(argc > 2)
69
alg = atoi(argv[2]);
70
// test file API
71
test
(argv[1], alg);
72
}
73
else
74
std::cout <<
"at least 1 argument required\n"
;
75
76
return
0;
77
}
MinCostFlow.h
Solve a special case of linear programming with primal min-cost flow.
limbo::solvers::CapacityScaling
Capacity scaling algorithm for min-cost flow.
Definition
MinCostFlow.h:495
limbo::solvers::CostScaling
Cost scaling algorithm for min-cost flow.
Definition
MinCostFlow.h:591
limbo::solvers::CycleCanceling
Cycle canceling algorithm for min-cost flow.
Definition
MinCostFlow.h:787
limbo::solvers::LinearModel
model to describe an optimization problem
Definition
Solvers.h:1161
limbo::solvers::LinearModel::read
void read(std::string const &filename)
read lp format
Definition
Solvers.h:1464
limbo::solvers::MinCostFlow
LP solved with min-cost flow.
Definition
MinCostFlow.h:61
limbo::solvers::MinCostFlow::printGraph
void printGraph(bool writeSol) const
print graph
Definition
MinCostFlow.h:224
limbo::solvers::MinCostFlowSolver
A base class of min-cost flow solver.
Definition
MinCostFlow.h:458
limbo::solvers::NetworkSimplex
Network simplex algorithm for min-cost flow.
Definition
MinCostFlow.h:691
limbo::solvers::SolverProperty
SolverProperty
Some enums used in solver.
Definition
Solvers.h:30
limbo::solvers::toString
std::string toString(SolverProperty sp)
Convert limbo::solvers::SolverProperty to std::string.
Definition
Solvers.h:44
main
int main()
Definition
test_ChromaticNumber.cpp:78
test
void test(std::string const &filename, int alg)
test file API
Definition
test_MinCostFlow.cpp:14
Generated on
for Limbo by
1.17.0