Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Verifikation reaktiver Systeme - Universität Kaiserslautern
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
136<br />
– Das Literal erhält den Wert 0, es gibt aber keine weiteren freien Literale<br />
außer dem anderen beobachteten Literal. Die Klausel ist somit unit und<br />
dem letzten freien Literal muss der Wert 1 zugewiesen werden.<br />
– Das Literal erhält den Wert 1. Hierdurch wird das Komplement des Literals<br />
0 und alle Klauseln, in denen das Komplement vorkommt (über die Beobachtungsliste<br />
bestimmbar), müssen untersucht werden. Zur Beobachtung wird<br />
ein anderes freies, unbeobachtes Literal gewählt.<br />
Backtracking und Lernen Tritt bei der Belegung und dem anschließenden BCP<br />
ein Konflikt auf, muss dieser behandelt werden. Dazu wird die aktuelle Belegung<br />
auf die Ursachen des Konflikts untersucht. Rekursiv von der betroffenen Klausel<br />
ausgehend werden die Entscheidungsvariablen gesucht, die den Konflikt verursacht<br />
haben. Ist ein Literal in der untersuchten Klausel eine Entscheidungsvariable,<br />
wird das Literal in die Liste der Verursacher aufgenommen. Ist ein Literal<br />
dagegen durch eine Implikation belegt worden, wird die Klausel untersucht, in<br />
der die Implikation entstand. Aus der Liste der Verursacher wird eine neue Klausel<br />
generiert, die eine erneute gleiche Belegung dieser Variablen verhindern soll.<br />
Diese neue Klausel ist eine Implikation aus der ursprünglichen Klauselmenge<br />
und wird als gelernt bezeichnet.<br />
Von den gefundenen Verursachern des Konflikts wird die Variable ausgewählt,<br />
die zuletzt belegt wurde. In einem nicht-chronologischen Backtracking-<br />
Schritt wird zur Entscheidungsebene der ausgewählten Variable gesprungen und<br />
die komplementäre Belegung gewählt. Sind bereits beide Alternativen eruiert,<br />
wird die nächstältere Variable betrachtet.<br />
Klausellöschung Im Ablauf des Algorithmus könnensicheinegrößere Anzahl<br />
von gelernten Klauseln ansammeln. Da diese gelernten Klauseln die Suchgeschwindigkeit<br />
verringern, können einige Klauseln von einer Heuristik gelöscht<br />
werden. Dazu verwaltet MiniSat für die gelernten Klauseln jeweils Aktivierungswerte.<br />
Klauseln mit niedrigen Aktivierungswerten werden bevorzugt gelöscht.<br />
Die Aktivierungswerte werden erhöht, wenn die Klausel in einem Konflikt wieder<br />
auftritt.<br />
Dadurch kann es aber vorkommen, dass bereits aufgetretene Fehlbelegungen<br />
erneut gemacht werden. Eine optimale Strategie zum Aufbewahren bzw. Entfernen<br />
von gelernten Klauseln hängt von der betrachteten SAT-Instanz ab.<br />
Bewertung Die Autoren geben an, dass MiniSat auch ohne aufwendige Optimierungen<br />
ähnliche Leistungen wie Satzoo oder Chaff erreichen kann. Unter geeigneten<br />
Testbedingungen können die beiden ”<br />
professionellen” Implementierungen<br />
sogar übertroffen werden.<br />
C<br />
Regeln bei Davis & Putnam<br />
Davis und Putnam [4] verwenden noch weitere Optimierungsmaßnahmen, die<br />
hier kurz vorgestellt werden sollen. Diese Optimierungen können vor der eigentlichen<br />
Suche angewandt werden, da sie die Formel vereinfachen und diese