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 或远程高性能服务器上运行。
  • 全面的调试:包括收敛报告和诊断级别,用于识别不可行方程或初始化模型。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目