OR-Tools  8.1
simple_glop_program.cc
Go to the documentation of this file.
1 #include <iostream>
5 
8  LinearProgram linear_program;
9  // Create the variables x and y.
10  ColIndex col_x = linear_program.FindOrCreateVariable("x");
11  linear_program.SetVariableBounds(col_x, 0.0, 1.0);
12  ColIndex col_y = linear_program.FindOrCreateVariable("y");
13  linear_program.SetVariableBounds(col_y, 0.0, 2.0);
14 
15  // Create linear constraint: 0 <= x + y <= 2.
16  RowIndex row_r1 = linear_program.FindOrCreateConstraint("r1");
17  linear_program.SetConstraintBounds(row_r1, 0.0, 2.0);
18  linear_program.SetCoefficient(row_r1, col_x, 1);
19  linear_program.SetCoefficient(row_r1, col_y, 1);
20 
21  // Create objective function: 3 * x + y.
22  linear_program.SetObjectiveCoefficient(col_x, 3);
23  linear_program.SetObjectiveCoefficient(col_y, 1);
24  linear_program.SetMaximizationProblem(true);
25 
26  linear_program.CleanUp();
27 
28  std::cout << "Number of variables = " << linear_program.num_variables() << std::endl;
29  std::cout << "Number of constraints = " << linear_program.num_constraints() << std::endl;
30 
31  LPSolver solver;
32  GlopParameters parameters;
33  parameters.set_provide_strong_optimal_guarantee(true);
34  solver.SetParameters(parameters);
35 
36  ProblemStatus status = solver.Solve(linear_program);
37  if (status == ProblemStatus::OPTIMAL) {
38  std::cout << "Optimal solution found !" << std::endl;
39  // The objective value of the solution.
40  std::cout << "Optimal objective value = " << solver.GetObjectiveValue() << std::endl;
41  // The value of each variable in the solution.
42  const DenseRow& values = solver.variable_values();
43  std::cout << "Solution:" << std::endl
44  << "x = " << values[col_x] << std::endl
45  << ", y = " << values[col_y] << std::endl;
46  return 0;
47  } else
48  return 1;
49  }
50 } // namespace operations_research::glop
51 
52 int main(int argc, char** argv) {
54 }
operations_research::glop::LinearProgram::num_constraints
RowIndex num_constraints() const
Definition: lp_data.h:208
operations_research::glop::LPSolver::GetObjectiveValue
Fractional GetObjectiveValue() const
Definition: lp_solver.cc:446
lp_data.h
operations_research::glop::RunLinearExample
int RunLinearExample()
Definition: simple_glop_program.cc:7
operations_research::glop::LinearProgram::SetConstraintBounds
void SetConstraintBounds(RowIndex row, Fractional lower_bound, Fractional upper_bound)
Definition: lp_data.cc:307
operations_research::glop::LinearProgram::SetMaximizationProblem
void SetMaximizationProblem(bool maximize)
Definition: lp_data.cc:341
operations_research::glop::LinearProgram::SetVariableBounds
void SetVariableBounds(ColIndex col, Fractional lower_bound, Fractional upper_bound)
Definition: lp_data.cc:247
operations_research::glop::LinearProgram::FindOrCreateVariable
ColIndex FindOrCreateVariable(const std::string &variable_id)
Definition: lp_data.cc:203
operations_research::glop::StrictITIVector< ColIndex, Fractional >
operations_research::glop::LinearProgram::CleanUp
void CleanUp()
Definition: lp_data.cc:345
operations_research::glop::LinearProgram::SetCoefficient
void SetCoefficient(RowIndex row, ColIndex col, Fractional value)
Definition: lp_data.cc:315
operations_research::glop::LPSolver::variable_values
const DenseRow & variable_values() const
Definition: lp_solver.h:100
operations_research::glop::ProblemStatus::OPTIMAL
@ OPTIMAL
operations_research::glop::LPSolver::Solve
ABSL_MUST_USE_RESULT ProblemStatus Solve(const LinearProgram &lp)
Definition: lp_solver.cc:121
operations_research::glop::ProblemStatus
ProblemStatus
Definition: lp_types.h:101
operations_research::glop::LinearProgram
Definition: lp_data.h:55
operations_research::glop::LinearProgram::FindOrCreateConstraint
RowIndex FindOrCreateConstraint(const std::string &constraint_id)
Definition: lp_data.cc:216
operations_research::glop::LinearProgram::SetObjectiveCoefficient
void SetObjectiveCoefficient(ColIndex col, Fractional value)
Definition: lp_data.cc:324
operations_research::glop::LPSolver
Definition: lp_solver.h:29
operations_research::glop::LinearProgram::num_variables
ColIndex num_variables() const
Definition: lp_data.h:205
operations_research::glop
Definition: parameters.pb.cc:18
operations_research::glop::LPSolver::SetParameters
void SetParameters(const GlopParameters &parameters)
Definition: lp_solver.cc:113
lp_types.h
parameters
SatParameters parameters
Definition: cp_model_fz_solver.cc:107
main
int main(int argc, char **argv)
Definition: simple_glop_program.cc:52
lp_solver.h