Программирование на языке Пролог для искусственного интеллекта

6ec30db9

Какие из следующих выражений представляют



Упражнения

2. 1.    Какие из следующих выражений представляют собой правильные объекты в смысле Пролога? Что это за объекты (атомы, числа, переменные, структуры)?
    (а)        Диана
    (b)        диана
    (с)        'Диана'
    (d)        _диана
    (e)        'Диана едет на юг'
    (f)        едет( диана, юг)
    (g)        45
    (h)        5( X, Y)
    (i)        +( север, запад)
    (j)        три( Черные( Кошки) )
Посмотреть ответ


2. 2.    Предложите представление для прямоугольников, квадратов и окружностей в виде структурных объектов Пролога. Используйте подход, аналогичный приведенному на Рисунок 2.4. Например, прямоугольник можно представить четырьмя точками (а может быть, только тремя точками). Напишите несколько термов конкретных объектов такого типа с использованием предложенного вами представления.




Упражнения

2. 3.    Будут ли следующие операции сопоставления успешными или неуспешными? Если они будут успешными, то какова будет результирующая конкретизация переменных?
    (а)        точка( А, В) = точка( 1, 2)
    (b)        точка( А, В) = точка( X, Y, Z)
    (c)        плюс( 2, 2) = 4
    (d)        +( 2, D)= +( Е, 2)
    (е)        треугольник( точка( -1, 0), Р2, Р3) =
                 треугольник( Р1, точка( 1, 0), точка( 0, Y)
Результирующая конкретизация определяет семейство треугольников. Как бы Вы описали это семейство?
Посмотреть ответ
2. 4    Используя представление отрезков, применявшееся в данной разделе, напишите терм, соответствующий любому отрезку на вертикальной прямой x = 5.
Посмотреть ответ
2. 5.    Предположим, что прямоугольник представлен термом прямоугольник( P1, P2, P3, Р4), где Р - вершины прямоугольника, положительно упорядоченные. Определите отношение
        регулярный( R)
которое имеет место, если R - прямоугольник с вертикальными и горизонтальными сторонами.
Посмотреть ответ





Упражнения

2. 6.    Рассмотрим следующую программу:
    f( 1, один).
    f( s(1), два).
    f(    s(s(1)),    три).
    f( s(s(s(X))),  N) :-
               f(X,   N).
Как пролог- система ответит на следующие вопросы? Там, где возможны несколько ответов, приведите по крайней мере два.
    (a)        ?- f( s( 1), A).
    (b)        ?- f( s(s(1)), два).
    (c)        ?- f(   s(s(s(s(s(s(1)))))), С).
    (d)        ?- f( D, три).
Посмотреть ответ
2. 7.    В следующей программе говорится, что два человека являются родственниками, если
    (a)        один является предком другого, или
    (b)        у них есть общий предок, или
    (c)        у них есть общий потомок.
    родственники( X, Y) :-
          предок( X, Y).
    родственники( X, Y) :-
          предок( Y, X).
    родственники( X, Y) :-
                      % X и Y имеют общего предка
          предок( Z, X),
          предок( Z, Y).
    родственники( X, Y) :-
                      % X и Y имеют общего потомка
          предок( X, Z),
          предок( Y, Z).
Сможете ли вы сократить эту программу, используя запись с точками с запятой?
Посмотреть ответ
2. 8.    Перепишите следующую программу, не пользуясь точками с запятой.
    преобразовать( Число, Слово) :-
          Число = 1,  Слово = один;
          Число = 2,  Слово = два;
          Число = 3,  Слово = три.
Посмотреть ответ



Содержание раздела