Интеллектуальные информационные системы

Автор: Пользователь скрыл имя, 24 Января 2012 в 19:30, лабораторная работа

Описание работы

Цель работы:
Ознакомиться с принципами построения нечетких систем с помощью ППП Fuzzy Logic Toolbox среды Matlab;
Создать систему типа Мамдани

Содержание

Цель работы
Ознакомиться с принципами построения нечетких систем с помощью ППП Fuzzy Logic Toolbox среды Matlab;
Создать систему типа Мамдани
Перечень используемого оборудования
Персональный компьютер
Программное обеспечение Matlab
Контрольные вопросы

Работа содержит 1 файл

Лаб1.doc

— 641.50 Кб (Скачать)

Содержание 
 
 

 

Лабораторная  работа 1

Построение  нечетких систем с  помощью ППП Fuzzy Logic Toolbox среды Matlab. Проектирование систем типа Мамдани. 

  1. Цель  работы
    1. Ознакомиться с принципами построения нечетких систем с помощью ППП Fuzzy Logic Toolbox среды Matlab;
    2. Создать систему типа Мамдани
  2. Перечень используемого оборудования
  3. Персональный компьютер
  4. Программное обеспечение Matlab
  5. Контрольные вопросы
    1. Каковы основные типы систем нечеткой логики?

     Системами нечеткой логики называются системы, которые оперируют с нечеткими понятиями, такими как нечеткие множества, лингвистические переменные и т.п., и используют при этом нечеткую логику. Системы нечеткой логики могут быть классифицированы по трем основным типам:

     1) простые системы нечеткой логики (pure Fuzzy Logic Systems);

     2) нечеткие системы Такаги и  Суджено (Takagi and Sugeno);

     3) системы нечеткой логики с  фаззификатором и дефаззификатором.

    1. Какова структура систем нечеткой логики типа Мамдани?

   Механизм  Мамдани (Mamdani) – наиболее распространенный способ логического вывода в нечетких системах. В нем используется минимаксная композиция нечетких множеств. Данный механизм включает в себя следующую последовательность действий.

  1. Процедура фазификации: определяются степени истинности, т.е. значения функций принадлежности для левых частей каждого правила (предпосылок). Для базы правил с m правилами обозначим степени истинности как Aik(xk), i=1..m, k=1..n.
  2. Нечеткий вывод. Сначала определяются уровни "отсечения" для левой части каждого из правил:

   

      Далее находятся "усеченные" функции  принадлежности:

   

  1. Композиция, или объединение полученных усеченных  функций, для чего используется максимальная композиция нечетких множеств:

    ,

где MF(y) – функция принадлежности итогового  нечеткого множества.

  1. Дефазификация, или приведение к четкости. Существует несколько методов дефазификации. Например, метод среднего центра, или центроидный метод:

     

    1. Что означает желтая и голубая заливка графиков функции принадлежности?

   Желтая  и голубая заливки графиков функции  принадлежности означают “входы-выход”, соответствующей синтезированной нечеткой системе, и графически показывают процесс нечеткого вывода по Мамдани для двух входных переменных и двух нечетких правил. 

  1. Исходный код программ и скриншоты их выполнения

   Для загрузки основного fis-редактора было напечатано слово fuzzy в командной строке для вызова основного редактора Fuzzy inference system. Редактор позволяет создавать и редактировать FIS двух типов - Мамдани и Сугэно, а также обеспечивает визуализацию процедуры нечеткого логического вывода и поверхностей “входы-выход”. По умолчанию выбран FIS Мамдани (рис.1).

   

Рисунок 1. Fis-редактор Мамдани

     Добавляем вторую входную переменную. Для этого в меню Edit выбираем команду Add input. Переименовываем входные переменные input1, input2 в x1 и x2 соответственно, выходную переменную output1 в y (рис.2).

     

     Рисунок 2. Переименование выходной переменной

     Задаем  имя системы: first. Для этого в меню File выбрали подменю Export команду To disk и ввели имя файла.

     Перейдем  в редактор функций принадлежности. Для этого нажимаем на блок х1 (рисунок 3).

     

     Рисунок 3. Редактор функции принадлежности

     Зададим диапазон переменной х1. Для этого  вводим [-7 3] в поле Range.

     Зададим наименования термов переменной x1. Для этого сделаем один щелчок левой кнопкой мыши по графику первой функции принадлежности. Затем вводим наименование терма «Низкий», в поле Name. Аналогично вводим наименование для второй и третьей функции принадлежности – «Средний» и «Высокий».

     В результате получаем графическое окно, изображенное на рис. 4. 
 

     

     Рисунок 4. Редактирование термов 

     Зададим функцию принадлежности переменной x2. Для лингвистической оценки этой переменной использовали 5 термов с гауссовскими функциями принадлежности. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2 и удалим все графики переменной х2. Затем в меню Edit выполняем команду Add MFs.... В появившимся диалоговом окне выбрать тип функции принадлежности gaussmf в поле MF type и 5 термов в поле Number of MFs.

     Вводим  диапазон изменения переменной x2 [-4.4 1.7] в поле Range,

     По  аналогии c предыдущим шагом зададим следующие наименования термов переменной x2: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим изображенное графическое окно на рисунке 5. 

     

     Рисунок 5. Задание терма переменной х2 

     Зададим функцию принадлежности переменной y. Для лингвистической оценки этой переменной будем использовать 5 термов с треугольными функциями принадлежности. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши на блоке y и удалим все функции принадлежности переменной y. Затем в меню Edit выберем команду Add MFs.... В появившимся диалоговом окне выбрать 5 термов в поле Number of MFs.

     Зададим диапазон изменения переменной y [50 50] в поле Range.

     

     Рисунок 6. Задание диапазона 

     По  аналогии с предыдущем шагом зададим следующие наименования термов переменной y: Низкий, Ниже среднего, Средний, Выше среднего, Высокий. В результате получим изображенное графическое окно изображенное на рисунке 7.

     

     Рисунок 7. Наименования термов переменной y

     Перейдем  в редактор базы знаний RuleEditor. Для этого выбираем в меню Edit команду Edit rules.

     На  основе визуального наблюдения за графиком, сформулируем следующие девять правил:

  1. если x1=Средний, то y=Средний;
  2. если x1=Низкий и x2=Низкий, то y=Высокий;
  3. если x1=Низкий и x2=Высокий, то y=Высокий;
  4. если x1=Высокий и x2=Высокий, то y=Выше Среднего;
  5. если x1=Высокий и x2=Низкий, то y=Выше Среднего;
  6. если x1=Высокий и x2=Средний, то y=Средний;
  7. если x1=Низкий и x2=Средний, то y=Низкий;
  8. если x1=Высокий и x2=Выше Среднего, то y=Средний;
  9. если x1=Высокий и x2=Ниже Среднего, то y=Средний.

     

     Рисунок 8. Ввода правила

     Сохраним созданную систему. Для этого в меню File выбираем в подменю Export команду To disk (рисунок 9).

     

     Рисунок 9. Сохранение

     Зайдем командой View в меню Rules.

     В поле Input указываем значения входных переменных, для которых выполняется логический вывод (рисунок 10).

     

     Рисунок 10. Значения входных переменных

     Выведем поверхность “входы-выход”, соответствующая  синтезированной нечеткой системе. Для вывода этого окна используем команду View surface... меню View.

     

     Рисунок 11. Вывод поверхности “входы-выход”

     

     Рисунок 12. Поверхность “входы-выход”

     Можно сделать вывод, что нечеткие правила  достаточно хорошо описывают сложную  нелинейную зависимость (рисунок 12).

 

Лабораторная работа 2

     Проектирование  систем типа Мамдани  с помощью FIS-редактора пакета  Matlab 

  1. Цель  работы
    1. Ознакомиться с принципами построения нечетких систем с помощью ППП Fuzzy Logic Toolbox среды Matlab;
    2. Создать систему типа Сугено.
  2. Перечень используемого оборудования
  3. Персональный компьютер
  4. Программное обеспечение Matlab
  5. Контрольные вопросы
    1. Категории программных инструментов Fuzzy Logic Toolbox.

      Fuzzy Logic Toolbox содержит следующие категории  программных инструментов:

    • функции;
    • интерактивные модули с графическим пользовательским интерфейсом (с GUI);
    • блоки для пакета Simulink;
    • демонстрационные примеры;
    • Си-код машины нечеткого логического вывода.
    • Функции Fuzzy Logic Toolbox

      Первая  категория программных инструментов пакета Fuzzy Logic Toolbox содержит функции, которые могут быть вызваны непосредственно путем набора имени функции в командном окне (command line) или из собственных пользовательских приложений. Большинство из этих функций представляют собой матлабовские функции в виде m-файлов. В этом случае пользователь может посмотреть запрограммированные в этих функциях алгоритмы, а также редактировать и корректировать эти файлы. Ниже приведены названия функций с кратким описанием их назначения:

      addmf - добавление функции принадлежности  в FIS

      addrule - добавление правила в FIS

      addvar - добавление переменной в FIS

      anfis - обучение FIS типа Сугэно (Sugeno type)

      convertfis - преобразование FIS-матрицы (Fuzzy Logic Toolbox v.1) в FIS-структуру (Fuzzy Logic Toolbox v.2)

      defuzz - дефаззификация нечеткого множества

      discfis - дискретизация функций принадлежности  всех термов, входящих в FIS

      dsigmf - функция принадлежности в виде  разности между двумя сигмоидными  функциями 

      evalfis - выполнение нечеткого логического вывода

      evalmf - вычисление значений произвольной  функции принадлежности

      evalmmf - расчет степеней принадлежностей  для нескольких функций принадлежностей

      fcm - поиск кластеров по алгоритму  fuzzy c-means

      findrow - нахождение строки в матрице,  совпадающей с входной строкой

      Интерактивные модули с графическим  пользовательским интерфейсом

      Вторая  категория программных инструментов пакета Fuzzy Logic Toolbox содержит диалоговые модули, которые обеспечивают доступ к большинству функций через графический интерфейс. Кроме того, эти модули обеспечивают удобную среду для проектирования, исследования и внедрения систем на основе нечеткого логического вывода. Для запуска интерактивных модулей достаточно напечатать имя модуля в командной строке. Ниже приведены названия модулей с кратким описание их назначения:

      anfisedit - модуль для генерирования из  данных FIS типа Сугэно, ее обучения  с использованием ANFIS алгоритма и  тестирования

Информация о работе Интеллектуальные информационные системы