GEKKO Optimization Suite

Overview

GEKKO is a Python package for machine learning and optimization of mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP). Modes of operation include parameter regression, data reconciliation, real-time optimization, dynamic simulation, and nonlinear predictive control. GEKKO is an object-oriented Python library to facilitate local execution of APMonitor.

More of the backend details are available at What does GEKKO do? and in the GEKKO Journal Article. Example applications are available to get started with GEKKO.

Installation

A pip package is available (see current download stats):

pip install gekko

Use the —-user option to install if there is a permission error because Python is installed for all users and the account lacks administrative priviledge. The most recent version is 0.2. You can upgrade from the command line with the upgrade flag:

pip install --upgrade gekko

Another method is to install in a Jupyter notebook with !pip install gekko or with Python code, although this is not the preferred method:

try:
    from pip import main as pipmain
except:
    from pip._internal import main as pipmain
pipmain(['install','gekko'])

Project Support

There are GEKKO tutorials and documentation in:

For project specific help, search in the GEKKO topic tags on StackOverflow. If there isn’t a similar solution, please consider posting a question with a Mimimal, Complete, and Verifiable example. If you give the question a GEKKO tag with [gekko], the subscribed community is alerted to your question.

Citing GEKKO

If you use GEKKO in your work, please cite the following paper:

Beal, L.D.R., Hill, D., Martin, R.A., and Hedengren, J. D., GEKKO Optimization Suite, Processes, Volume 6, Number 8, 2018, doi: 10.3390/pr6080106.

The BibTeX entry is:

@article{beal2018gekko,
title={GEKKO Optimization Suite},
author={Beal, Logan and Hill, Daniel and Martin, R and Hedengren, John},
journal={Processes},
volume={6},
number={8},
pages={106},
year={2018},
doi={10.3390/pr6080106},
publisher={Multidisciplinary Digital Publishing Institute}}

Overview of GEKKO