Составители:
Рубрика:
9
При описании конкретной предметной области обычно имеется на-
бор исходных фактов и правдоподобных допущений, на основании ко-
торых формулируются правила.
Рассмотрим, каким образом на ПРОЛОГе можно описать задачу о
семейных отношениях.
Пусть имеются факты об отцовстве:
1) Иван – отец Игоря.
2) Иван – отец Сидора.
3) Сидор – отец Лизы.
Введем также три предиката:
Мужчина (x), означающий, что x – мужчина,
Единокровный (x,y), означающий единокровность x и y,
Брат (x,y), означающий, что x брат y.
Справедливы, очевидно, следующие правила:
1) «Все отцы – мужчины».
2) «Если у детей один отец, то они единокровны».
3) «Брат – это единокровный мужчина».
Рассмотрим вывод решения при ответе на вопрос:
«Есть ли братья у Игоря?».
Программа 3
DOMAINS
person = symbol
PREDICATES
otec(person,person)
man(person)
brat(person,person)
CLAUSES
man(X):-otec(X,_).
brat(X,Y):-otec(Z,Y),otec(Z,X),man(X),X<>Y.
otec(ivan,igor). otec(ivan,sidor). otec(sidor,lisa).
Во втором правиле программы указано условие X<>Y. Это позволя-
ет описать ПРОЛОГ-программе тот факт, что человек не может быть
собственным братом.
После запроса
goal: brat(igor,X)
Система выдаст
X = sidor
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »