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

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

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

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

Содержание

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

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

Лаб1.doc

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

      findcluster - модуль кластеризации данных  с использованием алгоритма fuzzy c-means и алгоритма нечеткой субтрактивной кластеризации

      fuzzy - основной редактор FIS. Позволяет  создавать и редактировать FIS двух типов - Мамдани и Сугено, обеспечивает визуализацию процедуры нечеткого логического вывода и поверхностей “входы-выход”. Для этого модуль fuzzy вызывает следующие GUI-модули: mfedit, ruleedit, ruleview и surfview

      Блоки для пакета Simulink

      Третья  категория программных инструментов пакета Fuzzy Logic Toolbox содержит следующие модули, которые обеспечивают интеграцию систем нечеткого логического вывода с пакетом Simulink:

      fuzblock - модули контроллеров на основе  нечеткого логического вывода 

      sffis - функция выполнения нечеткого  логического вывода, оптимизированная  под Simulink

      Демонстрационные  примеры

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

      defuzzdm - дефаззификация различными методами

      fcmdemo - 2D-кластеризация с использование  алгоритма fuzzy c-means

      fuzdemos - список всех демонстрационных  примеров Fuzzy Logic Toolbox

      invkine - инверсная кинематика робота-манипулятора 

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

      Такаги  и Суджено предложили использовать IF-THEN-правила:

L(p): IF x1 есть F1p и . . . и xn есть Fnp THEN yp = C0p+C1p x1+...+ Cnp xn, 

      где Fip - нечеткие множества;

      Сi - параметры, принимающие реальные значения;

      yp - выход системы, соответствующий  правилу L(p); p= .

      Таким образом, они рассматривали правила, у которых часть IF является нечеткой, но "четкой" является часть THEN, и выход является линейной комбинацией переменных на входе. Выход нечеткой системы Такаги-Суджено есть взвешенное среднее:

        
где вес wp вычисляется как:

        
Конфигурация нечеткой системы Такаги-Суджено  представлена на рисунке 14.

   

 
Рисунок 13. Система нечеткой логики Такаги-Суджено

      Преимуществом систем нечеткой логики такого типа является то, что они описываются компактной системой уравнений. Для них могут  быть легко разработаны методы оценки параметров и выбора порядка системы М.

   Слабое  место таких систем нечеткой логики заключается в том, что часть THEN в IF-THEN-правиле не является нечеткой, что не позволяет естественным образом  получать нечеткие правила от человека-эксперта.

    1. Наименование редактора функции принадлежности.

      Редактор  функций принадлежности – (Membership Function Editor) редактор предназначен для задания следующей информации о терм-множествах входных и выходных переменных:

      количество  термов;

      наименования  термов;

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

    1. Назначение редактора базы знаний.

      Редактор  базы знаний (Rule Editor) предназначен для  формирования и модификации нечетких правил. 

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

     Для загрузки основного fis-редактора было напечатано слово fuzzy в командной строке для вызова основного редактора Fuzzy inference system. Выбираем тип системы. Для этого в меню File выбираем в подменю New fis… команду Sugeno.

     Добавляем вторую входную переменную. Для этого в меню Edit выбираем команду Add input.

     Переименовываем входные переменные (Рисунок 14).

     

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

     Задаем новое имя системы FirstSugeno.

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

     

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

     Задаем диапазон изменения переменной x1. Для этого вводим [7 3] в поле Range (Рисунок 16). 

         

     Рисунок 16. Задавание диапазона переменной х1

     Задаем функции принадлежности переменной x1. Для лингвистической оценки этой переменной будем использовать 3 терма с треугольными функциями принадлежности, которые установлены по умолчанию. Зададим наименования термов переменной x1. Печатаем наименование терма Низкий в поле Name. Вводим наименование терма Средний в поле Name для второго терма. Ввести наименование терма Высокий в поле Name. В результате получить изображенное графическое окно (Рисунок 17).

     

     Рисунок 17. Задавание терма переменной х1

     Зададим функции принадлежности переменной x2. Для лингвистической оценки этой переменной будем использовать 3 терма с треугольными функциями принадлежности, которые установлены по умолчанию. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2. Задаем диапазон изменения переменной x2 [-4.4 1.7] в поле Range. По аналогии с предыдущим шагом задать следующие наименования термов переменной x2: Низкий, Средний, Высокий (Рисунок 18).

     

     Рисунок 18. Наименования термов

     Задаем линейные зависимости между входами и выходом, приведенные в базе знаний. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши на блоке y. В правом верхнем угле появилось обозначение трех функций принадлежности, каждая из которых соответствует одной линейной зависимости между входами и выходам. В базе знаний, указаны 5 различных зависимостей: y=50; y=4x1-x2; y=2x1+2x2+1; y=8x1+2x2+8; y=0. Поэтому добавляем еще две зависимости путем выбора команды Add Mfs… меню Edit. В появившимся диалоговом окне в поле Number of MFs выбираем 2 и нажимаем кнопку OK (Рисунок 19).

     

     Рисунок 19. Добавление функций

     Задаем наименования и параметры линейных зависимостей. Для этого сделать один щелчок левой кнопкой мыши по наименованию первой зависимости mf1. Затем печатаем наименование зависимости, например 50, в поле Name, и устанавливаем тип зависимости – константа путем выбора опции Сonstant в меню Type. После этого вводим значение параметра – 50 в поле Params (Рисунок 20).

     

     Рисунок 20. Наименования и параметры линейных зависимостей

     Аналогично  для второй зависимости mf2 вводим наименование зависимости, например 8+8x1+2x2. Затем указываем линейный тип зависимости путем выбора опции Linear в меню Type и вводим параметры зависимости 8 2 8 в поле Params. Для линейной зависимости порядок параметров следующий: первый параметр – коэффициент при первой переменной, второй – при второй и т.д., и последний параметр – свободный член зависимости.

     Аналогично  для третьей зависимости mf3 вводим наименование зависимости, например 1+2x1+2x2, указываем линейный тип зависимости и вводим параметры зависимости 2 2 1.

     Для четвертой зависимости mf4 вводим наименование зависимости, например 4x1-x2, укажем линейный тип зависимости и вводим параметры зависимости 4 -1 0.

     Для пятой зависимости mf5 вводим наименование зависимости, например 0, укажем тип зависимости - константа и введем параметр зависимости 0 (Рисунок 21).

     

     Рисунок 21. Ввод зависимостей

     Переходим в редактор базы знаний RuleEditor. Для этого выбираем в меню Edit команду Edit rules.... и вводим правила базы знаний. Для ввода правила необходимо выбрать соответствующую комбинацию термов и зависимостей и нажать кнопку Add rule (Рисунок 22).

     

     Рисунок 22. Переход в редактор базы знаний

     В окне редактора базы знаний вводим шесть правил (Рисунок 23).

     

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

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

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

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

     

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

     

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

     Можно сделать вывод, что нечеткие правила  достаточно хорошо описывают сложную  нелинейную зависимость (рисунок 24). Вывести поверхность “входы-выход”, соответствующая синтезированной нечеткой системе. Для вывода этого окна необходимо использовать команду View surface... меню View. Нечеткие правила достаточно хорошо описывают сложную нелинейную зависимость (рисунок 25).

 

Список литературы 

  1. Андрейчиков А.В., Андрейчикова О.Н. Интеллектуальные информационные системы: Учебник. –  М.: Финансы и статистика, 2004.-424с.
  2. Тельнов Ю.Ф. Интеллектуальные информационные системы в экономике./Московский государственный уверситет экономики, статистики и информатики. – М.,2005, 174 стр.

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