Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
14.2.2. DEDUCOM: объединение вопросно-ответной системы с базой данныхСлейгл (1965) в своей программе DEDUCOM предложил интересную альтернативу применению заранее запрограммированных правил вывода. Она обобщает транслятор с языка Лисп (Мак-Карти и др., 1963), и для объяснения ее сначала вкратце опишем некоторые конструкции Лиспа. Лисп — это интерпретирующий язык, выражения и входные данные которого имеют внутреннее представление в виде списочных структур. Поэтому отличить программу от массива данных здесь можно только условно. Фактически программы можно составлять и выполнять в ходе работы, потому что в Лиспе интериретирующий цикл читает и затем производит вычисления со списочной структурой. Основной тип данных в Лиспе — атомные символы (атомы) и списки, т. е. упорядоченные множества, элементами которых могут быть атомы или другие списки. Для списков определены три функции, и они содержатся в интерпретаторе. Пусть Слейгл сначала добавил три новые функции к основному интерпретатору Лиспа:
Формально это функция сколько с аргументами палец и человек. Точно так же
— это произведение
так что
Рассмотрим пример. Пусть человек — это переменная, принимающая значения Джон, Джеймс, Роберт, Том, и пусть дети — вопрос. Предположим далее, что известен факт
Если мы спросим ans [Роберт, дети], то порядок вычислений будет таков:
Предикат Для полноты база данных в DEDUCOM должна содержать следующий факт: если переменная V не встречается в вопросе
Кроме того, по определению значение любого вопроса, являющегося константой, равно этой константе. Таким образом, если Предположим, что программа DEDUCOM должна вычислить
где (1) Может ли интерпретатор Лиспа вычислить (2) Известна ли функция (3) Если не выполняются ни (1), ни (2), заменить (4) Если (5) Рекурсивным образом применить процедуру DEDUCOM для вычисления найти новый вопрос Чтобы проиллюстрировать эту процедуру, допустим, что в DEDUCOM, помимо сформулированных фактов, включены еще следующие:
Для того чтобы в DEDUCOM интерпретировались эти факты, их надо сначала преобразовать в утверждение на Лиспе. Это не совсем просто. Факт (а) типовой. Он записывается так:
Пользователи системы DEDUCOM должны выполнить этот перевод. Недостаток очевиден. Вопрос в примере выше
также является выражением на Лиспе. Для нахождения ответа на него DEDUCOM осуществляет следующие шаги: (1) Функцию сколько нельзя вычислить сразу, но (44) допускает для (45) замену
(2) Функцию ans также нельзя вычислить сразу, но в соответствии с (39)
заменяет (46). (3)
(4) Процедура ответа повторяется, при этом используется факт (он здесь не приведен) о valueans. Наконец, приходим к вопросу
Для ответа на него используется факт
который представляет собой запись на Лиспе факта (б). Это сразу приводит к вопросу (5) Переменная V получает значение рука. Следующий вопрос
Ответ на него в соответствии с фактом, подобным (50), есть 2. (6) Подставляя значения, найденные для (49) и (51), видим, что ответ на (48) есть (рука, 10). Ответом на (47), а также на (46) и (45) (исходный вопрос) будет 10. DEDUCOM может отвечать на довольно тонкие вопросы, в том числе и на вопрос, ключевой к сюжету Микадо Гилберта и Салливана (Слейгл, 1965). Программа имеет незначительный дефект: она осуществляет перебор в глубину (полный перебор) на И/ИЛИ-графе; однако это можно легко поправить. Гораздо более серьезная трудность связана с тем, что подход DEDUCOM требует, чтобы пользователи и устанавливали факты в форме выражений Лиспа, и предвидели, как должен происходить поиск ответа. Другими словами, DEDUCOM — скорее язык программирования для ответов на вопросы, чем программа искусственного интеллекта со свойственными ей способностями к рассуждению. Тем не менее подход DEDUCOM заслуживает серьезного внимания в тех приложениях, где пользователь хочет выделить тот или иной тип вывода.
|
1 |
Оглавление
|