Gekko (نرم افزار بهینه سازی)

بسته پایتون GEKKO [۱] معادلات جبری اعداد صحیح مختلط و دیفرانسیل در مقیاس بزرگ را با حل کننده های برنامه نویسی غیرخطی ( IPOPT ، APOPT ، BPOPT، SNOPT ، MINOS ) حل می کند. حالت‌های عملیات شامل یادگیری ماشین، تطبیق داده‌ها، بهینه‌سازی بلادرنگ، شبیه‌سازی پویا و کنترل پیش‌بینی مدل غیرخطی است. علاوه بر این، این بسته برنامه‌نویسی خطی (LP)، برنامه‌ریزی درجه دوم (QP)، برنامه‌ریزی درجه دوم محدود (QCQP)، برنامه‌نویسی غیرخطی (NLP)، برنامه‌نویسی عدد صحیح مختلط (MIP) و برنامه‌ریزی خطی عدد صحیح مختلط (MILP) را حل می‌کند. GEKKO در پایتون موجود است و با pip از PyPI بنیاد نرم‌افزار پایتون نصب می‌شود.

pip install gekko

GEKKO روی همه پلتفرم ها و با پایتون 2.7 و 3+ کار می کند. به طور پیش فرض، مشکل به یک سرور عمومی ارسال می شود که در آنجا راه حل محاسبه می شود و به پایتون باز می گردد. گزینه های پردازنده Windows، MacOS، Linux و ARM (Raspberry Pi) بدون اتصال به اینترنت قابل حل هستند. GEKKO یک توسعه از مجموعه بهینه سازی APMonitor است اما مدل سازی و تجسم راه حل را مستقیماً در پایتون ادغام کرده است. یک مدل ریاضی بر حسب متغیرها و معادلات بیان می‌شود، مانند مسئله معیار Hock & Schittkowski #71 [۲] برای آزمایش عملکرد حل‌کننده‌های برنامه‌ریزی غیرخطی استفاده می‌شود. این مسئله بهینه سازی خاص یک تابع هدف دارد و مشروط به محدودیت نابرابری و محدودیت برابری . چهار متغیر باید بین کران پایینی 1 و کران بالایی 5 باشند. مقادیر حدس اولیه هستند . این مشکل بهینه سازی با GEKKO مطابق شکل زیر حل می شود.

کاربرد های gekko ویرایش

کاربردها عبارتند از تولید همزمان (قدرت و گرما) ، [۳] اتوماسیون حفاری ، [۴] کنترل فشار شدید، [۵] تولید انرژی حرارتی خورشیدی، [۶] سلول های سوختی اکسید جامد ، [۷] [۸] تضمین جریان، [۹] بازیافت نفت پیشرفته ، [۱۰] استخراج اسانس ، [۱۱] و وسایل نقلیه هوایی بدون سرنشین (UAVs) . [۱۲] ارجاعات زیادی به APMonitor و GEKKO به عنوان نمونه ای از انواع برنامه های کاربردی قابل حل وجود دارد. GEKKO از کمک مالی تحقیقاتی بنیاد ملی علوم (NSF) به شماره 1547110 [۱۳] [۱۴] [۱۵] [۱۶] توسعه یافته است و در مجموعه شماره ویژه برنامه ریزی و کنترل ترکیبی به تفصیل آمده است. [۱۷] سایر موارد قابل توجه GEKKO فهرستی در درخت تصمیم برای نرم افزار بهینه سازی، [۱۸] پشتیبانی اضافه شده برای حل کننده های APOPT و BPOPT، [۱۹] گزارش پروژه های دوره آنلاین بهینه سازی پویا از شرکت کنندگان بین المللی است. [۲۰] GEKKO موضوعی در انجمن های آنلاین است که در آن کاربران در حال حل مسائل بهینه سازی و کنترل بهینه هستند. [۲۱] [۲۲] GEKKO برای کنترل پیشرفته در آزمایشگاه کنترل دما (TCLab) [۲۳] برای آموزش کنترل فرآیند در 20 دانشگاه استفاده می شود. [۲۴] [۲۵] [۲۶] [۲۷]

from gekko import brain

import numpy as np

()b=brain.Brain

(1)b.input_layer

b.layer(linear=3)

b.layer(tanh=3)

b.layer(linear=3)

b.output_layer(1)

x=np.linespace(-np.pi,3*np.pi,20)

y=2-np.cos(x)

b.learn(x,y)

مدل شبکه عصبی در طیف وسیعی از داده های آموزشی و همچنین برای برون یابی برای نشان دادن پیش بینی های ضعیف خارج از داده های آموزشی آزمایش می شود. پیش‌بینی‌های خارج از مجموعه داده‌های آموزشی با یادگیری ماشین ترکیبی بهبود می‌یابد که از اصول اساسی (در صورت وجود) برای تحمیل ساختاری معتبر در طیف وسیع‌تری از شرایط استفاده می‌کند. در مثال بالا، تابع فعال سازی مماس هذلولی (لایه پنهان 2) می تواند با یک تابع سینوسی یا کسینوس جایگزین شود تا برون یابی بهبود یابد. بخش پایانی اسکریپت مدل شبکه عصبی، عملکرد اصلی و نقاط داده نمونه‌برداری شده برای برازش را نشان می‌دهد.

یادگیری ماشین ویرایش

یکی از کاربردهای یادگیری ماشین ، انجام رگرسیون از داده های آموزشی برای ایجاد یک همبستگی است. در این مثال، یادگیری عمیق یک مدل از داده های آموزشی تولید می کند که با تابع تولید می شود   . برای این مثال از یک شبکه عصبی مصنوعی با سه لایه استفاده شده است. لایه اول خطی، لایه دوم تابع فعال سازی مماس هذلولی و لایه سوم خطی است. این برنامه وزن پارامترهایی را تولید می کند که مجموع مجذور خطاهای بین نقاط داده اندازه گیری شده و پیش بینی های شبکه عصبی در آن نقاط را به حداقل می رساند. GEKKO از بهینه‌سازهای مبتنی بر گرادیان برای تعیین مقادیر وزن بهینه به جای روش‌های استاندارد مانند انتشار پس‌انداز استفاده می‌کند. شیب ها با تمایز خودکار، مشابه سایر بسته های محبوب، تعیین می شوند. این مسئله به عنوان یک مسئله بهینه سازی محدود حل می شود و زمانی همگرا می شود که حل کننده شرایط Karush-Kuhn-Tucker را برآورده کند. استفاده از یک بهینه ساز مبتنی بر گرادیان، محدودیت های اضافی را امکان پذیر می کند که ممکن است با دانش دامنه از داده ها یا سیستم اعمال شود.

کنترل بهینه ویرایش

کنترل بهینه استفاده از بهینه سازی ریاضی برای به دست آوردن یک خط مشی است که توسط دیفرانسیل محدود می شود   ، برابری   ، یا نابرابری   معادله می کند و یک تابع هدف/پاداش را به حداقل می رساند   . کنترل بهینه اولیه با GEKKO با ادغام هدف و رونویسی معادله دیفرانسیل به شکل جبری با هم‌آمیزی متعامد بر روی عناصر محدود حل می‌شود.

منابع ویرایش

  1. Beal, L. (2018). "GEKKO Optimization Suite". Processes. 6: 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. {{cite conference}}: Empty citation (help)
  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. Archived from the original (PDF) on 3 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)