All notable changes to the GEKKO project are documented in this file.
- Energy dispatch optimization benchmark problems with Jupyter notebook
- Tree-based models to the
ML.py
gekko package. - Documentation for the new Tree-based models.
- Updated websocket connection address for GenAI Gekko support
- Solver extension package update with more descriptive error handling
- Fixed Issue #163 that ignored the last solver option when solving locally
v1.2.1 - Version 1.2.1 Stable Release, Date: 2024-07-03
pyomo
extension and interface togekko
- Example Jupyter notebook for Optimization Under Uncertainty with GPR Model
- Replace
match
ingk_solver_extension.py
withif
statements - breaks compatibility with Python versions below 3.10 - Fix
get_objective_values(self)
ingk_solver_extension_*.py
to maintain compatibility with earlier Python versions - Split
gk_solver_extension.py
into 3 files:gk_solver_extension.py
: Holds the code for running the different converter modules, and an abstract baseGKConverter
class that the converters need to implement. This base class reduces repeated code and provides a template if this module were to be extended again in the future.gk_solver_extension_amplpy.py
: Holds theamplpy
converter - changed to fit with the new abstract base converter class.gk_solver_extension_pyomo.py
: Holds thepyomo
converter
- Modified the option
m.options.SOLVER_EXTENSION
:0
/GEKKO
(default): Solver extension off, solve GEKKO as normal1
/AMPL
/AMPLPY
: Solver extension on, solve throughamplpy
- maintains compatibility with previous version2
/PYOMO
: Solver extension on, solve throughpyomo
- Update documentation
- Rewrote a lot of
docs/solver_extension.rst
to include the pyomo converter - Updated
docs/global.rst
-SOLVER_EXTENSION
option in global options
- Rewrote a lot of
- The two converters continue to not require
amplpy
orpyomo
to be installed, unless the solver extension module is used.
v1.1.3 - Version 1.1.3 Stable Release, Date: 2024-06-17
- Improve model initialization (Timer 47) with improved duplicate variable name searching for larger models
- Update local APM executables to v1.0.3 with
remote=False
- Windows apm.exe still 32-bit, includes APOPT, BPOPT, IPOPT solvers
- Linux apm 64-bit, includes APOPT and BPOPT solvers
- MacOS apm_mac 64-bit, includes APOPT and BPOPT solvers
- ARM: apm_arm 32 bit, aarch64 64 bit includes BPOPT solver
- Web service
remote=True
is 64-bit with APOPT, BPOPT, IPOPT solvers
v1.1.1 - Version 1.1.1 Stable Release, Date: 2024-04-11
- Fix Gekko arx bug for MIMO systems
- Fix Gekko GPR bug for multiple features
v1.1.0 - Version 1.1.0 Stable Release, Date: 2024-03-26
- Added
support
library for RAG-based Chatbot Support in Gekko - Added examples that use the
support
module to create an agent to answer questions
- Modified documentation to include information about the
support
module
v1.0.7 - Version 1.0.7 Stable Release, Date: 2024-03-5
- Added LP, QP, NLP, MILP, and MINLP examples.
- Added
apm_aarch64
binary for local solve on ARM64 / AARCH64 devices, only BPOPT solver for ARM 32 and 64-bit - Added
pyampl
interface to use ampl / pyomo solvers
- Changes to
gk_write_files.py
with.join()
instead of+
to create data file and solver options filesipopt.opt
andapopt.opt
. - Print message when using
remote=True
for greater transparency m.options.SOLVER
can now be specified with the solver name such asAPOPT
,BPOPT
,IPOPT
, etc- Updated documentation for gekko
m.erf()
andm.erfc()
functions. - Added
apm_aarch64
executable tosetup.py
to be included inbin
folder - Update
setup.py
for Python 3.12 and 3.13 compatibility
v1.0.6 - Version 1.0.6 Stable Release, Date: 2023-01-24
- Removed
np.warnings.filterwarnings()
function call ingekko.py
for thesysid()
method. This was removed innumpy-1.24.1
. - Fixed bug on
m.options.max_time
to use subprocess Timeout error exception
v1.0.5 - Version 1.0.5 Stable Release, Date: 2022-07-22
- New Gekko import functions for GPFlow models from
gpflow
- New Gekko import functions for Gaussian Processes models from
scikit-learn
- New Gekko import functions for SVR models from
scikit-learn
- New Gekko import functions for Neural Network Regressor models from
scikit-learn
- Documentation updated for new
ML.py
capabilities with example problems.
v1.0.4 - Version 1.0.4 Stable Release, Date: 2022-05-12
- Example problem
test_count_bins.py
on counting discrete options in a list. - Example problem
test_arc_hyperbolics.py
forasinh()
,acosh()
, andatanh()
.
- Bug fix for
asinh()
,acosh()
, andatanh()
. - Placeholder file (copy of
apm
for Linux) forapm_arm
until new version is available. - Prepare
meta.yaml
andLICENSE
forconda-forge
release with packagegrayskull
.
v1.0.2 - Version 1.0.2 Stable Release, Date: 2021-11-16
- Added
m.Minimize()
andm.Maximize()
documentation for improved readability of objective functions
- Improve documentation of variable declarations
- Fixed bug with CSV file write in gk_write_files.py when only one column (time)
v1.0.1 - Version 1.0.1 Stable Release, Date: 2021-08-07
- New sigmoid function
m.sigmoid()
in Gekko - New sigmoid function
sigmd(x)
in APMonitor with v1.0.1 release
- Updated APM local and remote server to APM v1.0.1 for Windows, Linux, MacOS
- Big fix to
gk_write_file.py
for long variable or parameter names that were truncated at 25 characters. There is no limit to variable names now. - Change documentation default for WSP, WSPLO, WSPHI to 20.0 (from 1.0) to be consistent with APM
v1.0.0 - Version 1.0.0 Stable Release, Date: 2021-05-16
- Updated local solve options for MacOS and Linux that do not include dependencies
- APMonitor v1.0.0 for remote and local solves
- Fixed bug with
axb
function executable. Theb
dense to sparse function used a dimension forA
rows instead ofA
columns. - Updated with version 1.0.0 of
apm.exe
executable for Windows - Fixed bug with
sum
function to detect when symbolic string length is over the limit of 15000 forapm
. Usesum
objective instead. - Bug fixes and GitHub issue resolutions for release 1.0.0 of
apm
executable andgekko
. - Removed
flask
dependency on install. Only needed whenGUI=True
. - Fixed bug with
remote=True
withaxb
function not sending the summary file.
v0.2.8 - Version 0.2.8 Stable Release, Date: 2020-08-11
- Added documentation for
fix_initial
,free_initial
,fix_final
, andfree_final
.
- Updated documentation for
Connection
- Fixed bug with
lb
andub
not used by FVs and MVs during declaration
v0.2.7 - Version 0.2.7 Stable Release, Date: 2020-08-05
- New functions
fix_initial
,free_initial
,fix_final
to help with specifying degrees of freedom for common changes to the default fixed / free specifications. - Additional documentation for modes of operation
- Matrix (2D) optimization AX=B example problem
test_matrix.py
- Example 2nd order differential equation
- Example 3rd order differential equation with parameter estimation
- A few other examples for testing
- Lower and Upper bounds for
Param
- Fixed axb function with dense Ax=b (from incorrect A^T x=b)
- Upgrade
Param
so that newvalue
updates the values in the CSV file.
v0.2.6 - Version 0.2.6 Stable Release, Date: 2019-11-12
- New integral function
m.integral
and documentation
- Local MacOS solve with linked static gcc-gfortran lib
- Changed
shell=False
for IPython notebooks in Windows with local subprocess call
v0.2.5 - Version 0.2.5 Stable Release, Date: 2019-11-11
- Optional E matrix for state_space function: E dx/dt = Ax+Bu
- Re-implemented changes to if2 and sos1 that were removed from v0.2.4
- Equation accepts single equation, list, or tuple
- Improved error message when remote server unreachable
- Fix state_space function for input D when not None
v0.2.4 - Version 0.2.4 Stable Release, Date: 2019-11-7
- New Special Ordered Set (SOS1) model
- New example problem that uses the SOS1 model
- New MATLAB interface to Gekko
- New bspline options (smoothing factor, order in x and y directions)
- New if2 function that uses an MPCC switch (m.sign2)
- New Maximize and Minimize functions (Obj minimizes)
- Bug fix in bspline that prevented x and y of different sizes
- Removed Windows command window pop-up with local mode
v0.2.3 - Version 0.2.3 Stable Release, Date: 2019-08-15
- Improved m.fix function to allow specification changes beyond just dynamic mode
- Added m.free function to change a fixed value into a calculated value for both steady state and dynamic modes
- Additional example of the Chemical library use for a simple blending problem
- Improved variable initialization to allow variable names, GK_Value, and number types
- m.Connections to support fix / free (calculated) specifications
- Updated gekko to support new functions in APM 0.9.1
- Default phase in the Chemical library changed from vapor to liquid
- Use app.communicate instead of readline to avoid filling up child buffer and creating lock for remote=False solve
v0.2.2 - Version 0.2.2 Stable Release, Date: 2019-07-17
- Additional example problems, test suite
- New Chemical module - see test_thermo.py and test_chemical.py in examples
- m.remove() function to delete application directory
- m.delay() as a times series delay model
- Added MATLAB examples for calling Gekko functions
- Documentation pages for Chemical module and Machine Learning module (rst files)
- Improved documentation for model building and logical conditions
- Modified Brain (Machine Learning) capabilities - see test_brain.py in examples
v0.2.1 - Version 0.2.1 Stable Release, Date: 2019-05-10
- APM MacOS local executable v0.8.9
v0.2.0 - Version 0.2.0 Stable Release, Date: 2019-05-04
- Additional example problems, test suite
- APM Windows local executable v0.8.9
- APM ARM local executable v0.8.9
- APM Linux local executable v0.8.9
0.2rc6 - Version 0.2 Release Candidate 6, Date: 2019-04-15
- New axb object for Ax=b, Ax<b, and Ax>b linear equations
- New qobj object for quadratic objectives 0.5 x^T A x + b^T x
- New if3 conditional statement that translates conditional statemment to Mixed Integer problem
- New APM 0.8.9 local executable with axb and qobj improvements
0.2rc5 - Version 0.2 Release Candidate 5, Date: 2019-04-03
- New thermo objects
- New vsum for vertical (data direction) summation for IMODE=2, IMODE=4+
- New sum for more efficient summation in GEKKO with APMonitor object
- New APM 0.8.8 local executable for IMODE 7 bug fix
- New PWL (Piecewise linear) object
- Improved sysid (System Identification) for fast identification when not constrained
- Write values from JSON for Parameters on solver exit. It was previously ignoring Param values. This is needed for Thermo objects that are constants.
- Bug fix for y=m.Var(x.value) in gk_operators.py
- None
0.1 - Version 0.1 Stable Release, Date: 2019-03-01
0.1rc7 - Version 0.1 Release Candidate 7, Date: 2019-02-01
- System identification and ARX model support as new objects
0.1rc4 - Version 0.1 Release Candidate 4, Date: 2019-02-12
- Additional APMonitor object support
- Support for ARM processors
0.1b2 - Version 0.1 Beta 2, Date: 2018-11-13
- Additional GUI support
- Remote option with GEKKO initialization, not solve command
0.1a2 - Version 0.1 Alpha 2, Date: 2018-03-28
- Initial GUI support