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

Методы оптимальных решений. Нелинейное программирование. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Из теоремы 2.6 следует, что если задача P совместна, то, исключив из нее
m ,1
20 21
«лишние» ограничения, можно получить эквивалентную задачу, в матрице ко­торой все строки линейно независимы. Учитывая это, мы, рассматривая сов­местную задачу в канонической форме, часто будем предполагать, что строки матрицы задачи линейно независимы.
Заметим, что линейная независимость строк матрицы A гарантирует разре­шимость системы уравнений Ax = b, при этом задача (2.11)–(2.13) может быть несовместной (если система уравнений не имеет неотрицательных решений).
В соответствии с утверждением (г) теоремы 2.5 оптимальное решение ЗЛП в канонической форме достаточно искать среди угловых точек множества ее до­пустимых решений. По этой причине желательно найти описание таких точек более удобное, чем то, которое содержится в определении угловой точки.
Определения и обозначения. Пусть A R
m×n
.
rank(A) – ранг матрицы A.
Базис матрицы A – это максимальный набор ее линейно независимых столбцов. Будем записывать базис матрицы в виде упорядоченного набора столбцов: β = ([A]
j(1,β)
, …, [A]
j(r,β)
), где r = rank(A), j(i, β) – номер в матрице A
столбца, занимающего позицию i в базисе β.
Для упрощения обозначений будем писать j(i) вместо j(i, β), где это допу­стимо.
Лемма 2.1. Если строки матрицы A линейно независимы, то m ≤ n, rank(A) = m, всякий базис матрицы A состоит из m линейно независимых столбцов и всякая базисная матрица является квадратной и невырожденной.
Доказательство. Ранг матрицы равен максимальному числу линейно не­зависимых строк и максимальному числу линейно независимых столбцов в этой матрице. Тогда ранг матрицы A равен m и в ней есть хотя бы m столбцов, откуда следует, что m ≤ n. Остальные утверждения легко следуют из определе­ний. #
Определения и обозначения. Пусть A R матрицы линейно независимы, β = ([A]
Множество N(β) = {j(i) | i
j(1)
, …, [A]
} называют базисным множеством, а пе-
m×n
– матрица задачи P, строки
j(m)
) – базис матрицы20.
ременные задачи P с номерами jN(β) – базисными переменными.
Относительно базиса β любой вектор x размерности n1 (столбец) или 1n (строку) можно разбить21 на базисную часть xб(β) и небазисную часть xн(β). Базисная часть состоит из координат вектора x с номерами j N(β) в том по­рядке, в котором соответствующие столбцы входят в базис. Небазисная часть состоит из координат вектора x с номерами j N(β) в том порядке, в котором соответствующие столбцы входят в матрицу A.
В базисе m столбцов по лемме 2.1. Вспомним, что m ≤ n по лемме 2.1.
31
Базисная и небазисная части вектора-столбца (вектора-строки) тоже яв-
22 23 24
ляются столбцами (строками).
Решение x системы уравнений Ax = b, для которого xн(β) = 0
(небазис-
n–m
ные координаты вектора x равны нулю), – это базисный вектор задачи P, по- рожденный базисом β, обозначим его x(β).
Матрицу B(β), составленную из столбцов базиса β в том порядке, в кото­ром они входят в базис, называют базисной матрицей22.
Обратная базисная матрица B–1(β) – это матрица, обратная к базисной23.
Матрицу, составленную из небазисных столбцов матрицы A в том поряд­ке, в котором они входят в A, обозначим M(β).
Мы будем опускать явное указание на базис β и писать M, B, B–1, xб, x
н
вместо M(β), B(β), B–1(β), xб(β), xн(β), если это не приводит к разночтениям.
Следствие 2.3. Пусть A R
m×n
– матрица задачи P и строки матрицы A линейно независимы. Каждый базис β матрицы A порождает единственный ба­зисный вектор x = x(β) задачи P, который определяется следующим образом:
xб(β) = B–1(β)b и xн(β) = 0
n–m
.
Доказательство. Пусть β – базис матрицы A. Систему ограничений зада-
чи P можно записать в виде Bxб + Mxн = b. Если x = x(β), то xн = 0
по опреде-
n–m
лению. Тогда xб = B–1b. #
Заметим, что базисный вектор задачи (2.25) удовлетворяет ее общим
ограничениям, но может нарушать условие неотрицательности; поэтому нужно следующее определение.
Определение. Пусть A R
m×n
– матрица задачи P, строки матрицы ли­нейно независимы, β – ее базис. Если x = x(β) и xб(β) ≥ 0m, то β – допустимый базис, а x – базисное допустимое решение (БДР)24 задачи P.
Теорема 2.7 (алгебраическое описание угловых точек). Пусть X – множе- ство допустимых решений задачи P в канонической форме и строки матрицы задачи линейно независимы (rank(A) = m). Тогда угловыми точками множества X являются БДР задачи P, и только они.
Следствие 2.4. В условиях теоремы 2.7 задача P совместна, если и только если у нее есть БДР.
Доказательство. Если задача P имеет БДР x, то X ≠ , задача совместна. Теперь допустим, что задача P совместна, X ≠ . Рассмотрим задачу P1, огра­ничения которой совпадают с ограничениями задачи P, а ЦФ тождественно
равна нулю. Множество оптимальных решений задачи P1 равно X и, следова­тельно, непусто. Тогда, по утверждению (г) теоремы 2.5, у множества X есть угловая точка. По теореме 2.7 это БДР задачи P.
Это квадратная матрица по лемме 2.1. Она существует по лемме 2.1. Эквивалентный термин – опорный план.
32
3. НЕЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ
f(x) max
при условиях
(3.1)
gi(x) = bi
для i{1, …, m1},
(3.2)
gi(x) ≤ bi
для i{m1+1, …, m}.
(3.3)
x
y = f (x)
c
d
a
0
y
3.1. Общая задача нелинейного программирования
Пусть xRn, f(x)R, gi(x)R и biR для i{1, …, m}. Общую задачу нели- нейного программирования будем записывать следующим образом:
Это частный случай задачи (1.3). Множество допустимых решений этой задачи будем обозначать X. Оно описано системой из m ограничений (3.2), (3.3), в которой m1 ограничений-равенств и m – m1 ограничений-неравенств. Будем предполагать, что все функции f(x) и gi(x) определены на множестве X.
Запись (3.1)–(3.3) не является универсальной; в частности, существуют модели, в которых целевую функцию нужно минимизировать, и модели, вклю­чающие ограничения вида g(x) ≥ b. Однако точки минимума функции f на мно­жестве X являются точками максимума функции (–f ) на том же множестве, а ограничение g(x) ≥ b приводится к виду (3.3) умножением на (–1). Поэтому бу­дем изучать задачу (3.1)–(3.3).
3.1.1. Локальные и оптимальные решения (определения)
Функция f(x) на множестве X имеет локальный максимум в точке x0, если x0X и существует такая окрестность O точки x0, что f(x0) ≥ f(x) для всех xX ∩ O.
Функция f(x) в точке x0X достигает глобального максимума на множе- стве X, если f(x0) ≥ f(x) для всех xX.
Локальное решение задачи нелинейного программирования (3.1)–(3.3) – это точка локального максимума функции (3.1) на множестве допустимых ре­шений X.
Решение (оптимальное решение) задачи нелинейного программирования (3.1)–(2.3) – это точка глобального максимума функции (3.1) на множестве X.
Рис. 3.1. Локальные максимумы и оптимальное решение
Рис. 3.1 иллюстрирует введенные понятия. На нем изображен фрагмент графика функции f(x), xR. Пусть множество X – это отрезок [a, b]. На множе-
33
стве X функция f(x) имеет локальные максимумы в точках a, c, d и b. Для каж­дой из этих точек указано фигурирующее в определении локального максимума множество X ∩ O. Глобальный максимум функции f(x) на X достигается в точке b. В задаче максимизации функции f(x) на X локальные решения соответствуют точкам a, c, d и b. Оптимальное решение задачи находится в b, точке „самого высокого” локального максимума.
3.1.2. Достаточное условие разрешимости задачи
Поиск решения задачи нелинейного программирования, как правило, су­щественно упрощается, если удается предварительно доказать, что искомое решение существует (т. е. задача разрешима). Сформулируем определения и ре­зультаты, которые обычно помогают установить существование решения.
Если фиксировано множество M Rn, то все точки пространства можно классифицировать следующим образом.
Определения. Пусть M Rn. Для множества M точка xRn является внутренней, если какая-то ее окрестность вложена в M; внешней, если некото­рая ее окрестность не пересекается с M; граничной, если в любой ее окрестно­сти есть и точки из M, и точки из Rn \ M.
Множество всех граничных точек множества называют его границей.
Множество M замкнуто, если оно содержит свою границу.
Теорема 3.1. Пусть X — множество допустимых решений задачи (3.1)– (3.3). Если X и его граница вложены в какое-то множество M Rn, на котором
функции g1, …, gm непрерывны, то множество X замкнуто.
Следующая теорема Вейерштрасса дает классический признак разреши­мости задачи оптимизации.
Теорема 3.2. Непрерывная функция на непустом, замкнутом, ограничен- ном множестве X Rn достигает максимума.
Из теорем 3.1 и 3.2 легко вывести достаточное условие разрешимости за­дачи нелинейного программирования.
Следствие. Если задача (3.1)–(3.3) удовлетворяет условию теоремы 3.1, множество допустимых решений X непусто и ограниченно и целевая функция f(x) непрерывна на множестве X, то задача разрешима.
Очевидно, что глобальный максимум функции f на X является и ее ло­кальным максимумом на этом множестве. Следовательно, если разрешимость задачи нелинейного программирования доказана, то ее оптимальные решения можно искать среди локальных решений. Поэтому важны необходимые и/или достаточные условия локальных решений.
34
3.2. Необходимые условия первого порядка
*
0
* 1
*
m
y
*
0
j
xf
(x*) –
m
i
j
i
i
x
g
y
1
*
(x*) = 0
для всех j;
(3.4)
y
*
i
(gi(x*) – bi) = 0
для i > m1;
(3.5)
y
*
i
0
для i > m1.
(3.6)
*
0
* 1
*
m
*
0
*
i
*
0
*
0
*
0
Определения
Ограничение с номером i задачи (3.1)–(3.3) активно в точке x, если оно в этой точке выполняется как равенство, gi(x) = bi.
Множество номеров ограничений задачи (3.1)–(3.3), активных в точке, обозначим I(x). Т. е. I(x) ={i | gi(x) = bi}.
В дальнейшем нам будут нужны следующие свойства множества I(x) (до­казательство этих свойств предоставляем читателю).
1. {1, …, m1} I(x) для всех xX;
2. Если все функции gi(x) непрерывны в точке xX и I(x) = , то точка x
является внутренней для множества X.
Теорема 3.3 (теорема Каруша – Джона). Предположим, что
а) функции gi при i I(x*) дифференцируемы в точке x*;
б) функции f и gi при i I(x*), i > m1 дифференцируемы в окрестности точки x*;
в) функции gi при i m1 непрерывно дифференцируемы в окрестности точки x*.
Тогда если x* – локальное решение задачи (3.1)–(3.3), то существуют чис­ло y
0 и вектор y* = (y
, …, y
), не равные нулю одновременно и удовлетво-
ряющие следующим условиям:
Формулировка теоремы 3.3 начинается с условий гладкости (а)(в), наложенных на участвующие в задаче функции. Условия (3.4)(3.6) необходи­мы для того, чтобы допустимая точка, в которой функции f и gi удовлетворяют
условиям гладкости, была локальным решением задачи (3.1)–(3.3). Другими словами, при поиске локальных решений „подозрительными” являются допу­стимые точки, для которых либо выполняются условия (3.4)(3.6), либо нару­шены условия гладкости.
Числа y целевой функции, а y
, y
, …, y
называются множителями Лагранжа; y
при 1 ≤ i ≤ m – ограничению с номером i; (y
сопоставлен
, у*) – век-
тор множителей Лагранжа.
Заметим, что вектор множителей Лагранжа определен с точностью до по­ложительного множителя: если набор (y
3.3, то (y
, у*) при > 0 тоже удовлетворяет этим условиям. Поэтому можно
считать, что
, у*) удовлетворяет условиям теоремы
35
y
*
0
{0, 1}.
(3.7)
Определение. Градиентом функции f(x) = f(x1, …, xn) в точке x называет-
j
xf
y
*
0
f(x*) 
m
i
i
y
1
*
gi(x*) = 0.
(3.8)
ki
ii
a1x
*
0
*
0
ся вектор, составленный из первых частных производных функции, вычислен­ных в этой точке:
f(x) = (
Знак читается „набла”, что в переводе с греческого означает „арфа”.
Используя градиенты, условия (3.4) можно записать одним векторным уравнением
Определения
Линейной комбинацией векторов xi (1 i k) с вектором коэффициентов a = (ai | 1 i k) называют вектор x =
Линейная комбинация с ненулевым вектором коэффициентов называется
нетривиальной.
Векторы линейно независимы, если никакая их нетривиальная линейная комбинация не равна нулю.
Если x* – локальное решение задачи (3.1)–(3.3), то не все множители Ла-
(x) | 1 ≤ j ≤ n).
.
гранжа равны нулю, (y
, у*) ≠ (0,0), поэтому из (3.8) следует, что векторы f(x*),
g1(x*), …, gm(x*) линейно зависимы.
Равенства (3.5) называют условиями дополняющей нежесткости; они требуют, чтобы множители Лагранжа, соответствующие неактивным ограниче­ниям, были равны нулю (или, эквивалентно, чтобы ограничения, соответству­ющие положительным множителям Лагранжа, были активны). Условия допол­няющей нежесткости записывают только для ограничений-неравенств, потому что для ограничений-равенств они выполняются.
Условия неотрицательности множителей Лагранжа (3.6) тоже формули­руют для ограничений-неравенств. Подчеркнем, что теорема 3.3 не ограничива­ет по знаку множители Лагранжа, соответствующие ограничениям-равенствам.
Условия (3.4)(3.7) и (y
, у*) ≠ (0,0) в совокупности называют необходи-
мыми условиями первого порядка или условиями Каруша – Джона.
36
3.3. Регулярные решения, условия Куна – Таккера
*
0
*
0
*
0
*
0
*
0
При y
= 0 необходимые условия первого порядка не содержат никакой
информации о целевой функции. Поэтому нет оснований предполагать, что точка x*, удовлетворяющая этим условиям, окажется локальным решением за­дачи. В связи с этим полезны следующие определения.
Определения
Точка x* является регулярной точкой задачи (3.1)–(3.3), если она допу­стима и существует вектор y* Rm такой, что при y
= 1 выполнены условия
(3.4)–(3.6).
Условия (3.4) при y
= 1, (2.5) и (2.6) в совокупности называются услови-
ями Куна – Таккера.
Задача (3.1)–(3.3) регулярна, если хотя бы одно из ее оптимальных реше­ний является регулярной точкой.
При y
= 1 с очевидностью выполняются соотношения (3.7) и (y
, у*) ≠ (0,0).
Следовательно, если точка x* регулярна, то набор (x*, 1, у*) удовлетворяет всем необходимым условиям первого порядка, которые в этом случае эквивалентны условиям Куна – Таккера. Поскольку для регулярной точки условия первого порядка упрощаются, полезны достаточные признаки регулярности. Самый употребительный из таких признаков дает следующая теорема.
Теорема 3.4. Если точка x* является локальным решением задачи (3.1)– (3.3) и векторы gi(x*) для iI(x*) (вычисленные в точке x* градиенты ограни-
чений, активных в этой точке) линейно независимы, то x* – регулярная точка задачи.
Применяя это условие регулярности, нужно учитывать все активные ограничения, включая прямые ограничения вида a xj и (в частности, условия неотрицательности), если они входят в задачу.
Определение. Если F(x0) = 0, то x0 – стационарная точка функции F(x).
Рассмотрим локальное решение x* задачи (3.1)–(3.3), для которого вы­полнены условия гладкости теоремы Каруша – Джона, в частности, функции gi(x) непрерывны в точке x*. Допустим, что I(x*) = . Тогда x* – внутренняя точка множества X (см. свойства множества I(x*) в разд. 3.2). Из условий до­полняющей нежесткости (3.5) следует, что y* = 0. В соответствии с (3.7), можно считать, что y* = 1, поэтому x* – регулярная точка задачи. Тогда условия (3.4) сводятся к f(x*) = 0, т. е. к требованию стационарности точки x*. Таким обра­зом, все локальные решения содержатся среди стационарный точек целевой функции и точек, в которых хотя бы одно ограничение обращается в равен­ство.
37
3.4. Метод множителей Лагранжа
y
0
j
xf
(x) –
m
i
j
i
i
x
g
y
1
(x) = 0
для всех j;
(3.9)
yi (gi(x) – bi) = 0
для i > m1;
(3.10)
gi(x) = bi
для i ≤ m1.
(3.11)
*
0
gi(x) + s
2
i
= 0
(3.12)
)(x
ii
gb
)(x
ii
gb
2
i
Условия первого порядка являются основой метода множителей Ла­гранжа, который можно использовать для решения задач нелинейного про-
граммирования. Он заключается в следующем. Сначала проверяем разреши­мость задачи. Если она разрешима, то составляем систему уравнений для опре­деления x*, у*:
Здесь y0 является параметром, принимающим значения из множества {0,1}. В системе (3.9)(3.11) m + n неизвестных и столько же уравнений. Если удастся решить ее при y0 = 0 и y0 = 1, то найдем некоторое множество пар (x*, y*); из них выберем те, для которых выполняются условия (3.3), (3.6) и (y
, y*) ≠ (0,0).
Получим множество точек Лагранжа. Добавим к этому множеству все точки, в которых нарушаются условия гладкости теоремы Каруша Джона. Построен­ное множество обозначим M. Оно наверняка содержит все оптимальные реше-
ния задачи. Это те точки, в которых достигается максимум f(x) на M. Найти их обычно гораздо легче, чем решить исходную задачу. Часто удается ограни­читься вычислением f(x) в конечном числе точек.
К сожалению, метод множителей Лагранжа не позволяет построить алго­ритм решения общей задачи нелинейного программирования, так как нет уни­версального подхода к решению системы уравнений (3.9)(3.11). Необходимые условия первого порядка чаще применяют не для решения прикладных задач, а для теоретического анализа моделей и обоснования численных методов нели­нейного программирования.
3.5. Классическая задача условной оптимизации
Если в задаче (3.1)–(3.3) положить m1 = m, то получим классическую за- дачу условной оптимизации, в которой все ограничения являются равенствами.
Заметим, что неравенство (3.3) эквивалентно уравнению
в следующем смысле: если x решение, то bi gi(x) ≥ 0, значение делено и (x, si) есть решение уравнения (3.9) при si = решение уравнения, то bi gi(x) = s
≥ 0 и x – решение неравенства. Следова-
; если же (x, si) –
тельно, заменив неравенства (3.3) равенствами (3.9) для всех i ≤ m1, получим
38
опре-
классическую задачу условной оптимизации, эквивалентную исходной общей
*
0
m
i
iii
bgy
1
)(x
j
xL
(x*, y
*
0
, y*) = 0 и
i
yL
(x*, y
*
0
, y*) = 0 при 1 ≤ i ≤ m1.
(3.13)
*
0
*
0
задаче нелинейного программирования. Заметим, что описанное сведение об­щей задачи нелинейного программирования к классической задаче условной оптимизации не упрощает задачу и поэтому не всегда целесообразно.
Условия гладкости теоремы Каруша – Джона для классической задачи условной оптимизации адаптируются следующим образом:
функция f дифференцируема в окрестности точки x*;
функции gi непрерывно дифференцируемы в окрестности точки x*.
Необходимые условия первого порядка для классической задачи услов­ной оптимизации включают только (3.4), (3.7) и (y
, у*) ≠ (0,0). Метод множи-
телей Лагранжа для такой задачи предполагает решение системы уравнений (3.9), (3.11) при m1 = m и y0{0, 1}.
3.6. Функция Лагранжа
Определения
Функция Лагранжа для задачи (3.1)–(3.3) имеет вид:
L(x, y0, y) = y0 f( x)
.
Учитывая (3.7), положим L0(x, y) = L(x, 0, y), L1(x, y) = L(x, 1, y).
Пусть x*A Rn, y*B Rm. Пара (x*, y*) является седловой точкой функции F(x, y) на множестве A B, если F(x, y*) F(x*, y*) F(x*, y) для всех
xA, yB.
Легко видеть, что условия (3.9) и ограничения (3.2) эквивалентны, соот­ветственно, уравнениям
Для классической задачи условной оптимизации второе условие из (3.13) должно выполняться при всех i{1,…,m}. Понятно, что решение системы урав­нений (3.13) при m1 = m и y0{0,1} эквивалентно поиску стационарных точек функций L0(x, y) и L1(x, y).
Следствие. Если x* – локальное решение классической задачи условной оптимизации, удовлетворяющее условиям гладкости теоремы Каруша – Джона, а (y
, y*) – соответствующий вектор множителей Лагранжа, то (x*, y*) – стацио-
нарная точка функции L(x*, y
, y*).
С помощью функции Лагранжа для задачи нелинейного программирова­ния можно сформулировать признак оптимальности, который не требует диф­ференцируемости и даже непрерывности функций, участвующих в задаче.
39
Теорема 3.5 (достаточное условие оптимальности).
*
i
y
*
0
j
xf
(x*) –
1
1
*
m
i
j
i
i
x
g
y
(x*) = 0 для всех j.
(3.14)
j
m
xg
1
s
m
xg
1
y
*
0
s
xf
(x*) –
m
i
s
i
i
x
g
y
1
*
(x*) + y
*
1m
= 0.
(3.15)
y
*
1m
(g
m+1
(x) – (–s)) = 0, что эквивалентно y
*
1m
(s – xs) = 0,
(3.16)
y
*
1m
0.
(3.17)
–y
*
1m
= y
*
0
s
xf
(x*) –
m
i
s
i
i
x
g
y
1
*
(x*)  0;
(3.18)
*
1m
*
0
s
xf
m
i
s
i
i
x
g
y
1
*
Пусть Y = {yRm | yi 0 при i > m1}. Если функция L1(x, y) на множестве Rn Y имеет седловую точку (x*, y*), то x* является решением задачи (3.1)–(3.3)
и y
(gi(x*) – bi) = 0 для всех i.
3.7. Учет прямых ограничений
В экономических приложениях обычно возникают так называемые пря­мые ограничения на переменные: s ≤ xs ≤ s (например, условие неотрицатель-
ности переменной является прямым ограничением). Можно даже считать, что j ≤ xj ≤ j для всех j, где jR {}, j  R  {+} (если переменная xj не ограничена снизу, то положим j = , если она не ограничена сверху, то по­ложим j = +).
Построим необходимые условия локального решения для задачи (3.1)(3.3) с дополнительным ограничением s ≤ xs. Присвоим этому ограниче- нию номер m + 1, запишем его в виде g ющий множитель Лагранжа y
Но
= 0 при j s и
. Условия (3.4) примут вид
m+1
= –1, поэтому (3.14) при j s совпадает с
(x) = –xs –s и введем соответству-
m+1
(3.4), а при j = s получаем
Условия дополняющей нежесткости (3.5) и неотрицательности (3.6) со­храняются, к ним нужно добавить соответствующие условия для i = m + 1:
Из (3.15) и (3.17) следует
по условию (3.16) последнее неравенство должно выполняться как равенство, если xs > s.
Аналогично, для задачи (3.1)(3.3) с дополнительным ограничением xs ≤ s получим
y
= y
40
(x*) –
(x*) 0, с равенством, если xs < s.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]