Uploaded by leolv

Задачи нелинейного программирования

advertisement
Задачи нелинейного программирования
К
классу
нелинейного
программирования
относятся задачи, в которых либо целевая функция,
либо ограничения, либо и то и другое нелинейны.
z   ( x n )  maxmin 
при ограничениях
g i ( x n )  0 , i  1, m .
Функция  (x n
)
имеет единственный экстремум, если
она выпукла (задачи выпуклого программирования).
Необходимым и достаточным условием выпуклости
функции
 (x n )
является
положительная
полуопределенность матрицы, составленной из вторых
частных производных этой функции:
  2
 2
 2 
 2

...
 x 1 x 1 x 2 x 1 x n 
  2
 2
 2 
...


2

x

x
x 2 x n  .

x
2
 2 1
......................
 ..........

2
 2
 2 
  
 x x x x ... x 2 
n
2
n 
 n 1
Для выполнения указанного условия положительной
полуопределенности
требуется,
чтобы
были
неотрицательными все главные миноры этой матрицы, т.е.
главные миноры
k -ого
порядка
( k  1, n) ,
являющиеся
определителями, составленными из элементов первых
строк и первых
k
k
столбцов рассматриваемой матрицы.
Экстремум целевой функции может достигаться как на
границе области допустимых решений, так и внутри этой
области.
Условиями экстремума функции
ограничений на ее аргументы
xn
(x n )
без учета
являются:
- необходимое условие

0
x i
,
i  1, n ;
- достаточное условие предполагает, что в некоторой
окрестности оптимального плана
x n
вторая производная не
изменяет знак
n
 2
   2  2 
j  1 x j
j 1
n
Вид
 2
 x x
i 1
j
i
n
.
i j
экстремума
определяется
знаком
второй
производной в экстремальной точке:
- если
 
  x n  0 ,
то функция
( x n )
имеет в точке
x n
максимум;
- если
 
  x n  0 ,
минимум.
то функция
( x n ) имеет
в точке
x n
Таким
образом,
проверка
необходимых
условий
экстремума целевой функции позволяет найти оптимальную
точку, а проверка достаточных условий экстремума –
определить максимум или минимум достигает целевая
функция
в
оптимальная
оптимальной
точка
точке.
безусловного
Однако
найденная
экстремума
целевой
функции может не являться решением исходной задачи
(условного экстремума) нелинейного программирования,
т.к. для нее не будут выполняться ограничения этой задачи.
Введем вектор
функции  ( x n
λ m  ( λ1 , λ2 ,..., λm )
и составим из целевой
и функций ограничений
)
gi ( x n ) , i  1, m ,
функцию Лагранжа:
L( x
n
, m )  ( x
m
n
)   i gi ( x
i 1
).
n
Таким приемом исходная задача на условный экстремум
функции
 (x n )
сводится
экстремум функции
к
L(x n ,  m ) .
задаче
на
безусловный
Тогда необходимыми условиями экстремума служат:
m
g i

 L



 0 , j  1, n ,

i
 x
x j i  1 x j
j
 L

 g i ( x n )  0 , i  1, m .
  i
Таким
образом,
образуется
система
n  m 
алгебраических уравнений с n  m  переменными.
Достаточным условием экстремума в рассматриваемой
задаче служит постоянство знака второй производной
 (x n )
в окрестности экстремальной точки, а ее знак
определит вид экстремума:
при    0 - минимум,
при    0 - максимум.
В общем случае необходимые и достаточные условия
экстремума определяются теоремой Куна-Таккера. Ее
смысл сводится к следующему. Точка
седловой точкой функции
 m 0
является
если для всех
x n 0
и
выполняется условие:
L(x n ,  m )  L( x * n , *
функцией
xn
L(x n ,  m ) ,
(x n , m )
m
L(x n ,  m )
)  L( x n , m ) ,
т.е.
в
седловой
точке
достигается одновременно минимум по
и максимум по  m .
Пример
Найти условный экстремум функции (решение
задачи нелинейного программирования методом
множителей Лагранжа):
 (x 1 , x 2 )  4 x 12  3 x 22  2 x 1 x 2  x 1  x
при условии (ограничении)
x1  3 x2  5 .
Решение
x1  3 x2  5
x1  3 x2  5  0
Составим функцию Лагранжа:
L  4 x 12  3 x 22  2 x 1 x 2  x 1  x 2   ( x 1  3 x 2  5
.
Найдем безусловный экстремум этой функции.
Необходимые условия экстремума:
L
 8 x1  2 x2  1    0
,
x 1
L
 6 x 2  2 x 1  1  3   0
,
x 2
L
 x1  3 x 2  5  0 .

Получим систему уравнений
 8 x 1  2 x 2    1 ,
  2 x 1  6 x 2  3   1 ,
 x 1  3 x 2
 5
Три
метода
решения
уравнений:
- метод Крамера,
- метод обратной матрицы,
- метод Жордана-Гаусса.
системы
линейных
Используя
первые
два
уравнения
:
24 x1  6 x 2  3   3
 2 x 1  6 x 2  3   1
сократим переменную
22 x1  12 x2  2
Получим систему:
 2 2 x1  12 x2  2,
 x  3x
 5

1
2
системы,
 4 , получим:
 2 2 x1  12 x2  2 ,
  4 x  12 x   20

1
2
Умножив второе уравнение на
Складывая уравнения, и находим:
18x1  18 ,
x1  1 .
Подставляя
значение
x 1  1
уравнение
x1  3 x2  5 , получим
 1  3 x2  5
 3 x2  6
x 2  2
в
Подставляя
полученные
x 1  1
и
x 2  2
в первое уравнение
8 x1  2 x 2    1 ,
получим:
8   1   2   2     1
84   1
 5
Ответ:

1
x  1 ,

2
x  2 ,
 5
*
 (x 1 , x 2 )  4 x 12  3 x 22  2 x 1 x 2  x 1  x 2
Download