Реферат: Prolog. Реализация на ПЭВМ

1) N>0 согласуется при N1 =3

2) M1 =N1 -3 согласуется при N1 =3 и M1 =2

3) posl (2, U1 ) приводит ко второму рекурсивному обращению и так как это обращение не согласовано с первым, то последнее утверждение (V=U*N) откладывается.

2. Согласование posl (2, U1 ) с posl (0, 1) приводит к неудаче. Происходит сопоставление с заголовком 2-го утверждения, что заканчивается удачей, при этом N2 =2 и V=U1 . происходит доказательство по цели этого утверждения:

1) согласуется при N2 =2

2) согласуется при N2 =2 и М2 =1

3) posl (1, U2 ) приводит к повторному рекурсивному обращению

4) откладывается

3. Согласование posl (1, U2 ) с posl (0, 1) приводит к неудаче. Сопоставление с заголовком 2-го утверждения заканчивается неудачей, при N3 =1 и V=U2 . Происходит доказательство по цели этого утверждения:

1) согласуется при N3 =1

2) согласуется при N3 =1 и М3 =0

3) posl (0, N3 ) приводит к повторному рекурсивному обращению.

Полученное целевое утверждение сопоставляется с первым целевым утверждением posl (0, 1), при этом U3 получает заначение 1.

На этом этап разбиения заканчивается.

II. Этап сборки решения.

Производится попытка согласования самого последнего из отложенных целевых утверждений, если это удается, то производится согласование предпоследнего целевого утверждения, и так до самого первого из отложенных, то есть запроса.

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 (“Иванов”,” пиво”).

К-во Просмотров: 345
Бесплатно скачать Реферат: Prolog. Реализация на ПЭВМ