Jump to content

Gekko (программное обеспечение для оптимизации)

ГЕККО
Разработчик(и) Логан Бил и Джон Хеденгрен
Стабильная версия
1.0.7 / 5 марта 2024 г .; 3 месяца назад ( 05.03.2024 )
Репозиторий
Операционная система Кроссплатформенность
Тип Технические вычисления
Лицензия С
Веб-сайт гекко .readthedocs .что /последний /

Пакет GEKKO Python [1] решает крупномасштабные смешанно-целочисленные и дифференциальные алгебраические уравнения с помощью решателей нелинейного программирования ( IPOPT , APOPT , BPOPT, SNOPT , MINOS ). Режимы работы включают машинное обучение, сверку данных, оптимизацию в реальном времени, динамическое моделирование и прогнозирующее управление нелинейной моделью . Кроме того, пакет решает линейное программирование (LP), квадратичное программирование (QP), квадратичную программу с квадратичными ограничениями (QCQP), нелинейное программирование (NLP), смешанное целочисленное программирование (MIP) и смешанное целочисленное линейное программирование (MILP). GEKKO доступен на Python и устанавливается с помощью pip из PyPI Python Software Foundation.

pip install gekko

GEKKO работает на всех платформах и с Python 2.7 и 3+. По умолчанию проблема отправляется на общедоступный сервер, где решение вычисляется и возвращается в Python. Существуют варианты процессоров Windows, MacOS, Linux и ARM (Raspberry Pi), которые можно решить без подключения к Интернету. GEKKO — это расширение пакета оптимизации APMonitor , но оно интегрировало моделирование и визуализацию решений непосредственно в Python. Математическая модель выражается в терминах переменных и уравнений, таких как контрольная задача Хока и Шитковского № 71. [2] используется для проверки производительности решателей нелинейного программирования . Эта конкретная задача оптимизации имеет целевую функцию и при условии ограничения неравенства и ограничение равенства . Четыре переменные должны находиться между нижней границей 1 и верхней границей 5. Начальные предполагаемые значения: . Эта проблема оптимизации решается с помощью GEKKO, как показано ниже.

from gekko import GEKKO

m = GEKKO()  # Initialize gekko
# Initialize variables
x1 = 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)
# Equations
m.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)  # Solve
print("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))

Приложения ГЕККО [ править ]

Приложения включают когенерацию (электроэнергию и тепло) , [3] автоматизация бурения , [4] строгий контроль пробок, [5] производство солнечной тепловой энергии, [6] твердооксидные топливные элементы , [7] [8] обеспечение потока, [9] Повышение нефтеотдачи , [10] эфирного масла , Экстракция [11] и беспилотные летательные аппараты (БПЛА) . [12] Есть много других ссылок на APMonitor и GEKKO как на примеры типов приложений, которые можно решить. GEKKO разработан на основе исследовательского гранта Национального научного фонда (NSF) № 1547110. [13] [14] [15] [16] и подробно описан в сборнике специальных выпусков, посвященном комбинированному планированию и контролю. [17] Другими примечательными упоминаниями о GEKKO являются включение в «Дерево решений для программного обеспечения для оптимизации»: [18] добавлена ​​поддержка решателей APOPT и BPOPT, [19] отчеты проектов онлайн-курса «Динамическая оптимизация» от международных участников. [20] GEKKO — это тема на интернет-форумах, где пользователи решают задачи оптимизации и оптимального управления. [21] [22] GEKKO используется для расширенного контроля в лаборатории контроля температуры (TCLab). [23] для обучения управлению процессами в 20 университетах. [24] [25] [26] [27]

Машинное обучение [ править ]

Искусственная нейронная сеть

Одним из применений машинного обучения является выполнение регрессии на основе обучающих данных для построения корреляции. В этом примере глубокое обучение генерирует модель на основе обучающих данных, которые создаются с помощью функции . слоями . В этом примере используется искусственная нейронная сеть с тремя Первый слой является линейным, второй слой имеет функцию активации гиперболического тангенса, а третий слой является линейным. Программа создает веса параметров, которые минимизируют сумму квадратов ошибок между измеренными точками данных и прогнозами нейронной сети в этих точках. GEKKO использует оптимизаторы на основе градиента для определения оптимальных значений веса вместо стандартных методов, таких как обратное распространение ошибки . Градиенты определяются автоматическим дифференцированием, как и в других популярных пакетах. Задача решается как задача ограниченной оптимизации и сходится, когда решатель удовлетворяет условиям Каруша – Куна – Такера . Использование оптимизатора на основе градиента допускает дополнительные ограничения, которые могут быть наложены на знание предметной области данных или системы.

from gekko import brain
import numpy as np

b = 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)

Модель нейронной сети тестируется на диапазоне обучающих данных, а также на предмет экстраполяции, чтобы продемонстрировать плохие прогнозы за пределами обучающих данных. Прогнозы за пределами набора обучающих данных улучшаются с помощью гибридного машинного обучения, которое использует фундаментальные принципы (если они доступны) для создания структуры, действительной в более широком диапазоне условий. В приведенном выше примере функция активации гиперболического тангенса (скрытый слой 2) может быть заменена функцией синуса или косинуса для улучшения экстраполяции. Последняя часть скрипта отображает модель нейронной сети, исходную функцию и выборочные точки данных, используемые для подгонки.

import matplotlib.pyplot as plt

xp = 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()

Оптимальный контроль [ править ]

Эталон задачи оптимального управления (Луус) с интегральной целью, неравенством и дифференциальным ограничением.

Оптимальное управление — это использование математической оптимизации для получения политики, ограниченной дифференциальными , равенство , или неравенство уравнения и минимизирует функцию цели/награды . Базовое оптимальное управление решается с помощью GEKKO путем интегрирования цели и преобразования дифференциального уравнения в алгебраическую форму с ортогональной коллокацией на конечных элементах.

from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt

m = GEKKO()  # initialize gekko
nt = 101
m.time = np.linspace(0, 2, nt)
# Variables
x1 = 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 point
p[-1] = 1.0
final = m.Param(value=p)
# Equations
m.Equation(x1.dt() == u)
m.Equation(x2.dt() == 0.5 * x1 ** 2)
m.Minimize(x2 * final)
m.options.IMODE = 6  # optimal control mode
m.solve()  # solve
plt.figure(1)  # plot results
plt.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()

См. также [ править ]

Ссылки [ править ]

  1. ^ Бил, Л. (2018). «Пакет оптимизации GEKKO» . Процессы . 6 (8): 106. дои : 10.3390/пр6080106 .
  2. ^ В. Хок и К. Шитковски, Примеры тестирования для кодов нелинейного программирования, Конспекты лекций по экономике и математическим системам, Vol. 187, Спрингер, 1981.
  3. ^ Мохика, Дж. (2017). «Оптимальное сочетание долгосрочного проектирования объектов и краткосрочной эксплуатационной стратегии для инвестиций в мощности ТЭЦ» . Энергия . 118 : 97–115. дои : 10.1016/j.energy.2016.12.009 .
  4. ^ Итон, А. (2017). «Идентификация модели в реальном времени с использованием многоточечных моделей при бурении с регулируемым давлением». Компьютеры и химическая инженерия . 97 : 76–84. doi : 10.1016/j.compchemeng.2016.11.008 .
  5. ^ Итон, А. (2015). «После установки оптоволоконных датчиков давления на подводных добывающих стояках для контроля сильных пробок» (PDF) . Слушания OMAE 2015, Сент-Джонс, Канада .
  6. ^ Пауэлл, К. (2014). «Динамическая оптимизация гибридной солнечной тепловой системы и системы ископаемого топлива». Солнечная энергия . 108 : 210–218. Бибкод : 2014SoEn..108..210P . дои : 10.1016/j.solener.2014.07.004 .
  7. ^ Спайви, Б. (2010). «Динамическое моделирование ограничений надежности твердооксидных топливных элементов и последствия для расширенного управления» (PDF) . Материалы ежегодного собрания AIChE, Солт-Лейк-Сити, Юта .
  8. ^ Спайви, Б. (2012). «Динамическое моделирование, моделирование и прогнозирующее управление MIMO трубчатого твердооксидного топливного элемента». Журнал управления процессами . 22 (8): 1502–1520. дои : 10.1016/j.jprocont.2012.01.015 .
  9. ^ Хеденгрен, Дж. (2018). Новая система обеспечения потока с высокоскоростным подводным оптоволоконным контролем давления и температуры . 37-я Международная конференция ASME по океанской, морской и арктической инженерии, OMAE2018/78079, Мадрид, Испания. стр. V005T04A034. дои : 10.1115/OMAE2018-78079 . ISBN  978-0-7918-5124-1 .
  10. ^ Уди, Дж. (2017). «Моделирование уменьшенного порядка для оптимизации и прогнозирования закачки в пласт» (PDF) . FOCAPO/CPC 2017, Тусон, Аризона .
  11. ^ Вальдеррама, Ф. (2018). «Оптимальный подход к управлению паровой дистилляцией эфирных масел ароматических растений». Компьютеры и химическая инженерия . 117 : 25–31. doi : 10.1016/j.compchemeng.2018.05.009 .
  12. ^ Сан, Л. (2013). «Создание оптимальной траектории с использованием прогнозирующего управления моделью для буксируемых по воздуху кабельных систем» (PDF) . Журнал руководства, контроля и динамики . 37 (2): 525–539. Бибкод : 2014JGCD...37..525S . дои : 10.2514/1.60820 .
  13. ^ Бил, Л. (2018). «Интегрированное планирование и управление в дискретном времени с динамическими параметрами и ограничениями» . Компьютеры и химическая инженерия . 115 : 361–376. doi : 10.1016/j.compchemeng.2018.04.010 .
  14. ^ Бил, Л. (2017). «Комбинированная модель прогнозирующего управления и планирования с доминирующей компенсацией постоянной времени» . Компьютеры и химическая инженерия . 104 : 271–282. doi : 10.1016/j.compchemeng.2017.04.024 .
  15. ^ Бил, Л. (2017). «Экономическая выгода от постепенной интеграции планирования и контроля непрерывных химических процессов» (PDF) . Процессы . 5 (4): 84. дои : 10.3390/пр5040084 .
  16. ^ Петерсен, Д. (2017). «Комбинированное нециклическое планирование и расширенное управление непрерывными химическими процессами» (PDF) . Процессы . 5 (4): 83. дои : 10.3390/пр5040083 . S2CID   3354604 .
  17. ^ Хеденгрен, Дж. (2018). «Спецвыпуск: совмещенное планирование и контроль» . Процессы . 6 (3): 24. дои : 10.3390/пр6030024 .
  18. ^ Миттлман, Ганс (1 мая 2018 г.). «Дерево решений для оптимизации программного обеспечения» . Платон . Университет штата Аризона . Проверено 1 мая 2018 г. Объектно-ориентированная библиотека Python для смешанно-целочисленных и дифференциально-алгебраических уравнений
  19. ^ «Решающие решения» . ООО «Продвинутые процессные решения» . Проверено 1 мая 2018 г. GEKKO Python с решателями APOPT или BPOPT
  20. ^ Эвертон, Коллинг. «Проекты динамической оптимизации» . Петробрас . Петробрас, Статойл, Facebook . Проверено 1 мая 2018 г. Пример презентации: Эвертон Коллинг из Petrobras делится своим опытом использования GEKKO для моделирования и нелинейного управления дистилляцией.
  21. ^ «Группа Google APMonitor: GEKKO» . Google . Проверено 1 мая 2018 г.
  22. ^ «Вычислительная наука: существует ли высококачественный решатель нелинейного программирования для Python?» . Научный Комп . Проверено 1 мая 2018 г.
  23. ^ Кантор, Джефф (2 мая 2018 г.). «Документация TCLab» (PDF) . Прочтите Документы . Университет Нотр-Дам . Проверено 2 мая 2018 г. pip установить tclab
  24. ^ Кантор, Джефф (2 мая 2018 г.). «Химический технологический контроль» . Гитхаб . Университет Нотр-Дам . Проверено 2 мая 2018 г. Использование лаборатории контроля температуры (TCLab)
  25. ^ Хеденгрен, Джон (2 мая 2018 г.). «Лаборатория современного контроля температуры» . Курс динамической оптимизации . Университет Бригама Янга . Проверено 2 мая 2018 г. Практическое применение расширенного контроля температуры
  26. ^ Сандрок, Карл (2 мая 2018 г.). «Ноутбуки Jupyter для динамики и управления» . Гитхаб . Университет Претории, Южная Африка . Проверено 2 мая 2018 г. CPN321 (Динамика процесса) и CPB421 (Управление процессом) на факультете химической инженерии Университета Претории.
  27. ^ «Новости CACHE (зима 2018 г.): включение динамического моделирования в учебные программы по химической инженерии» (PDF) . КЭШ: Компьютерные средства для химического машиностроения . Техасский университет в Остине. 2 мая 2018 г. Архивировано из оригинала (PDF) 3 мая 2018 г. . Проверено 2 мая 2018 г. Краткий курс Летней школы ASEE 2017, организованной в SCSU Хеденгреном (BYU), Гровером (Технологический институт Джорджии) и Бэджвеллом (ExxonMobil)

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9059189b6bdd2690974d0e9fdc32d40a__1716513060
URL1:https://arc.ask3.ru/arc/aa/90/0a/9059189b6bdd2690974d0e9fdc32d40a.html
Заголовок, (Title) документа по адресу, URL1:
Gekko (optimization software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)