向模型中添加变量

向模型中添加变量

一旦我们创建了一个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(因为最大值)< span > < /美元跨度> c 'x < span > < / span >美元等价于最小化< span > < / span >美元- c 'x < span > < / span >美元).

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

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

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