дб. Четвертое издание джозеф Джарратано Университет Хьюстон клиэрЛэйк Гари Райли People5oft, Издательский дом "Вильямс" Москва СанктПетербург Киев 2007 ббк 32. 973. 26 018 75 Д
Скачать 3.73 Mb.
|
Joseph С. Giarratano University of Houston-Clear Lake Gary D. Riley People5oft, Inc. THOMSON ЭКСПЕРТНЫЕ СИСТЕМЫ принципы разработки и программирование ЧЕТВЕРТОЕ ИЗДАНИЕ Джозеф Джарратано Университет Хьюстон- Клиэр-Лэйк Гари Райли People5oft, Издательский дом "Вильямс" Москва ° Санкт-Петербург ° Киев 2007 ББК 32.973.26 — 018.2.75 Д УДК 681.3.07 Издательский дом "Вильямс" Зав. редакцией С.Н. Тригуб Перевод с английского и редакция КА. Птицына По общим вопросам обращайтесь в Издательский дом "Вильямс" по адресу, http://www.williamspublishing.corn 115419, Москва, а/я 783; 03150, Киева я 152 Джарратано, Джозеф, Райли, Гари. Д Экспертные системы принципы разработки и программирование, е издание Перс англ. МИД. Вильямс", 2007. — 1152 сил Парал. тит. англ 978 — 5 — 8459 — 1156 — 8 (рус) Данное четвертое издание представляет собой результат существенного пересмотра известного во всем мире учебника по экспертным системами разработке программного обеспечения с помощью инструментария языка экспертных систем CLIPS. Книга включает сведения, относящиеся к двум основным направлениям впервой половине книги излагается теория экспертных систем и показано, какое место занимают экспертные системы во всем объеме компьютерных наука во второй приведены сведения по программированию с помощью языка CLIPS. Еще одним новым средством, описанным в данном издании, является объектно-ориентированный язык. Вначале книги содержится отдельное введение в тематику искусственного интеллекта, объем которого достаточен для изучения экспертных систем. Теоретический материал изложен на уровне, доступном для восприятия студентов старших курсов и аспирантов, интересующихся экспертными системами, которые специализируются в области компьютерных наук, информационных управленческих систем, в программотехнике и других областях. Книга может оказаться полезной для широкого круга читателей, желающих применить экспертные системы в своей работе. ББК 32.973.26 — 018.2.75 � Издательский дом "Вильямс", 2007 � Course Technology, 2005 ISBN 978 — 5 — 8459 — 1156 — 8 (рус) ISBN 0 — 534 — 38447 — 1 (англ) Все названия программных продуктов являются зарегистрированными торговыми марками соответствующих фирм. Никакая часть настоящего издания нив каких целях не может быть воспроизведена в какой бы тони было форме и какими бы тони было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения издательства Course Technology. Authorized translation from the English language edition published by Course Technology, а division of Thomson Learning, Inc. Copyright � 2005 All rights reserved. No part of this book shall be reproduced, stored in а retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written permission from the publisher. No patent liability is assumed with respect to the use of the information containeL Оглавление Предисловие Глава 1. Введение в экспертные системы Глава 2. Представление знаний Глава 3. Методы логического вывода Глава 4. Рассуждения в условиях неопределенности Глава 5. Нестрогие рассуждения Глава 6. Проектирование экспертных систем Глава 7. Введение в Глава 8. Развитые средства сопоставления с шаблонами Глава. Модульное проектирование, управление выполнением и эффективность правил Глава 10. Процедурное программирование Глава 11. Классы, экземпляры и обработчики сообщений Глава 12. Примеры проектов экспертных систем Приложение А. Некоторые широко применяемые эквивалентности Приложение Б. Некоторые элементарные кванторы и их значение Приложение В. Некоторые свойства множеств Приложение Г. Информация о поддержке Приложение Д. Общие сведения о командах и функциях Приложение Е. Определение языка в нормальной форме Бэкуса — Наура Приложение Ж. Программные ресурсы Приложение Литература Предметный указатель 18 27 127 193 295 389 505 551 625 693 779 851 949 1015 1017 1019 1021 1023 1059 1069 1119 Содержание Предисловие 18 Глава 1. 1.1 1.2 1.3 1.4 1.5 1.6 27 27 27 38 39 43 47 48 54 57 57 61 1.7 1.8 65 69 77 78 81 82 85 86 89 94 94 94 96 1.9 1.10 1.12 Введение в экспертные системы Введение Определение понятия экспертной системы Преимущества экспертных систем Общие понятия экспертных систем Характеристики экспертной системы Разработка технологии экспертных систем Решение задач человеком и продукционные правила Широкое распространение систем, основанных на знаниях Приложения и предметные области экспертных систем Приложения экспертных систем Наиболее подходящие области применения экспертных систем Языки, командные интерпретаторы и инструментальные средства Элементы экспертной системы Продукционные системы Продукционные системы Поста Марковские алгоритмы Rete- алгоритм Процедурные подходы Императивное программирование Функциональное программирование Непроцедурные подходы Декларативное программирование Объектно-ориентированное программирование Логическое программирование Содержание 100 102 102 103 105 106 108 1.13 110 113 1.14 114 1.15 115 122 124 Глава 2. 2.1 2.2 2.3 2.4 2.5 2.6 Глава 3. Методы логического вывода 3.1 Введение 193 193 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 Экспертные системы Недекларативное программирование Программирование на основе индукции Искусственные нейронные системы Задача коммивояжера Элементы искусственной нейронной системы Характеристики искусственной нейронной системы Новейшие достижения в технологии искусственных нейронных систем Приложения технологии искусственных нейронных систем Коннекционистские экспертные системы и индуктивное обучение Современное состояние разработок в области искусственного интеллекта Резюме Задачи Представление знаний Введение Смысл знаний Продукции Семантические сети Тройки "объект атрибут — значение" Языки семантические сети Основные сведения о языке PROLOG Обеспечение поискав языке PROLOG Трудности, связанные с использованием семантических сетей Схемы Фреймы Трудности, связанные с использованием фреймов Логика и теория множеств Пропозициональная логика Логика предикатов первого порядка Квантор всеобщности Квантор существования Кванторы и множества Ограничения логики предикатов Резюме Задачи 127 127 131 139 144 149 150 151 153 157 159 162 167 169 172 181 181 184 185 187 187 Содержание 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 Глава 4. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 Деревья, решетки и графы Пространства состояний и пространства задач Примеры пространств состояний Пространства слабо структурированных задач Деревья AND — OR и цели Дедуктивная логика и силлогизмы Правила вывода Ограничения пропозициональной логики Логика предикатов первого порядка Логические системы Резолюция Системы резолюции и дедукция Поверхностные и причинные рассуждения Резолюция и логика предикатов первого порядка Преобразование в форму с логическими выражениями Унификация и правила Прямой и обратный логический вывод Другие методы логического вывода Аналогия Метод формирования и проверки Абдукция Немонотонный вывод Метазнания Скрытые марковские модели Резюме Задачи Рассуждения в условиях неопределенности Введение Неопределенность Типы ошибок Ошибки и индукция Классическая вероятность Определение классической вероятности Выборочные пространства Теория вероятностей Экспериментальные и субъективные вероятности Сложные вероятности Условные вероятности Мультипликативный закон Теорема Байеса 194 199 199 205 206 211 220 231 233 235 241 245 248 254 255 259 262 271 271 274 275 278 284 285 288 289 295 295 296 301 304 308 308 312 314 315 317 321 321 Содержание Гипотетические рассуждения и обратная индукция Временные рассуждения и марковские цепи Анализ вероятностных систем на основе понятий шансов и убеждений Достаточность и необходимость Применение неопределенности при формировании цепей логического вывода Несовместимость коэффициентов, заданных экспертом Неопределенное свидетельство Исправление недостатков, связанных с неопределенностью Комбинация свидетельств Варианты классификации неопределенных свидетельств Комбинирование свидетельств с использованием нечеткой логики Логическая комбинация свидетельств Эффективные значения правдоподобия Сложности, связанные с использованием условной независимости Сети логического вывода Система Сети логического вывода Отношения логического вывода Архитектура сети логического вывода Распространение вероятностей Резюме Задачи 328 335 4.9 4.10 4.11 341 344 4.12 4.13 347 348 349 353 354 354 4.14 357 359 359 361 362 363 365 368 373 377 381 383 4.15 4.16 4.17 389 389 390 390 392 393 394 397 399 400 401 Глава 5. 5.1 5.2 5.3 Нестрогие рассуждения Введение Неопределенность и правила Источники неопределенности в правилах Отсутствие надежных теоретических оснований Взаимодействия правил Разрешение конфликтов Обобщение и неопределенность Коэффициенты достоверности Трудности, связанные с применением байесовского метода Степени доверия и недоверия Меры, применяемые для измерения степени доверия и недоверия Содержание 407 412 414 414 417 422 428 430 5.4 5.5 5.6 5.7 5.8 505 505 506 508 509 509 512 514 514 517 519 Глава 6. 6.1 6.2 Вычисления, проводимые с использованием коэффициентов достоверности Сложности, связанные с использованием коэффициентов достоверности Теория Демпстера — Шефера Рамки различения Массовые функции и незнание Комбинирование свидетельств Нормализация степени доверия Движущиеся массы и множества Сложности, связанные с применением теории Демпстера — Шефера Приближенные рассуждения Нечеткие множества и естественный язык Операции с нечеткими множествами Нечеткие отношения Лингвистические переменные Принцип расширения Нечеткая логика Нечеткие правила Композиция max-min Метод максимума и метод моментов Возможность и вероятность Правила преобразования Неопределенность в нечетких экспертных системах Состояние неопределенности Некоторые коммерческие приложения нечеткой логики Резюме Задачи Проектирование экспертных систем Введение Выбор соответствующей задачи Выбор наиболее приемлемого подхода Выигрыш Инструментальные средства Стоимость Общее описание процесса разработки экспертной системы Руководство проектом Проблема доставки Сопровождение и развитие 431 432 434 447 453 459 465 466 469 473 477 482 485 489 492 495 497 497 Содержание 6.4 6.5 6.6 521 529 533 534 535 6.7 6.8 Глава 7. 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 7.12 7.13 Ошибки, возникающие на различных этапах разработки Разработка программного обеспечения и экспертные системы Жизненный цикл экспертной системы Расходы на сопровождение Модель каскадного развития жизненного цикла Модель развития жизненного цикла на основе "кодирования и исправления" Инкрементная модель жизненного цикла Модель спирального развития жизненного цикла Подробная модель жизненного цикла Планирование Определение знаний Проектирование знаний Разработка кода и отладка Верификация знаний Оценка системы Резюме Задачи Введение в CLIPS Введение Язык Система обозначений Поля Входи выход из системы Факты Конструкция de f template Многозначные слоты Упорядоченные факты Добавление и удаление фактов Модификация и дублирование фактов Команда Конструкция de f f acts Компоненты правила Рабочий список правили выполнение программы Отображение рабочего списка правил Правила и релаксация правил Отслеживание активизаций, правили статистических данных Команды, применяемые для манипулирования конструкциями Отображение списка элементов указанной конструкции 537 537 538 538 541 542 544 546 546 547 548 549 551 551 552 554 556 559 561 562 563 563 564 568 570 571 573 576 577 578 579 581 581 12 Содержание 7.14 7.15 7.16 7.17 7.18 7.19 7.20 7.21 7.22 7.23 7.24 611 612 613 615 615 7.25 Глава 8. 8.1 8.2 625 625 626 626 627 628 628 630 630 633 634 8.3 Отображение текстового представления указанного элемента конструкции Удаление указанного элемента конструкции Удаление всех конструкций из среды CLIPS (очистка среды) Команда printout Использование нескольких правил Отражение в правиле свойств реального мира Правила с несколькими шаблонами Команда set — Загрузка и сохранение конструкций Загрузка конструкций из файла Отслеживание операций компиляции Сохранение конструкций в файле Комментирование конструкций Переменные Многократное использование переменных Адреса фактов Однозначные подстановочные символы Мир блоков Многозначные подстановочные символы и переменные Многозначные подстановочные символы Многозначные переменные Применение нескольких различных способов согласования с шаблонами Реализация стека Еще один вариант программы для мира блоков Резюме Задачи Развитые средства сопоставления с шаблонами Введение Ограничения полей Ограничение поля not Ограничение поля or Ограничение поля and Совместное применение ограничений полей с другими конструкциями Функции и выражения Элементарные математические функции Переменное количество параметров Определение приоритета и уровня вложенности выражений 582 583 584 585 586 587 587 589 590 590 591 592 592 593 595 596 599 601 608 608 Содержание 8.4 8.5 8.6 Глава 9. Модульное проектирование, управление выполнением и эффективность правил 9.1 9.2 9.3 9.4 9.5 9.6 8.7 8.8 8.9 8.10 8.11 8.12 8.13 8.14 8.15 8.16 8.17 8.18 8.19 Суммирование значений с использованием правил Функция bind Функции ввода-вывода Функция read Функция open Функция close Чтение из файла и запись в файл Функция format Функция readline Игра в палочки Предикативные функции Условный элемент test Предикативное ограничение поля Ограничение поля для возвращаемого значения Программа Sticks Условный элемент or Условный элемент and Условный элемент Условный элемент exists Условный элемент f orall Условный элемент logical Резюме Задачи Введение Атрибуты de f Атрибут уре Статическая и динамическая проверка ограничений Атрибуты допустимого значения Атрибут Атрибут cardinality Атрибут de f ault Атрибут default — dynamic Конфликтующие атрибуты слота Значимость Фазы и управляющие факты Неправильное употребление подхода на основе значимости Конструкция de йпюбы1е Способы задания имен модулей в командах 635 638 639 639 640 642 643 644 646 648 651 652 654 656 658 659 662 664 667 670 673 678 679 693 693 694 694 696 698 699 699 700 702 704 704 708 714 717 719 14 Содержание 9.7 9.8 9.9 9.10 9.11 9.12 9.13 756 757 757 758 760 761 763 766 768 9.14 9.15 9.16 9.17 9.18 9.19 Глава 10. 10.1 10.2 779 779 779 780 781 782 784 786 787 787 788 790 Импорт и экспорт фактов Модули и управление выполнением программы Команда focus Манипулирование стеком фокусов и его изучение Команда return Средство auto — focus Отказ от фаз и управляющих фактов алгоритм сопоставления с шаблонами Сеть шаблонов Сеть соединений Важность правильного выбора порядка расположения шаблонов Учет характеристик правила match-1 Учет характеристик правила match-2 Команда matches Наблюдение за изменяющимся состоянием Упорядочение шаблонов в целях повышения эффективности Первоочередное размещение наиболее конкретных шаблонов Размещение в последнюю очередь шаблонов, согласующихся с непостоянными фактами Первоочередное размещение шаблонов, сопоставляющихся с наименьшим количеством фактов Многозначные переменные и эффективность Условный элемент test и эффективность программы Встроенные ограничения сопоставления с шаблонами Сравнение общих правил с конкретными правилами Сравнение простых правил со сложными правилами Резюме Задачи Процедурное программирование Введение Процедурные функции Функция i f Функция while Функция switch Функция loop- for-count Функция progn$ Функция break Функция Конструкция de f f unction Функция return 722 726 728 730 732 734 735 737 741 744 748 749 750 752 754 755 756 Содержание 792 794 794 796 798 799 801 802 804 805 806 807 808 811 851 851 852 853 854 Глава 11. Классы, экземпляры и обработчики сообщений 11.1 Введение 11.2 Конструкция de йс1аз s 11.3 Создание экземпляров 11.4 Обработчики сообщений, определяемые системой 10.4 10.5 10.6 10.7 Еще один вариант программы Sticks Рекурсия Предварительные объявления Отслеживание работы конструкций de f f Параметр с подстановочным символом Команды для работы с конструкцией de f f unction Функции, определяемые пользователем Конструкция de f global Команды, применяемые наряду с конструкциями de f global Принципы сброса (переустановки) значения переменной defglobal Отслеживание значений переменных de f global Переменные de f global и сопоставление с шаблонами Использование конструкций de f global Конструкции de f generic и de fmethod Еще один вариант конструкции de f function с именем check-input Приоритеты методов Ограничения запроса Отслеживание работы универсальных функций и методов Команды de f Команды de f generic Перегруженные функции и команды Процедурные конструкции и конструкции de fmodule Полезные команды и функции Загрузка и сохранение фактов Команда system Команда batch Команды dribble-on и dribble — o f Выработка случайных чисел Преобразование строки в поле Поиск символа Сортировка списка полей Резюме Задачи 813 817 824 828 829 830 831 832 835 835 836 837 839 839 840 841 841 843 844 16 Содержание 11.5 11.6 857 858 862 865 866 869 871 872 875 877 878 881 882 884 11.7 11.8 887 889 890 894 896 899 903 906 915 917 919 924 925 926 928 929 931 933 935 939 942 944 945 11.9 11.10 11.11 11.12 11.13 11.14 11.15 11.16 11.17 Конструкция de f ins tance s Классы и наследование Разрешение конфликтов между определениями слотов Абстрактные и конкретные классы Команды, относящиеся к конструкции de f class Сопоставление с шаблоном объекта Сопоставление с шаблоном объекта и наследование Ключевые слова is — аи пате Активизация шаблонов объектов Атрибут сопоставления с шаблонами Шаблоны объектов и условный элемент Шаблон initial — object Обработчики сообщений, определяемые пользователем Сокращенные ссылки на слоты Отслеживание процесса передачи сообщений и функционирования обработчиков сообщений Команды de f mes s age-handler Доступ к слоту и создание обработчика Обработчики сообщений before, ай1ег и around Обработчики before и after Обработчики Перекрытие параметров обработчика сообщений Порядок вызова обработчиков на выполнение Создание экземпляра, |