Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод. указ к лаб_ПЗ_1..doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
127.49 Кб
Скачать

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

Самарский государственный архитектурно-строительный университет

Факультет информационных систем и технологий

Кафедра прикладной математики и вычислительной техники

О. В. Прохорова

Практикум по представлению знаний в информационных системах

Специализированное учебно – методическое пособие по организации самостоятельной работы студентов по дисциплине «Представление знаний в информационных системах»

САМАРА 2013г.

В пособии рассматривается ряд задач из области искусственного интеллекта. Приводятся решения задач с помощью языков логического и функционального программирования. Даются необходимые комментарии.

Оглавление

2. Работа со структурами на языке ПРОЛОГ 6

3. Операторы и операции языка ПРОЛОГ 11

4. Операции сравнения на языке ПРОЛОГ 14

5. Сопоставление в языке ПРОЛОГ 14

6. Представление списков в языке ПРОЛОГ 15

ЛИТЕРАТУРА 16

2. Работа со структурами на языке пролог 6

3. Операторы и операции языка ПРОЛОГ 11

4. Операции сравнения на языке ПРОЛОГ 14

5. Сопоставление в языке ПРОЛОГ 14

6. Представление списков в языке ПРОЛОГ 15

ЛИТЕРАТУРА 16

Задача 1.1. Составить базу данных и программу на языке ПРОЛОГ для поиска

ответов на вопросы:

1. Кто сестра Юли?

2. Кто ребенок Тома?

Решение.

На языке Пролог, представленном для обработки транслятором эта программа имеет вид:

parent(pam, bob).

parent(tom, bob).

parent(tom, liz).

parent(tom, juli).

parent(bob, ann).

parent(bob, pat).

parent(mary, ann).

parent(pat, juli).

male(tom).

male(bob).

male(jim).

female(liz).

female(juli).

female(pam).

female(pat).

female(ann).

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

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

different(X, Y) :- not(X=Y).

sister(X, Y) :- parent(Z, X), parent(Z, Y), female(X), different(X, Y).

?- sister(X, liz).

Ответ системы Пролог:

X=juli.

?-child(X, tom).

Ответ системы Пролог:

X=juli.

X=liz.

Задача 1.2. Составьте программу на языке Пролог, которая могла бы ответить

на вопрос – способен ли Сократ ошибаться?

Решение.

1. Составим базу данных из следующих фактов:

man (socrates).

woman ( sofia_kovalevskay).

2. Составим правило, использование которого на основе известных фактов из

базы данных может дать ответ на поставленный вопрос:

fallible ( X ) : - man ( X ); woman ( X ).

% Все люди способны ошибаться

3. Сформулируем вопрос и найдем на него ответ, используя программу:

? – fallible ( socrates). % Сократ способен ошибаться?

Ответ системы Пролог:

Yes

Задача 1.3. Составить базу данных, правила (программу) на языке ПРОЛОГ для

поиска ответа на вопрос:

? – пробабушка(Х,ира).

Решение.

parent(tanya, peter).

parent(serj, peter).

parent(katia, ira).

parent(peter, ira).

male(peter).

male(serj).

female(tanya).

female(ira).

grandmother(H, X) :- parent(Y, X), parent(H, Y), female(H).

?- grandmother(H, ira).

Ответ системы Пролог:

H=tanya.