Как написать решение для файла .sol при использовании cbc в pyomo? Как я могу получить имя файла .sol после решения модели?

Я использую pyomo на Jupyter Notebook. Я сохранил keepfiles = true в solve. Я могу узнать местоположение файла .sol, в котором он хранится. Как я могу получить имя файла .sol, созданного для текущего экземпляра?

Я использовал следующее:

from pyomo.opt import SolverFactory
SolverFactory("cbc").options['solu']="solution_file.sol"

Но это не работает при создании файла желаемого решения.


person Hussain K    schedule 19.12.2019    source источник


Ответы (1)


Если вы добавите параметр keepfiles=True к вызову solve, временные файлы, которые используются для передачи модели решателю и считывания результатов, не будут удалены, а путь к ним будет напечатан на экране. Поэтому я бы создал и вызвал ваш решатель, используя что-то вроде:

from pyomo.opt import SolverFactory
solver = SolverFactory("cbc")
solver.solve(model, keepfiles=True)
person Bethany Nicholson    schedule 19.12.2019
comment
Это гарантирует, что файл решения сохраняется, но не позволяет вам контролировать имя и расположение файла решения на тот случай, если его потребуется использовать в дальнейшем после решения. - person Hussain K; 20.12.2019