Смекни!
smekni.com

Информационные технологии решения задач векторной оптимизации (стр. 4 из 4)

Пример 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

Из вышеприведенной таблицы видно, что в результате оптимизации

значения всех трех функций-составляющих уменьшились. Естественно, при использовании других весовых коэффициентов мы получили бы другие значения
(но при любых значениях весовых коэффициентов тенденция уменьшения всех компонент вектор-функции сохраняется).

Следует отметить, что задача целевого программирования может формулироваться несколько иным образом. ЛПР может просто указать, исходя из своих соображений, желательные с его точки зрения, значения

, или диапазоны, в которых эти значения должны быть локализованы. При этой постановке задача решается практически аналогично, с тем отличием, что поиск оптимальных значений компонент (первая часть решения) не проводится, а их значения (или диапазоны изменения) вводятся в качестве ограничений дополнительно к исходным ограничениям задачи.