GRBLinExpr
GRBLinExpr
Gurobi线性表达对象。一个线性表达式由一个常数项加上一组系数-变量对组成,这些系数-变量对捕获线性项。线性表达式用于构建约束。它们是短暂的物体,通常寿命很短。
的GRBLinExpr
类是抽象基类的子类GRBExpr.
通常使用重载运算符构建线性表达式。例如,如果x
是一个GRBVar对象,然后x + 1
是一个GRBLinExpr对象。表达式可以由常量构建(例如,expr = 0
)、变量(例如,= 1 * x + 2 * y
),或从其他表达(如:Expr2 = 2 * expr1 + x,或Expr3 = expr1 + 2 * expr2
)。您还可以修改现有的表达式(例如,expr + = x
,或expr2 - = expr1
)。
构建表达式的另一个选择是使用addTerms方法,该方法将立即添加一个新术语数组。术语也可以从表达式中删除,使用删除.
请注意,构建表达式的成本很大程度上取决于所使用的方法。虽然在构建小表达式时通常可以忽略这个问题,但在构建大表达式时,应该注意一些效率问题:
- 你应该避免使用
Expr = Expr + x
在一个循环中。它将导致运行时是表达式中项数的二次型。 - 使用
expr + = x
(或expr - = x
)比Expr = Expr + x
.通过循环构建一个大型表达式+ =
语句是相当有效的,但它不是最有效的方法。 - 构建大型表达式的最有效方法是调用addTerms.
函数可以查询线性表达式中的单个项getVar,getCoeff,getConstant方法。属性可以查询表达式中的术语数量大小方法。
请注意,线性表达式可能包含多个涉及相同变量的项。当从表达式创建约束时,这些重复的术语被合并,但是当检查表达式中的单个术语时(例如,使用getVar)。
部分
- GRBLinExpr ()
- GRBLinExpr: addTerms ()
- GRBLinExpr: clear ()
- GRBLinExpr: getConstant ()
- GRBLinExpr: getCoeff ()
- GRBLinExpr: getValue ()
- GRBLinExpr: getVar ()
- GRBLinExpr::操作符=
- GRBLinExpr::操作符+
- GRBLinExpr:运营商-
- GRBLinExpr::操作符+ =
- GRBLinExpr::运营商- =
- GRBLinExpr::操作符* =
- GRBLinExpr: remove ()
- GRBLinExpr:尺寸()