Horn-Klauseln

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Horn-Klauseln
Hi!
Auf den Folien zu Prolog steht, dass Horn-Klauseln da sinnvoll sind.
Ich verstehe nicht so ganz, warum das gut sein soll… Kann mir das jemand erklären?
Danke schonmal :slight_smile:


Horn-Klauseln sind da nicht nur sinnvoll, sondern die Funktionsweise von Prolog basiert darauf. Eine Horn-Klausel ist eine Klausel, die höchstens ein nicht-negiertes Literal beinhaltet, i.e. entweder ( ~A1 v ~A2 v … ~An ) oder ( ~A1 v … v ~A(n-1) v An ). Der Vorteil dieser Klauseln ist, dass sie sich zu Impliakationen umschreiben lassen, nämlich ( A1 & … & An ) => 0 oder ( A1 & … & A(n-1) ) => An.

Der Sinn der Sache ist, dass ich mit Hornklauseln “im Prinzip” einfach DFS mit Backtracking machen kann, wenn ich irgendwas beweisen / i.e. ein Programm ausführen will. Wenn das Ziel X ist, suche eine Formel ( A1 & … & An ) => X und setze A1…An als neue ziele.


Ahhhh :slight_smile: Danke!