Нечеткие множества и выводы

Автор работы: Пользователь скрыл имя, 13 Мая 2013 в 16:25, курсовая работа

Краткое описание

Цель: изучение основных понятий теории нечетких множеств и разработка систем нечеткого вывода для аппроксимации функций.
Задачи:
Изучить и проанализировать литературу по нечетким множествам и выводам.
Изучить пакет Fuzzy Logic Toolbox среды MatLab.
Разработать нечеткую систему вывода в среде MatLab.

Содержание

Введение 3
Глава 1. Нечеткие множества и выводы. 4
Основные понятия теории нечетких множеств. 4
Нечеткие отношения. 9
Основы нечеткой логики 15
Системы нечеткого вывода. 18
Глава 2. Нечеткое моделирование в среде MatLab. 24
Общая характеристика программы MATLAB. 24
Разработка системы нечеткого вывода в интерактивном режиме 25
Заключение 35
Литература: 36

Вложенные файлы: 1 файл

курсовая.docx

— 2.22 Мб (Скачать файл)

Формально процедура аккумуляции  выполняется следующим образом. До начала этого этапа предполагаются известными значения истинности всех подзаключений для каждого из правил Rk, входящих в рассматриваемую базу правил P системы нечеткого вывода, в форме совокупности нечетких множеств: ,,…, где q — общее количество подзаключений в базе правил. Далее последовательно рассматривается каждая из выходных лингвистических переменных W и относящиеся к ней нечеткие множества: , ,...,. Результат аккумуляции для выходной лингвистической переменной щ определяется как объединение нечетких множеств , ,...,

Этап аккумуляции считается  законченным, когда для каждой из выходных лингвистических переменных будут определены итоговые функции принадлежности нечетких множеств их значений, т. е. совокупность нечетких множеств: ,,…,, где s — общее количество выходных лингвистических переменных в базе правил системы нечеткого вывода.

Алгоритм нечеткого вывода Мамдани (Mamdani).

Алгоритм Мамдани является одним из первых, который нашел применение в системах нечеткого вывода. Он был предложен в 1975 г. английским математиком Е. Мамдани (Ebrahim Mamdani) в качестве метода для управления паровым двигателем. По своей сути этот алгоритм порождает рассмотренные выше этапы, поскольку в наибольшей степени соответствует их параметрам.

Формально алгоритм Мамдани может быть определен следующим образом:

  • Формирование базы правил систем нечеткого вывода. Особенности формирования базы правил совпадают с рассмотренными выше при описании данного этапа.
  • Фаззификация входных переменных. Особенности фаззификации совпадают с рассмотренными выше при описании данного этапа.
  • Агрегирование подусловий в нечетких правилах продукций. Для нахождения степени истинности условий каждого из правил нечетких продукций используются парные нечеткие логические операции. Те правила, степень истинности условий которых отлична от нуля, считаются активными и используются для дальнейших расчетов.
  • Активизация подзаключений в нечетких правилах продукций. Осуществляется по формуле: , при этом для сокращения времени вывода учитываются только активные правила нечетких продукций.
  • Аккумуляция заключений нечетких правил продукций. Осуществляется по формуле: для объединения нечетких множеств, соответствующих термам подзаключений, относящихся к одним и тем же выходным лингвистическим переменным.
  • Дефаззификация выходных переменных. Традиционно используется метод центра площади: .

Алгоритмы нечеткого  вывода Сугено (Sugeno) и Такаги (Takagi)

Сугено (Sugeno) и Такаги (Takagi) использовали набор правил в следующей форме:

П1: если х есть А1  и y есть В1, тогда z=a1x+b1y,

П2: если х есть А2 и y есть В2, тогда z =a2x+b2y.

  1. Первый этап – аналогично алгоритму Мамдани.
  2. Определение α1= А10) B1(y0), α2= А20) B2(y0) и индивидуальные выходы правил:

z*1=a1x0+b1y0,

z*2=a2x0+b2y0.

  1. Определяется значение переменной вывода:

.

Представленная форма  правил иллюстрирует алгоритм Сугено 1-го порядка. Если правила записаны в форме:

П1: если х есть А1  и y есть В1, тогда z=с1,

П2: если х есть А2 и y есть В2, тогда z =с2,

то задан алгоритм Сугено 0-го порядка.

Иллюстрация алгоритма Сугено 0-го порядка представлена на рисунке 3.

 

 

 

Рисунок 3 – Графическая  интерпретация алгоритма Сугено

 

Перечислим наиболее известные  методы дефаззификации.

Метод Максимума – выбирается тот элемент нечеткого множества, который имеет наивысшую степень принадлежности этому множеству.

Если этот элемент не является единственным, т.е. функция принадлежности имеет несколько локальных максимумов, или если имеется максимальное «плато», то выбор среди элементов, имеющих наивысшую степень принадлежности множеству, осуществляется на основе некоторого критерия.

Метод левого (правого) максимума – выбирается наименьшее (наибольшее) из чисел y1, y2, .. ,yn, имеющих наивысшую степень принадлежности нечеткому множеству.

Метод среднего из максимумов – в качестве искомого четкого значения yo принимается среднее арифметическое координат локальных максимумов .

 

 

Глава 2. Нечеткое моделирование в среде MatLab.

Общая характеристика программы MATLAB.

Система MATLAB (сокращение от англ. MATrix LABoratory— матричная лаборатория) представляет собой интегрированную программную среду для выполнения численных расчетов, компьютерного моделирования и вычислительных экспериментов, охватывающих в том или ином объеме различные области классической и современной математики, а также широчайший спектр инженерных приложений.

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

Для реализации процесса нечеткого  моделирования в среде MATLAB предназначен специальный пакет расширения Fuzzy Logic Toolbox. B рамках этого пакета, который расположен в папке C:\MATLAB6pl\tooIbox\fuzzy (если система MATLAB установлена по умолчанию на диске C:), пользователь может выполнять необходимые действия по разработке и использованию нечетких моделей в одном из следующих режимов:

  • в интерактивном режиме с помощью графических средств редактирования и визуализации всех компонентов систем нечеткого вывода;
  • в режиме команд с помощью ввода имен соответствующих функций с необходимыми аргументами непосредственно в окно команд системы MATLAB

 Процесс разработки системы нечеткого вывода в интерактивном режиме.

Для разработки и дальнейшего  применения систем нечеткого вывода в интерактивном режиме могут  быть использованы следующие графические средства, входящие в состав пакета Fuzzy Logic TooIbox.

  • Редактор систем нечеткого вывода FIS (FIS Editor) или сокращенно — редактор FIS.
  • Редактор функций принадлежности системы нечеткого вывода (Membership Function Editor) или сокращенно — редактор функций принадлежности.
  • Редактор правил системы нечеткого вывода (Rule Editor) или сокращенно — редактор правил.
  • Программа просмотра правил системы нечеткого вывода (Rule Viewer) или сокращенно — просмотрщик правил вывода.
  • Программа просмотра поверхности системы нечеткого вывода (Surface Viewer) или сокращенно — просмотрщик поверхности вывода.

B табл. 1 представлены функции MATLAB, которые могут быть использованы для вызова соответствующих графических средств.

Функция

Назначение

fuzzy

Редактор системы нечеткого  вывода FIS

mfedit

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

ruleedit

Редактор правил нечеткого  вывода

ruleview

Программа просмотра правил и диаграммы нечеткого вывода

surfview

Программа просмотра поверхности  нечеткого вывода


Таблица 1. Функции  графического интерфейса пользователя.

  Разработка системы нечеткого вывода в интерактивном режиме

Разработаем систему нечеткого вывода в интерактивном режиме с помощью графических средств пакета Fuzzy Logic Toolbox .

Рассмотрим аппроксимацию функции правилами нечеткого вывода.

Пример 1.

Исходные данные для аппроксимации функции y=x2 представлены в таблице 2.

X

-1

-0,6

0

0,4

1

Y

1

0,36

0

0,16

1


Таблица 2 – Значения x и y.функции y=x2

Процесс разработки системы  нечеткого вывода в интерактивном  режиме состоит в выполнении следующей  последовательности действий:

  1. Командой fuzzy из режима командной строки запускается основная интерфейсная программа пакета Fuzzy Logic – редактор нечеткой системы вывода.
  2. В меню File выбрать команду New Sugeno FIS.
  3. Выбрать входной элемент системы input1 и ввести в поле Name обозначение входной переменной (х).

Рис. 4. Графический интерфейс редактора FIS, вызываемый функцией fuzzy

  1. Войти в режим редактирования функции принадлежности – Membership Function Editor (двойное нажатие левой клавиши мыши). Выбором Edit/Add MFs (добавить функцию принадлежности) задать тип функции принадлежности (gaussmf) и количество (5).
  2. Установить диапазон (Range) изменения х от -1 до 1 (определяется заданным диапазоном х).

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

  1. Совместить ординаты максимумов функций принадлежности с значениями аргумента x.

Шаг выполняется двумя способами:

    • выделить редактируемую функцию принадлежности, перетащить мышью кривую функции принадлежности;
    • более точную установку проводят заданием числовых значений параметров функции принадлежности в поле Params (первое значение определяет размах кривой, второе – положение центра).

В поле Name вводится имя функции принадлежности (1- bn, 2 – n, 3 (центральная) – z, 4 – p, 5 – bp).

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

Выйти из редактора функций  принадлежности – Close.

  1. Ввести в поле название выходной переменной output1 (y), войти в режим редактирования функций принадлежности.
  2. Задать вид функции принадлежности для выходной переменной. Предлагается выбрать в качестве функции принадлежности линейные (linear) или постоянные (constant) – в зависимости от алгоритма Сугено (1-го или 0-го порядка). В поставленной задаче необходимо выбрать постоянные функции принадлежности с общим числом 4 (по числу различающихся значений y). Нажать Ok.

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

  1. Установить диапазон (Range) – [0, 1]. Изменить значения (Params) и задать для выходных переменных имена (Name) соответственно 0; 0,16; 0,36; 1.

Рис. 6. Вид редактора функций принадлежности после установки выходных значений.

Закрыть редактор.

  1. Перейти в редактор правил (Rule Editor) (дважды щелкнуть на средний белый квадрат разрабатываемой структуры системы нечеткого вывода). При вводе каждого правила необходимо обозначить соответствие между каждой функцией принадлежности аргумента x и числовым значением y. Кривая, обозначенная bn, соответствует y=1, для чего выбирается в левом поле (с заголовком x is) вариант bn, а в правом – 1 и нажимается кнопка Add rule. Введенное правило появится в окне правил в виде

If (x is bn) then (y is 1) (1).

Аналогично вводятся все  правила (всего 5).

Рис. 7. Вид редактора правил нечеткого вывода после их определения

Закрыть окно редактора правил и вернуться в окно FIS-редактора.

Построение системы закончено.

Перейти в редактор функций  принадлежности (View/Edit Membership function). Из окна редактора командой можно перейти в окно просмотра правил (View rules), просмотра поверхности (View surface).

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

Информация о работе Нечеткие множества и выводы