Классификация задач нелинейного программирования

Нелинейное программирование включает в себя методы определения минимума функции n переменных F(х), где х = || x1, x2, x3 || при m + n ограничивающих условиях

gi≤0, i=1,2,...,m; (3.1.2)

xj≥0, j=1,2...,n; (3.1.3)

т. е.

f(x)=min(max) (3.1.4)

g≤0, x≥0. (3.1.5)

Соотношения (3.1.2, 3.1.3) следует понимать таким образом, что каждая компонента векторов имеет значение g и x не менее нуля и сокращенно их записывают в виде:

min {f(x)|xj≥0, j=1,...,n; gi≤0, i=1,2,...,m} (3.1.6)

или

Классификация задач нелинейного программирования - student2.ru , (3.1.7)

где область G задается условиями

G = {x|x≥0, gi(x)≤0 для всех i}.

В нелинейном программировании допускаются в общем случае любые соотношения между n и m, т. е. n>m, n = m, m<m.

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

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

Задачи поиска экстремума функции при наличии ограничений можно решать с помощью классических методов, но они рассматривают только случаи, когда неравенства имеют вид строгих равенств:

f (х) = min (max);

gi(х) = 0.

При этом не требуется неотрицательности переменных xj, m<n, а функции f(х) и gi(х) непрерывны и имеют частные производные, по крайней мере до второго порядка. Для нелинейного программирования классические методы имеют большое теоретическое значение, так как основополагающая теорема Куна-Таккера в выпуклом программировании обобщает теорему Лагранжа для классических задач.

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

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

Теоретически нелинейное программирование разработано только для одного частного случая выпуклых функций f(х) и gi(х), и соответственно этот раздел назван выпуклым программированием (рисунок 3.1.1).

Классификация задач нелинейного программирования - student2.ru
Рисунок 3.1.1 – Классификация методов нелинейного программирования

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

Функция f(х) = f(x1, ...,xn) называется сепарабельной, если она представлена в виде

Классификация задач нелинейного программирования - student2.ru

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

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

Классификация задач нелинейного программирования - student2.ru

Для выпуклости необходимо, чтобы матрица C = [| cjk || представляла собой симметричную положительную полуопределенную матрицу, т. е. чтобы для любых x выполнялись условия симметрии cjk =ckj и положительной полуопределенности хСх≥0.

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

Методы квадратичного программирования можно разделить на три группы: алгоритмы, использующие симплекс-метод; градиентные и прочие специальные методы.

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

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

Классификация задач нелинейного программирования - student2.ru
Рис. 17-3. Различные случаи оптимума в задачах нелинейного программирования

Рис. 17-4. Случай двух экстремумов при односвязной области допустимых значений

Решение задач нелинейного программирования может давать два или более экстремума, тогда как решение задач линейного программирования дает один экстремум. На рис. 17-4 показан случай, соответствующий линейным ограничениям и нелинейной (квадратичной) функции цели, где она достигает максимального значения в двух точках А (локальный максимум) и В (глобальный максимум). На этом рисунке пунктиром обозначены постоянные значения функции цели F = const = Сi, сплошной линией ограничена область допустимых значений. При нелинейных ограничениях может иметь место случай многосвязной области допустимых значений, и в каждой изолированной подобласти функция цели может достигать своего одного или нескольких локальных экстремумов. На рис. 17-5 представлен случай двусвязной области, в которой функция цели достигает локальных экстремумов. Максимум в точке В - глобальный для всей области допустимых значение, в точке А – локальный.

Классификация задач нелинейного программирования - student2.ru
Рис. 17-5. Случай двух экстремумов при двусвязной области допустимых значений

Метод Лагранжа

Начнём рассмотрение задачи поиска экстремума функции Классификация задач нелинейного программирования - student2.ru с ограничениями равенствами Классификация задач нелинейного программирования - student2.ru с «метода множителей Лагранжа».

Алгоритм метода состоит из следующих шагов:

- составим функцию Лагранжа в виде линейной комбинации целевой функции Классификация задач нелинейного программирования - student2.ru и функций Классификация задач нелинейного программирования - student2.ru взятых с коэффициентами, называемыми множителями Лагранжа – Классификация задач нелинейного программирования - student2.ru : Классификация задач нелинейного программирования - student2.ru ; (3.2)

- будем считать все функции непрерывно дифференцируемыми и приравняем 0 градиент функции Лагранжа Классификация задач нелинейного программирования - student2.ru : Классификация задач нелинейного программирования - student2.ru ;

- составим систему n+m уравнений, состоящих из равенства 0 градиента и уравнений ограничений:

Классификация задач нелинейного программирования - student2.ru (3.3)

1. найдём решения этой системы уравнений, которые будут стационарными точками задачи – определяющими необходимые условия решения задачи поиска условного экстремума.

Рассмотрим эвристические геометрические рассуждения на плоскости, помогающие понять смысл метода. Для этого рассмотрим изображённый на рисунке двумерный случай:

Классификация задач нелинейного программирования - student2.ru

Рисунок 5.1 – Линии уровня целевой функции двух переменных f(x,y) и кривой ограничений g(x,y)

В двумерном случае имеем целевую функцию двух переменных Классификация задач нелинейного программирования - student2.ru при условии, задаваемом уравнением g Классификация задач нелинейного программирования - student2.ru . На рисунке изображены линии уровня функции Классификация задач нелинейного программирования - student2.ru (т.е. геометрическое место точек, где Классификация задач нелинейного программирования - student2.ru =const) и кривую ограничений Классификация задач нелинейного программирования - student2.ru . Так как все функции непрерывно дифференцируемы, то и все кривые являются гладкими. Тогда задача сводится к нахождению экстремума функции f на кривой S. Будем также считать, что S не проходит через точки, в которых градиент целевой функции равен нулю: Классификация задач нелинейного программирования - student2.ru .

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

Классификация задач нелинейного программирования - student2.ru (3.4)

Классификация задач нелинейного программирования - student2.ru - некоторое число, отличное от нуля, являющееся множителем Лагранжа.

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

Рассмотрим регулярный случай, т.е. невырожденность градиента, и рассмотрим функцию Лагранжа, как зависящую также и от Классификация задач нелинейного программирования - student2.ru :

Классификация задач нелинейного программирования - student2.ru . (3.5)

Необходимым условием ее экстремума является равенство нулю градиента функции трёх переменных x, y, Классификация задач нелинейного программирования - student2.ru :

Классификация задач нелинейного программирования - student2.ru . (3.6)

В соответствии с правилами дифференцирования, оно записывается в виде равенства 0 частных производных по x, y и уравнения ограничения.

Мы получили систему, первые два уравнения которой эквивалентны необходимому условию локального экстремума (1), а третье — уравнению g Классификация задач нелинейного программирования - student2.ru . Из нее можно найти Классификация задач нелинейного программирования - student2.ru . При этом Классификация задач нелинейного программирования - student2.ru , поскольку в противном случае градиент функции f обращается в нуль в точке Классификация задач нелинейного программирования - student2.ru , что противоречит нашим предположениям. Следует заметить, что найденные таким образом точки Классификация задач нелинейного программирования - student2.ru могут и не являться искомыми точками условного экстремума, ведь рассмотренное условие носит необходимый, но не достаточный характер. Нахождение условного экстремума с помощью вспомогательной функции Классификация задач нелинейного программирования - student2.ru и составляет основу метода множителей Лагранжа, примененного здесь для простейшего случая двух переменных. Оказывается, вышеприведенные рассуждения обобщаются на случай произвольного числа переменных и уравнений, задающих условия.

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

Наши рекомендации