180 likes | 316 Views
Software Engineering für Softwareintensive Systeme Modelchecker „PHAVer“ Eike Rethmeier. Agenda. Hybride Automaten Semantische Modelle Transition Systems Timed / Timed Abstract Linearität Train-Gate-Controller Entstehung HyTech => PHAVer Verbesserungen von PHAVer. Modelchecker PHAVer.
E N D
Software Engineering für Softwareintensive SystemeModelchecker „PHAVer“Eike Rethmeier
Agenda • Hybride Automaten • Semantische Modelle • Transition Systems • Timed / Timed Abstract • Linearität • Train-Gate-Controller • Entstehung HyTech => PHAVer • Verbesserungen von PHAVer
Modelchecker PHAVer • Hytech • Für Hybride Systeme (diskret + kontinuierlich) • Symbolischer Modelchecker für Lineare Hybride Automaten • Schlüsselfeature: Parametrische Analyse • CTL • PHAVer • Baut auf Hytech auf • Eliminiert die Nachteile von Hytech • Exakte Arithmetik • Konservative Abschätzungen • Partitionierung von state spaces
X X X x ... , x 1, n X x ... , x 1, n X ' x ' , ... , x ' 1 n Hybride Automaten (1) • Thermostat-Beispiel • Graph (V,E) • Variablen • Initial, invariant, flow conditions • init(v), inv(v) weisen Knoten Prädikate zu. Freie Variablen aus X • flow(v) weist Knoten Prädikat zu. Freie Variablen aus
X X event : E Hybride Automaten (2) • Jump conditions • jump(e) weist jeder Kante Prädikat zu. Freie Variablen aus • Events • Endliche Menge Σ an Events. Für jede Kante ein Event. • Ausführung eines HA resultiert in • Kontinuierliche Änderung (flows) • Diskrete Änderung (jumps).
0 Q , Q Q v , x Q inv v X : x ist wahr Q V e E , e ' E ' σ jump e X , X ' : x , x ' ist wahr v , x v ' , x ' : event e Semantisches Modell / Transition Systems • (Unendliche) Zustandsmenge x • Für jedes Event definiere n {
f : 0, r diffbar mit 1 f 0 x , f r x ' r : r v , x v , x ' 2 0, r : 0 inv v X : f und flow v X , X : f , f wahr Timed Transition / Time-abstract • Timed transition system { n • Time-abstract transition system • Keine differenzierbare Funktion • Zusätzliche Events lösen Zustandsübergänge aus
Lineare Hybride Automaten (LHAs) • Linearität • flow(v), inv(c), init(v)... • jump(e)... • ... sind lineare Ungleichungen, Komposition von lin. Ungl. • Resultat: Zustandsmengen sind konvexe Polyeder
X Lineare Hybride Automaten (LHAs) • Linearität • flow(v), inv(c), init(v)... • jump(e)... • ... sind lineare Ungleichungen, Komposition von lin. Ungl. • Resultat: Zustandsmengen sind konvexe Polyeder • flow(v) hat nur Elemente aus • Man kann HAs durch LHAs approximieren Kein LHA !
far far near past Komposition • Komposition zweier Automaten H1, H2 • Mit Joint Events • Synchronsation über ein gemeinsames Event • Bei einem nicht gemeinsamen Event in H1:In H2 vergeht keine Zeit
HyTech => PHAVer • Train Gate Controller – Beispiel • Wie früh muss der Controller von der Zug-Ankunft informiert werden, um Schranke zu senken? • „Safety Properties“ • HyTech ist beschränkt bei komplexeren Problemen • PHAVer • Für komplexere Probleme • Muss Nachteile von HyTech aufheben / verringern. • Berechnet Parameter, mit denen verbotene Zustände nicht erreicht werden
PHAVer, Verbesserungen • Exakte Arithmetik • Begrenzte Zahlen => Overflow errors • Parma Polyhedra Library • Unterstützt beliebig große Zahlen • Leichtere Identifizierung von Konvergenz, Nichtdeterminismus. • Vereinfachung der Polyeder • Bit-Begrenzung • Constraint-Begrenzung • Konservative Verfahren
Bit-Begrenzung Normalenvektor des constraints Approximation des Vektors Tangente durch lineare Programmierung Nach Rundung des neuen constraints
Weitere Verbesserungen • Partitionierung von Locations (Knoten) • Verbesserung der Genauigkeit • Vereinfachung von Zustandsmengen • Begrenzt die Komplexität • Kann Konvergenz beschleunigen • Halten ist normalerweise nicht garantiert • Reduziert das Model, so dass Halten enscheidbar ist • Abwägen (Trade-Off) von • Geschwindigkeit • Halteproblem • Resourcenverbrauch • Verlust von Rechengenauigkeit
Über PHAVer • Entwickler: Goran Frehse • http://www.cs.ru.nl/~goranf/ • Unregelmäßige Updates • Keine weitergehenden Resourcen / Dokumente • Dokumente teils veraltet • Starke Kenntnis des Programms / Theorie selbst nötig • Für Parameteranpassung • Für Ergebnis-Interpretation
Zusammenfassung • Lineare Hybride Automaten • Semantik von LHAs • Vorstellung Train-Gate-Controller • PHAVer als Weiterentwicklung von HyTech
Literatur • The Theory of Hybrid Automata, HenzingerProceedings of the 11th Annual Symposium on Logic in Computer Science, IEEE Computer Society Press, 1996, pp. 278-292 • HyTech: A Model Checker for Hybrid Systems, Henzinger, Ho, Wong-ToiSoftware Tools for Technology Transfer, 1:110--122, 1997 • PHAVer: Algorithmic Verification of Hybrid Systems past HyTech, FrehseProceedings of the Fifth International Workshop on Hybrid Systems: Computation and Control, Lecture Notes in Computer Science 3414, Springer-Verlag, 2005, pp. 258-273 • Bestiarium of Hybrid Systems, Krilavicius, March 2005http://wwwhome.cs.utwente.nl/~krilaviciust/publications.htm