Software Engineering für Softwareintensive Systeme Modelchecker „PHAVer“ Eike Rethmeier Polyhedral Hybrid Automaton Verifyer
Train-Gate-Controller Entstehung HyTech => PHAVer Agenda Hybride Automaten Semantische Modelle Transition Systems Timed / Timed Abstract Linearität Train-Gate-Controller Entstehung HyTech => PHAVer Verbesserungen von PHAVer
Modelchecker PHAVer Hytech PHAVer 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 Siehe (2) Erwähnen: Arithmetik = Zahldarstellung
X x ... , X x ... , X ' x , ... 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 1, ... , n X x 1, ... , n X ' x 1 , ... n Siehe (1) X Punkt ist ÄnderungsRATE! X
Ausführung eines HA resultiert in 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). X event : E Übergang klar machen zur nächsten Folie! Jetzt haben wir die Syntax, was fehlt ist eine exakte Semantik
Semantisches Modell / Transition Systems (Unendliche) Zustandsmenge x Für jedes Event definiere Q , Q V n v , x Q inv X : ist wahr Kein x sondern Kreuzprodukt. Was ist mit Zeit? { e E , ' jump X : x ist wahr event v , x σ ' :
Timed Transition / Time-abstract Timed transition system { n f : 0, r diffbar mit 1 f x , r ' r v , x ' : 2 0, r : inv v X f und flow , wahr Time-abstract transition system Keine differenzierbare Funktion Zusätzliche Events lösen Zustandsübergänge aus Zu Epsilon mehr sagen, klar machen, dass nur _Hilfsvariable Erst linken Teil bringen, sagen „Unter welchen Umständen darf ein Übergang stattfinden“ Auch hinschreiben: Wann kann so ein Übergang stattfinden?
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 Literatur (2) Linearität: Beispiel nennen Konvexe Polyeder: erklären was es ist und wozu (Optimierung) Es gibt wege um von nicht-linearen zu linearen Automaten zu kommen.
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 X Kein LHA ! Folie für polyeder Literatur (2) Linearität: Beispiel nennen Konvexe Polyeder: erklären was es ist und wozu (Optimierung) Es gibt wege um von nicht-linearen zu linearen Automaten zu kommen.
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 far near past far
Train Gate Controller
Train Gate Controller – Beispiel 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 (3) Seite 16 Warum ist HyTech beschränkt?
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 Was ist Konvergenz, beschreiben Polyeder = Wertebereich von Zahlen
Normalenvektor des constraints Approximation des Vektors Bit-Begrenzung Normalenvektor des constraints Approximation des Vektors Tangente durch lineare Programmierung Nach Rundung des neuen constraints Bei Bit-Begrenzung werden die Daten ungenauer, daher eine konservative Abschätzung
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 Sagen, dass ich bei 2 was anderes mache als bei 1
Entwickler: Goran Frehse Unregelmäßige Updates Ü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, Henzinger Proceedings 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-Toi Software Tools for Technology Transfer, 1:110--122, 1997 PHAVer: Algorithmic Verification of Hybrid Systems past HyTech, Frehse Proceedings 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 2005 http://wwwhome.cs.utwente.nl/~krilaviciust/publications.htm