Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
105<br />
auf Gatterlisten beruht, kann es zur Lösung von SAT-Gleichungen angewandt<br />
werden.<br />
Stålmarcks Methode Auf Stålmarck [5] geht ein patentiertes Verfahren zum Ausprobieren<br />
von Variablen zurück. Dabei wird in einem ersten Schritt eine Gleichung<br />
in eine Schreibweise aus verschachtelten Implikationen überführt. Diese<br />
Implikationen werden als Tripel (Ergebnis, Implikant, Folgerung) in einer Menge<br />
zusammengefasst. Die Tripel können nach sieben Ableitungsregeln und einer<br />
Dilemma-Regel ersetzt werden.<br />
Zum Beweis wird angenommen, dass die Gleichung nicht erfüllbar ist. Kann<br />
diese Annahme durch Anwendung der Regeln auf die Menge der Regeln zum<br />
Widerspruch geführt werden, ist die Gleichung erfüllbar.<br />
Enummerierende Algorithmen Enummerierende Algorithmen traversieren<br />
den Suchraum.<br />
Davis-Putnam-Logemann-Loveland Ein Beispiel für ein enummerierendes Verfahren<br />
ist der Algorithmus von Davis-Logemann-Loveland (DLL) [6]. Da das<br />
ursprüngliche Davis-Putnam-Verfahren (Abschnitt 2.1) sehr viel Speicher verbrauchen<br />
kann, wurde in diesem neuen Ansatz eine Baumsuche verwendet. Die<br />
hier vorkommenden Suchoperationen können auf DP-Resolutionsoperationen abgebildet<br />
werden. Daher wird der DLL-Algorithmus auch mit DPLL abgekürzt.<br />
Der Lösungsraum wird auf einen binären Entscheidungsbaum abgebildet, wobei<br />
im einfachsten Fall in jeder Ebene 1 ≤ i ≤ n entschieden wird, ob die Variable<br />
x i mit 0 oder 1 belegt wird. Der Pfad von der Wurzel zu einem Blatt ist somit<br />
eine vollständige Belegung A, d.h.|A| = n. Befindet sich der Suchalgorithmus<br />
nicht an einem Blatt, sondern an einem inneren Knoten, ist die Belegung A nur<br />
partiell und einige Variablen sind frei (nicht belegt).<br />
0 1<br />
i<br />
i +1<br />
Abb. 3. Binärer Suchbaum.<br />
Der Baum wird mit einem Backtracking-<br />
Algorithmus [7] durchsucht. Wird durch eine<br />
Belegungszuweisung an eine Variable die<br />
SAT-Gleichung unerfüllbar, wird der darunterhängende<br />
Teilbaum ausgeblendet und die<br />
Variablenzuweisung invertiert. Sind beide Alternativen<br />
gescheitert, geht der Algorithmus<br />
eine Ebene zurück und ändert die Zuweisung<br />
der vorherigen Variable. Der Algorithmus<br />
terminiert, sobald ein Blatt erreicht wird und die vollständige Belegung die<br />
Gleichung erfüllt (Lösung gefunden) oder alle Möglichkeiten ausgeschöpft sind<br />
und der Algorithmus zur Wurzel zurückgekehrt ist (Unerfüllbarkeit bewiesen).<br />
Problematisch ist allerdings, dass bei einem ungünstigen Aufbau sehr viel Zeit<br />
benötigt wird, um falsche Entscheidungen zu entdecken. In den Gleichungen 2<br />
bis 5 wird ein solches Beispiel gezeigt. Die Entscheidung für x 1 und x 2 (partielle<br />
Belegung A) wirderstdannalsungültig entdeckt, wenn die Ebene k mit 2 <<br />
k ≤ n im Binärbaum erreicht wird. Dieses Problem wurde von Davis, Logemann