向模型中添加变量
向模型中添加变量
一旦我们创建了一个Gurobi模型,我们就可以开始向它添加变量和约束。在我们的例子中,我们将从添加变量开始:
/*添加变量*/ obj[0] = 1;obj [1] = 1;obj [2] = 2;vtype [0] = GRB_BINARY;vtype [1] = GRB_BINARY;vtype [2] = GRB_BINARY;error = GRBaddvars(model, 3, 0, NULL, NULL, NULL, obj, NULL, NULL, vtype, NULL);if (error) goto QUIT;
第一个参数GRBaddvars ()是要添加变量的模型。第二个是添加变量的数量(在我们的例子中是3个)。
参数3到6描述了与新变量相关的约束矩阵系数。第三个参数给出了与新变量相关的非零约束矩阵条目的数量,接下来的三个参数给出了这些非零约束矩阵条目的详细信息。在我们的例子中,当我们添加约束时,我们将添加这些非零。因此,这里的非零计数为零,下面三个参数全部为零零
.
的第七个参数GRBaddvars ()为每个新变量的线性目标系数。因为我们的例子的目标是最大化目标,而默认情况下Gurobi会最小化目标,所以我们需要改变客观意义。这在下一个语句中完成。注意,我们可以将目标系数乘以-1(因为最大值)等价于最小化).
接下来的两个参数分别指定变量的下界和上界。的零
值表示这些变量应该采用它们的默认值(二进制变量为0.0和1.0)。
第10个参数指定变量的类型。在这个例子中,变量都是二进制的(GRB_BINARY
).
最后一个参数给出了变量的名称。在本例中,我们允许变量名采用默认值(X0 x1 x2
).