亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在gekko的最大迭代限制后獲取決策變量的值

如何在gekko的最大迭代限制后獲取決策變量的值

哈士奇WWW 2022-10-06 18:51:30
我已經在 python3 中編寫了我的代碼并使用 Gekko 求解器解決了它。在 10000 次迭代后,我得到了最大迭代次數的錯誤并且找不到解決方案。那么我可以在第 10000 次迭代后得到決策變量的值嗎?我的意思是即使達到最大迭代,求解器在最后一次迭代中也必須有一個決策變量的值。所以我想訪問該值。我怎樣才能做到這一點?
查看完整描述

2 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

您可以通過設置debug=0何時調用來訪問解決方案solve:


m.solve(debug=0)

默認是debug=1在出現錯誤(例如達到最大迭代次數)時拋出異常。這是一個通常在 5 次迭代中求解的示例。,它在m.options.max_iter=4達到成功解決方案之前達到最大迭代次數。


from gekko import GEKKO

m = GEKKO(remote=False) # create GEKKO model

x = m.Var(value=0)      # define new variable, initial value=0

y = m.Var(value=1)      # define new variable, initial value=1

m.Equations([x + 2*y==0, x**2+y**2==1]) # equations


m.options.MAX_ITER=4

m.solve(debug=0)        # solve


print([x.value[0],y.value[0]]) # print solution

使用debug=0時,在求解器幾乎完成求解的情況下,返回第 4 次迭代時的錯誤答案。


[-0.89473125735, 0.44736562868]

如果您需要有關初始化問題的建議以幫助您找到成功的解決方案,我推薦這篇文章:

  • Safdarnejad, SM, Hedengren, JD, Lewis, NR, Haseltine, E.,動態系統優化的初始化策略,計算機和化學工程,2015 年,卷。78,第 39-50 頁,DOI:10.1016/j.compchemeng.2015.04.016。



查看完整回答
反對 回復 2022-10-06
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

問題:1) 我正在用 APPT Solver 解決一個 MINLP 問題。我的決策變量被定義為整數。我已經按照您的建議檢索了第 10,000 次迭代的結果。但決策變量值是非整數。那么為什么 APPT Solver 計算的是非整數解呢?

回答:有一個關于什么被歸類為整數的選項。默認容差是整數值的 0.05 范圍內的任何數字。您可以通過以下方式更改: m.solver_options = ['minlp_integer_tol 1']

2)我正在運行“m.options.MAX_ITER = 100”的代碼并使用m = GEKKO(),即使用遠程服務器。但我的代碼仍在運行第 10000 次迭代。

答案:也可以這樣做:m.solver_options = ['minlp_maximum_iterations 100']

非常感謝John Hedengren 教授的及時回復。

壁虎


查看完整回答
反對 回復 2022-10-06
  • 2 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號