Архив рубрики ~Лента новостей~

Краткое введение в нелинейную оптимизацию с ограничениями и кусочно-линейными приближениями

Краткое введение в нелинейную оптимизацию с ограничениями и кусочно-линейными приближениями

Кусочно-линейные аппроксимации — это практичный способ обработки нелинейных моделей с ограничениями, использующих решатели LP/MIP, такие как Gurobi.

Делиться

NOVOSTI

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

Общая задача оптимизации с ограничениями состоит в выборе nn действительных переменных решения x0, x1, …, xn−1x_0, x_1,dots,x_{n-1} из заданной допустимой области таким образом, чтобы оптимизировать (минимизировать или максимизировать) заданную целевую функцию.

[f(x_0,x_1,dots,x_{n-1}).]

Обычно мы обозначаем xx вектором из nn действительных переменных решения x0, x1, …, xn−1.x_0, x_1, …, x_{n-1}. То есть, x=(x0, x1, …, xn−1)x=(x_0, x_1, …, x_{n-1}), и записываем общую нелинейную программу следующим образом:

[begin{aligned}text{ Максимизировать }&f(x)text{ При условии }&g_i(x)leq b_i&&qquad(i=0,1,dots,m-1)&xinmathbb{R}^nend{aligned}]

где каждая из функций ограничения g0g_0 до gm−1g_{m-1} задана, а каждый bib_i является константой (Брэдли и др., 1977).

Это лишь один из возможных способов сформулировать задачу. Минимизация f(x)f(x) эквивалентна максимизации −f(x)⋅-f(x). Аналогично, равенство h(x)=bh(x)=b можно выразить как пару неравенств h(x)≤bh(x)leq b и −h(x)≤−b⋅-h(x)leq-b. Более того, добавив дополнительную переменную, любое неравенство можно преобразовать в равенство (Bradley et al., 1977).

Подобные проблемы встречаются во многих областях применения, например, в бизнесе, где компания стремится максимизировать прибыль или минимизировать затраты, работая в условиях ограниченных ресурсов или финансирования (Черри, 2016).

Если f(x) — линейная функция, а ограничения — линейные, то задача называется задачей линейного программирования (ЛП) (Черри, 2016).

«Задача называется задачей нелинейного программирования (НЛП), если целевая функция нелинейна и/или допустимая область определяется нелинейными ограничениями» (Брэдли и др., 1977, с. 410).

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

Нелинейное программирование относится к методам решения задач нелинейного программирования. Хотя существует множество зрелых программ для решения задач линейного программирования, задачи нелинейного программирования, особенно те, которые включают нелинейности более высокого порядка, как правило, сложнее решить (Cherry, 2016).

Сложные задачи нелинейного программирования возникают в таких областях, как проектирование электронных схем, оптимизация финансового портфеля, оптимизация газовых сетей и проектирование химических процессов (Черри, 2016).

Один из способов решения задач нелинейного программирования — линеаризация и использование решателя линейного программирования для получения хорошего приближения. Это желательно по нескольким причинам. Например, линейные модели обычно решаются быстрее и могут быть более численно устойчивыми.

Чтобы перейти от теории к работающей модели на Python, мы рассмотрим следующие разделы:

  • Разделяемые функции
  • Пример
  • Комплекты типа 2, изготавливаемые по специальному заказу.
  • О выпуклых и вогнутых функциях
  • Реализация на Python
  • Дополнительная литература
  • Заключение
  • Ссылки

Данный текст предполагает некоторое знакомство с математическим программированием. После определения разделяемых функций мы приводим пример разделяемой нелинейной максимизации и описываем подход, основанный на кусочно-линейных (PWL) аппроксимациях нелинейной целевой функции.

Далее мы определяем специальные упорядоченные множества типа 2 и объясняем, как они подтверждают численную формулировку.

Далее мы представим теоретические основы работы «О выпуклых и вогнутых функциях», а также инструменты, используемые на протяжении всей оставшейся части этой работы по нелинейному программированию (НЛП).

В заключение мы представляем процедуру реализации на Python, которая использует аппроксимации нелинейной целевой функции с помощью Gurobipy и PWL, что позволяет решателям задач линейного программирования/целочисленного линейного программирования получать полезные аппроксимации для достаточно больших задач нелинейного программирования.

Источник: towardsdatascience.com

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Архив рубрики ~Коротко из Telegram~ Чуваки тут составили самый детальный каталог по нейросетям — больше… Архив рубрики ~Коротко из Telegram~ Копируем шрифт с ЛЮБОГО САЙТА — бесплатный сервис Font Stealer… Архив рубрики ~Коротко из Telegram~ Ор: Google I/O 26 оказалась настолько «успешной», что популярность DuckDuckGo… Новости робототехники Tinder для интеграторов Национальная Ассоциация участников рынка робототехники (НАУРР) и… Архив рубрики ~Коротко из Telegram~ Прикоснуться к прогрессу за $3 тыс. Когда 1X показала новые… Новости робототехники Роботы захватывают прачечную Роботы и так умели складывать одежду, но… Архив рубрики ~Коротко из Telegram~ Сегодня в РСПП впервые собрался комитет по цифровым платформам, образованный… Архив рубрики ~Коротко из Telegram~ Kimi K3 уже появилась в Kimi Code CLI В документации… Архив рубрики ~Коротко из Telegram~ За январь—июнь 2026 года специалисты обнаружили в открытом доступе 54… Архив рубрики ~Коротко из Telegram~ IT-специалисты оказались среди профессий с самым высоким уровнем эмоционального выгорания…. Архив рубрики ~Коротко из Telegram~ Забавная история, которая на самом деле опирается на реальную новость:… Архив рубрики ~Коротко из Telegram~ Apple подняла официальные цены на iPhone. Пока что только в… Архив рубрики ~Коротко из Telegram~ Дизайн без ИИ-слопа и фиолетовой боли Дизайн без ИИ-слопа и… Новости робототехники Благодаря новому финансированию монументальный план привезти своих строительных роботов в США. Архив рубрики ~Коротко из Telegram~ Чуваки тут составили самый детальный каталог по нейросетям — больше… Архив рубрики ~Коротко из Telegram~ Копируем шрифт с ЛЮБОГО САЙТА — бесплатный сервис Font Stealer… Архив рубрики ~Коротко из Telegram~ Ор: Google I/O 26 оказалась настолько «успешной», что популярность DuckDuckGo… Новости робототехники Tinder для интеграторов Национальная Ассоциация участников рынка робототехники (НАУРР) и… Архив рубрики ~Коротко из Telegram~ Прикоснуться к прогрессу за $3 тыс. Когда 1X показала новые… Новости робототехники Роботы захватывают прачечную Роботы и так умели складывать одежду, но… Архив рубрики ~Коротко из Telegram~ Сегодня в РСПП впервые собрался комитет по цифровым платформам, образованный… Архив рубрики ~Коротко из Telegram~ Kimi K3 уже появилась в Kimi Code CLI В документации… Архив рубрики ~Коротко из Telegram~ За январь—июнь 2026 года специалисты обнаружили в открытом доступе 54… Архив рубрики ~Коротко из Telegram~ IT-специалисты оказались среди профессий с самым высоким уровнем эмоционального выгорания…. Архив рубрики ~Коротко из Telegram~ Забавная история, которая на самом деле опирается на реальную новость:… Архив рубрики ~Коротко из Telegram~ Apple подняла официальные цены на iPhone. Пока что только в… Архив рубрики ~Коротко из Telegram~ Дизайн без ИИ-слопа и фиолетовой боли Дизайн без ИИ-слопа и… Новости робототехники Благодаря новому финансированию монументальный план привезти своих строительных роботов в США.

Оставить комментарий