Пример отношения предок (а) X ближайший предок Z; (b) X отдаленный предок Z



Рисунок 1. 5.  Пример отношения предок:
(а)    X - ближайший предок Z;     (b)    X - отдаленный предок Z.


между собой отношением родитель-ребенок, как показано на Рисунок 1.5. В нашем примере на Рисунок 1.1   Том - ближайший предок Лиз и отдаленный предок Пат.

Первое правило простое и его можно сформулировать так:

    Для всех X и Z,
          X - предок Z, если
          X - родитель Z.

Это непосредственно переводится на Пролог как

    предок( X, Z) :-
           родитель( X, Z).

Второе правило сложнее, поскольку построение цепочки отношений родитель может вызвать некоторые трудности. Один из способов определения отдаленных родственников мог бы быть таким, как показано на Рисунок 1.6. В соответствии с ним отношение предок определялось бы следующим множеством предложений:

       предок( X, Z) :-
                родитель( X, Z).

        предок( X, Z) :-
                 родитель( X, Y),
                 родитель( Y, Z).



        предок( X, Z) :-
                 родитель( X, Y1),
                 родитель( Yl, Y2),
                 родитель( Y2, Z).

        предок( X, Z) :-
                 родитель( X, Y1),
                 родитель( Y1, Y2),
                 родитель( Y2, Y3),
                 родитель( Y3, Z).

        .  .  .



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