Limbo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
test_GurobiApi.cpp
Go to the documentation of this file.
1 
7 #include <iostream>
9 
21 int main()
22 {
23  // ILP model
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
44  solver_type solver (&optModel);
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  return 0;
54 }
Gurobi API with limbo::solvers::LinearModel.
Definition: GurobiApi.h:76
void setNumThreads(int v)
set number of threads
Definition: GurobiApi.h:65
Base class for custom Gurobi parameters.
Definition: GurobiApi.h:33
SolverProperty
Some enums used in solver.
Definition: Solvers.h:29
Gurobi API wrapper using its C API.
void setOutputFlag(int v)
set output flag
Definition: GurobiApi.h:62
floating point number
Definition: Solvers.h:35
int main()
main function
model to describe an optimization problem
Definition: Solvers.h:80
minimize objective
Definition: Solvers.h:31
variable_type addVariable(variable_value_type lb, variable_value_type ub, SolverProperty nt, std::string name="")
add one variable
Definition: Solvers.h:1365