
- •Практикум по представлению знаний в информационных системах
- •Оглавление
- •2. Работа со структурами на языке пролог 6
- •2. Работа со структурами на языке пролог
- •3. Операторы и операции языка пролог
- •4. Операции сравнения на языке пролог
- •5. Сопоставление в языке пролог
- •6. Представление списков в языке пролог
- •Литература
3. Операторы и операции языка пролог
Задача 3.1. Записать операторную запись в виде структуры
4*f - r*a
Решение.
-(*(4,f),*(r,a))
Задача 3.2. Найдите ответ
?-Y = 2+5.
Решение.
Система выдаст ответ:
Y=2+5.
Задача 3.3. Составьте решение предыдущего примера
Решение.
?-Y is 2+5.
Система выдаст ответ:
Y=7
Задача 3.4. Составьте на языке ПРОЛОГ решение арифметического примера:
Y = 18\(5+1)
Решение.
?-Y is 18\(5+1).
Система выдаст ответ:
Y=3
Задача 3.5. Пусть функция f в системе известна и имеет вид:
f(X, Y, Z):-Z is Y*Y - Y*X.
Как система ответит на вопрос:
?- f(2, 3, R).
Решение.
Система выдаст ответ:
R= 4
Задача 3.6. Если определить сумму как функцию выражением:
sum(X1, X2, X):-X is X1 + X2.
а произведение:
mul(X1, X2, X):-X is X1 * X2.
Какой выдаст ответ система на запрос:
?-mul(1,sum(2, 3, X),Y).
Решение.
Система выдаст ответ:
Y=5
Задача 3.7. Что система ответит на запрос
?- sum(1, 1, X1), mul(X1, X1, X).
Решение.
Система выдаст ответ:
X = 4
4. Операции сравнения на языке пролог
Задача 4.1. Определить отношение "ниже" lower/2
для двух точек поверхности, определенных структурой point(X, Y).
Решение. Составим правило, характерное для проверки такого утверждения:
lower (point(X1, Y1), point(X2, Y2):-Y1<Y2.
тогда на вопрос
?- lower (point( 1, 1), point( 2, 2).
Система выдаст ответ:
Yes
5. Сопоставление в языке пролог
Задача 5.1. Найти ответ на вопрос:
?-a(B,c(x,D))=a(d,c(3,Х)).
Решение.
No
B=d х=3 (ошибка!) D=Х (ошибка!)
Задача 5.2. Найти ответ на вопрос:
? - triangle(point(1, 5), A, point(B, 8))=
triangle(X, point(2, 1), point(3, 8))
Решение.
Yes
X=point(1, 5) A=point(2, 1)
B=3
6. Представление списков в языке пролог
Задача 6.1. Представить структуру в виде дерева или диаграммой "виноградная лоза":
.(а ,.(b,.(c,[ ])))
Решение.
|
|
|
Задача 6.2. Представить структуру в виде дерева или диаграммой "виноградная лоза": .(а ,[ ],.(b,.(c)
Задача 6.3. Представить структуру диаграммой "виноградная лоза"для вложенных списков [a,b,[c,d]] :
Решение.
|
- на верхнем уровне три элемента
- на втором уровне два элемента. |
Задача 6.4. Представить структуру диаграммой "виноградная лоза"для вложенных списков [a,[b,e],[c,d]].
Литература
1. Братко И. Алгоритмы искусственного интеллекта на языке PROLOG. Изд.:
Вильямс, 2004. – 637 с.
2. Ездаков А.Л. Функциональное и логическое программирование. Изд.: Бином,
2009. – 119 с.
3. http://www.mari-el.ru/mmlab/home/prolog/study_l.html