Предок(Y,Z)

В программе после знака % до конца строки записывается комментарий. Обратите внимание на обязательное наличие точки в конце каждого факта и правила. Наконец, о правилах в пролог-программах. Каждое правило состоит из головы (левая половина правила), в которой помещается определяемый предикат, и тела (правая половина правила), в котором помещается условная часть.

Голова и тело правила в программе связаны знаком: —, который определяет истинность утверждения при выполнении условия. Этот знак в программе можно заменить английским словом if (если). В правилах запятая (,) соответствует знаку И, а точка с запятой (;)– знаку ИЛИ. В языке Пролог ограничиваются только выражениями Хорна, и только к ним применяют метод резолюций. Выражение Хорна имеет вид:

где - литералы. Используя связку , теорему можно переписать так:

что в синтаксисе системы Турбо-Пролог записывается в другом виде:

Если в задаче некоторое отношение можно определить несколькими способами, то правил также будет несколько. Так, в данной программе отношение предок определено двумя правилами. Первое правило определяет непосредственных (ближайших) предков, а второе – отдаленных. Некоторый X является предком некоторого Z, если между X и Z существует цепочка людей, связанных между собой отношением родитель-ребенок, как показано на рис. 4.2. В нашем примере на рис. 4.1 Том – ближайший предок Лиз и отдаленный предок Джима.

Первое правило легко строится из рис.4.2а:

Для всех X и Z

X - предок Z, если

X - родитель Z,

что сооветствует в программе записи:


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



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