Pyomo:当使用python脚本时,在解决ILP后有没有快速的方法来显示目标值?

Pyomo:当使用python脚本时,在解决ILP后有没有快速的方法来显示目标值?,python,pyomo,Python,Pyomo,我之前完成了一个ILP,它工作正常 opt = SolverFactory('glpk') model = AbstractModel() model.obj = Objective(...) # variables, constraints ... instance = model.create_instance() results = opt.solve(instance) 因为我想得到每个变量的值,但也要得到目标函数的解,所以我尝试通过类似于我对变量所做的方式来访问目标函数,但我能得

我之前完成了一个ILP,它工作正常

opt = SolverFactory('glpk')
model = AbstractModel()
model.obj = Objective(...)

# variables, constraints ...

instance = model.create_instance()
results = opt.solve(instance)
因为我想得到每个变量的值,但也要得到目标函数的解,所以我尝试通过类似于我对变量所做的方式来访问目标函数,但我能得到的只是一个表达式

我使用以下代码:

print(instance.obj.value)
但只有这样的警告:

WARNING: DEPRECATED: The .value property getter on SimpleObjective is deprecated. Use the .expr property getter instead
当我将代码更改为

print(instance.obj.expr)

我得到的只是一个表情。所以我想知道,除了获得所有需要的变量并自己重新计算之外,还有什么方法可以获得目标函数的值?

必须显式调用表达式属性getter

obj_val = instance.obj.expr()
print(obj_val)

获取目标函数值的最佳方法是使用Pyomo提供的
value
函数

print(value(instance.obj))