-
Метод свертывания
При описании метода уступок и метода идеальной точки предполагалось, что заданные критерии равноправны. На практике часто приходится сталкиваться с ситуациями, в которых равноправие критериев нарушено, и у каждого из них есть «свой вес». Метод свертывания применяется для решения многокритериальных задач с критериями, разными по степени важности. Рассмотрим идею метода в условиях линейной многокритериальной задачи.
Пусть задано множество M значений переменных x1, x2, …, xn с помощью системы линейных уравнений и неравенств и набор целевых линейных функций f1, f2, …, fm от этих переменных: fi = , где ck R, i [1..m]. Во множестве M требуется найти такой набор значений переменных x1, x2, …, xn, при котором для каждой целевой функции fi достигалось бы максимальное значение.
Метод свертывания заключается в следующем. Лицо, принимающее решение, из доступных для него соображений назначает веса целевых функций:
w1, w2, …, wm , wi ≥ 0, i [1..m], .
Теперь все целевые функции сворачиваются в один глобальный критерий
F = w1f1 + w2f2 +…+ wmfm, (1)
и исходная задача заменяется задачей с одним глобальным критерием: найти во множестве M такой набор значений переменных x1, x2, …, xn, при котором глобальный критерий F достигал бы максимального значения.
Рассмотрим «технический» способ (не назначаемый ЛПР) определения весов wi, изложенный в [23].
Сначала в области допустимых решений M системы ограничений задачи выполняется оптимизация отдельно по каждой целевой функции fi, i [1..m]. Затем для каждого найденного решения Xi = (x1i, x2i, …, xni) при этой однокритериальной оптимизации вычисляются значения всех целевых функций.
Обозначим через fip (p [1..m]) значение целевой функции fp для i –того решения Xi и составим таблицу (1) чисел fip:
|
f1 |
… |
fi |
… |
fm |
X1 |
f11 |
… |
f1i |
… |
f1m |
… |
… |
… |
… |
… |
… |
Xi |
fi1 |
… |
fii |
… |
f1m |
… |
… |
… |
… |
… |
… |
Xm |
fm1 |
… |
fmi |
… |
fmm |
Таблица 1
Очевидно, в i − той строке таблицы 1 максимальным числом является fii.
Далее проводится нормировка найденных значений целевых функций в промежутке [0, 1] по формулам:
В результате получаем относительные значения Fip всех целевых функций в найденных точках Xi, которые составляют таблицу 2:
|
f1 |
… |
fi |
… |
fm |
X1 |
1 |
… |
F1i |
… |
F1m |
… |
… |
… |
… |
… |
… |
Xi |
Fi1 |
… |
1 |
… |
F1m |
… |
… |
… |
… |
… |
… |
Xm |
Fm1 |
… |
Fmi |
… |
1 |
Таблица 2
Из формулы (2) следует, что после нормировки наибольшее значение каждой целевой функции будет равно единице.
По таблице 2 вычисляются веса wi целевых функций. Пусть i − среднее арифметическое чисел i − того столбца, кроме единицы. Вес wi целевой функции fi вычисляется по формуле (3):
. (3)
Теперь проводится оптимизация по глобальному критерию (1).
Пример. Множество M допустимых значений переменных x и y задано системой неравенств:
Требуется найти во множестве M такую точку, в которой каждая из трех функций f1, f2 и f3 достигают максимального значения, если
f1 = 2x − 7y + 35, f2 = −2x + 19y + 25, f3 = −14x − 3y + 95.
Решение. Найдем оптимальное решение для каждой целевой функции fi , используя пакет Maple:
> with(simplex);
> s:={2*x + y − 13 <= 0, x − 3*y + 11 >= 0, x >= 1, 2*x + 5*y − 17 >= 0};
> f1:=2*x − 7*y +35;
> maximize(f,s);
Получаем ответ: X1 = (6,1). В этой точке maxf1 = 40.
Аналогично находим maxf2 = 112 в точке X2 = (4,5) и maxf3 =72 в точке X3 = (1, 3).
Вычисляем в каждой из этих трех точек значения целевых функций:
-
f1
f2
f3
X1
40
32
8
X2
8
112
24
X3
16
80
72
Таблица 3
Пронормируем значения функций в таблице 3 по формулам (2):
-
F1
F2
f3
X1
1
0
0
X2
0
1
0,25
X3
0,25
0,6
1
Таблица 4
Вычислим средние значения элементов в каждом из столбцов таблицы 4, исключая элементы, равные единице:
Находим технические веса целевых функций по формуле (3):
,
Составляем глобальный критерий:
F = = .
Находим во множестве M точку, в которой глобальный критерий имеет максимум, используя пакет Maple:
> with(simplex);
> s:={2*x + y − 13 <= 0, x − 3*y + 11 >= 0, x >= 1, 2*x + 5*y − 17 >= 0};
> F:=(−34*x + 13*y +375)/7;
> maximize(f,s);
Получаем ответ: глобальный критерий F достигает максимального значения в точке X0 = (1, 4).
Найдем значения целевых функций в точке X0: f1 = 9, f2 = 99, f3 = 69.
Вектор (9, 99, 69), составленный из полученных значений целевых функций, отличается от вектора утопии (40, 112, 72).
Вопросы и упражнения
1. Множество M допустимых значений переменных x и y задано системой неравенств:
Используя метод свертывания, найти во множестве M такую точку, в которой каждая из трех функций f1, f2 и f3 достигает максимального значения, если f1 = x + 2y, f2 = −2x + 3y + 15, f3 = 2x − 2y + 20.