Федеральное агентство по образованию РФ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ

advertisement
Федеральное агентство по образованию РФ
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
УТВЕРЖДАЮ
Проректор по учебной работе
___________ М.Т. Решетников
___________ 2006 г.
Программа, методические указания
и контрольные работы по курсу
БАЗЫ ЗНАНИЙ
для студентов-заочников специальности
230102 - Автоматизированные системы
обработки информации и управления
Факультет – Заочный (ЗФ)
Профилирующая кафедра – Автоматизации обработки
информации (АОИ)
Курс – 5-6
Семестры – 10,11
Учебный план набора 2003 года
и последующих лет
2006
2
Программа, методические указания и контрольные задания составлены на основании ГОС ВО для специальности 230102 - Автоматизированные системы обработки информации и управления, утвержденного 27.03.2000 г.
Разработчик:
профессор кафедры АОИ, д.т.н.
_________И.А. Ходашинский
Программа, методические указания и контрольные задания согласованы с факультетом.
Декан З и ВФ:
доцент, к.ф.-м.н.
Зав. профилирующей каф. АОИ:
профессор, д.т.н.
_______________И.В. Осипов
_______________Ю.П. Ехлаков
3
1. ОБЩИЕ СВЕДЕНИЯ
База знаний – совокупность формализованных знаний об определенной предметной области, представленных в виде фактов и правил, фреймов, семантических сетей.
Построение баз знаний относится к сфере науки – «инженерии
знаний».
В учебном курсе «Базы знаний» рассматриваются аспекты, связанные с проблемами представления знаний и вывода на знаниях.
Цель курса – ознакомление студентов с методами и моделями
построения баз знаний.
После изучения курса студент должен
иметь представление
 о знаниях, методах их получения, хранения и обработки;
 об инженерии знаний как научном направлении и о решаемых здесь задачах;
 о возможностях технологии интеллектуальных систем и путях применения данных технологий в различных областях;
знать
 основные модели и методы инженерии знаний;
 принципы построения и методы разработки интеллектуальных систем;
а также иметь представление о возможностях среды fuzzyTECH как
средства построения баз знаний.
Для изучения курса студентам необходимо усвоить следующие
дисциплин и темы:
 общая математика: алгебра;
 общая математика: вероятность и статистика;
 специальные главы математики: логика;
 информатика: алгоритмизация и программирование.
Распределение учебного времени: всего аудиторных занятий –
28 часа, из них лекции – 16 часов, лабораторных работ – 12 часов. При
изучении данного курса по очной форме обучения аудиторных занятий
– 75 часов, общая трудоемкость по дневной форме обучения – 135 часов.
Установочные лекции посвящены следующим вопросам: продукционная модель представления знаний, фреймовая модель представления
знаний, семантические сети, нечеткие и ненадежные знания. Темы лабораторных работ: «Формирование базы правил нечеткой системы мо-
4
делирования нелинейной системы», «Формирование базы знаний в
среде fuzzyTech», «Исследование влияния функций принадлежности и
количества термов лингвистических переменных на качество вывода в
среде fuzzyTech». Самостоятельное изучение рекомендуемой литературы основывается на программе курса и методических указаниях по отдельным темам.
Формы контроля самостоятельной работы по изучению курса –
рецензирование контрольных работ, оценка выполнения лабораторных
работ и зачет по дисциплине (в одиннадцатом семестре).
2. РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА
1
2
3
4
5
6
7
1
2
Основная
Ходашинский И.А. Методы искусственного интеллекта, базы
знаний, экспертные системы. Учебное пособие. – Томск: Томский
межвузовский центр дистанционного образования, 2002. – 168 с.
Попов Э.В. Экспертные системы: Решение неформализованных
задач в диалоге с ЭВМ. - М.: Наука, 1987. - 288 с.
Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. – СПб.: Питер, 2000. – 384 с.
Леоненков А.В. Нечеткое моделирование в среде MATLAB и
fuzzyTECH. – СПб.: БХВ-Петербург, 2003. – 736 с.
Представление и использование знаний. / Под ред. Х. Уэно, М.
Исудзука. – М.: Мир, 1989. – 220 с.
Корнеев В.В., Гарев А.Ф., Васютин С.В., Райх В.В. Базы данных.
Интеллектуальная обработка информации. – М.: Нолидж, 2000. –
352 с.
Построение экспертных систем: Пер. с англ./Под ред. Ф. ХейесаРота, Д. Уотермана, Д. Лената. - М.: Мир, 1987. - 441 с.
Дополнительная
Лорьер Ж.-Л. Системы искусственного интеллекта.– М.: Мир,
1991. –568 с.
Люгер Д.Ф. Искусственный интеллект: стратегии и методы решения сложных проблем. – М.: «Вильямс», 2003. – 864 с.
5
3. ПРОГРАММА И МЕТОДИЧЕСКИЕ УКАЗАНИЯ
3.1. Продукционная модель представления знаний
3.1.1. Содержание темы
Модели представления знаний на основе правил. Вывод на знаниях, представленных с помощью правил. Язык инженерии знаний
OPS5.
Язык инженерии знаний EMYCIN.
Литература: [1, 2, 5, 7].
3.1.2. Методические указания
Рассмотрите варианты задания продукционного правила. Обратите внимание на сходство и отличие в определении правил.
Изучите структуру продукционной системы и способы получения вывода в системе. Выясните, какие функции выполняет каждый
компонент системы.
Рассмотрите два способа вывода в продукционных системах:
прямой и обратный. Придумайте свой пример продукционной системы, разберите прямой и обратный вывод в данной системе.
Ознакомьтесь со способами визуального представления правил
в продукционных системах. Представьте правила Вашей продукционной системы в виде И/ИЛИ-графа.
Раскройте содержание понятия «конфликтный набор». Изучите
способы разрешения конфликтов в продукционных системах в зависимости от типа вывода. Приведите примеры.
Рассмотрите особенности архитектуры продукционной системы,
использующей для вывода модель доски объявлений.
Назовите сильные и слабые стороны продукционных систем.
Изучите типы данных в OPS5 и синтаксис задания правила.
Приведите свои примеры.
Предложите свой язык разработки продукционных систем.
Обоснуйте выбранный Вами подход к определению продукционных
правил и данных.
Вопросы для самопроверки:
1. Что такое продукционная система?
6
2. Каковы функции рабочей памяти и машина логического вывода?
3. Что такое цепочка логического вывода?
4. Обоснуйте преимущества и недостатки прямого и обратного
вывода.
5. Что такое граф типа И/ИЛИ, для каких целей используются такие графы в продукционных системах?
6. Какие типы выводов возможны в продукционных системах?
7. Как задаются и как используются переменные в OPS5?
3.2. Фреймовая модель представления знаний.
3.2.1 Содержание темы
Теория фреймов. Структура фрейма. Представление статических и динамических ситуаций. Вывод во фреймовых системах.
Наследование, демоны, присоединенные процедуры.
Литература: [1, 2, 5].
3.2.2. Методические указания
Изучите структуру фрейма. Обратите внимание на процедурнодекларативный характер описания информации во фреймовых представлениях.
Разберитесь со структурой данных фрейма в языке FRL. Обратите внимание на использование системных имен во фреймах, на связь
значения слота с типом данных и условием наследования.
Уясните условия запуска демонов и присоединенных процедур.
Выясните способы вывода во фреймовых системах. Разберитесь, на свойствах каких отношений основан механизм наследования, а
также как пишутся демоны и служебные процедуры.
Выявите сходства и отличия фреймовых и объектноориентированных языков программирования.
Вопросы для самопроверки:
1.
2.
3.
Какой тип информации представлен во фрейме?
Что такое слот фрейма, как он определяется во фрейме?
Каковы функции ISA-отношения во фреймовых системах?
7
4.
Назовите проблемы, которые встречаются при выводе во
фреймовых системах, и способы решения этих проблем.
3.3. Семантические сети.
3.3.1 Содержание темы
Модели семантических сетей. TLC-модели. Падежи Филмора.
Функциональные семантические сети. Вывод в семантических сетях.
Метод сопоставление частей сетей. Метод распространяющихся волн.
Алгоритм паросочетаний.
Литература: [1, 3, 5, 6].
3.3.2. Методические указания
Раскройте содержание понятия «семантика». Дайте определение
синтаксическим, семантическим и прагматическим отношениям, принятым в семиотике.
Разберитесь с тем, что принято называть семантической сетью.
Обратите внимание на целостность образа сети и неразделимость синтаксических и семантико-прагматических знаний о внешнем мире.
Изучите TLC-модель. Назовите основные отношения, принятые
в данной модели. Определите достоинства и недостатки TLC-модели.
Разберитесь с применением первичного и вторичного определения понятия при представлении разных видов информации в виде понятийных структур.
Рассмотрите средства, дающие возможность представлять в сети события и действия. Обратите внимание на два основных уровня
языка, принятых в лингвистике: уровень поверхностных структур и
уровень глубинных структур. Приведите пример.
Изучите способы вывода в семантических сетях. Выясните, на
каких отношениях определен механизм наследования.
Уясните механизм вывода в семантических сетях, основанный
на построении подсети, соответствующей вопросу, и сопоставлении ее
с базой знаний. Разберитесь со способом вывода, называемым перекрестным поиском.
Рассмотрите семантическую сеть специального вида, носящую
название «функциональная семантическая сеть». Обратите внимание
на то, как задаются параметры, участвующие в решении задачи, и как
8
задаются функциональные отношения, связывающие между собой эти
параметры.
Разберитесь с механизмами вывода в функциональной семантической сети, основанными на распространяющихся волнах и паросочетаниях. Выявите достоинства и недостатки рассмотренных методов.
Вопросы для самопроверки:
1.
2.
3.
4.
5.
6.
7.
Определите основную концепцию представления знаний на основе
семантической сети.
Что показывают вершины и дуги в семантической сети общего типа?
Что такое падеж Филмора? Какую информацию можно представить с помощью таких падежей?
На каких отношениях определено наследование атрибутов и
свойств сети?
Что показывают вершины и дуги в функциональной семантической сети?
Как определены решения в функциональной семантической сети?
Когда прекращаются распространение волн в функциональной семантической сети?
3.4. Мягкие вычисления
3.4.1 Содержание темы
Нечеткие множества. Операции на нечетких множествах.
Нечеткие отношения. Вывод на нечетких знаниях. Обобщенное
правило modus ponens. Нечеткие системы, база нечетких правил, блоки
фаззификации, дефаззификации и вывода. Ненадежные знания.
Литература: [1, 4, 5, 6].
3.4.2. Методические указания
Выясните, как задается нечеткое множество и чем нечеткое
множество отличается от четкого. Обратите внимание на обозначения
в случае непрерывного и дискретного множества.
Изучите операции на нечетких множествах. Дайте графическую
интерпретацию указанных операций.
9
Выясните, как задается нечеткое отношение. Изучите задание
отношений в случае конечных множеств с помощью матрицы отношений и взвешенного графа. Обратите внимание на определение операции свертки max-min двух нечетких множеств.
Разберитесь с методом приближенных рассуждений, в котором
посылки являются нечеткими понятиями. Уясните, как получаются нечеткие отношения из нечеткого условного высказывания. Сравните
методы нечетких рассуждений, использующие перечисленные типы
нечетких отношений в правилах обобщенного modus ponens.
Разберитесь, как формируются нечеткие правила и чем они отличаются от классических продукционных правил. Изучите структуру
нечеткой системы и функции каждого блока, обратив особое внимание
на базу правил.
Выясните, как можно использовать метод разбиения сложных
задач на подзадачи с использованием дерева И-ИЛИ-КОМБ. Обратите
внимание на способ вычисления степени надежности при связи
КОМБ. Изучите метод MYCIN.
Вопросы для самопроверки:
1.
2.
3.
4.
5.
6.
7.
Какова основная идея, лежащая в основе понятия «нечеткое множество»?
Для каких целей используются нечеткие отношения?
В чем заключается принципиальное отличие традиционного правила модус поненс от обобщенного?
Как может быть использовано обобщенное правило модус толленс
для нечетких рассуждений?
Как задаются логические операции в нечеткой системе?
Зачем при разбиении сложных задач вводится связь КОМБ?
Возможно ли в общем случае устранение нечеткости и ненадежности при разработке интеллектуальных систем?
10
4. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ
ЛАБОРАТОРНЫХ РАБОТ
Лабораторная работа №1.
Формирование базы правил нечеткой системы
моделирования нелинейной системы.
Цель работы.
Знакомство с методологией нечеткого моделирования. Описание заданной нелинейной функции множеством правил вида ЕСЛИ-ТО.
Порядок выполнения работы.
1. Знакомство с методологией нечеткого моделирования.
Описание предметной области может быть проведено посредством лингвистических переменных и правил естественного языка, содержащих качественную оценку ситуации. Основой для описания ситуации является нечеткое высказывание следующего вида:
xi есть Xi или xi = Xi,
где xi – некоторая величина, Xi – элемент терм-множества лингвистической переменной из исследуемой предметной области.
Нечеткая система выполняет отображение из входного пространства A   m в выходное пространство B   r . Такая система является системой типа «много_входов – много_выходов» (MIMO –
multiple_input-multiple_output). Если система имеет m входов и r выходов и входное и выходное пространства являются многомерными, то
входное пространство определяется как A  A1  ...  Am , а выходное
пространство – как
B  B1  ...  Br , где Ai , B j   . Обозначим
a  [a1a2 ...am ] и b  [b1b2 ...br ]T как входной и выходной векторы, соT
ответственно. Отображение вход/выход может быть представлено как
множество нечетких правил типа «ЕСЛИ-ТО». Каждое правило состоит из двух частей: условной и заключительной. Антецедент или условная часть (ЕСЛИ-часть) содержит утверждение относительно значений
входных переменных, в консеквенте или заключительной части (ТОчасти) указываются значения, которые принимают выходные переменные. Таким образом, нечеткая система типа «много_входов – много_выходов» может быть задана нечеткими правилами следующего
вида:
11
Правило 1:
ЕСЛИ a1 = A11 И a2 = A21 … aт = Am1
ТО b1 = B11 И b2 = B21 И … И br = Br1;
Правило 2:
ЕСЛИ a1 = A12 И a2 = A22 … aт = Am2
ТО b1 = B12 И b2 = B22 И … И br = Br2;
……….………………………………………………………………………
Правило n:
ЕСЛИ a1 = A1n И a2 = A2n … aт = Amn
ТО b1 = B1n И b2 = B2n И … И br = Brn;
где a1, a2, …, am – входные переменные, b1, b2, …, br – выходные переменные, Ait и Bjs – нечеткие области определения входных и выходных
переменных, которые определены на универсальных множествах X1,
X2,…, Xm, Y1, Y2, …, Yr, соответственно. Каждая нечеткая область Ait
связана с функцией принадлежности  Ait (ai ) .
Вход A нечеткой системы активизирует каждое из правил, хранимых в нечеткой ассоциативной памяти. Чем больше вход A соответствует антецеденту i-го правила, тем больше выход соответствует консеквенту этого правила.
Весьма популярными в практическом применении в настоящее
время являются нечеткие системы типа «много_входов –
один_выход». Система такого типа выполняет отображение из входного пространства A   m в выходное пространство B   . Известно два
основных типа нечетких систем «много_входов –один_выход». Системы типа Мамдани имеют правила:
Правило i:
ЕСЛИ a1 = A1i И a2 = A2i … И aт = Ami ТО bi = Bi;
Другой тип – системы типа Сугено с правилами следующего вида:
Правило i:
ЕСЛИ a1 = A1i И a2 = A2i … aт = Ami ТО bi = fi(a1,… am);
где fi – функция, определенная на переменных a1 … aт.
Для описания отображения входного вектора a в значение b используются методы нечеткой логики, например, аппроксимация Мамдани или метод, основанный на формальном логическое доказательстве. В процессе вывода участвуют операции конъюнкции и дизъюнкции. Задание этих операций на основе триангулярных норм позволяет
более гибко настраивать нечеткую систему на исследуемую предметную область.
В общем случае процесс создания нечетких систем состоит из
следующих шагов:
1) определение входных и выходных переменных системы;
2) задание функций принадлежности каждой переменной;
12
3) определение нечетких правил;
4) настройка параметров функций принадлежности и нечетких
правил.
При разработке базы правил необходимо руководствоваться следующими принципами:
1) в базе правил существует правило для всяких сочетаний A1i, A2i,
…, Ami, Bi;
2) нет двух и более правил с одинаковым антецедентом и различным
консеквентом.
Для осуществления вывода в такой системе можно воспользоваться композиционным правилом. Однако предварительно нужно выполнить операции конъюнкции (И) и далее операцию объединения
(агрегации) n правил.
Пусть на вход системы поступают четкие значений x1, x2. Требуется определить четкий выход y. Для этого необходимо выполнить
следующие операции:
1) фаззификация – для каждого правила вычисляется значения
 A1i ( x1 ) и  A2i ( x2 ) ;
2) конъюнкция – объединение посылок в антецеденте каждого правила,
используя
t-нормальную
функцию,
получим
T (  A ( x1 ),  A 2 ( x2 )) ;
1
3) импликация - I (T (  A ( x1 ),  A ( x2 )),  B i ( y )) ;
4) агрегация – получение нечеткого выходного значения из множества объединенных правил, то есть определение итоговой функции принадлежности  B ( y) .
5) дефаззификация - преобразование итоговой функции принадлежности  B ( y) в четкое значение y.
Структура нечеткой системы моделирования представлена на
рис.1.1.
1i
2i
База правил
y
x1, x2
A1(x1)
Фаззификация
Машина
вывода
(y)
Дефаззификация
A2(x2)
Рис. 1.1. Структура нечеткой системы моделирования
13
2. Описание заданной нелинейной функции множеством правил
вида ЕСЛИ-ТО.
Пусть дана функция F(x) = sin(x) и следующие области изменения 0<x<2*pi, -1<y<1 (рис. 1.2).
1
1
0.5
F( x)
0
1
2
3
4
5
6
0.5
1
1
0
x
2 pi
Рис. 1.2. Пример нелинейной функции.
Лингвистические переменные, описывающие x и F, определены
на следующем множестве термов: {очень малая, малая, средняя, большая, очень большая}. Функции принадлежности для указанных термов
приведены на рисунках 1.3 и 1.4. Тогда нечеткая система моделирования указанной нелинейной функции будет заданна следующей базой
правил:
ЕСЛИ x = очень малая
ТО F = средняя,
ЕСЛИ x = малая
ТО F = очень большая,
ЕСЛИ x = средняя
ТО F = средняя,
ЕСЛИ x = большая
ТО F = очень малая,
ЕСЛИ x = очень большая ТО F = средняя
14
очень малая
1.0
малая
средняя
большая
очень большая
0.5
0



2
Рис. 1.3. Пример функций принадлежности для переменной x.
очень малая
1.0
малая
средняя
большая
очень большая
0.5
0



1
Рис. 1.4. Пример функций принадлежности для переменной F.
3. Варианты задания нелинейной функции.
№
вар.
1
2
3
4
5
6
Функция
z = x2 + sin(y –
pi/2)
z = cos(x) + sin(y –
pi/2)
z = x * sin(y)
z = x2 – y2
z = x2 * y2
z = x* y
x
-2<x<2
Область изменения
y
z
- pi <y< pi
-1<z<4
- pi <x< pi
- pi <y< pi
-2<z<2
-pi<x<pi
-4<x<4
-3<x<3
-3<x<3
-pi<y<pi
-4<y<4
-3<y<3
-3<y<3
-3<z<3
-4<z<4
0<z<4
-4<z<4
15
7
8
9
10
11
12
z = (x – y )* y +1
z = y * sin(x + y)
z = sin(2*x /pi)*
sin(2*y/pi)
z = y * sin(x)
z = y * cos(x)
z = x * cos(x) + y*
sin(y)
-3<x<3
-pi/2<x<pi/2
-5<x<5
-3<y<3
-pi/2<y<pi/2
5<y<5
-4<z<3
-0.5<z<1.5
1<z<1
-pi/2<x<pi/2
-pi/2<x<pi/2
- 2 <x< 2
-pi/2<y<pi/2
-pi/2<y<pi/2
- pi/2 <y<
pi/2
1<z<1.5
-1<z<1.5
-0.6<z<2
4. Задание.
1. Используя пакет Mathcad, построить график выбранной
нелинейной функции.
2. Выбранную нелинейную функцию описать базой правил
для лингвистических переменных, описывающих x и F,
определенных на множестве из пяти, семи, девяти и
одиннадцати термов.
Примечание.
 Если z выходит за заданные границы, то z принимает значение
равное значению минимальной или максимальной границы,
соответственно.
 pi = 3,1415926535897932384626433832795
Отчет
Отчет должен содержать следующие обязательные пункты:
1. Автор проекта.
2. Графическое и формульное представление моделируемой
функции.
3. Четыре базы правил: для пяти, семи, девяти и одиннадцати
термов.
16
Лабораторная работа №2.
Формирование базы знаний в среде fuzzyTech.
Цель работы.
Знакомство с возможностями пакета fuzzyTech. Создание базы правил в
среде fuzzyTech. Освоение графического редактора проекта и графических редакторов правил системы нечеткого вывода.
Порядок выполнения работы.
Знакомство с пакетом fuzzyTech.
Программа fuzzyTech предназначена для решения задач нечеткого
моделирования и разработки приложений на базе нечеткой логики.
Основными шагами разработки программ на fuzzyTECH являются:
1.
1) Формализация поставленной задачи - определение входных и
выходных лингвистических переменных, сопоставление термов с конкретными физическими значениями.
2) Определение логических операций на основе t-нормальных
функций.
3) Задание функций принадлежности для каждого терма.
4) Разработка базы правил.
5) Задание метода дефаззификации выходных данных;
6) Анализ и отладка.
Каждая система нечеткого вывода задается в форме проекта (Project). Все операции по созданию, редактированию, отладке и анализу
проектов выполняются в интерактивном режиме. Проекты сохраняются в отдельных файлах формата FTL (Fuzzy Technology Language) с
расширением ftl. Указанные файлы представляют собой текстовые
файлы, в которых хранится система нечеткого вывода в форме структурированного текста.
Процесс нечеткого моделирования в среде fuzzyTech осуществляется в интерактивном режиме с помощью специальных графических
средств, предназначенных для редактирования и визуализации компонентов системы нечеткого вывода.
Для редактирования и анализа систем нечеткого вывода используются следующие средства:
 графический редактор проекта системы нечеткого вывода
(Project Editor, рис. 3.1);
17




графический редактор лингвистических переменных и функций принадлежности их термов (Variable Editor);
графические редакторы правил системы нечеткого вывода
(Spreadsheet Rule Editor, Matrix Rule Editor);
графические средства анализа результатов нечеткого вывода
(Watch Window, Rule Analyzer);
графические средства просмотра поверхности системы нечеткого вывода (Transfer Plot Window, 3D Plot Window, Time Plot
Window).
Рис. 3. 1. Главное окно программы fuzzyTech.
Редактор проекта позволяет визуализировать структуру всего проекта и графически представить отношения между компонентами проекта. Двойной щелчек на изображении того или иного прямоугольника
позволяет открыть окно редактирования соответствующего компонента системы нечеткого вывода. Слева от окна редактора проекта расположено окно просмотра структуры проекта (Treeview). Указанное окно
содержит перечень всех компонентов проекта. Щелчок на изображении символа «+» позволяет раскрыть соответствующую вложенную
структуру группы. Двойной щелчок на имени выбранного компонента
18
проекта позволяет открыть окно редактирования свойств данного компонента системы нечеткого вывода.
Редакторы правил предназначены для редактирования правил продукций и представлены одной из следующих форм:
табличный редактор (Spreadsheet Rule Editor);
матричный редактор (Matrix Rule Editor).
Графическое окно табличного редактора имеет панель инструментов и секцию правил продукций. Причем правила в секции представлены в форме таблицы. Каждому правилу соответствует отдельная
строка, которая состоит из двух частей: IF- и THEN-части. В IF-части
указаны имена термов входных переменных, в THEN-части – имена
термов выходных переменных.
Графическое окно матричного редактора также состоит из панели
инструментов и секции правил. Правила в этой секции представлены в
форме матрицы. Каждому правилу соответствует отдельная ячейка или
клетка матрицы. Слева вверху от матрицы в панели WENN указываются имена входных термов и их значения. Слева внизу в панели
DANN указываются имена выходных термов и их значения. В соответствующей ячейке матрицы указывается сокращенное имя терма выходной переменной, соответствующее THEN-части правила. Имена
входных переменных указываются слева и снизу матрицы правил. Нечеткое правило отображается при нажатии соответствующей ячейки
матрицы.
Закрыть активный редактор правил можно с помощью соответствующей кнопки управления окном. После закрытия все изменения
автоматически сохраняются в текущем проекте, но не во внешнем
файле проекта.
2. Начало работы с пакетом fuzzyTech.
На основании данных лабораторной работы №1 определите количество правил, число входных и выходных переменных в нечеткой системе.
Запустите fuzzyTech. После запуска на экране появится главное окно программы с пустым проектом (рис. 3.1). Выбор той или иной операции меню выполняется стандартным для приложений MS Windows
образом. Панель инструментов содержит кнопки, позволяющие осуществить доступ к наиболее часто используемым командам и операциям. В центре главного окна расположено окно редактора проекта (Project Editor), в котором отображается структура системы нечеткого вывода в форме прямоугольников переменных и блоков правил.
19
Выберите команду New в меню File. В открывшемся окне (рис. 3.2)
задайте количество входных и выходных переменных, а также количество термов для входных и выходных переменных.
Рис. 3. 2. Окно спецификации проекта.
После нажатия кнопки Ok в окне Project Editor появится каркас
проекта (рис. 3.3).
Рис. 3.3. Каркас проекта.
Сохраните проект в файле (расширение ftl автоматически добавляется к выбранному имени файла).
3. Работа с редактором переменных.
Нажав правую кнопку мыши на выбранном прямоугольнике, обозначающем переменную, вызовите меню редактора переменных (рис.
3. 4). Переменные определены в лабораторной работе №1.
Рис. 3.4. Меню редактора переменных.
20
Выбрав пункт Properties, в закладке General поля Name задайте
имя переменной; в закладке Base Variable задайте минимальное и максимальное значение, а также значение переменной по умолчанию.
Выбрав пункт Variable Editor, задайте имена термов и тип функции принадлежности, щелкнув два раза левой клавишей мыши на имени терма (тип можно оставить по умолчанию).
Функции принадлежности в среде fuzzyTech определяются графически. Для этого необходимо кликнуть один раз на терме, затем на
графике задать расположение точек. Для добавления точек изгиба
необходимо дважды кликнуть на графике в нужном месте, для удаления необходимо выделить точку сгиба одним нажатием мыши, затем
нажать на клавиатуре клавишу «delete».
4. Работа с редактором правил.
Для входа в редактор нажмите правую кнопку мыши на выбранном прямоугольнике, обозначающем блок правил.
Выбрав пункт Properties, в закладке General поля Rule Block Name
задайте имя базы правил. В поле Configuration определяем входные и
выходные переменные.
Выбрав пункт Spreadsheet Rule Editor, задайте собственно нечеткие правила, воспользовавшись редактором правил (рис. 3.5).
Сформируйте несколько баз знаний, поместив в базу правила, полученные вами в лабораторной работе №1.
Рис. 3. 5. Меню табличного редактора правил
Для этого установите курсор мыши на нужную клетку и нажмите
правую кнопку мыши. В появившемся подменю выберите необходимый терм. Столбец DoS заполните значением 1.0.
21
Сформировать базу правил можно, воспользовавшись матричным
редактором Matrix Rule Editor (рис. 3.6.), вызвать который можно,
нажав правую кнопку мыши на выбранном прямоугольнике, обозначающем блок правил.
Рис. 3. 6. Меню матричного редактора правил
Сохраните сформированные базы знаний с помощью меню File –>
Save (Save as).
5. Документирование.
Оформление документации в среде fuzzyTech выполняется с помощью меню File –> Project Information File –> Documentation.
Отчет.
Отчет по лабораторной работе необходимо выполнить средствами
fuzzyTech или средствами редактора Microsoft Word.
Отчет должен содержать следующие обязательные пункты:
4. Автор проекта.
5. Моделируемая нелинейная функция.
6. Каркас проекта.
7. Описание переменных.
8. Описание всех баз правил.
Отчет должен быть написан на русском языке.
22
Лабораторная работа №3.
Исследование влияния функций принадлежности и количества
термов лингвистических переменных на качество вывода в среде
fuzzyTech.
Цель работы.
Знакомство с графическим редактором переменных и с графическими
средствами просмотра поверхности нечеткого вывода пакета fuzzyTech.
Исследование влияния количества термов лингвистических переменных на качество вывода в среде fuzzyTech.
Порядок выполнения работы.
1.
Знакомство со способами задания основных функции принадлежности.
Существует множество типов и форм функций принадлежности
термов лингвистических переменных. Рассмотрим четыре из них
наиболее часто используемые в практических и теоретических работах: треугольные, трапециевидные, гауссовы.
Треугольная функция принадлежности ã (x) аналитически описывается следующим образом:
 x  a1
 a  a , a1  x  a0 ,
 0 1
 x  a2
 ã ( x )  
, a0  x  a 2 ,
 a0  a2
0, в других случаях.


Трапециевидная функция принадлежности ũ (x) аналитически
описывается следующим образом:
 x  u1
 u  u , u1  x  u01,
1
 01
u01  x  u02
1,
u~ ( x)  
,
 x  u2 , u  x  u
02
2
 u02  u2

0, в других случаях.
23
Гауссова функция принадлежности ñ (x) описывается следующим образом:
  x  m 2 
0
 
n~ ( x)  exp   
   0  


В проектах fuzzyTech могут использоваться различные типы и
формы функций принадлежности термов лингвистических переменных. Чаще всего используется стандартный графический (не аналитический) вариант формы функции принадлежности, основанный на использовании четырех точек для задания соответствующей формы
функции принадлежности, которые могут иметь одну из следующих
форм:
 линейную (L-shape), предполагающую представление функции принадлежности в форме треугольной, трапециевидной
или их комбинации;
 S-образную, которая предполагает задание функции принадлежности в форме нелинейного представления.
Графическим средством задания функций принадлежности в
среде fuzzyTech является редактор переменных, предназначенный для
спецификации термов лингвистической переменной проекта и редактирования ее функции принадлежности в графическом режиме.
Графическое окно редактора переменных может быть открыто
двойным щелчком мыши на изображении прямоугольника соответствующей переменной в окне редактора проекта (Project Editor) или
двойным щелчком мыши на имени соответствующей переменной в
окне просмотра структуры проекта. Результат вызова редактора переменной in1, которая имеет пять термов с именами term1, term2, term3,
term4, term5, представлен на рис. 4.1.
Рис. 4.1. Окно редактора переменных
24
В секции графиков функций принадлежности изображены две
оси, на горизонтальной представлен весь диапазон значений редактируемой переменной, на вертикальной – интервал значений функции
принадлежности [0,1].
Редактирование ведется для одного выделенного терма, которому в окне функции принадлежности соответствует график с характерными малыми квадратами или маркерами в местах пересечения кривой
с горизонтальными линиями, соответствующими значениям функции
принадлежности 0 и 1. Маркеры могут быть использованы для изменения вида и значения функции принадлежности. Для этого следует
позиционировать курсор мыши и, не отпуская ее, переместить маркер
в нужном направлении.
Выделить нужный терм в секции имен можно последовательным
нажатием клавиш «↑» или «↓» на клавиатуре или щелчком левой кнопки мыши на имени терма в данной секции. Выделенный терм можно
удалить нажатием клавиши «Delete» на клавиатуре или воспользоваться операцией контекстного меню, которое может быть вызвано нажатием правой кнопки мыши при позиционировании в окне редактора.
Для добавления новых термов следует воспользоваться кнопкой панели инструментов
редактора или операцией контекстного
меню, либо нажатием клавиш Ctrl+T.
2. Задание функций принадлежности.
Основанием для выполнения настоящей работы являются результаты, полученные при выполнении лабораторной работы №3.
Запустите fuzzyTech. Для четырех баз знаний задайте функции принадлежности так, как показано на рис. 4.2.
3. Нечеткий вывод.
Для проведения нечеткого вывода необходимо нажать
или зайти в главном меню Debug и выбрать Interactive. При этом активизируются дополнительные кнопки
( Transfer Plot, 3D
Plot, Time Plot, Rule Analyzer, Statistics). При нажатии первых двух выводиться двумерное и трехмерное изображение результатов работы,
соответственно.
4. Анализ результатов нечеткого вывода.
Анализ необходимо провести путем сравнения поверхностей моделируемой нелинейной функции и поверхности, полученной в результате нечеткого вывода.
25
1.0
0.5
max
min
1.0
0.5
min
max
1.0
0.5
min
max
1.0
0.5
min
max
Рис. 4.2. Функции принадлежности
Отчет.
Отчет по лабораторной работе необходимо выполнить средствами
fuzzyTech или средствами редактора Microsoft Word.
Отчет должен содержать следующие обязательные пункты:
9. Автор проекта.
10. Графическое представление функций принадлежности (для
входных и выходных переменных).
11. Графическое представление моделируемой нелинейной функции, выполненное в среде Mathcad.
12. Для каждой базы знаний графическое представление моделируемой нелинейной функции, выполненное в среде fuzzyTech.
13. Выводы.
Отчет должен быть написан на русском языке.
26
5. КОНТРОЛЬНАЯ РАБОТА.
5.2. Методические указания
Задание 1. Пусть база правил в продукционной системе имеет содержимое:
если F и B то Z; если C и D то F; если A то D;
рабочая память: A, B, H, C.
Рассмотрим, каким образом "работают" правила. Система построена так, что
один раз выбранное правило из базы правил выполняться будет только один
раз. Оно как бы «выгорает». Первым выгорает правило «если A то D», так как
А уже имеется в базе данных. В качестве следствия этого правила получается
логический вывод о наличии ситуации D, которая заносится в рабочую область. Это вызывает выгорание правила «если C и D то F», и, как следствие,
выводится ситуация F и она заносится в базу данных. Это, в свою очередь, вызывает выгорание правила «если F и B то Z» с занесением Z в базу данных.
Такой способ называется прямым выводом. Графически вывод, можно изобразить следующим образом:
А
D
F
C
Z
B
Задание 2. При построении TLC-модели необходимо определить взаимосвязи
между понятиями. Построим TLC-модель понятия «автомобиль».
класс
пример
автомобиль
класс
легковой
автомобиль
свойство
пример
свойство
пример
колесный ход
свойство
Тип кузова
машина
«Нива»
Задание 3. Пусть имеются следующие посылки:
x - не очень маленькое;
преобразование
энергии
27
если x - маленькое, то y - большое, иначе y - маленькое.
Найти значения y’. Множество U = 1+2+3.
маленькое = 1/1+ 0.4/2;
большое = 0.5/2+ 1/3.
Квантификатор очень может интерпретироваться с помощью операции концентрации, те возведения в квадрат
очень x =

X(u)/u
Квантификатор не может интерпретироваться с помощью операции отрицания
не x =

X(u))/u .
Тогда термин очень маленькое = 1/1+ 0.16/2, а не очень маленькое = 0.84/2+ 1/3.
Отношение для максиминного правила
Rm'=(A  B)  ( ~A  C) =  ( A (u)   B (v))  ((1   A (u))  C (v))/(u, v)
U V
здесь A = маленькое, B = большое, C = маленькое.
Пример вычисления значений элементов матрицы Rm' приведены ниже:
(u1, v1) = (1  0) (0 1) = 0,
(u2, v1) = (0.4  0) (0.6 1)
= 0.6,
(u1, v2) = (1  0.5) (0 ) = 0.5,
(u2, v2) = (0.4  0.5) (0.6 )
= 0.4,
(u1, v3) = (1  1) (0 0) = 1,
(u2, v3) = (0.4  1) (0.6 0)
= 0.4,
(u3, v1) = (0  0) (1 1) = 1,
(u3, v2) = (0  0.5) (1 ) = 0.4,
(u3, v3) = (0  1) (1 0) = 0,
0 0 .5 1
Rm'= 0.6 0.4 0.4
1 0 .4 0
Тогда значение y’ может быть определено следующим образом
y’ = не очень маленькое  Rm' = 0 0.84 1
0 0 .5 1
 0.6 0.4 0.4  1 0.4 0.4 ,
1 0 .4 0
т.е. y’ = 1/1+ 0.4/2 + 0.4/3, что может быть интерпретировано (с некоторой натяжкой) как довольно таки маленькое.
Далее рассмотрим для указанных выше посылок арифметическое правило Ra':
Ra'= (~A  V + U  B)  (A  V + U  C) =
1  (1  A(u)  B(v))  ((A(u)  C (v))/(u, v) =
UV
28
0 0 .5 1
0 .6 0 .8 0 .4
1 0 .4 0
Тогда значение y’, используя арифметическое правило, может быть определено следующим образом
y’ = не очень маленькое  Ra' = 0 0.84 1
0 0 .5 1
 0.6 0.8 0.4  1 0.8 0.4 ,
1 0 .4 0
т.е. y’ = 1/1+ 0.8/2 + 0.4/3.
Вывод с использованием размытого бинарного правила приведен ниже:
Rb'= (~A  V  U  B)  (A  V  U  C)=
 (1  A(u)  B(v))  ((A(u)  C (v))/(u, v) =
UV
0 0 .5 1
0 .6 0 .4 0 .4
1 0 .4 0
Тогда значение y’, может быть определено следующим образом
y’ = не очень маленькое  Rb' = 0 0.84 1
0 0 .5 1
 0.4 0.4 0.4  1 0.4 0.4 ,
1 0 .4 0
т.е. y’ = 1/1+ 0.4/2 + 0.4/3, что может быть также интерпретировано как довольно
таки маленькое.
Последний нечеткий вывод проведем с использованием правила ТанакаМидзумото
Rgg'= (A  V  U  B)  (~A  V  U  C) =
 (A(u)  B(v))  ((1  A(u))  C (v))/(u, v) ,
UV
где
 1, если A  B
A( u )  B( v) = 
B, если A  B
29
0 0.5 1
Rgg'= 0 0.4 0
1 0.4 0
y’ = не очень маленькое  Rgg' =
0
0.84 1
0 0.5 1
 0 0.4 0  1 0.4 0 ,
1 0.4 0
т.е. y’ = 1/1+ 0.4/2 + 0/3, что интерпретируется как маленькое.
Задания для контрольной работы
Задание 1. База правил и рабочая память в продукционной системе имеет содержимое, заданное в вариантах. Проиллюстрировать графически механизм
прямого и обратного логического вывода факта А. Обратите внимание на изменение содержимого рабочей памяти в процессе вывода. Проведите упорядочение правил вывода. Рассмотрите возможные конфликты при прямом и обратном выводе.
Вариант 1. База правил:
если F и D и E то B; если G то C; если B и C то A; если R то D; если S то A;
если F и G то M;
рабочая память: G, E, R, F.
Вариант 2. База правил:
если B и C и D то A; если E то B; если G и H то C; если F то B; если E то A;
рабочая память: G, H, D, F.
Вариант 3. База правил:
если B и C и D то A; если F и G то B; если H и D то E; если E то A;
рабочая память: G, H, D, F.
Вариант 4. База правил:
если C и D то B; если E то B; если F и G то E; если B то A; если H
то C;
рабочая память: G, H, D, F.
Вариант 5. База правил:
если D то B; если F и H то D; если B и C то A; если G и R то E; если
E то B; если F и G то C;
рабочая память: G, H, F.
30
Вариант 6. База правил:
если B то A; если E и F и D то B; если G то C; если H то C; если C то
A; если D то H;
рабочая память: G, H, D.
Вариант 7. База правил:
если B то A; если E и F и G то C; если H то D; если C то B; если D то
B; если E то D;
рабочая память: G, H, F.
Вариант 8. База правил:
если B и C то A; если E и D то A; если H то C; если R то D; если G то
E; если F и G то B;
рабочая память: G, H, R.
Вариант 9. База правил:
если B то A; если F то B; если G то F; если C то A; если H то E; если
D и E то B;
рабочая память: G, H, D.
Вариант 0. База правил:
если B и C то A; если D то B; если E то B; если F то C; если G то C;
рабочая память: E, F, G.
Задание 2. Постройте TLC-модель для определения понятия, заданного в варианте; поскольку слова, используемые в определении понятия, сами обозначают
понятия, то определив их, постройте некоторую структуру, определяющую
каждое понятие через взаимосвязи с другими имеющимися понятиями. Рассмотрите не менее десяти понятий в сети.
Вариант 1. Понятие «студент».
Вариант 2. Понятие «профессор».
Вариант 3. Понятие «шкаф».
Вариант 4. Понятие «компьютер».
Вариант 5. Понятие «стол».
Вариант 6. Понятие «журнал».
Вариант 7. Понятие «книга».
Вариант 8. Понятие «ребенок».
Вариант 9. Понятие «трактор».
Вариант 0. Понятие «посуда».
Задание 3. Для всех десяти вариантов, пусть имеются следующее правило:
если x - маленькое, то y - большое, иначе y - маленькое.
Вторая посылка и значения переменных маленькое, большое приведено в вариантах;
U = 1+2+3+4.
31
Найти значения y, используя последовательно все четыре правила нечеткого
вывода (максиминное, арифметическое, размытое бинарное и правило ТанакаМидзумото). Сравните результаты, насколько сильно они отличаются от ожидаемых. 
Вариант 1. Вторая посылка: x - не большое. Значение переменных маленькое
= 1/1+ 0.8/2+ 0.2/3, большое = 0.2/2+ 0.7/3+ 1/4.
Вариант 2. Вторая посылка: x - большое. Значение переменных маленькое =
1/ + 0.8/ + 0.2/ , большое = 0.2/ + 0.75/ + 1/ .
1
2
3
2
3
4
Вариант 3. Вторая посылка: x - очень большое. Значение переменных маленькое = 1/1+ 0.7/2+ 0.2/3, большое = 0.25/2+ 0.75/3+ 1/4.
Вариант 4. Вторая посылка: x - не маленькое. Значение переменных маленькое = 1/1+ 0.8/2+ 0.3/3, большое = 0.2/2+ 0.9/3+ 1/4.
Вариант 5. Вторая посылка: x - очень маленькое. Значение переменных маленькое = 1/1+ 0.7/2+ 0.1/3, большое = 0.2/2+ 0.8/3+ 1/4.
Вариант 6. Вторая посылка: x - маленькое. Значение переменных маленькое =
1/ + 0.75/ + 0.1/ , большое = 0.25/ + 0.7/ + 1/ .
1
2
3
2
3
4
Вариант 7. Вторая посылка: x - не маленькое. Значение переменных маленькое = 1/1+ 0.75/2+ 0.1/3, большое = 0.25/2+ 0.7/3+ 1/4.
Вариант 8. Вторая посылка: x - очень маленькое. Значение переменных маленькое = 1/1+ 0.7/2+ 0.1/3, большое = 0.2/2+ 0.8/3+ 1/4.
Вариант 9. Вторая посылка: x - не очень большое. Значение переменных маленькое = 1/1+ 0.7/2+ 0.2/3, большое = 0.25/2+ 0.75/3+ 1/4.
Вариант 0. Вторая посылка: x - очень большое. Значение переменных маленькое = 1/1+ 0.7/2+ 0.2/3, большое = 0.2/2+ 0.8/3+ 1/4.
32
СОДЕРЖАНИЕ
Общие сведения ……………………………………..………………. 3
Рекомендуемая литература …………………………….…………… 4
Программа и методические указания ……………………………… 5
Методические указания к выполнению лабораторных работ ….... 10
Контрольная работа ………………………………………...……… 26
Download