5.1. Интеллектуальные системы, основанные на нечеткой логике
Описанные выше положения можно применять для логического вывода утверждений.
Пример.
Известно: что x А, А В,
тогда в соответствии с аксиомой вывода: х В.
Пусть А – множество народных депутатов, а В – множество пользующихся правом бесплатного проезда в общественном транспорте.
Тогда утверждение А В трансформируется в правило вывода: «Если лицо является народным депутатом, то оно пользуется правом бесплатного проезда в общественном транспорте».
Если множества не сравнимы непосредственно, может потребоваться дополнительное функциональное преобразование, которое позволит рассматривать одно множество как подмножество другого [2].
Нечеткое правило можно сформулировать как условное высказывание: «если X есть A, то Y есть B», где A и B нечеткие множества. На языке математики это записывается в виде упорядоченной пары
(А, В), (5.1)
где А – нечеткое подмножество пространства входных значений X,
В – нечеткое подмножество пространства выходных значений Y,
либо как отношение (оператор):
R: R = А В. (5.2)
Отношение R можно рассматривать как нечеткое подмножество прямого (декартова) произведения XY множества предпосылок X и множества следствий Y.
Примечание.
Каждое правило определяет «нечеткое пятно» (декартово произведение AB) в пространстве состояний системы. Чем обширнее нечеткие множества A и B, тем больше и неопределеннее «нечеткое пятно». Нечеткие правила являются блоками для построения знаний. Можно сказать, что каждое нечеткое правило действует как ассоциативная память, связывающая нечеткий отклик B с нечетким стимулом A [26].
Система нечеткого логического вывода представляет собой композицию нечетких правил [27]:
|
, (5.3) |
где m – количество нечетких термов, степень принадлежности к которым требуется определить,
kj – количество правил вывода, необходимых для определения степени принадлежности к нечеткому терму bj,
n – количество условий, реализующих правило вывода,
wjp – вес правила,
xi – входное значение, принадлежащее нечеткому терму ai,jp,
y – выходное значение.
Правила, входящие в (5.3) обычно имеют вид:
«Если цена велика и спрос низкий, то оборот мал», (5.4)
где «цена» и «спрос» – входные переменные,
«оборот» – выходное значение,
«велика», «низкий» и «мал» – функции принадлежности (нечеткие множества), определенные на множествах значений «цены», «спроса» и «оборота» соответственно.
Пример.
Система кондиционирования может быть описана правилами: «Если температура в комнате высокая, то скорость вращения вентилятора высокая» и «Если температура в комнате низкая, то скорость вращения вентилятора низкая». Результатом преобразования посылки «Температура в комнате 30° С» для кондиционера может служить указание «Включить вентилятор». Все значения температур, при которых необходимо его включение, образуют подмножество во множестве условий, приводящих к включению вентилятора. Преобразование производится функцией управления, роль которой в данном случае может выполнять термостат.
Нечеткие правила вывода образуют базу правил. Следует особо отметить, что в нечеткой экспертной системе, в отличие от традиционной, работают все правила одновременно, однако степень их влияния на выход может быть различной. Таким образом, в основе нечетких экспертных систем лежит принцип суперпозиции множества правил при оценке их влияния на конечный результат.
Процесс обработки нечетких правил вывода в экспертной системе состоит из четырех этапов:
вычисление степени истинности левых частей правил (между «если» и «то») – определение степени принадлежности входных значений нечетким подмножествам, указанным в левой части правил вывода;
модификация нечетких подмножеств в правой части правил вывода (после «то») в соответствии со значениями истинности, полученными на первом этапе;
объединение (суперпозиция) модифицированных подмножеств;
скаляризация результата суперпозиции, т.е. переход от нечетких подмножеств к скалярным значениям.
Для определения степени истинности левой части каждого правила, нечеткая экспертная система вычисляет значения функций принадлежности нечетких подмножеств от соответствующих значений входных переменных. Например, для правила (5.4) определяется степень вхождения конкретного значения переменной «цена» в нечеткое подмножество «велика», то есть истинность предиката «цена велика». К вычисленным значениям истинности могут применяться логические операции. Наиболее часто используются следующие определения операций нечеткой логики:
truth (~ X) = 1 – truth(X),
truth (X & Y) = min{truth (X), truth (Y)}, (5.5)
truth (X Y) = max{truth (X), truth (Y)},
где X и Y – высказывания,
truth (Z) – степень истинности высказывания Z.
Полученное значение истинности предназначено для модификации нечеткого множества, указанного в правой части правила. Для выполнения такой модификации применяют метод «минимума» (Correlation-min Encoding), либо метод «произведения» (Correlation-product Encoding).
Первый метод ограничивает функцию принадлежности множества, указанного в правой части правила, значением истинности левой части (рис. 5.1).
Во втором методе значение истинности левой части используется как коэффициент, на который умножаются значения функции принадлежности (рис. 5.2).
Результатом выполнения правила является нечеткое множество. Говоря более строгим языком, происходит ассоциирование переменной и функции принадлежности, указанной в правой части.
Рис. 5.1. Метод «минимума»
Рис. 5.2. Метод «произведения»
Выходы всех правил вычисляются нечеткой экспертной системой отдельно, однако в правой части нескольких из них может быть указана одна и та же нечеткая переменная. Как было сказано выше, при определении обобщенного результата необходимо учитывать все правила. Для этого система осуществляет суперпозицию нечетких множеств, связанных с каждой из таких переменных. Эта операция называется нечетким объединением правил вывода.
Например, правая часть правил «Если цена мала, то спрос велик» и «Если цена велика, то спрос мал» содержит одну и ту же переменную – «спрос». Два нечетких подмножества, получаемые при выполнении этих правил, должны быть объединены экспертной системой.
Суперпозиция функций принадлежности нечетких множеств обычно определяется методом максимума комбинации (Мах Combination):
| , (5.6) |
где msum F(x) – результирующая функция принадлежности,
mi F(x) – нечеткие множества.
Реализация этого метода для двух функций представлена на рис. 5.3.
Рис. 5.3. Метод Мах Combination
Другой метод суперпозиции, называемый Sum Combination, заключается в суммировании значений всех функций принадлежности (рис. 5.4):
| . (5.7) |
Самым простым (но и наименее часто используемым) является подход, при котором суперпозиция не производится, а выбирается одно из правил вывода, результат которого считается интегральным. Такой прямой метод используется для задания функции принадлежности четко измеримых понятий, например, таких как скорость, время, давление и т.д.
Рис. 5.4. Метод Sum Combination
Конечным этапом обработки базы правил вывода является переход от нечетких значений к скалярным. Процесс приведения нечеткого множества к некоторому единственному значению называется скаляризацией или дефаззификацией [< англ. defuzzification].
Обычно это значение определяется методом нахождения центра тяжести функции принадлежности (Centroid Defuzzification Method) или методом максимального значения функции принадлежности (Modal Defuzzification Method), проиллюстрированными на рис. 5.5 и 5.6 соответственно.
Рис. 5.5. Скаляризация методом нахождения центра тяжести
Рис. 5.6. Скаляризация методом нахождения максимума
Конкретный выбор методов суперпозиции и скаляризации осуществляется в зависимости от желаемого поведения нечеткой экспертной системы. В качестве инструментального средства для разработки нечеткой экспертной системы можно воспользоваться пакетом CubiCalc 2.0 компании Hyper Logic Corporation [2].
- Содержание
- 1. Базы данных, ориентированные на искусственный интеллект 18
- 2. Формализация знаний о проблемной области 37
- 3. Инструментальные средства логического программирования 67
- 4. Организация принятия решений в экспертных системах 100
- 5. Интеллектуальные технологии обработки информации 115
- 6. Система моделирования эо kappa 158
- 7. Стандартные функции эо kappa 180
- 8. Работа с правилами в эо kappa 193
- 9. Создание интерфейса пользователя в эо kappa 206
- 10. Инструментальная оболочка разработки эс − clips 223
- 10.2.3. Правила 231
- 11. Разработка экспертной системы в ио clips 261
- 12. Создание проекта онтологии с помощью ис Protégé 291
- Предисловие
- Список сокращений
- Введение
- 1. Базы данных, ориентированные на искусственный интеллект
- 1.1. Экспертные системы и их особенности
- 1.2. Основные типы задач, решаемых с помощью экспертных систем
- 1.3. Особенности разработки экспертных систем
- 1.3.1. Приобретение знаний
- 1.3.2. Представление знаний
- 1.3.3. Реализация
- 1.4. Виды экспертных систем
- 1.5. Представление знаний в системах искусственного интеллекта
- 1.5.1. Данные и знания
- 1.5.2. Представление знаний в рабочей памяти эвм
- 1.5.3. Представление знаний в базе знаний
- Контрольные вопросы
- 2. Формализация знаний о проблемной области
- 2.1. Таксономическая классификационная схема
- 2.2. Онтологический подход к представлению проблемной информации
- 2.2.1. Цели разработки онтологий
- 2.2.2. Фундаментальные правила разработки онтологии
- 2.2.3. Определение области и масштаба онтологии
- 2.2.4. Рассмотрение вариантов повторного использования существующих онтологий
- 2.2.5. Перечисление важных терминов в онтологии
- 2.2.6. Определение классов и их иерархии
- 2.2.7. Определение свойств классов – слотов
- 2.2.8. Определение фацетов слотов
- 2.2.9. Домен слота и диапазон значений слота
- 2.2.10. Создание экземпляров
- 2.3. Модели представления знаний
- 2.3.1. Фреймы
- 2.3.2. Семантические сети
- 2.3.3. Исчисление предикатов первого порядка
- 2.3.4. Модель представления знаний в виде правил продукции
- Контрольные вопросы
- 3. Инструментальные средства логического программирования
- 3.1. Язык логического программирования Пролог
- 3.2. Основные разделы программы
- 3.3. Рекурсивные вычисления в Пролог-программе
- 3.4. Процесс реализации вывода
- 3.5. Предикаты
- 3.6. Списковые структуры
- 3.7. Вызов внешних функций из Пролог-программы и интерфейс с программами на других языках программирования
- 3.8. Пример реализации экспертной системы на языке Пролог
- 3.9. Диалекты и языки, используемые для задач искусственного интеллекта
- Контрольные вопросы
- 4. Организация принятия решений в экспертных системах
- 4.1. Организация логического вывода в экспертных системах
- 4.2. Правила
- 4.3. Поиск решений
- 4.4. Управляющая структура
- 4.5. Технологии принятия решений в системах с базами знаний
- 4.6. Методы поиска, реализованные в экспертных системах
- 4.7. Использование процедур
- 4.8. Представление неопределенности в информационных приложениях с базами знаний
- Контрольные вопросы
- 5. Интеллектуальные технологии обработки информации
- 5.1. Интеллектуальные системы, основанные на нечеткой логике
- 5.2. Нейронные сети
- 5.2.1. Биологический и искусственный нейроны
- 5.2.2. Классификация нейронных сетей
- 5.2.3. Задачи, решаемые с помощью нейронных сетей
- 5.3. Эволюционные вычисления
- 5.3.1. Основные определения
- 5.3.2. Процесс работы генетического алгоритма
- 5.3.3. Пример решения задачи с использованием генетического алгоритма
- 5.3.4. Достоинства и недостатки генетических алгоритмов
- 5.4. Комплексный подход к проектированию систем искусственного интеллекта
- 5.5. Инструментальные средства представления знаний
- 5.5.1. Классификация оболочек эс
- 5.5.2. Уровни реализации экспертных систем
- Контрольные вопросы
- 6. Система моделирования эо kappa
- 6.1. Представление знаний в эо kappa
- 6.2. Начало работы с эо kappa
- 6.3. Окно иерархии объектов (Object Browser)
- 6.4. Окно инструментов (Knowledge Tools) и редакторы знаний
- 6.4.1. Редактор классов (Class Editor)
- 6.4.2. Редактор объектов (Instance Editor)
- 6.4.3. Редактор слотов (Slot Editor)
- 6.4.4. Редактор методов (Method Editor)
- 6.4.5. Редактор функций (Function Editor)
- 6.4.6. Редактор правил (Rule Editor)
- 6.4.7. Редактор цели (Goal Editor)
- 6.5. Окно интерпретатора (kal Interpreter)
- 6.6. Окно сеанса (Session)
- 6.7. Окно связи правил (Rule Relations)
- 6.8. Окно трассировки правил (Rule Trace)
- 6.9. Окно просмотра иерархии выводов (Inference Browser)
- 6.10. Средство объяснений эо kappa
- Контрольные вопросы
- 7. Стандартные функции эо kappa
- 7.1. Функции манипулирования знаниями
- 7.1.1. Функции работы с классами
- 7.1.2. Функции работы с объектами
- 7.1.3. Функции работы с иерархией объектов
- 7.1.4. Функции работы со слотами
- 7.1.5. Функции работы с методами
- 7.1.6. Функции работы с правилами
- 7.1.7. Функции работы с целями
- 7.2. Математические функции
- 7.3. Функции работы со строками
- 7.4. Функции работы со списками
- 7.5. Логические функции
- 7.6. Функции работы с файлами
- 7.7. Функции управления
- 7.8. Функции работы с окнами
- 7.9. Функции работы с компонентами
- 7.10. Функции, определенные пользователем
- Контрольные вопросы
- 8. Работа с правилами в эо kappa
- 8.1. Создание и редактирование правил
- 8.2. Формирование списка правил
- 8.3. Создание и редактирование цели
- 8.4. Рассуждения в прямом направлении
- 8.4.1. Стратегии принятия решения
- 8.4.2. Формирование прямой цепи рассуждений
- 8.4.3. Активная трассировка при формировании прямой цепи рассуждений
- 8.5. Рассуждения в обратном направлении
- Контрольные вопросы
- 9. Создание интерфейса пользователя в эо kappa
- 9.1. Стандартные компоненты интерфейса пользователя
- 9.1.1. Компонент Button
- 9.1.2. Компонент Text
- 9.1.3. Компонент Transcript
- 9.1.4. Компонент Edit
- 9.1.5. Компонент BitMap
- 9.1.6. Компонент Drawing
- 9.1.7. Компонент StateBox
- 9.1.8. Компонент Meter
- 9.1.9. Компонент LinePlot
- 9.1.10. Компонент Slider
- 9.1.11. Компонент SingleListBox
- 9.1.12. Компонент MultipleListBox
- 9.1.13. Компонент CheckBox
- 9.1.14. Компонент CheckBoxGroup
- 9.1.15. Компонент RadioButtonGroup
- 9.2. Особенности русификации эо kappa
- Контрольные вопросы
- 10. Инструментальная оболочка разработки эс − clips
- 10.1. Общие сведения об ио clips
- 10.2. Программирование в ио clips
- 10.2.1. Основные элементы программирования
- 10.2.2. Факты
- 10.2.3. Правила
- 10.2.4. Переменные
- 10.2.5. Дополнительные средства
- 10.3 Интерфейс ио clips
- 10.3.1 Интерфейс командной строки
- 10.3.2. Графический интерфейс пользователя
- 10.3.3. Интерфейс встроенного редактора
- 10.4. Организация работы в ио clips
- 10.4.1. Постановка задачи и составление программы
- 10.4.2. Запуск ио clips
- 10.4.3. Ввод программы
- 10.4.4. Загрузка и запуск программы
- 10.4.5. Работа программы
- 10.4.6. Сохранение результатов работы
- Контрольные вопросы
- 11. Разработка экспертной системы в ио clips
- 11.1. Подготовка исходных данных
- 11.2. Выделение сущностей
- 11.3. Сбор информации
- 11.4. Диагностические правила
- 11.5. Листинг программы
- 11.6. Выполнение программы
- Контрольные вопросы
- 12. Создание проекта онтологии с помощью ис Protégé
- 12.1. Создание нового проекта
- 12.2. Структура проекта
- 12.3. Работа с классами
- 12.3.1. Создание нового класса
- 12.3.2. Создание экземпляра класса
- 12.3.3. Инструменты работы с классами
- 12.4. Работа со слотами
- 12.5. Сохранение проекта в формате rdf
- 12.6. Экспорт онтологии в формат эо clips
- Контрольные вопросы
- Заключение
- Глоссарий
- Библиографический список