13.07.2015 Aufrufe

Rethmeier - Universität Paderborn

Rethmeier - Universität Paderborn

Rethmeier - Universität Paderborn

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.

Variablen x 1 und x 2 . Dabei sind in jedem Zustand genau die boolschen Variablen wahr, die in demZustand eingezeichnet sind. Die nicht eingezeichneten sind dann falsch. Im Zustand s0 ist also x 1wahr und x 2 falsch, genau umgekehrt verhält es sich in s1. In s2 müsssen x 1 und x 2 falsch sein, in s3sind beide wahr.Möchte man nun den Übergang von s0 nach s1 beschreiben, so muss man sich die Nachfolgewerteder boolschen Variablen x 1 und x 2 anschauen. In s0 gilt x 1⋅x 2 und in s1 gilt x 1⋅x 2 . Schreibenwir x i ' als Nachfolgewert von x i , so gilt für den Übergang von von s0 nach s1:x 1⋅x 2⋅x 1'⋅x 2' .Ingesamt ergibt sich damit für die Übergangsrelationf := x 1⋅x 2⋅x 1'⋅x 2' x 1⋅x 2⋅x 1'⋅x 2' x 1⋅x 2⋅x 1'⋅x 2' x 1⋅x 2⋅x 1'⋅x 2' .Mit dieser Formel ließe sich nun ein ROBDD aufbauen, doch man erkennt bei diesem Bespielschnell, dass dieser triviale Ansatz eine exponentielle Laufzeit hätte, da man prinzipiell nichtsanderes macht, als eine 16zeilige Wahrheitstafel für f mit den Variablen x 1 , x 2 , x 1 ' und x 2 'darzustellen und man immer wenn f wahr liefert, die entsprechenden Variablen mit in dieFormel nimmt.Im übrigen sind Modelle meist nicht in dieser Form gegeben und somit müssen wir uns eine andereLösung überlegen.3.2 ROBDDs aus system-beschreibenden SpachenEin besserer Ansatz wäre hier, wenn man es schafft ROBDDs direkt aus einer systembeschreibendenSprache wie SMV zu gewinnen.SMV erlaubt es uns, Nachfolgezustände direkt als einen Ausdruck von Momentan-Zuständen zudefinieren. Jeder Nachfolgewert x i ' eines Zustandes x i lässt sich also als eine Bool-Funktion f idefinieren, wobei f i durch die momentanen Werte aller Variablen ausgedrückt wird: x i' ⇔ f i(wobei f ⇔ g=1 genau dann wenn f und g die gleichen Werte berechnen)In den folgenden Abschnitten sehen wir zwei Beispiele, die dieses Vorgehen demonstrieren.3.3 Modellierung synchroner AbläufeBei synchonen Abläufen, die sich vor allem im Hardware-Bereich finden lassen, werden alleZustandsvariablen auf einmal geändert. Als Beispiel soll folgende Schaltung dienen, bei welcher derImpuls für die Zustandsänderung bei beiden Variablen gleichzeitig ankommt:6


Der Wert von x 1 wird also jedesmal wieder negiert, der neue Wert von x 2 errechnet sich durch einexklusiv-oder von seinem alten Wert und dem alten x 1 . Daraus ergibt sich für dieÜbergangsrelation:f := x 1' ⇔ x 1⋅ x 2' ⇔ x 1xor x 2 .Nach dem oben genannten Schema, erhalten wir die folgende allgemeine Übergangsrelation:nf :=∏ x i' ⇔ f i .i=13.4 Modellierung asynchroner AbläufeIm Software-Bereich lassen sich vor allem asynchrone Abläufe finden. Dies bedeutet, dass eineVariable ihren Zustand ändern kann, bei den weiteren allerdings keine Zustandsänderung erfolgt.Hier ein Bespiel mit drei nebenläufigen Prozessen auf einem Ein-Prozessor-Rechner:In jedem Prozess gibt es eine Variable x i , die ihren Zustand ändern kann. Da nur ein Prozessgleichzeitig ausgeführt wird, kann auch nur genau eine Variable ihren Zustand ändern, die anderenbeiden bleiben unverändert.Ändert sich also die Variable x i , während die anderen unverändert bleiben, ergibt sich alsallgemeine Übergangsrelation:f := x i' ⇔ f i ⋅ ∏nj=1, j≠i x j' ⇔ x j .In der ersten Klammer wird der Nachfolger von x i durch eine Funktion von Momentan-Wertenerrechnet, in der zweiten Klammer bleiben die Nachfolger immer gleich ihren Momentan-Werten.Da man allerdings nicht weiß, dass sich genau x i ändert, sondern sich eine beliebige Variable ändernkann, ergibt sich tatsächlich dann folgende Formel:7


nnf := ∑ [ x i' ⇔ f i ⋅ ∏ x j' ⇔ x j ]j=1, j≠ii=1Anmerkung: Wenn man, wie in unserem Beispiel nur exakt eine Zustandsänderung zulässt, handeltes sich um ein interleaving model. Bei beliebig vielen Zustandsänderungen gleichzeitig spricht manvom simultanous model (hier nicht weiter behandelt).4 CTL-Formeln als ROBDDsNachdem im vorherigen Kapitel gezeigt wurde, wie man Zustandsübergänge als Bool-Funktionen inAbhängigkeit von ihren vorherigen Zuständen darstellt und auch aus Kapitel 2 klar ist, wie mansolche Funktionen in ROBDDs überführt, sind wir mit der Überführung des Modells fertig undmüssen uns nun noch um die CTL-Formeln kümmern:Das Ziel ist also, eine beliebige CTL-Formel φ in eine normale boolsche Formel umzuwandeln,damit wir dadurch wieder einen ROBDD gewinnen können. Schreibweise:f CTL−Formel := ...boolsche Formel...? .4.1 Einfache Beispielef xf ∧ := f ⋅ f := x für Variablen xf ┴f ¬:= 0:= f Besteht die CTL-Formel nur aus der Variablen x, so auch die boolsche Formel. Das CTL-Zeichenfür false, ┴ (gesprochen "bottom"), wird zum boolschen false, also 0.Hat man eine CTL-Formel die φ negiert, so wird die für φ gebildete boolsche Formel ebenfallsnegiert. Eine UND-Verknüpfung von zwei CTL-Formeln, führt zu einer UND-Verknüpfung der8


einzelnen boolschen Formeln.Interessant wird die Überführung vor allem bei den speziellen CTL-Operatoren EX, EF, AX, AGetc. Da sich einige Operatoren oft auf andere Operatoren zurückführen lassen, reicht es imfolgenden die Existenz-Operatoren EX, EU und EG zu betrachten.4.2 EX φ als ROBDDEX φ bedeutet, dass mindestens ein Nachfolgezustand existiert, für den φ gilt.Als Formel ergibt sich für EX φ:f EX := ∃v ' . f v , v ' ⋅v ' .Es existiert also ein v' ( ∃v ' ) welches ein Nachfolger von v ist (erfüllt ( v ' ).f v , v ' ) und welches φDa wir als Eingabe f und v bekommen, haben wir somit f v , v ' als ROBDDgegeben und aus v bekommen wir v ' , indem wir in dem ROBDD von v einfachalle Variablen durch gestrichene Variablen ersetzen. Die UND-Verknüpfung beider ROBDDserzeugt man wiederum durch den apply-Algorithmus (siehe auch Beispiel Kapitel 2).Nun fehlt es noch ∃v ' zu betrachten. Der exists-Operator lässt sich durch folgende Formeldefinieren:∃ x.f := f [0/ x] f [1/ x] .Das heisst, dass ein x existiert welches f erfüllt, wenn man in der Formel x durch 0 substituiert und fimmer noch erfüllbar ist oder wenn man in der Formel x durch 1 substituiert und f immer nocherfüllbar ist. Auf ROBDDs bezogen hieße das einfach, dass man im ROBDD das x durch 0 bzw. 1ersetzt.Bespiel eines ROBDD-Auschnitts für [0/x]:Natürlich ist noch zu beachten, dass v' nicht ein einzelner Zustand ist, sondern eine Zustandsmenge.9


Man muss daher die eben genannte Definition nicht einmal, sondern gegebenenfalls mehrmalsanwenden.Insgesamt haben wir also gezeigt, dass man EX φ komplett als ROBDD darstellen kann.4.3 EφUψ als ROBDDEφUψ beduetet, dass φ solange gilt, bis in einem Zustand ψ gilt.Die iterative Beschreibung ist für uns ausreichend und sieht folgendermaßen aus:S i1S 0= = ∧EX S i∨Abbruch bei S i1=S iZu Anfang werden also alle Zustände in denen ψ gilt mit in unsere Zustandsmenge genommen (imunteren Beispiel die blauen). Im nächsten Schritt wird die Menge um die Zustände erweitert, indenen φ gilt und deren Nachfolger schon in unserer Zustandsmenge sind usw. (im Beispielnacheinander die drei rechten roten Zustände):Der iterative Algorithmus bricht ab, wenn sich die Zustandsmenge nicht mehr ändert. In unseremBeispiel wäre dies die Abfrage S 3 = S 4 und wir bekommen als Zustandsmenge die grün umrandetenZustände.Da EX S i , φ und ψ aus dem iterativen Algorithmus schon ROBDDs sind, haben wir somit auchEφUψ als ROBDD gewonnen (die UND- und ODER-Verknüpfungen werden mit Hilfe des apply-Algorithmus realisiert).Wir benötigen noch einen effizienten Vergleich auf Gleichheit von ROBDDs für dieAbbruchbedingung. Diese Vergleichsmöglichkeit gibt es für ROBDDs, in dem man deren Strukturvergleicht und besonders effizient geht dies über Hash-Tabellen.10


4.4 EG φ als ROBDDEG φ beduetet, dass es mindestens einen Pfad gibt, so dass φ entlang des ganzen Pfades gilt.Wiederum ist für uns die iterative Beschreibung ausreichend:S i1S 0= = ∧EX Abbruch bei S i1=S iZuerst werden alle Zustände mit in unsere Menge genommen, die φ erfüllen (im unteren Bespielalle roten Zustände). Im nächsten Schritt bleiben nur die Zustände in der Menge, die auch einenNachfolger aus unserer Menge haben (im unteren Bespiel die grün umkreisten). DieAbbruchbedingung ist die gleiche wie bei EU, wenn es keine Mengenänderung gibt, sind wir fertig.In unserem Bespiel wäre der Vergleich von S 1 =S 2 positiv und die gesuchte Zustandsmenge bleibtbei der grün umrandeten.Da EX φ und φ wieder ROBDDs sind und die UND-Verknüpfung mit Hilfe des apply-Algorithmusgeschieht, können wir somit EG φ als ROBDD darstellen.11


5 ZusammenfassungDas Model Checking Problem, ob ein Modell M eine CTL-Formel φ erfüllt, können wir nunkomplett mit ROBDDs lösen.Wir haben sowohl das Modell M, als auch die CTL-Formel φ in ROBDDs überführt. DerErfüllungs-Operator bedeutet nichts anderes, als dass wir noch testen müssen, ob wir von denStartzuständen zu der Zustandsmenge kommen, in der φ erfüllt ist, doch dies ist ein leichtes.Das Besondere beim Model Checking mit ROBDDs ist, dass ROBDDs ganze Zustandsmengenrepräsentieren, nämlich genau die, die eine bestimmte Formel erfüllen. Daher spricht man vomSymbolischen Model Checking. Da man dadurch eine bessere Datenstruktur zur Verfügung hat, istdas Symbolische Model Checking wesentlich effizienter als das explizite Model Checking aufEinzelzuständen, obwohl teilweise schlechtere Algorithmen verwendet werden (vgl. EG φ, ArbeitDennis Bohlmann).Das Symbolische Model Checking war ein bedeutender Durchbruch für die praktischeAnwendbarkeit des Model Checking. Es gibt zwar immer noch Grenzen, die auch oft noch viel zueng sind um komplexe Modelle zu testen, doch tauchen Probleme wie z.B. das state space explosionproblem erst bei wesentlich größeren Modellen, im Vergleich zum herkömmlichen ModelChecking, auf.6 Literatur und weitere QuellenMichael Huth, Mark Ryan: Logic in Computer Science: Modelling and reasoning about systems,Cambridge University Press, 2000Ekkart Kindler: Course on Model Checking: Symbolic Model Checking (CTL), Materialen zurVorlesung, Universität <strong>Paderborn</strong> WS 04/05Dennis Bohlmann: Temporale Logik und Modelchecking, Seminarvortrag im Rahmen dieserVeranstaltungIlka Scheiding: ROBDDs, Seminarvortrag im Rahmen dieser Veranstaltung12

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!