Знакомство с основами логического программирования на примере языка Prolog. Синтаксис его основных команд. Генеалогическое дерево с использованием предикатов. Хорновская логическая программа. Основные синтаксические объекты: атомы, константы и переменные.
Аннотация к работе
-Задать генеалогическое дерево вида: я, брат, сестра, отец, мать, бабушка(мать мамы), дедушка (отец мамы), бабушка (мать отца), дедушка (отец отца), жена брата, племянник (сын брата или сестры), племянница (дочь брата или сестры), дядя (со стороны отца), тетя (со стороны отца), дядя (со стороны матери), дядя (со стороны матери), дочь дяди со стороны матери, дочь дяди со стороны отца, прадед (отец деда со стороны матери), прабабушка (мать деда со стороны матери), прадед (отец бабушки со стороны матери), прабабушка (мать бабушки со стороны матери). -Данное дерево задать только с использованием предикатов - фактов «мать», «отец». Привести определение предикатов: родитель, потомок, предок, дядя (тетя), племянник, племянница, дед, родной(ая) брат(сестра), двоюродный(ая) брат(сестра), супруг. Хорновская логическая программа состоит из набора хорновских фраз, которые в языке Пролог называются фактами и правилами. /**Древо*/ мать(сумая,гани). отец(мухаммед,гани). мать(кимие,сурайе). отец(нодиршо, сурайе). мать(иффет,асатулло). отец(комилджон,астулло). мать(салима1,озода). отец(рабони,озода). мать(салима,илхомиддин). мать(салима,анора). отец(назриддин,илхомиддин). отец(назриддин,анора). мать(озода,салима). мать(озода,кудрат). отец(асатулло, салима). отец(асатулло, кудрат). мать(хадиса,рухулло). отец(нурулло,рухулло). мать(салима,илхомиддин). мать(салима,анора). отец(назриддин,илхомиддин). отец(назриддин,анора). родитель(Z,С):-мать(Z,С);отец(Z,C). потомок(X,Y):-(отец(Y,X);мать(Y,X)). потомок(X,Y):-(отец(Z,X);мать(Z,X)),потомок(Z,Y). предок(X,Y):-(отец(X,Y);мать(X,Y)). предок(X,Y):-(отец(X,Z);мать(X,Z)),предок(Z,Y). дядя(Z,С):-((отец(Y,Z),отец(Y,X),отец(X,C),Z\=X);(отец(Y,Z),отец(Y,X),мать(X,C),Z\=X)),мужчина(Z). тетя(Z,С):-((отец(Y,Z),отец(Y,X),отец(X,C),Z\=X);(отец(Y,Z),отец(Y,X),мать(X,C),Z\=X)),not(мужчина(Z)). племянник(С,Z):-((отец(Y,Z),отец(Y,X),отец(X,C),Z\=X);(отец(Y,Z),отец(Y,X),мать(X,C),Z\=X)),мужчина(С). племянница(С,Z):-((отец(Y,Z),отец(Y,X),отец(X,C),Z\=X);(отец(Y,Z),отец(Y,X),мать(X,C),Z\=X)),not(мужчина(С)). дед(С,Z):-отец(С,Y),(отец(Y,Z);мать(Y,Z)). родн_сестра(С,Z):-((отец(X,С),отец(X,Z)),(мать(Y,С),мать(Y,Z))),C\=Z,Z\=С,мужчина(С). родн_сестра(С,Z):-((отец(X,С),отец(X,Z)),(мать(Y,С),мать(Y,Z))),C\=Z,Z\=C,not(мужчина(С)). дв_брат(K,С):-((отец(Y,Z),отец(Y,X),(отец(X,K);мать(X,K)),(отец(Z,С);мать(Z,C)),Z\=X)),мужчина(K). дв_сестра(K,С):-((отец(Y,Z),отец(Y,X),(отец(X,K);мать(X,K)),(отец(Z,С);мать(Z,C)),Z\=X)),not(мужчина(K)). супруг(Z,С):-отец(С,K),мать(Z,K).Были изучены основы логического программирования на языке Prolog.
Введение
Знакомство с основами логического программирования на примере языка Prolog.
2. Задание
-Изучить теоретический материал о языках логического программирования.
-Изучить синтаксис основных команд языка Prolog.
-Задать генеалогическое дерево вида: я, брат, сестра, отец, мать, бабушка(мать мамы), дедушка (отец мамы), бабушка (мать отца), дедушка (отец отца), жена брата, племянник (сын брата или сестры), племянница (дочь брата или сестры), дядя (со стороны отца), тетя (со стороны отца), дядя (со стороны матери), дядя (со стороны матери), дочь дяди со стороны матери, дочь дяди со стороны отца, прадед (отец деда со стороны матери), прабабушка (мать деда со стороны матери), прадед (отец бабушки со стороны матери), прабабушка (мать бабушки со стороны матери).
-Нарисовать полученное дерево.
-Данное дерево задать только с использованием предикатов - фактов «мать», «отец».
- Привести определение предикатов: родитель, потомок, предок, дядя (тетя), племянник, племянница, дед, родной(ая) брат(сестра), двоюродный(ая) брат(сестра), супруг.
3. Теоретический материал
Хорновская логическая программа состоит из набора хорновских фраз, которые в языке Пролог называются фактами и правилами.
Фактом называется формула вида
Правилом называется формула вида
Запросом к логической программе называется формула вида
Основные синтаксические объекты: атомы, константы и переменные. Константы состоят из атомов и чисел. Числа - целые и вещественные. Атомы - обозначения для других постоянных объектов предметной области. Атомы могут изображаться тремя различными способами: - Последовательностью латинских букв, цифр, начинающейся со строчной буквы;
- Последовательностью, состоящей из специальных символов |==>|…|&;