向模型中添加变量

向模型中添加变量

一旦创建了Gurobi模型,我们就可以开始向它添加变量和约束了。在我们的例子中,我们将从添加变量开始:


/*添加变量*/ obj[0] = 1;obj [1] = 1;obj [2] = 2;vtype [0] = GRB_BINARY;vtype [1] = GRB_BINARY;vtype [2] = GRB_BINARY;error = grbadvars (model, 3, 0, NULL, NULL, NULL, obj, NULL, NULL, vtype, NULL);if (error) goto QUIT;

第一个参数GRBaddvars ()是要添加变量的模型。第二个是添加的变量数量(在我们的示例中为3)。

参数3到6描述与新变量相关的约束矩阵系数。第三个参数给出了与新变量相关的非零约束矩阵项的数量,接下来的三个参数给出了关于这些非零的详细信息。在我们的例子中,我们将在添加约束时添加这些非零。因此,这里的非零计数为零,下面三个参数都是

第七个论证GRBaddvars ()为每个新变量的线性目标系数。由于我们的示例旨在最大化目标,而默认情况下Gurobi将最小化目标,因此我们需要改变客观意义。这将在下一个语句中完成。注意,我们可以将目标系数乘以-1(因为最大化< span > < /美元跨度> c 'x < span > < / span >美元等价于最小化< span > < / span >美元- c 'x < span > < / span >美元).

下面两个参数分别指定变量的上界和下界。的Values表示这些变量应该采用它们的默认值(对于二进制变量,0.0和1.0)。

第10个参数指定变量的类型。在本例中,变量都是二进制的(GRB_BINARY).

最后一个参数给出变量的名称。在本例中,我们允许变量名接受它们的默认值(X0 x1 x2).