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

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

В качестве наиболее доступного руководства по языку LISP я бы рекомендовал книгу Уинстона и Хорна [Winston and Horn, 1988], а в книгах Чарняка [Charniak et al., 1987] и Грехема [Graham, 1994] можно уточнить многие детали применения LISP для решения задач искусственного интеллекта.

В прекрасной книге Норвига [Norvig, 1992] подробно описан базовый диалект Common LISP, а в книге Рассела и Норвига [Russel and Norvig, 1995] основное внимание уделено программированию задач искусственного интеллекта.

В книге Кратко [Braico, 1990] читатель найдет обширный материал по использованию языка PROLOG для решения задач искусственного интеллекта. Кроме того, желающим изучить язык PROLOG я также рекомендую прочесть книгу Стерлинга и Шапиро [Sterling and Shapiro, 1994].

Упражнения

Упражнение 1
Что означает понятие "символ" применительно к проблематике искусственного интеллекта? Являются ли символами изображение и слово?

Упражнение 2
Что представляет собой гипотеза физической символической системы! Является ли она, по вашему мнению, правдоподобной?

Упражнение 3
Пусть L – список: (а (b) с ((d) е (f) g).

Какое значение вернет следующее выражение, состоящее из вложенных функций:

first(first(rest(rest(rest(L))))).

Запишите приведенное выше выражение в синтаксисе примитивов LISP.

Упражнение 4
Пусть функция f определяется следующим образом:

f(X Y) = (ЛX)(if Y = 0 then 1, else X f(X, Y -1)).

Какое значение будет иметь такое применение этой функции: f(2 3)?

Запишите приведенное выше выражение в синтаксисе примитивов LISP.

Упражнение 5
Усовершенствуйте приведенную в тексте программу анализа соответствия таким образом, чтобы она могла обрабатывать списки с произвольной вложенностью. Эта программа должна быть способна, например, показать, что список:

(lisp (a functional language)
(invented by (John mccarthy)))

Соответствует образцу:

(lisp (a? language) (invented by (? mccarthy))),

Но не соответствует образцу:

(lisp (a? language) (invented by (mаrу?))).

Упражнение 6
Усовершенствуйте приведенную в тексте программу анализа соответствия таким образом, чтобы она возвращала подстановку значений для переменных, которая будет превращать образец в пример. Образец для переменной имеет в таком случае вид:

(? Variable-name),

И тогда образцу:

(at (? X) (? Y))

Будет соответствовать пример:

(at robot room),

А программа должна вернуть подстановку:

((X robot) (Y room))

В виде списка. Можно положить, что пример представляет собой простой список.

Упражнение 7
Скомбинируйте программы, разработанные в упр. 5 и 6, таким образом, чтобы результирующая программа могла обрабатывать вложенные списки и формировать подстановку. Эта программа должна быть способна, например, показать, что список (lisp (a functional language) (invented by (John mccarthy))) соответствует образцу:

(lisp (a (? type) language)
(invented by ((? name) mccarthy))),

И вернуть подстановку:

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