РАЗРАБОТКА ЭКСПЕРТНЫХ СИСТЕМ.
Санкт-Петербург
«БХВ-Петербург»
УДК 681.3.06
ББК 32.813
Ч-25
Книга является одним из первых российских изданий по практической разработке экспертных систем. Подробно рассмотрены вопросы домашинного этапа разработки – извлечения и структурирования знаний, а также технологические аспекты разработки систем, основанных на знаниях. В качестве среды разработки экспертных систем описана среда CLIPS. Книга содержит достаточное количество справочной информации по CLIPS, что позволяет рекомендовать ее даже опытным программистам, которые в своей практической деятельности занимаются разработкой экспертных систем.
Для студентов вузов, инженеров по знаниям, программистов, проектировщиков эксепртных систем.
Содержание
Введение……………………………………………………………………………….. 8
ЧАСТЬ I. ЭКСПЕРТНЫЕ СИСТЕМЫ…………………………………………… 10
Глава 1. Системы, основанные на знаниях....................................................................... 11
1.1. Знания и данные..................................................................................................... 11
|
|
1.2. Модели представления знаний.......................................................................... 13
1.2.1. Продукционная модель.............................................................................................. 14
1.2.2. Семантические сети.................................................................................................... 14
1.2.3. Фреймы........................................................................................................................... 15
1.2.4. Формальные логические модели............................................................................. 17
1.3. Вывод на знаниях................................................................................................................... 17
1.3.1. Управление выводом................................................................................................... 19
1.3.2. Методы поиска в глубину и в ширину................................................................... 20
1.4. Работа с нечеткостью............................................................................................................ 21
1.4.1. Основы теории нечетких множеств......................................................................... 21
1.4.2. Операции с нечеткими знаниями............................................................................. 23
1.5. Архитектура и особенности экспертных систем........................................................... 24
1.6. Классификация экспертных систем.................................................................................. 28
1.6.1. Классификация по решаемой задаче..................................................................... 28
1.6.2. Классификация по связи с реальным временем................................................... 30
1.6.3. Классификация по типу ЭВМ................................................................................... 30
1.6.4. Классификация по степени интеграции с другими программами.................. 30
1.7. Разработка экспертных систем.......................................................................................... 30
1.7.1. Выбор подходящей проблемы................................................................................. 31
|
|
1.7.2. Разработка прототипа................................................................................................ 32
Идентификация проблемы........................................................................................ 33
Извлечение знаний...................................................................................................... 33
Структурирование или концептуализация знаний............................................ 34
Формализация знаний................................................................................................ 34
Программная реализация.......................................................................................... 34
Тестирование................................................................................................................ 35
1.7.3. Развитие прототипа до промышленной ЭС......................................................... 35
1.7.4. Оценка системы............................................................................................................ 36
1.7.5. Стыковка системы....................................................................................................... 36
1.7.6. Поддержка системы.................................................................................................... 37
1.8. Человеческий фактор при разработке ЭС....................................................................... 37
1.8.1. Пользователь................................................................................................................ 38
1.8.2. Эксперт........................................................................................................................... 38
1.8.3. Программист................................................................................................................. 39
1.8.4. Инженер по знаниям................................................................................................... 39
Глава 2. Введение в инженерию знаний............................................................................. 41
2.1. Определение и структура инженерии знаний................................................................ 41
2.1.1. Поле знаний................................................................................................................... 41
2.1.2. "Пирамида" знаний...................................................................................................... 44
2.2. Стратегии получения знаний..................................................................................... 44
2.3. Теоретико-методические аспекты извлечения и структурирования знаний 47
2.3.1. Психологический аспект............................................................................................ 47
Контактный слой......................................................................................................... 49
Процедурный слой...................................................................................................... 49
Когнитивный слой....................................................................................................... 51
2.3.2. Лингвистический аспект............................................................................................ 52
"Общий код"................................................................................................................... 53
Понятийная структура............................................................................................... 55
Словарь пользователя................................................................................................ 56
2.3.3. Гносеологический аспект.......................................................................................... 56
Внутренняя согласованность................................................................................... 57
Системность.................................................................................................................. 57
Объективность.............................................................................................................. 57
Историзм........................................................................................................................ 57
Методология процесса получения нового знания............................................. 58
2.4. Методы практического извлечения знаний.................................................................... 60
2.5. Практикум по инженерии знаний....................................................................................... 62
2.5.1. Текстологические методы......................................................................................... 62
Понимание текста....................................................................................................... 63
Смысловая структура текста................................................................................. 64
Алгоритм извлечения знаний из текста............................................................... 65
2.5.2. Коммуникативные методы...................................................................................... 65
Пассивные методы.................................................................................................... 65
Активные индивидуальные методы..................................................................... 68
Активные групповые методы................................................................................. 71
Экспертные игры....................................................................................................... 73
|
|
2.6. Методы структурирования и формализации.............................................................. 76
2.6.1. Теоретические предпосылки.................................................................................. 76
2.6.2. Объектно-структурный подход (ОСП)................................................................. 78
Стратификация знаний............................................................................................ 79
Алгоритм ОСА (объектно-структурного анализа)........................................... 80
2.6.3. Практические методы структурирования........................................................... 81
Алгоритм для "чайников"........................................................................................ 81
Методы выявления объектов, понятий и их атрибутов.................................. 82
Методы выявления связей между понятиями.................................................... 84
Методы выделения метапонятий и детализация понятий
(пирамида знаний).................................................................................................... 84
Методы определения отношений......................................................................... 85
Визуальное структурирование............................................................................. 85
ЧАСТЬ II. ОБЩИЕ ПОНЯТИЯ............................................................................................. 88
Глава 3. Что такое CLIPS?...................................................................................................... 89
3.1. История создания CLIPS..................................................................................................... 89
3.2. Работа с CLIPS...................................................................................................................... 91
3.3. Синтаксис определений...................................................................................................... 93
Глава 4. Обзор возможностей CLIPS................................................................................... 95
4.1. Основные элементы языка.................................................................................................. 95
4.1.1. Типы данных................................................................................................................ 95
4.1.2. Функции......................................................................................................................... 97
4.1.3. Конструкторы.............................................................................................................. 98
4.2. Абстракции данных............................................................................................................. 98
4.2.1. Факты............................................................................................................................. 98
Упорядоченные факты.............................................................................................. 99
|
|
Неупорядоченные факты......................................................................................... 99
Инициализация фактов............................................................................................. 100
4.2.2. Объекты......................................................................................................................... 100
Инициализация объектов......................................................................................... 101
4.2.3. Глобальные переменные.......................................................................................... 101
4.3. Представление знаний......................................................................................................... 101
4.3.1. Эвристические знания............................................................................................... 102
4.3.2. Процедурные знания................................................................................................. 102
Функции......................................................................................................................... 102
Родовые функции........................................................................................................ 103
Обработчики сообщений......................................................................................... 103
Модули.......................................................................................................................... 103
4.4. Объектно-ориентированные возможности CLIPS....................................................... 103
4.4.1. Отличия COOL от других объектно-ориентированных языков.................... 103
4.4.2. Основные возможности ООП................................................................................... 104
4.4.3. Запросы и наборы объектов.................................................................................... 104
ЧАСТЬ III. ОСНОВНЫЕ КОНСТРУКЦИИ CLIPS........................................................ 105
Глава 5. Факты............................................................................................................................ 106
5.1. Факты в CLIPS....................................................................................................................... 106
5.2. Работа с фактами.................................................................................................................. 107
5.2.1. Конструктор deftemplate........................................................................................... 108
5.2.2. Конструктор deffacts.................................................................................................. 113
5.2.3. Функция assert.............................................................................................................. 115
5.2.4. Функция retract............................................................................................................ 117
5.2.5. Функция modify............................................................................................................ 118
5.2.6. Функция duplicate....................................................................................................... 120
5.2.7. Функция assert-string.................................................................................................. 121
5.2.8. Функция fact-existp...................................................................................................... 121
5.2.9. Функции для работы с неупорядоченными фактами........................................ 122
5.2.10. Функции сохранения и загрузки списка фактов.............................................. 124
Глава 6. Правила....................................................................................................................... 126
6.1. Создание правил. Конструктор defrule................................................................. 126
6.2. Основной цикл выполнения правил........................................................................ 129
6.3. Свойства правил.......................................................................................................... 130
6.3.1. Свойство salience....................................................................................................... 130
6.3.2. Свойство auto-focus................................................................................................... 130
6.4. Стратегия разрешения конфликтов................................................................................. 131
6.4.1. Стратегия глубины................................................................................................... 131
6.4.2. Стратегия ширины.................................................................................................... 131
6.4.3. Стратегия упрощения.............................................................................................. 131
6.4.4. Стратегия усложнения............................................................................................. 132
6.4.5. Стратегия LEX............................................................................................................ 132
6.4.6. Стратегия МЕА.......................................................................................................... 133
6.4.7. Случайная стратегия................................................................................................ 133
6.5. Синтаксис LHS правила..................................................................................................... 133
6.5.1. Образец (pattern СЕ).................................................................................................. 134
Символьные ограничения........................................................................................ 135
Групповые символы для простых и составных полей.................................... 136
Переменные, связанные с простыми и составными полями.......................... 138
Связывающие ограничения..................................................................................... 140
Предикатные ограничения...................................................................................... 141
Ограничения, возвращающие значения.............................................................. 142
Сопоставление образцов с объектами................................................................. 142
Адрес образца............................................................................................................. 143
6.5.2. Условный элемент test.............................................................................................. 144
6.5.3. Условный элемент or................................................................................................. 145
6.5.4. Условный элемент and.............................................................................................. 145
6.5.5. Условный элемент not............................................................................................... 146
6.5.6. Условный элемент exists........................................................................................... 148
6.5.7. Условный элемент forall.......................................................................................... 149
6.5.8. Условный элемент logical........................................................................................ 150
6.5.9. Автоматическое добавление и перегруппировка условных элементов..... 152
Безусловные правила............................................................................................... 153
Использование элементов test и not перед and................................................. 153
Использование элемента not перед test............................................................... 154
Использование элемента not перед or................................................................. 154
Замечания об автоматическом добавлении и перегруппировке
условных элементов................................................................................................. 155
6.6. Команды и функции для работы с правилами............................................................ 155
6.6.1. Просмотр и удаление существующих правил.................................................. 155
6.6.2. Сохранение правил.................................................................................................. 157
6.6.3. Запуск и остановка программы............................................................................. 158
6.6.4. Просмотр плана решения задачи......................................................................... 160
6.6.5. Просмотр данных, способных активировать правило................................... 132
Глава 7. Глобальные переменные...................................................................................... 164
7.1. Конструктор defglobal и функции для работы с глобальными переменными... 164
Глава 8. Функции...................................................................................................................... 169
8.1. Конструктор deffunction и способы работы с внешними функциями................... 169
Глава 9. Разработка экспертной системы AutoExpert................................................. 173
9.1. Исходные данные................................................................................................................. 173
9.2. Сущности................................................................................................................................ 174
9.3. Сбор информации................................................................................................................ 175
9.4. Диагностические правила................................................................................................. 176
9.5. Последние штрихи............................................................................................................... 179
9.6. Листинг программы............................................................................................................. 180
9.7. Запуск программы............................................................................................................... 186
ЧАСТЬ IV. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ CLIPS................................... 190
Глава 10. Родовые функции.................................................................................................. 191
10.1. Замечание относительно термина "метод"................................................................. 191
10.2. Рекомендации по использованию родовых функций............................................... 191
10.3. Создание родовой функции............................................................................................. 192
10.3.1. Заголовок родовой функции............................................................................... 193
10.3.2. Индексы методов................................................................................................... 193
10.3.3. Ограничения параметров метода..................................................................... 193
10.3.4. Групповой параметр............................................................................................ 194
10.4. Родовое связывание........................................................................................................... 195
10.4.1. Применимость методов........................................................................................ 195
10.4.2. Приоритет методов............................................................................................... 196
10.4.3. Скрытые методы.................................................................................................... 198
10.4.4. Ошибки выполнения метода............................................................................... 198
10.4.5. Значение, возвращаемое родовой функцией................................................. 198
10.5. Визуальные инструменты для работы с родовыми функциями.................................................................................................................. 199
Глава 11. Объектно-ориентированный язык CLIPS................................................... 203
11.1. Предопределенные системные классы........................................................................ 203
11.2. Конструктор defclass......................................................................................................... 204
11.2.1. Множественное наследование.......................................................................... 205
11.2.2. Абстрактные и конкретные классы.................................................................. 207
11.2.3. Активные и неактивные классы......................................................................... 208
11.2.4. Слоты класса.......................................................................................................... 209
Тип слота................................................................................................................. 209
Грани значений по умолчанию......................................................................... 209
Грань хранения...................................................................................................... 211
Грани доступа........................................................................................................ 212
Грань распространения при наследовании.................................................. 213
Грань источника................................................................................................... 214
Грань активности при сопоставлении образцов......................................... 215
Грань видимости................................................................................................... 216
Грань акцессоров.................................................................................................. 216
Грань переопределения сообщений................................................................ 218
Грань ограничений............................................................................................... 219
Объявление обработчиков сообщений........................................................... 219
11.3. Конструктор defmessage-handler................................................................................... 220
11.3.1. Параметры обработчиков сообщений............................................................ 222
11.3.2. Действия обработчиков сообщений................................................................. 223
11.3.3. Системные обработчики сообщений............................................................... 225
Инициализация объекта...................................................................................... 226
Удаление объекта................................................................................................. 227
Отображение объекта.......................................................................................... 227
Изменение объекта................................................................................................ 228
Копирование объекта.......................................................................................... 228
11.4. Диспетчеризация сообщений.......................................................................................... 229
11.5. Работа с объектами........................................................................................................... 230
11.5.1. Создание объекта.................................................................................................. 231
Конструктор definstances.................................................................................... 232
11.5.2. Переинициализация существующих объектов.............................................. 234
11.5.3. Чтение значений слотов....................................................................................... 235
11.5.4. Установка значений слотов................................................................................ 236
11.5.5. Удаление объектов................................................................................................ 237
11.5.6. Задержка сопоставления образцов при работе с объектами.................... 238
11.5.7. Изменение объектов............................................................................................... 238
11.5.8. Дублирование объектов....................................................................................... 239
11.6. Наборы объектов................................................................................................................ 240
11.6.1. Определение набора объектов.......................................................................... 241
11.6.2. Создание набора объектов................................................................................. 242
11.6.3. Определение запроса........................................................................................... 243
11.6.4. Определение действий......................................................................................... 243
11.6.5. Функции-запросы.................................................................................................. 244
Глава 12. Модули....................................................................................................................... 248
12.1. Создание модулей............................................................................................................. 248
12.2. Определения модулей в конструкторах...................................................................... 249
12.3. Использование модулей в командах и функциях...................................................... 250
12.4. Импорт и экспорт конструкций...................................................................................... 251
12.5. Импорт и экспорт фактов и объектов........................................................................... 253
12.6. Модули и выполнение правил........................................................................................ 254
Глава 13. Ограничения........................................................................................................... 255
13.1. Атрибут типа....................................................................................................................... 255
13.2. Константный атрибут....................................................................................................... 256
13.3. Атрибут диапазона............................................................................................................ 256
13.4. Атрибут мощности............................................................................................................. 257
13.5. Получение значений по умолчанию с помощью атрибутов ограничений........ 257
13.6. Примеры нарушения ограничений................................................................................ 258
Глава 14. Разработка экспертной системы CIOS.......................................................... 261
14.1. Постановка задачи............................................................................................................ 261
14.2. Алгоритм решения задачи............................................................................................... 264
14.3. Представление логических элементов......................................................................... 264
14.4. Связь логических элементов........................................................................................... 269
14.5. Дополнительные функции и переменные.................................................................... 270
14.6. Реализация правил экспертной системы..................................................................... 271
14.7. Листинг программы........................................................................................................... 273
14.8. Тестирование системы...................................................................................................... 280
14.9. Запуск программы............................................................................................................. 283
ЧАСТЬ V. ФУНКЦИИ И КОМАНДЫ CLIPS................................................................... 287
Глава 15. Основные функции CLIPS................................................................................. 288
15.1. Логические функции.......................................................................................................... 288
15.2. Математические функции................................................................................................ 291
15.3. Функции работы со строками......................................................................................... 295
15.4. Функции работы с составными величинами.............................................................. 301
15.5. Функции ввода/вывода..................................................................................................... 307
15.6. Процедурные функции...................................................................................................... 311
15.7. Работа с родовыми функциями...................................................................................... 318
15.8. Объектно-ориентированные функции.......................................................................... 322
15.9. Вспомогательные функции.............................................................................................. 334
Глава 16. Основные команды CLIPS................................................................................. 336
16.1. Управление интерактивной средой.............................................................................. 336
16.2. Работа с конструкторами deftemplate.......................................................................... 340
16.3. Работа с фактами............................................................................................................... 342
16.4. Работа с конструкторами deffacts................................................................................. 343
16.5. Работа с правилами.......................................................................................................... 344
16.6. Работа с планом решения задачи.................................................................................. 346
16.7. Работа с глобальными переменными........................................................................... 349
16.8. Работа с конструкторами deffunction.......................................................................... 350
16.9. Работа с родовыми функциями...................................................................................... 351
16.10. Работа с классами и объектами................................................................................... 353
16.11. Работа с конструкторами defmodule.......................................................................... 360
16.12. Профилирование и отладка.......................................................................................... 361
16.13. Управление памятью...................................................................................................... 365
ЧАСТЬ VI. ПРИЛОЖЕНИЯ.................................................................................................. 367
Приложение 1. Основные БНФ-определения................................................................. 368
Приложение 2. Список основных сообщений об ошибках системы CLIPS....... 376
Приложение 3. Список основных предупреждений системы CLIPS..................... 384
Приложение 4. Зарезервированные имена CLIPS........................................................ 385
Приложение 5. Глоссарий...................................................................................................... 389