Limbo
3.5.4
Toggle main menu visibility
Loading...
Searching...
No Matches
test
solvers
test_GurobiApi.cpp
Go to the documentation of this file.
1
7
#include <iostream>
8
#include <
limbo/solvers/api/GurobiApi.h
>
9
21
int
main
()
22
{
23
// ILP model
24
typedef
limbo::solvers::LinearModel<double, double>
model_type;
25
model_type optModel;
26
27
// create variables
28
model_type::variable_type var1 = optModel.
addVariable
(0, 1,
limbo::solvers::CONTINUOUS
,
"x1"
);
29
model_type::variable_type var2 = optModel.addVariable(0, 1,
limbo::solvers::CONTINUOUS
,
"x2"
);
30
model_type::variable_type var3 = optModel.addVariable(0, 1,
limbo::solvers::CONTINUOUS
,
"x3"
);
31
model_type::variable_type var4 = optModel.addVariable(0, 1,
limbo::solvers::CONTINUOUS
,
"x4"
);
32
33
// create objective
34
optModel.setObjective(var1+var2+var3+var4);
35
optModel.setOptimizeType(
limbo::solvers::MIN
);
36
37
// create constraints
38
optModel.addConstraint(var1 - var2 >= 0.5,
"c1"
);
39
optModel.addConstraint(var4 - var3 >= 0.1,
"c2"
);
40
optModel.addConstraint(var2 - var3 >= 0.2,
"c3"
);
41
42
// solve by Gurobi
43
typedef
limbo::solvers::GurobiLinearApi<model_type::coefficient_value_type, model_type::variable_value_type>
solver_type;
44
solver_type solver (&optModel);
45
limbo::solvers::GurobiParameters
gurobiParams;
46
gurobiParams.
setNumThreads
(1);
47
gurobiParams.
setOutputFlag
(1);
48
49
limbo::solvers::SolverProperty
optStatus = solver(&gurobiParams);
50
51
std::cout <<
"optStatus = "
<< optStatus << std::endl;
52
53
std::cout << optModel.variableName(var1) <<
" = "
<< optModel.variableSolution(var1) <<
"\n"
;
54
std::cout << optModel.variableName(var2) <<
" = "
<< optModel.variableSolution(var2) <<
"\n"
;
55
std::cout << optModel.variableName(var3) <<
" = "
<< optModel.variableSolution(var3) <<
"\n"
;
56
std::cout << optModel.variableName(var4) <<
" = "
<< optModel.variableSolution(var4) <<
"\n"
;
57
58
return
0;
59
}
GurobiApi.h
Gurobi API wrapper using its C API.
limbo::solvers::GurobiLinearApi
Gurobi API with limbo::solvers::LinearModel.
Definition
GurobiApi.h:97
limbo::solvers::GurobiParameters
Base class for custom Gurobi parameters.
Definition
GurobiApi.h:34
limbo::solvers::GurobiParameters::setNumThreads
void setNumThreads(int v)
set number of threads
Definition
GurobiApi.h:65
limbo::solvers::GurobiParameters::setOutputFlag
void setOutputFlag(int v)
set output flag
Definition
GurobiApi.h:62
limbo::solvers::LinearModel
model to describe an optimization problem
Definition
Solvers.h:1161
limbo::solvers::LinearModel::addVariable
variable_type addVariable(variable_value_type lb, variable_value_type ub, SolverProperty nt, std::string name="")
add one variable
Definition
Solvers.h:1365
limbo::solvers::SolverProperty
SolverProperty
Some enums used in solver.
Definition
Solvers.h:30
limbo::solvers::CONTINUOUS
@ CONTINUOUS
floating point number
Definition
Solvers.h:35
limbo::solvers::MIN
@ MIN
minimize objective
Definition
Solvers.h:31
main
int main()
main function
Definition
test_GurobiApi.cpp:21
Generated on
for Limbo by
1.17.0