Definir gráfico en Prolog: borde y ruta, para encontrar si hay una ruta entre dos vértices
Soy muy nuevo en Prolog. Definí engraph.pl
el siguiente gráfico:
Y aquí está mi 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).
Lo entiendo así:hay un camino entre el vérticeX
y vérticeY
solo si hay un borde entre el vérticeX
y vérticeZ
Y hay un camino entre el vérticeZ
y vérticeY
(algún tipo de recursión).
¿Es correcto para el gráfico presentado? Cuando le pregunto a Prolog sobre el camino entre el vérticeA
y vérticeF
me datrue
... que ni siquiera está bien! ¿Qué podría estar mal en este código?