过滤内容,
版本
文本搜索
GRBLinExpr
Gurobi线性表达式对象。线性表达式由一个常数项,加上一个捕获的coefficient-variable双线性项列表。线性表达式是用来构建约束。他们临时对象,通常短寿命。
的GRBLinExpr
类是一个抽象基类的子类GRBExpr。
你通常使用重载操作符构建线性表达式。例如,如果x
是一个GRBVar对象,然后x + 1
是一个GRBLinExpr对象。表达式可以由常量(如expr = 0
)、变量(例如,expr = 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。
将一个线性约束添加到你的模型,你通常构建一个或两个线性表达式对象(expr1
和expr2
),然后使用一个重载的比较运算符来构建一个理由GRBModel: addConstr。给几个例子:
个人在一个线性表达式可以查询使用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:尺寸()