簡體   English   中英

每 X 次迭代從 Pyomo 獲取客觀價值?

[英]Get Objective Value from Pyomo every X iterations?

有沒有辦法從pyomo獲得每X次迭代的目標值列表,尤其是在使用cbc時?

運行求解器的通常方式只返回最終的求解器結果。

results = SolverFactory('cbc').solve(model)
results.write()
print(model.obj()) # final objective value

您可以將tee=True選項添加到您的調用中以將solve器日志打印到屏幕上。 大多數求解器將在每次迭代時打印出目標 function 的值。

SolverFactory('cbc').solve(model, tee=True)

Pyomo 不會在中間迭代時自動加載/記錄求解器信息,但您始終可以編寫一個簡單的解析器將求解器日志文件讀入 Python 並提取您想要的值。 可以在此處找到為 Ipopt 執行此操作的示例: https://github.com/Pyomo/pyomo/blob/main/pyomo/contrib/parmest/utils/ipopt_solver_wrapper.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM