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.

111<br />

wurden), lässt sich daraus schließen, dass es keinen Testvektor für die ATPG-<br />

Instanz gibt (Redundanz liegt vor). Das Verfahren terminiert in diesem Fall.<br />

Tritt keine Terminierung ein, übernimmt der Algorithmus die neue Belegung<br />

und fährt mit der Überprüfung der Implikationen fort.<br />

4 Grundlagen von SAT-Solvern<br />

Im folgenden werden einige Grundlagen betrachtet, die bei nahezu jedem modernen<br />

SAT-Solver eingesetzt werden.<br />

4.1 Konventionen<br />

Für Algorithmen, die auf der Baumstruktur des Davis-Logemann-Loveland-Algorithmus<br />

basieren, sind einige Konventionen festzulegen.<br />

– Die Entscheidungsebene gibt an, in welcher Ebene des Baumes einer Variablen<br />

ein Wert zugewiesen wird. Die Ebene, in der über die Belegung einer<br />

Variablen entschieden wird, wird über die Funktion δ entschieden. In der<br />

einfachen Variante des Backtracking-Algorithmus gilt δ(x i )=i. Erweiterte<br />

Varianten weisen mehreren Variablen innerhalb einer Entscheidungsebene<br />

z. B. durch Implikationen Werte zu.<br />

– Der Wert, den eine Variable zugewiesen bekam, kann über die Funktion ν<br />

abgefragt werden. Dabei gilt ν(x i ) ∈{0, 1}.<br />

– Der Antezedent α(x i ) einer Variable x i ist NIL, falls die Variable durch<br />

eine Entscheidung und nicht durch eine Implikation belegt wurde (Entscheidungsvariable).<br />

Wurde die Variable durch eine Implikation belegt, ist α(x i )<br />

die Klausel, in der die Variable x i die letzte frei Variable war (siehe Abschnitt<br />

4.3).<br />

Die obigen Festlegungen könneninderFormx i = ν(x i )@δ(x i ):α(x i )zusammengefasst<br />

geschrieben werden. Im folgenden Beispiel sind x 1 und x 2 Entscheidungsvariablen,<br />

die den Wert 0 bzw. 1 in den Entscheidungsebenen 1 und 2<br />

erhielten. In der Ebene 2 ergibt sich eine notwendige Implikation zur Belegung<br />

der Variablen x 3 . Deren Antezedent ist die einzige Klausel in ϕ.<br />

ϕ =(¬x 1 + x 2 + x 3 )<br />

x 1 =1@1:NIL<br />

x 2 =0@2:NIL<br />

x 3 =1@2:(¬x 1 + x 2 + x 3 )<br />

4.2 Belegungsheuristiken<br />

Im Rahmen der meisten SAT-Solveralgorithmen müssen Entscheidungen getroffen<br />

werden wie Variablen zu belegen sind. Es gibt eine Reihe von möglichen<br />

Heuristiken, wie Entscheidungsvariablen belegt werden können. Die daraus resultierenden<br />

Implikationen beeinflussen den weiteren Ablauf des Algorithmus.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!