Метод линеаризации Франка-Вульфа
Метод линеаризации– один из наиболее эффективных методов решения задач математического программирования. Данный метод базируется на идее линейной или квадратичной аппроксимации целевой функции в окрестностях очередной точки. Поэтому в качестве вспомогательных возникают задачи линейного или квадратичного программирования.
Общая постановка задачи:
(5.45)
(5.46)
Здесь R – отношения вида .
Суть метода при линейной аппроксимации заключается в том, что:
1. Нелинейная функция (5.45) заменяется линейной в точке (к), принадлежащей допустимой области G
(5.47)
2. Решается задача линейного программирования:
(5.48)
Пусть решением этой задачи является точка (k).
3. Из точки в направлении смещаемся с некоторым шагом в точку (5.49)
Так как и принадлежат допустимой области G, а область G, определяемая ограничениями (5.46) выпукла и , то (k + 1) G.
Шаг можно выбирать по-разному:
1) шаг - произвольное, достаточно малое число ;
2) шаг выбирается таким, при котором функция принимает наибольшее значение при всех . Если найденное значение принадлежит концам отрезка [0;1], то необходимо выбрать один из концов этого отрезка.
3. Итерации продолжаются до тех пор, пока
(5.50)
где -положительное, малое число.
Пример 5.2 Требуется максимизировать функцию
(5.51)
при условиях (5.52)
с точностью 0,1.
В качестве начального допустимого вектора берем (0) = (0,0). Значение целевой функции в этой точке F (0) = 0. Нелинейную функцию (5.51) заменяем линейной и F * (0,0) в соответствии с (5.47)
Далее решаем задачу: х1 + 8х2 ® mах
Здесь ограничения (5.52) приведены к каноническому виду.
БП | Cб | В | ||||
X1 | X2 | X3 | X4 | |||
X1 | ||||||
X4 | ||||||
-1 | ||||||
X1 | -1 | |||||
X2 | ||||||
-1 | -7 |
Итак, . Вектор находим по формуле (5.49): Шаг найдем из условия максимума f ( (1)) при .
F ( (1)) = - (2 )2- (5 ) 2 + 2 + 8*5 = -29 2 + 42 .
( (1)) = -58 + 42 = 0. Откуда = 0,724.
Следовательно (1) = (1,448; 3,62). Значение целевой функции в этой точке F (1) = 15,207.
Вторая итерация: F * (1,448; 3,62) = -1,896х1 + 0,76х2; (1) = (0,5);
(2) = ((1- ) 1,448; 5 + (1- ) 3,62); = 0,474;
(2) = (0,762; 4,27); F (2) = 16,108.
Третья итерация: F * (0,762; 4,27) = -0,524х1-0,54х2; (2) = (0,0);
(3) = ((1- ) 0,762; (1- ) 4,27); = 0,072;
(3) = (0,707; 3,963); F (3) = 16,206.
| F (3) -F (2) | = | 16,206-16,108 | = 0,098 < 0,1. То есть приближенно можно считать, что Fмax = 16,206; opt = (0,707; 3,963) .Точное решение этой задачи: Fмax = 16,25; opt = (0,5; 4).