GRBQuadExpr


GRBQuadExpr

古洛比二次表达式对象。二次表达式包括一个线性表达式,加上一组捕捉二次项的系数-变量-变量三元组。二次表达式用于构造二次目标函数和二次约束。它们是临时对象,通常寿命很短。

GRBQuadExpr类是抽象基类的子类GRBExpr

通常,您可以从一个空表达式(使用GRBQuadExpr构造函数),然后添加术语。术语可以单独添加,使用addTerm,或分组使用addTerms,或multAdd.二次项可以用下列方法从二次表达式中去掉删除

要向模型中添加二次约束,通常需要构建一个或两个二次表达式对象(qexpr1qexpr2,然后使用重载比较操作符来构建GRBModel.addQConstr.举几个例子:

{displaymath} \ \开始开始{数组}{1}\ mathrm{模型。addQConstr} (qexpr1, GRB.LESS……\ mathrm{模型。addQConstr} (qexpr1伽马线暴。1) end{array} end{displaymath}

一旦您向模型中添加了约束,随后对用于构建约束的表达式对象的更改将不会对该约束产生影响。

二次表达式中的单个二次项可以使用getVar1getVar2,getCoeff方法。函数查询表达式中二次项的个数大小方法。要查询与一个二次表达式相关的常数项和线性项,首先使用,得到二次表达式的线性部分getLinExpr,然后使用getConstantgetCoeff,getVar结果的方法GRBLinExpr对象。

请注意,二次表达式可能包含多个涉及相同变量对的项。当从一个表达式创建模型目标时,这些重复的项被合并,但是当检查表达式中的单个二次项时,它们可能是可见的(例如,当使用getVar1getVar2).



部分