Чтение онлайн

на главную - закладки

Жанры

Неизвестно

Шрифт:

X = энн;

X = пат

Получается, что Пат - сестра себе самой?! Наверное, когда мы определяли отношение сестра, мы не имели этого ввиду. Однако ответ Пролога совершенно логичен, поскольку он руководствовался нашим правилом, а это правило ничего не говорит о том, что, если X - сестра Y, то X и Y не должны совпадать. Пролог (с полным правом) считает, что X и Y могут быть одним и тем же объектом и в качестве следствия из этого делает вывод, что любая женщина, имеющая родителя, является сестрой

самой себе.

Чтобы исправить наше правило о сестрах, его нужно дополнить утверждением, что X и Y должны различаться. В следующих главах мы увидим, как это можно сделать, в данный же момент мы предположим, что отношение различны уже известно пролог-системе и что цель

различны( X, Y)

достигается тогда и только тогда, когда X и Y не равны. Усовершенствованное правило для отношения сестра примет тогда следующий вид:

сестра( X, Y) :-

родитель( Z, X),

родители( Z, Y),

женщина( X),

различны( X, Y).

Некоторые важные моменты этого раздела:

Пролог-программы можно расширять, добавляя в них новые предложения.

Прологовские предложения бывают трех типов:

факты

,

правила

и

вопросы

.

Факты содержат утверждения, которые

являются всегда, безусловно верными.

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

С помощью вопросов пользователь может спрашивать систему о том, какие утверждения являются

истинными

.

Предложения Пролога состоят из

головы

и

тела

.

Тело

– это список

целей

, разделенных запятыми. Запятая понимается как конъюнкция.

Факты - это предложения, имеющие пустое тело. Вопросы имеют только тело. Правила имеют голову и (непустое) тело.

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

Предполагается, что на переменные действует квантор всеобщности, читаемый как "для всех...". Однако для переменных, появляющихся только в теле, возможны и другие формулировки. Например,

имеетребенка( X) :- родитель( X, Y).

можно прочитать двумя способами:

(а) Для всех X и Y,

если X - отец Y, то

X имеет ребенка.

(б) Для

всех X,

X имеет ребенка, если

существует некоторый Y, такой, что

X - родитель Y.

Упражнения

1. 3. Оттранслируйте следующие утверждения в правила на Прологе:

(a) Всякий, кто имеет ребенка, - счастлив (введите одноаргументное отношение счастлив).

(b) Всякий X, имеющий ребенка, у которого есть сестра, имеет двух детей (введите новое отношение иметьдвухдетей).

Посмотреть ответ

1. 4. Определите отношение внук, используя отношение родитель. Указание: оно будет похоже на отношение родительродителя (см. рис. 1.3).

Посмотреть ответ

1. 5. Определите отношение тетя( X, Y) через отношение родитель и сестра. Для облегчения работы можно сначала изобразить отношение тетя в виде диаграммы по типу тех, что изображены на рис. 1.3.

Посмотреть ответ

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

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

1. 3. Рекурсивное определение правил

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

Рис. 1. 5. Пример отношения предок:

(а) Xближайший предок Z; (b) X– отдаленный предок Z.

между собой отношением родитель-ребенок, как показано на рис.1.5. В нашем примере на рис. 1.1 Том - ближайший предок Лиз и отдаленный предок Пат.

Первое правило простое и его можно сформулировать так:

Для всех X и Z,

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

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

Это непосредственно переводится на Пролог как

предок( X, Z) :-

родитель( X, Z).

Второе правило сложнее, поскольку построение цепочки отношений родитель может вызвать некоторые трудности. Один из способов определения отдаленных родственников мог бы быть таким, как показано на рис. 1.6. В соответствии с ним отношение предок определялось бы следующим множеством предложений:

Поделиться:
Популярные книги

Космические скитальцы (Сборник)

Лейнстер Мюррей
Классика мировой фантастики
Фантастика:
боевая фантастика
6.25
рейтинг книги
Космические скитальцы (Сборник)

Маленькая женщина Большого

Зайцева Мария
5. Наша
Любовные романы:
эро литература
современные любовные романы
5.40
рейтинг книги
Маленькая женщина Большого

Хрестоматия по истории СССР. Том 1

Лебедев Владимир Иванович
Научно-образовательная:
история
5.00
рейтинг книги
Хрестоматия по истории СССР. Том 1

Слипер и Дример

Черт Илья
Фантастика:
фэнтези
5.00
рейтинг книги
Слипер и Дример

Кир Булычев. Собрание сочинений в 18 томах. Т.9

Булычев Кир
Собрания сочинений
Фантастика:
альтернативная история
6.00
рейтинг книги
Кир Булычев. Собрание сочинений в 18 томах. Т.9

Отряд

Валериев Игорь
5. Ермак
Фантастика:
альтернативная история
5.25
рейтинг книги
Отряд

НАРОДНОСТЬ, НАРОД, НАЦИЯ...

ГОРОДНИКОВ Сергей
Научно-образовательная:
политика
5.00
рейтинг книги
НАРОДНОСТЬ, НАРОД, НАЦИЯ...

Абсолютное оружие (сборник)

Шекли Роберт
Сборники Роберта Шекли
Фантастика:
научная фантастика
7.18
рейтинг книги
Абсолютное оружие (сборник)

Поющие пески. Дело о похищении Бетти Кейн. Дитя времени

Тэй Джозефина
Детективы:
классические детективы
6.25
рейтинг книги
Поющие пески. Дело о похищении Бетти Кейн. Дитя времени

Аромат грязного белья (сборник)

Армалинский Михаил Израилевич
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Аромат грязного белья (сборник)

Хроники странного королевства. Двойной след (Дилогия)

Панкеева Оксана Петровна
79. В одном томе
Фантастика:
фэнтези
9.29
рейтинг книги
Хроники странного королевства. Двойной след (Дилогия)

Дело чести

Вебер Дэвид Марк
12. Хонор Харрингтон
Фантастика:
космическая фантастика
7.93
рейтинг книги
Дело чести

Неучтенный элемент. Том 11

NikL
11. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 11

Романы. Повести. Рассказы. В 2 томах. Том 2

Верн Жюль Габриэль
Фантастика:
научная фантастика
5.00
рейтинг книги
Романы. Повести. Рассказы. В 2 томах. Том 2