
8.5. Метод барьерных функций
Этот метод был предложен Фиакко и Мак-Кормиком и назван ими методом последовательной безусловной минимизации. Этот метод предназначен для решения задач нелинейного программирования в форме неравенств:
¦(x) ® min ; x Î X Ì E n , (8.32)
gi(x) < 0 , i = 1:m. (8.33)
Неравенство (8.33) запрещает присутствие в задании множества X ограничений-равенств. На множестве Х определим функцию B(x) , которая называется барьерной функцией. Барьерные функции могут быть двух типов.
В первом типе используется так называемая обратная функция:
B(x)
= -
[gi(x)]-1,
(8.34)
определенная всюду, за исключением границы допустимой области.
Во втором типе используется логарифмическая функция вида
B(x)
= -
ln
[-gi(x)],
(8.35)
определенная только внутри допустимой области. Она неограниченно возрастает при приближении к границе допустимой области.
Составим функцию
¦(x,
k)
= ¦(x)
+
B(x).
Штрафная добавка
B(x)
к целевой функции ¦(x)
образует как бы барьер, препятствующий
выходу из допустимой области в процессе
оптимизационного поиска.
Метод заключается в следующем. Выбирается последовательность постоянных {ki}, ki ® ¥ . Решается соответствующая последовательность задач минимизации без ограничений, в результате чего определяется последовательность минимальных точек {x(k)*}. При определенных условиях такая последовательность {x(k)*} существует и точка минимума x* задачи с ограничениями получается в виде предела.
, ¦*»
¦(x(k)).
Поскольку все точки последовательности {x(k)} лежат в допустимой области, метод барьерных функций называют методом внутренней точки.
Пример 8.7. Решить задачу
¦(x) = x ® min,
-x + 2 £ 0
методом барьерных
функций, используя в качестве В(x)
= -1/gi(x).
Решение. Обобщенная функция будет иметь вид
¦(x,
k)
= x
+
.
(8.36)
Y
¦1(x)
A1
5
4
¦100(x)
3
A2
A
1
x*
x(100)
x(1)
1 2 3 4 5 X
Рис. 8.8. Графическая иллюстрация задачи
Область ограничений лежит справа от вертикальной прямой x = 2 (рис. 8.8). Начиная из произвольной точки допустимого множества, например x(0) = 5, найдем решение ¦ (x, k) при различных k. Вычислим производную
d¦(x, k)/dx = 1 – 1/(k (x-2)2) = 0.
Откуда
k
(x-2)2
– 1 = 0,(x-2)2
=
,
x
= 2 +
.
(8.37)
Решая (8.37) при k=1; 9; 100, получим соответственно x(1)* = 3, x(9)* = 2,3, x(100)* = 2,1 (табл. 8.2).
Таблица 8.2.
Оптимальные значения функции (8.36)
k |
x |
¦(x,k) |
1 |
3 |
4 |
9 |
2,3 |
2,67 |
100 |
2,1 |
2,2 |
Нетрудно видеть, что последовательность точек A1, A2, A3 стремится к A - минимуму функции при наличии ограничений.
d2¦(х,
k)/dx2
= 2 /[k
(x-2)3]
и минимум достигается при x
= 2 +
.
Тогда A1
есть точка с координатами (3; 4), A2
– точка с координатами (2,3;2,67), A3
– точка с координатами (2,1;2,2). Ясно, что
при k
®
¥
x(k)*
= 2.