问题描述
我有一个带有线性目标函数和一些二次约束的整数规划问题。当我使用Gurobi解决此问题时,Gurobi使用Presolve创建了二次约束整数编程模型。现在,我想知道Presolve模型的目标函数是否也是二次函数。
谢谢。
解决方法
Gurobi将使用模型对象上的方法presolve为您提供预解决的模型。该对象是常规模型对象,您可以查询其attributes。如果存在二次约束,则属性isQCP
为true。属性isQP
表示模型具有二次目标,但没有二次约束。属性NumQConstrs
是二次约束数量的计数。
您还可以使用printStats
方法来打印数字,也可以使用write
方法来将预先求解的模型写入文件。
presolved_model = model.presolve()
print(presolved_model.IsQCP)
print(presolved_model.IsQP)
presolved_model.printStats()
presolved_model.write("presolved.lp")