26 auto model = std::make_unique<Model>(
"small_model");
27 const Variable x_1 = model->AddVariable(0.0, 1.0, integer,
"x_1");
28 const Variable y_1 = model->AddVariable(0.0, 1.0, integer,
"y_1");
29 model->AddLinearConstraint(x_1 + y_1 <= 1.5);
31 const Variable x_2 = model->AddVariable(0.0, 1.0, integer,
"x_2");
32 const Variable y_2 = model->AddVariable(0.0, 1.0, integer,
"y_2");
33 model->AddLinearConstraint(x_2 + y_2 <= 1.5);
35 const Variable x_3 = model->AddVariable(0.0, 1.0, integer,
"x_3");
36 const Variable y_3 = model->AddVariable(0.0, 1.0, integer,
"y_3");
37 model->AddLinearConstraint(x_3 + y_3 <= 1.5);
39 model->Maximize(3.0 * x_1 + 2.0 * y_1 + 3.0 * x_2 + 2.0 * y_2 + 3.0 * x_3 +
47 auto model = std::make_unique<Model>(
"dense_independent_set");
51 const std::vector<double>
c = {5.0, 4.0, 3.0};
54 std::vector<std::vector<Variable>>
x(m);
55 for (
int i = 0; i < m; ++i) {
56 for (
int j = 0; j < n; ++j) {
58 model->AddVariable(0, 1, integer, absl::StrCat(
"x_", i,
"_", j)));
65 for (
int i = 0; i < m; ++i) {
66 for (
int j = 0; j < n; ++j) {
67 objective +=
c[i] *
x[i][j];
70 model->Maximize(objective);
74 for (
int i = 0; i < m; ++i) {
75 for (
int j = 0; j < n; ++j) {
76 for (
int k = j + 1; k < n; ++k) {
77 model->AddLinearConstraint(
x[i][j] +
x[i][k] <= 1);
83 static_assert(m >= 3);
84 for (
int i = 1; i < m; ++i) {
85 for (
int j = 0; j < n; ++j) {
86 for (
int k = 0; k < n; ++k) {
87 model->AddLinearConstraint(
x[0][j] +
x[i][k] <= 1);