3. Представление

Вид материалаОбзор
Подобный материал:
1   ...   24   25   26   27   28   29   30   31   ...   110

7.5. Объектно-ориентированный анализ и конструирование экспертных систем

Философия и технология объектно-ориентированного программирования могут весьма пригодиться проектировщику экспертных систем.

Философия представления знаний о реальном мире в терминах взаимодействия объектов и субъектов предоставляет достаточно удобную среду для решения большого класса проблем, предполагающих значительный объем моделирования (задачи планирования и составления расписаний).

Методика представления абстрактных данных и процедур позволяет программистам, занятым задачами искусственного интеллекта, на ранних этапах разработки сосредоточиться на выборе подходящих видов объектов и их поведении, не вдаваясь в подробности реализации функций и структур данных.

Существует довольно много литературы по объектно-ориентированному программированию, которая поможет конструктору экспертных систем.

Но существуют и определенные сложности внедрения объектно-ориентированного подхода в область задач искусственного интеллекта.

Объекты в основном являются средствами реализации вычислений.

Идея наследования поведения вленет за собой появление множества проблем при ее реализации, как мы видели это на примере с классами окон. Некоторые из появившихся в последнее время объектно-ориентированных схем допускают наследование только интерфейсов.

Определенные сложности возникают с реализацией наследования при использовании новых технологий многокомпонентных объектов, таких как СОМ (см. [Chappell, 1996]).

В идеальном случае желательно так организовать разработку системы, особенно экспертной, чтобы добавление новых возможностей сводилось к включению в систему новых модулей программного кода. Приведенные в этой главе примеры показывают, что это вряд ли возможно даже при использовании объектно-ориентированной среды. Добавление новых модулей знаний всегда связано с побочными эффектами, которые вовлекают в свою орбиту правила разрешения конфликтов и неопределенностей. В дальнейшем мы покажем, что эта проблема характерна и для технологии логического программирования (об этом речь пойдет в главе 8).

Таким образом, совершенно очевидно, что реализация идей объектно-ориентированного программирования не позволяет решить все проблемы и разработчику экспертной системы будет еще над чем поломать голову. Но объектно-центрическая парадигма упрощает принятие определенных видов решений в процессе проектирования системы и облегчает реализацию уже принятых.

Рекомендуемая литература

Для ознакомления с общими концепциями объектно-ориентированных вычислений и их практической реализацией я бы рекомендовал статьи из сборника [Peterson, 1987]. Обзор работ по объектно-ориентированной технологии применительно к задачам искусственного интеллекта читатель найдет в [Stefik and Bobrow, 1986]. В работе [Кеепе, 1989] довольно подробно описан язык CLOS.

Подробное описание C++ и методики программирования на этом языке содержится в книгах [Booch, 1994] и [Meyers, 1995], [Meyers, 1997], хотя я и не в восторге от двух последних.

Упражнения

1. Чем отличаются объектно-ориентированные языки программирования от обычных процедурных языков?

2. В чем состоит отличие между конкретными и абстрактными классами?

3. Почему при множественном наследовании иерархическая структура превращается в гетерархическую?

4. В чем состоит проблема наложения методов при множественном наследовании?

5. Что такое метакласс и в чем польза применения такой конструкции?

6. Что понимается под термином "список предшествования классов"? 7. Рассмотрите схему отношений между классами на рис. 7.9.

Используя конструкцию def class языка CLIPS, опишите эту структуру классов таким образом, чтобы соблюдался следующий порядок наследования в классах, имеющих несколько суперклассов:

wkg-man: (man worker) father: (parent man)

wkg-woman: (worker woman) mother: (parent woman)

wkg-father: (wkg-man father)

wkg-raother: (mother wrk-woman)

Начните с класса person:

(defclass person (is-a USER) (role concrete))

Какой вид будет иметь список предшествования классов wkg-father и wkg-mother?

Рис. 7.9. Схема структуры классов для упражнения 7

8. Предположим, что классы на рис. 7.9 имеют следующие предпочтения при выборе блюд на завтрак:

man: donut woman:

croissant parent:

fruit worker: bacon

Закодируйте данные предпочтения в обработчиках сообщений этих классов таким образом, чтобы класс-получатель сообщения вернул наименование того блюда, которое он предпочитает.

Сформируйте следующие экземпляры классов:

Joan — экземпляр класса wrk-mother,

Jim — экземпляр класса wrk-man.

Передайте им сообщение, например, в такой форме:

(send [Joan] breakfast)

Чем ответят экземпляры Joan и Jim на такое сообщение и почему?

ГЛАВА 8. Логическое программирование

8.1. Формальные языки

8.1.1. Исчисление высказываний

8.1.2. Исчисление предикатов

8.2. Язык PROLOG

8.3. Опровержение резолюций

8.3.1. Принцип резолюций

8.3.2. Поиск доказательства в системе резолюций

8.4. Процедурная дедукция в системе PLANNER

8.5. PROLOG и MBASE

8.5.1. Правила поиска в языке PROLOG

8.5.2. Управление поиском в системе MBASE

Рекомендуемая литература

Упражнения