Введение

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

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

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

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

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

Разделенный и связанный

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