Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Исследование операций и теория игр. Учебное пособие
.pdf
r
r
r
r
r
r
r
r
r
r
rrrrr
(
)
rrr
r
(
)
r
r
r
)
,
r
{
}
r
r
()()(
)
rrrrr
r
Задача линейного программирования является частным случаем
задачи выпуклого программирования. Нетрудно показать, что всякая
задача выпуклого программирования одноэкстремальна.
Действительно, если
найдется такая окрестность
∩∈
глобального минимума. Тогда найдется такая точка
<
Однако при достаточно малом α выполнено включение
)(0xUMx
. Предположим, что
01
)()(
xfxf
. При любом
0
∩∈α+α−
Следовательно, в точке
требовалось доказать.
Функцией Лагранжа задачи выпуклого программирования
называется функция
x
r
Задача выпуклого программирования называется удовлетворяющей
условию Слэйтера, если существует хотя бы одна точка
которой все неравенства системы ограничений выполняются и
являются строгими неравенствами.
Введем множество
m
151
Mx ∈
— точка локального минимума, то
0
)()(
xfxf
)(0xU
, что
x
α
∈
(0,1) получим
010
)(1
xUMxx
. Получаем противоречие.
0
достигается глобальный минимум, что и
r
m
( ) ( )
∑
+
i
1
m
i
≥
0
не является точкой
rr
ϕλ+=λ
xxfxL
.,
iiB
)}.,1(,0:{ miRE
=≥λ∈λ=
<α+α−≤α+α−
при всех
1
Mx ∈
01010
).()()()1())1((
xfxfxfxxf
, что
,Ω∈x
в
Теорема 6.6. (теорема Куна-Таккера). Пусть задача выпуклого
программирования удовлетворяет условию Слэйтера. Тогда точка
0
Ω∈
x
задачи, если существуют такие неотрицательные числа
1
является седловой точкой функции Лагранжа задачи, то есть для
любых
сводится к нахождению седловых точек функции Лагранжа. Правда,
задача нахождения седловых точек далеко не всегда допускает
в том и только в том случае является точкой минимума
0
020
K
λ
λλ
Таким образом, решение задачи выпуклого программирования
(0,,,
m
Ω∈x
λ
и
что
E∈≥
m
E∈λ
выполняются неравенства
m
1
0
0020
xxx
BBB
2
1
0000
.,,,
λ≤λ≤λ
xLxLxL
00
,,,,,,, KK
λλλ
mn
mn
+
R
∈

r
r
()(
)
rKr
r
r
rrrrr
rrr
r
152
непосредственное решение. Теорема Куна-Таккера является одной из
основ теории двойственности выпуклого программирования, которая
выходит за пределы настоящего пособия. Приведем лишь обобщение
второй теоремы двойственности, которое будет полезно в дальнейшем.
Рассмотрим задачу выпуклого программирования с множеством Ω
E
=
=
n
n
i
)}.,1(,0:{ nixRx
=≥∈
Теорема 6.7. Если в задаче выпуклого программирования целевая
функция f(
дифференцируемыми, а множество
x
) и функции
xx
ϕϕ ,,
являются непрерывно
Ω =E
m
, то точка (
n
x
00
,λ
) тогда и
1
только тогда является седловой точкой функции Лагранжа задачи,
когда в этой точке выполнены следующие соотношения
∂
L
В
∂
x
j
≥
r
r
00
),(
λ
x
∂
L
0
В
x
j
∂
x
j
r
x
;0;0
=
(I)
r
)0,0(
λ
∂
В
r
r
λ∂
00
i
),(
λ
x
0
j
njx
=≥
∂
LL
0
В
λ≤
i
λ∂
i
r
x
0
;,1;0
;0;0
=
r
)0,0(
λ
.,1;0
mii=≥λ
(III)
(II)
В случае задачи линейного программирования в стандартной
форме первые неравенства в (I) и (II) фактически совпадают с
системами ограничений соответственно двойственной и заданной
задач, а равенства представляют собой условия дополнительной
нежесткости.
6.4. Задачи квадратичного программирования
Одним из наиболее простых и важных классов задач нелинейного
программирования являются задачи квадратичного
программирования, которые состоят в минимизации (или
максимизации) квадратичной функции при линейных ограничениях.
Поскольку задача максимизации изменением знака целевой функции
сводится к задаче минимизации, мы будем считать, что общая задача
квадратичного программирования в векторно-матричной форме
записывается в следующем виде
min,),(),()( →+= xcxxDxf
,0,
≥≤ xbxA

r
c
r
r
(
)
rrr
rrr
rrr
{
}
153
x
где
— неизвестный n-мерный вектор, D — симметричная матрица
квадратичной формы размера n×n, A — матрица ограничений размера
m×n,
— n-мерный вектор,
b
— m-мерный вектор.
Способы решения такой задачи определяются свойствами матрицы
D. Если все собственные числа матрицы D неотрицательны, то это
задача выпуклого программирования и любой локальный минимум
дает ее решение. Если все собственные числа матрицы D
неположительны, то мы имеем задачу вогнутого программирования, у
которой может быть большое число неэквивалентных локальных
минимумов, но глобальный минимум (если он существует)
достигается в одной из вершин многогранного множества допустимых
значений. Еще более сложный случай, когда собственные числа
матрицы D имеют разные знаки. Задача здесь также является
многоэкстремальной, но глобальный минимум может достигаться в
точке, которая не является вершиной множества допустимых
значений. Из сказанного видно, что из всех задач квадратичного
программирования простейшими являются задачи выпуклого
квадратичного программирования. Для них существует ряд способов
решения. Мы коснемся одного из них, который основан на теоремах
6.6, 6.7.
Функция Лагранжа задачи выпуклого квадратичного
программирования имеет вид
).,(),(),(, bxAxcxxDxL
−λ++=λ
B
Если функция LB имеет седловую точку
mn
010020
1
xxx
2
00
,,,,,,, KK
λλλ
mn
+
, то в этой точке выполняются
R
∈
соотношения (I), (II) и (III) теоремы 6.7. Введем уравнивающие
неотрицательные переменные
uj и v
(
i
minj ,1;,1 ==
), обращающие
неравенства в (I), (II) в равенства. Тогда соотношения (I) — (III)
запишутся в виде
L
∂
В
x
∂
r
j
x
j
r
00
),(
λ
);,1(0
nju
==−
(I1)
L
∂
В
r
λ∂
i
x
i
r
00
),(
λ
);,1(0
miv
==+
(II1)
00
iijj
);,1(0);,1(0
mivnjux
==λ==
(I2)

∑
154
00
iijj
);,1(0,0);,1(0,0
mivnjux
=≥≥λ=≥≥
(III1)
Таким образом, для нахождения решения задачи выпуклого
квадратичного программирования нужно определить неотрицательное
решение системы линейных уравнений (I1), (II1), удовлетворяющее
условиям (I2). Система (I1), (II1) имеет базисный вид, который, однако,
не дает неотрицательного базисного решения, поскольку является
недопустимым. Переход к допустимому базисному виду можно
произвести с помощью метода искусственного базиса. Вводя
искусственные переменные yk в систему (I1), (II1) и решая задачу на
−=
максимум функции
yz
с системой ограничений (I1), (II1),
k
k
получим допустимый базисный вид системы (I1), (II1) и
соответствующее базисное решение будет неотрицательным решением
этой системы, вообще говоря, не удовлетворяющим некоторым из
условий (I2). Можно показать, что в случае разрешимости исходной
задачи с помощью конечного числа операций замещения можно
прийти к допустимому базисному решению системы (I1), (II1),
удовлетворяющему всем условиям (I2). При этом отсутствие среди
допустимых базисных решений системы (I1), (II1) такого, которое
удовлетворяет условиям (I2), означает неразрешимость исходной
задачи.
Пример 6.4. Найти минимальное значение функции
2
2
2
1
422 xxxxf −−+=
21
При условиях
xx
21
,122
≤−
xx
21
.0,
≥
xx
21
,82
≤+
Функция f является выпуклой, так как собственные числа матрицы
D положительны. Система ограничений состоит из линейных
неравенств. Мы имеем задачу выпуклого квадратичного
программирования. Составим функцию Лагранжа задачи
2
2
2
1
B
)122()82(422
−−λ+−+λ+−−+= xxxxxxxxL
.
21221121
Запишем систему уравнений (I1), (II1), и условия (III1), (I2)

=λ=λ=
=
→−−
=
155
,222
=−λ+λ+
ux
1211
,424
=−λ−λ+
ux
2212
,82
=++
vxx
121
,122
=+−
vxx
221
vvxuxu
22112211
.0,,,,,,,
≥λλ
vvuuxx
21212121
. (I3)
0
Для нахождения допустимого базисного решения построенной
системы линейных уравнений применим метод искусственного базиса,
т.е. решим следующую задачу линейного программирования
max,
yyz
21
,222
=+−λ+λ+
=++
vxx
121
=+−
vxx
221
yux
11211
,424
=+−λ−λ+
yux
22212
,82
,122
.0,,,,,,,,,
≥λλ
yyvvuuxx
2121212121
Здесь y1, y2 — искусственные переменные. Выразив искусственные
переменные через свободные и подставив полученные выражения в
целевую функцию, получим следующую симплекс-таблицу
Таблица 1
Баз.
Св.
пер.
чл.
1
1
x
↓x2 λ
y1 2 2 0 1 2
←y2
4 0 4 2
v1 8 1 2 0 0 0 0 1 0 0 0
v2 12 2
z
−6 −2 −4 −3 −1
Баз.
Св.
↓x
пер.
←y1
чл.
2 2 0 1 2
1
0 0 0 0 0 1 0 0
−1
x2
λ
1
x2 1 0 1 1/2
v1 6 1 0
−2 −1/2
v2 13 2 0 1/2
z
−2 −2
0
−1 −2
λ
2
−1
λ
2
−1/4
−1/4
u
u
1
2 v1 v2 y1
0 0 0 1 0
−1
0
0 0 0 1
−1
1 1 0 0 0 0
Таблица 2
u
u2 v1 v2 y
1
0 0 0 1 0
−1
0
−1/4
0 0 0 1/4
0 1/2 1 0 0
0
−1/4
0 1 0 1/4
1
−1/2
1 0 0 0 0 1
y
2
y
2

r
r
r
r
r
r
r
r
r
R⊂Μ
r
r
r
r
r
156
Таблица 3
Баз.
Св.
чл.
x1 x2
пер.
x1 1 1 0 1/2 1
x2 1 0 1 1/2
v1 5 0 0
v2 11 0 0
z 0 0 0 0 0 0 0 0 0 1 1
λ
1
−1/4
−5/2 −3/2
−1/2 −9/4
u
λ
1
2
−1/2
0
1/2 1/2 1 0
1
u2 v1 v2 y
0 0 0 1/2 0
0 0 0 1/4
−1/4
0 1
−1/4
1
−1/2 −1/2
−1
y
1/4
2
Последняя симплекс таблица доставляет допустимое базисное
решение системы, удовлетворяющее условиям (I3). Поэтому точка
00
(
)=(1; 1; 0; 0) является седловой точкой функции Лагранжа
,λ
x
0
min
x
(1; 1) — оптимальным планом исходной
=
−3.
=
исходной задачи, а
задачи. При этом f
6.5. Задачи дробно-линейного программирования
Задача дробно-линейного программирования (ДЛП) может быть
сформулирована в векторной форме в следующем виде
),(
α+
xc
=
z
r
→
r
),(
β+
xd
где α и β — скалярные константы, постоянные векторы
x
∈ Rn — вектор искомых переменных. Предполагается, что
n
. При этом
M={
x
∈ Rn: A
x
b
,
x
≥ 0,
=
(min),max
b
∈ Rm}.
c
и
d
∈ Rn,
x
∈
Таким образом, в качестве целевой функции используется
отношение двух линейных функций, условия-ограничения задачи
являются линейными равенствами и неравенствами.
Обычно предполагают также, что знаменатель целевой функции не
обращается в нуль на области допустимых значений M. Не
ограничивая общности, можно считать, что знаменатель положителен
на множестве M.
Задачи дробно-линейного программирования решают в тех
приложениях, когда оптимизируются относительные показатели,
например, рентабельность, производительность и т. д.. Особенно часто
такие задачи встречаются в области финансовой деятельности:
планировании доходов корпораций, управлении статьями банковского
баланса и т. п.

rrr
r
r
r
r
r
r
r
157
Задачи ДЛП имеют одну важную общую черту с задачами
линейного программирования. Поверхности уровня целевой функции
этих задач определяются линейными уравнениями, т. е. являются
гиперплоскостями. Действительно, равенство z=C при произвольной
константе C можно записать в виде
)),((),( β+=α+ xdCxc
, а это
уравнение задает некоторую гиперплоскость. При неопределенном C
мы получаем пучок гиперплоскостей, пересекающихся по линейному
многообразию размерности n−2, часто называемому множеством
вращения. Множество вращения является множеством точек,
удовлетворяющих системе уравнений
α−
=
),(xdxc
r
r
),(
,
β−
=
.
Мы будем считать, что эта система совместна, т. к. в противном
случае задачу ДЛП легко свести к обычной задаче линейного
программирования. В случае n=2 гиперповерхности уровня будут
прямыми линиями, а множество вращения состоит из одной точки.
Вращая линию уровня целевой функции вокруг этой точки, мы будем
увеличивать или уменьшать значение целевой функции. На этом
основан графический метод решения задачи ДЛП. По крайней мере,
одна из угловых точек допустимого многоугольника будет
оптимальной.
В общем случае обычно применяют сведение задачи ДЛП к задаче
линейного программирования с помощью приема преобразования
переменных. Еще раз отметим, что знаменатель целевой функции
можно считать положительным на множестве M, т.к. в противном
случае можно умножить числитель и знаменатель на (−1). Введем
1
следующие переменные y
=
0
−
)),((
β+xd
и
y
y0x
при i=1, 2, …, n.
=
i
i
Задача ДЛП может быть записана в виде следующей задачи линейного
программирования
yycz
→α+=
0
r
r
r
),(
r
r
byyA
−
0
yyd
β+
0
n
(min),max),(
,0
=
,1
=
RyRy
∈≤∈≤
0
1
.0,0
Количество переменных в этой задаче равно n+1. После решения
этой задачи линейного программирования решение исходной задачи
легко найти по формулам
x
yi/y
при i=1, 2, …, n.
=
i
0
Пример 6.5. Найти решение следующей задачи

158
2
+
xx
21
=
z
→
+
xx
21
xx
xx
21
xx
.0,
≥
xx
21
21
21
min,
≤+
≤+
≤+
,2682
,4
,39312
Для нахождения решения вначале уравняем неравенства системы
ограничений с помощью введения неотрицательных переменных.
2
+
xx
21
min,
=
z
Введем новые переменные y
→
+
xx
21
,2682
=++
xxx
321
xxx
xxx
521
.0,,,,
≥
xxxxx
54321
=
0
)(−+ xx
21
,4
=++
421
,39312
=++
1
,
y
y0xi (i
=
i
2,1 ). Получим
=
задачу линейного программирования
min,2
→+=
yyz
21
,02682
=−++
=≥
iy
i
yy
21
).5,0(0
yyyy
0321
,04
=−++
yyyy
0421
,039312
=−++
yyyy
0521
,1
=+
Воспользуемся модификацией симплекс-метода, изложенном в 1.6.
Для этого перейдем к задаче на максимум, введем искусственную
переменную u в последнее равенство системы ограничений, составим
M-задачу при M=200 и исключим искусственную переменную из
целевой функции. Получим задачу
max,199198200
→++−=
yyz
211
,02682
=−++
=≥
iy
i
21
).5,0(0
yyyy
0321
,04
=−++
yyyy
0421
,039312
=−++
yyyy
0521
,1
=++
uyy
Составим симплекс-таблицу

←
3
−
−
−
−
−
−
1
−
−
0
−
−
−
−
−
−
←
−
1
−
−
0
4
−
1
−
159
Баз.
пер.
←y4
Баз.
пер.
y
y2 0
y5 0
z
Св.
чл.
y
3
y
↓y
1
y
y
3
2
y
4
0 2 8 1 0 0
5
−26
0 1 1 0 1 0
y5 0 12 3 0 0 1
−39
u 1 1 1 0 0 0 0 1
z
−200 −198 −199
1
0 0 0 0 0
Таблица 2
Баз.
пер.
Св.
чл.
y
y
y
y
y
y
1
2
3
4
0
6
0 1
8
↓y
5
0 6 0
y2 0 1 1 0 1 0
y5 0 9 0 0
u 1 0 0 0
z
200
Св.
чл.
0
1 4 0
u
200 −795
1 0 0 199 0
y
y
1
2
0 1/6
1
1 2/3
3
0 9/2
18
0 398/3
y
3
2/3
2587/3
1
3
0 4 1
1
796
↓y
4/3
13/3
39
y
4
5
0 1 0
0 0 0
1 0 0
13/3 0 0 1
0 0 0
Таблица 1
y
u
0
0
−4
0
0
u
0
0
4
0
27
0
Таблица 3
y
0
u
Баз.
Св.
пер.
чл.
y
4/13 0
y
y
1
y
2
3
y2 1 0
y5 9 0
y
3/13 12/13 0
z
1
1 0 0 0 0 0 3/13
2/13
Таким образом, ответ в исходной задаче: z
минимума x
1
=
0, x
=
2
13/4.
Таблица 4
y
y
y
4
5
u
0
1 0 0 3/13
−z
1max
=
1, точка
min
=

(
)
→
=
r
x
Rn∈
r
r
r
r
r
r
()(
)
r
r
160
6.6. Численные методы решения задач нелинейного
программирования
1. Методы безусловной оптимизации. Метод градиетного
спуска и метод Ньютона-Рафсона. Рассматриваемые ниже методы
являются способами нахождения точек локального экстремума для
задач без ограничений и поэтому называются методами безусловной
оптимизации. В приложениях чаще всего встречаются задачи с
ограничениями, которые можно свести к задачам на безусловный
экстремум с помощью метода штрафных функций.
Рассмотрим задачу без ограничений
.
min,,,
xxxfz K
21
n
В любой точке
можно построить вектор градиента
∂
∂
f
f
=∇
f K
∂
∂
x
x
21
∂
f
.;;;
∂
x
n
Этот вектор указывает направление наискорейшего возрастания
функции
)(xf
. Противоположный вектор (–∇f) называется вектором
антиградиента и указывает направление наискорейшего убывания
функции
)(xf
в данной точке.
Идея метода градиентного спуска заключается в том, что мы из
произвольно взятой точки в Rn сдвигаемся по направлению
антиградиента в некоторую близкую точку. При этом сдвиг
выбирается таким, чтобы в новой точке значение функции было
меньше, чем в старой. Затем в этой новой точке определяется
антиградиент. В его направлении делается новый шаг в некоторую
новую точку с уменьшением значения целевой функции
)(xf
. В
результате ряда шагов мы можем сколь угодно близко подойти к точке
локального минимума функции
)(xf
. Если функция
имеет лишь
)(xf
один экстремум, который является и глобальным минимумом, то мы
получаем приближенное решение задачи. Если же у функции
несколько локальных минимумов, то мы "скатимся" в результате ряда
шагов в окрестность одного из локальных минимумов. Причем в
зависимости от начальной точки можно попасть в окрестность того
или иного локального минимума.
Расчетные формулы метода градиентного спуска имеют
следующий вид:
1
+
kk
,
fhxx ∇−=
kk
)(xf
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
