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.

134<br />

Ablauf Der Ablauf der MiniSat-Implementierung ist in Abbildung 21 dargestellt.<br />

Zu Beginn wird eine Variable ausgewählt und mit einem Wert belegt.<br />

Diese anfängliche Belegung wird über den BCP-Algorithmus auf Implikationen<br />

und daraus entstehende Konflikte untersucht. Tritt kein Konflikt auf, wird die<br />

Belegung auf Vollständigkeit geprüft. Im positiven Fall wird der Algorithmus<br />

terminiert und bestätigt die Erfüllbarkeit der SAT-Instanz. Ist die Belegung nur<br />

partiell, wird über eine Heuristik eine freie Variable mit einem Wert belegt und<br />

der Algorithmus tritt wieder in die Propagationsphase ein. Falls die Propagation<br />

zu einem Konflikt führt, muss dieser behandelt werden, indem die Fehlerursache<br />

untersucht und eine alternative Belegung gesucht wird. Wurden alle Belegungskombinationen<br />

ausprobiert, so ist die SAT-Instanz unerfüllbar unter den<br />

gegebenen Randbedingungen. Somit terminiert das Verfahren. Andernfalls wird<br />

versucht, durch ein nicht-chronologisches Backtracking den Fehler zu umgehen.<br />

Gleichzeitig wird die Fehlerursache als neue Klausel gespeichert, um zukünftige<br />

Wiederholungen zu vermeiden.<br />

Start<br />

Suchphase<br />

Propagationsphase<br />

Lernphase<br />

Neue Variable<br />

belegen<br />

Nein<br />

BCP<br />

Konflikt?<br />

Backtracking<br />

und Lernen<br />

Nein<br />

Ja<br />

Vollständige<br />

Belegung?<br />

Analyse:<br />

Unerfüllbar?<br />

Ja<br />

Erfolg<br />

kein Konflikt<br />

Konflikt aufgetreten<br />

Fehler<br />

Abb. 21. Flussdiagramm für die MiniSat-Implementierung<br />

Implementierung Nachfolgend wird detaillierter auf einzelne Aspekte der Implementierung<br />

von MiniSat eingegangen.<br />

Constraints Constraints sind Vorgaben, die den Lösungsraum einschränken. So<br />

sind u. a. die Klauseln der SAT-Gleichung, Variablenbelegungen oder vom Anwender<br />

bestimmte Annahmen Constraints.<br />

Constraints stellen die Datenbasis dar, auf der der Algorithmus arbeitet. Sie<br />

sind mit den enthaltenen Literalen verknüpft und können somit zur Auswertung<br />

beim BCP und zum Finden von Konfliktursachen verwendet werden.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!