Учебное пособие 1775
.pdfМинистерство образования и науки РФ
Государственное образовательное учреждение высшего профессионального образования
Воронежский государственный архитектурно-строительный университет
Кафедра прикладной информатики и информационных систем
НЕЧЕТКАЯ
ЛОГИКА
Методические указания к выполнению лабораторных работ
по курсу «Интеллектуальные информационные системы» для студентов 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