Der Resolutionsbeweiser



next up previous
Next: Beweiser über Wahrheitstafeln Up: Aufgabe 1 Previous: disjunktive Normalform

Der Resolutionsbeweiser

Ein Resolutionsbeweiser generiert aus einer Menge von Klauseln solange neue Klauseln über die Resolution, bis er die leere Klausel erzeugt hat. Damit war sein Beweis erfolgreich. Ein Resolutionsschritt ist ein Ableitungsschritt, in dem aus zwei Klauseln eine neue Klausel generiert wird. Wir definieren diesen Ableitungsschritt:
Definition (Resolution)
Es seien C, C und C Klauseln. C heiResolvente von C, C, wenn es ein Atom p gibt mit

C ensteht dann durch Resolution bzgl. p aus C,C.
Es ist nun der Kalkül vollständig spezifiziert. Eine Regel zur Faktorisierung wird nicht benötigt, da wir uns in der Aussagenlogik befinden und davon ausgehen, dakein Element doppelt in einer Klausel ist. Um einen Resolutionsschritt zu implementieren, ist es notwendig die Vereinigung von Mengen in Gofer zu definieren.
Der Resolutionsbeweiser soll nun eine Klauselmenge nehmen und solange neue Klauseln aus dieser Menge generieren bis entweder die leere Klausel abgeleitet wurde, oder keine neue Klausel mehr erzeugt werden kann. Hierzu munatürlich verhindert werden, daman zwei Klauseln mehrfach auf demselben Literalen resolviert.
Als Ausgabe soll der Beweiser einen String im -Format erzeugen, der den Resolutionsbeweis darstellt. Hier sei den Programmierern ein wenig Freiheit gelassen. Als Beispiel betrachte man folgende Ausgabe:

\\ documentstyle[german]{article}\n\\ begin{document}\nDie Eingabe
klauseln waren:\\ \\ \n\\ {$\\ neg$ A,C\\ }\\ \\ \n\\ {A,$\\ neg$ B\\ }\\ \
\\ n\\ {B,$\\ neg$ C\\ }\\ \\ \n In der n"achsten Iterationsstufe wurd
en als neue Klauseln erzeugt:\\ \\ \n \\ {C,$\\ neg$ B\\ }\\ \\ \n\\ {A,
$\\ neg$ C\\ }\\ \\ \n\\ {A,B\\ }\\ \\ nIn der n"achsten Iterationsstufe
 wurden als neue Klauseln erzeugt:\\ \\ \n

In dieser Iterationsstufe wurde die leere Klausel hergeleitet. D
er Beweis war erfolgreich.\\ end{document}
Man beachte, dabestimmte Zeichen in Gofer in Escape-Sequenzen dargestellt werden müssen. Hierzu siehe man S.19 im Manual.
Wer die erschöpfende Suche auf Klauseln durchführt, wird schnell dieser Aufgabe freigestellt, welche Strategie und Optimierung der Beweiser benutzt; ob eine einfache Breitensuche oder die Davies-Putnam-Prozedur realisiert wird.

Sven Eric Panitz
Mi., 01. Nov. 1995, 12:12:54