Программирование на языке Пролог для искусственного интеллекта




Процедурная семантика


Процедурная семантика определяет, как

пролог-система отвечает на вопросы. Ответить на вопрос - это значит удовлетворить список целей. Этого можно добиться, приписав встречающимся переменным значения таким образом, чтобы цели логически следовали из программы. Можно сказать, что процедурная семантика Пролога - это процедура вычисления списка целей с учетом заданной программы. "Вычислить цели" это значит попытаться достичь их.

Назовем эту процедуру вычислить. Как показано на рис. 2.9, входом и выходом этой процедуры являются:

    входом - программа и список целей,

    выходом - признак успех/неуспех и подстановка переменных.

fig2_9.gif (1243 bytes)

Рис. 2. 9.  Входы и выходы процедуры вычисления списка целей.

Смысл двух составляющих выхода такой:

(1)    Признак успех/неуспех принимает значение "да", если цели достижимы, и "нет" - в противном случае. Будем говорить, что "да" сигнализирует об успешном

завершении и "нет" - о неуспехе.

(2)    Подстановка переменных порождается только в случае успешного завершения; в случае неуспеха подстановка отсутствует.

line();

ПРОГРАММА

большой( медведь).

               % Предложение 1

большой( слон).

                      % Предложение 2

маленький( кот).

                   % Предложение 3

коричневый ( медведь).

       % Предложение 4

черный ( кот).

                        % Предложение 5

серый( слон).

                          % Предложение 6




Содержание  Назад  Вперед