Лабораторная работа № 6
Решение задач многокритериальной оптимизации
Цель работы: Исследовать алгоритмы решения задач многокритериальной оптимизации, построив алгоритмы и отладив программы для математического пакета MatLab реализации их при различных параметрах заданной оптимизационной задачи.
Для выполнения работы необходимо решить следующие задачи:
- Разработать алгоритм исследования методов свертки критериев оптимизации, который обеспечивает следующее:
a. Использование двух заданных сверток двух заданных критериев.
b. Использование программы-функции fminbnd из Optimization Toolbox MatLab.
c. Получение результатов двухкритериальной оптимизации.
- Оформление результатов решения задачи.
- Написать необходимые для исследовательского сценария программы-функции, а также программу-сценарий.
- Выполнить исследование для двух описанных задач.
- Оформить отчет в соответствии с ГОСТ 7.32-2001.
Методические указания
Рассматривается задача следующего вида:
В этой задаче требуется найти n -мерный вектор хо, который обеспечивает минимум одновременно m заданным критериям. Такую задачу будем называть однородной. Возможен случай, когда ряд критериев максимизируется. Тогда задача будет неоднородной. Ее можно привести к однородной задаче, умножив соответствующие критерии на –1.
Для решения многокритериальной однородной оптимизационной задачи ее сводят к однокритериальной задаче. Это достигается сверткой многих критериев в один. Рассмотрим метод свертки критериев усреднением.
Среднеарифметическое (СА). Свертка критериев осуществляется по формуле:
.
Если все коэффициенты свертки одинаковы ai =1/ m, то получим классическую формулу среднеарифметического.
Среднегеометрическое (СГм). Свертка критериев осуществляется по формуле:
.
В частном случае m =2, a 1= a 2=1/2 получим:
.
Вычисление такого критерия не составит труда.
Среднегармоническое (СГр). Свертка критериев осуществляется по формуле:
.
В частном случае при всех коэффициентах свертки a i=1/ m получим:
.
Вычисление такого среднегармонического не на много сложнее среднегеометрического.
Среднеквадратическое (СК). Свертка критериев осуществляется по формуле:
.
В частном случае при всех коэффициентах свертки a i=1/ m получим:
.
Следует отметить, что числитель полученной дроби представляет собой евклидову норму m-мерного вектора критериев.
Задача 1. Найти среднее число элементов в системе, обеспечив максимальную надежность и минимальную стоимость системы. При этом вероятность исправной работы обратно пропорциональна числу элементов, а стоимость прямо пропорциональна ему.
Задача 2. Найти среднее число блоков «холодного» резерва в системе, обеспечив минимальную вероятность отказа и минимальную стоимость системы. При этом вероятность отказа обратно пропорциональна числу блоков, а стоимость прямо пропорциональна ему.
Задания для исследования двухкритериальной оптимизационной задачи
1. Разработать алгоритм и написать программу-сценарий решения Задачи 1, используя две заданные свертки двух заданных критериев. Для минимизации использовать m -функцию fminbnd из Optimization Toolbox MatLab.
2. Разработать алгоритм и написать программу-сценарий решения Задачи 2, используя две заданные свертки двух заданных критериев. Для минимизации использовать m -функцию fminbnd из Optimization Toolbox MatLab.
3. Результаты исследований оформить в отчет.
Зачетные задания
Вариант | Свертки | Коэффициенты свертки |
СА, СК | a=[0.9 0.1 ] | |
СА, Сгр | a=[0.1 0.9 ] | |
СА, СГм | a=[ 0.8 0.2] | |
СГм, СК | a=[0.2 0.8 ] | |
СК, СГм | a=[0.7 0.3 ] | |
СК, СГр | a=[0.3 0.7 ] | |
СГм, СГр | a=[0.5 0.5 ] | |
СА, Сгр | a=[0.6 0.4 ] | |
СК, СГр | a=[0.4 0.6 ] | |
СА, СК | a=[0.1 0.9 ] |