Среда CLIPS

РАЗРАБОТКА ЭКСПЕРТНЫХ СИСТЕМ.

Санкт-Петербург

«БХВ-Петербург»


УДК 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



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: