Тема_5

advertisement
5 Задачи нелинейного программирования
5.1 Постановка задачи и основные определения
Выше рассматривались задачи линейного программ ирования. Это задачи, в которых все фигурирующие фун кции линейные. Однако большинство реальных задач не
может быть адекватно описано с помощью моделей линейного программирования из-за нелинейности целевой
функции или некоторых ограничений. В частности, в в иде моделей нелинейного программирования можно пре дставить задачи оптимизации, возникающие в сл едующих
областях:
1) оптимальное управление;
2) проектирование строительных конструкций;
3) проектирование механических конструкций;
4) электрические цепи;
5) управление водными ресурсами;
6) распределение ресурсов в условиях неполной и нформации;
7) размещение оборудования.
Общая задача нелинейного программирования имеет
вид:
минимизировать (максимизировать) целевую функцию
f(x 1 , x 2 , …, x n )
(5.1)
при условиях
 g i ( x1 ,x2 ,...,x n )  bi (i  1,k )
,

 g i ( x1 ,x2 ,...,x n )  bi (i  k 1,m)
(5.2)
где f и g i – некоторые известные функции n переменных,
а b i – заданные числа.
В результате решения задачи (1), (2) должна быть
определена точка
x  ( x1 ,x2 ,..., xn ) ,
69
координаты которой удовлетворяют соотношениям (2) и
такая, что для всякой другой точки x   x1 , x2 ,..., xn  , удовлетворяющей условиям (2), выполняется неравенство
f ( x1 ,x2 ,...,x*n )  f  x1 , x2 ,..., xn  или
[ f ( x*1 ,x*2 ,...,x*n )  f  x1 , x2 ,..., xn  ].
Соотношения (2) могут включать и условия неотрицательности переменных. Если все функции f и g i – линейные, то задача (1), (2) называется задачей линейного пр ограммирования. В противном случае имеем задачу нел инейного программирования.
Задачу (1), (2) можно записать сокращенно в векторной форме:
минимизировать (максимизировать) целевую функцию
(5.3)
f (x)
при условиях
 gi ( x)  bi
.
(5.4)

g
(
x
)

b
 i
i
Здесь f и g i – определенные в евклидовом пространстве Е n функции. Совокупность всех векторов размерности n образует n-мерное евклидово пространство Е n .
В пространстве Е n система ограничений (2) определяет область допустимых решений задачи. В отличие от з адачи линейного программирования она всегда является
выпуклой.
Если определена область допустимых решений, то
нахождение решения задачи (1), (2) сводится к определ ению такой точки этой области, через которую проходит
гиперповерхность наинизшего (на ивысшего) уровня:
f  x1 , x2 ,..., xn   с . Указанная точка может нах одиться как
на границе области допустимых решений, так и внутри
нее.
70
5.2 Геометрическая интерпретация решения задач
нелинейного программирования
Процесс нахождения решения задачи нелинейного
программирования (1), (2) геометрическим способом с остоит из следующих этапов:
1) нахождение области допустимых решений задачи,
определяемой соотношениями (2) (если она пуста, то з адача не имеет решения);
2) построение гиперповерхности f  x1 , x2 ,..., xn   с ;
3) определение гиперповерхности наинизшего
(наивысшего) уровня или установление неразрешимости
задачи из-за неограниченности функции (1) снизу (сверху) на множестве допустимых решений;
4) нахождение точки области допустимых решений,
через которую проходит гиперповерхность наинизшего
(наивысшего) уровня и нахождение значения функции (1)
в этой точке.
Пример 5.1.
Минимизировать функцию  x1  3 2   x2  2 2
при условиях
 x12  x2  3  0

 x2  1  0
 x  0 .
 1
Целевая функция и три ограничения имеют вид
f  x    x1  32   x2  2 2
g1  x   x12  x2  3
g 2  x   x2  1
g 3  x    x1 .
Здесь функции f(x) и g 1 (x) нелинейные, поэтому имеем
задачу нелинейного программирования.
На рисунке 5.1 изображена допустимая область.
71
x2
4
3
g2
2
g3
( 3,2 )
1
 3  2 1
1
1
2
3
4
x1
2
3
g1
Рисунок 5.1 – Допустимая область для примера 5.1
Задача заключается в нахождении такой точки из д опустимой области, для которой  x1  3 2   x2  2 2 имеет
наименьшее возможное значение. Заметим, что точки
(x 1 ,x 2 ), удовлетворяющие равенству ( x1  3) 2  ( x2  2) 2  c ,
лежат на окружности радиуса c с центром в точке (3,2).
Для каждого неотрицательного c такая окружность называется линией уровня целевой функции, отвечающей з аданному значению c. Таким образом, задача заключается
в нахождении минимального c, при котором хотя бы одна
точка окружности принадлежит допустимой области. Как
видно на рисунке 5.1, такая окружность наи меньшего радиуса соответствует c=2 и пересекает допустимую область в единственной точке А(2,1). Поэтому точка А(2,1) оптимальное решение, и значение целевой функции в
этой точке равно 2.
Пример 5.2.
Максимизировать 6x1  x12  x2
при условиях
2x1  3x2  24
 x  2x  15
 1
2

3x1  2x2  24

x2  4
x1 , x2  0 .
72
На рисунке 5.2 изображена допустимая область зад ачи в виде многоугольника ОАВС. Следовательно, для
нахождения ее решения нужно определить такую точку
многоугольника ОАВС, в которой целевая функция
6x1  x12  x2 принимает максимальное значение.
x2
g1
x2  x12  6x1  13
12
10
x2  x12  6x1  3
8
6
A
g4
D
4
B
g2
2
2
0
2
4
6
8
10 12 14 16
g3
x1
Рисунок 5.2 – Допустимая область для примера 5.2
Построим линию уровня x2  x12  6x1  с и исследуем ее
поведение при различных значениях с. При каждом значении с получаем параболу, которая тем выше о тдалена
от оси Ох 1 , чем больше значение с. Целевая функция
принимает максимальное значение в точке касания одной
из парабол с границей многоугольника ОАВС. В данном
случае это точка D, в которой линия уровня
x2  x12  6x1  13 касается допустимой области. Координ аты точки D найдем из системы уравнений:
 x2  x12  6x1  13
 x  4.
 2
Точка D (3,4) – оптимальное решение и значение целевой функции в этой точке равно 13.
Как видно из примера 5.2, точка максимального значения целевой функции не является вершиной допуст имой области. Поэтому процедура перебора вершин, и спользуемая при решении задачи линейного программир ования, не применима для решения данной задачи.
Очевидно, что такой геометрический способ решения
подходит для решения очень простых задач и практич е73
ски неприменим в задачах, где число переменных больше
двух.
5.3 Задачи выпуклого программирования
Рассмотрим задачу нелинейного программирования.
Минимизировать (максимизировать)
f  x1 , x2 ,..., xn 
(5.5)
при условиях
 gi  x1 , x2 ,..., xn   bi  i  1,m
(5.6)
 x  0  j  1,n  .
 j
Для решения этой задачи в такой общей постановке не
существует универсальных методов. Однако для отдел ьных классов задач, в которых имеются дополнител ьные
ограничения относительно свойств функций f и g i , разработаны эффективные методы их решения. В частности,
ряд таких методов имеется для решения задач при усл овии, что f – выпуклая (вогнутая) функция и область д опустимых решений, определяемая (5.6) и (5.7) – выпуклая.
Дадим определения и понятия, необходимые нам в
дальнейшем.
5.3.1 Основные определения и теоремы
ОПРЕДЕЛЕНИЕ 5.1. Непустое множество S из Е n
называется выпуклым, если отрезок прямой, соединя ющий две любые точки множества S также принадлежит
этому множеству. Иными словами, если точки x1 и x 2 лежат в S, то точка λx1  (1  λ) x2 также должна принадлежать S для всех λ  0, 1.
На рисунке 5.3 приведены примеры множеств.
74
x2
б)
а)
x1
Рисунок 5.3 – Примеры множеств:
а) – выпуклое; б) – невыпуклое
ОПРЕДЕЛЕНИЕ 5.2. Пусть f : S  E1, где S – непустое
выпуклое множество в E n Говорят, что функция f выпукла
на S, если
(5.7)
f λx1  1  λ x2   λ f ( x1 )  1  λ  f( x2 )
для любых x1 , x2  S и λ  0, 1.
При этом, если имеет место строгое неравенство, то
говорят о строгой выпуклости.
Функция f называется вогнутой, если −f выпукла на S.
На рисунке 5.4 приведены примеры выпуклых и в огнутых функций.
а)
б)
f
x1
x2
в)
f
x1
f
x2
x1
x2
Рисунок 5.4 – Функции : а) – выпуклая функция;
б) – вогнутая функция; в) – функция, не являющаяся ни
вогнутой, ни выпуклой.
Замечания.1.Из определения квазивыпуклой функции
в п.4.1 очевидно следует, что выпуклая функция является
также и квазивыпуклой, причем строго квазивыпуклой.
Таким образом,предположение о квазивыпуклости иссл едуемой функции является существенно более слабым, чем
выпуклость этой функции.
2. Строго квазивыпуклые (квазивогнутые) фун кции
особенно важны в нелинейном программировании,т.к.
для этих функций локальный минимум (максимум) на
75
выпуклом множестве соответственно являются глобальными минимумом и максимумом.
ОПРЕДЕЛЕНИЕ 5.3. Говорят, что множество допустимых решений задачи (5)−(6) удовлетворяет условию
регулярности, если существует по крайней мере одна
точка x , принадлежащая области допустимых решений
такая, что
gi ( x )  bi , ( i  1,m) .
ОПРЕДЕЛЕНИЕ 5.4. Задача (5)−(6) называется задачей выпуклого программирования, если функция f является вогнутой (выпуклой), а функции g i – выпуклыми.
ОПРЕДЕЛЕНИЕ 5.5. Пусть x*  En . Если f ( x* )  f ( x )
для всех x из Е n , то x * называется точкой глобального
минимума функции f. Если существует ε − окрестность
N ε ( x* ) точки x  такая, что f ( x* )  f ( x ) для всех
x  N ε ( x* ) , то x * называется точкой локального миним у-
ма. При обратных неравенствах соответственно имеют
место точки глобального максимума и локального макс имума.
ОПРЕДЕЛЕНИЕ 5.6. Функцией Лагранжа задачи выпуклого программирования называется функция
L  x1 , x2 ,..., xn , λ1 , λ 2 ,..., λ m  
m
 f  x1 , x2 ,..., xn    λi bi  gi  x1 , x2 ,..., xn ,
(5.8)
i 1
где λ 1 , λ 2 , ..., λ m - неопределенные множители Лагранжа.
ОПРЕДЕЛЕНИЕ 5.7. Точка
( x0 , λ 0 )   x10 , x20 , ..., xn0 , λ10 , λ 20 , ..., λ m0  называется седловой
точкой функции Лагранжа, если
L x1 , x2 ,..., xn , λ10 , λ 20 ,..., λ m0   L x10 , x20 ,..., xn0 , λ10 , λ 20 ,..., λ m0  
 L x10 , x20 ,..., xn0 , λ1 , λ 2 ,..., λ m 


для всех x j  0 j  1,n и λ i  0  i  1,m.
ТЕОРЕМА 5.1. Любой локальный минимум (максимум) задачи выпуклого программирования является гл обальным минимумом (максимумом).
76
ТЕОРЕМА 5.2. (Теорема Куна-Таккера). Для задачи
выпуклого программирования (5.5)−(5.6), множество допустимых решений которой обладает свойст вом регулярности, точка x 0   x10 , x20 ,..., xn0  является оптимальным
решением тогда и только тогда, когда сущес твует такой
вектор λ 0  λ10 , λ 20 ,..., λ m0  λ i0  0, i  1,m, что ( x0 , λ 0 ) –
седловая точка функции Лагранжа.
Если предположить, что целевая функция f и функции
g i в (5.5)−(5.6) непрерывно дифференцируемы, то теор ема
Куна-Таккера может быть дополнена аналитическими в ыражениями, определяющими необходимые и достаточные
условия того, чтобы точка ( x0 , λ 0 ) была седловой точкой
функции Лагранжа, то есть являлась решением задачи
выпуклого программирования. Эти выраж ения имеют
следующий вид:
L0
 0  j  1, n ;
x j
L
x j0 0  0 ; x j0  0;
x j
L0
(5.9)
 0 i  1,m ;
λ i
L
λ i0 0  0 ; λ i0  0;
λ i
L0
L0
где
и
− значения соответствующих частных пр оx j
λ i
изводных функций Лагранжа, вычисленных в седловой
точке. Всем отмеченным выше требованиям, позволя ющим записать необходимые и достаточные условия для
седловой точки ( x0 , λ 0 ) функции Лагранжа в виде выражений (5.9), удовлетворяет задача квадратичного пр ограммирования, которая будет сформулирована ниже.
ОПРЕДЕЛЕНИЕ 5.8. Квадратичной формой относительно переменных x1 , x2 , ..., xn называется скалярная
функция от этих переменных, имеющая вид:


f  c11 x1 x1  c12 x1 x2  c13 x1 x3  ...  c21 x2 x1  c22 x2 x2  ... 
77
n
n
   ckj xk x j .
(5.10)
k 1 j 1
ОПРЕДЕЛЕНИЕ 5.9. Квадратичная форма f называется положительно (отрицательно)−определенной, если
f (x)  0 ( f ( x)  0) для всех значений переменных
x   x1 , x2 , ..., xn  кроме x  0 . Если же имеют место нестрогие равенства, то квадратичная форма f называется положительно (отрицательно)-полуопределенной.
ТЕОРЕМА 5.3. Квадратичная форма является выпуклой
функцией,
если
она
положительно−полуопределенная, и вогнутой функцией, если она о трицательно − полуопределенная.
ОПРЕДЕЛЕНИЕ 5.10. Задача, состоящая в определении минимального (максимального) значения функции
n
n
n
  ckj xk x j   d j x j
(5.11)
 aij x j  bi  i  1,m, x j  0 ,
(5.12)
k 1 j 1
j 1
при условиях
n
j 1
n
n
где   ckj xk x j - положительно (отрицательно) - полуk 1 j 1
определенная квадратичная форма, называется задачей
квадратичного программирования.
Для задачи (5.11), (5.12) функция Лагранжа будет
иметь вид
n
n
n
n



L    ckj xk x j   d j x j  λ i  bi   aij x j  .
j 1
k 1 j 1
j 1


Если функция имеет седловую точку ( x0 , λ 0 ), то в
этой точке выполняются соотношения (5.9). Вводя д ополнительные переменные v j ( j  1,n) и wi (i  1,m) , перепишем выражения (5.9) в виде
78
 L0
 x  v j  0  j  1, n ;
 j
 L0
 wi  0  i  1, m ;


λ
 i
 x j0v j  0;
λ i0 wi  0; x j0  0,v j  0, λ j0  0, w j  0 .
(5.13)
5.3.2 Метод неопределенных множителей Лагранжа
для решения задач квадратичного программирования
Рассмотрим задачу (5.11), (5.12) из пункта 5.3.1. Чт обы найти решение задачи квадратичного программиров ания (5.11), (5.12) нужно определить неотрицательное р ешение систем линейных уравнений (5.13). Это решение
можно найти с помощью метода искусственного базиса .
Процесс нахождения решения включает следующие
этапы:
1) составляют функцию Лагранжа;
2) записывают в виде системы (5.13) необходимые и
достаточные условия существования седловой точки для
функции Лагранжа;
3) используя метод искусственного базиса , либо устанавливают отсутствие седловой точки для функции Л агранжа, либо находят ее координаты;
4) записывают оптимальное решение исходной зад ачи
и находят значение целевой функции.
Пример 5.3.
Найти максимальное значение функции
f  2x1  4x2  x12  2x22
(5.14)
при условиях
 x1  2x2  8
(5.15)
2x1  x2  12
 x1  0, x2  0 .
Решение. Функция f является вогнутой, так как представляет собой сумму линейной функции f1  2x1  4x2
(которую можно рассматривать как вогнутую) и квадр атичной формы f 2   x12  2x22 , которая является отрица79
тельно определенной. Система ограничений включает
только линейные неравенства. Следовательно, можно
воспользоваться теоремой Куна-Таккера. Составим функцию Лагранжа:
L  2x1  4x2  x12  2x22  λ1 8  2x2  x1   λ 2 12  x2  2x1  (5.16)
и запишем необходимые и достаточные условия существования седловой точки построенной функции:
 L
 x  2  2 x1  λ1  2λ 2  0 ,
 L1

 4  4 x2  2 λ 1  λ 2  0 ,
 x2
 L
 8  x1  2 x2  0 ,

 λ 1
 L  12  2 x  x  0;
1
2
 λ
 2
(5.17)
 L
 x1 x  x1 2  2 x1  λ 1  2λ 2   0 ,
 L1
 x2
 x2 4  4 x2  2λ 1  λ 2   0 ,

x

2
 L
(5.18)
 λ 1 8  x1  2 x2   0 ,
λ 1

λ
1


L
λ
 λ 2 12  2 x1  x2   0 ,
 2 λ2
 x1 , x2 , λ 1 , λ 2  0.


Систему линейных неравенств (5.17) перепишем в виде:
2 x1  λ1  2λ 2  2
4 x2  2λ1  λ 2  4
(5.19)
x  2x  8
1
2
2 x  x  12 .
 1 2
Вводя теперь дополнительные неотрицательные переменные v 1 ,v 2 ,w 1 и w 2 , обращающие неравенства (5.17) в
равенства, получим
80
2 x1  λ1  2λ 2  v1  2
4 x2  2λ1  λ 2  v2  4
(5.20)
x  2x  w  8
1
2
1
2 x  x  w  12
 1 2
2
x1 , x2 , λ1 , λ 2 ,v1 ,v2 , w1 , w2  0 .
Учитывая равенства (5.20), можно записать:
(5.21)
v1 x1  0, v2 x2  0, w1λ1  0, w2 λ 2  0 .
Если теперь найти базисное решение системы лине йных уравнений (5.20) с учетом (5.21), то будет получена
седловая точка функции Лагранжа для исходной задачи,
то есть определено оптимальное р ешение.
Для нахождения базисного решения системы лине йных уравнений (5.20) воспользуемся методом искусственного базиса. В первое и второе уравнения (5.20) добавим неотрицательные переменные Z 1 и Z 2 и рассмотрим
задачу линейного программирования, состоящую в опр еделении максимального значения функции
при условиях
f  MZ1  MZ 2
2 x1  λ1  2λ 2  v1  z1  2
4 x2  2λ1  λ 2  v2  z2  4
x  2x  w  8
21x  x2  w1  12
 1 2
2
x1 , x2 , λ1 , λ 2 ,v1 ,v2 , w1 , w2 , z1 , z2  0 .
(5.22)
(5.23)
(5.24)
В результате решения задачи линейного программирования (5.22)−(5.24) находим допустимое базисное решение системы линейных уравнений (5.23) (таблица 5.1):
Отсюда
x10  1, x20  1, w1  5, w2  11, λ10  λ 20  v1  v2  0 .
Так как x10 v1  0, x20 v2  0, λ10 w1  0, λ 20 w2  0 , то
( x0 , λ 0 )=(1,1,0,0) является седловой точкой функции Л агранжа для исходной задачи. Следовательно, x  =(1,1) –
оптимальный план исходной задачи и f max =3.
Таблица 5.1 – Результаты вычислений методом Лагранжа
81
0
Базис
Cб
С0
0
0
0
0
Px1 Px2 Pλ 1 Pλ 2 Pv1
0
0
0
-М
-М
Pv2
Pw1 Pw2 PZ 1 PZ 2
1
PZ 1
-М
2
2
0
1
2
-1
0
0
0
1
0
2
PZ 2
-М
4
0
4
2
-1
0
-1
0
0
0
1
3
Pw1
Pw2
0
8
1
2
0
0
0
0
1
0
0
0
0
12
2
-1
0
0
0
0
0
1
0
0
0
-6
0
-2
0
-4
0
-3
0
-1
0
1
0
1
0
0
0
0
0
0
0
0
-М
2
2
0
1
2
-1
0
0
0
1
0
0
1
0
1
1/2
-1/4
0
-1/4
0
0
0
1/4
0
6
1
0
-1
1/2
0
1/2
1
0
0
-1/2
0
13
2
0
1/2
-1/4
0
-1/4
0
1
0
-1/4
0
0
-2
0
-2
0
0
0
-1
0
-2
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1/2
1
-1/2
0
0
0
1/2
0
0
1
0
1
0
0
0
5
0
0
1
0
0
11
0
0
0
1
0
0
0
0
0
4
5
6
1
2
3
4
PZ 1
Px2
Pw1
Pw2
5
6
1
2
3
4
5
Px1
Px2
Pw1
Pw2
5.4 Градиентные методы решения задач нелинейного программирования
Градиентные методы позволяют находить приближе нное решение любой задачи нелинейного программиров ания. Однако в общем случае это будет точка локал ьного
экстремума. Поэтому более целесообразно испол ьзовать
градиентные методы для нахождения решения задач в ыпуклого программирования, в которых локальный эк стремум является одновременно и глобальным.
Процесс нахождения решения задачи с помощью гр адиентных методов состоит в том, что начиная с некот орой точки x0 осуществляется последовательный переход
к некоторым другим точкам до тех пор , пока градиент
целевой функции f  x1 , x2 ,..., xn  в очередной точке xk  1 не
82
станет равным нулю, или не будет выполнено условие
| f ( xk  1 )  f ( xk ) | ε , где ε характеризует точность полученного решения.
Наиболее распространенными из градиентных мет одов являются методы приведенного градиента Вулфа,
штрафных функций и Эрроу−Гурвица.
5.4.1 Метод приведенного градиента Вулфа
Пусть требуется минимизиро вать целевую функцию
f (x)
(5.25)
при условиях
 Ax  b
(5.26)

x

0
.

где матрица А − матрица порядка m×n и ранга m, b − вектор из Е m , функция f непрерывно дифференцируема в Е n .
Заметим, что ограничения (5.26) линейные. Предположим, что А невырожденная матрица, а x - допустимая
точка. Матрицу А можно представить в виде B,D , а вектор x − в виде  x B , x D , где В – неособенная матрица порядка m×m. Вектор x B называется базисным, и его компоненты строго положительны. Компоненты внебазисн ого
вектора x D могут быть либо положительными, либо н улевыми.
Пусть f  x  B f  x , D f  x , где  B f (x ) − градиент
функции f по переменным базисного вектора xB , а
 D f (x) − градиент f по внебазисным переменным x D .
Направление d является направлением спуска и возмо жным для функции f в точке x , если f  x  d  0, Ad  0 и
d j  0 , если x j  0 . Определим вектор d , обладающий
этими свойствами. Представим вектор d в виде [d B ,d D ] .
Равенство Ad  Bd B  Dd D =0 выполняется, если для любого
d D положить d B   B 1 Dd D .
Пусть r ( rB ,rD )f ( x )  B f ( x ) B 1 A
градиент. Исследуем f ( x)d .
−
приведенный
83
f  x d  B f  x d B  D f  x d D   D f  x   B f  x B 1 N  d D =
= rD d D .
Мы должны выбрать вектор d D так, чтобы rD d D 0 и
d j  0 , если x j  0 . Для этого принимается следующее
правило. Для каждой внебазисной компоненты j положим
d j  r j , если r j  0 , и положим d j  r j x j , если r j >0. Из
этого следует выполнение неравенства d j  0 , если x j  0 .
Кроме того, f ( x)d  0 и строгое неравенство имеет место, если d D 0 .
Здесь вектор d  0 в том и только том случае, если x
седловая точка Куна−Таккера.
В целях сокращения записей символ, означающий
транспонирование опущен.
Алгоритм метода приведенного градиента.
Пусть имеем задачу (5.26). Предположим, что любые
m столбцов матрицы А линейно независимы и что каждая
экстремальная точка допустимой области (5.26) имеет m
строго положительных компонент. Указанный алгоритм
сходится к точке Куна−Таккера при условии, что в качестве базисных переменных выбраны m наибольших положительных переменных.
Начальный этап.
Выбрать точку x1 , удовлетворяющую условиям
Ax1  b, x1  0 . Положить k=1 и перейти к основному этапу.
Основной этап.
Шаг 1. Положить d kT (d B ,d D )T , где d D и d B получаются из формул (5.30) и (5.31) соответственно. Если d k  0 ,
то остановиться; xk − оптимальная точка (точка Куна −
Таккера). В противном случае перейти к шагу 2.
I k − множество индексов m наибольших компонент
вектора xk ,
(5.27)
B  {a j : j  I k }, D {a j : jI k } ,
84
(5.28)
r T  f ( xk )T   B f ( xk )T B 1 A ,
 r j , если j  I k и r j  0,
dj 
 x j r j , если j  I k и r j  0,
d B   B 1 Dd D .
(5.29)
(5.30)
(5.31)
Шаг 2. Решить следующую задачу одномерной м инимизации:
минимизировать
f ( xk  λd k )
при условии
0  λ  λmax ,
где
λ max
 min  x jk


:
d

0


, если d k  0,
jk
1

j

n
d


jk


,
если d k  0.

(5.32)
Здесь x jk , d jk – j-е компоненты векторов xk и d k .
Положим λ k равным оптимальному и xk  1  xk  λ k d k .
Заменить k на k+1 и перейти к шагу 1.
Пример 5.4.
Рассмотрим задачу:
2 x12  2 x22  2 x1 x2  4 x1  6 x2
минимизировать
при условиях
x1  x2  x3  2
x1  5x2  x4  5
x1 , x2 , x3 , x4  0 .
В качестве начальной точки выберем x1  0,0,2,5Т .
Градиент функции f ( x) (4 x1 2 x2 4, 4 x2 2 x1 6, 0,0)T .
Информацию по каждой итерации будем предста влять
в виде таблицы, подобной симплекс-таблице.
Итерация 1.
85
Поиск направления.
В точке x1  0, 0, 2, 5Т имеем f ( x1 )   4,6, 0, 0Т . В
соответствии с (5.27) множество I 1 ={3,4}, так что
B=[a 3 ,a 4 ] и D=[a 1 ,a 2 ] (согласно (5.28)). Согласно (5.29)
приведенный градиент
r T  (4,6, 0, 0)  (0, 0)  1 0  1 1 1 0  
 0 1  1 5 0 1 
 (4,6, 0, 0)  (0, 0)1 1 1 0   (4,6, 0, 0) .
1 5 0 1 
Результаты вычислений будем помещать в таблицу
5.2.
В соответствии с (5.30) имеем d D d1 ,d 2 T 4,6T . По
формуле (5.31) d B d3 ,d4 Т  B 1Dd D . Получим
1 1 
D 
 .
Тогда
B   1 0  ,
B 1   1 0  ,
0 1
1
0
0 1


d B  1 1  4    10,34T . Вектор направления, таким об1 5  6 
разом, равен d1  4, 6,  10,  34T .
Линейный поиск.
T
При начальной точке 0, 0, 2, 5 минимизируем целевую функцию по направлению d1  4, 6,  10,  34T . Максимальное значение λ, для которого точка x1  λd1 допустима, вычисляется в соответствии с (5.32) и равно
2 5 5
λ max  min  ,   .
10 34  34
Значение целевой функции в точке x1  λd1
f ( x1  λd1 )  56λ 2  52λ ,
так что задача линейного поиска имеет вид:
минимизировать
56λ2  52λ
при условии
0λ 5 .
34
Отсюда
86
T
 10 15 9 
λ1  5 и x2  x1  λ1d1  
, , , 0 .
34
17
17 17 

Итерация 2.
T
 10 15 9 
Поиск направления. В точке x2  
, , , 0
 17 17 17 
ответствии с (5.27) имеем
в со-
I 2 {1,2}, B a1 ,a2 , D a3 ,a4  и
T
 58 62

f (x2 )    ,  , 0, 0  .
 17 17

В соответствии с (5.29) имеем
 58 62
  58 62  1 1  11 1 1 0 
r    ,  , 0, 0     ,     

 17 17
  17 17  1 5  1 5 0 1 
5 1

1
0
 

 58 62
  58 62 
4
4    0,0, 57 , 4  .
   ,  , 0, 0     ,   
17 17 
 17 17
  17 17   0 1  1 1  

4 4
T
Тогда, согласно (5.30) имеем, что
T
513
 513 
 9   57 
и d 4  0 , так что d D   
, 0 .
d 3       
289
289


 17   17 
Вектор d B равен
1
 2565 
 5
513






 
T


1156
4
4
.
 289  
d B  d1 , d 2   


513
1
1

 
  0   
 1156 
 4
4
Таким образом, вектор направления равен
T
513
513 
 2565
d2  
,
,
, 0 .
1156
1156
289


87
Линейный поиск.
T
 10 15 9 
Начиная процедуру из точки x2   , , , 0  , ми 17 17 17 
нимизируем
целевую
функцию
по
направлению
T
513
513 
 2565
d2  
,
,
, 0  . Максимальное значение λ,
 1156 1156 289 
для которого точка x2  λd 2 допустима, равно
  15  9 


λmax  min 17 , 17   17 .
513
513
57
 1156  289 
Значение целевой функции в точке x2  λd 2
f  x2  λd 2   12,21λ 2  5,95λ  6,436, так что λ 2 находится из
решения задачи.
Минимизировать
12,21λ2  5,95λ  6,436
при условии
0  λ  17 .
57
Т
68
 35 24 3 
Отсюда λ 2 
, x3  x 2  λ 2 d 2   , , , 0  .
279
 31 31 31 
Итерация 3.
Поиск направления.
Теперь I 3 ={1,2}, то есть B=[a 1 ,a 2 ] и D=[a 3 ,a 4 ]. Имеем
T
 32 160

f (x3 )    , 
, 0, 0  .
31
 31

Вектор
 32 160
  32 160  1 1   11 1 1 0 
r   ,
, 0, 0     , 
  0, 0, 0, 1
  
31
31  1 5  1 5 0 1 
 31
  31
T
Отсюда d D   d3 , d4 T  0, 0T , d B   d1 , d 2 Т   0, 0Т .
Следовательно, d  0 и решение x3 оптимально.
88
Таблица 5.2 – Результаты вычислений методом градие нта
Вулфа
x3 x 4 f ( x k )
x2
x1
Решение x1
0
0
2
5
0,0
f ( x k )
-4
-6
0
0
 0  x3
1
1
1
0
 B f ( x1 )   
1
5
0
1
 0  x4
r1
-4
-6
0
0
10
17
 58
17
15
17
62
17
x1
1
0
x2
0
1
0
0
35
31
 32
31
24
31
 160
31
Решение x2
f ( x2 )
  58 


 B f ( x 2 )   17 
  62 
 17 
r2
Решение x3
f ( x 3 )
  32 


 B f ( x3 )   31 
  160 
 31 
r3
x1
x2
1
0
0
1
0
0
9
17
0
0
0
5
4
1
4
57
17
3
31
1
0
0
5
4
1
4
0
1
-6,436
4
1
4
4
17
0
-7,16
4
1
4
1
5.4.2 Метод штрафных функций
89
Для определенности рассмотрим задачу нахождения
максимального значения вогнутой функции f  x1 , x2 ,..., xn 
при условиях gi x1 , x2 ,...,xn   bi (i  i, m), x j  0 ( j  1,n) , где
g i – выпуклые функции. Заметим, что здесь функции g i
могут быть как линейными, так и нелинейными. Однако в
первом случае удобнее использовать метод пр иведенного
градиента Вулфа, что существенно сокращает вычисл ения.
Вместо непосредственного решения вышеприведенной задачи, находят максимальное значение функции
F  x1 , x2 ,..., xn  = f  x1 , x2 ,..., xn  + H  x1 , x2 ,..., xn  ,
являющейся
суммой целевой функции задачи, и некоторой функции Н,
определяемой системой ограничений и наз ываемой
штрафной функцией. Штрафную функцию записываем в
виде:
m
H  x1 , x2 ,..., xn  =  αi  x1 , x2 ,..., xn  g i  x1 , x2 ,..., xn  ,
i 1
где

0,если bi  gi  x1 , x2 ,..., xn   0
,
αi  x1 , x2 ,..., xn   

αi ,если bi  gi  x1 , x2 ,..., xn   0
(5.33)
а α i  0 − некоторые постоянные числа, называемые вес омыми коэффициентами.
Используя штрафную функцию, последовательно п ереходят от одной точки к другой до тех пор, пока не п олучат приемлемое решение. При этом координаты посл едующей точки находят по формуле
x (jk  1)
 ( k )
 f ( x ( k ) ) m g ( x ( k ) )  
 max 0, x j  λ 
  αi
 .

x

x

j
j
i 1

 
(5.34)
Из соотношения (5.34) следует, что если предыдущая
точка находится в области допустимых решений исхо дной задачи, то второе слагаемое в квадратных скобках
равно нулю и переход к последующей точке определяется
только градиентом целевой функции.
90
Если же указанная точка не принадлежит области допустимых решений, то за счет данного слагаемого на п оследующих итерациях достигается возвращение в область
допустимых решений. При этом значении α i должны быть
маленькими.
Алгоритм метода штрафных функций.
Процесс нахождения решения задачи выпуклого программирования включает следующие этапы:
1. Определяют исходное допустимое решение.
2. Задают точность вычислений (штрафной параметр
λ).
3. Находят по всем переменным частные производные
от целевой функции и функций, опред еляющих область
допустимых решений задачи.
4. По формулам (5.34) находят координаты точки,
определяющей возможное новое решение задачи.
5. Проверяют, удовлетворяют ли координаты найде нной точки системе ограничений задачи. Если нет, то п ереходят к следующему этапу. Если координаты найденной точки удовлетворяют системе ограничений, то иссл едуют необходимость перехода к последующему допуст имому решению. В случае такой необходимости переходят
к этапу 2, в противном случае найдено решение задачи с
заданной точностью.
6. Устанавливают значение весовых коэффициентов и
переходят к этапу 4.
Пример 5.5.
Найти максимальное значение функции f   x12  x22
при условиях
x1  7 2  x2  7 2  18,
x1 , x2  0 .
Целевая функция данной задачи представляет собой
отрицательно−определенную квадратичную форму, а
ограничения – выпуклую область. Следовательно, имеем
задачу выпуклого программирования. Построим область
допустимых решений задачи и линии уро вня (рисунок
5.5). Точка касания одной из этих окружностей с обла91
стью допустимых решений и является искомой точкой
максимума целевой функции.
10
x2
8
x
(0)
x ( 2 ) x (1)
6
x (3)
4
x ( 4)
2
2
4
6
8
10
x1
Рисунок 5.5 – Область допустимых значений
и линии уровня
В качестве начальной точки возьмем x (0) =(6,7) и положим λ=0,1. Определим частные производные:
f
 2 x1 ;
x1
f
 2 x2 ;
x2
g
 2 x1  14;
x1
g
 2 x2  14.
x2
Далее, используя формулу (5.34), построим послед овательность точек для определения приемлемого реш ения.
Итерация 1.
Так как точка x (0) =(6,7) принадлежит области допустимых решений, то

f ( x (0) ) 
(1)
( 0)
x1  max 0 ; x1  λ
  max0 ;6  0,1  (2)  6  4,8 ,

x
1


x2(1)
92

f ( x (0) ) 
( 0)
 max 0 ; x2  λ
  max0 ;7  0,1(2)7  5,6 .

x
2


Найдем g ( x (1) )  18  4,84  1,96  11,2 . Так как g ( x (1) )  0 ,
то точка x (1)  4,8 ;5,6 принадлежит допустимой области.
В этой точке значение целевой функции f ( x (1) )  54,4 .
Итерация 2.
x1(2)  max 0 ; 4,8  0,1(2)4,8   3,84
x2(2)  max 0 ; 5,6  0,1(2)5,6   4,48
g ( x ( 2) )  18  9,9856  6,3504  1,664  0 ; f ( x ( 2) )  34,816.
Итерация 3.
x1(3)  max 0 ; 3,84  0,1(2)3,84   3,072
x2(3)  max0; 4,48  0,1(2)4,48   3,584
g( x (3) )  18  15,429184  11,669056  9,0981  0 .
Итерация 4.
Точка x (3 ) не принадлежит допустимой области. Сл едовательно

 f ( x (3) )
g ( x (3) )  
(4 )
( 3)
x1  max 0 ; x1  λ 
α
 

x

x

1
1

 
= max 0 ; 3,072  0,1 (2)  3,072  α  ((2)  3,072  14) 
= max 0 ; 2,4576  α  0,7856 .
Аналогично получим:
x2(4)  max 0 ; 2,6672  α  0,6832 .
Здесь возникает вопрос о выборе весового коэффиц иента . Выберем его так, чтобы точка x (4 ) не слишком
далеко удалилась от границы допустимой области и вм есте с тем принадлежала этой области. Этим требованиям
удовлетворяет α  1,9 . Тогда x1(4 )  3,910 ; x2(4)  4,165 ;
g ( x (4 ) )  0,660; f ( x (4 ) )  32,950.
Результаты вычислений приведены в таблице 5.3.
93
Таблица 5.3 – Результаты вычислений методом штрафных функций
K
g ( x (k ) )
f ( x (k ) )
x (k )
1
2
3
4
5
6
7
8
9
10
11
12
(4,8; 5,6)
(3,84; 4,48)
(3,072; 3,584)
(3,950; 4,165)
(3,16; 3,332)
(3,987; 4,059)
(3,189; 3,247)
(3,999; 4,027)
(3,199; 3,219)
(4,004; 4,012)
(3,203; 3,210)
(4,005; 4,008)
11,2
1,664
-9,0981
0,660
-10,2
0,272
-2,715
-0,137
-10,744
0,096
-10,781
0,078
-54,4
-34,816
-32,950
-32,372
-32,185
-32,128
-32,104
Сравнивая значения целевой функции, полученные в
10-й и 12-й итерациях, видим, что они совпадают с то чностью до 10 -1 . Это говорит о близости точки
x (12)  (4,005; 4,008) к точке максимума целевой функции.
Исследуем теперь градиенты функций f (x) и g (x ) в точке x (12 ) :
f ( x (12 ) )  (8,01;8,016) ,
g ( x (12 ) )  (5,99;5,984) .
Вычислим отношения одноименных координат ве кторов:  8,01/ 5,99  1,337;  8,016 / 5,984  1,339 . Следовательно, векторы f ( x (12) ) и g ( x (12) ) практически коллинеарны. Полученное решение x (12)  ( 4,005; 4,012 ) при
необходимости можно уточнить дальнейшими шагами до
полной коллинеарности градиентов целевой и огранич ительной функций.
В заключении заметим, что на практике использую тся несколько вариантов штрафных функций, а также то,
что решение сложных задач нелинейного программир ования градиентными методами связано с большим объ емом вычислений и целесообразно только с использован ием ЭВМ.
94
Download