Я очень новичок в Prolog. Я определил в graph.pl
следующий график:
И вот мой код Пролога:
edge(a,e).
edge(e,d).
edge(d,c).
edge(c,b).
edge(b,a).
edge(d,a).
edge(e,c).
edge(f,b).
path(X,X).
path(X,Y):- edge(X,Z) ; path(Z,Y).
Я понимаю это так: существует путь между вершиной X
и вершиной Y
, только если существует ребро между вершиной X
и вершиной Z
И есть путь между вершинами Z
и vertex Y
(некоторая рекурсия).
Правильно ли это для представленного графика? Когда я спрашиваю Пролог о пути между вершиной A
и вершиной F
, он дает мне true
... который даже не прав! Что может быть неправильным в этом коде?