Limbo 3.5.4
Loading...
Searching...
No Matches
test_CplexApi.cpp
Go to the documentation of this file.
1
7#include <iostream>
9
21int 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 CPLEX
44 solver_type solver (&optModel);
46 cplexParams.setNumThreads(1);
47 cplexParams.setOutputFlag(1);
48
49 limbo::solvers::SolverProperty optStatus = solver(&cplexParams);
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}
CPLEX API wrapper using its C API.
CPLEX API with limbo::solvers::LinearModel.
Definition CplexApi.h:110
Base class for custom CPLEX parameters.
Definition CplexApi.h:41
void setNumThreads(int v)
set number of threads
Definition CplexApi.h:78
void setOutputFlag(int v)
set output flag
Definition CplexApi.h:75
model to describe an optimization problem
Definition Solvers.h:1161
variable_type addVariable(variable_value_type lb, variable_value_type ub, SolverProperty nt, std::string name="")
add one variable
Definition Solvers.h:1365
SolverProperty
Some enums used in solver.
Definition Solvers.h:30
@ CONTINUOUS
floating point number
Definition Solvers.h:35
@ MIN
minimize objective
Definition Solvers.h:31
int main()
main function