Verbesserung der Controller Synthese für szenariobasierte Spezifikationen mit Methoden aus der Künstlichen Intelligenz Zu vergebende Bachelor-/Masterarbeit Keywords 3. Modellbasiertes/szenariobasierte Spezifikation, intelligente Suchverfahren, Java, Eclipse Das Ziel dieser Arbeit ist es, die Controller Synthese mit Hilfe von Algorithmen aus der Künstlichen Intelligenz zu beschleunigen. Ein Ansatz wäre es Alpha-Beta Pruning [3] für die Nutzung in der Controller Synthese anzupassen. Hierfür wäre es nötig nicht nur den Alpha-Beta Pruning Algorithmus selbst anzupassen, sondern auch eine gute Beurteilungsfunktion für Zustände als Bestandteil des Algorithmus zu definieren. Zur Vereinfachung darf diese Funktion auf das untersuchte Fallbeispiel angepasst sein und muss nicht allgemein sein. Des weiteren ist es denkbar Optimierungsmethoden wie Move Ordering einzuführen, um die Synthese zu beschleunigen. Auch andere Verfahren aus der KI, die bei der Recherche entdeckt werden, dürfen auf Tauglichkeit untersucht werden. Für die Bearbeitung der Aufgabenstellung arbeiten Sie sich zunächst in szenariobasierte Spezifikation und in Suchverfahren der Künstlichen Intelligenz ein. Dann erarbeiten Sie einen Lösungsansatz und realisieren diesen in einer prototypischen Software. Ggf. umfasst dies auch die Untersuchung von bereits existierenden Werkzeugen, die wiederverwendet werden können. Der Prototyp sollte schließlich an einem Fallbeispiel evaluiert werden. 1. KONTEXT In immer mehr Bereichen finden wir softwaregesteuerte Systeme, die aus vielen kommunizierenden Komponenten bestehen und kritische Aufgaben erfüllen. Deshalb muss bei der Entwicklung von Anfang an darauf geachtet werden, dass die Systeme ihre Aufgaben korrekt erfüllen. Dies ist eine Herausforderung, da einzelne Funktionen solcher Systeme oft durch das Zusammenspiel mehrerer Komponenten realisiert werden und einzelne Komponenten oft mehrere Funktionen gleichzeitig erfüllen. Wir erforschen daher szenariobasierte Entwurfsmethoden, mit denen Entwickler szenariobasierte Spezifikationen modellieren und simulieren können [1, 2]. Seit einigen Jahren entwickeln wir dazu die Werkzeugumgebung ScenarioTools1 . Diese Werkzeugumgebung erlaubt es intuitive Szenarien zu modellieren, die jeweils kurze Verhaltensabläufe von Objekten beschreiben, insbesondere deren Kommunikation. Das Zusammenspiel dieser Szenarien definiert das Verhalten des Gesamtsystems. Die Szenarien zusammen ergeben so eine formelle Spezifikation. Für solche Spezifikationen ist es möglich automatisiert eine Strategie zu finden, die das Verhalten des Systems in jeder Situation eindeutig beschreibt und sicher stellt, dass kein Szenario verletzt wird. Hierfür ist seine Suche in einem Zustandsraum nötig, welcher mit steigender Anzahl an Szenarien und Objekten sehr schnell sehr groß wird. Diesen Prozess nennt man Controller Synthese. Ein Controller stellt somit eine Implementierung der Spezifikation dar. Diese Implementierung wird derzeit in Form eines Zustandsgraphen ausgegeben. 2. PROBLEMSTELLUNG Wir haben bereits eine Implementierung eines Suchalgorithmus in ScenarioTools, welche es uns erlaubt Controller zu synthetisieren. Dabei besteht jedoch das Problem, dass der zugrundeliegende Zustandsraum im Allgemeinen exponentiell in der Anzahl der Objekte wächst. Diese macht die Suche nach einer Strategie für größere Beispiele äußerst langsam, was die Praxistauglichkeit unseres Ansatzes in Frage stellt. 1 http://scenariotools.org 4. AUFGABENBESCHREIBUNG LITERATURVERZEICHNIS [1] C. Brenner, J. Greenyer, and V. Panzica La Manna. The ScenarioTools Play-Out of Modal Sequence Diagram specifications with environment assumptions. In Proceedings of the 12th International Workshop on Graph Transformation and Visual Modeling Techniques (GT-VMT 2013), volume 58. EASST, 2013. http://goo.gl/m9L6qX. [2] D. Harel and R. Marelly. Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer, 2003. http://www.wisdom.weizmann.ac.il/~playbook/. [3] A. Myers. Cs312 recitation 21 - minimax search and alpha-beta pruning. https://www.cs.cornell.edu/ courses/cs312/2002sp/lectures/rec21.htm. Kontakt Daniel Gritzner Fachgebiet Software Engineering, Leibniz Universität Hannover [email protected]