2017-08-25 146 views
0

在構建具體的QP模型後調用ipopt求解器時,Pyomo在調用求解器之前運行內部代碼。閱讀有關此主題的其他問題我瞭解到Pyomo正在將模型轉換爲ipopt可以理解的格式。但不幸的是Pyomo在ipopt開始解決模型之前需要很長時間。有沒有辦法縮短實際求解器調用的時間?Pyomo在IPOPT求解器調用之後需要時間?

回答

1

我相信Pyomo的默認行爲是編寫*.nl文件,然後調用IPOPT來處理該文件並生成*.sol文件。 Pyomo然後解析*.sol文件。用於創建*.nl文件的文件IO可能是較大型號的限制因素。解決方法是使用內存中的界面,而不是編寫*.nl文件,我相信這是一項正在進行的工作。

您還有可能在模型構建中提高效率。您可以查看多久才能達到solve()聲明與執行solve()本身。

+0

感謝您回答這個問題。我工作的模型很大。我已經對模型構建部分進行了優化,模型構建需要幾分鐘的時間。達到解決方案聲明後,Pyomo將在後臺運行並花費大部分時間,直到ipopt被調用。內存接口用於編寫.nl文件的含義是什麼? – Mukesh

+0

可以通過CasADi將模型信息傳輸到IPOPT而無需將文件寫入磁盤(慢速部分)。這是核心開發人員所討論的內容。我不確定是否有動靜。如果你想要一個具體的答案,你可能會在Pyomo Github頁面上打開一個問題。 –

+0

謝謝齊。我將在Github上跟進這個話題。 – Mukesh

相關問題