本文へスキップ

GEKKO

BYU PRISM Lab

GEKKOは、微分代数系向けのPythonモデリング・最適化ツールキットで、プロセスシミュレーション、パラメータ推定、混合整数最適化、非線形予測制御をサポートします。

掲載情報の更新 ·

概要

GEKKOは、方程式ベースおよびデータ駆動型のモデリングに用いるAPMonitor最適化スイートへのPythonインターフェースを提供します。ドキュメントで扱われている主な対象は、時系列および微分代数方程式系であり、シミュレーション、推定、プロセス最適化への応用が含まれます。GEKKOは事前学習済み予測モデルではなく、モデリングツールキットです。ユーザーは自身の問題に合わせて数学的関係と目的を定義します。

モデルは、定数、パラメータ、変数、中間式、方程式、目的関数から構成されます。シンボリックモデルは1つのデータ点または時点を表し、選択した解法モードによって、複数の観測値または時間範囲に拡張されます。APMonitorバックエンドはモデルをコンパイルし、その疎構造を解析して、最適化ソルバーに微分情報を提供します。微分代数系では、直交コロケーションにより動的問題を代数方程式に変換します。解の結果はresults.csvに書き込まれ、GEKKOのPython変数に読み込まれます。

ドキュメントに記載されたワークフローには、定常状態シミュレーション、パラメータ更新、リアルタイム最適化、移動ホライズン推定、非線形制御が含まれます。動的シミュレーション、推定、最適化では、同時法または逐次法を使用できます。GEKKOは線形、二次、非線形、混合整数計画法もサポートし、記載された問題クラスにおいて、離散的な意思決定と連続ダイナミクスを組み合わせることができます。

実行には、デフォルトのリモートサーバーを使用する方法と、remote=FalseオプションでローカルCPUを使用する方法があります。READMEには複数のプラットフォーム向け実行ファイルが同梱されていると記載されていますが、これらの抜粋からは、互換性がテスト済みであることも、性能を比較した結果も確認できません。モデルが収束しない場合があります。APMonitorは、初期化や方程式の不整合を調査するための不可解レポートと診断設定を提供します。

主な機能

  • 定数、パラメータ、変数、中間式、方程式、および最大化または最小化の目的関数を用いたシンボリックモデルの構築。
  • 線形、二次、非線形、混合整数最適化に加え、微分代数方程式および相補性制約問題をサポート。
  • シミュレーション、パラメータ推定、リアルタイム最適化、非線形予測制御に対応する定常状態モードと動的モード。
  • 動的シミュレーション、推定、最適化のための同時法および逐次法。
  • バックエンドでのモデルコンパイル、自動微分による疎な微分情報の生成、および微分代数系向けの直交コロケーション。
  • リモートまたはローカルで実行でき、結果はPython変数に返され、求解に失敗した場合は不可解レポートを利用可能。

用途

  • 評価案:微分方程式と代数方程式を含むプロセスモデルを定式化し、シミュレーション軌跡を代表的なプロセス測定値と比較する。
  • 評価案:測定時系列とユーザー定義モデルを使って、不確かなプロセスパラメータを適合させるか、移動ホライズン推定を評価する。
  • 評価案:導入を検討する前に、プロセス制約と明示的な運転目的を設定して、非線形予測制御のプロトタイプを作成する。
  • 評価案:混合整数最適化問題で、離散的な運転選択肢と連続的なプロセス変数を表現する。

使い方

  1. 公式ドキュメントとモデリング例を確認します。想定する問題に合ったシミュレーション、推定、最適化のワークフローを選びます。
  2. 提供されているpipインストール手順についてはリポジトリREADMEを参照し、パッケージ情報についてはPyPI掲載ページを確認します。パッケージ分類子を、互換性がテスト済みである証拠として扱わないでください。
  3. 定数、パラメータ、変数、方程式、目的関数を定義します。動的な問題では、ドキュメントに従って該当する時間範囲と観測値を準備し、測定入力と推定対象の量を区別します。
  4. 適切な解法モードと実行場所を選択します。ドキュメント上のデフォルトはリモート求解で、remote=Falseはローカル実行を選択します。入力データがリモート処理に適しているかを検討してください。
  5. 代表的な例を評価し、Pythonに返された値を確認して、想定される挙動と比較します。求解に失敗した場合はinfeasibilities.txtを調べ、モデルを拡張する前に、ドキュメントに記載された診断オプションと初期化オプションを確認します。

関連リソース

BayBE

オープンソース

BayBE は、定義済みの探索空間、目的、測定結果に基づいてパラメーター設定を推奨する、ベイズ実験計画用の Python ツールボックスです。化学分野を考慮したワークフローや多目的ワークフローにも対応します。

オープンソースPython

ラボ自動化 · プロセス最適化

BoFire

オープンソース

BoFire は、混合変数、制約、分子表現、反復的な候補選択に対応する、実験計画とベイズ最適化のための Python フレームワークです。

オープンソースPython

ラボ自動化 · プロセス最適化

Cantera Skill (K-Dense) は、均相着火計算の手順と Python ヘルパーを提供し、機構の出典記録、保存則の診断、数値的な細分化チェックを含みます。

オープンソースPython

計算化学 · プロセス最適化

do-mpc

オープンソース

do-mpc は、非線形およびロバストなモデル予測制御、移動ホライズン推定、シミュレーションのための Python ツールボックスであり、微分代数モデルと不確実性をサポートします。

オープンソースPython

プロセス制御 · デジタルツイン

Gryffin

オープンソース

Gryffin は、カテゴリ型および連続値とカテゴリ値の混合実験設計空間を対象とする Python ベイズ最適化フレームワークで、バッチ推奨と物理化学記述子に対応しています。

オープンソースPython

ラボ自動化 · プロセス最適化

IDAES

オープンソース

IDAES は、シミュレーションに基づく先進エネルギーシステムの設計、解析、最適化を目的とする Python プロセスシステム工学ツールキットです。ソルバー拡張機能を備え、サンプルは別途配布されています。

オープンソースPython

プロセス最適化 · 化学製造

関連ガイド

ワークフロー

化学工学におけるAIワークフローの評価

プロセスモデリング、反応最適化、制御を切り分けて評価を計画します。実運用を検討する前に、入力、運転限界、時間を考慮した検証方法、承認ゲートを定義します。

スキル

化学AI Skillsとは?研究エージェントの手順モジュールを理解する

化学AI Skillsを再利用可能な手順モジュールとして理解します。`SKILL.md`に何が含まれるか、ホストが指示をどう読み込むか、SkillsがMCPやエージェントとどう異なるか、そして指針を科学的検証と混同せずに選択、組み合わせ、評価する方法を説明します。