Zum Inhalt springen

Markierungsalgorithmus

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 2. November 2004 um 22:11 Uhr durch 80.144.2.137 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Der Markierungsalgorithmus dient zur Überprüfung von Hornformeln auf Erfüllbarkeit oder Unerfüllbarkeit. Das Verfahren, eine allgemeine Formel auf Erfüllbarkeit bzw. Unerfüllbarkeit zu überprüfen, gelingt grundsätzlich mit einer Wahrheitstafel. Jedoch ist dies verbunden mit einem exponentiellen Aufwand. Die Markierungsalgorithmus ist nur für Hornformeln zugelassen umgeht jedoch das Problem des exponentiellen Aufwandes (In Abhängigkeit von der Eingabelänge. Hier: Länge der Hornformel bzw. Anzahl der Aussagevariablen in der eingegebenen Hornformel).

Idee des Algorithmus

Ziel ist es, eine Hornformel auf Erfüllbarkeit bzw. Unerfüllbarkeit zu überprüfen. Hierzu soll nun eine Vorgehensweise gefunden werden, die es ermöglicht, jede beliebige logische Formel in dieser spezifischen Form zu überprüfen. Hierbei wird die grundlegende Eigenschaft eines Algorithmus in Betracht gezogen, die besagt, dass ein Algorithmus eine Art "Rezept" zur Lösung eines Problems bereitstellt. Dabei soll dieses "Rezept" die Vollständigkeit und die Korrektheit dieser Lösung garantieren. Vollständigkeit heißt hier, dass von diesem Algorithums alle möglichen Lösungswege getestet werden, so das ein richtiges Ergebniss resultiert.

Vorgehensweise des Algorithmus

Kurzübersicht über die Formen einer Hornformel

(genaueres unter Hornformeln) Eine Hornformel hat die Eigenschaft, dass sie maximal ein positives Literal besitzt. Daraus folgen drei verschiedene Disjunkionsterme, die als Elemente einer Hornformel möglich sind (im Rahmen der Definition von Horn-Formeln):

Typ 1: A <=> (falsch -> A)

Typ 2: (-A1|-A2|...|-An|B) <=> (A1,...,An -> B)

Typ 3 (-A1|-A2|...|-An) <=> (A1,...,An -> wahr)

Hornformeln, die nur Disjunktionsterme vom Typ III enthalten, sind trivialerweise erfüllbar. Durch die Belegung der Variablen mit 0 wird die gesamte Aussage wahr. Horn-Formel, die keinen Term vom Typ III besitzen, sind erfüllbar. Durch Belegung aller Variablen mit 1 wird dieser Sachverhalt leicht nachgewiesen. Achtung: Diesem Algorithmus obliegt es NICHT die Formel dahingehend zu überprüfen ob sie eine Hornformel ist. Bei Eingabe einer Formel die nicht der Definition einer Horn-Formel entspricht kann die Korrektheit und Vollständigkeit diese Algorithmuses nicht gewährleistet werden!

Ablauf des Algorithmus im einzelnen

Eingabe: eine Hornformel phi

1. Schritt:
Für jede Formel vom Typ I:
markiere diese atomare Formel und alle anderen Literale die diese Formel enthalten.
2. Schritt:
Solange folgende Bedingungen gelten:
a) es gibt in phi eine Disjuntionsterm psi=(-A1,-A2,-A3,...,B) vom Typ II derart, 
   dass zwar A1,...,An schon markiert sind, aber B nicht
                                ODER
b) es gibt in phi einen Disjunktionsterm psi=(-A1,-A2,-A3,...,-An) vom Typ II derart, 
   dass zwar A1,...,An sind markiert sind
soll folgendes gemacht werden:
wenn psi vom Typ II ist makiere B.
wenn aber psi vom Typ II ist, gib "unerfüllbar" aus und halte an.
3. Schritt:
(Wenn die Bedingungen in 2. nicht mehr zutreffen)
Gib "erfüllbar" aus und halte an.