我有一个随机混合整数问题,某些情况下可能会提出不可行的问题。

该模型被公式化为抽象Pyomo模型,而我正在使用的求解器是gurobi 8.1.0

我希望看到不可还原的不一致子系统(IIS),因此可以解决我的无误性问题。

在下面的链接中,我尝试使用的功能是model.computeIIS()。

http://www.gurobi.com/documentation/8.1/refman/py_model_computeiis.html

我尝试从上面的时间链接复制粘贴,并实现了下面的代码(http://www.gurobi.com/documentation/8.1/examples.pdf,workforce1.py第401页)

model.computeIIS()
     if model.IISMinimal :
         print("IIS is minimal \n")
     else :
         print ("IIS is not minimal \n")
         print ("\ n The following constraint (s) cannot be satisfied:")

for c in model.getConstrs():
     if c.IISConstr:
     print ("%s" % c.constrName)


我希望这会打印IIS。不幸的是,它只是给我带来了属性错误:“ AbstractModel”对象没有属性“ computeISS”

最佳答案

您的模型似乎是Pyomo模型,但是示例使用的是Gurobi Model类。 Pyomo类没有方法computeIIS

GurobiDirect类接受一些Gurobi参数,包括ResultFile。以下将使Gurobi将IIS写入文件:

opt = SolverFactory('gurobi')
opt.options['ResultFile'] = "test.ilp"


文件名的后缀确定结果文件的类型。 .ilp用于IIS。 See here.

关于python - AttributeError:“AbstractModel”对象没有属性“computeIIS”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55511569/

10-12 15:55