25.11.2014 Aufrufe

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

Verifikation reaktiver Systeme - Universität Kaiserslautern

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!