GRBaddqpterms

int GRBaddqpterms( GRBmodel *模型,
int numqnz,
int * qrow,
int * qcol,
* qval)

新的二次目标条款添加到现有的模型。注意,新条款(数值)添加到现有的条件,并且添加一个行和列j相当于增加了一个术语在行吗j和列。您可以添加所有二次客观条件在一个电话,或者你可以把它们逐步在多个调用。

请注意,由于我们懒惰的更新方法,新二次术语实际上不会被添加(使用直到你更新模型GRBupdatemodel(使用),优化模型GRBoptimize),或写磁盘(使用的模型GRBwrite)。

构建一个客观,既包含线性和二次项,使用这个例程添加二次术语和使用Obj属性添加线性条件。

如果你想改变一个二次项,您可以添加当前术语之间的区别和使用这个例程所需的术语,或者你可以打电话GRBdelq删除所有二次项,然后从头开始重建新的二次目标。

返回值:

一个非零返回值表明,添加二次项时发生问题。指的是错误代码表的列表可能的返回值。细节错误可以通过调用GRBgeterrormsg

参数:

模型:模型的新二次目标应该添加。

numqnz:新的二次目标方面增加的数量。

qrow:行指数与二次相关条款。二次项是使用三个值来表示:一双指数(存储在qrowqcol)和一个系数(存储在qval)。这三个参数数组为每个二次项提供相应的值。举一个例子,来表示< span > < / span > 2美元x_0 ^ 2 + x_0 x_1 + x_1 ^ 2 < span > < / span >美元,你会numqnz = 3,qrow [] = {0, 0, 1},qcol [] = {0, 1, 1},qval [] = {2.0, 1.0, 1.0}

qcol:列指数与二次相关条款。看到的描述qrow参数的更多信息。

qval:数值与二次相关条款。看到的描述qrow参数的更多信息。

重要提示:

注意,建立二次目标需要一些护理,特别是如果你从另一个解决迁移应用程序。手机万博登录解决一些需手机万博登录要您指定整个< span > < / span > Q < span >美元< / span >当别人只接受下三角矩阵,。此外,一些解决包括隐式0.5倍增手机万博登录< span > < / span > Q < span >美元< / span >,而其他人没有。Gurobi界面是建立在二次项,而不是一个< span > < / span > Q < span >美元< / span >矩阵。如果你的二次目标包含一个术语2 x y,您可以输入一个词,2 x y,或者一对术语中,x yx y

使用示例:

int qrow [] = {0, 0, 1};int qcol [] = {0, 1, 1};双qval [] = {2.0, 1.0, 3.0};/ *减少2 x ^ 2 + x * y + 3 y ^ 2 * /错误= GRBaddqpterms(模型3 qrow、qcol qval);