如何在 pyomo 中访问 objective 函数值?
How to access objective function value in pyomo?
我正在尝试从我的 pyomo 模型输出 objective 值。我确实访问了变量值,但无法访问 objective 函数值。我的代码是:
instance = model.create_instance(data)
opt = SolverFactory('cplex')
results = opt.solve(instance)
instance.solutions.store_to(results)
results.write()
# instance.display()
# output the solution
var_val = []
for v in instance.component_data_objects(Var):
var_val.append(int(v.value))
obj_val = value(instance.obj)
最后一行给出了错误信息:
obj_val = value(instance.obj)
NameError: name 'value' is not defined
但我可以清楚地看到result.write()
的价值:
Message: None
Objective:
obj:
Value: 104728.80233047833
Variable:
x[0,1]:
Value: 1569
x[1,0]:
Value: 1569
x[1,1]:
Value: 206
x[2,2]:
Value: 230
x[2,3]:
Value: 213
x[3,2]:
Value: 213
您如何导入 Pyomo?如果您使用 from pyomo.environ import *
值函数将被包括在内。如果您要单独导入您正在使用的每个东西,那么您只需要确保导入 value
函数:from pyomo.environ import value
我正在尝试从我的 pyomo 模型输出 objective 值。我确实访问了变量值,但无法访问 objective 函数值。我的代码是:
instance = model.create_instance(data)
opt = SolverFactory('cplex')
results = opt.solve(instance)
instance.solutions.store_to(results)
results.write()
# instance.display()
# output the solution
var_val = []
for v in instance.component_data_objects(Var):
var_val.append(int(v.value))
obj_val = value(instance.obj)
最后一行给出了错误信息:
obj_val = value(instance.obj)
NameError: name 'value' is not defined
但我可以清楚地看到result.write()
的价值:
Message: None
Objective:
obj:
Value: 104728.80233047833
Variable:
x[0,1]:
Value: 1569
x[1,0]:
Value: 1569
x[1,1]:
Value: 206
x[2,2]:
Value: 230
x[2,3]:
Value: 213
x[3,2]:
Value: 213
您如何导入 Pyomo?如果您使用 from pyomo.environ import *
值函数将被包括在内。如果您要单独导入您正在使用的每个东西,那么您只需要确保导入 value
函数:from pyomo.environ import value