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 또는 원격 고성능 서버에서 실행할 수 있습니다.
  • 포괄적인 디버깅: 실행 불가능한 방정식을 식별하거나 모델을 초기화하기 위한 수렴 보고서 및 진단 수준이 포함되어 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트