Запросы класса B.
Запросы этого класса требуют конкретный ответ. Пример. F(x,y) – x – отец y. ГБД - F(Иван, Сергей) – Иван отец Сергея. Вопрос. Кто отец Сергея (вычислить значение x, что F(x, Сергей)). Информация для ответа здесь извлекается из подстановок в процессе логического вывода. Действуем следующим образом. После построения отрицания к теореме приписываем к ней предикат ANS(x) и в результате вывода стремятся получить не пустой клоз, а клоз, состоящий только из предиката ANS, при этом переменная в предикате примет нужное значение. //вывод (21)
Иногда вопрос может содержать сразу несколько переменных. В этом случае и предикат ANS будет содержать несколько переменных. Запросы класса B возникают при попытке решения задачи определения объекта по его свойствам (например, задача определения сорта вина по результатам дегустации). Этот подход находит применение и при решении задач распознавания образов.
Запросы класса C. Запрос класса C – это запрос на выявление последовательности действий для достижения какой-либо цели. Отличительной особенностью здесь является то, что приходится оперировать с функторами. В качестве демонстрационного примера приведем задачу об обезьяне. Обезьяна находится в комнате, в которой в определенной точке под потолком подвешен банан. Достать банан она может, только встав на стул строго под бананом. Что же должна сделать обезьяна, чтобы съесть банан? Введем предикаты. P(x,y,z,s) – обезьяна в точке x, стул в точке y, а банан в точке z, а вся система при этом условно находится в состоянии s. R(s) – в состоянии s обезьяна может достать банан. Обратим внимание на абстрактное понятие состояния системы. Оно необходимо для описания возможных действий с помощью функторов. f(x,y,s) – функция перемещения обезьяны из точки x в точку y, s – исходное состояние системы до перемещения, результат функции – состояние системы после перемещения. g(x,y,s) – функция переноса стула из точки x в точку y, s – исходное состояние системы до переноса стула, результат функции – состояние системы после переноса стула. k(x,s) – обезьяна залезает на стул в точке x. Система при этом переходит из состояния s в новое, выражаемое результатом функции. Итак, опишем исходные данные, т.е. ГБД. P(a,b,c,s1) – в начальный момент обезьяна находится в точке а, стул в точке b, банан – в точке с, абстрактная система – в абстрактном состоянии s1. БЗ составляют следующие. "x"y"z"s [P(x,y,z,s)->P(y,y,z,f(x,y,s))] – где бы ни была обезьяна, она может подойти к стулу. "x"y"s [P(x,x,y,z)->P(y,y,y,g(x,y,s))] – если обезьяна и стул в одной точке, то обезьяна может поднести стул к банану. "x"s [P(x,x,x,s)->R(k(x,s))] – если обезьяна, стул и банан в одной точке то она может лезть на стол и есть банан. В качестве теоремы предполагают, что существует состояние системы, в котором обезьяна может достать банан - $s R(s). К этой теореме приписываем предикат ANS(s). //вывод (22)
P (a,b,c,S)
ANS (k(c,g(b,c,f(a,b,S 1))) Интерпретируя последовательность вложенных функций «изнутри», получают содержательный ответ. //интерпретируем (23)
- f(a,b,S1) – обезьяна переходит из точки a в точку b. g(b,c,f(a,b,S1)) – обезьяна переносит стул из точки b в точку c. k(c,g(b,c,f(a,b,S1))) – обезьяна лезет на стул в точке c.
|