21 MPModelProto* output) {
23 output->set_name(
input.name());
24 output->set_maximize(
input.IsMaximizationProblem());
25 output->set_objective_offset(
input.objective_offset());
27 MPVariableProto* variable = output->add_variable();
28 variable->set_lower_bound(
input.variable_lower_bounds()[
col]);
29 variable->set_upper_bound(
input.variable_upper_bounds()[
col]);
30 variable->set_name(
input.GetVariableName(
col));
31 variable->set_is_integer(
input.IsVariableInteger(
col));
32 variable->set_objective_coefficient(
input.objective_coefficients()[
col]);
39 MPConstraintProto* constraint = output->add_constraint();
40 constraint->set_lower_bound(
input.constraint_lower_bounds()[
row]);
41 constraint->set_upper_bound(
input.constraint_upper_bounds()[
row]);
42 constraint->set_name(
input.GetConstraintName(
row));
44 constraint->add_var_index(e.row().value());
45 constraint->add_coefficient(e.coefficient());
58 for (
int i = 0; i <
input.variable_size(); ++i) {
59 const MPVariableProto&
var =
input.variable(i);
64 if (
var.is_integer()) {
68 for (
int j = 0; j <
input.constraint_size(); ++j) {
69 const MPConstraintProto& cst =
input.constraint(j);
75 CHECK_EQ(cst.var_index_size(), cst.coefficient_size());
76 for (
int k = 0; k < cst.var_index_size(); ++k) {
#define CHECK_EQ(val1, val2)
void SetVariableBounds(ColIndex col, Fractional lower_bound, Fractional upper_bound)
void SetConstraintName(RowIndex row, absl::string_view name)
void SetObjectiveOffset(Fractional objective_offset)
void SetCoefficient(RowIndex row, ColIndex col, Fractional value)
void SetVariableName(ColIndex col, absl::string_view name)
void SetConstraintBounds(RowIndex row, Fractional lower_bound, Fractional upper_bound)
ColIndex CreateNewVariable()
void SetVariableType(ColIndex col, VariableType type)
void SetName(const std::string &name)
void SetObjectiveCoefficient(ColIndex col, Fractional value)
RowIndex CreateNewConstraint()
void SetMaximizationProblem(bool maximize)
void PopulateFromTranspose(const Matrix &input)
const SparseColumn & column(ColIndex col) const
typename Iterator::Entry Entry
void MPModelProtoToLinearProgram(const MPModelProto &input, LinearProgram *output)
void LinearProgramToMPModelProto(const LinearProgram &input, MPModelProto *output)
ColIndex RowToColIndex(RowIndex row)
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
static int input(yyscan_t yyscanner)