MLinExpr


MLinExpr

古罗比线性矩阵表达式对象。线性矩阵表达式由矩阵-向量乘积组成,其中矩阵是NumPy密集矩阵或SciPy稀疏矩阵,向量是Gurobi兆乏对象,加上一个可选的兼容维数的常量向量(即,< span > < /美元跨度> Ax + b < span > < / span >美元).线性矩阵表达式用于建立线性目标和约束。它们是临时对象,通常寿命很短。

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

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

在处理MLinExpr对象,你当然需要确保形状是兼容的。如果你想形成@ x,然后一个必须是二维数组x必须是1-D数组,第2维的大小是一个一定等于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中不可用。



部分