
- •Практикум по представлению знаний в информационных системах
- •Оглавление
- •2. Работа со структурами на языке пролог 6
- •2. Работа со структурами на языке пролог
- •3. Операторы и операции языка пролог
- •4. Операции сравнения на языке пролог
- •5. Сопоставление в языке пролог
- •6. Представление списков в языке пролог
- •Литература
Министерство образования и науки РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Самарский государственный архитектурно-строительный университет Факультет информационных систем и технологий Кафедра прикладной математики и вычислительной техники
|
О. В. Прохорова
Практикум по представлению знаний в информационных системах
Специализированное учебно – методическое пособие по организации самостоятельной работы студентов по дисциплине «Представление знаний в информационных системах»
САМАРА 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.