gurobipy.MGenConstr#

class MGenConstr#

Gurobi矩阵通用约束对象。一个MGenConstr对象是一个类似数组的数据结构,表示多个通用约束(与GenConstr对象不同,后者表示单个通用约束)。它的行为类似于NumPy的ndarray,例如,它具有形状并且可以被索引和切片。矩阵通用约束总是与特定模型相关联。目前,只有Model.addGenConstrIndicator方法在使用矩阵友好对象作为输入时生成MGenConstr对象。

通用约束对象具有许多属性。完整的列表可以在本文档的属性部分找到。一些通用约束属性只能查询,而其他属性也可以设置。请记住,Gurobi优化器采用延迟更新方法,因此对属性的更改在下次调用Model.updateModel.optimizeModel.write之前不会生效。

请注意,在大多数情况下,要查询一般约束数据,您需要索引到MGenConstr对象,并将单个GenConstr对象传递给方法,例如Model.getGenConstrIndicator,以读取一般约束数据。

fromlist(genconstrlist)#

将一般约束列表转换为MGenConstr对象。形状是从列表内容推断出来的 - 一个GenConstr对象列表生成一个一维的MGenConstr对象,一个GenConstr对象列表的列表生成一个二维的MGenConstr对象,依此类推。

Parameters:

genconstrlist – 用于填充返回的MGenConstr的GenConstr对象列表。

Returns:

MGenConstr 对象对应于输入的一般约束。

Example:
gc0, gc1, gc2, gc3 = model.getGenConstrs()
mgc_1d = MGenConstr.fromlist([gc0, gc1, gc2, gc3])  # 1-D MGenConstr
mgc_2d = MGenConstr.fromlist([[gc0, gc1], [gc2, gc3]])  # 2-D MGenConstr
getAttr(attrname)#

查询矩阵一般约束的某个属性的值。完整的可用属性列表可以在属性部分找到。

如果请求的属性不存在或无法查询,则引发AttributeError。如果MGenConstr对象存在问题(例如,它已从模型中移除),则引发GurobiError

结果以与MGenConstr对象形状相同的NumPy ndarray形式返回。

Parameters:

attrname – 被查询的属性。

Returns:

ndarray 请求属性的当前值。

Example:
mgc = model.addGenConstrIndicator(z, 1.0, A @ x <= b)
model.computeIIS()
iis = mc.getAttr("IISGenConstr")
setAttr(attrname, newvalue)#

设置矩阵一般约束属性的值。

请注意,由于我们采用了延迟更新的方法,更改实际上不会生效,直到您更新模型(使用Model.update)、优化模型(使用Model.optimize)或将模型写入磁盘(使用Model.write)。

可用属性的完整列表可以在 属性 部分找到。

如果指定的属性不存在或无法设置,则引发AttributeError。如果MGenConstr对象存在问题(例如,它已从模型中移除),则引发GurobiError

Parameters:
  • attrname – 正在修改的属性。

  • newvaluendarray 属性的期望新值。 形状必须与 MGenConstr 对象相同。或者, 您可以传递一个标量参数,它将自动提升为 具有正确的形状。

Example:
mgc = model.addGenConstrIndicator(z, 1.0, A @ x <= b)
iis = mc.setAttr("IISGenConstrForce", 1)
model.computeIIS()
tolist()#

返回与此矩阵一般约束相关的所有约束,作为单独的GenConstr对象的列表。

Returns:

GenConstr 对象的列表。

Example:
mgc = model.addGenConstrIndicator(z, True, A @ x <= b)
genconstrlist = mgc.tolist()