MLinExpr

Gurobi线性矩阵表达式对象。产品一个线性矩阵表达式由一个矩阵向量,矩阵是一个NumPy稠密矩阵或者SciPy稀疏矩阵和向量Gurobi兆乏兼容的对象,加上一个可选的常数向量维度(即,< span > < / span >美元Ax + b < span > < / span >美元)。线性矩阵表达式是用来构建线性目标和约束。他们临时对象,通常短寿命。

你一般使用重载操作符构建线性矩阵表达式,通常由一个二维矩阵(稠密或稀疏)乘以一个一维兆乏使用Python对象矩阵相乘(@)操作符(例如,expr = @ x)。你也可以促进一个兆乏对象一个MLinExpr使用算术表达式(例如,expr = x + 1)。支持大多数的算术运算MLinExpr对象,包括加法和减法(例如,expr = @ x - B @ y),乘以一个常数(如。expr = 2 * @ x)。

一个MLinExpr对象有形状定义类似于其他NumPy ndarray对象。由于定义的方式,永远是单维的形状,长度反映相应的矩阵向量的大小的结果。举一个例子,形成@ x在哪里一个有形状(3)10x有形状(3)给出了一个结果与形状(10)

在处理MLinExpr对象,你当然需要确保形状是兼容的。如果你想要的形式@ x,然后一个必须是一个二维数组,x必须一个一维数组,第二维度的大小一个必须等于的大小x。同样地,添加一个对象到一个MLinExpr对象(包括另一个MLinExpr)需要一个对象相同的形状。一个例外是一个常数,自动晋升为一个兼容的形状。

重载操作符的完整列表MLinExpr对象如下:+,+ =,- - - - - -,- =,*,* =,@。在Python的说法,我们定义以下MLinExpr功能:__add__,__radd__,__iadd__,__sub__,__rsub__,__isub__,__neg__,__mul__,__rmul__,__imul__,__matmul__,__rmatmul__

我们也比较运算符重载(= =,< =,> =),使其更容易构建约束线性矩阵表达式。

注意,Python矩阵乘法操作符(@)是在Python版本3.5中引入的;它不是可以从Python 2.7。



部分