GRBaddqpterms
int | GRBaddqpterms( | GRBmodel | *模型, |
int | numqnz, | ||
int | * qrow, | ||
int | * qcol, | ||
双 | * qval) |
新的二次目标条款添加到现有的模型。注意,新条款(数值)添加到现有的条件,并且添加一个行我
和列j
相当于增加了一个术语在行吗j
和列我
。您可以添加所有二次客观条件在一个电话,或者你可以把它们逐步在多个调用。
请注意,由于我们懒惰的更新方法,新二次术语实际上不会被添加(使用直到你更新模型GRBupdatemodel(使用),优化模型GRBoptimize),或写磁盘(使用的模型GRBwrite)。
构建一个客观,既包含线性和二次项,使用这个例程添加二次术语和使用Obj属性添加线性条件。
如果你想改变一个二次项,您可以添加当前术语之间的区别和使用这个例程所需的术语,或者你可以打电话GRBdelq删除所有二次项,然后从头开始重建新的二次目标。
返回值:
一个非零返回值表明,添加二次项时发生问题。指的是错误代码表的列表可能的返回值。细节错误可以通过调用GRBgeterrormsg。
参数:
模型:模型的新二次目标应该添加。
numqnz:新的二次目标方面增加的数量。
qrow:行指数与二次相关条款。二次项是使用三个值来表示:一双指数(存储在qrow和qcol)和一个系数(存储在qval)。这三个参数数组为每个二次项提供相应的值。举一个例子,来表示,你会numqnz = 3,qrow [] = {0, 0, 1},qcol [] = {0, 1, 1},qval [] = {2.0, 1.0, 1.0}。
qcol:列指数与二次相关条款。看到的描述qrow参数的更多信息。
qval:数值与二次相关条款。看到的描述qrow参数的更多信息。
重要提示:
注意,建立二次目标需要一些护理,特别是如果你从另一个解决迁移应用程序。手机万博登录解决一些需手机万博登录要您指定整个当别人只接受下三角矩阵,。此外,一些解决包括隐式0.5倍增手机万博登录,而其他人没有。Gurobi界面是建立在二次项,而不是一个矩阵。如果你的二次目标包含一个术语2 x y
,您可以输入一个词,2 x y
,或者一对术语中,x y
和x 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);