Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 1775

.pdf
Скачиваний:
7
Добавлен:
30.04.2022
Размер:
2.1 Mб
Скачать

Министерство образования и науки РФ

Государственное образовательное учреждение высшего профессионального образования

Воронежский государственный архитектурно-строительный университет

Кафедра прикладной информатики и информационных систем

НЕЧЕТКАЯ

ЛОГИКА

Методические указания к выполнению лабораторных работ

по курсу «Интеллектуальные информационные системы» для студентов 4-го курса дневного отделения,

обучающихся по специальности 080801 «Прикладная информатика в экономике»

Воронеж 2011

УДК 004.415.2(07) ББК 32.973.202-018.2я73

Составители П.А. Головинский, Е.В. Колыхалова

Нечеткая логика: метод. указания к выполнению лаб. работ по курсу «Интеллектуальные информационные системы» для студ. 4-го курса д/о, обучающихся по спец. 080801 / Воронеж. гос. арх.-строит. ун-т; сост.: П.А. Головинский, Е.В. Колыхалова. - Воронеж, 2011. - 32 с.

Излагается краткий теоретический материал по нечеткой логике, приводятся примеры по ее применению. Содержатся контрольные задания и вопросы.

Предназначены для студентов 4-го курса дневного отделения, обучающихся по специальности 080801 «Прикладная информатика в экономике».

Ил.: 17. Библиогр.: 3 назв.

УДК 004.415.2(07) ББК 32.973.202-018.2я73

Печатается по решению редакционно-издательского совета Воронежского государственного архитектурно-строительного университета

Рецензент — Д.К.Проскурин, к.ф.-м.н., зав. кафедры Прикладной информатики и информационных систем

Воронежского государственного архитектурно-строительного университета

2

Введение

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

Началом практического применения теории нечетких множеств можно считать 1975г., когда Мамдани и Ассилиан построили первый нечеткий контролер для управления простым паровым двигателем. Впоследствии нечеткой логике были посвящены работы таких ученых как Холмблад и Остергад, Бартоломей Коско и др.

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

3

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

Формирование нечетких множеств и операции над ними

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

Функции принадлежности. Инструменты нечеткой логики в составе пакета Matlab содержат 11 встроенных типов функций принадлежности, формируемых на основе кусочно-линейных функций, распределения Гаусса, сигмоидной кривой, квадратических и кубических полиномиальных кривых. К наиболее простым функциям принадлежности можно отнести треугольную и трапециевидную.

Треугольная функция принадлежности — trimf (triangle membership function) в параметрическом виде представляет собой набор трех точек, образующих треугольник.

Описание функции:

y =trimf (x,[abc]),

где вектор х — базовое множество, на котором определяется функция принадлежности. Величины а и с задают основание треугольника, b — его вершину.

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

Рис. 1. Треугольная (а) и трапециевидная (б) функции принадлежности

4

0,x < a,

x a , a x b, f(x,a,b,c) = b a

c x , b x cc b

0, x > c.

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

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

-задаетсябазовоемножество.

-определяетсятреугольнаяфункция принадлежности.

-выводитсяграфикфункции.

подписывается график под осью абсцисс Трапециевидная функция принадлежности — trapmf (trapezoid membership function) — отличается от предыдущей функции лишь тем, что имеет верх-

нее основание. Описание функции:

где параметры a и d — нижнее основание трапеции; b и с — верхнее основание трапеции (рис. 1, б).

Аналитическая запись трапециевидной функции имеет вид:

=

Одно из основных достоинств треугольных и трапециевидных функций принадлежности — их простота. На основе функции распределения Гаусса можно построить функции принадлежности двух видов: простую функцию принадлежности Гаусса и двухстороннюю, образованную с помощью различных функций распределения Гаусса. Первая из них обозначается gaussmf а вто-

рая — gauss2mf.

Описание функции:

Симметричная функция Гаусса зависит от двух параметров а и с (рис. 2, а):

.

5

Пример 2. Программа использования функции принадлежности gaussmf.

а

б

Рис. 2. Простая (я) и двухсторонняя (б) функции принадлежности Гаусса

Описание функции: у = gauss2mf(x, [а1, с1, а2, с2]). Выражение является комбинацией двух различных функций распределения Гаусса. Первая определяется параметрами a1 и c1 и задает форму левой стороны, а вторая (параметры а2, с2) — правой стороны функции принадлежности. Если q<с2, то функция gauss2mf достигает своего максимального значения на уровне 1. Иначе — максимальное значение функции меньше 1 (рис. 2, б).

Пример 3. Программа использования функции принадлежности gauss2mf.

х = (0 : 0.1 : 10) ';

yl = gauss2mf(х, [2 4 18]); у2 = gauss2mf(х, [2 5 17]); у3 = gauss2mf (х, [2 6 16]); у4 = gauss2mf(х, [2 7 15]);

у5 = gauss2mf(х, [2 8 14]); plot (х, [yl у2 у3 у4 у5]);

Символ «'» в строке определения базового множества х показывает транспонированность базового множества.

6

Следующей функцией, которая позволяет представлять нечеткие субъективные предпочтения, является функция принадлежности «обобщенный коло-

кол». Она обозначается gbellmf {generalized bell shape membership function). Ее отличие от рассмотренных ранее функций принадлежности заключается в добавлении третьего параметра, что позволяет осуществлять плавный переход между нечеткими множествами. Описание функции:

у = gbellmf (х, [а b с]) .

Функция «обобщенный колокол» зависит от трех параметров и имеет следующую аналитическую запись:

где с определяет расположение центра функции принадлежности; а и b влияют на форму кривой (рис. 3).

Рис. 3. Функция принадлежности «обобщенный колокол» gbellmf, P = [2 4 6]

Пример 4. Программа использования gbellmf.

х = 0 : 0,1 : 10; у = gbellmf (х, [2 4 6 ] ) ; plot(x, у); xlabel('gbellmf, Р = [2 4 6 ] ' ) .

Функции принадлежности на основе функции распределения Гаусса и функции принадлежности «обобщенный колокол» отличаются гладкостью и простотой записи. Они являются наиболее используемыми при описании нечетких множеств. Несмотря на то, что гауссовы и колоколообразные функции принадлежности обладают свойством гладкости, они не позволяют формировать асимметричные функции принадлежности. Для этих целей предусмотрен

7

набор сигмоидальных функций, которые могут быть открыты либо слева, либо справа в зависимости от типа функции. Симметричные и закрытые функции синтезируют с использованием двух дополнительных сигмоид. Основная сигмоидальная функция принадлежности обозначается sigmf, а дополнительные — dsigmf и psigmf.

Описание основной сигмоидальной функции:

у= sigmf (х, [а с]).

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

.

В зависимости от знака параметра а рассматриваемая функция принадлежности будет открыта или справа или слева (рис. 4, а), что позволит применять ее при описании таких нечетких понятий, как «очень большой», «крайне отрицательно» и др.

Описание дополнительной сигмоидальной функции: у = dsigmf(х, [al,

cl, а2,

с2]). Функция принадлежности dsigmf зависит от четырех параметров

a1, c1,

а2 и с2 и определяется как разность двух сигмоидальных функций: f1(х,

а1, c1) - f2(x, а2, с2) (рис. 4, б).

 

Описание дополнительной сигмоидальной функции: у = psigmf (х,[ al,

cl, a2,

с2]). Функция принадлежности psigmf, также, как и предыдущая функ-

ция, зависит от четырех параметров а1, с1, а2, с2

и определяется как произве-

дение двух сигмоидальных функций: f1(x, а1, с1) f2

{x, а2, с2) (рис. 4, в).

Рис. 4. Сигмоидальные функции принадлежности:

а— основная односторонняя; б — дополнительная двухсторонняя;

вдополнительная несимметричная

8

Пример 5. Программа использования сигмоидных функций. х=0:0,1:10;— определяется базовое множество

subplot (1,3,1) ; — формируется матрица графиков (3 х 1)— первый элемент — текущий

y=sigmf (х, [2 4 ] ) ;

plot (х, у); —выводится график в первый элемент матрицы xlabel('sigmf, Р = [2 4 ] ' )

subplot (1,3,2); — выбирается второй текущий элемент у = dsigmf (х,

[5 2 5 7 ] ) ;

plot (х, у) ; —выводится график во второй элемент матрицы xlabel('dsigmf, Р = [5 2 5 7] ')

subplot(1,3,3); — выбирается третий текущий элемент у = psigmf(х, [2 3 -5 8]);

plot(х, у); — выводится график в третий элемент матрицы xlabel ( 'psigmf, Р = [2 3 -5 8]');

Рис. 5. Полиномиальные функции принадлежности: а Z-функция; б PI-функция; в S-функция

Инструментарий нечеткой логики (fuzzy logic toolbox) в составе Matlab предоставляет возможность формирования функции принадлежности на основе полиномиальных кривых. Соответствующие функции называются Z- функциями (zmf), PI -функции (pimf) и S-функции (smf). Функция zmf представляет собой асимметричную полиномиальную кривую, открытую слева (рис. 5, а), функция smf — зеркальное отображение функции zmf (рис. 5, б). Соответственно функция pimf равна нулю в правом и левом пределах и принимает значение, равное единице, в середине некоторого отрезка (рис. 5, в). Описание функции: у = zmf (х, [a b ] ) . Параметры а и b определяют экстремальные значения кривой (рис. 5, а).

9

Описание функции: у = pimf (х, [a b с d ] ) . Параметры a и d задают переход функции в нулевое значение, а параметры b и с — в единичное (рис. 5, б).

Описание функции: у = smf (х, [а b]) . Параметры а и b определяют экстремальные значения кривой (рис. 5, в).

Пример 6. Программа использования полиномиальных кривых.

х=0:0,1:10; subplot(1,3,1) ; у = zmf (х, [3 7 ] ) ; plot(x, у);

xlabel ('zmf, Р=[3 7 ] ' ) ; subplot (1, 3, 2 ) ;

у= pimf (х, [1 4 5 1 0 ] ) ; plot(х, у);

xlabel ('pimf, Р = [1 4 5 1 0 ] ' ) ; subplot (1, 3, 3) ;

у= s m f ( x , [ 1 8 ] ) ;

plot (х, у);

xlabel ('smf, P=[1 8 ] ' ) .

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

Операции с нечеткими множествами.

Выделяют три основные логические операции с нечеткими множествами: конъюнкцию, дизъюнкцию и логическое отрицание. В среде Matlab существует возможность определять конъюнктивные и дизъюнктивные операторы с точки зрения минимаксной и вероятностной интерпретаций.

Рассмотрим минимаксную интерпретацию логических операторов, в которой конъюнктивный оператор представляет нахождение минимума — min (рис. 6, а), а дизъюнктивный — максимума — max (рис. 6, б).

а

б

Рис. 6. Пересечение (а) и объединение (б) нечетких множеств (минимаксная интерпретация)

10