Defina o gráfico no Prolog: borda e caminho, descobrindo se existe um caminho entre dois vértices
Sou muito novo no Prolog. Eu defini emgraph.pl
o seguinte gráfico:
E aqui está o meu código Prolog:
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).
Eu entendo assim: existe um caminho entre o vérticeX
e vérticeY
somente se houver uma aresta entre o vérticeX
e vérticeZ
E existe um caminho entre o vérticeZ
e vérticeY
(algum tipo de recursão
Isso é correto para o gráfico apresentado? Quando pergunto ao Prolog sobre o caminho entre o vérticeA
e vérticeF
me dátrue
... o que nem está certo! O que pode estar errado neste código?