Упражнения
1. Выразите
с помощью логики предикатов следующие утверждения.
I) Каждый
студент использует какой-нибудь компьютер, и по крайней мере один компьютер
используется каждым студентом. (Используйте только предикаты СТУДЕНТ, КОМПЬЮТЕР
и ИСПОЛЬЗУЕТ.)
II) Каждый
год некоторые студенты-мужчины проваливают каждый экзамен, но каждый студент-женщина
сдает какой-нибудь экзамен. (Используйте только предикаты СТУДЕНТ, МУЖЧИНА,
ЖЕНЩИНА, СДАЕТ, ЭКЗАМЕН, ГОД.)
Ill) Каждый
мужчина любит какую-нибудь женщину, которая любит другого мужчину. (Используйте
только предикаты МУЖЧИНА, ЖЕНЩИНА, ЛЮБИТ и = .)
IV) Не существует
двух философов, которые любили бы одну и ту же книгу. (Используйте только предикаты
ФИЛОСОФ, КНИГА, ЛЮБИТ и = .)
2. Выразите
предложения упр. 1 в форме фразы.
3. Имеет ли
смысл выразить следующие цитаты с помощью логики предикатов? Покажите, в чем
состоит сложность такого преобразования в каждом конкретном случае.
I) Ни один
человек не является островом. (Джон Донн (John Donne))
II) Человек,
который живет где-нибудь, живет везде. (Тацит)
III) Прошлое
— это иная страна. В нем все происходит по-другому. (Л. П. Хартли (L. P. Hartley))
4. Следующая
формула утверждает, что кто-то бреет себя сам или парикмахер бреет кого-то:
бреет)
X, X), бреет (парикмахер, X) <—
I) Используя
обратную стратегию, покажите, что из этой формулы следует
бреет
(парикмахер, парикмахер) <-
II) То же
самое покажите с помощью прямой стратегии.
III) Как вы
понимаете в том же контексте следующую фразу:
<-
бреет(У, Y), бреет
(парикмахер, У)
IV) Покажите,
что следующие фразы противоречивы. Для этого достаточно показать, что из них
следует пустая фраза:
бреет(Х, X), бреет (парикмахер, X)
<-<-
бреет(У, Y), бреет (парикмахер, Y)
5. Ниже представлены
правило поиска неисправности и описание конкретной ситуации.
Если компьютер
не включается и напряжение в сети питания в норме, то оборван шнур питания или
неисправен блок питания. Мой компьютер не включается. Напряжение в сети питания
в норме. Шнур питания не оборван.
I) Выразите
эти предложения в форме логики предикатов.
II) Постройте
конъюнктивную нормальную форму.
III) Используя
прямую стратегию доказательства, покажите, что утверждение "Неисправен
блок питания" логически вытекает из приведенного набора фактов. То же самое
покажите с использованием обратной стратегии доказательства.
6. Предположим,
что в синтаксисе языка PROLOG цель сформулирована следующим образом :- bachelor
(f red).
I) К какому
заключению придет приведенная ниже PROLOG-программа относительно семейного положения
человека по имени Fred?
man(fred).
man(george).
wife(george,
georgina).
bachelor(X)
:- not(wife(X, Y)).
not(P)
:- call(P), !, fail.
not(P).
II) К какому
заключению придет приведенная ниже PROLOG-программа?
man(fred).
man(george).
wife(george,
georgina).
bachelor(X)
:- not(wife(X, Y)).
(wife(X,
Y) :- !, fail.
(wifeffred,
freda).
7. Предположим,
что в синтаксисе языка PROLOG цель сформулирована следующим образом :- enemy(fred).
I) К какому
заключению придет приведенная ниже MBASE-программа относительно человека по
имени Fred?
DBC(friend
(george)).
republican(fred).
enemy(X)
:- not(DBC(friend(X))).
friend(X))
:- republican(X).
not(P)
:- call(P), !, fail.
not(P).
II) К какому
заключению придет приведенная ниже MBASE-программа?
DBC(friend (george)).
enemy(X) :- not(DBC(friend(X))). friend(X))
:- not(communist(X)). not(P)
:-
call(P), !, fail. not(P).
8. Ниже приведена
программа на языке PROLOG, в которой идентифицируется подмножество лиц, имеющих
право работать в службе обеспечения общественного порядка штата Нью-Йорк. Вы
можете ввести эту программу в исполнительную систему PROLOG и поэкспериментировать
с ней.
Затем попробуйте
добавить в программу новое правило, касающееся еще одной категории служащих.
Деревенские
констебли, назначенные с условием, что это не противоречит законам штата.
Данные для
тестирования этого правила включены в раздел фактов программы.
/
Правила для сотрудников службы общественного порядка /
/ Шериф и заместитель шерифа округа Нью-Йорк /
/
The sheriff and deputy sheriff of NYC /
po(X)
:-
(sheriff(X)
; deputy(X)), jurisdiction(X, nyc).
/ Сотрудники службы охраны порядка
округа Уэстчестер, принятые на
работу после 1982 года, которые
выполняют функции, ранее возлагавшиеся
на
шерифа округа Уэстчестер /
/ Officers of Westchester country
public safety services appointed
after 1982 who perform functions
previously performed by a Westchester
country
sheriff on or prior to such date /
po(X)
:-
safetyOfficer(X), jurisdiction(X, Westchester),
appointed(X,
Date), Date > 1982.
/
ФАКТЫ /
/
Wayne, Doug, Ken и Pete - некоторые лица. /.
sheriff(wayne).
jurisdiction(wayne,
nyc).
deputy(doug),
jurisdictionfdoug, nyc).
constable(ken), jurisdiction(ken, naples).
village(naples).
RuledOut(constable, naples).
safetyOfficer(pete) jurisdiction(pete, Westchester).
appointed(pete,
1990).
9. Запишите программу из упр. 8 на языке CLIPS. Сравните оба варианта программы.