向模型添加约束

向模型添加约束

该示例中的下一步是添加我们的两个线性约束。这是通过构建捕获约束矩阵的稀疏矩阵来完成的:

#构建(稀疏)约束矩阵val = np.array([1.0,2.0,3.0,-1.0,-1.0])行= np.array([0,0,0,1])col = np.array([0,1,2,0,1])a = sp.csr_matrix((val,(行,col)),shape =(2,3))

矩阵具有两行,一个用于每个约束,以及三列,对于我们的矩阵变量中的每个变量为一个列。这col阵列分别为稀疏矩阵中的5个非零值提供行和列索引。这数组给出了数值。请注意,我们将大于约束乘以<span> $ </ span> -1 <span> $ </ span>将其转换为低于约束。

我们还在Numpy数组中捕获右侧:

#构建RHS矢量RHS = NP.ARRAY([4.0,-1.0])

然后我们使用重载@操作员构建线性矩阵表达式,然后使用过载的较少或等于的操作员添加两个约束(矩阵表达式中的每一行):

#添加约束m.addconstr(a @ x <= rhs,name =“c”)