Пример 2. Ограничения на критерии. Метод последовательных уступок.
Ограничимся для простоты задачей линейной оптимизации (линейного программирования).
Пусть необходимо решить задачу векторной оптимизации следующего вида:
при ограничениях:
методом последовательных уступок, если уступка по первому критерию составляет 10% от его оптимального значения.
Решение. Решим задачу по критерию
, в результате чего получим . В соответствии с условием задачи величина уступки . Дополнительное ограничение будет иметь вид: , т.е. . Решая задачуполучим
.Проведем решение задачи с помощью Excel. Введем данные на рабочий лист в соответствии с Рис.2.
Отведем под значения переменных ячейки A19 и B19, введем формулы, определяющие ограничения исходной задачи, в ячейки A13:A15; формулу для целевой функции в ячейку E19, а формулу для расчета
в ячейку H19. Поиск решения дает значение . Далее, копируем значение из ячейки E19 в ячейку С26 (используется специальная вставка – только значение). Затем отводим под целевую ячейку E26, вводим в нее формулу для расчета , а в ячейку A26 вводим формулу =A19+3*B19, представляющую собой дополнительное ограничение задачи.При вторичном запуске Поиска решения наряду с уже введенными на первом этапе ограничениями вводим еще одно дополнительное ограничение A26>=144.
В результате расчета получим ответ:
Рис. 2. Данные для решения задачи оптимизации по методу последовательных уступок
Пример 3. Целевое программирование.
Провести оптимизацию вектор – функции
при ограничениях:
Рис. 3. Данные для решения примера 3
Решение. Введем данные на рабочий лист в соответствии с Рис.3.
Отведем под значения переменных ячейки A20 и B20; введем формулы, определяющие ограничения задачи, в ячейки A16:A17; формулы для расчета функций
в ячейки E20, G20 и I20, а формулу для расчета - в ячейку C28. Поскольку наши функции нелинейны, в окне диалога Параметры поиска решения необходимо снять флажок (указатель) линейная модель.Далее последовательно проводим поиск оптимальных (максимальных) значений функций
(целевыми ячейками выбираем E20, G20 и I20); после нахождения оптимальных значений каждой из функций ее максимальное значение заносим (используя специальную вставку) в ячейки E24, G24 и I24 соответственно. Таким образом, в ячейках окажутся значения: 1.0748 (E24), 0.7357 (G24), 2 (I24).После этого переходим к заключительному этапу. Оптимизируем (минимизируем) значение целевой функции
(целевая ячейка С28). Поиск решения дает для оптимального значения целевой функции значение 0,32534. При этом в ячейках E20, G20 и I20 окажутся значения функций , соответствующие значениям , при которых отклонение от будет минимальным.Таким образом, при данных значениях весовых коэффициентов мы получаем следующие оптимальные (с точки зрения достижения оптимального значения “совокупной” функции
) значения компонент вектор функции:1,0748 | 0,7815 | 0,7358 | 0,3609 | 2 | 1,6784 |
Из вышеприведенной таблицы видно, что в результате оптимизации
значения всех трех функций-составляющих уменьшились. Естественно, при использовании других весовых коэффициентов мы получили бы другие значения (но при любых значениях весовых коэффициентов тенденция уменьшения всех компонент вектор-функции сохраняется).Следует отметить, что задача целевого программирования может формулироваться несколько иным образом. ЛПР может просто указать, исходя из своих соображений, желательные с его точки зрения, значения
, или диапазоны, в которых эти значения должны быть локализованы. При этой постановке задача решается практически аналогично, с тем отличием, что поиск оптимальных значений компонент (первая часть решения) не проводится, а их значения (или диапазоны изменения) вводятся в качестве ограничений дополнительно к исходным ограничениям задачи.