Унификация и поиск с возвратом

При организации цели часто используется сопоставление (:-) при этом необходимо учитывать следующие правила:

- идентичные структуры сопоставляются друг с другом;

- свободная переменная сопоставляется с константой или с ранее связанной переменной (и становится связанной с соответствующим значением);

- две свободные переменные могут сопоставляться (и связываться) друг с другом. С момента связывания они трактуются как одна переменная: если одна из них принимает какое-либо значение, то вторая немедленно принимает, то же значение.

Процесс, используемый Visual Prolog во время попытки сопоставления вызова (из подцели) с конкретным предложением (в разделе программыclauses) называется унификацией. Унификация это процесс сопоставления двух предикатов и присваивания свободным переменным значений для того, чтобы сделать предикаты идентичными.

Этот механизм необходим, чтобы Visual Prolog мог определить, какое предложение вызвать и каким переменным присвоить значения. Представлены важные моменты, связанные с сопоставлением (унификацией):

- когда Пролог начинает попытки достичь цели, он начинает поиск с начала программы;

- когда вызов завершается успехом, говорят, что вызов возвратился, и делается попытка доказать следующую подцель;

- если переменная была связана в предложении, единственный способ сделать ее снова свободной — это откат (поиск с возвратом).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: