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.

4<br />

2.3 SAT<br />

Unter SAT versteht man das boolesche Erfüllbarkeitsproblem. Was bedeutet,<br />

dass bei einer gegebenen booleschen Funktion f entschieden werden muss, ob sie<br />

den Wert 1 hat oder nicht. SAT liegt in NP-complete. Was bedeutet, dass im<br />

worst-case Fall der Algorithmus exponentielle Laufzeit benötigt um das Problem<br />

zu lösen. Im Durchschnitt benötigt er weit aus weniger, daher auch sein verbreiteter<br />

Einsatz in der Industrie.<br />

Am Beispiel von Schaltungen lässt sich dies anschaulich erklären. Es soll untersucht<br />

werden, ob zwei Schaltungen die die Funktionen g und f realisieren,<br />

äquivalent sind. Diese beiden Funktionen werden mit einem XOR verknüpft und<br />

beschaltet. Falls nun XOR erfüllbar ist, so sind die beiden Funktionen und damit<br />

die Schaltungen nicht äquivalent.<br />

Der Aufbau allgemein erfolgt in Klauselform. Bedeutet, dass jede zu erfüllende<br />

Eigenschaft eine Klausel darstellt, die mit jeder anderen noch zu erfüllenden<br />

Eigenschaft konjungiert wird. Als Ergebnis erhält man eine Konjunktive Normalform<br />

(KNF). Die meisten modernen SAT-Solver arbeiten auf Basis des 1962<br />

eingeführten Davis-Logemann-Loveland (DLL)-Algorithmus. Dabei wird den Variablen<br />

der KNF schrittweise die Werte von 0 oder 1 zugewiesen. Dies wird so<br />

lange durchgeführt, bis alle Klauseln erfüllt sind. Falls eine Klausel verletzt wird,<br />

werden Backtracks vom aktuellen Knoten im Entscheidungsbaum durchgeführt.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!