Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы оптимальных решений. Нелинейное программирование. Учебное пособие
.pdf
Из теоремы 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 и biR для 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, если
x0X и существует такая окрестность O точки x0, что f(x0) ≥ f(x) для всех xX ∩ O.
Функция f(x) в точке x0X достигает глобального максимума на множе-
стве 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, где jR {}, 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.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
