stringtranslate.com

Нелинейное программирование

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

Определение и обсуждение

Пусть n , m и p — положительные целые числа. Пусть X — подмножество R n (обычно с коробчатыми ограничениями), пусть f , g i и h jвещественные функции на X для каждого i в { 1 , ..., m } и каждого j в { 1 , ..., p }, причем по крайней мере один из f , g i и h j является нелинейным.

Задача нелинейного программирования — это задача оптимизации вида

В зависимости от набора ограничений существует несколько возможностей:

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

Некоторые частные случаи нелинейного программирования имеют специализированные методы решения:

Применимость

Типичной невыпуклой задачей является оптимизация транспортных расходов путем выбора из набора методов транспортировки, один или несколько из которых демонстрируют эффект масштаба , с различными связями и ограничениями пропускной способности. Примером может служить транспортировка нефтепродуктов с использованием трубопровода или комбинации трубопровода, железнодорожной цистерны, автоцистерны, речной баржи или прибрежного танкера. Из-за экономичного размера партии функции затрат могут иметь разрывы в дополнение к плавным изменениям.

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

Методы решения общей нелинейной программы

Аналитические методы

При условиях дифференцируемости и ограничений условия Каруша – Куна – Такера (ККТ) обеспечивают необходимые условия для оптимальности решения. Если некоторые из функций недифференцируемы, доступны субдифференциальные версии условий Каруша – Куна – Такера (ККТ) . [1]

При выпуклости условия ККТ достаточны для глобального оптимума . Без выпуклости эти условия достаточны только для локального оптимума . В некоторых случаях число локальных оптимумов невелико, и их все можно найти аналитически и найти тот, для которого целевое значение наименьшее. [2] : Раздел 5 

Числовые методы

В большинстве реальных случаев очень сложно решить условия ККТ аналитически, поэтому задачи решаются численными методами . Эти методы являются итеративными: они начинаются с начальной точки, а затем переходят к точкам, которые должны быть ближе к оптимальной, используя некоторое правило обновления. Существует три типа правил обновления: [2] : 5.1.2. 

Подпрограммы третьего порядка (и выше) теоретически возможны, но не используются на практике из-за более высокой вычислительной нагрузки и небольшой теоретической выгоды.

Ветвь и граница

Другой метод предполагает использование методов ветвей и границ , когда программа делится на подклассы, которые необходимо решить с помощью выпуклых (задача минимизации) или линейных аппроксимаций, которые образуют нижнюю границу общей стоимости в пределах подразделения. При последующих делениях в какой-то момент будет получено фактическое решение, стоимость которого равна наилучшей нижней границе, полученной для любого из приближенных решений. Это решение является оптимальным, хотя, возможно, и не единственным. Алгоритм также может быть остановлен раньше, с уверенностью, что наилучшее возможное решение находится в пределах допуска от найденной лучшей точки; такие точки называются ε-оптимальными. Завершение до ε-оптимальных точек обычно необходимо для обеспечения конечного завершения. Это особенно полезно для больших, сложных задач и проблем с неопределенными затратами или значениями, где неопределенность можно оценить с помощью соответствующей оценки надежности.

Реализации

Существует множество решателей нелинейного программирования, в том числе с открытым исходным кодом:

Численные примеры

2-мерный пример

Синяя область — это допустимая область . Касание линии с допустимой областью представляет собой решение . Линия представляет собой наилучшую достижимую контурную линию (место расположения с заданным значением целевой функции).

Простая задача (показана на диаграмме) может быть определена ограничениями

х 1 ≥ 0
х 2 ≥ 0
х 1 2 + х 2 2 ≥ 1
х 1 2 + х 2 2 ≤ 2

с целевой функцией, которую необходимо максимизировать

ж ( Икс ) знак равно Икс 1 + Икс 2

где Икс знак равно ( Икс 1 , Икс 2 ).

3-мерный пример

Касание верхней поверхности с ограниченным пространством в центре представляет собой решение.

Другая простая задача (см. диаграмму) может быть определена ограничениями

Икс 1 2 - Икс 2 2 + Икс 3 2 ≤ 2
х 1 2 + х 2 2 + х 3 2 ≤ 10

с целевой функцией, которую необходимо максимизировать

ж ( Икс ) знак равно Икс 1 Икс 2 + Икс 2 Икс 3

где Икс знак равно ( Икс 1 , Икс 2 , Икс 3 ).

Смотрите также

Рекомендации

  1. ^ Рущинский, Анджей (2006). Нелинейная оптимизация . Принстон, Нью-Джерси: Издательство Принстонского университета . стр. xii+454. ISBN 978-0691119151. МР  2199043.
  2. ^ аб Немировский и Бен-Тал (2023). «Оптимизация III: Выпуклая оптимизация» (PDF) .

дальнейшее чтение

Внешние ссылки