183965 (743658), страница 3
Текст из файла (страница 3)
Ограничимся для простоты задачей линейной оптимизации (линейного программирования).
Пусть необходимо решить задачу векторной оптимизации следующего вида:
при ограничениях:
методом последовательных уступок, если уступка по первому критерию составляет 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 |
Из вышеприведенной таблицы видно, что в результате оптимизации значения всех трех функций-составляющих уменьшились. Естественно, при использовании других весовых коэффициентов мы получили бы другие значения
(но при любых значениях весовых коэффициентов тенденция уменьшения всех компонент вектор-функции сохраняется).
Следует отметить, что задача целевого программирования может формулироваться несколько иным образом. ЛПР может просто указать, исходя из своих соображений, желательные с его точки зрения, значения , или диапазоны, в которых эти значения должны быть локализованы. При этой постановке задача решается практически аналогично, с тем отличием, что поиск оптимальных значений компонент (первая часть решения) не проводится, а их значения (или диапазоны изменения) вводятся в качестве ограничений дополнительно к исходным ограничениям задачи.
Размещено на Allbest.ru