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 является нелинейной.

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

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

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

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

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

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

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

Методы решения общей нелинейной задачи

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

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

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

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

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

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

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

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

Реализации

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

Числовые примеры

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

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

Простую задачу (показанную на схеме) можно определить с помощью ограничений с целевой функцией, которую необходимо максимизировать, где x = ( x 1 , x 2 ) .

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

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

Другая простая задача (см. диаграмму) может быть определена ограничениями с целевой функцией, которую необходимо максимизировать, где x = ( x 1 , x 2 , x 3 ) .

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

Ссылки

  1. ^ Ruszczyński, Andrzej (2006). Нелинейная оптимизация . Принстон, Нью-Джерси: Princeton University Press . стр. xii+454. ISBN 978-0691119151. МР  2199043.
  2. ^ ab Немировски и Бен-Тал (2023). «Оптимизация III: Выпуклая оптимизация» (PDF) .

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

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