Иллюстрированный самоучитель по введению в экспертные системы

Рекомендуемая литература. Упражнения.

Для ознакомления с общими концепциями объектно-ориентированных вычислений и их практической реализацией я бы рекомендовал статьи из сборника [Peterson, 1987].

Обзор работ по объектно-ориентированной технологии применительно к задачам искусственного интеллекта читатель найдет в [Stefik and Bobrow, 1986]. В работе [Кееnе, 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 на такое сообщение и почему?

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.