Составители:
Рубрика:
31
Так как другие утверждения для likes следуют за этим правилом, то
Турбо-Пролог помещает указатель отката на начало следующего правила
для likes.
Первой подцелью является likes(mary, X). Это новая подцель, поэтому
Турбо-Пролог снова начинает просмотр с вершины списка предикатов для
likes и находит likes(mary, X). Этот факт
сопоставим с подцелью ikes(mary,
X), так как все ее термы сопоставимы, поскольку X получила значение pears
во время унификации. Теперь подцель likes(mary, X) успешно вычислена, но
правило, которое сгенерировало эту подцель сгенерировало также и другие
подцели, которые еще должны быть доказаны. Поэтому внутренние унифи-
кационные подпрограммы ставят указатель
на следующий факт для likes.
Этот указатель показывает, что существует по крайней мере еще одно ут-
верждение для likes, которое может быть использовано для вычисления те-
кущей подцели. В случае, если следующая подцель окажется неуспешной,
механизм отката будет иметь точку для поиска другого кандидата для вы-
числения цели.
К этому
моменту цель likes(beth, X) была сопоставлена с головой пра-
вила likes(beth, X). Внутренние унификационные подпрограммы установили
указатель на голову следующего правила likes(beth, X) и начали попытки
вычисления утверждений в правой части правила. В результате была
сгенерирована подцель likes(mary, X). Пытаясь вычислить эту подцель,
унификационные подпрограммы обнаружили сопоставимое
утвер-
ждение likes(mary, pears). Теперь X получил значение pears, а значение под-
цели стало likes(beth, pears). Существуют и другие утверждения, которые
могут быть использованы для вычисления подцели, поэтому указатель от-
ката был установлен на likes(mary, popcorn).
Следующая подцель справа есть fruit(X). Так как сейчас X имеет зна-
чение
pears, то подцель означает fruit(pears). Внутренние унификационные
подпрограммы находят сопоставление с первым утверждением для fruit. Так
как существуют другие утверждения, которые могут быть использованы для
вычисления подцели, то создается еще один указатель отката на это утвер-
ждение.
Теперь два указателя отката отмечают альтернативные пути к решению
правила:
likes(beth,
X) :-
likes(mary, X),
fruit(X),
color(X, red).
Это точки 2 и 3. (Точка 1 это альтернативный путь к решению основ-
ной цели). Последняя отмеченная точка всегда является точкой, с которой
будет начат поиск альтернативного решения. Последняя подцель правила
есть color(X, red). Внутренние подпрограммы унификации, всегда просмат-
ривая утверждения слева направо, пытаются сопоставить подцель
с утвер-
ждением color(pears,yellow). Так как X имеет значение pears, то текущая под-
цель есть color(pears,red).
Так как другие утверждения для likes следуют за этим правилом, то
Турбо-Пролог помещает указатель отката на начало следующего правила
для likes.
Первой подцелью является likes(mary, X). Это новая подцель, поэтому
Турбо-Пролог снова начинает просмотр с вершины списка предикатов для
likes и находит likes(mary, X). Этот факт сопоставим с подцелью ikes(mary,
X), так как все ее термы сопоставимы, поскольку X получила значение pears
во время унификации. Теперь подцель likes(mary, X) успешно вычислена, но
правило, которое сгенерировало эту подцель сгенерировало также и другие
подцели, которые еще должны быть доказаны. Поэтому внутренние унифи-
кационные подпрограммы ставят указатель на следующий факт для likes.
Этот указатель показывает, что существует по крайней мере еще одно ут-
верждение для likes, которое может быть использовано для вычисления те-
кущей подцели. В случае, если следующая подцель окажется неуспешной,
механизм отката будет иметь точку для поиска другого кандидата для вы-
числения цели.
К этому моменту цель likes(beth, X) была сопоставлена с головой пра-
вила likes(beth, X). Внутренние унификационные подпрограммы установили
указатель на голову следующего правила likes(beth, X) и начали попытки
вычисления утверждений в правой части правила. В результате была
сгенерирована подцель likes(mary, X). Пытаясь вычислить эту подцель,
унификационные подпрограммы обнаружили сопоставимое утвер-
ждение likes(mary, pears). Теперь X получил значение pears, а значение под-
цели стало likes(beth, pears). Существуют и другие утверждения, которые
могут быть использованы для вычисления подцели, поэтому указатель от-
ката был установлен на likes(mary, popcorn).
Следующая подцель справа есть fruit(X). Так как сейчас X имеет зна-
чение pears, то подцель означает fruit(pears). Внутренние унификационные
подпрограммы находят сопоставление с первым утверждением для fruit. Так
как существуют другие утверждения, которые могут быть использованы для
вычисления подцели, то создается еще один указатель отката на это утвер-
ждение.
Теперь два указателя отката отмечают альтернативные пути к решению
правила:
likes(beth,X) :-
likes(mary, X),
fruit(X),
color(X, red).
Это точки 2 и 3. (Точка 1 это альтернативный путь к решению основ-
ной цели). Последняя отмеченная точка всегда является точкой, с которой
будет начат поиск альтернативного решения. Последняя подцель правила
есть color(X, red). Внутренние подпрограммы унификации, всегда просмат-
ривая утверждения слева направо, пытаются сопоставить подцель с утвер-
ждением color(pears,yellow). Так как X имеет значение pears, то текущая под-
цель есть color(pears,red).
31
Страницы
- « первая
- ‹ предыдущая
- …
- 29
- 30
- 31
- 32
- 33
- …
- следующая ›
- последняя »
