Lösung des Problems

Graphen mit Kreisen

Wir betrachten jetzt die Wegsuche in beliebigen gerichteten Graphen - die also auch Kreise enthalten können.

Graph

Beachte, dass jetzt weitere Fakten in die Wissensbasis übernommen werden müssen.

% Graph
kante(a, b).
kante(a, c).
kante(b, d).
kante(b, e).
kante(c, e).
kante(c, f).
kante(d, g).
kante(d, e).
kante(f, b).
kante(f, i).
kante(h, e).
kante(h, b).
kante(i, e).
kante(i, h).
% Weg
weg2(X, X, W, W).
weg2(X, Y, A, W) :- kante(X, Z), not(member(Z, A)), weg2(Z, Y, [Z|A], W).
weg(X, Y, W) :- weg2(X, Y, [X], W).

Die folgenden Regeln zur Festlegung eines weg2-Prädikats benutzen eine zusätzliche Bedingung not(member(Z, A)). Wenn diese Bedingung bei der Auswertung von Fakten nicht erfüllt ist, wird ein Herleitungsversuch abgebrochen.

Aufgabe 1

Teste das weg-Prädikat mit geeigneten Anfragen.

?- weg(a, b, W).
...

Überprüfe die Korrektheit der Ergebnisse.

X

Fehler melden

X

Suche