向模型中添加变量

向模型中添加变量

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


/*添加变量*/ obj[0] = 1;obj [1] = 1;obj [2] = 2;vtype [0] = GRB_BINARY;vtype [1] = GRB_BINARY;vtype [2] = GRB_BINARY;错误= GRBaddvars(模型,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).