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.
120<br />
Nicht-chronologischer Rücksprung Eine Erweiterung zum einfachen Rücksprung<br />
stellt der nicht-chronologische Rücksprung dar. Als Sprungziel wird die<br />
Entscheidungsvariable aus der Konfliktklausel gewählt, die auf der höchsten Entscheidungsebene<br />
vor der aktuellen Ebene belegt wurde. Sind am Rücksprungknoten<br />
bereits beide Alternativen fehlgeschlagen, wird zur nächst kleineren Entscheidungebene,<br />
die den Konflikt mitverursacht hat, gesprungen. Eine Invertierung<br />
ist möglich, falls mindestens ein UIP der aktuellen Entscheidungsebene auf der<br />
Ursachenseite stand. Die Konfliktklausel wird in diesem Fall auch bestimmende<br />
Klausel (Asserting clause) genannt. In [17] wird von conflict-directed backtracking<br />
(konfliktbezogenem Rücksprung) gesprochen, da der Konflikt das Rücksprungziel<br />
bestimmt.<br />
Für das nachfolgende Beispiel ist der Baum in Abbildung 12 skizziert. Gegeben<br />
sind folgende Belegung A für die Formel ϕ:<br />
A = {(x 4 =0@3:NIL), (x 6 =0@4:NIL)}<br />
ϕ =(x 1 + x 3 ) · (x 1 + ¬x 3 + x 4 ) · (¬x 1 + x 5 + x 6 ) · (¬x 1 + ¬x 5 )<br />
In der Entscheidungsebene 9 wird der Entscheidungsvariablen x 1 der Wert<br />
0zugewiesen(x 1 =0@9:NIL). Daraus ergebt sich implizit x 3 =1@9:(x 1 + x 3 ).<br />
Das führt in der Klausel ω 2 =(x 1 + ¬x 3 + x 4 ) zum Konflikt. Da die konfliktverursachende<br />
Entscheidung x 1 = 0 auf der aktuellen Entscheidungsebene getroffen<br />
wurde, kann leicht eine alternative Belegung gewählt werden. Mit x 1 =1folgt<br />
x 5 =1@9:(¬x 1 + x 5 + x 6 ), was nun aber in der Klausel ω 4 =(¬x 1 + ¬x 5 )zum<br />
Konflikt führt.<br />
Ein einfacher Backtracking-Algorithmus würde an dieser Stelle auf die Entscheidungsebene<br />
8 zurückspringen und dort nach einigem Suchen auf den gleichen<br />
Fehler treffen. Mit dem nicht-chronologischen Backtracking kann direkt auf<br />
die Entscheidungsebene 4 gesprungen werden, an der x 6 =0gewählt wurde.<br />
Durch die Wahl der Alternative x 6 = 1 kann der gleiche Fehler wie oben nicht<br />
mehr auftreten.<br />
Nicht-chronologisches Backtracking wurde erstmals in GRASP (siehe Abschnitt<br />
B.1) verwendet.<br />
6 Implikationsgraphen für ATPG<br />
Im Nachfolgenden wird dargestellt, wie die von SAT-Problemen bekannten Implikationsgraphen<br />
(Abschnitt 5.1) auf Gatternetze übertragen werden können.<br />
6.1 Motivation<br />
Implikationsgraphen sind eine Ausdrucksmöglichkeit, unterschiedliche Verfahren<br />
zur Konfliktanalyse bei SAT zu beschreiben. Wie in Abschnitt 5.2 vorgestellt,<br />
wird ein SAT-Solver im wesentlichen durch die Art des Schnitts charakterisiert,<br />
die er anwendet, um den Implikationsgraphen zu bipartitionieren.<br />
Um die Mächtigkeit von SAT-Implikationsgraphen für ATPG-Probleme zu<br />
verwenden, muss im naiven Ansatz das Gatternetz erst in eine SAT-Gleichung