簡體   English   中英

如何知道 GEKKO 花了多長時間解決我的 model?

[英]How to know how long GEKKO took to solve my model?

我怎樣才能從 GEKKO 獲得 output 解決我的 model 需要多長時間? 我知道基於Python 中經過的測量時間,我可以讓我的代碼打印運行我的代碼所花費的總時間,但我不知道如何隔離求解器時間。

from gekko import GEKKO
import time
start = time.time()
m = GEKKO(remote=False)
x = m.Var(value=0)
y = m.Var(value=1)
m.Equations([x + 2*y==0, x**2+y**2==1])
s1 = time.time()
m.solve(disp=True)
e1 = time.time()
print([x.value[0],y.value[0]])
end = time.time()
print('Total Elapsed: ' + str(end-start))
print('Solver Time 1: ' + str(e1-s1))

求解器時間 1 列為0.18468秒,但這與 IPOPT 報告的0.0156秒時間不同。 如何以編程方式獲取求解器報告的時間?

EXIT: Optimal Solution Found.

 The solution was found.

 The final value of the objective function is  0.

 ---------------------------------------------------
 Solver         :  IPOPT (v3.12)
 Solution time  :  0.0156 sec

您可以使用m.options.SOLVETIME查看求解器報告的時間,例如:

print('Solver Time 2: ', m.options.SOLVETIME)

Solver Time 1包括設置和解決方案傳輸。 您可以通過不使用disp=False顯示求解器 output 並在本地求解而不是使用remote=False在遠程服務器上求解來加快總時間。 本地解決方案通常會減少發送到服務器和檢索解決方案所需的時間,但本地解決方案的求解器選項較少。

暫無
暫無

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

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