Введение в проблему искусственного интеллекта



Управление ходом выполнения программ на языке ТР. - часть 3


1) U2=U3*1  , так как U3=1 то U2=1

2) U1=U2*2                  U1=2

3) X=U1*3                    X=6

2. Возврат и отсечение.

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

ПРИМЕР:

domains

  p,T=symbo L

predicat s

  like (P,T)

  poleg (T)

dauses

  like (“Иванов”,” пиво”).

  like (“Иванов”,” сок”).

  poleg(“cok”)...

  otv if

  like (P,T) and

  poleg (T),nl,

  write (P),

  fail.

goal

  otv.

Для управления процессом выполнения программ в PROLOG имеется встроенный предикей cut, кот. кодируется в turbo-PROLOG как !. Основное назначение — остановка процесса возврата, т.е. приостановка выработки дальнейших решений.

Этот процесс в Прологе наз. ОТСЕЧЕНИЕМ. Чаще всего предикей cut используется совместно с fail.

ПРИМЕР

goal

  like (P,T)

  T= “кефир”,

  nl,

  write ( “любитель кефира найден”)

  !.

  fail

Отсечение используется для устранения бесконечных циклов (см. пред. пример):

clauses

  posl (0,1) if !

  posl(N,V) if

              M=N-1

  posl (M,U)

              V=U*N

Отсечение также используется для  устр. взаимоисключающих утверждений.

ПРИМЕР

  ball (M,’A”) if M> so,!

  ball(M, “B”) if M< so an M>60,!.




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