BYU-PRISM/GEKKO

GEKKO Python for Machine Learning and Dynamic Optimization

解決的問題

GEKKO 旨在解決複雜的數學優化與機器學習問題,特別是涉及時間序列與微分代數方程 (DAE) 系統的問題。它為基於物理或數據驅動的方法定義模型提供了高階抽象,允許使用者求解最佳值、估計參數並模擬動態系統。

工作原理

GEKKO 是 APMonitor 優化套件的 Python 介面。它使用由方程式 (Equations) 或中間變數 (Intermediates) 關聯的常數 (Constants)、參數 (Parameters) 與變數 (Variables) 系統來定義模型。後端 (APMonitor) 會將此模型編譯為位元組碼,並根據稀疏結構進行模型簡化。對於微分方程,它使用有限元上的正交配點法將問題轉換為代數系統。接著,它將必要的梯度、海森矩陣與約束條件傳遞給大規模求解器(如 IPOPT、APOPT 與 SNOPT)以尋找解。

適用對象

此工具適用於需要對物理或數學系統進行非線性預測控制、即時優化與動態模擬的工程師、科學家與數據分析師。

亮點

  • 多模式運作:支援 9 種不同的模式,包括穩態模擬、移動時界估計與非線性控制。
  • 廣泛的求解器支援:結合了線性、二次、非線性與混合整數規劃 (LP, QP, NLP, MILP, MINLP) 的求解器。
  • 靈活的部署:可在本地 CPU 或遠端高效能伺服器上執行。
  • 全面的除錯:包含收斂報告與診斷層級,用於識別不可行方程式或初始化模型。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案