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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

113<br />

4.3 Boolean Constraint Propagation und Implikationen<br />

Wird während des Ablaufes eines Algorithmus eine Entscheidung getroffen, so<br />

folgen aus dieser Entscheidung notwendige Implikationen. Für das SAT-Problem<br />

bedeutet es, dass aus einer Zuweisung an eine Variable weitere Zuweisungen<br />

zwingend daraus folgen, wenn die Gleichung erfüllbar bleiben soll.<br />

Wenn bei einer Klausel alle Literale bis auf ein freies Literal den Wert 0<br />

haben, so muss das letzte freie Literal den Wert 1 erhalten. Ansonsten hätte die<br />

Klausel den Wert 0 und die SAT-Instanz wäre nicht mehr erfüllbar. Ein Beispiel<br />

ist in Abbildung 8(a) dargestellt. Hier muss dem freien Literal x 2 der Wert 0<br />

zugewiesen werden. Wird diese unit-Klausel-Regel wiederholt angewandt, bis<br />

keine einzelnen freien Literale mehr vorkommen, spricht man von der Boolean<br />

Constraint Propagation. Dieses Verfahren wurde bereits von Davis und Putnam<br />

in der ursprünglichen Fassung des Algorithmus verwendet.<br />

Ein ähnliches Vorgehen kann in booleschen Netzwerken angewandt werden.<br />

Hier hängen die Ein- und Ausgänge der logischen Gatter voneinander ab. Ist<br />

ein AND-Gatter wie in Abbildung 8(b) beschaltet, muss der unbelegte Eingang<br />

x 1 den Wert 1 bekommen. Diese einfache Implikation ist vorwärtsgerichtet, falls<br />

einem Ausgang ein Wert zugewiesen wird, anderfalls ist sie rückwärtsgerichtet.<br />

Eine Reihe von einfachen Implikationen stellt eine direkte Implikation dar. Implikationen,<br />

die sich nicht aus direkten Implikationen ergeben, werden indirekte<br />

Implikationen genannt. Sie lassen sich nur mit aufwändigen Verfahren (z. B. Rekursives<br />

Lernen) bestimmen.<br />

Es ist ersichtlich, dass direkte Implikationen und BCP einander entsprechen.<br />

BCP wird in nahezu jedem exakten SAT-Solver verwendet, da es die Lösungsfindung<br />

bei großen SAT-Gleichungen erheblich beschleunigt.<br />

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

A = {(x 1, 0)}<br />

x 1<br />

1<br />

1<br />

(a) unit-Klausel-Regel<br />

(b) Einfache Implikation<br />

Abb. 8. Beispiele für Notwendige Implikationen bei SAT und ATPG<br />

4.4 Neustart<br />

Um aus einem Teilbaum zu ”<br />

entkommen”, kann ein Algorithmus einen Neustart<br />

durchführen. Dabei werden Teile der bisher gesammelten Daten und Belegungen<br />

gelöscht und eine neue Startposition ausgewählt. Die nicht verworfenen Daten<br />

(z. B. aus Konflikten gelernte Klauseln) können eine Wiederholung von Fehlbelegungen<br />

verhindern. Die Anwendung von Neustarts bei Chaff wird in Abschnitt<br />

B.3 dargestellt.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!