Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Оптимизация. Псевдообращение. Итерации и рекурсии. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
изменив тем самым знак неравенства на противоположный. В-третьих, от­метим, что ограничение в форме равенства, например 𝑥3+ 8𝑥7= 12, можно заменить парой ограничений неравенств 𝑥3+ 8𝑥7≤ 12 и −𝑥3− 8𝑥7≥ −12. В-четвертых, условие неотрицательности всех инструментальных перемен­ных 𝑥1, 𝑥2, ..., 𝑥𝑛не является обязательным. Если на значения некоторой переменной, например 𝑥9, ограничения не налагаются (то есть она может принимать отрицательные, положительные и нулевые значения), то эту пе­ременную можно заменить двумя переменными: 𝑥
𝑥9= 𝑥
′
9
′′
− 𝑥
, так что новая формулировка задачи не будет включать пере-
9
′
≥ 0 и 𝑥
9
′′
≥ 0, полагая
9
менную 𝑥9. Таким образом, классическую задачу математического програм­мирования можно рассматривать как частную задачу нелинейного програм­мирования, в которой условие неотрицательности переменных отсутствует, а ограничения неравенства заменены ограничениями в форме равенств.
Геометрически каждое из 𝑛 условий неотрицательности 𝑥𝑗≥ 0, 𝑗 = = 1, 2, ..., 𝑛 определяет полупространство неотрицательных значений неза- висимых переменных, а пересечение таких полупространств представляет собой подмножество 𝑛-мерного евклидова пространства, называемое неот- рицательным ортантом. Например, в E2неотрицательный ортант – это неотрицательный квадрант, то есть первый квадрант плюс соответствую­щие полуоси. Каждое из 𝑚 ограничений-неравенств 𝑔𝑖(𝑥1, 𝑥2, ..., 𝑥𝑛) ≤ 𝑏𝑖, 𝑗 = 1, 2, ..., 𝑛 также определяет множество точек в 𝑛-мерном евклидовом пространстве, а пересечение этих 𝑚 множеств с неотрицательным ортантом составляет допустимое множество 𝑋 = {𝑥 ∈ E𝑛| 𝑔(𝑥) ≤ 𝑏, 𝑥 ≥ 0}. По- верхности (линии) постоянного уровня и направления скорейшего роста, да­ющие геометрическое представление о целевой функции, рассмотрены ранее. Геометрически задача нелинейного программирования состоит в отыскании точки или множества точек из допустимого множества, где достигается по­верхность наибольшего уровня. Так как по предположению целевая функция непрерывна и допустимое множество замкнуто, то, согласно теореме Вейер­штрасса, решение (глобальный максимум) задачи существует, если допусти-
31
мое множество непустое и ограниченное. Решение может принадлежать либо границе, либо внутренней части допустимого множества.
Важную роль в задачах нелинейного программирования играют усло­вия выпуклости. Задачей выпуклого программирования часто называют зада­чу, в которой функции ограничений выпуклые, а целевая функция вогнутая. В этом случае локальный максимум целевой функции, находящийся внутри допустимого множества или на его границе, является глобальным макси­мумом, а множество точек, на которых достигается глобальный максимум, выпукло. Если дополнительно предполагается, что целевая функция строго вогнута, то задача имеет единственное решение.
Если на переменные налагаются только условия неотрицательности (𝑚 = 0), то основная задача сводится к выбору неотрицательных значе­ний инструментальных переменных, максимизирующих функцию, то есть к задаче вида: найти
max𝑥𝐹 (𝑥) (4.1)
при условии, что 𝑥 ≥ 0.
Одним из подходов к решению этой задачи является разложение в ряд Тейлора, использованное нами ранее для решения классической задачи мате­матического программирования при отсутствии ограничений. Предположим, что в 𝑥*существует локальный максимум задачи (4.1). Тогда в точках, близ­ких к 𝑥
*
𝐹 (𝑥*) ≥ 𝐹 (𝑥*+ ℎΔ𝑥), (4.2)
где Δ𝑥 определяет направление в E𝑛, а ℎ – любое произвольное малое по­ложительное число. Пусть 𝐹 (𝑥) – дважды непрерывно дифференцируемая функция, тогда функцию в правой части (4.2) можно разложить по формуле Тейлора в окрестности 𝑥*:
𝐹 (𝑥*+ ℎΔ𝑥) = 𝐹 (𝑥*) + ℎ
где 0 < 𝜃 < 1.
𝜕𝐹
(𝑥*)Δ𝑥 +
𝜕𝑥
32
1
ℎ2(Δ𝑥)
2!
𝜕2𝐹
′
(𝑥*+ 𝜃ℎΔ𝑥)Δ𝑥,
2
𝜕𝑥
Сопоставляя последние два неравенства, приходим к основному нера-
венству
𝜕𝐹
ℎ
𝜕𝑥
(𝑥*)Δ𝑥 +
1
ℎ2(Δ𝑥)
2!
𝜕2𝐹
′
(𝑥*+ 𝜃ℎΔ𝑥)Δ𝑥 ≤ 0,
2
𝜕𝑥
являющемуся необходимым условием существования локального максимума в 𝑥*. Если 𝑥*> 0, то есть 𝑥*– внутренняя точка, то основное неравенство выполняется для всех направлений Δ𝑥. Поэтому, как и в классических зада­чах математического программирования, условием первого порядка является обращение в нуль первых производных. Допустим теперь, что одна из ин­струментальных переменных принимает граничное значение 𝑥
*
= 0. Пусть
𝑗
приращения всех остальных переменных равны нулю. Тогда, поскольку при
*
𝑥
= 0 единственным допустимым направлением является такое, при котором
𝑗
Δ𝑥𝑗≥ 0, то из основного неравенства следует, что
𝜕𝐹
(𝑥*)Δ𝑥𝑗≤ 0.
𝜕𝑥
𝑗
Следовательно, условие первого порядка состоит в том, что
𝜕𝐹
(𝑥*) ≤ 0, если 𝑥
𝜕𝑥
𝑗
Итак, в точке внутреннего максимума (𝑥 ращается в 0, а если максимум достигается на границе (𝑥
*
= 0.
𝑗
*
> 0) производная по 𝑥𝑗об-
𝑗
*
= 0), то первая
𝑗
производная меньше или равна 0. Но так как либо производная равна нулю (во внутренней точке), либо соответствующая переменная принимает нуле­вое значение (в граничной точке), то их произведение в точке максимума всегда равно нулю:
𝜕𝐹
𝜕𝑥
(𝑥*)𝑥
𝑗
*
= 0. (4.3)
𝑗
Сумма этих произведений также равна нулю:
𝑛
𝜕𝐹
(𝑥*)𝑥*=
𝜕𝑥
𝑗=1
𝜕𝐹
𝜕𝑥
(𝑥*)𝑥
𝑗
*
𝑗
= 0.
Условие обращения в нуль суммы указанных произведений на самом деле требует, чтобы каждое слагаемое равнялось нулю (то есть соотношение
33
(4.3) должно выполнятся для всех 𝑗). Вышесказанное следует из того, что все переменные неотрицательны, а частные производные первого порядка не превышают нуля. Таким образом, локальный максимум в 𝑥*определяется с помощью 2𝑛 + 1 условий первого порядка:
𝜕𝐹
(𝑥*) ≤ 0,
𝜕𝑥
𝜕𝐹
(𝑥*)𝑥*= 0, 𝑥*≥ 0. (4.4)
𝜕𝑥
Из этих условий следует приведённый выше результат: в точке мак­симума частная производная либо равна нулю, если соответствующая пере­менная положительна, либо меньше или равна нулю, если соответствующая переменная обращается в нуль:
𝜕𝐹
(𝑥*) = 0, если 𝑥
𝜕𝑥
𝑗
𝜕𝐹
(𝑥*) ≤ 0, если 𝑥
𝜕𝑥
𝑗
*
𝑗
*
𝑗
> 0,
𝑗 = 1, 2, ..., 𝑛.
= 0,
Условия Куна-Таккера
Используя результаты предыдущего параграфа, можно проанализиро-
вать общую задачу нелинейного программирования: найти
max𝑥𝐹 (𝑥) при условии 𝑔(𝑥) ≤ 𝑏, 𝑥 ≥ 0. (4.5)
Для того, чтобы преобразовать ограничения-неравенства в ограничения в форме равенств, введём вектор, состоящий из 𝑚 вспомогательных («сво­бодных») переменных 𝑠 ≡ 𝑏 − 𝑔(𝑥) = (𝑠1, 𝑠2, ..., 𝑠𝑚)′. Теперь задача состоит в отыскании
max
𝐹 (𝑥) при условии 𝑔(𝑥) + 𝑠 = 𝑏, 𝑥 ≥ 0, 𝑠 ≥ 0, (4.6)
𝑥,𝑠
причём неотрицательность вспомогательных переменных обеспечивает вы­полнение ограничений-неравенств.
Если бы выражения (4.6) не включали 𝑚 + 𝑛 ограничений-неравенств, то наша задача являлась бы классической задачей математического програм-
34
мирования. Функция Лагранжа такой задачи имела бы вид 𝐿′= 𝐹 (𝑥) + 𝑦(𝑏 − 𝑔(𝑥) −𝑠), где 𝑦 = (𝑦1, 𝑦2, ..., 𝑦𝑚) – вектор множителей Лагранжа.
Необходимые условия первого порядка состояли бы в том, что все пер­вые частные производные функции 𝐿′по 𝑥, 𝑦 и 𝑠 должны обращаться в нуль. Но так как 𝑥 и 𝑠 неотрицательны, то соответствующие условия на значе­ния первых производных по этим 𝑚 + 𝑛 переменным заменяются на условия предыдущего параграфа. В соответствии с этим условия первого порядка для существования локального максимума задачи (4.6) состоят в следующем:
′
𝜕𝐿
𝜕𝑥
𝑥 ≥ 0,
=
𝜕𝐹
𝜕𝑥
𝜕𝑔
− 𝑦
≤ 0,
𝜕𝑥
′
𝜕𝐿
= 𝑏 − 𝑔(𝑥) −𝑠 = 0,
𝜕𝑦
′
𝜕𝐿
𝜕𝐿
𝜕𝑥
′
𝑥 =
𝜕𝐹
𝜕𝑥
𝜕𝐿
𝜕𝑠
− 𝑦
′
𝜕𝑔
𝑥 = 0,
𝜕𝑥
= −𝑦 ≤ 0,
(4.7)
𝑠 = −𝑦𝑠 = 0, 𝑠 ≥ 0,
𝜕𝑠
где все переменные, функции и производные вычисляются при 𝑥*, 𝑦*и 𝑠*. Заменяя вектор вспомогательных переменных 𝑠 на 𝑏 −𝑔(𝑥), приходим к усло­виям Куна-Таккера:
𝜕𝐹
− 𝑦
𝜕𝑥
𝜕𝑔 𝜕𝑥
≤ 0,
𝜕𝐹
𝜕𝑥
− 𝑦
𝜕𝑔
𝑥 = 0, 𝑥 ≥ 0,
𝜕𝑥
(𝑏 − 𝑔(𝑥)) ≥ 0, 𝑦(𝑏 − 𝑔(𝑥)) = 0, 𝑦 ≥ 0.
Те же условия можно получить, если определить функцию Лагранжа для исходной задачи (4.5) как сумму целевой функции и скалярного про­изведения векторов множителей Лагранжа и разности между константами ограничений 𝐿 = 𝐿(𝑥, 𝑦) = 𝐹 (𝑥) + 𝑦(𝑏 − 𝑔(𝑥)), или в развёрнутом виде
𝑚
𝐿(𝑥1, ..., 𝑥𝑛; 𝑦1, ..., 𝑦𝑚) = 𝐹 (𝑥1, ..., 𝑥𝑛) +
𝑦𝑖(𝑏𝑖− 𝑔𝑖(𝑥1, ..., 𝑥𝑛)).
𝑖=1
Условия Куна-Таккера записываются теперь следующим образом:
𝜕𝐿
(𝑥*, 𝑦*) =
𝜕𝑥
𝜕𝐹
(𝑥*) − 𝑦
𝜕𝑥
35
𝜕𝑔
(𝑥*) ≤ 0,
𝜕𝑥
𝜕𝐿
(𝑥*, 𝑦*)𝑥*=
𝜕𝑥
𝜕𝐹
𝜕𝑥
(𝑥*) − 𝑦
𝜕𝑔
*
(𝑥*)𝑥*= 0,
𝜕𝑥
𝑥*≥ 0,
𝜕𝐿
(𝑥*, 𝑦*) = 𝑏 − 𝑔(𝑥*) ≥ 0,
𝜕𝑦
𝜕𝐿
*
𝑦
(𝑥*, 𝑦*) = 𝑦*(𝑏 − 𝑔(𝑥*)) = 0,
𝜕𝑦
𝑦*≥ 0.
Эти условия являются необходимыми и достаточными для существо­вания локального максимума, если целевая функция (строго) вогнутая, а функции ограничений выпуклые, и если, кроме того, выполнено налагаемое на ограничения некоторое условие регулярности, которое будет введено в следующем параграфе. Условия Куна-Таккера можно записать в развернутом виде как 2𝑚 + 2𝑛 + 2 соотношений:
𝑚
𝑛
𝑗=1
𝜕𝐿
𝜕𝑥
𝜕𝐿
𝜕𝑥
𝑥𝑗=
𝑗
𝜕𝐹
=
𝜕𝑥
𝑗
𝑛
𝑗=1
𝑗
−
𝜕𝐹
𝜕𝑥
𝑖=1
−
𝑗
𝑦
𝑖
𝑚
𝑖=1
𝜕𝑔
𝑖
≤ 0, 𝑗 = 1, 2, ..., 𝑛, (4.8)
𝜕𝑥
𝑗
𝜕𝑔
𝑖
𝑦
𝑖
𝜕𝑥
𝑥𝑗= 0, 𝑗 = 1, 2, ..., 𝑛, (4.9)
𝑗
𝑥𝑗≥ 0, 𝑗 = 1, 2, ..., 𝑛, (4.10)
𝜕𝐿
= 𝑏𝑖− 𝑔𝑖(·) ≥ 0, 𝑖 = 1, 2, ..., 𝑚, (4.11)
𝜕𝑦
𝑖
𝑚
𝑖=1
𝜕𝐿
𝑦
𝑖
𝜕𝑦
𝑚
=
𝑖
𝑦𝑖(𝑏𝑖− 𝑔𝑖(·)) = 0, (4.12)
𝑖=1
𝑦𝑖≥ 0, 𝑖 = 1, 2, ..., 𝑚, (4.13)
где все переменные, функции и производные вычисляются в (𝑥*, 𝑦*).
Чтобы понять важный смысл этих условий, отметим прежде всего, что соотношения (4.10) и (4.11) выражают соответственно ограничения неотри­цательности и ограничения-неравенства исходной задачи нелинейного про­граммирования. Отметим, что вследствие неравенств (4.8) и (4.10) каждое из слагаемых суммы (4.9) должно равняться нулю, так что
36
либо
𝜕𝐹
𝜕𝑥
𝑚
−
𝑗
𝑖=1
𝑦
𝑖
𝜕𝑔
𝜕𝑥
𝑖
= 0,
𝑗
либо 𝑥𝑗= 0,
(либо эти равенcтва выполняются одновременно),
𝑗 = 1, 2, ..., 𝑛.
Иначе говоря, либо каждое из соотношений между производными вы­полняется как равенство, либо переменная равна нулю, либо обе эти воз­можности осуществляются одновременно. Таким образом,
𝑚
−
𝑗
𝑖=1
𝜕𝑔
𝑦
𝑖
𝜕𝑥
𝜕𝑔
𝑖
𝑦
𝑖
𝑖
= 0, если 𝑥
𝑗
𝜕𝑥
𝑗
≤ 0, но
*
𝑗
> 0,
(4.14)
𝜕𝐹
𝜕𝑥
𝜕𝐹
𝜕𝑥
𝑚
−
𝑗
𝑖=1
𝑚
*
𝑥
≥ 0, но 𝑥
𝑗
*
= 0, если
𝑗
𝜕𝐹
𝜕𝑥
−
𝑗
𝑖=1
𝜕𝑔
𝑖
𝑦
𝑖
𝜕𝑥
< 0,
𝑗
𝑗 = 1, 2, ..., 𝑛.
Каждое из слагаемых суммы (4.12) также равно нулю благодаря нера­венствам (4.11) и (4.13), так что либо 𝑦𝑖= 0, либо 𝑔𝑖(𝑥*) = 𝑏𝑖(или же эти неравенства выполняются одновременно), 𝑖 = 1, 2, ..., 𝑚.
Иначе говоря, либо множитель Лагранжа равен нулю, либо соответ­ствующее ограничение-неравенство выполняется как равенство, либо и то и другое выполняется одновременно. Итак,
𝑔𝑖(𝑥*) ≤ 𝑏𝑖, но 𝑔𝑖(𝑥*) = 𝑏𝑖, если 𝑦
*
𝑦
≥ 0, но 𝑦
𝑖
*
= 0, если 𝑔𝑖(𝑥*) < 𝑏𝑖,
𝑖
*
𝑖
> 0,
(4.15)
𝑖 = 1, 2, ..., 𝑚.
Условия (4.14) и (4.15), представляющие собой иной способ формули­рования условий Куна-Таккера, называют условиями дополняющей нежёст­кости. Совершенно ясно, что 𝐿(𝑥*, 𝑦*) = 𝐹 (𝑥*) + 𝑦*(𝑏 − 𝑔(𝑥*)) = 𝐹 (𝑥*), то
37
есть значение функции Лагранжа в точке решения совпадает с отимальным значением целевой функции, так как согласно (4.12) 𝑦*(𝑏 − 𝑔(𝑥*)) = 0.
Дадим геометрическую интерпретацию условий Куна-Таккера. Будем рассматривать эти условия в форме (4.7). Если ввести второй вектор допол-
нительных переменных 𝑟 = 𝑦
𝜕𝑔 𝜕𝑥
−
𝜕𝐹
= (𝑟1, ..., 𝑟𝑛), то (4.7) преобразуются к
𝜕𝑥
виду:
𝜕𝐹
𝜕𝑥
− 𝑦
𝜕𝑔
+ 𝑟 = 0,
𝜕𝑥
𝑟𝑥 = 0, 𝑟 = 0, 𝑥 ≤ 0,
𝑏 − 𝑔(𝑥) −𝑠 = 0,
𝑦𝑠 = 0, 𝑠 ≥ 0, 𝑦 ≥ 0,
где все переменные, функции и производные вычисляются при 𝑥 = 𝑥*, 𝑦 = 𝑦*,
𝑟 = 𝑟*, 𝑠 = 𝑠*. Неотрицательность вспомогательных переменных обеспечива-
ет выполнение соответствующих ограничений-неравенств. Первые 𝑛 соотно­шений можно записать в форме
𝜕𝐹
(𝑥*) = 𝑦
𝜕𝑥
𝜕𝑔
*
(𝑥*) + 𝑟*(−𝐼), (4.16)
𝜕𝑥
где 𝐼 – единичная матрица. Геометрический смысл (4.16) состоит в том,
𝜕𝐹
что в искомой точке градиент целевой функции
должен быть линейной
𝜕𝑥
комбинацией градиентов ограничивающих гиперповерхностей. Если решение лежит на границе, то направление скорейшего роста представляет собой ли­нейную комбинацию векторов – нормалей к поверхности, взятых с неотри­цательными коэффициентами.
Рассмотрим теперь характерный пример задачи нелинейного програм­мирования: найти
max
𝑥1,𝑥
2
𝐹 (𝑥1, 𝑥2) = −8𝑥
2
− 10𝑥
1
2
+ 12𝑥1𝑥2− 50𝑥1+ 80𝑥
2
38
2
(4.17)
при условии, что
𝑥1+ 𝑥2≤ 1, 8𝑥
2 1
+ 𝑥
2 2
≤ 2,
𝑥1≥ 0, 𝑥2≥ 0.
Поскольку здесь целевая функция строго вогнутая, а функции ограни­чений выпуклые, то система неравенств, входящих в условия Куна-Таккера, имеет единственное решение в точке глобального максимума. Функция Лаг­ранжа для этой задачи имеет вид
𝐿(𝑥1, 𝑥2, 𝑦1, 𝑦2) = −𝑥𝑥
2 1
а условия Куна-Таккера:
𝜕𝐿
= −16𝑥1+ 12𝑥2− 50 −𝑦1− 16𝑦2𝑥1≤ 0,
𝜕𝑥
1
𝜕𝐿
= −20𝑥2+ 12𝑥1+ 80 −𝑦1− 2𝑦2𝑥2≤ 0,
𝜕𝑥
2
𝜕𝐿
𝜕𝐿
𝑥1+
𝜕𝑥
1
𝜕𝑥
2
+(−20𝑥2+ 12𝑥1+ 80 −𝑦1− 2𝑦2𝑥2)𝑥2= 0,
− 10𝑥
2
+ 12𝑥1𝑥2− 50𝑥1+ 80𝑥2+
2
+ 𝑦1(1 − 𝑥1− 𝑥2) + 𝑦2(2 − 8𝑥
𝑥2= (−16𝑥1+ 12𝑥2− 50 −𝑦1− 16𝑦2𝑥1)𝑥1+
2 1
− 𝑥
2
),
2
𝑥1≥ 0, 𝑥2≥ 0,
𝜕𝐿
= 1 −𝑥1− 𝑥2≥ 0,
𝜕𝑦
1
𝜕𝐿
𝑦
1
𝜕𝑦
1
+ 𝑦
2
𝜕𝐿
= 𝑦1(1 − 𝑥1− 𝑥2) + 𝑦2(2 − 8𝑥
𝜕𝑦
2
𝜕𝐿
𝜕𝑦
2
= 2 −8𝑥
2 1
− 𝑥
2 1
2 2
− 𝑥
≥ 0,
2
) = 0,
2
𝑦1≥ 0, 𝑦2≥ 0.
39
Хотя эти условия полностью характеризуют решение, они малопригод­ны для практического отыскания решений этой задачи. Рассмотрим несколь­ко различных допустимых точек. Точка начала координат (0, 0) не удовлетво-
𝜕𝐿
ряет условиям Куна-Таккера, так как в этой точке 𝑦1= 0, 𝑦2= 0, а
𝜕𝑥
= 80.
2
1
Точка
, 0также не удовлетворяет условиям, так как здесь 𝑦1= 0, а
2
𝜕𝐿
= 86. Однако точка (0, 1) является решением задачи. В этой точке:
𝜕𝑥
2
𝑥*= (0, 1)′, 𝑦*= (60, 0),
𝜕𝐿
(𝑥*, 𝑦*) = (−98, 0),
𝜕𝑥
𝜕𝐿
(𝑥*, 𝑦*) = (0, 1)′,
𝜕𝑦
𝜕𝐹
𝐹 (𝑥*) = 70,
(𝑥*) = (−38, 60).
𝜕𝑥
Отметим, что в точке максимума направление скорейшего роста ле­жит между нормалями (векторы нормалей направлены прочь от допустимого множества). Кроме того, второе ограничение в данном случае оказалось из­лишним.
Теорема Куна-Таккера
Подход Куна-Таккера к общей задаче нелинейного программирования:
найти
max𝑥𝐹 (𝑥) при условии, что 𝑔(𝑥) ≤ 𝑏, 𝑥 ≥ 0, (4.18)
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]