向模型添加约束

向模型添加约束

示例中的下一步是添加两个线性约束。这是通过构建一个捕捉约束矩阵的稀疏矩阵来实现的:

#构建(稀疏)约束矩阵val = np.array([1.0, 2.0, 3.0, -1.0, -1.0]) row = np.array([1.0, 2.0, 3.0, -1.0, -1.0])Array ([0, 0, 0, 1,1]) col = np. php . php . php . php。数组([0,1,2,0,1])A = sp.csr_matrix ((val,(行,坳)),形状=(2、3)

矩阵有两行,一列代表每个约束条件,三列代表矩阵变量中的每个变量。的上校数组分别给出稀疏矩阵中5个非零值的行索引和列索引。的瓦尔数组给出数值。注意,我们将大于约束乘以< span > < / span > 1美元美元< span > < / span >将其转换为小于约束。

我们还捕获了NumPy数组的右侧:

# Build rhs vector rhs = np.array([4.0, -1.0])

然后使用重载函数运算符来构建线性矩阵表达式,然后使用重载的小于等于运算符添加两个约束(矩阵表达式中的每一行对应一个约束):

#添加约束m.addConstr(A @ x <= rhs, name="c")