- •Содержание
- •Алгоритмы принятия решений на основе нечеткой логики
- •1. Цель работы
- •2. Краткие теоретические сведения
- •2.1. Введение
- •2.2. Основы теории нечетких множеств
- •2.3. Основные сведения о пакете Matlab
- •3. Порядок выполнения работы
- •4. Требования к отчету
- •5. Контрольные вопросы
- •6. Рекомендуемая литература
- •Алгоритмы принятия решений на основе нечеткой логики
- •450000, Уфа-центр, ул. К. Маркса, 12
2.3. Основные сведения о пакете Matlab
Matlab – пакет прикладных программ для решения задач численного анализа созданный компанией The MathWorks. Пакет позволяет визуализировать математические функции и экспериментальные данные, реализовывать вычислительные алгоритмы, конструировать графический интерфейс пользователя для решения специфических задач, а также через специальные интерфейсы взаимодействовать с другими языками программирования и программами.
При загрузке Matlab появляется основное окно программы (рис. 6), состоящее из следующих частей:
1) меню;
2) панель инструментов;
3) Launch Pad – список доступных инструментальных пакетов;
4) Command History – история команд;
5) Command Window – окно команд.
Рис. 6. Основное окно Matlab
Для выполнения сложных расчетов, подобных работе с алгоритмами нечеткой логики, необходимо использовать дополнительные инструментальные пакеты. Их можно запустить с помощью Launch Pad либо из окна команд. Инструментальный пакет для работы с алгоритмами нечеткой логики запускается с помощью команды fuzzy.
Основными элементами окна Fuzzy Toolbox (рис. 7) являются:
1) меню;
2) настройка входных и выходных функций принадлежности;
3) настройка методов сложения множеств на разных этапах.
Рис. 7. Окно настроек Fuzzy Logic Toolbox
Для добавления входных переменных необходимо воспользоваться командой меню «Edit → Add Variable → Input». Для удаления входной переменной необходимо выбрать её и воспользоваться командой меню «Edit → Remove Selected Variable».
Для изменения параметров входных и выходных функций принадлежности, необходимо выполнить двойной клик на одной из входных/выходных переменных или воспользоваться командой меню «Edit → Membership Functions» (рис. 8).
Рис. 8. Изменение параметров функций принадлежности
На рис. 8 цифрами 1 - 4 обозначены:
1 – поле выбора переменной, для которой требуется изменить параметры функции принадлежности;
2 – редактор функции принадлежности;
3 – поле настройки параметров переменной:
-
range – отрезок значений, которые может принимать переменная;
-
display range – отрезок значений, отображаемый на графике;
4 – поле настройки параметров выбранной функции принадлежности:
-
name – название функции приналежности;
-
type – вид функции (trimf – треугольная, trapmf – трапецеидальная, gauss – гауссова);
-
params – параметры функции.
Для добавления дополнительных функций принадлежности для выбранной переменной, необходимо воспользоваться меню «Edit → Add MFs», где необходимо задать вид функции и количество добавляемых функций.
Для удаления функции принадлежности необходимо выбрать её и воспользоваться меню «Edit → Remove Selected MF».
Для редактирования правил необходимо воспользоваться меню «Edit → Rules» (рис. 9).
Рис. 9. Редактор правил
На рис. 9 цифрами 1 - 6 обозначены:
-
меню;
-
список созданных правил;
-
область выбора условий левой части правила (предпосылок);
-
область выбора связи между условиями предпосылок (или/и);
-
область выбора результирующей функции принадлежности;
-
набор управляющих кнопок:
«Delete Rule» – удалить правило, выбранное в списке созданных правил;
«Add Rule» – добавить правило;
«Change Rule» – изменить правило, выбранное в списке созданных правил.
Для создания нового правила необходимо задать условия левой части правила, результирующую функцию и нажать на кнопку «Add Rule».
Для удаления правила, необходимо выбрать его в списке и нажать кнопку «Delete Rule».
Для проверки работы механизма нечеткого вывода необходимо воспользоваться меню «View → Rules».
Рис. 10. Просмотр механизма нечеткого вывода
В строке «Input» необходимо задать значения входных переменных и нажать клавишу ввода. В строке «Output» будет указано выходное значение и будут отображены графики соответствующих функций принадлежности.
Рассмотрим пример использования пакета Matlab для моделирования приведенной выше задачи модернизации СЗИ.
1. Запустим Fuzzy Logic Toolbox с помощью команды fuzzy.
2. Добавим вторую входную лингвистическую переменную, используя меню «Edit → Add Variable → Input» (рис. 11):
Рис. 11. Добавление лингвистической переменной
3. Отредактируем параметры функций принадлежности в соответствии с условиями задачи (рис. 12):
Рис. 12. Настройка параметров функций принадлежности
4. Сформулируем набор правил (рис. 13):
Рис. 13. Окно редактора правил
5. Просмотрим результаты моделирования механизма принятия решений, используя меню «View → Rules» (рис. 14):
Рис. 14. Окно результатов моделирования