
- •3.7. Метод условного градиента
- •3.8. Метод штрафных функций
- •4. Вариационное исчисление
- •4.1. Формула Эйлера – Лагранжа
- •4.2. Частные случаи формулы Эйлера
- •4.3. Обобщенная задача вариационного исчисления
- •4.4. Решение задач вариационного исчисления с ограничениями
- •4.5. Изопериметрическая задача
- •4.6. Функционалы, зависящие от производных высших порядков
- •5. Оптимальное управление
- •5.1. Постановка задачи
- •5.2. Классификация задач оптимального управления
- •5.3. Принцип максимума Понтрягина
- •5.4. Задача о максимальном быстродействии
- •Список литературы
Составим симплекс-таблицу:
-
х1
х2
1
2
v1
v2
w3
2
-2
1
-1
-1
0
2
w4
-2
4
1
2
0
-1
6
w1
1
1
0
0
0
0
2
w2
-1
2
0
0
0
0
2
0
-2
-2
-1
1
1
-8
При переходе от одной симплекс-таблицы к другой необходимо проверять выполнение ограничений-равенств. В данном случае, 1 и 2 нельзя переводить из свободных в базисные.
Решение заканчивается, когда w3 = w4 = 0 и в правом нижнем углу таблицы стоит 0.
Ответ: х1 = 0,8, х2 = 1,2 .
3.7. Метод условного градиента
Этот метод применяется, когда ограничения линейные и могут иметь вид как равенств, так и неравенств, а целевая функция нелинейная. Метод относится к классу итерационных.
Рассмотрим сущность метода на примере функции двух переменных (рис. 3.7).
grad
f
()
x2
ЦФ
x1
Рис. 3.7. Метод условного градиента
Пусть
–
приближение
к экстремуму
на i-м
шаге. В точке
находим
градиент. На этом шаге целевую функцию
заменяем новой функцией, коэффициентами
которой являются координаты вектора
градиента в точке
,
таким образом, получаем линейную целевую
функцию. Решив задачу линейного
программирования в точке
,
получим точку
.
Затем делаем шаг в направлении отрезка
– получаем
новую точку
.
Постановка задачи:
1. f (x1 , x2 , , xn ) min(max).
2.
gi
(x1
, x2
, ,
xn)
0 , i =
,
x1 , x2 , , xn 0. (3.24)
3.
=
(x10
, x20
, ,
xn0)
– начальная точка приближения к
экстремуму.
4. – точность нахождения экстремума.
Алгоритм метода (рассматривается для i-го шага):
1. Находим grad f = ( f / x1 , f / x2 , , f / xn).
2. Составляем вспомогательную функцию Z:
Z
= x1
f /
x1 +
+ xn
f
/
x n
.
(3.25)
3. Решаем задачу линейного программирования:
Zmin (max)
gi
(x1
, x2
, ,
xn
)
0 , i =
,
(3.26)
x1 , x2 , , x n 0 .
Положим,
решением задачи линейного программирования
является вектор:
= (z1i
, z
2i
, ,
z
n i
), где zji
– значения
переменных xj
на i-м
шаге приближения к экстремуму (решение
задачи (3.26)).
4. Находим новую точку приближения к экстремуму:
=
+(
-
).
x1i+1
= x1i
+ (z1i
- x1i
),
(3.27)
xni+1 = xni + (zni - xni ).
5. Выбираем шаг .
Возможны два варианта:
- шаг фиксирован (не изменяется на протяжении всего решения),
- выбор шага аналогичен выбору в методе наискорейшего спуска.
6. Проверяем критерии окончания счета. Используются те же критерии, что и в задачах на поиск безусловного экстремума.
Пример 3.12.
f(x1, x2)= 2x1 + 4x2 - x12 - 2x22 max ,
x1
+ 2x2
8,
2x1 - x2 12,
x1 , x2 0.
= (0, 0),
= 0,01.
Решение:
grad f(x1, x2) = ( f / x1 , f / x2 ) = (2 - 2x1 , 4 - 4x2),
Z
= x1
f
/
x1
+ x2
f
/
x2
,
х1=0, х2=0 х1=0, х2=0
Z = 2x1 + 4x2 max,
x1+
2x2
8,
2x1 - x2 12,
x1 , x2 0.
Решив
эту задачу линейного программирования,
получаем
= (0, 4).
Далее находим выражение для подсчета координат новой точки приближения к экстремуму:
x11 = x10 + 1(z10 - x10 ) = 0 + 1 0 =0 ,
x21 = x20 + 1(z20 - x20 ) = 0 + 1 4 = 41 .
Для нахождения величины шага подставим x11 и x21 в функцию f:
f (1) = 161 - 3212,
f /1 = 16 - 641 = 0, 1 = 0,25,
x11 = 0, x21 = 4 0,25 = 1 .
Проверка
критерия окончания счета: f
()
-f
(
)=
2 > ,
следовательно, требуется выполнить еще
шаг.