a ↔ b
↙ ↑
c → d
path(X, X, Y).
path(X, Y, s(Z)) :- edge(X, A), path(A, Y, Z).
path(X, Y, Z) :- eps(X, A), path(A, Y, Z).
edge(a, b).
edge(b, a).
edge(c, d).
edge(d, b).
eps(b, c).
И path(X,Y,k)
равно true
, если в графе есть путь от X
до Y
, где вдоль пути используется не более k
ребер, отличных от. Как нарисовать SLD-дерево для запроса ?-path(a,a,s(s(0)).
?