Gekko(최적화 소프트웨어)

Gekko (optimization software)
겟코
Gekko logo.png
개발자로건 빌과헤덴그렌
안정된 릴리스
1.0.2 / 2021년 12월 2일, 6개월 전(2021-12-02)
저장소
운영 체제크로스 플랫폼
유형테크니컬 컴퓨팅
면허증.MIT
웹 사이트gekko.readthedocs.io/en/latest/

GEKKO Python[1] 패키지는 비선형 프로그래밍 솔버(IPOPT, APOPT, BPOPT, SNOPT, MINOS)를 사용하여 대규모 혼합 정수 및 미분 대수 방정식을 해결합니다.작동 모드에는 기계 학습, 데이터 조정, 실시간 최적화, 동적 시뮬레이션 및 비선형 모델 예측 제어가 포함됩니다.또한 이 패키지는 선형 프로그래밍(LP), 2차 프로그래밍(QP), 2차 제약 2차 프로그램(QCQP), 비선형 프로그래밍(NLP), 혼합 정수 프로그래밍(MIP) 및 혼합 정수 선형 프로그래밍(MILP)을 해결합니다.GEKKO는 Python에서 사용할 수 있으며 Python Software Foundation의 PyPI와 함께 설치됩니다.

삐삐 설치하다 geko 

GEKKO는 모든 플랫폼에서 Python 2.7 및 3+와 함께 작동합니다.기본적으로는 이 문제는 솔루션이 계산되고 Python으로 반환되는 공용 서버로 전송됩니다.인터넷에 연결하지 않고 해결할 수 있는 Windows, MacOS, Linux 및 ARM(Raspberry Pi) 프로세서 옵션이 있습니다.GEKKO는 APMonitor Optimization Suite의 확장판이지만 모델링 및 솔루션 시각화를 Python에 직접 통합했습니다.수학적 모델은 비선형 프로그래밍 솔버의 성능을 테스트하기 위해 사용되는 Hock & Schittkowski 벤치마크 문제 #71과[2] 같은 변수와 방정식으로 표현된다.이 특정 최적화 문제에는 목적 x x ( + + ) + ( \ _ { \ \ { \ ; x{ } ( x _} + x _ {2 x _ {3} +x _ _ { { 3 } )이 x _ { 3}는 x 입니다. 동등 x + + 2 + 2 {{ + {}네 개의 변수는 하한 1과 상한 5 사이여야 합니다. 추측 값은 , x , 3 , 4 { style 1}= 5,3}= 5}=1 입니다.이 최적화 문제는 아래와 같이 GEKKO로 해결됩니다.

부터 geko 수입품 겟코  m = 겟코()  # geko 초기화 # 변수 초기화 x1 = m.변동(가치=1, lb=1, ub=5) x2 = m.변동(가치=5, lb=1, ub=5) x3 = m.변동(가치=5, lb=1, ub=5) x4 = m.변동(가치=1, lb=1, ub=5) 수식 m.방정식(x1 * x2 * x3 * x4 >= 25) m.방정식(x1 ** 2 + x2 ** 2 + x3 ** 2 + x4 ** 2 == 40) m.옵지(x1 * x4 * (x1 + x2 + x3) + x3)  # 목표 m.풀다(디스패치=거짓의)  # 해결 인쇄물("x1: " + 스트레이트(x1.가치)) 인쇄물("x2: " + 스트레이트(x2.가치)) 인쇄물("x3: " + 스트레이트(x3.가치)) 인쇄물("x4: " + 스트레이트(x4.가치)) 인쇄물("목표: " + 스트레이트(m.옵션들.동작하다)) 

GEKKO의 응용 프로그램

적용 분야에는 열병합 발전(전력 및 열),[3] 시추 자동화,[4] 엄격한 슬러깅 제어,[5] 태양광 열 에너지 생산,[6] 고체 산화물 [7][8]연료 전지, 유량 보장,[9] 향상[10]오일 회수, 에센셜 오일 [11]추출 및 무인 항공기(UAV)[12]가 포함됩니다.해결할 수 있는 어플리케이션의 샘플로서 APMonitor와 GEKKO를 참조할 수 있는 것은 그 밖에도 많이 있습니다.GEKKO는 미국 국립과학재단(NSF) 연구 보조금 #1547110에서 개발되었으며, 결합된 스케줄링과 [17]제어에 대한 특별호 컬렉션에 자세히 설명되어 있다.GEKKO에 대한 다른 주목할 만한 언급은 최적화 [18]소프트웨어의 Decision Tree 목록, APOPT 및 BPOPT [19]솔버에 대한 지원 추가, 해외 [20]참가자들의 온라인 다이내믹 최적화 과정 프로젝트 보고서입니다.GEKKO는 사용자가 최적화와 최적의 제어 [21][22]문제를 해결하는 온라인 포럼의 주제입니다.GEKKO는 20개 [24][25][26][27]대학의 프로세스 제어 교육을 위해 온도 제어 랩(TCLab)[23]에서 고급 제어에 사용됩니다.

기계 학습

인공 뉴럴 네트워크

기계학습의 한 가지 응용은 상관관계를 구축하기 위해 훈련 데이터에서 회귀를 수행하는 것입니다. 예에서 딥러닝은 1- ( ) { 로 생성된 훈련 데이터로부터 모델을 생성하며, 이 예에서는 3개 층의 인공 신경망을 사용한다.첫 번째 층은 선형이고, 두 번째 층은 쌍곡선 탄젠트 활성화 함수를 가지며, 세 번째 층은 선형입니다.프로그램은 측정된 데이터 지점과 해당 지점의 뉴럴 네트워크 예측 사이의 제곱 오차 합계를 최소화하는 매개변수 가중치를 생성합니다.GEKKO는 역전파 등의 표준 방법 대신 최적의 가중치 값을 결정하기 위해 구배 기반 최적화를 사용합니다.구배는 다른 일반적인 패키지와 마찬가지로 자동 구별에 의해 결정됩니다.이 문제는 제한적인 최적화 문제로 해결되며 솔버가 Karush-Kuhn-Tucker 조건을 충족하면 수렴됩니다.그라데이션 기반의 옵티마이저를 사용하면 데이터 또는 시스템에 대한 도메인 지식으로 인해 추가 제약이 발생할 수 있습니다.

부터 geko 수입품  수입품 수치 ~하듯이 np  b = .() b.input_layer(1) b.(선형의=3) b.(황갈색=3) b.(선형의=3) b.output_layer(1) x = np.행간(-np.파이, 3 * np.파이, 20) y = 1 - np.왜냐하면(x) b.배우다.(x, y) 

뉴럴 네트워크 모델은 훈련 데이터 범위뿐만 아니라 훈련 데이터 외부의 좋지 않은 예측을 보여주기 위한 외삽을 위해 테스트된다.교육 데이터 세트 외부의 예측은 기본 원리(이용 가능한 경우)를 사용하여 광범위한 조건에서 유효한 구조를 적용하는 하이브리드 기계 학습을 통해 개선됩니다.위의 예에서는 쌍곡선 탄젠트 활성화 함수(숨김 레이어 2)를 사인 또는 코사인 함수로 대체하여 외삽을 개선할 수 있습니다.스크립트의 마지막 부분에는 뉴럴 네트워크 모델, 원래 기능 및 적합에 사용된 샘플링된 데이터 포인트가 표시됩니다.

수입품 matplotlib.벽면 ~하듯이 plt  xp = np.행간(-2 * np.파이, 4 * np.파이, 100) yp = b.생각해(xp)  plt.수치() plt.줄거리.(x, y, "보") plt.줄거리.(xp, yp[0], "r-") plt.쇼우() 

최적의 관리

적분 목표, 불평등 및 차등 제약이 있는 최적의 제어 문제 벤치마크(Luus).

최적 제어는 수학적 최적화를 사용하여( x d tu )({ ( )({ 또는 부등호displaystyleft)에 의해 제약되는 정책을 얻는 것입니다.u( 1right} 방정식을 사용하여 목표/예측 1 2 ( t )t){ ( \ { u }{1_ {(t ) \ GEKKO로 기본 최적 제어를 풀고, 미분 방정식을 유한 요소에서 직교 연관을 갖는 대수 형식으로 변환하여 해결한다.

부터 geko 수입품 겟코 수입품 수치 ~하듯이 np 수입품 matplotlib.벽면 ~하듯이 plt  m = 겟코()  # geko 초기화 하지 않다 = 101 m.시간을 = np.행간(0, 2, 하지 않다) 변수 수 x1 = m.변동(가치=1) x2 = m.변동(가치=0) u = m.변동(가치=0, lb=-1, ub=1) p = np.제로(하지 않다)  # 최종 시점 표시 p[-1] = 1.0 최종 = m.PARAM.(가치=p) 수식 m.방정식(x1.dt() == u) m.방정식(x2.dt() == 0.5 * x1 ** 2) m.옵지(x2 * 최종)  # 목적함수 m.옵션들.IMODE = 6  # 최적 제어 모드 m.풀다()  # 해결 plt.수치(1)  # 플롯 결과 plt.줄거리.(m.시간을, x1.가치, "k-", 라벨.=r"$x_1$") plt.줄거리.(m.시간을, x2.가치, "b-", 라벨.=r"$x_2$") plt.줄거리.(m.시간을, u.가치, "r...", 라벨.=r"$u$") plt.범례(위치="최고의") plt.xlabel("시간") plt.라벨('가치') plt.쇼우() 

「 」를 참조해 주세요.

레퍼런스

  1. ^ Beal, L. (2018). "GEKKO Optimization Suite". Processes. 6 (8): 106. doi:10.3390/pr6080106.
  2. ^ W. Hock과 K.Schittkowski, 비선형 프로그래밍 코드에 대한 테스트 예제, 경제 및 수학 시스템 강의 노트, 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". Processes. 5 (4): 84. doi:10.3390/pr5040084.
  16. ^ Petersen, D. (2017). "Combined noncyclic scheduling and advanced control for continuous chemical processes". Processes. 5 (4): 83. doi:10.3390/pr5040083.
  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. Retrieved 1 May 2018. Object-oriented python library for mixed-integer and differential-algebraic equations
  19. ^ "Solver Solutions". Advanced Process Solutions, LLC. Retrieved 1 May 2018. GEKKO Python with APOPT or BPOPT Solvers
  20. ^ Everton, Colling. "Dynamic Optimization Projects". Petrobras. Petrobras, Statoil, Facebook. Retrieved 1 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. Retrieved 1 May 2018.
  22. ^ "Computational Science: Is there a high quality nonlinear programming solver for Python?". SciComp. Retrieved 1 May 2018.
  23. ^ Kantor, Jeff (2 May 2018). "TCLab Documentation" (PDF). ReadTheDocs. University of Notre Dame. Retrieved 2 May 2018. pip install tclab
  24. ^ Kantor, Jeff (2 May 2018). "Chemical Process Control". GitHub. University of Notre Dame. Retrieved 2 May 2018. Using the Temperature Control Lab (TCLab)
  25. ^ Hedengren, John (2 May 2018). "Advanced Temperature Control Lab". Dynamic Optimization Course. Brigham Young University. Retrieved 2 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. Retrieved 2 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. Retrieved 2 May 2018. Short Course at the ASEE 2017 Summer School hosted at SCSU by Hedengren (BYU), Grover (Georgia Tech), and Badgwell (ExxonMobil)

외부 링크