Пусть требуется найти максимальное значение вогнутой функции
¦(х1, х2, х3,…, хn) (57)
при условиях
n ___
å aijxj £ bi (i = 1, m), (58)
j=1 ___
xj ³ 0 (j = 1, n). (59)
Характерной особенностью этой задачи является то, что ее система ограничений содержит только линейные неравенства. Эта особенность является основой для замены в окрестности исследуемой точки нелинейной целевой функции линейной, благодаря чему решение исходной задачи сводится к последовательному решению задач линейного программирования.
Процесс нахождения решения задачи начинают с определения точки, принадлежащей области допустимых решений задачи. Пусть это точка Х(k) , тогда в этой точке вычисляют градиент функции (57)
Затем находят максимальное значение этой функции при ограничениях (58) и (59). Пусть решение данной задачи определяется точкой Z(k). Тогда за новое допустимое решение исходной задачи принимают координаты точки Х(k+1):
Х(k+1) = Х(k) + lk(Z(k) – Х(k) ), (61)
где lk – некоторое число, называемое шагом вычислений и заключенное между нулем и единицей (0 £ lk £ 1). Это lk берут произвольно или определяют таким образом, чтобы значение функции в точке Х(k+1)¦(Х(k+1)), зависящее от lk , было максимальным. Для того необходимо найти решение уравнения
d¦ \ dlk = 0 и выбрать его наименьший корень. Если его значение больше единицы, то следует положить lk = 1. После определения числа lk находят координаты точки Х(k+1), вычисляют значение целевой функции в ней ми выясняют необходимость перехода к новой точке Х(k+2). Если такая необходимость имеется, то вычисляют в точке х(k+1) градиент целевой функции, переходят к соответствующей задаче линейного программирования и находят ее решение. Определяют координаты точки Х(k+2) и исследуют необходимость проведения дальнейших вычислений. После конечного числа шагов получают с необходимой точностью решение исходной задачи.
Итак, процесс нахождения решения задачи (57) – (59) методом Франка-Вульфа включает следующие этапы:
1°. Определяют исходное допустимое решение задачи.
2°. Находят градиент функции (57) в точке допустимого решения.
3°. Строят функцию (60) и находят ее максимальное значение при условиях (58) и
(59).
4°. Определяют шаг вычислений.
5°. По формулам (61) находят компоненты нового допустимого решения.
6°. Проверяют необходимость перехода к последующему допустимому решению. В случае необходимости переходят к этапу 2°, в противном случае найдено приемлемое решение исходной задачи.
П р и м е р. Методом Франка-Вульфа найти решение задачи, состоящей в определении максимального значения функции
¦ = 2х1 + 4х2 – х12 – х22 (62)
при условиях
ì х1 + х2 £ 8,
í (63)
î 2х1 – х2 £12,
х1, х2 ³ 0. (64)
Р е ш е н и е. Найдем градиент функции
Ѧ = [ ¶¦ \ ¶х1, ¶¦ \ ¶х2 ] = (2 – 2х1, 4 – 4х2)
и в качестве исходного допустимого решения задачи возьмем точку х(0) = (0, 0), а в качестве критерия оценки качества получаемого решения – неравенство
½¦(Х(k+1) ) - ¦(Х(k) )½ < e, где e = 0,01.
I и т е р а ц и я. В точке Х(0) градиент Ѧ(Х(0) ) = (2, 4). Находим максимум функций
F1 = 2х1 + 4х2 (65)
При условиях (63) и (64)
ì х1 + х2 £ 8,
í (66)
î 2х1 – х2 £12,
х1, х2 ³ 0. (67)
Задача (65) – (67) имеет оптимальный план Z(0) = (0, 4).
Найдем новое допустимое значение исходной задачи по формуле (61):
Определим теперь число l1. Подставив в равенство (62) вместо х1 и х2 их значения в соответствии с соотношениями (69) ¦(l1) = 16l1 - 32l12, найдем производную этой функции по l1 и приравняем ее нулю ¦¢(l1) = 16 - 64l1 = 0. Решая это уравнение, получим l1 = 1/4 = 0,25. Поскольку найденное значение l1 заключено между 0 и 1, принимаем его за величину шага. Таким образом, Х(1) = (0, 1), ¦(Х(1)) = 2,
¦(Х(1)) - ¦(Х(0)) = 2 > e = 0,01.
II и т е р а ц и я. Градиент целевой функции исходной задачи в точке Х(1) есть
Ѧ( Х(1)) = (2, 0). Находим максимум функции F2 = 2х1 при условиях (63) и (64). Решением является Z(1) = (6,4; 0,8).
Определяем теперь Х(2) = Х(1) + l2(Z(1) – Х(1)). Последнее равенство перепишем следующим образом:
ì х1(2) = 6,4 l2,
í (70)
î х2(2) = 1 – 0,2l2.
Подставляя теперь в функцию (62) вместо х1 и х2 их значения в соответствии с соотношениями (70), получаем
¦(l2) = 2 + 12,8l2 - 41,04l22,
откуда ¦¢(l2) = 12,8 - 41,04l2. Приравнивая ¦¢(l2) нулю и решая полученное уравнение, находим l2 »0,16. Таким образом,
Таким образом, Х(3) = (1,0098; 1,0003) является искомым решением исходной задачи. Задав меньшую величину e, можно было бы, совершив дополнительные приближения, еще ближе подойти к точке максимального значения целевой функции.