Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Gekko (optimization software)

From Wikipedia, the free encyclopedia
Python package
GEKKO
DevelopersLogan Beal andJohn D. Hedengren
Stable release
1.3.1 / December 30, 2025; 48 days ago (2025-12-30)
Operating systemCross-Platform
TypeTechnical computing
LicenseMIT
Websitegekko.readthedocs.io/en/latest/
Repository

TheGEKKO Python package[1] solves large-scale mixed-integer and differential algebraic equations with nonlinear programming solvers (IPOPT,APOPT, BPOPT,SNOPT,MINOS). Modes of operation include machine learning, data reconciliation, real-time optimization, dynamic simulation, and nonlinearmodel predictive control. In addition, the package solvesLinear programming (LP),Quadratic programming (QP),Quadratically constrained quadratic program (QCQP),Nonlinear programming (NLP),Mixed integer programming (MIP), andMixed integer linear programming (MILP). GEKKO is available in Python and installed with pip from PyPI of the Python Software Foundation.

pipinstallgekko

GEKKO works on all platforms and with Python 2.7 and 3+. By default, the problem is sent to a public server where the solution is computed and returned to Python. There are Windows, MacOS, Linux, and ARM (Raspberry Pi) processor options to solve without an Internet connection. GEKKO is an extension of theAPMonitor Optimization Suite but has integrated the modeling and solution visualization directly within Python. A mathematical model is expressed in terms of variables and equations such as the Hock & Schittkowski Benchmark Problem #71[2] used to test the performance ofnonlinear programming solvers. This particular optimization problem has an objective functionminxRx1x4(x1+x2+x3)+x3{\displaystyle \min _{x\in \mathbb {R} }\;x_{1}x_{4}(x_{1}+x_{2}+x_{3})+x_{3}} and subject to the inequality constraintx1x2x3x425{\displaystyle x_{1}x_{2}x_{3}x_{4}\geq 25} and equality constraintx12+x22+x32+x42=40{\displaystyle {x_{1}}^{2}+{x_{2}}^{2}+{x_{3}}^{2}+{x_{4}}^{2}=40}. The four variables must be between a lower bound of 1 and an upper bound of 5. The initial guess values arex1=1,x2=5,x3=5,x4=1{\displaystyle x_{1}=1,x_{2}=5,x_{3}=5,x_{4}=1}. This optimization problem is solved with GEKKO as shown below.

fromgekkoimportGEKKOm=GEKKO()# Initialize gekko# Initialize variablesx1=m.Var(value=1,lb=1,ub=5)x2=m.Var(value=5,lb=1,ub=5)x3=m.Var(value=5,lb=1,ub=5)x4=m.Var(value=1,lb=1,ub=5)# Equationsm.Equation(x1*x2*x3*x4>=25)m.Equation(x1**2+x2**2+x3**2+x4**2==40)m.Minimize(x1*x4*(x1+x2+x3)+x3)m.solve(disp=False)# Solveprint("x1: "+str(x1.value))print("x2: "+str(x2.value))print("x3: "+str(x3.value))print("x4: "+str(x4.value))print("Objective: "+str(m.options.objfcnval))

Applications of GEKKO

[edit]

Applications includecogeneration (power and heat),[3]drilling automation,[4] severe slugging control,[5] solar thermal energy production,[6]solid oxide fuel cells,[7][8] flow assurance,[9]Enhanced oil recovery,[10]Essential oil extraction,[11] andUnmanned Aerial Vehicles (UAVs).[12] There are many other references to APMonitor and GEKKO as a sample of the types of applications that can be solved. GEKKO is developed from the National Science Foundation (NSF) research grant #1547110[13][14][15][16] and is detailed in a Special Issue collection on combined scheduling and control.[17] Other notable mentions of GEKKO are the listing in the Decision Tree for Optimization Software,[18] added support forAPOPT and BPOPT solvers,[19] projects reports of the online Dynamic Optimization course from international participants.[20] GEKKO is a topic in online forums where users are solving optimization and optimal control problems.[21][22] GEKKO is used for advanced control in the Temperature Control Lab (TCLab)[23] for process control education at 20 universities.[24][25][26][27]

Machine learning

[edit]
Artificial Neural Network

One application ofmachine learning is to perform regression from training data to build a correlation. In this example,deep learning generates a model from training data that is generated with the function1cos(x){\displaystyle 1-\cos(x)}. Anartificial neural network with three layers is used for this example. The first layer is linear, the second layer has a hyperbolic tangent activation function, and the third layer is linear. The program produces parameter weights that minimize the sum of squared errors between the measured data points and the neural network predictions at those points. GEKKO uses gradient-based optimizers to determine the optimal weight values instead of standard methods such asbackpropagation. The gradients are determined by automatic differentiation, similar to other popular packages. The problem is solved as a constrained optimization problem and is converged when the solver satisfiesKarush–Kuhn–Tucker conditions. Using a gradient-based optimizer allows additional constraints that may be imposed with domain knowledge of the data or system.

fromgekkoimportbrainimportnumpyasnpb=brain.Brain()b.input_layer(1)b.layer(linear=3)b.layer(tanh=3)b.layer(linear=3)b.output_layer(1)x=np.linspace(-np.pi,3*np.pi,20)y=1-np.cos(x)b.learn(x,y)

The neural network model is tested across the range of training data as well as for extrapolation to demonstrate poor predictions outside of the training data. Predictions outside the training data set are improved with hybrid machine learning that uses fundamental principles (if available) to impose a structure that is valid over a wider range of conditions. In the example above, the hyperbolic tangent activation function (hidden layer 2) could be replaced with a sine or cosine function to improve extrapolation. The final part of the script displays the neural network model, the original function, and the sampled data points used for fitting.

importmatplotlib.pyplotaspltxp=np.linspace(-2*np.pi,4*np.pi,100)yp=b.think(xp)plt.figure()plt.plot(x,y,"bo")plt.plot(xp,yp[0],"r-")plt.show()

Optimal control

[edit]
Optimal control problem benchmark (Luus) with an integral objective, inequality, and differential constraint.

Optimal control is the use ofmathematical optimization to obtain a policy that is constrained by differential(dx1dt=u){\displaystyle \left({\frac {d\,x_{1}}{d\,t}}=u\right)}, equality(x1(0)=1){\displaystyle \left(x_{1}(0)=1\right)}, or inequality(1u(t)1){\displaystyle \left(-1\leq u(t)\leq 1\right)} equations and minimizes an objective/reward function(minu1202x12(t)dt){\displaystyle \left(\min _{u}{\frac {1}{2}}\int _{0}^{2}x_{1}^{2}(t)\,dt\right)}. The basic optimal control is solved with GEKKO by integrating the objective and transcribing the differential equation into algebraic form with orthogonal collocation on finite elements.

fromgekkoimportGEKKOimportnumpyasnpimportmatplotlib.pyplotaspltm=GEKKO()# initialize gekkont=101m.time=np.linspace(0,2,nt)# Variablesx1=m.Var(value=1)x2=m.Var(value=0)u=m.Var(value=0,lb=-1,ub=1)p=np.zeros(nt)# mark final time pointp[-1]=1.0final=m.Param(value=p)# Equationsm.Equation(x1.dt()==u)m.Equation(x2.dt()==0.5*x1**2)m.Minimize(x2*final)m.options.IMODE=6# optimal control modem.solve()# solveplt.figure(1)# plot resultsplt.plot(m.time,x1.value,"k-",label=r"$x_1$")plt.plot(m.time,x2.value,"b-",label=r"$x_2$")plt.plot(m.time,u.value,"r--",label=r"$u$")plt.legend(loc="best")plt.xlabel("Time")plt.ylabel("Value")plt.show()

See also

[edit]

References

[edit]
  1. ^Beal, L. (2018)."GEKKO Optimization Suite".Processes.6 (8): 106.doi:10.3390/pr6080106.
  2. ^W. Hock and K. Schittkowski, Test Examples for Nonlinear Programming Codes, Lecture Notes in Economics and Mathematical Systems, Vol. 187, Springer 1981.
  3. ^Mojica, J. (2017)."Optimal combined long-term facility design and short-term operational strategy for CHP capacity investments".Energy.118:97–115.doi:10.1016/j.energy.2016.12.009.
  4. ^Eaton, A. (2017). "Real time model identification using multi-fidelity models in managed pressure drilling".Computers & Chemical Engineering.97:76–84.doi:10.1016/j.compchemeng.2016.11.008.
  5. ^Eaton, A. (2015)."Post-installed fiber optic pressure sensors on subsea production risers for severe slugging control"(PDF).OMAE 2015 Proceedings, St. John's, Canada.
  6. ^Powell, K. (2014). "Dynamic Optimization of a Hybrid Solar Thermal and Fossil Fuel System".Solar Energy.108:210–218.Bibcode:2014SoEn..108..210P.doi:10.1016/j.solener.2014.07.004.
  7. ^Spivey, B. (2010)."Dynamic Modeling of Reliability Constraints in Solid Oxide Fuel Cells and Implications for Advanced Control"(PDF).AIChE Annual Meeting Proceedings, Salt Lake City, Utah.
  8. ^Spivey, B. (2012). "Dynamic modeling, simulation, and MIMO predictive control of a tubular solid oxide fuel cell".Journal of Process Control.22 (8):1502–1520.doi:10.1016/j.jprocont.2012.01.015.
  9. ^Hedengren, J. (2018).New flow assurance system with high speed subsea fiber optic monitoring of pressure and temperature. ASME 37th International Conference on Ocean, Offshore and Arctic Engineering, OMAE2018/78079, Madrid, Spain. pp. V005T04A034.doi:10.1115/OMAE2018-78079.ISBN 978-0-7918-5124-1.
  10. ^Udy, J. (2017)."Reduced order modeling for reservoir injection optimization and forecasting"(PDF).FOCAPO / CPC 2017, Tucson, AZ.
  11. ^Valderrama, F. (2018). "An optimal control approach to steam distillation of essential oils from aromatic plants".Computers & Chemical Engineering.117:25–31.doi:10.1016/j.compchemeng.2018.05.009.
  12. ^Sun, L. (2013)."Optimal Trajectory Generation using Model Predictive Control for Aerially Towed Cable Systems"(PDF).Journal of Guidance, Control, and Dynamics.37 (2):525–539.Bibcode:2014JGCD...37..525S.doi:10.2514/1.60820.
  13. ^Beal, L. (2018)."Integrated scheduling and control in discrete-time with dynamic parameters and constraints".Computers & Chemical Engineering.115:361–376.doi:10.1016/j.compchemeng.2018.04.010.
  14. ^Beal, L. (2017)."Combined model predictive control and scheduling with dominant time constant compensation".Computers & Chemical Engineering.104:271–282.doi:10.1016/j.compchemeng.2017.04.024.
  15. ^Beal, L. (2017)."Economic benefit from progressive integration of scheduling and control for continuous chemical processes"(PDF).Processes.5 (4): 84.doi:10.3390/pr5040084.
  16. ^Petersen, D. (2017)."Combined noncyclic scheduling and advanced control for continuous chemical processes"(PDF).Processes.5 (4): 83.doi:10.3390/pr5040083.S2CID 3354604.
  17. ^Hedengren, J. (2018)."Special issue: combined scheduling and control".Processes.6 (3): 24.doi:10.3390/pr6030024.
  18. ^Mittleman, Hans (1 May 2018)."Decision Tree for Optimization Software".Plato. Arizona State University. Retrieved1 May 2018.Object-oriented python library for mixed-integer and differential-algebraic equations
  19. ^"Solver Solutions". Advanced Process Solutions, LLC. Retrieved1 May 2018.GEKKO Python with APOPT or BPOPT Solvers
  20. ^Everton, Colling."Dynamic Optimization Projects".Petrobras. Petrobras, Statoil, Facebook. Retrieved1 May 2018.Example Presentation: Everton Colling of Petrobras shares his experience with GEKKO for modeling and nonlinear control of distillation
  21. ^"APMonitor Google Group: GEKKO".Google. Retrieved1 May 2018.
  22. ^"Computational Science: Is there a high quality nonlinear programming solver for Python?".SciComp. Retrieved1 May 2018.
  23. ^Kantor, Jeff (2 May 2018)."TCLab Documentation"(PDF).ReadTheDocs. University of Notre Dame. Retrieved2 May 2018.pip install tclab
  24. ^Kantor, Jeff (2 May 2018)."Chemical Process Control".GitHub. University of Notre Dame. Retrieved2 May 2018.Using the Temperature Control Lab (TCLab)
  25. ^Hedengren, John (2 May 2018)."Advanced Temperature Control Lab".Dynamic Optimization Course. Brigham Young University. Retrieved2 May 2018.Hands-on applications of advanced temperature control
  26. ^Sandrock, Carl (2 May 2018)."Jupyter notebooks for Dynamics and Control".GitHub. University of Pretoria, South Africa. Retrieved2 May 2018.CPN321 (Process Dynamics), and CPB421 (Process Control) at the Chemical Engineering department of the University of Pretoria
  27. ^"CACHE News (Winter 2018): Incorporating Dynamic Simulation into Chemical Engineering Curricula"(PDF).CACHE: Computer Aids for Chemical Engineering. University of Texas at Austin. 2 May 2018. Archived fromthe original(PDF) on 3 May 2018. Retrieved2 May 2018.Short Course at the ASEE 2017 Summer School hosted at SCSU by Hedengren (BYU), Grover (Georgia Tech), and Badgwell (ExxonMobil)

External links

[edit]
Data formats
Modeling tools
Solvers
LP,MILP
QP, MIQP
QCP, MIQCP
SOCP, MISOCP
SDP, MISDP
NLP, MINLP
GO
CP
Retrieved from "https://en.wikipedia.org/w/index.php?title=Gekko_(optimization_software)&oldid=1330375933"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp