Как получить доступ к целевой функции в pyomo?

голоса
0

Я новичок в pyomo. И я пытаюсь вывести объективное значение из моей pyomo модели. Я сделал доступ к значениям переменных, но я не могу получить доступ к целевой функции. Мои коды:

   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

Любая помощь могла бы быть полезна!!

Задан 19/03/2020 в 21:55
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more