Скачиваний:
91
Добавлен:
17.06.2016
Размер:
132.32 Кб
Скачать

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»

имени В. И. Ульянова(Ленина)

Открытый факультет

Кафедра Автоматизированных Систем Обработки Информации и Управления

Лабораторная работа №1

по дисциплине: «Проектирование систем искусственного интеллекта»

Выполнил: ст. гр. 0851

Карелина Л.А

Проверил:

Соничев А.В.

Санкт-Петербург

2015

Выполнение программ на Прологе

Цель работы - ознакомление со структурой программ и синтаксисом языка Пролог; построение простейшей интеллектуальной вопросно-ответной системы.

Задание к лабораторной работе

  1. Провести тестирование программы CH05EX03.PRO.

  2. Дописать текст программы LAB01.PRO (объявить домены и предикаты и задать факты - предикаты male, female, mother, father) таким образом, чтобы удовлетворялись все запросы вида brother(X,Y); sister(X,Y); uncle(X,Y); grandfather(X,Y).

  3. Дописать определение отношения grandmother(X,Y) и дополнить базу фактов, таким образом, чтобы удовлетворялся запрос grandmother(X,Y).

Порядок выполнения задания

  1. Загрузить Турбо-Пролог.

  2. Загрузить текст программы СН05ЕХ03.PRO.

  3. Ввести цели

player(X,9);

player(X,10);

player(peter,X);

player(X1,9),player(X2,9).X1 <> Х2

и убедиться в правильности работы программы.

  1. Загрузить текст LAB1.PRO.

  2. Внести требуемые изменения.

Содержание отчета

Отчет должен содержать полученный текст программы и результаты запросов.

Текст программы:

domains

person = string

predicates

male(person).

female(person).

father(person, person).

mother(person, person).

parent(person, person).

sister(person, person).

brother(person, person).

uncle(person, person).

grandfather(person, person).

grandmother(person, person).

common_mother(person,person).

common_father(person,person).

clauses

parent(X, Y) :- mother(X, Y).

parent(X, Y) :- father(X, Y).

common_mother(X,Y) :-

mother(X,M),

mother(Y,M).

common_father(X,Y) :-

father(X, F),

father(Y, F).

brother(X, Y) :-

common_mother(X,Y),

male(Y),

X <> Y.

brother(X, Y) :-

common_father(X,Y),

not(common_mother(X,Y)),

male(Y),

X <> Y.

sister(X, Y) :-

common_mother(X,Y),

female(Y),

X <> Y.

sister(X,Y) :-

common_father(X,Y),

not(common_mother(X,Y)),

female(Y),

X <> Y.

uncle(X, U) :-

mother(X, P),

brother(P, U).

uncle(X, U) :-

father(X, P),

brother(P, U).

grandfather(X, G) :-

father(P, G),

mother(X, P).

grandfather(X, G) :-

father(X, P),

father(P, G).

grandmother(X, G) :-

mother(P, G),

mother(X, P).

grandmother(X, G) :-

mother(P, G),

father(X, P).

%------------------------------------

female("Carmen").

female("Josefa").

female("Isabel").

female("Francisca").

female("Ana").

female("Marta").

female("Lucia").

%------------------------------------

male("Alejandro").

male("Pablo").

male("David").

male("Daniel").

male("Sergio").

male("Carlos").

male("Manuel").

%------------------------------------

father("Ana", "Daniel").

father("Josefa", "Pablo").

father("Isabel", "Pablo").

father("David", "Pablo").

father("Lucia", "Manuel").

father("Marta", "David").

father("Sergio", "David").

father("Carlos", "David").

%------------------------------------

mother("Ana", "Josefa").

mother("Alejandro", "Isabel").

mother("Daniel", "Francisca").

mother("Josefa", "Carmen").

mother("Isabel", "Carmen").

mother("David", "Carmen").

mother("Carlos", "Lucia").

mother("Sergio", "Lucia").

mother("Marta", "Lucia").

Результат работы

Для схемы

Соседние файлы в папке Пролог лабы