Home

Kapitel 2 Fluide stochastische Petri-Netze

image

Contents

1. Abbildung 2 4 Erzeuger Verbraucher Modell nach dem ersten Feuerungsvorgang Abbildung 2 5 Erzeuger Verbraucher Modell nach dem zweiten Feuerungsvor gang 26 KAPITEL 2 FLUIDE STOCHASTISCHE PETRI NETZE 5 ER 5 Abbildung 2 6 Entwicklung des fluiden Pegels im Erzeuger Verbraucher Modell Im der Abb 2 6 wird eine m gliche Entwicklung des fluiden Pegels in Abh ngig keit von den Schaltzeitpunkten gezeigt die Flussraten beider fluiden Kanten sind konstant und haben als bertragungswert 1 pro Zeiteinheit 2 3 4 Instabiles Verhalten Die Komplexit t der FSPN verursacht mehrere Probleme Zum Beispiel ist es klar dass die Guards vom Typ g n mit 0 lt n lt bn aufgrund der Rundungsfehler mit einer groBen Wahrscheinlichkeit nie erf llt sein werden Ein wesentlich gr Deres Problem ist aber das Entstehen von unendlich vielen oder gen gend vielen um den Speicher zu berlasten Ereignissen d h Zustands berg ngen innerhalb einer endlichen Zeitspanne Ein solches Verhalten macht jede rechnergest tzte Si mulation unm glich Einige Beispiele von solchen instabilen Konstellationen sind in der Abb 2 7 ge zeigt Im ersten Bild von links nach rechts verursacht u eine Zustands nderung 2 4 HIERARCHISCHE UND FARBIGE PETRI NETZE 27 Abbildung 2 7 Beispiele f r instabiles Verhalten von FSPNs sobald u aktiviert wird und umgekehrt was auge
2. 78 Klassendiagram von Simulator GUI 79 Simulator GUI Schnittstellen 82 Hierarchie der Kantenklassen 89 Hierarchie der Stellenklassen 91 Zusammenhang zwischen Transitionen und Pools 93 SimController und die Hilfsklassen 96 Klasse FluidPlace mit Kanten und Guardklassen 97 Hizuf gen einer Kante zu einer Transition 99 Integration u ev le ig sa nat de ao es 101 Feuern einer Transition 102 Meniifenster les 110 Dialogfenster Datei ffnen 111 Netzinformationen 112 Dialogfenster Save As 113 Teeres Editorfenster 2 epe ae E A es 115 Dialogfenster diskrete 120 Dialogfenster Kontinuierliche Stelle 122 Dialogfenster Transition 123 Simulatoroberfl che 126 Simulator Laden einer APNN Datei 127 Simulatoroberfl che Simulationsdatei wurde geladen 128 Simulation beendet Erfolgsmeldung 129 Simulationsergebnisse 130 PG Infofenster s wasa 2 Comm 132 Erzeuger Verbraucher System 138 Beispiel Tankstelle 2 oo oo oo onen 140
3. Hinter dem Symbol place steht zun chst in geschweiften Klammern die ID der Stelle und dahinter wiederum in geschweiften Klammern die Eigenschaften der Stelle Diese Stelle hat z B den Namen placel die Farben color1 und color2 und befindet sich an dem Punkt 176 121 Die Farbe color1 enth lt 0 Tokens und die Stelle color2 10 Tokens 34 KAPITEL 3 APNN TOOLBOX F R HIERARCHISCHE CGSPNS Eine Transition sieht dem sehr hnlich transition a5 name transitionl prio 0 point 356 136 weight case mode of model gt 1 0 guard mode model screen_colours case mode of model gt 0 Wieder steht hinter dem Symbol transition als erstes in geschweiften Klam mern die ID und dahinter sind in geschweiften Klammern die Eigenschaften der Transition aufgelistet Die Transition hat den Namen t ransitionl und befindet sich am Punkt 356 136 Sie hat die Priorit t 0 ist also eine zeitbehaftete Transi tion Die gesamte APNN Datei in dem sich die Stelle placel und die Transition transitionl befinden und durch eine Kante verbunden sind ist im folgenden Zu sehen beginnet al name unnamed_aa place a3 name placel partition unnamed_aa point 176 121 colour with colorl color2 screen_colours 25508 colorl 11731047 color2 init 0 colorl 10 color2 transition a5 name transitionl prio 0 point 356 136 weight case mode of model gt
4. 22 wert AVG 10 8645755300415331 0 6640500961433281 VAR 0 4724225815207639 0 7580349197641484 DEY 0 68732300382791108 0 8706520084190631 OBS 11 14 Abbildung 6 13 Simulationsergebnisse Tranistion s results bietet eine bersicht ber das Verhalten der zeitbehafteten Transitionen in der Form Art der Berechnung Name der Transition 1 Na me der Transition 2 Name der Transition n F r jede f r die Auswertung markierte Transition gibt es hier ein Protokoll ber die durchschnittliche Feuerzeit die Varianz und die Standard Abweichung dieser Transition Parallel dazu wird ein detailiertes Verhalten von beiden Objektypen als separa te csv Dateien gespeichert siehe Abschnitt Separate Ergebnisse Es erm g licht eine bequemere Analyse der Auswertung z B das Erstellen eines Ablauf diagramms mit StarOffice oder Excel Durch Bet tigen des Buttons Clear werden beide Fenster geleert z B f r eine Wiederholung der Simulation Separate Ergebnisse Eine detailierte Beobachtung eines Simulationsablaufes kann in Abh ngigkeit von der Simulationsdauer und der Schrittweite der Auswertung schnell dazu f hren dass die Gr e der Auswertungsdatei in den GigaByte Bereich geht Unter diesen Umst nden kann es schnell zu einem Speicher berlauf mit unangenehmen Folgen f hren Um dieses Problem zu verhindern wird die Auswertung in eine separate 6 3 SIMULATION 131 zip Datei ausgelagert
5. FSPN Simulator informations Abbildung 6 14 PG Infofenster Kapitel 7 Tests und Beispiele 7 1 Tests Zum Abschluss der Projektgruppe wurden umfangreiche Tests f r alle Module des Projekts durchgef hrt Im folgenden wird daher das Was und das Wie also der Umfang der Tests und die Testverfahren beschrieben Die Module die in den Tests betrachtet wurden waren e Der APNN Editor APNNed e Die Simulator GUI e Der Kern des Simulators Innerhalb dieser Module wurde auch die Korrektheit des Grammatikparsers ge pr ft 7 1 1 Die Testverfahren Insgesamt wurden drei Testverfahren angewendet 1 Funktionstests 2 Lasttests und 3 Tests an Beispielen Bei den Funktionstests wurde der komplette Funktionsumfang der Module unter sucht Zum einen wurden naive Tests durchgef hrt d h es wurde untersucht ob das 133 134 KAPITEL 7 TESTS UND BEISPIELE Modul die definierten Funktionen korrekt durchf hrt Zum anderen wurden kriti sche Tests durchgef hrt Diese Tests sollten das Verhalten bei fehlerhafter Hand habung aufzeigen Bei den Lasttests wird das untersuchte Modul explizit unter Last gesetzt d h es werden besonders viele Objekte genutzt oder es werden besonders gro e Netze verwendet Dadurch werden CPU und Speicher extrem unter Last gesetzt Ziel war es die Grenzen und Schwachstellen der Applikation zu erkennen und ggf diese Schwachstellen zu beheben Test an Beispielen bedeutet die Durchf hrung ve
6. er sollten Prozessorleistung Speicher und Festplat tenplatz sein Dabei gilt dass eine h here Prozessorleistung und mehr Speicher den 107 108 KAPITEL 6 BENUTZERHANDBUCH Simulationsablauf verbessern Mehr Festplattenplatz wird dagegen f r die Proto kollierung ben tigt Werden alle Details protokolliert so kann das Ablaufprotokoll auf Gr en im Gigabyte Bereich anwachsen Am Ende der Simulation werden die Protokoll Dateien gepackt ZIP Format Zu diesem Zeitpunkt muss ausreichend Plattenplatz gegeben sein um neben den Log Dateien tempor r zus tzlich die ZIP Dateien aufzunehmen bevor die Log Dateien gel scht werden Hinweis Grunds tzlich sei darauf hingewiesen dass alle Tests unter Linux durchgef hrt wurden Fehler unter dem Betriebssystem Windows k nnen daher nicht ausge schlossen werden Aber durch die Plattformunabh ngigkeit der Programmierspra che Java kann von einer 99 prozentigen Kompatibilit t ausgegangen werden Des halb wurden auch Startskripte f r den Betrieb der Applikation unter Windows an gelegt 6 1 2 Installation Die vollst ndige Applikation wird in einem ZIP Archiv geliefert das beim Lehr stuhl 4 Fachbereich Informatik der Universit t Dortmund zum Download bereit gestellt wird Dieses Paket sollte in einem leeren Verzeichnis entpackt werden Das Archiv enth lt die folgenden Dateien e APNNed jar enth lt den Editor e jep 2 24 Jjar der Java Mathematical Expression Parser von Sing
7. kann ein Name f r diese diskrete Stelle eingege ben werden Der vorgegebene Name daf r ist unnamed Das erste Zeichen des Namens muss ein Buchstabe sein 120 KAPITEL 6 BENUTZERHANDBUCH unnamed 1 iunnamed_aa 922337203685477 A Abbildung 6 6 Dialogfenster diskrete Stelle 6 2 MODELLIERUNG 121 e Im Textfeld Colorname kann ein Name f r eine Stellenfarbe eingegeben werden Der vorgegebene Name daf r ist unnamed Das erste Zeichen des Namens muss ein Buchstabe sein Weiterhin ist es nicht zugelassen dass verschiedene Stellenfarben denselben Namen haben e Im Textfeld Init Tokens kann der Anfangswert der Tokens der Stellenfarbe eingegeben werden Der vorgegebene Wert ist 0 Der Anfangswert darf nicht mehr als 20 1 sein und muss eine positive ganze Zahl oder 0 sein e m Textfeld Actual Tokens kann der aktuelle Wert von Tokens der Stel lenfarbe eingegeben werden Der vorgegebene Wert ist 0 Der aktuelle Wert darf nicht mehr als 20 1 sein und muss eine positive ganze Zahl oder 0 sein e m Textfeld Max Tokens kann eine Obergrenze f r Tokens der Stellenfarbe eingegeben werden Der vorgegebene Wert ist 29 1 Die Obergrenze darf nicht mehr als dieser Wert sein und muss eine positive ganze Zahl oder 0 sein e Bei Screencolor kann eine Farbe f r diese Stelle aus einer Farbtabelle aus gew hlt werden e Wenn der Knopf Add Placecolor geklickt wird wird eine Stelle
8. Cancel Abbildung 6 4 Dialogfenster Save As e Save Wenn dieser Men eintrag gew hlt wird wird die APNN_Datei des aktuelle Netzes mit vorgegebenem Pfad abgespeichert e Save as Wenn dieser Men eintrag gew hlt wird ffnet sich ein Dialogfenster sie he Abb 6 4 In diesem Fenster kann man mit dem Ordnerverzeichnis einen Pfad w hlen Wenn der Knopf OK geklickt wird wird die APNN Datei des aktuellen Netzes in dem ausgew hlten Ordner gespeichert und das Fen ster geschlossen Wenn der Knopf Cancel geklickt wird wird die Speiche rung nicht durchgef hrt aber das Fenster geschlossen 114 KAPITEL 6 BENUTZERHANDBUCH e Export as flat net Wenn dieser Men eintrag gew hlt wird wird ein Netz mit Substnetzen in ein flaches Netz umgewandelt D h alle Subnetze werden in ihr jeweiliges Vater Netz integriert Es gibt dann nur noch ein Netz welches keine Subnetze mehr enth lt e Close Wenn dieser Men eintrag gew hlt wird wird das Editorfenster des aktuellen Netzes geschlossen e Print Wenn dieser Men eintrag gew hlt wird wird das Bild des aktuellen Netzes in eine ps Datei gedruckt e Project Unter diesem Men eintrag wird eine Liste der Pfade der vorher ge ffneten APNN Dateien angezeigt e Ouit Wenn dieser Men eintrag gew hlt wird werden die Men fenster und Edi torfenster geschlossen Men Project Unter diesem Men werden die Namen aller ge ffneten Netze als Men eintr ge angezeigt
9. doInsertContPlace erzeugt und die entsprechende Act ionEvents wur den erweitert Die Klasse MenuWindow In der Klasse wurde ein Menultem miNewSimulator f r FSPN SimulatorGUI eingef gt Dazu wurde eine Methode doF SPNSimulation hinzugef gt Die 64 KAPITEL 5 MODULBESCHREIBUNG se Methode bergibt der Simulator GUI die APNN Datei von einem FSPN und ruft die GUI auf Die Klasse ContPlaceDialog Die Klasse erbt von der Klasse PNDialog In der Klasse gibt es drei Labels und drei TextFields jeweils f r den Anfangswert die Untergrenze und die Obergrenze einer kontinuierlicher Stelle Au erdem noch drei Attribute vom Typ double Dies sind value lowBound und highBound jeweils f r den Anfangs wert die Untergrenze und die Obergrenze einer kontinuierlicher Stelle Die Me thode saveContPlace speichert die drei Eigenschaftswerte einer kontinu ierlicher Stelle Die Methoden i sNumberOK und areAllTextFieldsoK berpr fen die Richtigkeit der Eingaben in allen TextFields Au erdem wurden entsprechende KeyEvents ActionEvents und FocusEvent s hinzugef gt Die Klasse Co1PlaceDialog Die Klasse erbt von der Klasse PNDialog In der Klasse wurden ein TextField tfHighBound und ein Label 1abelHighBound f r die Obergrenze jeder Stellenfarbe einer diskreten Stelle eingef gt Die KeyEvents FocusEvents und Act ionEvents wurden auch entsprechend erweitert In den Methoden keyPressed actionPerformed und focusLost
10. Abstract Petri Net Notation Zur Simulation des Netzes wird der Simulator APNNsim ben tigt der an der Uni versit t Dresden entstanden ist und in Kapitel 3 3 beschrieben wird APNNsim liest die vom APNNed gespeicherte Grammatik Datei wieder ein und simuliert das dar in enthaltene Netz Da die Schnittstelle des Simulators und des Editors nur aus der Grammatik besteht k nnen beide Tools unabh ngig voneinander ver ndert und 31 32 KAPITEL 3 APNN TOOLBOX F R HIERARCHISCHE CGSPNS APNNed unnamed aa File Simulation Project Analysis Graphlayout Abbildung 3 1 APNN Editor Hauptmen weiterentwickelt werden Die verwendete Grammatik wird am Ende dieses Kapi tels beschrieben APNNed und APNNsim sind in Java geschrieben und damit plattformunabh n gig Soweit der entsprechende Java Interpreter vorhanden ist gen gt es f r die Installation die ben tigten Dateien auf die Festplatte zu kopieren Zum Starten des Programms muss die Script Datei APNNed aufgerufen werden Nachdem das Programm gestartet wurde erscheint ein Menu Fenster und das Editor Fenster siehe Abb 3 1 und 3 2 Im Menu Fenster k nnen Dateien ge ffnet und gespeichert werden und neue Dateien angelegt werden Au erdem kann der Simu lator aus dem Menu Fenster gestartet werden Weiterhin gibt es im Menu Fenster einige M glichkeiten ein bereits erstelltes Netz zu analysieren Z B kann unter Simulation Tokengame die Struktur und Funktionali
11. B Baumgarten Petri Netze Grundlagen und Anwendungen Spektrum Akad Verl 1996 145 146 9 10 11 12 13 14 15 16 17 18 LITERATURVERZEICHNIS J L Peterson Petri net theory and the modeling of Systems Prentice Hall 1981 D Abel Petri Netze f r Ingenieure Modellbildung und Analyse diskret gesteuerter Sy steme Springer 1990 E Behrends Introduction to Markov Chains Vieweg Braunschweig 2000 P Bremaud Markov Chains Gibbs Fields Monte Carlo Simulation and Queues Springer New York 1999 R Fehling Hierarchische Petrinetze Ph thesis Universit t Dortmund Verlag Dr Kovac 1991 M Heiner P Deussen J Spranger A case study in developing control software on manufacturing systems with hierarchical Petri nets Workshop Manufacturing and Petri nets within 17th int Conf Application and Theory of Petri nets Osaka Japan 1996 M Heiner P Deussen Proc 3rd Workshop on Diskrete Events Systems Wo DES 96 P Huber K Jensen R M Shapiro Hierarchies in coloured Petri Nets In G Rozenburg editor Advances in Petri Nets LNCS 483 pg 313 341 Springer Berlin 1990 K Jensen Coloured Petri Nets Analysis Methods and practical Use Vol 1 Springer Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest 1992 Dieter Jungnickel Graphen Netzwerke und Algorithmen 3 vollst berarb und erw Aufl Mannheim Leipzig Wien
12. Dazu wird die uniforme Verteilung des Gewichtes einer aktuellen Transition ber die Gewichte aller aktiven Transitionen berechnet Wy TL wy m z aufsummiert ber alle E m z 2 3 3 Analyse und Algorithmus Der Prozessablauf in FSPNs kann auf zwei verschiedene Arten untersucht werden Dabei spricht man von einer mathematischen und zum anderen von einer simula tionsbasierten Analyse Die erste Variante beschreibt einen Weg das gekoppelte System von Differenzialgleichungen 4 welches den zugrunde liegenden stocha stischen Prozesse charakterisiert numerisch zu l sen Diese Vorgehensweise ist nur schwer als Prozess in einem Rechner realisierbar und demzufolge wird sie hier nicht weiter betrachtet Die zweite Alternative basiert auf einer unmittelbaren approximativen Diskretisierung des oben genannten Systems und bietet die M g lichkeit der FSPN zugrunde liegende diskret kontinuierliche Prozesse mit einem rein diskretem Zustandsraum ann hrend zu beschreiben Hier werden wesentliche Schritte eines solchen Algorithmus erkl rt die feinere Spezifikation wird den sp teren Kapiteln berlassen 1 Bestimme die Menge aller zeitlosen Transitionen Er die aktiviert sind 2 3 FLUIDE STOCHASTISCHE PETRI NETZE 23 2 Falls Er Z 0 dann a Finde die zu feuernde zeitlose Transition nach der Formel P M ae siehe Kap 2 2 2 b feuere die in 2a ausgew hlte Transition laut 5 3 Bestimme die Menge aller ze
13. Die Aktionen beim Akti vieren Deaktivieren h ngen vom Typ der Transition ab F r die zeitlosen Transitionen gibt es einen Pool der aktiven Transitionen Wird nun eine zeitlose Transition aktiviert so wird sie in den Pool der aktiven zeitlosen Transitionen aufgenommen Wird sie hingegen deaktiviert so wird sie aus dem 5 4 SIMULATOR KERN 101 initial MarWianners fguardWrapper Transition guardFunction static SimControll r Kim Honor Ee FhiidPlacs LinkedList Transition GuardFunction simContrater SimContraler TimedPcol Immeastercoi PlaceAccumulate whileter 1 1 2 1 checkGuaraquioyvoid transition 4242 mise Se meromangv I D rn ek JE troceado if upparBoundOK fluid lt upperBoundy Zei gt Iowergoung e T placoRce null 7 43 oetinstancet SimController formPreObserversijvoid informPostObservers ivoid 1 32 getintegrationStep kdouble n 1 A gotinstancojSimController T 15 integrationDoned void imtegrationCound integrationFinistled checkltrloolyvoid proceysAndClearPool voill it activeTimediransitions 0 I i i l 1
14. Wenn ein Prozess mit der Resource fertig ist muss er sie wieder freigeben damit andere Prozesse die Resource benutzen k nnen Deswegen kann eine Resource indirekt die Synchronisation von Prozessen bernehmen Au erdem enth lt die Klasse Resource noch einige Stichprobenwerkzeuge um statistische Information zu untersuchen Bin Objekte der Klasse Bin realisieren eine Menge von Token die von Prozessen angefordert werden Da die Menge dieser Token begrenzt ist m ssen die Prozesse auf diese Token warten Bin hat eine Liste von Prozessen welche auf Token warten hnlich wie die Warteliste von Resource kann die Liste von Bin LIFO oder FIFO genutzt werden Condition Objekte der Klasse Condition enthalten eine Variable vom Typ Boo lean und eine Liste von Prozessen der darauf warten dass die Variable auf true wechselt W hrend der Wartezeit sind die Prozesse im SUSPENDED Zustand Stochastische Unterst ztung von SSJ Stochastische Simulation ist die Nachbildung vom Zufall im Computer nach ei nem vorgegebenen stochastischen Modell Dabei wird das Ziel verfolgt Erkennt nisse ber einen realen Zufallsvorgang unter Einsparung von Zeit und Kosten zu gewinnen Zufallszahlen werden ben tigt um zuf llige Ereignisse der Realit t im Modell korrekt nachzubilden Die SSJ Bibliothek enth lt Methoden zur Erzeugung von Zufallszahlen mit Hilfe verschiedenster Wahrscheinlichkeitsverteilungen In nerhalb des SSJ Pakets stehen dem Entwickler
15. Width of confidence interval Transition Mean inter firing time 190663 7732 Minimal inter firing time 43 4590 Maximal inter firing time Aussenwelt a56 black Mean token occupancy 23 2467 0 0237 Variance 41 Abbildung 3 7 APNN Simulator Simulationsergebnisse 42 KAPITEL 3 APNN TOOLBOX F R HIERARCHISCHE CGSPNS Diese Ausgabewerte sind in der Datei tmp APNNedxxxx export_output export_00 slt abgespeichert und die Protokolldatei befindet sich unter tmp APNNedxxxx export_output Typ der Simulation export trc Kapitel 4 Eingeschr nkte fluide stochastische Petri Netze 4 1 Definition der eingeschr nkten FSPN Die allgemeine Definition von Fluiden Stochastischen Petri Netzen ist zu ab strakt und umfangreich um direkt implementiert werden zu k nnen Es sind Ein schr nkungen einiger Konstrukte notwendig gewesen um rechnergest tzte Simu lation von FSPNs zu realisieren Das Ziel war es jedoch bei den Einschr nkungen nicht allzuviel Ausdrucksst rke zu verlieren Es sollten vor allem solche F lle aus geschlossen werden die schwer zu implementieren sind oder die zu instabilen Simulationsvog ngen f hren k nnten Die Einschr nkungen bei den diskreten und kontinuierlichen Stellen beziehen sich auf die Anzahl der Marken bzw auf die Menge des Fluids e diskrete Stellen diese Stellen haben als Standardwert f r die Markenanzahl die untere Grenze 0 Die obere Gr
16. da Module auch einzeln analysiert werden k nnen Hierarchien k nnen grunds tzlich in allen Petri Netz Klassen auf die gleiche Wei se verwendet werden Die Grundidee besteht darin komplexe Subnetze innerhalb 28 KAPITEL 2 FLUIDE STOCHASTISCHE PETRI NETZE Puffer_2 Senke Quelle Puffer 1 Transport Modul 3 Abbildung 2 8 Beispiel f r hierarchische Petri Netze oberste Ebene einer einzigen Subnetz Stelle oder einer Subnetz Transition zu kapseln die dann im Hauptnetz als eine Stelle bzw eine Transition dargestellt wird die allerdings ein besonderes Verhalten je nach interner Struktur zeigt In der Abb 2 8 sieht man die oberste Ebene eines Beispiel Netzes Die durch eine doppelten Rechteck dar gestellte Transition beinhaltet ein Subnetz und verh lt sich nicht wie eine normale Transition sondern so wie es die innere Struktur des Subnetzes vorschreibt Eine besondere Rolle spielen dabei die Stellen die im Hauptnetz mit dieser Transition verbunden sind in diesem Fall sind es die Stellen Puffer und Puffer 2 Solche Stellen fungieren als Ports bei einer Stelle die ein Subnetz enth lt w rden die Transitionen als Ports dienen Um die Rolle von Ports zu verstehen muss man das Subnetz betrachten siehe Abb 2 9 Darin tauchen die beiden Stellen noch ein mal auf die Struktur des Subnetzes muss mit diesen Stellen verbunden sein Auf der Ebene der Subnetze heissen diese Stellen Sockets Die Netze k nnen mehrere Hierarchie E
17. res INTEGER INT REALEXPR like ID REAL MULTISTEXPR like ID MULTISET MSE_REST MSE_REST empty ID MULTISET MULTISET SET SET MULTISET SET INTEGER ID REALEXPR ID COLOURSET like ID ML EXPRESSION BOOLEXPR like ID ML EXPRESSION FUNCTION ID FUNCTION_STRING 51 52KAPITEL 4 EINGESCHRANKTEFLUIDE STOCHASTISCHE PETRI NETZE ID REALEXPR Kapitel 5 Modulbeschreibung 5 1 APNN Editor 5 1 1 Oberf che und Dialoge In diesem Abschnitt werden die Erweiterungen der Oberfl chen und Dialoge des Editors APNNed beschrieben Die Funktionsweise dieser Elemente vor ihren n derungen wurde bereits in Kap 3 beschrieben Der gesamte Editor mit den nde rungen wird vollst ndig im Benutzerhandbuch beschrieben Dialog f r Transitionen In Abb 5 1 ist der erweiterte Eigenschaften Dialog einer Transition zu sehen Die ser Dialog war schon vorhanden wurde aber erweitert Zu den Radiobuttons Age Memory und Enabling Memory ist noch ein Button Resampling hinzugekom men der allerdings nur in einem FSPN ausgew hlt werden kann bzw das Netz als FSPN festlegt Die Liste der Verteilungen wurde erweitert Es gibt jetzt einige Ver teilungen die nur in einem FSPN und einige Verteilungen die nur in einem GSPN ausgew hlt werden k nnen und dementsprechend das Netz auch als FSPN oder GSPN festlegen Die Tabelle in welcher die Kantengewichte f r diskrete Ste
18. rtern Zahlen und Zeichen bestehen Die Klasse parser setzt dann aus diesen Token das komplette Petrinetz zusam men Dies funktioniert nat rlich nur wenn in der eingelesenen Datei die Gramma tik ber cksichtigt wurde Wenn die Datei mit dem Editor gespeichert wurde sollte 60 KAPITEL 5 MODULBESCHREIBUNG das aber der Fall sein In den folgenden Abschnitten werden die Klassen und ihre nderungen nochmal einzeln beschrieben Die Klasse Arc Diese Klasse realisiert diskrete und fluide Kanten Es wurde eine Methode validateFluid hinzugef gt die eigentlich etwas hnliches macht wie die schon vorhandene Me thode validateWeight Wenn ein Projekt geladen wird hat eine Kante als Eigenschaft Gewichte und Flussraten Der Editor verwaltet die Gewichte und Fluss raten aber in den TransitionModes da sie im TransitionDialog vom Benutzer bearbeitet werden k nnen Nach dem ein Netz vollst ndig aus einer APNN Datei geladen wurde werden u a die Methoden ValidateFluid und validateWeight jeder Kante aufgerufen Diese bergeben dann den TransitionModes der mit der Kante verbundenen Transition ihre Flussraten und Gewichte Zu diesem Zweck enth lt die Klasse Arc ein Attribut weight vom Typ Hashtable in dem die Kantengewichte beim Laden gespeichert werden Dieses Attribut war schon vor handen Hinzugef gt wurde das Attribut functions vom Typ Hashtable in dem die Flussraten der Kante beim Laden gespeichert werden Die Methoden C
19. type impulse type fluid FLOWRATE BIND empty bind ID CONT with ID CONT CONT empty cont ID CONT T WEIGHT empty weight REALEXPR T WEIGHTLIST T_WEIGHTLIST CAP empty Ncapacity Mike ID Ncapacity MULTISET COLOUR empty Ncolour like ID Ncolour COLOURSET GUARD empty Nguard BOOLEXPR 50KAPITEL 4 EINGESCHRANKTEFLUIDE STOCHASTISCHE PETRI NETZE Nguard function ID GUARD FUNCTION ID GUARD FUNCTION PORT empty Nporr fin port out Nport io GUARD FUNCTION FUNCTION STRING ID ri FUNCTION STRING PARTITION partition STRING COORDS empty point INTEGER INTEGER COORDS_LIST empty COORDS COORDS_LIST BOUND empty lower_bound REALEXPR Nupper bound REALEXPR ID REALEXPR ID PRIO empty prio INTEGER WEIGHT empty weight MULTISETEXPR FLOWRATE function FUNCTION FUNCTION DISTRIBUTION MEMORY DISTNAME REALEXPR MEMORY REALEXPR DISTNAME dist uniform dist erlang dist normal dist exp Ndist weibull 4 4 ERWEITERTE APNN GRAMMATIK dist binom dist chisq dist geom dist gumbel dist logist dist lognorm dist negbin dist pareto dist poisson dist student dist inv_student MEMORY ena age
20. wobei je nachdem welcher Register aktiv ist Clear unterschiedliche Funktionalit t haben kann Load l dt eine Simulations Datei Datei mit einer apnn Erweiterung hoch Nach Bet tigen dieses Schalters ffnet sich das entsprechende Load Fenster siehe Abb 6 10 Simulate startet die Simulation Stop bricht die laufende Simulation ab Clear stellt die Anfangsparameter zur ck und l scht den Fensterinhalt bei Initia lisierung und Auswertung siehe Registerbeschreibung Exit f hrt zum sofortigen Beenden des Programms Die Standardfunktionen sin cos tan sqrt exp log pow arcsin arccos arctan abs max min Die Beziehungsfunktionen lt gt gt lt 126 KAPITEL 6 BENUTZERHANDBUCH Abbildung 6 9 Simulatoroberfl che 6 3 SIMULATION 127 Open EE Look In Ces sl c cl R is I test10 apnn File Name test10 apnn Files of Type APNN File C apnny v Open H Cancel Abbildung 6 10 Simulator Laden einer APNN Datei 6 3 1 Settings Register Dieses Register bietet die M glichkeit diverse Parameter einer Simulation einzu stellen Nach dem Laden einer APNN Datei werden im Register Settings einige Simulationsparameter automatisch auf bestimmte Werte gesetzt siehe Abb 6 11 PRNG seed legt eine Primzahl f r die Simulation fest Diese Zahl geht als Basis in den Zufallszahlengenerator ein und erzwingt dass man einen und den
21. 1 l 1 1 i 511 1 3 1 stoEndorsim DEADLOCK_REACHED vold Abbildung 5 24 Integration KAPITEL 5 MODULBESCHREIBUNG 102 L pr a Abbildung 5 25 Feuern einer Transition 5 4 SIMULATOR KERN 103 Pool entfernt Die Dinge sind bei den zeitbehafteten Transitionen etwas komplizierter Da auf grund von Restriktionen beim SSJ Scheduling es nur am Ende eines Feuerzeit punktes m glich ist nderungen an der Eventqueue vorzunehmen m ssen alle zeitbehafteten Transitionen in den Pool aufgenommen werden welche sich ge n dert haben Somit wird eine zeitbehaftet Transition immer in den zugeh rigen Pool aufgenommen wenn sie aktiviert deaktiviert wird Sind alle Kanten gefeuert wird berpr ft ob die Transition noch aktiv ist Wenn ja wird der Fluss der fluiden Kanten neu gestartet und der Status der Transition entsprechend gesetzt Dieser Neustart bewirkt dass zeitabh ngige Flussfunktionen den aktuellen Zeitpunkt als Startzeitpunkt bernehmen Ist die Transition nicht ak tiv so wird der Status entsprechend gesetzt Der Fluss der fluiden Kanten muss nicht gestoppt werden da ein fire f r fluide Kanten bedeutet dass der Fluss ge stoppt wi
22. 2 ERWEITERUNG DES APNN EDITORS 45 Dabei soll die Tatsache ber cksichtigt werden dass die Simulationssoftware die Netze aus dem Petri Netz Editor der auch farbige Petri Netze unterst tzt impor tieren k nnen soll Dabei wird die Unterst tzung der Farbeigenschaften nur f r den diskreten Teil des Netzes realisiert d h Farbunterst tzung nur f r den Mar kentransport 4 2 Erweiterung des APNN Editors 4 2 1 Neue Elemente f r kontinuierliche Stellen F r kontinuierliche Stellen wird ein Schaltfl che ContPlace und ein Men punkt ContPlace ins Men Insert ins Editorfenster eingef gt und noch ein Dialog ContPlace erzeugt Mit dem Dialog kann man den Namen die Untergrenze die Obergrenze und den Anfangswert einer kontinuierlichen Stelle eingeben die nach unserer Definition einfarbig ist Mit Hilfe der Schaltfl che oder des Men punktes kann eine kontinuierliche Stelle im Editorfenster erstellt werden In dem Quellcode werden daf r zwei neue Klassen ContPlace und ContPlaceDialog erzeugt 4 2 2 Erweiterung der alten Dialoge Im Dialog f r diskrete Stellen soll man f r jede Farbe eine Obergrenze angeben k nnen Im Dialog f r Transitionen soll man nicht nur f r diskrete sondern auch f r kontinuierliche Kanten die Daten eingeben k nnen F r jede Flusskante kann man f r eine zeitbehaftete Transition die Flussrate oder f r eine zeitlose Transiti on die Impulsfunktion definieren F r jede kontinuier
23. Fenster geschlossen Die Elemente SubstPlace und SubstTransition geben die M glichkeit Netzeteile zu einem Subnetz zusammenzufassen und dieses durch ein Element darzustellen Dabei d rfen mit einem SubstPlace nur Transitionen verbunden sein und mit ei ner SubstTransition nur Stellen Subnetze k nnen erstellt werden indem zusam menh ngende Netzteile markiert werden und dann die Funktion Substitution move down ausgef hrt wird Es kann aber auch zuerst ein SubstPlace oder eine SubstTransition in ein Netz eingef gt werden Durch einfachen Klick auf einen markierten SubstPlace ffnet sich ein neues Editor Fenster in dem die benachbar ten Stellen des SubstPlace schon eingetragen sind Hier kann dann ein Unternetz eingef gt werden SubstTransition funktioniert genauso Durch Substitution show upper wird ein Editor Fenster mit dem n chsten h her gelegenen Netz ge ffnet bzw in den Vordergrund gesetzt Durch Substitution move up wird der SubstPlace oder die SubstTransition durch das entsprechende Teilnetz ersetzt Im Menu Fenster bewirkt File export as Flat Net dass alle SubstPlace und SubstTransition Elemente durch die entsprechenden Teilnetze ersetzt werden Oberhalb der Editierfl che gibt es einen Button mit dem der Extended Mode eingeschaltet werden kann Im Extended Mode wird ber jeder Stelle zu jeder ih rer zugeh rigen Farben die aktuelle Tokenanzahl angezeigt und zwar in der Farbe die als Screencolo
24. Quang Bao Anh 1 7 STRUKTUR DES ENDBERICHTES 11 Burkhardt Frank Dechadanuwong Thinagorn Drustinac Edin Heller Christine Liu Yan Netzel Alex Schwidlinski Christian Usov Andrej 1 7 Struktur des Endberichtes Die Strukturierung des Endberichtes verfolgt den Zweck dem Leser eine detal lierte Einsicht in die Aufgabestellung und Durchf hrung des Projektes zu vermit teln Wie bereits in Kap 1 1 erw hnt bestand das Ziel der Projektgruppe darin ein Simulationswerkzeug f r hybride Systeme mit Hilfe der Modellwelt der flui den stochastischen Petri Netze FSPN auf Basis eines existierenden Programms APNN Toolbox zu entwickeln Deshalb besch ftigen sich die ersten Kapiteln dieses Berichtes damit einen kurzen Einblick in die FSPN Modellwelt und in die M glichkeiten der APNN Toolbox in ihrer urspr nglichen Form zu verschaffen In Kap 2 sollen die Grundbegriffe und Funktionsweise der Modellwelt erl utert werden Dazu wird die Struktur und die Definition von verschiedenen Petri Netz Klassen beschrieben und schrittweise erweitert Das Kapitel beginnt mit der De finition der diskteren Petri Netze die dann zu der Definition der generalisierten stochastischen Petri Netze erweitert wird Danach werden fluide stochastische far bige und hierarchische Petri Netze definiert und beschrieben Die Beschreibungen beinhalten auch die Funktionsweise und Simulationsm glichkeiten Algorithmen der Petri Netz Klassen In Kap 3 finde
25. Werte verwalten Durch die Referenz auf ein Objekt der Auswertungsklasse kann die Auswertung der fluiden Stelle unabh ngig von anderen Events geschehen Sie liefert so zeitnahe und pr zise Werte Die Erfassung der Daten erfolgt somit dezen tral Die Auswertung dagegen wird zusammen mit den diskreten Stellen zentral in der Klasse PlacesEvaluation durchgef hrt Die Logdatei In den drei F llen in denen die diskrete Stelle beobachtet wird Feuern einer belie bigen Transition bzw Sample wird der aktuelle Status aller beobachteter Stellen in die Log Datei geschrieben Mit Hilfe dieser Log Datei ist die Beobachtung des Netzverhaltens in den einzelnen Stellen m glich des weiteren kann die Auswer tung im Anschluss an die Simulation besser nachvollzogen werden Die Status n derung einer fluiden Stelle in jedem Integrationsschritt wird nicht in der Log Datei 5 4 SIMULATOR KERN 105 festgehalten Die bersichtlichkeit w rde sonst verloren gehen Allerdings steht es dem Benutzer frei die Sampling Rate niedriger zu w hlen um so ber die Samp lings die Fl sse beobachten zu k nnen Beobachtung der Transitionen Analog zu den Stellen gibt es auch f r die Transitionen eine zentrale Auswertungs klasse TransitionsEvaluation die eine Hashtable mit allen Auswertungsobjekten TransitionTally besitzt Die Klasse TransitionTally ist ebenfalls auf den Sourcen des SSJ Pakets aufgebaut worden in diesem Falle wurde die SSJ Klasse Tally an gepa
26. Z rich BI Wiss Verl 1994 LITERATURVERZEICHNIS 147 19 20 21 22 23 24 25 26 27 P H Starke Analyse von Petrinetz Modellen Stuttgart Teubner 1990 S Oaks H Wong Java Threads O Reilly 1999 R Koch A Kurth R Simon JAVA DEMOS 2001 Java Demos Spezifikation http www informatik uni essen de SysMod lehre DiskreteSim JavaDoc Package Demos html APNN Toolbox Webseite http www4 cs uni dortmund de APNN TOOLBOX SSJ Webseite http www iro umontreal ca melianil ssj Webseite vom SSJ Erfinder Pierre L Ecuyer http www iro umontreal ca lecuyer ssj Log4J Homepage http Nogging apache org JEP Homepage http www singularsys com jep Hinweis Alle Webseiten wurden das letzte Mal am 07 07 2004 erfolgreich aufge rufen 148 LITERATURVERZEICHNIS Abbildungsverzeichnis 2 1 Das Feuern einer 14 2 2 Feuern einer Transition in einem erweiterten Petri Netz 15 2 3 Modell eines Erzeuger Verbraucher Systems in der Startmarkierung 24 2 4 Erzeuger Verbraucher Modell nach dem ersten Feuerungsvorgang 25 2 5 Erzeuger Verbraucher Modell nach dem zweiten Feuerungsvorgang 25 2 6 Entwicklung des fluiden Pegels im Erzeuger Verbraucher Modell 26 2 7 Beispiele f r instabiles Verhalten von FSPNs 27 2 8 Beispiel f r hierarchische Petri Netze oberste Ebene 28 2 9 Beispiel f r hierarchische Petri Netze S
27. aktivieren deaktivieren Deswegen ist es notwendig dass die Pools mit den Transitionen berpr ft werden wenn alle Stellen mit der Integration fertig sind Um dies zu synchronisieren wei der SimController wie viele Stellen in tegrieren Wenn eine Stelle mit ihrer afterEachStep Methode fertig ist so ruft sie die Methode integrationDone beim SimController auf Abb 5 24 Aufruf 1 5 In dieser Methode wird geschaut wie viele Stellen schon diese Methode aufgerufen haben und ob alle fertig sind integrationCount integrationFinished Wenn dies der Fall ist werde die Pool abgearbeitet sofern eine Transition sich w hrend des letzten Integrationsschritts ge ndert hat Feuern Wer die Methode fire einer Transition aufruft h ngt davon ab von welchem Typ die Transition ist Bei zeitlosen Transitionen ImmediateTransition wird diese Me thode durch den Pool der zeitlosen Transitionen aufgerufen Zeitbehaftete Transi tionen TimedTransition rufen die Methode aus ihrer actions Methode auf Beim Aufruf der Methode fire wird zun chst die aktuelle Markierung festgehal ten Abb 5 25 Aufruf 1 2 writePlaceState Dann werden zun chst die eingehen den Kanten gefeuert Abb 5 25 Aufruf 1 3 bis 1 4 3 Wie schon erw hnt un terscheidet die Transition dabei nicht zwischen den Subklassen von Arc Sie ruft einfach nur die Methode fire auf welche in Arc spezifiziert ist Das Feuern von Kanten kann Transitionen aktivieren bzw deaktivieren
28. ausgewertet Auch hier werden die Einzelwerte Stichprobenwerte nicht gespeichert Mit der Klasse Tally k n nen Beobachtungen Xi gespeichert und deren Mittelwert und Standardab weichung berechnet werden Das von Tally abgeleitete Histogramm dient der einfachen grafischen Darstellung der Ergebnisse Accumulate Eine Unterklasse von StatProbe Die Klasse Accumulate ist vergleich bar mit der Klasse Tally allerdings wird f r jede Beobachtung nachgehalten wie lange sie g ltig gewesen ist Die Klasse Accumulate erm glicht auf der Grundlage eines Zeitintegrals Ermittlung zeitgewichteter Summen die Be stimmung von Mittelwert und Standardabweichung List Die Klasse List kann jedes Objekt enthalten Sie besitzt ein Objekt der Klasse Tally um die Gr e der Liste zu untersuchen und ein Objekt der Klasse Ac cumulate um die Verweilzeit der Objekte in der Liste zu untersuchen Die List ist als doppelt verkettete Liste implementiert Die verf gbaren Metho den sind Objekte in die Liste einf gen entfernen usw 5 4 SIMULATOR KERN 87 JEP Java Expression Parser F r die Umsetzung von Flussfunkionen und Guardfunktionen die auf mathemati schen Funktionen basieren mu ein Parser eingesetzt werden um die vom Benut zer eingegebenen Funktionen zu interpretieren Dazu wird der bereits im vorange gangenen Kapitel beschriebene JEP 27 genutzt Log4J F r die Ausgabe von Debugmeldungen und Auswertungen wurde entschieden auf die Log Bibl
29. des Observer Patterns welches f r die berwachung der Grenzen genutzt wird Die Stellen rufen bei Ver nderungen die Methode update mit dem jeweiligen Status der Grenze auf Dies teilt der Transiti on mit dass eine Bedingung f r sie erf llt oder nicht erf llt ist Grunds tzlich ist es f r die Transition irrelevant welche Bedingungen erf llt sind und welche nicht Wichtig ist nur dass alle Bedingungen erf llt sein m ssen damit eine Transiti on feuern kann Deshalb wird der Transition beim Aufbau des Netzes mitgeteilt 5 4 SIMULATOR KERN interface Place tattachPreObserver void tdetachPreObserver void tattachPostObserver void tdetachPostObserver void t informPreObservers void tinformPostObservers voh taddCardinalityGuard void taddGuard void Continuous FluidPlace placelD String FluidPlace oString String fluid double 91 DiscretePlace nlarelN Strina DiscretePlace rhanneTnkens wnid tnken Inna Abbildung 5 19 Hierarchie der Stellenklassen 92 KAPITEL 5 MODULBESCHREIBUNG wieviele Bedingungen erf llt sein m ssen festgehalten im Attribut noOfCondi tions W hrend der Simulation wird nun ber die Methoden update decrement increment verfolgt wieviele Bedingungen momentan erf llt sind festgehalten im Attribut fullfilledConditions Die Methoden incrementNumOfConditions sowie addArc werden nur f r die In itialisierung ben tigt incrementNumOfConditions erh ht den Z hler der
30. diesem Textfeld kann das Gewicht einer zeitlosen Transition eingegeben werden Von den drei Kn pfen Enabling memory Age memory und Resamp ling kann nur einer ausgew hlt werden In der I Tabelle kann man zu jedem Transitionsmode das Kantengewicht und die Guardfunktion zu jeder mit der Transition verbundenen diskreten Stellenfarbe und die Flussrate und die Guardfunktion zu jeder mit der Transi tion verbundenen kontinuierlichen Stelle eingeben F r Kantengewichte darf nur eine ganze Zahl eingegeben werden F r Flussraten darf eine reele Zahl 6 3 SIMULATION 125 oder eine Standardfunktion eingegeben werden F r Guardfunktionen darf nur eine Beziehungsfunktion2 eingegeben werden e Wenn der Knopf OK geklickt wird wird das Dialogfenster geschlossen und alle im Dialogfenster ausgef llten Daten gespeichert e Wenn der Knopf Cancel geklickt wird wird das Dialogfenster geschlossen und alle im Dialogfenster ausgef llten Daten verworfen 6 2 6 Dialog f r Substelle und Subtransition Im Dialogfenster f r diese beiden Elemente kann man lediglich den Namen eintra gen Die eigentlichen Eigenschaften h ngen von der Struktur des entspr Subnet zes ab 6 3 Simulation Nach dem Starten des Simulators erscheint auf dem Bildschirm das Benutzerinter face siehe Abb 6 9 das folgende Schalter Buttons und Register beinhaltet Register Settings Results Schalter Load Simulate Stop Clear Exit
31. eintrag hat die gleiche Funktion wie der Knopf Cut e Copy Dieser Men eintrag hat die gleiche Funktion wie der Knopf Copy e Paste Dieser Men eintrag hat die gleiche Funktion wie der Knopf Paste 118 KAPITEL 6 BENUTZERHANDBUCH e Delete Wenn dieser Men eintrag gew hlt wird wird ein ausgew hltes Element aus dem Editorfenster entfernt e Properties Dieser Men eintrag hat die gleiche Funktion wie der Knopf Properties e Points Es gibt noch zwei Men eintr ge unter diesem Untermen Das erste ist Jn sert Wenn dieser Men eintrag gew hlt wird werden die Startpunkte und die Endpunkte aller Kanten als kleine blaue Quadrate angezeigt Das zwei te ist Delete Wenn dieser Men eintrag gew hlt wird werden die blauen Quadrate der Startpunkte und der Endpunkte aller Kanten gel scht Men View e Select Dieser Men eintrag hat die gleiche Funktion wie der Knopf Select e Grid Dieser Men eintrag hat die gleiche Funktion wie der Knopf Grid Men Substitution e show upper Dieser Men eintrag ist f r Substnetze Wenn dieser Men eintrag gew hlt wird wird das Editorfenster des n chsth heren Netzes angezeigt e move down Wenn ein Teilnetz aus dem aktuellen Netz ausgew hlt wird und danach die ser Men eintrag gew hlt wird wird ein Substnetz erzeugt e move up Dieser Men eintrag ist f r Substnetze Wenn dieser Men eintrag gew hlt wird wird ein ausgew hltes Substnetz in d
32. entsprechenden Panel geschrieben und der Simulator wird zur ckgesetzt SimProgress Diese Klasse ist eine abgeleitete Klasse von JProgressBar und implementiert auch die Methoden des Runnable Interface Sie dient dazu den Fortschritt der Simulation anzuzeigen Ein Objekt dieser Klasse wird beim Starten der Simulator GUI erzeugt und von SimController aus den Fortschrittstatus aktualisiert Die Aktualisierung der Fortschrittanzeige erfolgt durch die updateProgressValue Methode wobei die statische Methode SwingUtilities invokeAndWait f r die eigentliche Aktualisierung benutzt wird Der aktuelle Wert der angezeigt wird ist der h chste Prozentsatz von allen drei Abbruchkriterien Am Ende der Simulation wird dieses Objekt auf 0 zur ckgesetzt und eine Nachricht an die Simulator GUI geschickt dass die Simulation zu Ende ist SimProgressListener Diese Klasse dient der Kommunikation zwischen dem Simulationskern und der Simulator GUI Ein Objekt dieser Klasse wird beim Starten der Simulator GUI er zeugt und an eine SimController Instanz weitergeleitet Es gibt zwei public Methoden in diese Klasse e notifyProgress diese Methode wird aufgerufen um die aktuellen Wer te des Simulationsprogress an das SimProgress Objekt weiterzuleiten Die Parameter die an diese Methode bergeben werden m ssen sind die bisher verbrauchte CPU Zeit die aktuelle Simulationszeit und die Anzahl der bisher beobachteten Events Der Wert f r die nicht ausge
33. lung enthalten die nur im FSPN erlaubt ist Ebenfalls sorgt sie daf r das in dem neuen Attribut gspnDistr vom Typ Vector genau die ID s gespeichert sind die eine Einstellung enthalten die nur im GSPN erlaubt ist Die neue Methode hasFSPNDistr gibt true zur ck wenn der Vector fspnDistr mindestens ein Element enth lt Die neue Methode hasGSPNDistr gibt true zur ck wenn der Vector gspnDistr mindestens ein Element enth lt Somit wird die Unter scheidung ob ein Projekt ein GSPN oder ein FSPN ist erleichtert Das ist in sofern wichtig als das bei einer Festlegung des Projekts auf ein GSPN oder auf ein FSPN die Inaktivierung einiger Einstellm glichkeiten vorgenommen wird Die Klasse Net Zu jedem Teilnetz gibt es ein Objekt vom Typ Net In dieser Klasse wurden keine nderungen vorgenommen Die Klasse PNNode Es wurden nur einige Konstruktoren f r kontinuierliche Stellen hinzugef gt Die Klasse PNObject Es wurden nur einige Konstruktoren f r kontinuierliche Stellen hinzugef gt Es folgt nun die Beschreibung einiger Klassen die nicht im Klassendiagramm auf gef hrt sind da die Darstellung dieser Klassen in einem Klassendiagramm nicht zu bersicht beitragen w rde Die Klasse EditWindow In dieser Klasse wurden ein ImageToggleButton ButContPlace und ein Me nultem niInsertContPlace eingef gt Damit kann eine kontinuierliche Stel le ausgew hlt und in ein Editfenster angezeigt werden Daf r wurde eine Methode
34. ten des alten Editors au er Inhibitor Arc und Fusion auch f r FSPN anwendbar sein Im Men fenster funktionieren weiterhin die Funk tionen New Open Save Save as Info Export as flat net Close Quit Project und FSPN Simulator 4 2 4 Vermeidung der Konflikte zwischen FSPN und GSPN Wenn man FSPN nutzen m chte und eine kontinuierliche Stelle ins Editfenster ei nes Netzes bzw eines Subnetzes einf gt werden die Schaltfl chen Inhibitor und die Men punkte Inhibitor Tokengame GSPN Simulator in allen Fenstern deaktiviert Ausserdem wird die nur f r GSPN g ltige Verteilungsfunktion trian in allen Transitionsdialogen deaktiviert Falls man alle kontinuierliche Stellen in allen Fenstern l scht werden die Schaltfl chen Inhibitor und die Men punkte Inhibitor Tokengame GSPN Simulator in allen Fenstern wieder aktiviert und die Verteilungsfunktion trian ist in allen Transitonsdialogen wieder verf g bar 4 2 5 Fazit Der neue Editor erh lt problemlos alle Funktionalit ten des alten Editors f r GSPN und realisiert gleichzeitig die Funktionalit ten f r FSPNs Deshalb kann er sowohl f r GSPN als auch f r FSPN Modelle verwendet werden 4 3 SIMULATOR 47 4 3 Simulator Um fluide stochastische Petri Netze FSPN simulieren zu k nnen sollte der alte Simulator erweitert werden In dieser PG wurde entsch
35. wichtig um am Ende einer Feuerzeit die notwendigen nderun gen vornehmen zu k nnen Wenn eine Transition t feuert so kann t h chstens Transitionen ver ndern welche eine Distanz von zwei zu t haben also durch eine Kante eine Stelle und wieder eine Kante mit t verbunden sind Diese Transitionen werden in Pools gesammelt damit nach dem Feuern von t diese nderungen abgearbeitet werden k nnen Ins gesammt gibt es zwei Pools ImmediatePool Pool von aktiven zeitlosen Transitionen TimedPool Pool von m glicherweise ver nderten zeitbehafteten Transition 5 4 SIMULATOR KERN 93 TimedPool ImmediatePool artiveTimenTransitinns Veri fren Hl ists TreeMan interface Transition mmediatePool arlaTransitinnwnir TimedPool addTransitinn wnid eamoty hanlean allFlements TreeMan increment void t decrement void tupdate void taddArc void fire void incrementNumOfConditions vok L Event TimedTransition ImmediateTransition fullfilledConditions int traneitinn M String lmmediateTransition increment void TimedTransition artinnewunid ID Strine priority int Abbildung 5 20 Zusammenhang zwischen Transitionen und Pools Beide Pools sind im SimController abgelegt Dabei enth lt der ImmediatePool nur die aktiven zeitlosen Transitionen w hrend der TimedPool alle Transitionen ent h lt deren Status sich irgendwie w hrend des F
36. 1 0 guard mode model screen_colours case mode of model gt 0 3 2 APNN EDITOR 35 arc a7 from a3 to a5 weight case mode of model gt 5 colorl 1 color2 endnet Auch die Kante hat die Form dass hinter dem Symbol arc zun chst in ge schweiften Klammern die ID steht und dahinter in geschweiften Klammern die Eigenschaften aufgelistet sind Eine Eigenschaft der Kante ist ihre Richtung die sich aus ihrem Startelement und ihrem Endelement ergibt In diesem Fall f hrt die Kante vom Element mit der ID a3 zu dem Element mit der ID a5 Also von der Stelle zur Transition Die Kante hat zwei Gewichte 5 und 2 Das kommt daher dass die zugeh rige Stelle zwei Farben hat Es ist zu dem Gewicht 5 die Farbe colorl angegeben und zu dem Gewicht 1 die Farbe color2 Auch f r das gesamte Netz gilt dass als erstes in geschweiften Klammern die ID angegeben ist und dahinter in geschweiften Klammern die Eigenschaften aufgeli stet sind Die Eigenschaften sind in dem Fall einmal der Name hier unnamed_aa und alle Elemente die das Netz enth lt Das hei t es werden nacheinander alle Stellen Transitionen und Kanten aufgelistet 3 0 APNN Editor Der Editor APNNed enth lt zun chst eine Editierfl che auf der das Netz erstellt werden kann siehe Abb 3 3 Links neben der Editierfl che befinden sich But tons mit denen Stellen Transitionen und Kanten eingef gt werden k nnen Die M glichkeit diese Elemente einzuf
37. 133 134 135 136 136 137 139 143 INHALTSVERZEICHNIS Kapitel 1 Einleitung 1 1 Thema der Projektgruppe Das Thema dieser Projektgruppe lautete Simulation diskreter und kontinuierlicher Prozesse in Java Simulation ist eine breit angewendete Methodik die in vielen Bereichen zur Be wertung von dynamischen Systemen eingesetzt wird Als Beispiele seien Simu lationen von kologischen und konomischen Systemen wie in der klassischen Studie des Club of Rome zu den Grenzen des Wachstums ebenso genannt wie die Simulation von Werkstoffen chemischen und physikalischen Prozessen bis zur Simulation eines Containerterminals im Hamburger Hafen Mit der Vielzahl von Anwendungen geht auch eine Vielzahl an Werkzeugen einher Die grundlegenden Konzepte der Simulation sind dagegen jedoch relativ einfach und von geringe rem Umfang Ein Grundprinzip der Simulation ist das Imitieren des dynamischen Verhaltens eines realen oder gedachten Systems durch ein Softwareprogramm Die Berechnung Abarbeitung des Programms erzeugt Daten die einer Beobach tung des realen Verhaltens entsprechen Diese Daten k nnen zu unterschiedlichen Zwecken aufbereitet werden In der Simulation werden im wesentlichen zwei Varianten aufgrund ihrer unter schiedlichen mathematischen Behandlung unterschieden Dies ist zum einen die kontinuierliche Simulation bei der der Zustand eines Systems ber eine Anzahl kontinuierlicher Variablen bestimmt wird und bei der Ver nder
38. 77 5 3 3 Schnittstellen und Ablauf einer Simulation 81 5 4 Simulator Kern 83 5 4 1 Verwendete Tools berblick 83 5 4 2 Die Klassen im Simulator 87 5 4 3 Aspekte des Simulationsalgorithmus 95 SAA A swert ng 4 ec a do a Dass 103 6 Benutzerhandbuch 107 6 1 Installation und Start 107 6 1 1 Mindestanforderungen 107 6 1 2 Installation 22 tf ala ped rb Ar e s 108 6 4 3 Programmstart _ 109 6 2 Modellierung s una sopa Rx 109 6 2 1 Men fenster een 110 6 2 2 Edit rtenster 2 cR ea eU ta 115 INHALTSVERZEICHNIS 623 Dialog f r diskrete Stellen 6 2 4 Dialog f r kontinuierliche Stellen 62 5 Dialog f r Transitionen 6 2 6 Dialog f r Substelle und Subtransition 6 3 Simulation 6 3 1 Set ngs Register 6 3 2 Results Register 7 Tests und Beispiele 71 Test 7 1 1 Die Testverfahren 2 2222 2 on 7 1 2 Tests im Modul APNNed 2 2 2 22 222 200 7 1 3 Tests im Modul Simulator GUI 7 1 4 Tests im Modul Simulator Kern 7 1 5 Testresultate 7 2 Beispiel Erzeuger Verbraucher System 7 3 Beispiel Tankstelle 8 Res mee 119 121 123 125 125 127 129 133 133
39. Abbildung 3 5 APNN Editor Transitionseigenschaften In dem Textfeld rechts neben Placename kann der Name der Stelle eingetra gen werden Durch die Buttons mit der Aufschrift Add Placecolor und Delete Placecolor k nnen Farben hinzugef gt und gel scht werden Die Namen der ein zelnen Farben die in dem Textfeld rechts neben Colorname eingetragen werden k nnen sind in der Textfl che mit der berschrift Choose Placecolor aufgelistet Durch einfachen Mausklick auf einen Farbnamen wird dieser markiert Rechts ne ben der Textfl che k nnen dann die zugeh rigen Parameter der markierten Farbe eingetragen werden Dabei ist Init Tokens die Anzahl Tokens die sich zu Beginn der Simulation in der Farbe der Stelle befinden sollen Actual Tokens ist die ak tuelle Anzahl der Tokens die sich in der Farbe befinden Mit Screencolor kann jeder Farbe eine Bildschirmfarbe zugeordnet werden Nachdem alle Einstellun gen vorgenommen wurden k nnen sie mit dem OK Button gespeichert und mit dem Cancel Button verworfen werden In beiden F llen wird das Eigenschaften Fenster geschlossen In der Abb 3 5 sieht man den Eigenschaftsdialog einer Transition In dem Text feld rechts neben Name kann der Name der Transition eingetragen werden und in dem Textfeld rechts neben Priority die Priorit t Als Priorit t sind nur nat rliche Zahlen erlaubt Da nur zeitlose Transitionen eine Priorit t haben wird durch diese 38 KAPITEL 3 APNN TOO
40. ENDBERICHT Simulation diskreter und kontinuierlicher Prozesse in Java PG 435 Teilnehmer Baran Bezgin Quang Bao Anh Bui Frank Burkhardt Thinagorn Dechadanuwong Edin Drustinac Christine Heller Yan liu Alex Netzel Christian Schwidlinski Andrej Usov Betreuer Prof Dr Peter Buchholz Dr Falko Bause Dipl Inform Carsten Tepper Lehrstuhl f r praktische Informatik Fachbereich Informatik der Universit t Dortmund WS2003 2004 SS2004 Inhaltsverzeichnis 1 Einleitung 1 1 Thema der Projektgruppe 1 2 ern Get teen 1 3 Aufeaberder PG u ae ern SQ A 1 4 Projektdurchf rung 1 5 t Veranstalter 2 22 umane donde RE AER E s a 1 6 lt Teilnehfier uay hua yayay een Ba eee 1 7 Struktur des Endberichtes e 2 Fluide stochastische Petri Netze 2 1 2 1 1 Definition und Arbeitsweise 2 1 2 Analyse von Petri Netzen 2 2 Stochastische 2 2 1 Einfache stochastische Petri Netze 2 2 2 Generalisierte stochastische Petri Netze 2 3 Fluide Stochas sche Petri Netze 2 3 1 Formalismus s 2 3 27 e E EE 2 3 3 Analyse und Algorithmus 23 4 Instabiles 2 4 Hierarchische und farbige Petri Netze 3 A
41. ITEL 5 MODULBESCHREIBUNG Stichproben OBS f r das Ergebnis erfasst wurden Die Vorgehensweise f r diskrete und kontinuierliche Stellen wird vom Simulator unterschiedlich gehandhabt Diskrete Stellen Die Daten der diskreten Stellen werden zentral in der Klasse PlacesEvaluation ver waltet Diese Klasse enth lt eine Hashtable die jeder beobachteten diskreten Stelle eine PlaceAccumulate zuordnet Die Klasse PlaceAccumulate ist vergleichbar mit der Klasse Accumulate des SSJ Pakets Die Erfassung und Auswertung der Daten ber die Zeit mit Hilfe der Accumulate war nicht m glich so dass auf eine Eigen entwicklung auf Basis der Sourcen der SSJ Klasse zur ckgegriffen werden muss te Die Stichproben f r die diskreten Stellen werden beim Feuern der zeitlosen und zeitbehafteten Transitionen erfasst Zus tzlich wird bei den regelm igen Samples der Simulation der Status der Stellen protokolliert Die Erfassung erfolgt zentral ber die Klasse PlacesEvaluation dort werden die Daten am Ende der Simulation auch ausgewertet Fluide Stellen Auch hier wird die Klasse PlaceAccumulate genutzt Die fluiden Stellen sind eben falls in der Hashtable zu finden Der Unterschied liegt darin dass die fluiden Stellen eine eigene Referenz auf ein Objekt der Klasse PlaceAccumulate bekommen Da w hrend der Integrationsphase keine Transition feuert und keine Stichprobe Sam ple ermittelt wird muss die fluide Stelle von sich aus die Protokollierung ihrer
42. Interface Guards hinzugef gt werden addGuard und addCardinality Guard Diese Guards werden bei Zustands nderungen der Stelle Fluid bzw Tokens berpr ft Des weiteren beinhaltet das Interface Methoden um Obser ver zur Stelle hinzu zuf gen addPreObserver addPostObserver detachPreObser ver detachPostObserver Es gibt zwei Observer Zum einen die Observer aus dem Vorbereich der Stelle Zum anderen die Observer aus dem Nachbereich der Stelle Je nach dem welche Grenze verletzt bzw wieder hergestellt wurde werden die entsprechenden Observer informiert Die Klassen FluidPlace und DiscretePlace implementieren neben dem Interface die spezifische Funktionalit t f r eine fluide bzw diskrete Stelle 5 4 SIMULATOR KERN 89 arclD String Arc toString String fire void directedToPlace boolear ID String idTo String idFrom String place Place FluidArc DiscreteArc flawF inctinn FInwFiinctinn FluidArc rnpulseArc DiscreteArc remnveFiinctinnFramPlare void ireArc void ireArc void fluidPlaceFluidPlare fluidPlace FluidPlace discretePlace DiscretePlact Abbildung 5 18 Hierarchie der Kantenklassen 90 KAPITEL 5 MODULBESCHREIBUNG Die Klasse DiscretePlace stellt eine diskrete Stelle dar Sie ist ein passives Ob jekt d h sie reagiert nur auf Nachrichten von aussen Die wichtigste Methode ist changeTokens mit ihr k nnen die Marken der Stelle ver ndert werden Wenn diese Methode auf
43. LATOR KERN 95 Methode setOutputProgress ein Progresslistener bergeben werden ber diesen wird dann der aktuelle Fortschritt mitgeteilt Die zweite Aufgabe welche der Controller hat ist die Simulationssteuerung Der Kontroller dient der Synchronisierung der Integration des weiteren berwacht er den Fortschritt der Simulation und beendet sie wenn eins der Abbruchkriterien er f llt ist Immer wenn ein Integrationsschritt aller fluiden Stellen beendet ist f hrt der Kontroller eine Transitionspool berpr fung durch Sollten sich durch einen Integrationsschritt Anderungen am Zustand einer oder mehrere Transitionen erge ben haben so werden diese nderungen nun abgearbeitet Im n chsten Unterkapi tel wird dies genauer dargestellt Die Datenhaltung bezieht sich auf die dem Kontroller bergebenen Objekte und Parameter Dar ber hinaus speichert der SimController die Startzeit der Simulati on und die aufgetretenen Events Beides wird ben tigt um die Abbruchkriterien auswerten zu k nnen Guards und Fl sse Guards werden durch die Klasse GuardFunction dargestellt Fl sse werden durch die Klasse FlowFunction rerp sentiert Beides sind Funktionen welche Argumen te bekommen und im Gegenzug einen aktuellen Wert liefern Flussfunktionen werden in den fluiden Stellen genutzt um die Ver nderungsrate zu bestimmen Nur fluide Stellen sind in der Lage eine Flussfunktion aufzuneh men Die Guardfunktionen werden genutzt um festzustelle
44. LBOX F R HIERARCHISCHE CGSPNS Angabe die Art der Transition festgelegt Falls die Priorit t gleich Null ist han delt es sich um eine zeitbehaftete Transition andernfalls ist die Transition zeitlos Durch die Buttons mit der Aufschrift Add Mode und Remove Mode k nnen Modi hinzugef gt und entfernt werden In der Tabelle mit der berschrift J I Table k nnen die Gewichte der Kanten eingetragen werden Es gibt hier f r je de Farbe jeder benachbarten Stelle der Transition eine Zeile in der Tabelle Die Zeilenk pfe sind dabei mit den Namen der zugeh rigen Stelle und Farbe mar kiert F r jeden Modus der Transition enth lt die Tabelle eine Spalte Die Spal tenk pfe sind Buttons und haben als Aufschrift den zugeh rigen Modus Namen der im Textfeld rechts neben Mode Name eingetragen werden kann Wenn ein Spaltenkopf Button angeklickt wurde dann k nnen an dem zugeh rigen Modus einige Einstellungen vorgenommen werden Falls die Transition zeitlos ist gibt es nur ein Textfeld in dem das Gewicht angegeben werden kann Falls sie zeitbehaf tet ist gibt es die M glichkeit eine Verteilung auszuw hlen und die zugeh rigen Parameter anzugeben Au erdem kann noch entweder Enabling memory oder Age memory mit Hilfe von Radio Buttons eingestellt werden Nachdem alle Ein stellungen vorgenommen wurden k nnen sie mit dem OK Button gespeichert und mit dem Cancel Button wieder verworfen werden In beiden F llen wird das Eigenschaften
45. Men Analysis Unter diesem Men gibt es ein Untermen Simulator Und unter diesem Unter men gibt es die beiden Men eintr ge FSPN Simulator und GSPN Simulator Wenn der Men eintrag FSPN Simualtor gew hlt wird ffnet sich das FSPN Simulatorfenster Falls der Men eintrag GSPN Simulator gew hlt wird ffnet sich das GSPN Simulatorfenster Men Help Unter diesem Men gibt es nur den Men eintrag About Wenn dieser Men ein trag gew hlt wird wird ein Dialogfenster mit der Version des Editors und den Na men aller Mitglieder der APNN toolbox Gruppe und der Projektgruppe 435 ange zeigt Wenn der Knopf Close geklickt wird wird das Dialogfenster geschlossen 6 2 MODELLIERUNG 115 unnamed aa ll File Edit View Substitution Fusion Insert bisig A L i 4 il BH Select al Grid Spline _ Exten Scale 100 7 y s l Dec Abbildung 6 5 Leeres Editorfenster 6 2 2 Editorfenster Abb 6 5 zeigt ein leeres Editorfenster In diesem Fenster kann man ein FSPN oder GSPN Netz zeichnen Das Fenster hat achtzehn Kn pfe sechs Men s und eine Auswahlliste Diese werden im folgenden erkl rt Kn pfe e Place Mit diesem Knopf kann eine diskrete Stelle in das Editorfenster gezeichnet werden e ContPlace Mit diesem Knopf kann eine kontinuierliche Stelle in das Editorfenster ge zeichnet werden Wenn eine konituierliche Stelle im Editorfenster gezeich net wird wird de
46. Netz ein flaches Netz erstellt Dabei werden alle Elemente eines Subnetzes in ihr Vaternetz integriert Abb 5 11 und Abb 5 12 zeigen in dieser Reihenfolge hierarchisches Netz und 5 2 GRAMMATIK UND PARSER 67 ES Unnamed File Edit View Substitution Fusion Insert Is A th 4 H d EB select Jsp Ext Scale 10 Transition Stelle_blue N N Dec Stelle_brown Abbildung 5 7 Mehrfarbiges Petri Netz entfaltet das zugeh rige entfaltete Netz 5 2 4 Realsierung des Grammatikparsers Der Parser l sst sich mit Hilfe des Parsergenerators JJT realisieren Mehr dazu ist zu finden unter http trese cs utwente nl prototypes composeJ wichman JavaCC Wir die zu realisierende Grammatik in der Datei ADNN Grammar j jt mit einer geeigneten Syntax beschrieben Die Datei wurde auf die folgende Weise erzeugt e Mit dem Befehl jjt APNN_Grammatik 4 jt wird die Datei APNN_Grammar jj erzeugt e Mit dem Befehl javacc APNN_Grammar 77 werden die Dateien bzw Klassen APNN_Grammar Node SimpleNode und alle Subklassen von SimpleNode erzeugt e ParserHelper ist eine normale Java Klasse die nicht von dem Parserge nerator automatisch erzeugt wurde Abb 5 13 zeigt das Klassendiagramm des Parsers Wir haben die Klassen ASTPlace_Node 68 KAPITEL 5 MODULBESCHREIBUNG Transition Abbildung 5 8 Petri Netz mit mehreren Transitionsmodi 5 2 GRAMMATIK UND PARSER Abbildung 5 9 Mehrere T
47. PNN Toolbox f r hierarchische CGSPNs 31 Allgemeine 3 2 APNN Editot 4 1 4 42 ae a d ee gU RR AD 3 3 APNN Sim lator 4 ra er aan CRURA 4 INHALTSVERZEICHNIS 4 Eingeschr nkte fluide stochastische Petri Netze 43 4 1 Definition der eingeschr nkten FSPN 43 4 2 Erweiterung des APNN Editors 45 4 2 1 Neue Elemente f r kontinuierliche Stellen 45 4 2 2 Erweiterung der alten Dialoge 45 4 023 Aufruf des FSPN Simulators 46 4 2 4 Vermeidung der Konflikte zwischen FSPN und GSPN 46 42 5 Fazit Legno u aka et ls kak Syd Q S 46 4 37 Simulator y ea ERES SIS 47 4 4 Erweiterte APNN Grammatik 47 5 Modulbeschreibung 53 S APNN EdItO a att Bale e wer age a 53 5 1 1 Oberfl che und Dialoge 53 5 1 2 Klassendiagramm und Schnittstellen 57 5 2 Grammatik und Parser 65 5 2 1 Aufgabe des Grammatikparsers 65 5 2 2 Farben und Modi 65 25 2 3 S bhetzei ia dose HERI Em E ug 66 5 2 4 Realsierung des Grammatikparsers 67 5 2 5 Funktion der einzelnen Klassen 74 5 2 6 DerFunkt onenparser 75 5 3 Simulator Oberfl che 76 5 3 1 Die grafische Oberfl che und Dialoge 77 5 3 2 Klassendiagramm und Klassenbeschreibung
48. R 75 NET Parameter des Netzes TOKEN TOKEN TOKEN KANNTE TRANSITION STELLE TOKEN Parameter des Neve ELEMENT Abbildung 5 14 Beispiel eines Grammatikbaums init 1 unnamed discrete upper_bound 123 unnamed arc a7 from a3 to a6 weight case mode of unnamed gt 122 unnamed type ordinary endnet ParserHelper Die Aufgabe des ParserHelpers besteht darin den von APNN_Grammar erzeugten Grammatikbaum durchzulaufen und die geeigneten add Methoden des SimCont roller aufzurufen Wenn ein Knoten ein Object vom Typ ASTTransition_Node ist werden die get Methoden dieser Klasse aufgerufen und die erhaltenen Informa tionen werden als Parameter fiir die addTransition Methode benutzt analog fiir ASTPlace_Node und ASTArc_Node 5 2 6 Der Funktionenparser Mathematische Funktionen existieren in der APNN Datei als reiner Text Die Va riablen einer Funktion sind auch als Text enthalten Um die Werte der Funktionen 76 KAPITEL 5 MODULBESCHREIBUNG zu berechnen m ssten wir die Text Funktionen als echte mathematische Funktio nen interpretieren Wir haben die Bibliothek JEP Java Expression Parser benutzt um Text Funktionen in echte mathematische Funktionen umzuwandeln JEP un terst tzt folgende Funktionen arcsin arcosh a xY x y Die Basisoperatoren wie werden automatisch als WYSYWYG what you see is wh
49. Sie wird in das Installatonsverzeichnis des Simulators ge schrieben und beinhaltet folgende Dateien e debug log Hier sind unter anderem auch die Ergebnisse der Initialisierungsphase zu fin den Die entsprechenden Meldungen best tigen einen erfolgreichen Aufbau des Netzes wobei das Wort erfolgreich sich lediglich auf das Syntax und nicht auf die Semantik des Netzes bezieht Hier wir auf den Inhalt des Kap 5 3 verwiesen e PlacLog csv Diese Datei beinhaltet die Auswertung von fluiden und diskreten Stellen in folgender Form Simulationszeit Name der Stelle Name der Stelle 2 Name der Stelle F r jede Simulationszeit werden mit der vorgege benen Schrittweite die Stelleninhalte Anzahl der Marken und Fluidpegel geschrieben e TransitionLog csv bietet eine bersicht ber das Verhalten der zeitbehafteten Transitionen in der Form Simulationszeit Name der Transition 1 Name der Transition 2 Name der Transition n Es werden die Feuerzeiten bei jeder f r die Auswertung markierten Transition protokolliert mehr dazu in Kap 5 3 e ResultLog csv Wie der Name schon sagt wird hier ein Abbild des Results Registers in Form einer CSV Datei erzeugt Information Beim Anklicken des FSPN Simulator Logos das bunte Bild in der linken oberen Ecke wird ein Info Fenster angeziegt siehe Abb 6 14 Hier findet man die An gaben zu der Projekt Gruppe die an diesem Simulator gearbeitet hat 132 KAPITEL 6 BENUTZERHANDBUCH
50. Ziel Erfahrungen im Umgang mit Simulationstools zu sammeln und Erkenntnisse ber die Art und Wei se wie Prozesse modelliert werden k nnen zu gewinnen Um einen berblick ber die verschiedenen existierenden Simulationstools zu erhalten wurden drei unter schiedliche Tools untersucht Java Demos 21 22 die APNN Toolbox 23 und Scilab 2 7 Zur Bearbeitung wurden drei Gruppen gebildet Jede untersuchte die M glichkeiten eines Tools sowie dessen St rken und Schw chen Im Modellierungspraktikum hat sich die APNN Toolbox in Kombination mit Petri Netzen als sehr effektiv f r die diskrete Simulation erwiesen Die Entwicklung ei nes Simulators f r hybride Systeme sollte dann auf dieser Technologie aufgebaut werden In der n chsten Phase der Projektgruppe wurden fluide stochastische Petri Netze 10 KAPITEL 1 EINLEITUNG FSPN als Modellierungsformalismus f r hybride Systeme die APNN Toolbox und die Anwendbarkeit und Verf gbarkeit weiterer Java Produkte n her untersucht Als Ergebnis werden dann eine allgemeine Definition f r Petri Netze die Struktur der APNN Toolbox und die F higkeiten der Java Bibliothek SSJ 24 vorgestellt Zum Ende des ersten Semesters wurde ein Projektzeitplan erstellt Mit Hilfe dieses Plans war es m glich Aufgaben zu verteilen und Arbeitsaufw nde einzusch tzen Das zweite Semester begann mit einer weiteren Seminarphase dieses Mal mit dem Ziel das Wissen dass direkt f r die Implementierung des Program
51. all gt gt I x callz I I F 1 Parser Abbildung 5 16 Klassendiagram von Simulator GUI f r die Kommunikation mit dem Simulator Es folgen die wichtigsten Methoden der Klasse e Mit der initComponents Methode werden alle Komponenten initiali siert und das Hauptfenster aufgebaut e Mit den Methoden focusLost checkBoxItemPerformed collectAllSettings validateAllSettings und isPrime werden alle Parameter und Ein stellungen sowohl bei der Eingabe als auch bei der bergabegabe an den Simulator auf ihre Richtigkeit gepr ft e Mit der Methode generateButtonActionPerformed wird eine will k rliche 32 Bit Primzahl generiert e Mit der Methode 1oadButtonActionPerformedkann man die APNN Datei auch direkt von der Simulation GUI laden Die Datei wird dann an die readNet Methode weitergeleitet und dort mit dem Parser Objekt gelesen und geparst e Mit der simulateButtonActionPerformed Methode werden alle Pa rameter f r die Simulation an Simulator bergegeben e Die wirkliche Simulation wird in der start Simulator Methode in ei nem separaten Thread gestartet damit sie andere Operationen nicht behin dert 80 KAPITEL 5 MODULBESCHREIBUNG e MitderstopButtonActionPerformed Methode leitet man ein Stopp signal an den Simulator weiter damit wird die Simulation vorzeitig beendet e DiesimulationFinished Methode wird von dem SimProgress Objekt aufgerufen Die Log Ausgaben und Simulationsergebnisse werden auf den
52. ar schon vorhanden hatte aber vorher den Namen Place In der Klasse wurde die Methode t oAPNN ge ndert so dass jetzt auch die Obergrenzen der Stellenfarben in die APNN Datei geschrieben werden Es wurde ein Konstruktor hinzugef gt der zum Laden einer diskreten Stelle ben tigt wird und dem auch eine Hashtable mit Obergrenzen f r die Stellenfarben bergeben werden kann Die Klasse PlaceColor Jede diskrete Stelle eines Netzes enth lt zu jeder ihrer Stellenfarben ein Objekt vom Typ PlaceColor Die Attribute token Anzahl aktueller Token init Token Anfangswert der Token und highBound maximale Anzahl Token wurden als Typ long gesetzt Es wurde ein neuer Konstruktor hinzugef gt dem der Wert highBound maximale Anzahl Token als Parameter bergeben werden kann Die Klasse Transition Zu jeder Transition in einem Netz gibt es ein Objekt vom Typ Transition Es wurde ein Konstruktor hinzugef gt der zum Laden einer Transition benutzt wird Dem Konstruktor kann eine Hashtable bergeben werden in der dann die zugeh rige Guardfunktion gespeichert ist Die Klasse TransitionMode Jede Transition eines Netzes enth lt zu jedem ihrer Modi ein Objekt vom Typ TransitionMode Es wurde ein Attribut guardfunction vom Typ Hashtable hinzugef gt Dieses Attribut wird beim Laden eines Transit ionMode benutzt In der Hashtable ist zu jeder anliegenden Stelle die zugeh rigen Guardfunk tion gespeichert Und zwar wiederum in ein
53. aren schon vorhanden Hinzugef gt wurde die Klasse ContP lace f r kontinuierliche Stellen Die Klas se Place wurde in DiscPlace umbenannt um Verwechslungen zu vermeiden Ausserdem wurde eine neue Klasse Place als Oberklasse von DiscPlace und ContPlace erzeugt Da die diskreten Stellen farbig sein k nnen gibt es eine 5 1 APNN EDITOR 59 Klasse PlaceColor Wenn eine Stelle also mehrere Farben hat enth lt die ent sprechende Instanz der Klasse DiscP lace zu jeder Farbe eine Instanz der Klasse PlaceColor Eine Stelle hat dabei immer mindestens eine Farbe Das gleiche gilt f r die Klasse Transition Wenn eine Transition mehrere Modi hat ent h lt die dazugeh rige Instanz der Klasse Transition zu jedem Modus eine In stanz der Klasse Transit ionMode Eine Transition hat immer mindestens einen TransitionMode Die Elemente Place Transition und SubstNode erben von der Klasse PNNode Sie sind die Knoten des Petri Netzes F r die Darstellung dieser Elemen te im Editor gibt es die Klasse View Diese Klasse enth lt eine Methode paint in der ihr zugeh riges Element gezeichnet wird Die Klassen PNNode Arc und Net sind Petri Netz Objekte Sie erben von der Klasse PNOb jekt Jedes Element das von dieser Klasse erbt enth lt eine eindeutige ID Die Klasse Arc enth lt eine Me thode paint in der die Kante im Editor gezeichnet wird Die Klasse Net enth lt Zeiger auf alle Kanten und Knoten ihres zugeh rigen Netzes Knoten k nnen dabei auch SubN
54. as aktuelle Netz eingef gt Men Fusion Dieses Men ist nur f r GSPNs relevant und wird deshalb an dieser Stelle nicht behandelt 6 2 MODELLIERUNG 119 Men Insert Place Dieser Men eintrag hat die gleiche Funktion wie der Knopf Place ContPlace Dieser Men eintrag hat die gleiche Funktion wie der Knopf ContPlace Transition Dieser Men eintrag hat die gleiche Funktion wie der Knopf Transition SubstPlace Dieser Men eintrag hat die gleiche Funktion wie der Knopf SubstPlace SubstTransition Dieser Men eintrag hat die gleiche Funktion wie der Knopf SubstTransiti LE on Arc Dieser Men eintrag hat die gleiche Funktion wie der Knopf Arc Inhibitor Dieser Men eintrag hat die gleiche Funktion wie der Knopf Inhibitor Arc Comment Wenn man diesen Men eintrag w hlt und mit der Maus in eine Position des Editorfensters klickt ffnet sich ein Dialogfenster in dem ein Kommentar eingegeben werden kann Wenn das Fensters geschlossen ist wird der Kom mentar in der ausgew hlten Position angezeigt Auswahlliste Scale Mit dieser Liste kann die Gr sse der Ansicht eines Netzes ausgew hlt werden 6 2 3 Dialog f r diskrete Stellen Wenn man das Symbol f r eine diskreten Stelle doppelt anklickt ffnet sich ein Dialogfenster siehe Abb 6 6 In diesem Dialogfenster k nnen alle Daten einer diskreten Stelle und ihrer Farben eingegeben werden Im Textfeld Placename
55. at you get verstanden Mehr dazu ist zu finden unter http www singular com jep 5 3 Simulator Oberfliche Die Einsch tzung der Projektgruppe war dass der Aufwand f r eine nderung des gegebenen diskreten Simulators in einen hybriden umfangreicher sein w rde als die Entwicklung eines neuen Simulators In diesem Zuge wurde die SSJ Biblio thek n her untersucht mit ihrer Hilfe sollte ein neuer Simulator entwickelt werden Da der Simulator unabh ngig vom Editor l uft ben tigt dieser ein eigenes GUI 5 3 SIMULATOR OBERFLACHE 71 in dem der Benutzer die Simulationsparameter einstellen kann Die Simulator Oberfl che ist ein Java Programm und muss deshalb mit dem Java Interpreter ge startet werden 5 3 1 Die grafische Oberfliche und Dialoge Die grafische Oberfl che des FSPN Simulators dient dazu dem Benutzer die Si mulation zu erleichtern und funktioniert als eine Schnittstelle zwischen dem Edi tor dem Parser und dem Simulatorkern F r den Aufbau der grafischen Oberfl che wurden die Elemente aus dem Swing Paket wie z B JLabel JButton JTextField JProgressBar JTable und die abgeleiteten Klassen dieses Pakets benutzt Die Simulator GUI besteht nur aus einem Fenster Abb 5 15 Die wichtigsten Elemente in diesem Fenster sind e Kn pfe mit denen man die Operationen wie z B Laden einer Datei Simu lation starten und stoppen durchf hren kann e Karteireiter in dem die verschiedenen Einstellungen und Ausgab
56. ation wurde auf einem Pentium 4 2 4 Gh 512 MB Speicher Debian Linux Rechner mit folgenden Simulationsparameter durchgef hrt e PRNG Seed 2925392441 Integration method RungeKutta4 Integration Step 0 001 Sample Step Stop criteria Simulation Time 10000 Alle Stellen und Transitionen wurden zur Beobachtung ausgew hlt Nach 18 Minuten hat der Simulator das folgende Ergebnis geliefert WaemeAwo wies a T9 Warendesauto 0 0120 3 ron Waemeaw 0 ma 7 Lem Wartendesautot 0 0000 2 moo 0 i Sage o 9 1 ms Tank peicher 0 459524526 4999540 Keine der UpperBounds oder LowerBounds wurde ber bzw unterschritten We gen der Verteilungswahl f r die Tanksaeule Transitionen wurden diese oft gefeu ert und die AnkommendesAuto Transitionen selten die Ankunftsrate ist nicht sehr gro Daher war die Anzahl der wartenden Autos relativ klein 142 KAPITEL 7 TESTS UND BEISPIELE Kapitel 8 Res mee Anhand der Beispiele wurde gezeigt dass es der Projektgruppe durchaus gelungen ist ein Editor und Simulator Tool zu erstellen das die Simulation der hybriden Systemen erm glicht und dabei korrekte nachvollziehbare Erbegnisse liefert Die Erfahrungen aus dem Modellierungspraktikum waren dabei sehr hilfreich da da bei eine gewisse Menge an Modellen und Ergebnissen gesammelt wurde die dann mit Hilfe des neuen Tools gebaut u
57. benen besitzen F r die Simulation werden hierarchische Petri Netze normaleweise entfaltet dabei wird eine Subnetz Transition bzw eine Subnetz Stelle einfach durch das Subnetz ersetzt Die Ports und die Sockets verschmelzen dann zu einfachen Stellen oder Transitionen Eine andere M glichkeit Netze kompakter und bersichtlicher zu modellieren ist die Einf hrung von Farben bei der hnliche Netzteile durch Faltung in graphisch bersichtlichere Strukturen berf hrt werden F r die Tokens wird eine neue Ei genschaft n hmlich die Farbe eingef hrt Die Stellen k nnen somit mehrere Ar ten von Tokens enthalten Damit k nnen mehrere Stellen die parallel zwischen zwei Transitionen geschaltet sind zu einer einzigen Stelle vereinigt werden die dann Tokens verschiedener Farben enth lt Die Transitionen erhalten ihrerseits 2 4 HIERARCHISCHE UND FARBIGE PETRI NETZE 29 Puffer_ Interne Senke Verlust Abbildung 2 9 Beispiel f r hierarchische Petri Netze Subnetz mehrere Feuerungsmodi je einen pro angeschlossener Stelle und pro Farbe die diese Stelle enthalten darf F r jede Farbe kann eine andere Feuerrate verwendet werden F r die Kanten wird ebenfalls nicht nur eine Zahl als Kardinalit t gesetzt sondern ein Vektor mit Kardinalit ten f r jede Farbe Genauso wie die Netzhier archien werden die farbigen Petri Netze zur Analyse und Simulation entfaltet Im Fall der farbigen Netzen bedeutet das das es mehrere parallel
58. chgef hrt Es wurde im Wechsel mehrfach die Simulation gestartet und wieder gestoppt um die Initia lisierungsphase des Simualtors in der die Datenstruktur des Simulators aufgebaut wird unter Last zu setzen Zus tzlich wurde mit gro en Netzen getestet um CPU und Speicher zu beobachten Ebenfalls wichtig waren Langzeittests also Tests mit gro en Simulationszeiten Bei den Tests wurde festgestellt dass das Einlesen der Traces in die GUI zu OutOfMemory Fehlern f hrt Es wurde daher entschieden diese Traces nicht einzulesen und nur die Resultate der Simulation auszugeben 7 1 5 Testresultate Im folgenden werden die Testresultate beschrieben Da der Gro teil der Applika tion korrekt funktioniert werden hier nur die Fehler aufgef hrt die w hrend der Testphase gefunden und nicht behoben wurden 1 Funktionstests im Modul APNNed e Bei der Eingabe der oberen Grenze f r diskrete Stellen ist es nicht m g lich exponentielle Werte anzugeben z B 3E6 7 2 BEISPIEL ERZEUGER VERBRAUCHER SYSTEM 137 e Negative Gewichtungen bei zeitlosen Transitionen werden nicht unter bunden e Negative Priorit ten bei zeitlosen Transitionen werden nicht unterbun den e Beim Schlie en eines Projekts wird das Projekt nicht geschlossen es wird nur das Projektfenster ausgeblendet 2 Funktionstests im Modul SimulatorGUI Simulator e Der Abbruch nach CPU Zeit ist nicht m glich eingegeben 4000 Ab bruch nach 17177 3 C Lasttest
59. dazu die folgenden Klassen zur Verf gung RandomStream Die Schnittstelle RandomStream und seine Implementierungen liefert den grundlegenden random number generator RNG Jede Imple 2Siehe Beispiel QueueProc in der Hilfedatei von SSJ 86 KAPITEL 5 MODULBESCHREIBUNG mentierung dieser Schnittstelle implementiert eine andere Art von gleichf r migen RNG mit mehrfachen Streams und Substreams RandMrg Die Klasse RandMrg implementiert RandomStream und unterst tzt vie le Operationen auf dem virtuellen RandomStream Randl Diese statische Klasse unterst tzt das Erzeugen von Zufallsvariablen un terschiedlicher Verteilungen mit vorgegebenen Methoden und benutzt dazu einen RandomStream Alle Methoden die hier zur Verf gung gestellt wer den benutzen Inversion Unterst tzt werden viele Verteilungsfunktionen auf einem virtuellen RandomStream z B die folgenden diskreten Verteilungs funktionen binomial geometrisch Poisson Verteilung oder die kontinuier liche Verteilungsfunktionen uniform exponentiell Erlang Weibull etc Auswertung mit SSJ Neben der eigentlichen Simulation ist der Benutzer auch an den Ergbenissen seines Simulationslaufs interessiert Zur Auswertung der Daten bietet SSJ die folgenden Klassen an StatProbe StatProbe ist eine abstrakte Klasse die zur Datenerfassung und auswertung dient Tally Eine Unterklasse von StatProbe Mit Tally werden double Werte erfasst Bil dung einer Stichprobe und statistisch
60. den Elementen aufzubauen Diese Methoden sind addDiscreteArc f gt eine diskrete Kante hinzu addDiscretePlace f gt eine diskrete Stelle hinzu addFluidArc f gt eine fluide Kante hinzu addFluidPlace f gt eine fluide Stelle hinzu addImmediateTransition f gt eine zeitlose Transition hinzu addImpulseArc f gt eine Impulskante hinzu addTimedTransition f gt eine zeitbehaftete Transition hinzu Dabei werden hier nur Objekte hinzugef gt die untereinander noch nicht verkn pft sind Diese Informationen sind in den Kanten gespeichert und werden bei der In itialisierung des Netzes ausgewertet Neben den addElement Methoden sind die Methoden wichtig mit denen die Pa rameter der Simulation gesetzt werden k nnen Insbesondere sind die Abbruchkri terien wichtig von denen mindestens eins gesetzt sein muss setMaxCPUTime set MaxEvents setSimulationTime Von allen gesetzten Kriterien f hrt dasjenige zum Stopp der Simulation welches zuerst erreicht wird Zus tzlich muss ber die Me thoden setIntegrationStep und setIntegrationType die Integrationsschrittweite so wie das Integrationsverfahren gesetzt werden ber die Methoden setRandomm Seed und setSampleStep wird noch die Saat sowie die Schrittweite des Traces ein gestellt Alle diese Einstellungen m ssen gemacht werden nur bei den Abbruch kriterien kann man Zwei von Dreien weg lassen Damit der Fortschritt der Simulation auch in der GUI sichtbar wird kann ber die 5 4 SIMU
61. den kann Au erdem wird unter dem Men Project ein neuer Men eintrag mit dem Namen unnamed_aa hinzuge f gt e Open Wenn dieser Men eintrag gew hlt wird ffnet sich ein Dialogfenster siehe Abb 6 2 In diesem Dialogfenster gibt es zwei M glichkeiten eine APNN Datei zu ffnen Die Erste man kann im oberstem Textfeld einen Pfad ein geben oder aus der Liste einen Pfad ausw hlen Die Zweite man kann im 6 2 MODELLIERUNG Abbildung 6 2 Dialogfenster Datei ffnen 111 112 KAPITEL 6 BENUTZERHANDBUCH Infos Abbildung 6 3 Netzinformationen Ordnerverzeichnis von Folders Ordner w hlen und damit eine APNN Datei suchen Nachdem man eine APNN Datei gefunden und ausgew hlt hat klickt man den Knopf OK Dann wird das Netz in einem neuen Edi torfenster angezeigt und das Dialogfenster geschlossen Falls man den Knopf Cancel klickt wird kein Netz angezeigt und das Dialogfenster geschlos sen e Info Wenn dieser Men eintrag ausgew hlt wird ffnet sich ein Dialogfenster In diesem Fenster wird die Anzahl der diskreten und kontinuierlichen Stellen Stellenfarben Transitionen Transitionsmodes Kanten Substellen und Sub transitionen jeweils angezeigt Abb 6 3 zeigt ein Beispiel des Dialogfensters mit Netzinformationen 6 2 MODELLIERUNG 113 Select Directory D xl images petrinet CVS java cup org Directory Path home pg435 liu works pace editor
62. den sofort wieder durch das Feuern einer solchen Transition verlassen zeitlose Zust nde oder vanishing states Die Konflikte zwischen zeitlosen und zeitbehafteten Transitionen werden vermie den indem e zeitlose Transitionen immer Vorrang vor zeitbehafteten haben e jeder zeitlosen Transition t eine Schalth ufigkeit w zugeordnet wird die markierungsabh ngig sein kann 18 KAPITEL 2 FLUIDE STOCHASTISCHE PETRI NETZE Die Wahrscheinlichkeit dass eine zeitlose Transition aus der Menge in akti vierten zeitlosen Transitionen E Mj feuert betr gt Die Schalth ufigkeiten w werden ber alle i E M aufsummiert Die Defi nition der zeitlosen Transitionen wird oft dadurch erweitert dass man f r sie die Priorit ten definiert Die zeitlosen Transitionen mit einer h heren Priorit t haben dann den Vorrang vor denen mit einer niedrigen In die o g Wahrscheinlichkeits berechnung gehen dann nur die zeitlosen Transitionen ein die die h chste Priorit t unter den aktivierten zeitlosen Transitionen haben 2 3 Fluide Stochastische Petri Netze Fluide stochastische Petri Netze FSPN 4 stellen ein m gliches Mittel zur Dar stellung und Modellierung von hybriden Systemen dar Sie erm glichen es sowohl diskrete als auch kontinuierliche Vorg nge in hybriden Systemen darzustellen und zu simulieren 2 3 1 Formalismus Wie es am Anfang des Kapitels erw hnt wurde ist der Formalismus von FSPN nichts anderes als eine Erweiteru
63. e Transition zuerst die die k rzeste stochastisch ermittelte Schaltzeit hat 2 2 STOCHASTISCHE PETRI NETZE 17 Im neuen Zustand Ai K nnen die anderen Transitionen immer noch feuerbereit sein Ihre Restverz gerungszeiten gen gen dann immer noch der urspr nglichen Verteilung denn eine Exponentialverteilung besitzt die Eigenschaft der Ged cht nislosigkeit Zu diesem Thema und zu den Markov Prozessen und Ketten siehe 11 und 12 2 2 2 Generalisierte stochastische Petri Netze Zus tzlich zu den zeitbehafteten Transitionen dargestellt durch Rechtecke ent h lt ein generalisiertes stochastisches Petri Netz GSPN noch zeitlose Transitio nen dargestellt durch dicke Linien die ohne Verz gerung schalten Damit zerf llt die Menge der Transitionen T in zwei disjunkte Mengen T zeitbehaftete und T zeitlose Insgesamt erh lt man den folgenden Tupel als Beschreibung der GSPN S T T F a A w b Mo S die Menge der Stellen T die Menge der zeitlosen Transitionen Ti die Menge der zeitbehafteten Transitionen F die Menge der Kanten a Gewichtung f r die Kanten A und Wahrscheinlichkeitsgewichtungen f r das Schalten von und T b Markenanzahl Beschr nkung f r die Stellen Mo die Start Markierung Oft werden in einem GSPN noch hemmende Kanten inhibitor arcs definiert auf dieser Stelle soll jedoch auf ihre Beschreibung verzichtet werden siehe 6 Die Zust nde wo zeitlose Transitionen aktiviert sind wer
64. e aller erreichbaren Markierungen als M bezeich net kann man die Menge aller erreichbaren diskreten Markierungen als M defi nieren T steht f r die Menge aller Transitionen und beinhaltet die Menge der zeitlosen immediate und die Menge der zeitbehafteten timed Transitionen T T U T In grafischer Darstellung werden diese Transitionen als d nn gedruckter Balken bzw als Rechteck repr sentiert U A wird f r die Menge der gerichteten Kanten reserviert Diese Menge zerf llt in zwei Teilmengen A Au U Ae Menge der Impulskanten A und Menge der fluiden Kanten A die als ein einfacher bzw ein doppelter Pfeil gezeichnet werden sonst die Definition wie in Kap 2 1 1 a f 20 KAPITEL 2 FLUIDE STOCHASTISCHE PETRI NETZE Diese Kanten sind als Verbindung zwischen Transitionen und Stellen gedacht und dienen dem Transport von Marken bzw Fluid in diesem Fall wird Kontinuierlich in Abh ngigkeit von der Zeit t transportiert Fluide Kanten verlaufen ausschlie lich zwischen kontinuierlichen Stellen und zeitbehafteten Transitionen Die Funktionen die im folgenden aufgelistet sind k nnen verschiedene Abh n gigkeiten haben In einer maximalen Definition sind alle Funktionen von der ge samten d h von der diskreten und der kontinuierlichen Markierung abh ngig e a beschreibt die Kardinalit t bzw den fluiden Impuls einer Impulskante Wenn eine Impulskante mit einer diskreten Stelle verbunden ist gibt a die A
65. ebene Wert ist 0 Der Anfangswert darf nur eine reelle Zahl Infinity oder Infinity sein e Im Textfeld Lower Bound wird eine Untergrenze f r das Fluid in der Stelle eingegeben Der vorgegebene Wert ist Infinity Die Untergrenze darf nur eine reelle Zahl oder Infinity sein e Im Textfeld Upper Bound kann eine Obergrenze f r das Fluid in der Stelle eingegeben werden Der vorgegebene Wert ist Infinity Die Obergrenze darf nur eine reelle Zahl oder Infinity sein e Wenn der Knopf OK geklickt wird wird das Dialogfenster geschlossen und alle im Dialogfenster ausgef llten Daten gespeichert 6 2 MODELLIERUNG 123 unnamed f unnamed Abbildung 6 8 Dialogfenster Transition e Wenn der Knopf Cancel geklickt wird wird das Dialogfenster geschlos sen und alle im Dialogfenster ausgef llten Daten verworfen Ausserdem werden die Untergrenze und der Anfangswert noch berpr ft Die Un tergrenze muss kleiner oder gleich der Obergrenze sein und der Anfangswert muss zwischen der Untergrenze und der Obergrenze sein 6 2 5 Dialog f r Transitionen Wenn man das Bildchen einer Transition doppelt anklickt ffnet sich ein Dialog fenster siehe Abb 6 8 Das Dialogfenster ist nicht nur f r zeitbehaftete Transition sondern auch f r zeitlose Transition anwendbar In diesem Dialogfenster k nnen alle Daten einer Transition eingegeben werden 124 KAPITEL 6 BENUTZERHANDBUCH Im Textfe
66. ectedToPlace wird f r die Initialisierung genutzt um den Vorbe reich vom Nachbereich der Transition zu trennen Des weiteren bestimmt es die Richtung des Vorzeichens der Fl sse positiv wenn die Kante in eine Stelle f hrt und negativ wenn die Kante von der Stelle wegf hrt Die Methode fire muss von den Unterklassen implementiert werden und wird beim Feuern der Transition aufgerufen Damit die Kante in der Lage ist Ver nderun gen an der Stelle vorzunehmen besitzt sie eine Referenz auf die Stelle F r die Transition ist es unerheblich um welche Unterklasse es sich gerade handelt da jede Unterklasse die richtige Aktion implementiert hat F r die Unterklasse Dis creteArc bedeutet dies in Abh ngigkeit von der Kantenrichtung directedToPlace das Entfernen oder Erzeugen von Marken in der verkn pften Stelle Innerhalb der fire Methode der Klasse mpulseArc wird der Stelle in Abh ngigkeit von der Kan tenrichtung Fluid hinzugef gt oder entnommen F r die Klasse FluidArc bedeutet die Methode fire dass die Flussfunktion aus der verbundenen Stelle entfernt wird removeFunctionFromPlace Die Abb 5 18 zeigt den Zusammenhang zwischen der abstrakten Klasse und ih ren Unterklassen Stellen Die Stellen des FSPN werden durch das Interface Place sowie die beiden das In terface implementierenden Klassen FluidPlace und DiscretePlace repr sentiert Das Interface legt die Kommunikations Schnittstelle der Stellen fest So k nnen ber das
67. einfacher Ansatz zur Durchf hrung einer Simulation von hybriden Systemen mit den Spezialf llen von kontinuierlichen und diskreten Systemen beschrieben der auf der Ebene von kommunizierenden Automaten ansetzt Im Laufe der Seminar und Praktikumsphase hat sich eine genauere Zielsetzung ergeben Es sollte ein Simulationswerkzeug f r hybride Systeme erstellt werden Als Modellwelt wurden die fluiden stochastischen Petri Netze ausgew hlt Ein be reits existierendes Programm die APNN Toolbox dabei als Grundlage verwendet und zu einem Simulationswerkzeug f r hybride Systeme erweitert werden 1 2 Motivation Die meisten existierenden Modellierungsumgebungen k nnen entweder nur mit diskreten oder nur mit kontinuierlichen Modellen umgehen Einige wenige er m glichen zwar die Modellierung von hybriden Systemen schr nken jedoch die Modellierungsm glichkeiten entweder f r diskreten oder f r kontinuierlichen Mo dellteil sehr stark ein Eine Modellierungsumgebung f r fluide stochastische Petri Netze FSPN 4 sollte dazu f hig sein diese Einschr nkungen zu berwinden und hybride Modelle erstellen und simulieren zu k nnen die eine m glichst gro e Flexibilitit sowohl bei dem diskreten als auch beim kontinuierlichen Modellteil erlauben Die APNN Toolbox 23 bereits eine Modellierungsumgebung f r farbi 1 3 AUFGABE DER PG 9 ge hierarchische Generalisierte stochastische Petri Netze GSPNs implementiert inklusive abstrakte Gramma
68. en darge stellt werden e Eingabefelder in denen man die verschiedenen Parameter und Einstellungen f r die Simulation eingeben kann e Elementetabellen in denen man die Elemente welche beobachtet werden sollen ausw hlen Kann e Ein Fortschrittbalken der den aktuellen Fortschritt der Simulation anzeigt Die Simulator GUI kann man aus dem Editor starten aber man kann sie auch als eigenst ndiges Programm starten indem man die main Methode der SimGUI Klasse aufruft 5 3 2 Klassendiagramm und Klassenbeschreibung Dieses Kapitel dient dazu dem Leser ein berblick ber die Klassen in der Simulator Oberfl che zu geben Das Klassendiagramm mit den wesentlichen Methoden f r diese Simulator GUI ist in der Abb 5 16 zu sehen SimGUI Diese Klasse ist die Hauptklasse f r die Simulator GUI Sie ist von der Klasse JDialog abgeleitet und implementiert auch die Methoden des FocusListener Interface Das Objekt dieser Klasse benutzt die statische Methode SimController getInstance 78 KAPITEL 5 MODULBESCHREIBUNG Gabe ab ib_Gabeln_zurueck_Philosoph1 G Lei Nimm_Gabeln_Philosoph5 Nimm_Gabeln_Philosoph4 Nimm Gabeln Philosoph3 Nimm Gabeln Philosoph2 Nimm Gabeln Philosoph 1 Gib Gabeln zurueck Philosoph4 Gib Gabeln zurueck Philosoph DR denken Philosophl Wi le coena Abbildung 5 15 FSPN Simulatorfenster 5 3 SIMULATOR OBERFLACHE 79 Simulator SimGul lt lt Call gt gt lt lt C
69. en werden mit Flussraten also der Menge des transportierten Fluids pro Zeiteinheit versehen Bei den Impulskanten steht dem Benutzer die M glich keit zur Verf gung die Kardinalit t festzulegen Wird eine solche nicht festgelegt so soll bei einem Feuerungsvorgang aus einer diskreten Stelle nur eine Marke Kar dinalit t 1 und aus einer kontinuierlichen Stelle das ganze darin enthaltene Fluid komplett entfernt werden Bei den Guard Funktionen ist folgende Einschr nkung spezifiziert Die Funktionen d rfen nur Markenanzahl bzw Fluidpegel der Stellen als Parame ter Variablen beinhalten die direkt mit der Transition verbunden sind die die Guard Funktion beinhaltet Diese Einschr nkung wurde aus Komplexit tsgr nden vorgenommen Die Gewichte bei Transitionen sind konstant und markierungsunabh ngig Die Feuerraten der zeitbehafteten Transitionen sind ebenso markierungsunab h ngig Flussratenfunktionen k nnen bliche mathematische Funktionen sein Sie d r fen aber auch vom Benutzer als markierungsunabh ngige zeitabh ngige Funktio nen definiert werden F r die graphische Darstellung von Kanten Transitionen und Marken wird die No tation verwendet wie sie in der allgemeinen Definition bereits beschrieben wurde Zum Parsen von Funktionen wird ein freiverf gbares Paket verwendet Dieses Paket hei t JEP Java Expression Parser und die in dem Paket unterst tzte mathematische Funktionen k nnen ver wendet werden 4
70. ent ausgeschnitten Copy Mit diesem Knopf wird ein ausgew hltes Element in das Clipboard kopiert Paste Mit diesem Knopf wird ein Element das sich im Clipboard befindet in das Editfenster eingef gt Properties Mit diesem Knopf wird ein Dialogfenster f r ein ausgew hltes Element ge ffnet F r Kanten gibt es keine Dialogfenster Splines Wenn dieser Knopf angeklickt wird werden alle Kanten in Splines umge 6 2 MODELLIERUNG 117 wandelt Wenn er nochmal angeklickt wird werden alle Kanten wieder in die vorherige Form zur ckgesetzt e Grid Wenn dieser Knopf angeklickt wird wird im Editorfenster ein Gitter ange zeigt Wenn er nochmal angeklickt wird wird das Editorfenster wieder ohne Gitter angezeigt e Select mode Grid Dieser Knopf hat die gleiche Funktion wie der Knopf Grid e Select mode Splines Dieser Knopf hat die gleiche Funktion wie der Knopf Splines e Select mode Extended Wenn dieser Knopf geklickt wird werden die Anfangswerte und die aktuel len Werte von Tokens aller diskreten Stellen in einem GSPN Netz angezeigt Men File e Netname Wenn dieser Men eintrag ausgew hlt wird ffnet sich ein Dialogfenster In diesem Fenster kann ein Name f r das Netz eingegeben werden e Export2PS Hiermit kann die Netz Abbildung in eine PostScript Datei exportiert wer den e Close Wenn dieser Men eintrag gew hlt wird wird das Editorfenster geschlossen Men Edit e Cut Dieser Men
71. enze darf vom Benutzer als Kapazit t be stimmt werden Bei den Stellen deren Kapazit t nicht gesetzt wurde werden als unbegrenzt angenommen e fiuide Stellen hier darf sowohl eine minimale als auch eine maximale Gren ze f r Fluid vom Benutzer gesetzt werden Falls diese Werte vom Benut zer nicht gesetzt wurden ist die obere Grenze mit unendlich und die untere Grenze mit 0 vorbelegt Transitionen zeitlose und zeitbehaftete werden wie in der allgemeinen Definition spezifiziert Die Transitionen werden nur dann aktiv k nnen feuern wenn die folgenden beiden F lle gleichzeitig zutreffen 43 44KAPITEL 4 EINGESCHRANKTEFLUIDE STOCHASTISCHE PETRI NETZE 1 bei keiner der nachfolgenden Stellen im Nachbereich ist die Kapazit ts grenze erreicht bzgl der Azahl der Marken oder der Menge am Fluid 2 auf allen vorhergehenden Stellen im Vorbereich sind genug Marken bzw Fluid vorhanden und keine Kapazit ten unterschritten Wird eine Transition aktiv kann sie feuern Beim Feuern werden Marken bzw Fluid entsprechend der Kantenkardinalit t aus dem Vorbereich entfernt und im Nachbereich erzeugt Zwischen dem Aktivieren einer zeitbehafteten Transition und ihrem Feuerzeitpunkt wird Fluid ber alle angeschlossenen Flusskanten auf die gleiche Weise erzeugt und entfernt Welche von den aktiven Transitionen wann feuern darf wird anhand der ausgew hlten Verteilung entschieden Kanten Impulskanten und fluide Kanten Die Impulskant
72. er Hashtable die dann zu jeder Stellenfarbe die zugeh rige Guardfunktion als String enth lt Falls die Stelle ei ne kontinuierliche Stelle ist ist die Guardfunktion zu dem Schl ssel unnamed gespeichert da kontinuierliche Stellen keine Farben haben Schon vorhanden wa ren die Attribute consequences conditions und inhibitors Die se Attribute sind vom Typ Vector Dabei enth lt consequences zu je der ausgehenden diskreten Stellenfarbe ein ModeElement in dem die Stellen farbe und das zugeh rige Gewicht gespeichert sind Auch conditions und inhibitors enthalten ModeElements Conditions enth lt eins zu 62 KAPITEL 5 MODULBESCHREIBUNG jeder eingehenden Stellenfarbe Inhibitors enth lt eins zu jeder eingehen den Stellenfarbe die mit einer Inhibitor Kante verbunden ist Hinzugef gt wur den die beiden Attribute inContPlaces und outContPlaces vom Typ Vector In diesen Vectoren sind zu jeder eingehenden bzw ausgehenden kon tinuierlichen Stelle ein ModeElement gespeichert Dabei enth lt das jeweilige ModeElement die entsprechende kontinuierliche Stelle die zugeh rige Fluss funktion und die zugeh rige Guardfunktion Die Klasse ModeElement Zu jedem Eintrag der in der Tabelle eines TransitionDialogs gemacht wer den kann gibt es ein Objekt vom Typ ModeElement In dieser Klasse konnten bisher eine diskrete Stellenfarbe mit dem zugeh rigen Kantengewicht gespeichert werden Die Klasse wurde dahingehend
73. erfolgen wenn alle Stellen im Vorbereich einer Transition mindestens eine Marke enthalten Ist die Schaltbedingung f r eine Transition er f llt spricht man von einer aktivierten Transition Die einfachste Definition eines Petri Netzes wird meistens erweitert indem man zus tzlich noch zwei Parameter einf hrt e Die Gewichtung f r die Kanten a die Anzahl der Marken die ber die Kante auf einmal transportiert werden k nnen e Kapazit tsbegrenzung f r die Stellen c die maximale Anzahl der Marken die eine Stelle enthalten darf Durch die Erweiterung ndert sich das Schaltverhalten entsprechend siehe Abb 2 2 Aus der Stelle links unten werden 2 Marken entfernt und in der Stelle rechts oben werden 3 Marken erzeugt F r die brigen Kanten gilt der Standardwert von eins 2 1 ALLGEMEINE PETRI NETZE 15 Abbildung 2 2 Feuern einer Transition in einem erweiterten Petri Netz 2 1 2 Analyse von Petri Netzen Um die Petri Netze zu analysieren betrachtet man die einzelnen Zust nde die ein Petri Netz durch das Schalten der Transitionen ausgehend von ihrem Startzustand erreichen kann Angenommen ein Netz besteht aus n Stellen S1 S und die Werte m4 m4 bezeichnen die Anzahl der Marken der entsprechenden Stellen Dann ist ein Zustand bzw eine Markierung eines Petri Netzes ein Vektor My m rn In dem die Transitionen aktiviert und die Marken entfernt und erzeugt werden kann das Netz zu einer neuen Markierung wechsel
74. erweitert dass jetzt auch eine kontinuier liche Stelle mit zugeh riger Flussfunktion darin gespeichert werden kann Weiter kann sowohl zu einer Stellenfarbe als auch zu einer kontinuierlichen Stelle eine Guardfunktion gespeichert werden Die Klasse SubstNode Diese Klasse realisiert die Knoten eines Netzes in denen Teilnetze zusammenge fasst werden k nnen Hier wurden keine nderungen vorgenommen Die Klasse View Jeder Knoten in einem Netz enth lt ein Objekt vom Typ View welches daf r sorgt dass ein Knoten im Editor angezeigt wird Es wurde die Methode isContPlace hinzugef gt die true zur ckgibt falls das zugeh rige Element welches durch dieses View dargestellt wird eine kontinuierliche Stelle ist Die Methode isPlace wurde in isDiscPlace umbenannt um Verwechslungen zu vermeiden Die Methode paint wurde erweitert Sie zeichnet jetzt zwei Kreise wenn das zuge h rige Element eine kontinuierliche Stelle ist Die Klasse Project Zu jedem Projekt das mit dem Editor erzeugt wird gibt es ein Objekt vom Typ Project Dieses enth lt einen Zeiger auf die Wurzel des Baumes aller Teilnet ze Es gibt eine neue Methode updateDistr Dieser Methode kann ein String fspn gspn oder both bergeben Sie wird nur vom TransitionDialog aufgerufen Diese Methode sorgt daf r dass in dem neuen Attribut spnDistr 5 1 APNN EDITOR 63 vom Typ Vector genau die ID s der Transitionen gespeichert sind die eine Einstel
75. euerns ge ndert hat Der genaue Ablauf eines Feuerns wird im n chsten Unterkapitel im Detail dargestellt Im der Abb 5 20 ist der Zusammenhang der Transitionen und ihrer Pools dar gestellt Controller Die Klasse SimController ist die zentrale Kontrollklasse des Simulators Sie ist zum einen die Schnittstelle zum GUI und zum Parser zum anderen bernimmt sie Teile der Koordinierung w hrend der Simulaiton Um sie von berall erreichbar zu machen und um zu verhindern dass es mehr als nur eine Instanz dieses Controllers gibt wurde das Singleton Pattern genutzt Sie erf llt drei wesentliche Aufgaben Schnittstelle zur GUI und Parser Methoden zum setzen der Simulationsparame ter sowie zum Aufbau des Netzes 94 KAPITEL 5 MODULBESCHREIBUNG Simulationsteuerung Initialisierung der Netzstruktur der Simulation sowie des SSJ Zudem Kontrolle des Zustands der Simulaiton Datenhaltung Der Controller besitzt die Simulationsparameter sowie die Transitions Pools Zun chst zur Schnittstellenfunktionalit t Der Controller ist die Instanz ber die andere Softwarekomponenten mit dem Simulator interagieren k nnen Wichtig sind hier die Methoden mit denen man die Elemente des FSPN hinzuf gen kann Dabei spielt es keine Rolle in welcher Reihenfolge die Elemente hinzugef gt wer den Der Controller speichert die Elemente zun chst um sie dann beim Start der Simulation in die interne Struktur zu berf hren sowie die Beziehungen zwischen
76. gen gibt es au erdem unter dem Men punkt Insert Oberhalb der Editierfl che gibt es Buttons mit denen Kopieren Aus schneiden und Einf gen erm glicht wird Diese Funktionen gibt es zus tzlich un ter dem Men punkt Edit Der Name des Netzes kann unter File Netname eingetragen werden Wenn sich auf der Editierfl che des Editors eine Stelle oder eine Transition befin det gibt es die M glichkeit die zugeh rigen Parameter des entsprechenden Ele ments einzustellen Durch einfachen Mausklick auf eine Stelle Transition oder Kante kann das entsprechende Element markiert werden Durch einen weiteren Klick auf eine bereits markierte Stelle oder Transition ffnet sich das zugeh rige Eigenschaften Fenster Im folgenden werden die verschiedenen Einstellungen er kl rt die an einer Stelle oder an einer Transition vorgenommen werden k nnen siehe Abb 3 4 36 KAPITEL 3 APNN TOOLBOX F R HIERARCHISCHE CGSPNS Select m Grid _ Spline Exten transitionl Abbildung 3 3 Editierfenster des APNN Editors lunnamed aa Abbildung 3 4 APNN Editor Stelleneigenschaften 3 2 APNN EDITOR 37 Name Priority jo Remove Mode Mode Name unnamed i Mode Color m Distribution exp rate a 0 unused Enabling memory memory 1 1 Table place3 unnamed Break on activated Break on not activated Ok Cancel
77. gerufen wird werden die Ver nderungen durchgef hrt und anschlie Bend die Grenzen berpr ft sowie ggf die Observer Guards informiert Die Klasse FluidPlace repr sentiert eine fluide Stelle Den Level der Stelle kann man ber changeLevel ver ndern es verl uft analog zur diskreten Stelle Die Me thode drainFluid bewirkt dass der Level sofort auf die untere Grenze der Stelle gesetzt wird Danach werden die Grenzen und Guards berpr ft und ggf die Ob server informiert Neben diesen Methoden f r diskreten nderungen verf gt die Klasse FluidPlace noch ber Funktionalit ten zur kontinuierlichen Berechnung Aus diesem Grund ist die Klasse von der SSJ Klasse Continuous abgeleitet Die Stelle f hrt die Be rechnungen zur Ver nderung ihres Levels ber die Zeit selbst durch Sie nutzt dazu die von den aktiven mit ihr verbundenen Transitionen bergebenen FlowFuncti ons W hrend der Integration werden bei jedem Schritt sowohl die Guards als auch die Grenzen berpr ft und ggf die entsprechenden Aktionen ausgef hrt Sp ter wird auf diesen Aspekt noch einmal genauer eingegangen Die Abb 5 19 zeigt das Interface Place sowie die beiden implementierenden Klas sen Transitionen Das Interface Transition legt die Schnittstelle zu den Transitionen fest Die imple mentierenden Klassen sind ImmediateTransition eine zeitlose Transition TimedTransition eine zeitbehaftete Transition Das Interface selbst enth lt den anderen Teil
78. geschaltete Stellen oder Transitionen anstatt einer mehrfarbigen Stelle oder Transition erzeugt werden Die APNN Toolbox unterst tzt sowohl die Netzhierarchien als auch die farbigen Petri Netze Handhabung der APNN Toolbox ist im Kap 3 beschrieben 30 KAPITEL 2 FLUIDE STOCHASTISCHE PETRI NETZE Kapitel 3 APNN Toolbox f r hierarchische CGSPNs In diesem Kapitel werden einige wichtige Funktionen der APNN Toolbox beschrie ben Auf eine vollst ndige Beschreibung wurde bewusst verzichtet Es gibt aber ge n gend Handb cher in denen eine ausf hrlichere Beschreibung der APNN Toolbox zu finden ist Zwei wichtige Teile der APNN Toolbox sind zum einen der Editor in dem ein GSPN erstellt werden kann und zum anderen der Simulator der f r die Simulation von GSPNs zust ndig ist Im ersten Teil dieses Kapitels gibt es eine all gemeine Beschreibung der APNN Toolbox und es wird kurz erkl rt wie der Editor und der Simulator zusammenh ngen Der zweite Teil dieses Kapitels ist dann dem Editor gewidmet und der dritte Teil dem Simulator 3 1 Allgemeine Beschreibung Die APNN Toolbox bietet die M glichkeit hierarchische farbige GSPNs zu mo dellieren analysieren und zu simulieren Zur Modellierung der Netze steht der Editor APNNed zur Verf gung der an der Universit t Dortmund entstanden ist und in Kap 3 2 beschrieben wird Ein im APNNed erstelltes Netz wird in einer Grammatikdatei im APNN Format gespeichert Dabei steht APNN f r
79. h w rden beim Feuern nicht berschritten 2 3 FLUIDE STOCHASTISCHE PETRI NETZE 21 e w bezeichnet man als Menge der Gewichtsfunktionen Jeder zeitlosen Tran sition wird ein Gewicht zugewiesen w T x Ma gt Ro Mit Hilfe dieses Gewichtes wird die Schaltwahrscheinlichkeit der Transition ermittelt e b beschreibt die Kapazit tsgrenzen der Stellen d h b gibt an wie viele Mar ken bzw wie viel Fluid eine Stelle maximal enthalten darf Es kann zus tz lich eine untere Grenze f r fluide Stellen eingef hrt werden 2 3 2 Arbeitsweise Die diskreten Stellen werden genauso wie bei den stochastischen Petri Netzen mit Marken gef llt und wieder geleert Die mit diskreten Stellen verbundenen Transi tionen schalten ebenfalls wenn alle Marken im Vorbereich vorhanden sind Doch zus tzlich zum Verschieben der Marken k nnen die Transitionen je nach Vorhan densein und Art von Kanten entweder eine gewisse Menge an Fluid von einer kon tinuierlichen Stelle auf einmal wegnehmen oder hinzuf gen oder einen zeitlich begrenzten Fluss mit 5 a dt verursachen Dabei muss ber cksichtigt werden dass eine Stelle q u U gleich zeitig die Fliissigkeit aufnehmen und abgeben kann und auBerdem der Pegel weder unter 0 noch ber b hinausgehen kann Beim Ubergang ergibt sich also Vq Pe x minf b m maz 0 q a m z ags m x 1 und entsprechend Vp Py m Mp atp M apt m z 2 In einem zeitbehafteten Z
80. hren Parametern zu erkennen und die entsprechende add Methode des SimControllers aufzurufen 5 2 2 Farben und Modi Wenn das zu parsende Netz mehrfarbig ist muss der Parser dieses Netz in ein ein farbiges Netz umwandeln Der Parser wird in diesem Fall eine Stelle die n farbig ist durch n verschiedene andere Stellen ersetzten jede neue Stelle entspricht einer Farbe aus der urspr nglichen Stelle Alle zur urspr nglichen Stelle verbundenen Kanten werden auch entsprechend entfaltet d h f r jede Farbe wird eine neue Kan te erzeugt die die Token mit dieser Farbe zu der entsprechenden Stelle transpor 66 KAPITEL 5 MODULBESCHREIBUNG Transition O amp 7 E a Abbildung 5 6 Mehrfarbiges Petri Netz tiert Die Abb 5 6 zeigt ein originales mehrfarbiges Netz In der Abb 5 7 wurde das Netz entfaltet Wenn das zu parsende Netz eine Transition enth lt die n Modis hat wird sie durch n Transitionen ersetzt Abb 5 8 5 9 und 5 10 zeigen in dieser Reihenfolge Origi nalnetz mit mehreren Modi den dazugeh rigen Transitionseigenschaftsdialog und das entfaltete Netz Wenn in dem zu parsenden Netz eine Stelle mit m Farben mit einer Transition mit n Modi verbunden ist werden die beiden oben beschriebenen Methoden angewendet Dann ist die Anzahl der neuen Kanten ist dann gleich dem Produkt der Anzahl der Farben m und der Anzahl der Modi n 5 2 3 Subnetze Wenn das zu parsende Netz Subnetze enth lt wird aus dem
81. iagramm des Parsers 74 KAPITEL 5 MODULBESCHREIBUNG ASTTransition_Node und ASTArc_Node um geeignete Parameter und ge eignete set und get Methoden erweitert die dazu dienen die Informationen aus der gelesenen APNN Datei direkt in der ASTPlace_Node ASTTransition_Node und ASTArc_Node zu speichern Das erleichtert die Arbeit in der Klasse ParserHelper eigentlich muss man das nicht machen denn die Informationen wie z B Name ID gibt es schon in ASTName Node und ASTID Node 5 2 5 Funktion der einzelnen Klassen AST Node F r alle Nichtterminal Symbole der Grammatik wird ein AST Node erzeugt z B ASTName Node f r NAME ASTID Node f r ID usw Die aus der APNN Datei gelesenen Informationen werden in diesem Node gespeichert und alle Nodes werden im Grammatikbaum unter den zugeh rigen Knoten geh ngt Der Gramma tikbaum hat als Wurzel ein Objekt der Type ASTNet Node APNN Grammar Ein Objekt dieser Klasse bekommt eine APNN Datei lie t diese Datei und erzeugt einen Grammtikbaum Z B wird aus der folgenden APNN Datei der in der Abb 5 14 dargestellte Baum erzeugt beginnet al name Einfach transition a3 name Transition prio 0 point 120 80 weight case mode of unnamed gt 1 0 guard mode unnamed screen_colours case mode of unnamed gt 0 place a6 name Stelle partition unnamed_aa point 300 80 colour with unnamed screen_colours 0 unnamed 5 2 GRAMMATIK UND PARSE
82. ial TimedTransition 1 1 isDirectedToPlace boolean if arc isDirectedToPlace 1 2 1 contains arc boolean outArcList inArcList fluidArcs LinkedList if outArcList contains arc 1 2 2 1 add arc boolean 1 3 1 contains arc boolean LinkedList if inArcList contains arc 1 3 2 1 add arc boolean 1 4 contains arc boolean 1 5 1 add arc boolean 3 2 2 incrementNumOfConditions void if arc instanceof FluidArc amp amp tfluidArcs contains arc LinkedList Abbildung 5 23 Hizuf gen einer Kante zu einer Transition 100 KAPITEL 5 MODULBESCHREIBUNG Integration Die Integration findet wie schon erw hnt in den fluiden Stellen statt Die Rate der nderung wird ber die Methode derivative ermittelt Wenn eine Stelle die Integration abschlossen hat d h die Methode derivative wurde ausgef hrt wird die Methode afterEachStep aufgerufen Zun chst werden die Guards und Gren zen gepr ft Abb 5 24 Aufruf 1 1 und 1 2 Wenn bei einer Grenze oder einer Guard eine Ver nderung festgestellt wird d h der Wert hat sich vom vorigen auf den aktuellen Schritt ver ndert so wird die entsprechende Transition informiert Im Falle einer Guard wird die Transition direkt ber increment bzw decrement informiert Wenn eine Grenze verletzt wieder hergestellt ist so wird die Metho de update mit dem entsprechenden Wahrheitswert aufgerufen Beides kann eine Transition
83. ichte in der entspr Stelle soviel Fluid wie es die Kantenkardinalit t vorschreibt 24 KAPITEL 2 FLUIDE STOCHASTISCHE PETRI NETZE sa O m A p E Q ts 2 A To As Abbildung 2 3 Modell eines Erzeuger Verbraucher Systems in der Startmarkie rung e Gehe nach 1 An dieser Stelle wird der Simulationsalgorithmus anhand des Beispiels eines Erzeuger Verbraucher Systems das nun auch eine kontinuierliche Stelle Po besitzt verdeut licht Siehe Abb 2 3 Die Guardfunktionen sind nicht spezifiziert und es wird angenommen dass die Schaltraten wie folgt aussehen Au Ag 2 Dabei wird die Schaltzeit nach der Exponentialverteilung berechnet im Weiteren als exp bezeichnet F z 1 e gt Durch die Konstellation der Marken ist die Menge der aktiven Transition als t1 t4 mit entsprechenden Schaltraten A und Au gegeben Wenn laut der exponentiellen Verteilung die Transition t4 feuert Abb 2 3 rechts dann ist der neue Schaltpunkt ezp M Nachdem gefeuert hat siehe Abb 2 4 wird die Menge der aktiven Transitonen neu bestimmt und beinhaltet jetzt 3 t4 Die Schaltzeit von t wird nach der Verteilung auch neu berechnet T1 Das Vorgehen im n chsten Schritt ist analog siehe Abb 2 5 T3 ezp s 2 3 FLUIDE STOCHASTISCHE PETRI NETZE 25
84. ie eingeplant wurden dabei wird die Simulationsuhr angehalten Der Zeitpunkt wenn ein Event oder ein Prozess gefeuert wird ist auf die Si mulationsuhr bezogen Bemerkung Das Object Sim wird bei Einbindung automatisch erzeugt Event ist eine abstrakte Klasse welche die Scheduling Methoden wie z B sche dule scheduleNext scheduleBefore f r Events enth lt Jedes Event muss von dieser Klasse erben um die umfangreichen Scheduling Werkzeuge zu bernehmen Die Methode action muss implementiert werden diese Metho de bestimmt was das Event tut wenn es eintritt Wenn ein Event eintritt wird es von der Queue des Sim Objekts entfernt und seine Methode action wird ausgef hrt Continuous ist eine abstrakte Klasse Sie dient dazu die kontinuierlichen Events zu realisieren Die kontinuierlichen Zust nde des Events werden mit Hilfe einer Rate berechnet Die Rate der Zustandver nderungen muss in der Me thode derivative der von Continuous abgeleiteten Klasse beschrieben wer den In der Klasse Contiuous wurden drei numerische Integrationsmethoden implementiert Euler Verfahren Runge Kutta 2 Ordnung und Runge Kutta 4 Ordnung Eine dieser Methoden und die Schrittl nge der numerischen Me thode muss vor dem Beginn der Integration gew hlt werden Process ist eine abstrakte Klasse die die Scheduling Methoden wie z B sche dule scheduleNext scheduleBefore f r Prozesse enth lt also hnlich der Klasse Event f r Events Da diese K
85. ieden dass statt den al ten Simulator zu verwenden bzw zu erweitern ein neuer Simulator implementiert wird Es wurde auch am Ende des ersten Semesters entschieden daf r die SSJ Bibliothek zu benutzen SSJ ist eine frei verf gbare Java Bibliothek f r die Simu lationsprogrammierung die ereignisorientierte und prozessorientierte Simulation unterst tzt Diese Bibliothek wird noch mal im Kapitel 5 4 1 im Detail erl utert Hier die notwendigen Schritte zur Entwicklung des Simulator in der Zusammen fassung e Es wurde der Simulationsalgorithmus f r fluide stochastische Petri Netze FSPN auf Basis der SSJ Bibliothek entwickelt e Die Petri Netz Struktur wurde im Simulator abgebildet e Eine neue grafische Benutzeroberfl che f r den Simulator wurde entwickelt e Die Auswertung der Simulation und das Simulationsprotokoll werden ins Simulatorfenster angezeigt 4 4 Erweiterte APNN Grammatik Da der neue Simulator sowohl diskrete als auch kontinuierliche Netze simulieren sollte musste die APNN Grammatik dementsprechend angepasst bzw erweitert werden Die nderungen an der APNN Grammatik wurden so vorgenommen dass die alten Netze von dem neuen Editor eingelesen und editiert werden k nnen und die neuen Netze vom alten Editor auch Dies bedeutet dass die neue erweiterte APNN Grammatik die alte APNN Grammatik komplett beinhaltet und auch ab w rtskompatibel ist Die Erweiterungen der alten Grammatik waren vor allem bei folgenden Sch
86. iothek von Apache 26 zur ckzugreifen Diese Bibliothek erm glicht ein komfortables Loggen das ber Textdateien konfiguriert wird Dabei wird f r eine formatierte Ausgabe gesorgt und es besteht die M glichkeit ber Loglevel DEBUG INFO WARN ERROR FATAL die Ausgaben auf das Wesentliche einzuschr nken 5 4 2 Die Klassen im Simulator Dieses Kapitel dient dazu dem Leser ein berblick ber die wichtigsten Klassen im Simulator zu geben berblick Wie bereits in der FSPN Definition beschrieben sind die grundlegenden Elemente im FSPN Algorithmus Kanten Stellen und Transitionen Diese Elemente finden sich als Klassen im Simulator wieder und werden im folgenden beschrieben Zur Steuerung der Simulation wurde eine Controller Klasse implementiert auch deren Funktionsumfang wird beschrieben Zum Schlu wird auf die Spezialf lle Guards und Flussfunktionen n her eingegangen Kanten ARC Die Kanten des FSPN werden durch die abstrakte Klasse Arc und ihre Unterklassen repr sentiert Es gibt drei Unterklassen DiscreteArc entspricht einer diskreten Kante FluidArc entspricht einer fluiden Kante ImpulseArc entspricht einer fluiden Impulskante 88 KAPITEL 5 MODULBESCHREIBUNG Die abstrakte Klasse Arc gibt zwei wichtige Eigenschaften f r ihre Unterklassen vor Zum einen muss f r jede Kante die Richtung bzgl der mit ihr verbundenen Stelle festgelegt werden directedToPlace und zum anderen die Methode fire Das Attribut dir
87. itbehafteten Transitionen Er die aktiviert sind 4 F r alle Transitionen T Er a Falls Z 0 dann ist Deadlock erreicht stoppe b Falls die Feurungszeit bestimmt und abgelaufen ist feuere die Transi tion laut 5 c Falls die Feuerungszeit nicht bestimmt ist bestimme die Feuerungszeit eine Zufallszahl je nach der verwendeten Verteilung d F r alle ausgehenden Flusskanten erzeuge Fluid in den entspr Stellen Berechnung der Menge mit Hilfe der Flussfunktion der Kante und der vorgegebenen Schrittweite 7 e F r alle eingehenden Flusskanten vernichte Fluid in den entspr Stellen Berechnung der Menge mit Hilfe der Flussfunktion der Kante und der vorgegebenen Schrittweite 7 f Erh he die Simulationszeit um die vorgegebene Schrittweite 7 g Ist die maximale vorgegebene Simulationszeit erreicht stoppe die Si mulation h Bestimme neue Mengen und Er i Falls Er 0 gehe nach 2 sonst gehe nach 4 5 Feurungsvorgang einer Transition a F r alle ausgehenden fluiden Impulskanten erzeuge in der entspr Stel le soviel Fluid wie es die Kantenkardinalit t vorschreibt b F r alle eingehenden fluiden Impulskanten vernichte in der entspr Stelle soviel Fluid wie es die Kantenkardinalit t vorschreibt c F r alle ausgehenden diskteten Kanten erzeuge in der entspr Stelle soviele Marken wie es die Kantenkardinalit t vorschreibt d F r alle eingehenden diskreten Kanten vern
88. kreten Stellen besitzen keine Kapazit tsbeschr nkung Die fluide Stelle F1 hat dagegen die Un tergrenze 0 und die Obergrenze 50 Zu Beginn der Simulation befinden sich 5 Fluid in der Stelle F1 Als Seed wurde bei der Simulation 3 eingestellt die L nge des Integrationsschritts betrug 0 001 Simuliert wurde eine Zeit von 50 000 Als Integrationsverfahren wur de Runge Kutta 4 ausgew hlt Die Simulation dauerte auf einem AMD Athlon 64 3000 mit 512MB RAM unter Windows XP rund 15 Minuten Die Ergebnisse sind wie folgt mm m m m m LMN a o J o AVG 49 894768364 0 5012042125 0 4987957875 0 0921282638 0 9078717362 Max 5 1 1 1 J OBS 50000001 109345 109346 109345 109346 Die Ergebnisse wurden dabei auf die 9 te Stelle nach dem Komma gerundet F r die Transitionen ergibt sich folgendes Bild m m T 17 10 632595098 2 0023559444 2 0022907916 10 632671701 ES 129 32835924 2 0236593802 2 0212109212 131 74905961 11 372262714 1 4225538233 1 4216929772 11 478199319 4702 0 24970 0 24971 0 4702 0 Die hohe Varianz bei T1 und T3 ergibt sich daraus dass die fluide Stelle F1 rela tiv schnell vollgelaufen ist und somit T1 nicht schalten konnte da sie sonst einen 7 3 BEISPIEL TANKSTELLE 139 berlauf in F1 erzeugt h tte 7 3 Beispiel Tankstelle Das Tankstelle Netz besteht aus Abb 7 2 e den Transitionen AnkomendesAutol AnkommendesA
89. l addTransitinn vni emntw hanlean allFlements TreeMan Abbildung 5 21 SimController und die Hilfsklassen 5 4 SIMULATOR KERN 97 FluidArc flewFinrtinnFInwFinrtinn FluidArc removeFiinctionFramPlare vnir fluidPlace FluidPlace Continuous FluidPlace FlowFunction placelD String functionParser JEP FluidPlace oString String FlowFunction computeChangeRate double fluid double resetStartTime void startTime double signPositive boolean C1 GuardFunction function JEP currentStateOK boolean GuardFunction niiardFE SuardFimnti getValue boolean Guard Wrapper placelD String GuardVVrapper Abbildung 5 22 Klasse FluidPlace mit Kanten und Guardklassen 98 KAPITEL 5 MODULBESCHREIBUNG Integration Wie die Integration durchgef hrt wird und wie sie synchronisiert wird Feuern Was beim Feuern einer zeitbehafteten Transition geschieht Kante hinzuf gen Eine Kante im FSPN kann eine komplexe Beziehung repr sentieren welche sich durch einfache Beziehungen zusammensetzt A Zum einen besagt eine Kante dass die Stelle entweder noch was aufnehmen kann Stelle ist nach der Transition oder dass die Stelle etwas enth lt Stelle ist vor der Transition Dieser Aspekt wird durch das Observerpattern zwischen Stelle und Transition realisiert B Wenn die Kante mit einer Kardinalit t belegt ist z B nehme gebe x Tokens so wirkt dies wie eine Guard Denn nun mu
90. l s selelementen notwendig e PLACE Das Symbol P TYPE wurde erweitert um kontinuerliche Stellen zu unterst tzen e TRANSITION Die Symbole T WEIGHT und GUARD wurden erweitert e ARC Das Symbol A TYPE wurde erweitert 48KAPITEL 4 EINGESCHR NKTEFLUIDE STOCHASTISCHE PETRI NETZE Darauffolgend wurden weitere Symbole erweitert bzw es wurden neue Grammatik Symbole hinzugef gt Die komplette erweiterte Grammatik liegt hier vor NET empty inputnet FILENAME ID NET beginnet ID NAME ELEMENT endnet NET like ID endnet NET ELEMENT empty PLACE ELEMENT TRANSITION ELEMENT ARC ELEMENT FUSION ELEMENT PLACE place ID like ID place ID NAME INIT CAP COLOUR P_TYPE PORT COORDS PARTITION TRANSITION transition ID like ID Ntransition ID NAME T TYPE PRIO T WEIGHT GUARD PORT PARTITION COORDS ARC arc ID from ID Nto ID arc ID from ID Nto ID WEIGHT A TYPE BIND COORDS LIST FUSION Nfuse ID TYPE ID IDLIST FILENAME STRING ID STRING NAME empty name STRING INIT empty init MULTISET 4 4 ERWEITERTE APNN GRAMMATIK 49 IDLIST empty At TD ED T PSI TYPE STRING P_TYPE empty substitute ID discrete BOUND continuous BOUND T IYPE empty Nsubstitute ID invoke ID A TYPE empty Ntype ordinary Ntype inhibitor
91. l werden alle Objekte markiert Deselect All analog Simulation progress stellt den aktuellen Status des Simulationsprozesses dar Nach Simulationsende mindestens eines der Abbruchkriterien wurde erreicht er scheint eine Erfolgsmeldung siehe Abb 6 12 Die Simulation l sst sich aber auch stoppen indem man den Stop Button bet tigt Beim Bet tigen des Buttons Clear werden alle Simulationsparameter zur ckgesetzt 6 3 2 Results Register In diesem Register werden die Ergebnisse der Simulation festgehalten Ganz oben im Register wird das Abbruchkriterium protokoliert nach dem die Simulation ge stopt wurde siehe Abb 6 13 Die Entwicklung von Simulationsobjekten wird in zwei separaten Fenstern Place s result und Tranistion s results mit der vorher ein gestellten Schrittweite dokumentiert Place s result beinhaltet die Auswertung von fluiden und diskreten Stellen in fol gender Form Art der Berechnung Name der Stelle Name der Stelle 2 Name der Stelle n F r jede zu beobachtende Stelle wird ein minima ler maximaler sowie ein durchschnittlicher Wert ermittelt die Genauigkeit dieser Berechnung ist von der gew hlten Auswertungsschrittweite unabh n gig 130 KAPITEL 6 BENUTZERHANDBUCH FSPN Simulator joj xl E n Simulationsende erreicht Places results gt Simuiate inne 511 a12 5 ft2 a5 OBS 54 11 Transition s results Time
92. lasse von Thread abgeleitet ist hat sie die F higkeiten eines Threads und ist immer in einem dieser Zust nde IN ITIAL EXECUTING DELAYED SUSPENDED und DEAD Ein Process istin dem Zustand e INITIAL wenn er schon erzeugt aber noch nicht eingeplant wurde e DELAYED wenn er eingeplant wurde und gerade auf seine Ausf h rungszeit wartet e EXECUTING wenn er seine run Methode ausf hrt e SUSPENDED wenn er keine Events in der Eventliste hat und darauf wartet von einem anderen Prozess wieder aktiviert zu werden Hinweis Processorientierte Simulation ist zwar bequemer zu implementieren aber sie hat eine schlechtere Performance im Vergleich zur eventorientierte Simulation Au erdem funktioniert die processorientierte Simulation in der aktuellen Version von SSJ nur mit JDK1 2 2 oder JDK1 3 1 5 4 SIMULATOR KERN 85 e DEAD wenn er nicht mehr existiert Ein Prozess kann zu Jeder Zett mit der Methode kill beendet werden Resource Objekte der Klasse Resource realisieren eine Hilfsquelle f r Prozesse sie haben eine bestimmte Kapazit t f r die Prozesse Ein Process kann ei nige Einheiten von einer Resource anfordern wenn er aktiv ist und wenn die Resource noch gen gend Kapazit ten besitzt wird seine Anforderung erf llt und er wird in der servList der Resource eingef gt Wenn er kei ne Einheit von der Resource bekommt wird er in die waitList eingef gt Die Liste kann im Modus LIFO oder FIFO genutzt werden
93. ld Name kann ein Name f r diese Transition eingegeben werden Der vorgegebene Name daf r ist unnamed Das erste Zeichen des Namens muss ein Buchstabe sein Im Textfeld Mode Name kann ein Name f r einen Transitionsmodus ein gegeben werden Der vorgegebene Name daf r ist unnamed Das erste Zeichen des Namens muss ein Buchstabe sein Weiterhin ist es nicht zuge lassen dass verschiedene Transitonsmodes denselben Namen haben Im Textfeld Priority kann die Priorit t der Transition eingegeben werden Der vorgegebene Wert ist 0 Wenn die Priorit t 0 ist ist die Transition eine zeitbehaftete Transition Wenn die Priorit t gr sser als 0 ist ist die Transition eine zeitlose Transition Die Priorit t muss eine positive ganze Zahl oder 0 sein Wenn der Knopf Add Mode angeklickt wird wird ein Transitionsmode in die I Liste eingef gt Wenn der Knopf Remove Mode angeklickt wird wird der ausgew hlte Transitionsmodus aus der Liste gel scht Mit Mode Color kann eine Farbe f r einen Transitionsmodus aus einer Farbtabelle ausgew hlt werden Wenn die Priorit t 0 ist kann mann aus der Auswahlliste Distribution eine Verteilung ausw hlen Sonst ist die Auswahlliste inaktiv FSPN und GSPN haben verschiedene Auswahllisten Wenn die Priorit t 0 ist gibt es ein bis drei Textfelder f r die Parameter einer ausgew hlten Verteilung Sonst ist nur das Textfeld weight aktiv In
94. liche Stelle kannn zus tzlich eine Guardfunktion definiert werden Ausserdem wurden die Verteilungsfuktionen speziell f r FSPN eg nzt Diese neuen Verteilungsfunktionen sind e binomial F x q p mitq 1 p e chi square F x 1 2ix ist wobei r die Gr sse des Freiheitsgrads e geometric F x i ges z a e gumbel F x 21 e mitb gt 0 e logistic F x _ wobei r ein Malthusian Parameter ist 1 7 e log normal F x 3 1 er f 20 46KAPITEL 4 EINGESCHRANKTEFLUIDE STOCHASTISCHE PETRI NETZE e negative binomial F x Q P mit Q und P e pareto F x 1 2 e poisson F x eve mit v N p wobei N die Anzahl der Proben ist e student F x 21 1 1 i n 4 mit I z a b Ze wobei r die Gr e des Freiheitsgrades und B eine Beta Funktion ist Die fr her vorhandene Verteilungsfunktion trian wurde entfernt Ein neuer Ra diobutton Resampling memory wurde hinzugef gt Wenn dieser ausgew hlt wird wird bei der vorzeitigen Deaktivierung und anschlie ender Reaktivierung einer Transition die zuvor berechnete Schaltzeit verwendet Die Guard Funktionen wer den bei der Eingabe gepr ft 4 2 3 Aufruf des FSPN Simulators Im Hauptfenster wird ins Men Analysis Simulator ein neuer Men punkt FSPN Simulator eingef gt um den FSPN Simulator zu starten Im Editorfenster sollen alle Funktionalt
95. lieren Die Datei start APNNed ruft den APNN Editor auf Es wird dabei davon ausgegangen dass das Kommando java in der Pfadvariable eingetragen ist und nicht absolut referenziert werden muss Wichtiger Hinweis f r Windows 9x und ME Benutzer In den Batch Dateien muss der Pfad zur Applikation manuell gesetzt werden Die Zeile set currDir sollte um das Installationsverzeichnis erg nzt werden Wurde die Applikation in das Verzeichnis C SuperSim installiert so sollte die neue Zeile set currDir C SuperSim lauten 6 2 Modellierung Mit dem Editor k nnen FSPN Netze oder GSPN Netze gezeichnet geladen und gespeichert werden Der Editor hat zwei Fenster ein Men fenster und ein Editor fenster Im folgenden wird ausf hrlich erkl rt wie der Editor benutzt wird 110 KAPITEL 6 BENUTZERHANDBUCH APNNed unnamed aa ini xl File Simulation Project Analysis Graphlayout Help unnamed aa IN unnamed_ab 3 unnamed_ac Abbildung 6 1 Men fenster 6 2 1 Men fenster Das Men fenster ist in der Abb 6 1 dargestellt Es hat einige Men s und zeigt eine Netzhierarchie des aktuellen Projekts an Wenn man den Namen eines Netzes oder eines Substnetzes im Fenster doppelt anklickt ffnet sich ein Editorfenster mit dem entsprechenden Netz Im folgenden werden die f r FSPNs relevanten Men s erkl rt Men File e New Wenn dieser Men eintrag gew hlt wird ffnet sich ein leeres Editorfenster in dem ein neues Netz erstellt wer
96. llen eingegeben werden k nnen wurde ebenfalls erweitert Es gibt jetzt zu jeder an liegenden kontinuierlichen Stelle eine Zeile in der die Flussfunktion eingegeben werden kann Zu jeder kontinuierlichen und diskreten Stelle gibt es noch eine wei tere Zeile in der die Gurdfunktionen eingegeben werden k nnen 53 54 KAPITEL 5 MODULBESCHREIBUNG r unnamed unnamed Abbildung 5 1 Eigenschaftsdialog f r Transitionen 5 1 APNN EDITOR 55 ox Place Name Lower Bound infinity Upper Bound Infinity Intial Value OK Cancel Abbildung 5 2 Eigenschaftsdialog fiir kontinuierliche Stellen Dialog fiir kontinuierliche Stellen Abb 5 2 zeigt den Eigenschaften Dialog einer kontinuierlichen Stelle Dieser Dia log wurde neu erstellt Er enth lt die folgenden Einstellm glichkeiten e Im TextField Placename wird ein Name f r diese Stelle eingegeben Der vorgegebene Name daf r ist unnamed e Im TextField Initial Value wird der Anfangswert des Fluids in der Stel le eingegeben Der vorgegebene Wert ist 0 Der Anfangswert darf nur eine reelle Zahl Infinity oder Infinity sein e m TextField Lower Bound wird eine Untergrenze f r das Fluid in der Stelle eingegeben Der vorgegebene Wert ist die negative Unendlichkeit Die Untergrenze darf nur eine reelle Zahl oder Infinity sein e m TextField Upper Bound wird eine Obergrenze f r das Fluid in der Stelle eingegeben Der vorgegebene Wert i
97. ms notwendig ist zu erwerben und ein m glichst genaues Pflichtenheft zu erstellen Dazu wur den die notwendigen Erweiterungen zur APNN Toolbox und APNN Grammatik konstruiert mehrere Prototypen f r die Simulator GUI entwickelt und ein abstrak ter Simulationsalgorithmus f r den neuen Simulator erstellt Nachdem Klassen diagramme f r die einzelnen Module gebaut und diverse Vorg nge mit Hilfe von Sequenzdiagrammen verdeutlicht wurden konnte die Projektgruppe direkt zur Im plementierungsphase bergehen Es wurden Untergruppen gebildet jeweils eine f r die Editor Erweiterung Grammatik Erweiterung und die Entwicklung eines Parsers Simulator GUI und f r den Simulator Kern Nach dem Zusammenf hren aller Projektteile wurden mehrere Testl ufe durchgef hrt Dazu wurden sowohl diskrete und kontinuierliche als auch hybride Modelle erstellt und simuliert Bei den Modellen die bereits in der Literatur samt ihrer Auswertung beschrieben sind wurden die Simulationsergebnisse verglichen Einige dieser Beispiele sind im Kap 7 gezeigt Der Abschluss des Projektes bildete die Erstellung dieses Endberichtes und die Vorbereitungen f r die Pr nsentation des Programmes 1 5 Veranstalter Universit t Dortmund Fachbereich Informatik Lehrstuhl IV Lehrstuhl f r praktische Informatik Arbeitsgruppe Modellierung und Simulation Betreuer Prof Dr Peter Buchholz Dr Falko Bause Dipl Inform Carsten Tepper 1 6 Teilnehmer Bezgin A Baran Bui
98. n In jedem Zustand M kann man die Menge der aktivierten Transitionen E M bestimmen Zus tzlich zur Netz struktur wird normaleweise eine Startmarkierung definiert Das Wechseln der Markierungen erfolgt nach dem folgenden Algorithmus 1 In der aktuellen Markierung Mj bestimme die Menge der aktivierten Tran sitionen E M 2 W hle aus E eine Transition aus die als n chstes feuert z B zuf llig 3 Bestimme die neuen Werte m m und damit die neue Markierung Mj 4 Gehe nach 1 Diesen Algorithmus kann man zur Simulation eines Petri Netzes verwenden An dereseits kann man auch alle m glichen Zust nde ermitteln indem man in jedem Zustand alle m glichen Zustands berg nge betrachtet Dadurch entsteht ein Zu standsraum den man zusammen mit Zustands bergangsregeln zu einem Erreich barkeitsgraphen entwickelt Der Erreichbarkeitsgraph enth lt alle m glichen Mar kierungen als Knoten und alle m glichen berg nge als Kanten Mit Hilfe von Zustandsr umen und Erreichbarkeitsgraphen ist eine weitgehende mathematische Analyse von diskreten Petri Netzen m glich z B Lebendigkeitsanalyse Es wird hierzu auf die weiterf hrende Literatur verwiesen 9 5 19 16 KAPITEL 2 FLUIDE STOCHASTISCHE PETRI NETZE Ein Petri Netz kann in Situationen gelangen die entweder eine besondere Rolle f r das Verhalten des Systems spielen oder eine besondere L sung erfordern Von einem Konflikt spricht man wenn eine Stelle meh
99. n kurz vorgestellt werden F r eine detailierte Beschreibung sei auf die entsprechen den Referenzen verwiesen SSJ Stochastic Simulation in Java Der von der Projektgruppe entwickelte Simulator basiert auf der Java Bibliothek SSJ SSJ ist eine Java Bibliothek f r die Simulations Programmierung bei der es haupts chlich um die diskrete ereignisbasierte stochastische Simulation auf Basis der Programmiersprache Java geht Simulator von SSJ Der SSJ Simulator unterst tzt die eventorientierte und prozessorientierte Simulati on Zur Zeit funktioniert die prozessorientierte Simulation aufgrund der benutzten green Threads nicht mit JDK 1 4 Daher schied diese M glichkeit f r den FSPN Simulator aus und es wurden nur die eventorientierten Elemente genutzt Trotzal ledem soll hier ein kurzer berblick ber die wichtigsten Klassen gegeben werden Der Simulationsteil besteht aus folgenden Klassen Sim Event Continuous Pro cess Resource Bin Condition Sim Jede Simulation enth lt ein Objekt Sim dies enth lt Methoden zur Verwal tung aller Events und oder Prozesse die an der Simulation beteiligt sind Sim enth lt die Simulationsuhr und eine Queue Wenn ein Event oder ein Prozess eingeplant wird wird es automatisch in diese Queue entsprechend 84 KAPITEL 5 MODULBESCHREIBUNG seiner Feuerzeit eingef gt Wenn viele Events oder Processes zum selben Zeitpunkt eingeplant werden werden sie in der Reihenfolge ausgef hrt in der s
100. n ob eine Bedingung erf llt bzw nicht erf llt ist Die Objekte beider Klassen werden direkt vom Parser erzeugt Da die passende Transition informiert werden muss wenn eine Guard funktion ihren Wert ndert gibt es die Klasse GuardWrapper welche eine Guard funktion kapselt und sowohl den letzen Wert der Guardfunktion kennt als auch eine Referenz vom Typ Transition auf die entsprechende Transition besitzt ndert die Guardfunktion nun ihren Wert so kann der GuardWrapper direkt die entspre chende Transition informieren 5 4 3 Aspekte des Simulationsalgorithmus Im folgenden wird auf die wesentlichen Details des Simulationsalgorithmus einge gangen Im vorigen Abschnitt wurden die einzelnen Klassen vorgestellt sowie grob ihre Zusammenarbeit erl utert Nun werden folgende Punkte vertieft dargestellt Kante hinzuf gen Hinzuf gen einer Kante zu einer Transition 96 KAPITEL 5 MODULBESCHREIBUNG Event SampleEvent Event EndOfSim DEADLOCK REACHED int CPU TIME REACHED i USER AB RT int MAX EVENTS REACHED int scheduleTime double sampleStep double SampleEvent actions void actions void EndOfSim SimController stop void randomSeed double integrationFinished int integrationT ype int SimC ontroller initializeGuards void setObjectDependencies void initializeMet void ImmediatePool trefl ists TreeMan lmmediatePool addTransitinn vnid TimedPoo
101. n Projekt Beim Test wurde das ffnen der APNN Datei und das Lesen mit dem Parser getestet als kritischer Test wurde hier zus tzlich mit leeren und bin ren Dateien getestet Zum anderen gibt es vier Log Dateien die f r das Monitoring und die Auswertung ben tigt werden W hrend der Simulation wird der komplette Ablauf protokolliert das Ergebnis der Simulation wird zum Schluss aufbereitet und wurde korrekt angezeigt Im Anschluss daran wurde der Wechsel zwischen verschiedenen Projekten nach einander wurden verschiedene APNN Dateien geladen getestet 136 KAPITEL 7 TESTS UND BEISPIELE Parameterwahl Innerhalb der Funktionstests musste getestet werden wie die GUI auf die Eingabe verschiedener Parameter Abbruchkriterien Saat und Integration f r die Simula tion reagiert Dies schlieBt wieder die Eingabe kritischer Werte ein z B negative Simulationszeit oder alphanumerische Werte f r die Saat Zus tzlich wurde gete stet ob die Simulation mindestens ein Abbruchkriterium zugewiesen bekommen hat 7 1 4 Tests im Modul Simulator Kern Beim Test des Simulations Kerns wurde zun chst der Ablauf der Simulation und die Einhaltung der Abbruchkriterien getestet Im Anschluss daran wurden die Er gebnisse der Auswertung verifiziert Im Detail wurde auf die Feuermodi und die eingesetzten Verteilungen eingegangen um das Scheduling der Transitionen zu ve rifizieren Lasttests Die Lasttests wurden in Verbindung mit der Simulator GUI dur
102. nblicklich zur einer unendlichen Zahl an Zustands berg ngen f hrt Ein hnliches Verhalten zeigt das zweite Bei spielsnetz Ein Versuch das System zu analysieren f hrt zu keinen L sungen da Ar 0 geht Im letzten Beispiel wird angenommen dass lt F gt ist Das f hrt ebenfalls zum endlosen Anwachsen des Speichers f r besuchte Zust nde bis das Programm abst rzt Aus diesem Grund versucht man von Anfang an die Struktu ren die instabiles Verhalten verursachen k nnen auszuschlie en in dem man z B die M chtigkeit der Grammatik reduziert mehr dazu in Kap 4 1 2 4 Hierarchische und farbige Petri Netze Manchmal f hrt die Modellierung realer technischer Probleme zu sehr umfangrei chen Netzen Es gibt aber verschiedene Techniken das zu vermeiden Eine M g lichkeit komplexe Netze grafisch bersichtlich darzustellen ist der Entwurf ei ner Hierarchie von Teilnetzen die ineinander verschachtelt sind und zusammen ein einziges Modell bilden Hierarchie kann beim Modellieren benutzt werden um komplexe Modelle besser in den Griff zu bekommen Die haupts chlichen Vorteile sind e Details lassen sich verbergen so dass die oberen Schichten eine abstrakte Sichtweise des Modell bieten e Das Modell kann in nach Funktionalit t abgegrenzte Module aufgeteilt wer den e Die einzelnen Module k nnen wieder verwendet oder ausgetauscht werden Ferner zeigt sich dass die Hierarchie auch bei der Analyse gewisse Vorteile bietet
103. nd der Simulation protokolliert werden sollen Schlie lich hat man die M glichkeit das Netz mit verschiedenen Abbruchkrite rien f r die Simulation auszustatten e Number of replications Die maximale Anzahl der Ereignisse die die Simu lation ausf hren soll Modelling time Die maximale Simulationszeit die die Simulation laufen soll e CPU time Die maximale CPU Zeit die die Simulation verbrauchen darf e Confidence level Das Konfidenzniveau Width of the confidence interval Das Konfidenzintervall in dem die Ergeb nisse liegen sollen Wenn man alle Parameter eingestellt hat und die Schaltfl che Simulate bet tigt wird die Simulation gestartet Die Simulation wird abgebrochen sobald einer der oben genannten Kriterien erf llt ist Am Ende der Simulation erscheint das Ausgabefenster siehe Abb 3 7 In dem Fenster befindet sich die Zusammenfassung der Simulationsparameter und ergebnisse wie z B e Typ der Simulation e Anzahl der Ereignisse die abgearbeitet wurden e die Simulationszeit e Deadlock Information e die verbrauchte CPU Zeit e das Konfidenzniveau e das Konfidenzintervall e die maximale minimale und mittlere Tokenanzahl und die Varianz f r jede Stelle e die maximale minimale und mittlere Feuerzeiten und die Varianz f r jede Transition 3 3 APNN SIMULATOR Results export OO sIt Simulation results of export stationary 1000 performed 1000 10000 0 reached 5201 9 Confidence level
104. nd simuliert werden konnten Wie im Kap 4 1 bereits erw hnt musste die FSPN Definition eingeschr nkt werden um die Imple mentierung nicht berm ig kompliziert und die Simulationszeiten ertr glich zu halten Trotzdem ist die Klasse der Modelle die mit Hilfe dieser FSPN Definition erstellt und berechnet werden k nnen sehr umfangreich und erlaubt eine gro e Anzahl an Modifikationen und Einstellungen sowohl f r fluide als auch f r konti nuierliche Modellteile 143 144 KAPITEL 8 RES MEE Literaturverzeichnis 1 2 3 4 5 6 7 8 ko a F Bause P Kemper P Kritzinger Abstract Petri Net Notation Forschungsbericht der Universitat Dortmund 1994 B P Zeigler H Pr hofer T G Kim Theory of modeling and simulation Akad Press San Diego 2000 F Bause P Buchholz P Kemper File Formats concerning Hierarchical Colored Stochastic Petri Nets Interner Bericht der Universit t Dortmund 1998 Gianfranco Ciardo David M Nicol Kishor S Trivedi Discrete Event Simulation of Fluid Stochastic Petri Nets IEEE Transactions on Software Engineering Vol 25 No 2 March April 1999 W Reisig Petri Nets An Introduction EATCS Monographs on Theoret Comput Sci Springer Verlag 1985 F Bause P Kitzinger Stochastic Petri nets Vieweg 2002 R Dirks Verfahren zur Zustandsraumanalyse f r Petri Netze Univ Dortmund Fachbereich Informatik 1998
105. nfarbe ein gef gt Danach k nnen alle Daten f r diese neue Stellenfarbe eingegeben werden e Wenn mehr als eine Stellenfarbe vorhanden ist wird der Knopf Delete Pla cecolor aktiv Wenn er angeklickt wird wird die ausgew hlte Stellenfarbe gel scht e Wenn der Knopf OK angeklickt wird wird das Dialogfenster geschlossen und alle im Dialogfenster ausgef llten Daten gespeichert e Wenn der Knopf Cancel angeklickt wird wird das Dialogfenster geschlos sen und alle im Dialogfenster ausgef llten Daten verworfen Dar ber hinaus werden die Anfangswerte und die aktuellen Werte noch berpr ft Sie m ssen kleiner oder gleich der Obergrenze sein 6 2 4 Dialog f r kontinuierliche Stellen Wenn man das Symbol einer kontinuierlichen Stelle doppelt anklickt ffnet sich ein Dialogfenster siehe Abb 6 7 In diesem Dialogfenster kann man den Namen 122 KAPITEL 6 BENUTZERHANDBUCH TT ons Lower Bound Infinity Upper Bound Infinity Intial Value Cancel Abbildung 6 7 Dialogfenster kontinuierliche Stelle die Untergrenze die Obergrenze und den Anfangswert einer kontinuierlichen Stel le eingeben e Im Textfeld Placename kann ein Name f r die Stelle eingegeben werden Der vorgegebene Name daf r ist unnamed Ausserdem muss das erste Zei chen des Namens ein Buchstabe sein e Im Textfeld Initial Value kann der Anfangswert des Fluids in der Stelle eingegeben werden Der vorgeg
106. ng der generalisierten stochastischen Petri Netzen um fluide Stellen und Kanten die dem Transport und Speicherung von Fluid kon tinuierliche Quantit t dienen Es werden weitere zus tzliche Parameter ben tigt die zusammen das folgende Tupel ergeben P T A mo zo a A w b P bezeichnet die Menge aller Stellen die in die Menge der kontinuierlichen und die Menge der diskreten Stellen zerf llt P P U Fa Dabei enthalten diskrete Stellen Marken und kontinuierliche Stellen sind f r die Speicherung von Fluid gedacht Bei der grafischen Darstellung werden diskrete und fluide Stellen als Kreis und Doppelkreis gezeichnet O 2 3 FLUIDE STOCHASTISCHE PETRI NETZE 19 Soll eine diskrete Stelle Marken enthalten so werden diese durch schwarze Punkte dargestellt Weiter besteht die M glichkeit eine maximale Markenanzahl Kapazi t t bei den diskreten Stellen festzulegen Auch bei fluiden Stellen kann eine obere und eine untere Grenze als maximaler und minimaler F llstand festgelegt werden Der FSPN Zustand bzw die Gesamtmarkierung beinhaltet die fluide und diskrete Markierung Diese werden wie folgt definiert e i zk t ist der Fluidpegel der kontinuierlichen Stelle py zum Zeit punkt t e ri m t gibt an wie viele Marken zum Zeitpunkt t in der diskreten Stelle pi Pa vorhanden sind e m0 z 0 ergibt sich somit als Startmarkierung bzw initialer Zustand ei nes FSPN Weiterhin wenn man die Meng
107. nzahl der Marken an die in einem Schritt ber diese Kante transportiert werden Wenn eine Impulskante mit einer kontinuierlichen Stelle verbunden ist gibt a die Menge von Fluid an die auf einen Schlag ber diese Kante transportiert wird e f steht f r die Menge der Flussratenfunktionen Eine Flussratenfunktion ord net einer fluiden Kante deren momentane Flussgeschwindigkeit zu Auch diese Funktion darf in der allgemeinen Definition von der fluiden und dis kreten Markierung abh ngen f A X M gt Ro e g wird als Menge der booleschen Guard Funktionen die f r die Aktivierung der Transitionen zust ndig sind bezeichnet Eine Transition kann nur dann aktiviert werden wenn alle Vorbereichs und Nachbereichsbedingungen er f llt sind und alle dazugeh rigen Guard Funktionen ebenfalls erf llt sind d h den Wert True liefern wird als Feuerrate Funktion bezeichnet und weist jeder zeitbehafteten Tran sition deren momentane Feuerungsrate auch Schaltrate genannt zu A T xX M gt Ro Laut dieser Abbildung darf die Feuerrate der zeitbehafteten Transitionen von der gesamten Markierung abh ngig sein Eine allgemeine Definition erlaubt es sogar dass verschiedene Transitionen nicht nur verschiedene Parame ter sondern auch unterschiedliche Verteilungsfunktionen benutzen um ihre Schaltzeiten zu berechnen d h dass alle Stellen im Vorbereich haben gen gend Tokens bzw Fluid und die Obergrenzen der Stellen aus dem Nachbereic
108. oAPNN und t OAPNNF lat wurden ge ndert um Flussraten in die APNN Datei zu schreiben und anliegende kontinuierliche Stellen zu ber cksichtigen Die Klasse Place Die Klasse ist eine abstrakte Klasse f r kontinuierliche und diskrete Stellen Sie wurde neu hinzugef gt erbt von der Klasse PNNode und ist die Oberklasse von den Klassen ContPlace und DiscPlace Sie enth lt zwei Konstruktoren f r Kontinuierliche Stellen Dabei wird ein Konstruktor beim Laden einer kontinu ierlichen Stelle benutzt und der andere beim Erzeugen einer neuen kontinuierlichen Stelle Das gleiche gilt f r diskrete Stellen Die Klasse ContPlace Zu jeder kontinuierlichen Stelle in einem Netz gibt es ein Objekt vom Typ ContPlace Die Klasse erbt von der Klasse Place und wurde neu hinzugef gt Sie enth lt drei Attribute von Typ double Dies sind initValue minValue und maxValue jeweils f r den Anfangswert die Untergrenze und die Obergren ze einer kontinuierlicher Stelle Die Methode clone klont eine kontinuierliche Stelle Die Methode toAPNN gibt die APNN Darstellung einer kontinuierlichen Stelle aus Es gibt zwei Konstruktoren Ein Konstruktor wird beim Laden einer kontinuierlichen Stelle benutzt und der andere beim Erzeugen einer neuen konti nulerlichen Stelle 5 1 APNN EDITOR 61 Die Klasse DiscPlace Zu jeder diskreten Stelle in einem Netz gibt es ein Objekt vom Typ DiscPlace Die Klasse erbt von der Klasse Place DiscPlace w
109. ode Objekte sein die selber wiederum ein Netz enthalten Wenn das zugeh rige Netz einer Klasse Net solch ein SubNode ist enth lt das Net Objekt einen Zeiger auf das n chsth here Netz d h das Netz in dem sich der SubNode befindet Da die Klasse Net also evtl nur Teilnetze enth lt gibt es die Klasse Project Diese enth lt einen Zeiger auf das Objekt der Klasse Net welches die Wurzel in dem Baum aller Teilnetze darstellt Ausserdem enth lt sie die ID s aller Netzknoten und Kanten aller Teilnetze Jedes Element des Petrinetzes muss in eine Grammatik Datei geschrieben wer den k nnen Daher enth lt jede Klasse die von PNOb ject erbt eine Methode toAPNN die das entsprechende Element als String im APNN Format zur ck gibt In der Klasse Net werden diese Elemente dann zu einem Netz im APNN Format zusammengesetzt Jedes Teilnetz wird in eine eigenen Datei gespeichert Alle Objekte des gesamten Projekts m ssen eine eindeutige ID haben Aus Gr n den auf die hier nicht n her eingegangen wird wird in die APNN Datei zu jedem Element die ID seines Views gespeichert Ausserdem werden alle Eigenschaften jedes Elements in der APNN Datei gespeichert Zum Laden einer in der APNN Grammatik gespeicherten Datei wurden die Klassen parser und sym mit Hilfe des java_cup Packages erzeugt Desweiteren wird zum Laden einer Datei die Klasse Lexer ben tigt die eine Textdatei einliest und den Text in einzelnen To ken zur ckgibt Diese Token k nnen aus W
110. r File und dann den Eintrag Info In diesem Dialog werden die Anzahl der diskreten Stellen kontinuierlichen Stellen Stellen farben Transitionen Transitionsmodi Kanten Substellen und Subtransitionen an gezeigt 5 1 2 Klassendiagramm und Schnittstellen In diesem Kapitel werden die wichtigsten Klassen und Methoden des Editors be schrieben Im Vordergrund stehen dabei die nderungen die vorgenommen wur den Es wird zun chst eine allgemeine Beschreibung gegeben und danach wer den alle Klassen nochmal einzeln etwas genauer beschrieben In dem Klassendia 58 KAPITEL 5 MODULBESCHREIBUNG PNObject id String name String it paintvoid DiscPlace ContPlace minYalue double modes Vector CH guardfunction Hashtable initvalue double 1 maxvalue double placeColor PlaceColor maxValue int Abbildung 5 5 APNN Editor Klassendiagramm TransitionMode inContPlaces Vector outContPlaces Vector gramm Abb 5 5 sind die wichtigsten Klassen und Methoden des Editors darge stellt Einige Klassen die am Schluss dieses Kapitels beschrieben werden sind zugunsten der Ubersichtlichkeit in dem Klassendiagramm nicht dargestellt Allgemeine Beschreibung Alle hier beschriebenen Klassen befinden sich im Package pet rinet Fiir jedes Element eines fluiden stochastischen Petri Netzes gibt es eine eigene Klasse Die Klassen Arc Place Transition und SubstNode w
111. r Knopf Inhibitor Arc und der Men eintrag Insert Inhibitor inaktiv Dadurch wird vermieden dass ein FSPN Netz und ein GSPN Netz gleichzeitig im Editorfenster gezeichnet werden e Transition Mit disem Knopf kann eine zeitbehaftete Transition in das Editorfenster ge zeichnet weden Im Transitionseigenschaftsdialog kann man sp ter eine zeit behaftete Transition in eine Zeitlose umwandeln 116 KAPITEL 6 BENUTZERHANDBUCH SubstPlace Mit diesem Knopf kann ein Bildchen f r ein Substnetz in das Editorfenster gezeichnet werden Ein SubstPlace kann nur mit Transitionen verbunden werden SubstTransition Mit diesem Knopf kann ein Bildchen f r ein Subnetz in das Editorfenster gezeichnet werden Eine SubstTransition kann nur mit Stellen verbunden werden Arc Mit diesem Knopf kann eine Kante in das Editorfenster gezeichnet werden Kanten k nnen nur zwischen Stellen und Transitionen verlaufen Inhibitor Arc Mit diesem Knopf kann eine Inhibitor Kante in das Editorfenster gezeich net werden Wenn eine Inhibitor Kante im Editorfenster gezeichnet wird wird der Knopf ContPlace und der Men eintrag Insert ContPlace in aktiv Dadurch wird vermieden dass gleichzeitig ein FSPN Netz und ein GSPN Netz gezeichnet wird Close Window Mit diesem Knopf wird das Editorfenster geschlossen Select Mit diesem Knopf wird das Markieren von Netzobjekten erm glicht Cut Mit diesem Knopf wird ein ausgew hltes Elem
112. r angegeben wurde Diese Funktion ist z B hilfreich f r das To 3 3 APNN SIMULATOR 39 APNNSim export Reward evaluation PRNG seed 13 Trace level no Stationary Transient Accumulated Number of simulation events 1000 Modelling time 10000 0 CPU time 100 0 Confidence level 0 95 Width of confidence interval 0 1 Simulate Abbildung 3 6 APNN Simulator Hauptfenster kengame 3 3 APNN Simulator Das Simulatorfenster erscheint wenn man im Hauptfenster der APNN Toolbox den Men punkt Analysis und dann Simulator w hlt In diesem Simulatorfen ster befinden sich mehrere Parameter die man f r die Simulation einstellen kann siehe Abb 3 6 Ganz oben im Fenster kann man zwischen zwei M glichkeiten w hlen das Netz entweder normal zu simulieren oder mit Rewards zu evaluieren Die Reward Option ben tigt man wenn man das Netz mit Hilfe der quantitativen Analyse auswerten will z B soll die Datenerfassung nur in bestimmten Zust nden markierungsab h ngig erfolgen Damit k nnen anwenderspezifische Daten ausgewertet werden Ein weiterer Parameter ist PRNG seed dies ist die Saat f r den Zufallszahlenge nerator eingeben kann Diese Saat sollte eine Primzahl sein Weitere Optionen die man ausw hlen kann sind Trace level und der Typ der 40 KAPITEL 3 APNN TOOLBOX F R HIERARCHISCHE CGSPNS Simulation Mit der Trace level Option kann man w hlen welche Informationen w hre
113. ransitionsmodi Eigenschaftsdialog 69 70 KAPITEL 5 MODULBESCHREIBUNG HACK E Abbildung 5 10 Mehrere Transitionsmodi entfaltetes Netz 5 2 GRAMMATIK UND PARSER 71 Transition Abbildung 5 11 Ein hierarchisches Petri Netz 72 KAPITEL 5 MODULBESCHREIBUNG Stelle1_in_Sub Stelle2 in Sub Stelle in Sub Abbildung 5 12 Ein entfaltetes hierarchisches Petri Netz 5 2 GRAMMATIK UND PARSER 73 Coors List Node ID Node Name Node Bound Node Function Node al Transition Node Cont Node Partition Node Type Node Port Node Quard Node E 2 ua E a Diatribution Name Node Fusion Node RealExpr Node T Weight List Node z amp D MSE REST Node Flowrate Node IDList Node Colour Node Element Node MSE Node imerlace APNN GrammarConstants imerace Error TokenMgrError GrammarTre eConsta rts N i lt A J GrammarTokenManager Grammar y 1 SimpleCharStream Perserhelper Token Ze Exception ParaeException JJTA PNN GrammarState imerace Net Node Guard Function Node Cap Node P Type Node AAR 3I si e Ki ei Simple Node Er TA ww T Type AL Ak Ky vw M Multiset Node Diatribution Node Bind Node BoolExpr Node T Weight Node Coords Node Filename Node Prio Node Pisce Node Integer Node Memory Node Weight Node Abbildung 5 13 Klassend
114. rd Nun f gt sich die Transition dem Pool der in diesem Fall zeitbehaf teten Transitionen hinzu Abb 5 25 Aufruf 1 11 Das eigentliche Feuern ist nun vorbei Es folgt noch die Auswertung der Feuerzeit Abb 5 25 Aufruf 1 12 writeTransitionState Zudem wird die Anzahl der beob achteten Ereignisse um Eins erh ht Abb 5 25 Aufruf 1 14 damit korrekt nach Anzahl der Ereignisse abgebrochen werden kann Zu guter Letzt werden die Pools durch den SimController berpr ft damit die Anderungen welche sich durch das Feuern der Transition ergeben haben abgearbeitet werden k nnen 5 4 4 Auswertung W hrend einer Simulation werden vom Simulator die unterschiedlichsten Werte bzgl Stellenbelegung und Feuerzeitpunkte der Transitionen protokolliert Diese Daten werden am Ende der Simulation ausgewertet Wie die Protokollierung und die Auswertung im Detail funktioniert wird in den folgenden beiden Sektionen f r die Stellen und f r die Transitionen beschrieben Die Klassen die f r die Aus wertung zust ndig sind sind im Paket edu udo cs pg435 simulator core evaluation zusammengefasst worden Beobachtung der Stellen Bei der Beobachtung der Stellen wird die Belegung der Stelle durch Tokens oder Fluid ber die Zeit beobachtet Gegenw rtig berechnet die Auswertung am Ende eines Simulationslaufs die Werte Minimum Durchschnitt und Maximum der Stel lenbelegung in Abh ngigkeit von der Zeit Zus tzlich wird protokolliert wie viele 104 KAP
115. rere Transitionen gleichzeitig aktiviert Eine L sungsm glichkeit besteht in diesem Zustand darin die zu schal tende Transition zuf llig auszuw hlen Man kann Konflikte auch durch geschickte Netzstrukturierung vermeiden indem z B zus tzliche Stellen eingef hrt werden die eine Schalter Rolle bernehmen Eine f r die Analyse wesentlich wichtigere Situation ist eine Markierung in der keine Transition aktiviert ist also E M 0 In diesem Zustand sind keine weiteren Zustands berg nge m glich und das Netz ver ndert sich nicht mehr Diese Situation nennt man Deadlock und ein Petri Netz das sich in einem solchen Zustand befindet nennt man tot 2 2 Stochastische Petri Netze 2 2 1 Einfache stochastische Petri Netze Aus einem Petri Netz erzeugt man ein stochastisches Petri Netz indem man f r die Transitionen zuf llig verteilte Schaltzeiten vorsieht Dadurch entstehen die zeit behafteten Transitionen wobei die Zeit die zwischen der Aktivierung und dem Schalten einer Transition vergeht eine exponentiell verteilte Zufallsvariable mit Parameter A ra GE Ag MS y gt 0 Die Aufenthaltsdauer in dem Zustand Markierung ist exponentiell verteilt mit der Rate M ic E My verteilt und die Wahrscheinlichkeit P Mk mit der die Transition j im Zustand My als n chstes feuert betr gt MN Mk AL P M Angenommen im Zustand sind mehrere Transitionen aktiviert Dann feuert diejenig
116. rschiedener Simulationsszenari en deren Verlauf bereits wissenschaftlich belegt wurde Bekanntestes Beispiel ist das Erzeuger Verbraucher System dessen Ablauf aufgrund der geringen Anzahl an Stellen und Transitionen sehr gut nachvollziehbar ist Anhand solcher Beispiele wurde die Korrektheit des Simulators gezeigt Die Beschreibung und der Aufbau der einzelnen Beispiele sowie der Test und die Verifikation der Werte war derart umfangreich das diesem Part ein eigenes Kapitel im Endbericht gewidmet wurde Der Umfang der einzelnen Tests wird im folgenden pro Modul n her beschrieben 7 1 2 Tests im Modul APNNed Die folgenden Funktionstests wurden im Modul APNNed erfolgreich durchgef hrt Bearbeiten einzelner FSPN Objekte Bei diesen Tests wurden die grundlegenden Funktionen Einf gen L schen Bearbeiten Kopieren und Verschieben der Stellen Transitionen und Kan ten getestet Bei der Bearbeitung der einzelnen Objekte wurden die spezifischen Eigenschaften getestet So wurden beispielsweise bei den Stellen die Eingabe von Grenzen n her betrachtet und bei Transitionen die Konfiguration der Feuermodi Es wurden bei allen Eingabefeldern kritische Tests durchgef hrt um auch Fehlein gaben durch den Benutzer abzufangen z B die Eingabe von Buchstaben in Zah lenfeldern Des weiteren wurden auch kritische Tests auf Logik durchgef hrt so sollte beispielsweise die obere Grenze einer Stelle gr er als die untere Grenze sein Zus
117. s im Modul Simulator e Auf den Rechnern im PG Pool waren die Lasttests nicht erfolgreich das Problem war aber auf den leistungsst rkeren Rechnern der PG Teilnehmer nicht nachzuvollziehen Bewertung der Tests Bei den Fehlern im Editor handelt es sich ausschlie lich um Altlasten die von vorangegangenen Projektgruppen geerbt wurden Die beiden anderen Fehler sind von geringer Priorit t Ein Abbruch nach Zeit kann nicht exakt erfolgen es m sste sonst im ms Takt die CPU Zeit gepr ft werden Aus Performancegr nden wurde darauf verzichtet Da die Simulationen auf Heim PCs erfolgreich verliefen wur de diesem Punkt aufgrund der eher schlecht konfigurierten PG Pool Rechner nur wenig Beachtung geschenkt 7 2 Beispiel Erzeuger Verbraucher System Das Erzeuger Verbraucher Netz besteht aus den Transitionen T1 T2 T3 T4 und den diskreten Stellen P1 P2 P3 P4 sowie der fluiden Stelle F1 Es stellt einen Erzeuger T1 T3 P1 P2 sowie einen Verbraucher T2 T4 P3 P4 dar welche ber die fluide Stelle F1 verbunden sind siehe Abb 7 1 Die Parameter f r die Transitionen sehen wie folgt aus faj m m j 2 1 1 1 Enabling Enabling Enabling Enabling 138 KAPITEL 7 TESTS UND BEISPIELE Es 9 P es br Se 4 x Ka H Abbildung 7 1 Erzeuger Verbraucher System Auf den diskreten Kanten wird immer genau ein Token verschoben Dabei ist zu beginn der Simulation ein Token in P1 und ein Token in P3 Die dis
118. se und Schnittstellen getrennt in den Unterkapiteln er l utert Die restlichen Kapitel beschreiben das Resultat der Projektgruppenarbeit Kap 6 soll dem Leser die M glichkeiten und den Umgang mit dem neuen Programm vermitteln Dazu geh ren die Beschreibungen der Programminstallation des Um gangs mit der Programmoberfl che des Simulators und der Auswertung der Simu lationsergebnisse Im Kap 7 werden dann einige Beispielsmodelle mit dem Pro gramm erstellt und ausgewertet Die Plausibilit t der Simulationsergebnisse wird ebenfalls diskutiert In den Endkapiteln folgen danach noch einige Abschlu be merkungen Res mee und die Literaturliste Kapitel 2 Fluide stochastische Petri Netze Petri Netze eignen sich zur Modellierung Analyse und Simulation von dynami schen Systemen mit nebenl ufigen Vorg ngen Je nach Eigenschaften des zu mo dellierenden Systems k nnen verschiedene Klassen von Petri Netzen eingesetzt werden Dabei unterscheidet man haupts chlich zwischen stochastischen und flui den stochastischen Petri Netzen Abk rzungen PN SPN FSPN die in folgender Beziehung zueinander stehen PN C SPN C FSPN Bei der Simulation von hybriden Prozessen ist FSPN die einzige Klasse die von der Semantik und Struktur geeignet ist Um die Struktur und funktionsweise der fluiden stochastischen Petri Netze zu verstehen folgt zuerst eine Einf hrung in die beiden einfacheren Netzklassen 2 1 Allgemeine Petri Netze 2 1 1 Defini
119. selben Simulationsablauf als Ergebnis erh llt falls man bei einem Modell immer die gleiche Primzahl als Basis verwendet Durch Bet tigen des Buttons Generate seed wird eine gr ere Primzahl er stellt Integration method bietet eine Auswahl des Integrationsverfahrens welches bei der Simulation angewandt werden soll Als M glichkeiten stehen Euler Runge Kutta2 und Runge Kutta4 Verfahren zur Auswahl Integration step bestimmt die Weite des Integrationsschritts bei der Simulation Sample step stellt die Schrittweite der Auswertungsausgabe fest Stop criteria legt bestimmte Abbruchskriterien fest wonach die Simulation ge stoppt werden soll Es stehen drei Alternativen zur Auswahl die einzeln oder in einer Kombination ausgew hlt werden k nnen 128 KAPITEL 6 BENUTZERHANDBUCH FSPN Simulator Abbildung 6 11 Simulatoroberfl che Simulationsdatei wurde geladen 6 3 SIMULATION 129 _ Message a ff The simulation progress is finish Writing evaluation Abbildung 6 12 Simulation beendet Erfolgsmeldung e Simulation Time Abbruch beim Erreichen einer bestimmten Simulati onszeit e CPU Time Abbruch nach bestimmter CPU Zeit e Number of Events Abbruch beim Erreichen einer bestimmten Anzahl von Ereignissen Elements bietet die M glichkeit die zu beobachtenden Objekte Stellen und zeit behaftete Transitionen f r die Auswertung einzeln zu markieren Durch das Bet tigen des Buttons Select Al
120. ss die Stelle entsprechend viele Tokens bzw entsprechend Platz haben C Zuletzt gibt es noch die Guardfunktion welche ebenfalls eine Beziehung zwi schen der Transition und der Stelle ist Wird einer Transition eine Kante hinzugef gt so wird wg A die Anzahl der zu erf llenden Bedingungen erh ht Abb 5 23 Aufruf 1 2 2 2 und 1 3 2 2 increment NumOfConditions Zudem wird sie entsprechend ihrer Richtung in die Liste der ein bzw ausgehenden Kanten eingef gt Wenn die Kante vom Typ FluidArc ist so wird sie auch in die Liste der fluiden Kanten aufgenommen Abb 5 23 Aufruf 1 5 1 Die Beziehung aus B wird intern in eine echte Guardfunktion umgewan delt und im folgende wie eine vom Benutzer definierte Guard behandelt Sowohl die Guardfunktionen aus B wie auch die aus C werden von einem Guardwrap per eingepackt Im Konstruktor des Guardwrappers wird bei der zugeh rigen Transition die Anzahl der zu erf llenden Bedingungen um eins erh ht ber die Methode incrementNumOfConditions Noch w hrend der Initialisierung wird berpr ft ob die Bedingungen erf llt sind so dass ggf die Anzahl der erf llten Bedingungen hochgesetzt wird Damit nicht f lschlicherweise zu Beginn Fl sse aktiv sind obwohl die Transition inaktiv ist werden die Fl sse jedes mal explizit ausgeschaltet Abb 5 23 Aufruf 1 2 2 1 wenn incrementNumOfConditions aufgerufen wird 5 4 SIMULATOR KERN 99 init
121. sst F r die Auswertung der Transitionen kommen nur die zeitbehafteten Tran sitionen in Frage da nur diese Feuerzeiten besitzen Zeitlose Transitionen feuern dagegen sofort bei ihrer Aktivierung eine Auswertung ihrer Feuerzeiten ist daher nicht erstrebens wert Die Funktionsweise ist auch hier recht einfach Beim Feuern einer zeitbehafteten Transition wird die Stichprobe der Transition zentral in der Klasse TransitionsE valuation erfasst Am Ende der Simulation werden die Stichproben ausgewertet der Simulator liefert neben der Anzahl der Beobachtungen die durchschnittliche Feuerzeit der Transition die Varianz und die Standard Abweichung 106 KAPITEL 5 MODULBESCHREIBUNG Kapitel 6 Benutzerhandbuch 6 1 Installation und Start 6 1 1 Mindestanforderungen F r den Betrieb der Applikation werden die folgenden Mindestanforderungen an Hard und an Software gestellt 1 Hardware e PC mit IGHz CPU e Festplatte F r die Installation wird ca 5MB freier Festplattenspeicher ben tigt F r die Simulation wird weiterer Speicherplatz ben tigt Dieser ist ab h ngig vom Simulationslauf e Internetzugang f r den Download des Installationspakets 2 Software e Betriebssystem Linux Windows 2000 XP 98 e Installiertes Sun JDK 1 3 2 e Optional Tabellenkalkulationsprogramm zur Anzeige der Auswertungs dateien Empfohlen Je komplexer das Netz und die Simulationsparameter Simulationszeit Integrati onsparameter sind desto gr
122. st die positive Unendlichkeit Die Ober grenze darf nur eine reelle Zahl oder Infinity sein e Wenn die Schaltfl che OK bet tigt wird wird das Dialogfenster geschlos sen und alle im Dialogfenster ausgef llten Daten werden gespeichert e Wenn die Schaltfl che Cancel bet tigt wird wird das Dialogfenster ge schlossen und alle im Dialogfenster ausgef llten Daten werden verworfen 56 KAPITEL 5 MODULBESCHREIBUNG DiscPlace unnamed unnamed_aa unnamed 1922337203685477 Abbildung 5 3 Eigenschaftsdialog einer diskreten Stelle Ausserdem wird berpr ft ob die Untergrenze kleiner oder gleich der Obergrenze ist und ob der Anfangswert zwischen der Untergrenze und der Obergrenze liegt Dialog f r diskrete Stellen Abb 5 3 zeigt den Eigenschaften Dialog einer diskreten Stelle Dieser Dialog war schon vorhanden Die einzige nderung die hier vorgenommen wurde ist ein Text feld in dem die maximale Anzahl Tokens die diese Stelle enthalten darf eingege ben werden kann Der vorgegebene Wert ist 9223372036854775807 Die Ober grenze darf diesen Wert nicht berschreiten und muss eine positive ganze Zahl sein 5 1 APNN EDITOR 57 Abbildung 5 4 Dialog f r Netzinformaationen Dialog f r Netzinformationen Abb 5 4 zeigt einen Dialog in dem Netzinformationen angezeigt werden Dieser Dialog war schon vorhanden und wurde um einige Details erweitert Um es zu ff nen w hlt man im Menu Fenste
123. t t des Netzes getestet werden Es ffnet sich ein Fenster das eine Schrittweise Feuerung der Transitio nen erm glicht wobei allerdings die Verteilungen und Feuerraten nicht beachtet werden Die zeitlosen Transitionen haben aber immer noch Vorrang vor den zeit behafteten Zur sp teren Analyse des Netzes k nnen Traces aufgenommen und gespeichert werden Dies sind Protokolle der Feuerfolge der Transitionen und der Netzzust nde die im Tokengame entstanden sind Es gibt noch weitere M glich 3 1 ALLGEMEINE BESCHREIBUNG 33 unnamed aa fr xe File Edit View Substitution Fusion Insert E b Uh a ii EH Select ad Spline Exten Scale 100 y DO Abbildung 3 2 APNN Editor Editorfenster keiten f r die Analyse eines Netzes auf die aber hier nicht n her eingegangen wird Im folgenden werden kurz einige wichtige Symbole der APNN Grammatik erkl rt und an Beispielen gezeigt wie gespeicherte Netze im APNN Format aussehen Zu n chst ist eine APNN Datei eine einfache Text Datei mit der Endung apnn In der APNN Grammatik werden Terminalsymbole gro und Nichtterminalsymbole klein geschrieben Das Startsymbol hei t project Eine Stelle kann z B die fol gende Form haben place a3 name placel partition unnamed_aa point 176 121 colour with colorl color2 screen_colours 25508 colorl 11731047 color2 init 0 colorl 10 color2
124. t Hilfe eines Objek tes dieser Klasse kann man Zeichenketten visuell darstellen oder diese aus einer Datei laden InfoLabel Diese Klasse hat nichts mit der Simulation zu tun aber sie dient dazu Informatio nen ber diese PG in einem Dialogfenster anzuzeigen 5 3 3 Schnittstellen und Ablauf einer Simulation Wie bereits vorher erw hnt dient die Simulator GUI als eine zentrale Schnitt stelle zwischen dem Editor dem Parser und dem Simulator siehe Abb 5 17 Die Schnittstelle zwischen dem Editor und der Simulator GUI ist die Methode 82 KAPITEL 5 MODULBESCHREIBUNG lt lt Call gt gt lt lt gt A lt lt Call gt gt Abbildung 5 17 Simulator GUI Schnittstellen Parser startGUIin der SimGUI Klasse Diese Methode leitet die angegebene APNN Datei die sie vom Editor bekommt weiter zum Parser Objekt Wenn die Methode parse des Parser Objektes mit der angegebenen APNN Datei von der GUI aufge rufen wird wird diese Datei gelesen geparst und als eine Netzstruktur im Parser Objekt gespeichert Die GUI ruft danach die Methode st art Travel des Parser Objektes auf damit wird die Netzstruktur durchgelaufen und alle Stellen Transi tionen und Kanten an die SimCont roller Instanz weitergegeben Die Simulator GUI kann auf die Informationen die Liste aller Stellen und Transitionen vom Par ser zur ckgreifen Damit baut sie die Elementetabelle auf in der man aus
125. t man die Beschreibung der APNN Toolbox f r hierarchische farbi ge GSPNs Es werden die Modellierungs Simulations und Analysem glichkeiten beschrieben die das Programm dem Benutzer anbietet Da die Oberfl che des Pro gramms insbesondere die des Editors sp ter bernommen und nur erweitert wird wird diese ebenfalls in dem Kapitel vorgestellt Damit ist dem Leser die gesamte Information vermittelt die notwendig ist um die Entwicklung des neuen Projektes zu verfolgen und zu verstehen Die darauf folgenden Kapitel beschreiben die eigentliche Projektentwicklung 12 KAPITEL 1 EINLEITUNG Kap 4 kann man als Pflichtenheft des Projektes auffassen Darin findet man die Definitionen und Voraussetzungen die f r den neuen Editor und Simulator gel ten m ssen Danach wurde die Auflistung und Beschreibung aller Aufgaben die das Erstellen von neuen oder das Erweitern der existierenden Programmteile be treffen erstellt Dazu geh ren die Erweiterungen f r die APNN Grammatik den Editor und die M glichkeiten des neuen Simulators Im Kap 5 findet man die genaue Beschreibung aller Arbeiten die w hrend der Implementierungsphase durchgef hrt wurden und die innere Struktur des neuen Programms Die Projektgruppe wurde in 4 Untergruppen aufgeteilt die an den we sentlichen Bestandteilen des neuen Programms Editor Parser Simulator GUI und Simulator Kern gearbeitet haben Dem entsprechend werden diese Bestandteile ihre Struktur Funktionswei
126. tik um sie zu beschreiben kann man die APNN Toolbox als Basis nehmen und sie zu einer Modellierungsumgebung f r FSPN erweitern 1 3 Aufgabe der PG Die Projektgruppe 435 hat sich zur Aufgabe gesetzt die APNN Toolbox 23 zu ei ner Modellierungsumgebung f r fluide stochastische Petri Netze zu erweitern Das Programm soll alle F higkeiten der alten APNN Toolbox beibehalten zus tzlich aber die M glichkeit bekommen die kontinuierlichen FSPN Objekte zu editieren und zu speichern Einige Teile der APNN Toolbox die in kontinuierlichen und hy briden Systemen keinen Sinn ergeben weil sie von einem diskreten Zustandsraum ausgehen oder in der Realisierung sehr umst ndlich sind fallen mit der Erwei terung weg Dazu geh ren die Zustandsraumgeneratoren Invariantenberechnung und Tokengame Das Programm besteht aus einem Editor um eine einfache grafikorientierte Model lierung zu erm glichen und einem Simulator um die erstellten Modelle ablaufen zu lassen und zu analysieren 1 4 Projektdurchf hrung Das Projekt fand im WS 03 04 und im SS 04 statt Das erste Semester begann mit einer Seminarphase in der mehrere Vortr ge aus den Bereichen Simulation von diskteren kontinuierlichen und hybriden Systemen stattfanden Au erdem wur den Themen aus den Bereichen Petri Netze Modellierungstools f r Petri Netze und Java Thread Programmierung behandelt An die Seminarphase schloss sich ein Modellierungspraktikum an Dieses Praktikum hatte zum
127. tion und Arbeitsweise Petri Netze werden normalerweise als gerichtete Graphen dargestellt die aus zwei Sorten von Knoten den Stellen S und den Transitionen T bestehen die miteinan der ber die Kanten F verbunden werden Die Stellen werden durch Kreise und die Transitionen durch Rechtecke dargestellt Dabei d rfen die Kanten nur von einer Knotensorte zur anderen f hren Das Vorhandensein dieser Komponenten reicht schon f r die Definition eines einfachen Petri Netzes aus Petri Netz Tripel S F mit folgenden Eigenschaften e Die Mengen der Stellen S und Transitionen T sind disjunkt 13 14 KAPITEL 2 FLUIDE STOCHASTISCHE PETRI NETZE Abbildung 2 1 Das Feuern einer Transition e Es ist mindestens ein Platz oder Transition vorhanden Z und S Z e Die Kanten F verbinden ausschlie lich paarweise die Elemente aus 5 und T F PxT No Stellen die ber die von ihnen ausgehenden Kanten mit einer Transition 7 verbun den sind hei en Vorbereich von T Analog dazu bilden die Stellen die direkt ber die ausgehende Kanten von der Transition T erreichbar sind ihren Nachbereich Zur Modellierung dynamischer Eigenschaften eines Systems werden Marken oder Tokens eingef hrt Eine Stelle kann mehrere Tokens enthalten Beim Schalten oder auch Feuern einer Transition wird allen Stellen im Vorbereich je eine Marke entnommen und allen Stellen im Nachbereich je eine hinzugef gt siehe Abb 2 1 Das Schalten kann nur
128. tzlich wurden Subnetze als weitere Funktion des Editors getestet Dazu wur den Netze mit Hierarchien mit bis zu f nf Ebenen erfolgreich getestet 7 1 TESTS 135 Dateimanagement Beim Dateimanagement sollte der Umgang mit APNN Dateien n her betrachtet werden K nnen Netze gespeichert und danach ohne Informationsverlust wieder geladen werden Ist der Wechsel zwischen verschiedenen Projekten APNN Dateien m glich Hier wurde auch die Korrektheit des editorinternen Parsers getestet Die se Funktionenwerden erfolgreich getestet Aufruf des Simulators Innerhalb des Editors besteht die M glichkeit den Simulator zur Simulation des aktuell gew hlten Projekts zu starten Hier ist zu beachten dass es nun zwei Simu latoren gibt Den einen alten f r GSPN und den neuentwickelten f r FSPN Je nach Projekt sollte der passende Simulator gestartet werden Lasttests Innerhalb des Editors wurde ber die Anzahl der verwendeten Objekte versucht vorwiegend den Speicher der Applikation zu fordern Innerhalb der Tests wurde festgestellt dass Netze mit mehr als 500 Elementen Stellen bzw Transitionen m glich waren Zus tzlich wurden komplexe Netzstrukturen Netze mit vielen Kantenverbindungen getestet 7 1 3 Tests im Modul Simulator GUI Die folgenden Funktionstests wurden im Modul Simulator GUI erfolgreich durch gef hrt Dateimanagement Innerhalb der GUI des Simulators gibt es f nf Dateien Zum einen die APNN Datei mit dem aktuelle
129. ubnetz 29 3 1 APNN Editor Hauptmen 32 3 2 APNN Editor Editorfenster 33 3 3 Editierfenster des APNN Editors 36 3 4 APNN Editor Stelleneigenschaften 36 3 5 APNN Editor Transitionseigenschaften 37 3 6 APNN Simulator Hauptfenster 39 3 7 APNN Simulator Simulationsergebnisse 41 5 1 Eigenschaftsdialog f r Transitionen 54 5 2 Eigenschaftsdialog f r Kontinuierliche Stellen 55 5 3 Eigenschaftsdialog einer diskreten Stelle 56 5 4 Dialog f r Netzinformaationen 57 5 5 APNN Editor Klassendiagramm 58 5 6 Mehrfarbiges Petri Netz 66 5 7 Mehrfarbiges Petri Netz entfaltet 67 5 8 Petri Netz mit mehreren Transitionsmodi 68 5 9 Mehrere Transitionsmodi Eigenschaftsdialog 69 5 10 Mehrere Transitionsmodi entfaltetes Netz 70 5 11 Ein hierarchisches Petri Netz leen 71 150 5 12 5 13 5 14 5 15 5 16 5 17 5 18 5 19 5 20 5 21 5 22 5 23 5 24 5 25 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 6 11 6 12 6 13 6 14 7 1 1 2 ABBILDUNGS VERZEICHNIS Ein entfaltetes hierarchisches Petri Netz 72 Klassendiagramm des Parsers 73 Beispiel eines Grammatikbaums 75 FSPN Simulatorfenster
130. ubt ist Wenn alle Einstellungen der Transition sowohl in FSPN s als auch in GSPN s erlaubt sind gibt sie den String both zur ck Der zur ckgelieferte Wert der Methode distributionArt wird an die Methode neue updateDistr der Klasse Project bergeben Die nderungen f r die Tabelle des TransitionDialog werden in dem Abschnitt Die Klasse TablePanel beschrieben Die Methoden initControls initTableCells und saveModeList wurden er weitert so dass jetzt auch die benachbarten kontinuierlichen Stellen ber cksichtigt werden Die Klasse TablePanel Diese Klasse stellt die Tabelle in einem TransitionDialog dar Es gibt f r jede an die Transition anliegende diskrete Stellenfarbe eine Tabellenzeile in wel che das zugeh rige Kantengewicht eingetragen werden kann Soweit war die Klas se schon vorhanden und wurde erweitert Zu jeder benachbarten kontinuierlichen Stelle der Transition wird der Tabelle jetzt eine Zeile hinzugef gt in der die Fluss funktion eingegeben werden kann und eine Zeile in der die Guardfunktion ein gegeben werden kann Zu jeder benachbarten diskreten Stellenfarbe der Transition wird der Tabelle eine weitere Zeile hinzugef gt in der eine Guardfunktion eingege ben werden kann Die Funktionen werden mit Hilfe des Package berpr ft 5 2 Grammatik und Parser 5 2 1 Aufgabe des Grammatikparsers Die Aufgabe des Grammatikparsers ist APNN Dateien zu lesen Stellen Transi tionen und Kanten mit i
131. ular Systems e log4j 1 2 8 Jar Logging Service des Apache Projekts e oldAPNNed jar enth lt Teile des alten Editors die f r die GSPN ben tigt werden e Simulator jar enth lt den FSPN Simulator inkl GUI e ssj jar enth lt die hybride Simulationsengine SSJ Stochastic Simulati on in Java e St artAPNNed bat Editor Startskript Windows Version e st artAPNNed sh Editor Startskript Linux Version e startSimulator bat Simulations GUI Startskript Windows Version e startSimulator sh Simulations GUI Startskript Linux Version 6 2 MODELLIERUNG 109 Zus tzlich wird noch das Verzeichnis images entpackt das die Icons zum Editor enth lt Evtl m ssen die Rechte der Shell Skripte angepasst werden mit chmod 770 sh Optional enth lt das Installationspaket ein Verzeichnis examples das einige Bei spiele im APNN Format enth lt Diese k nnen zu ersten Tests verwendet werden 6 1 3 Programmstart Wie bei der Installation bereits erw hnt werden beim Entpacken des Archivs vier Start Skripte f r die einzelnen Module installiert Diese unterteilen sich anhand der Betriebsysteme es gibt zwei Batch Dateien f r den Betrieb unter Windows und zwei Shell Skripte f r den Betrieb unter Linux Das Verhalten ist aber Betriebssy stem unabh ngig und sieht wie folgt aus die Datei startSimulator ruft die Simulator GUI auf mit der es m glich ist bestehende APNN Dateien zu ffnen und das enthaltene FSPN Netz zu simu
132. ungen der Werte dieser Variablen kontinuierlich ber die Zeit erfolgen Dieser Art von Systemen begegnet man h ufig in der Natur weshalb sie in der Physik und in vielen Inge nieurwissenschaften betrachtet werden Kontinuierliche Systeme werden traditio 7 8 KAPITEL 1 EINLEITUNG nell durch Differentialgleichungssysteme mathematisch beschrieben Zum anderen trifft man im Umfeld von Systemen die vom Menschen gestaltet wurden und insbesondere im Umfeld von Rechen und Kommunikationssystemen digitale Systeme im Unterschied zu analogen Systemen auch auf Systeme de ren Zustand eher durch diskrete Zustandsvariablen beschrieben wird und bei denen Zustands nderungen spontan und atomar erfolgen Wegen dieser abrupten diskon tinuierlichen nderungen sind in diesem Bereich Differentialgleichungen als Be schreibungsmittel nicht hilfreich Es gibt eine Reihe von Notationen die in der Informatik hierf r entwickelt wurden Endliche Automaten seien hier als g ngiges Beispiel genannt Letztlich existieren nat rlich auch Kombinationen aus beiden Varianten Dies f hrt zu den sogenannten hybriden Systemen in denen beispielsweise ein chemischer Transformationsprozess der als ein kontinuierliches System beschrieben wird von einer Steuerung kontrolliert und beeinflusst wird die ein diskretes System ist So wohl kontinuierliche als auch diskrete und hybride Systeme lassen sich auf ei nem Rechner wirkungsvoll simulieren In Zeigler 2 wird ein
133. ustand keine zeitlosen Transitionen aktiviert wird wie auch bei stochastischen Petri Netzen eine Verteilung bestimmt und die Transi tion mit der k rzesten berechneten Wartezeit wird auch als erste feuern es sei denn sie wird in dieser Zeit durch die Ver nderung des fluiden Pegels in einer der zust ndigen Stellen wieder deaktiviert W hrend eine zeitbehaftete Transition aktiviert ist flie t das Fluid ber alle an sie angeschlossenen fluiden Kanten Die Fl sse werden wieder gestoppt sobald die Transition deaktiviert wird oder feuert Das f hrt zur Notwendigkeit die Zeitpunkte zu kennen in denen die kritischen 22 KAPITEL 2 FLUIDE STOCHASTISCHE PETRI NETZE Pegel erreicht werden Da aber die Flussbegrenzungen 1 a keine Konstanten son dern Funktionen sind die Zeit Marken und Pegelabh ngig sein k nnen erh lt man die gesuchten Zeitpunkte und alle Pegel als die L sung eines Differentialglei chungssystems der Form vq E Ps 0 SC f farm 2 Summiert wird ber alle t E m x 0 Das System hat als Anfangsbedingung x 0 und gilt solange bis das Netz den aktuellen Zustand nicht ver ndert also E m z 0 Wenn die Flussbegrenzungsfunktionen einfach sind existieren entsprechend einfa che L sungen f r die Differentialgleichungen In einem zeitlosen Zustand werden dagegen einfach die Wahrscheinlichkeitsge wichtungen verwendet um zu bestimmen welche Transition feuern soll
134. uto2 AnkommendesAu to3 AnkommendesAuto4 die das Ankommen von Autos realisieren e den diskreten Stellen WartendesAutol WartendesAuto2 WartendesAuto3 WartendesAuto4 e den Transitionen Tanksaeulel Tanksaeule2 Tanksaeule3 Tanksaeule4 die mit der fluiden Stelle Tankspeicher verbunden sind Wenn mindesten eine der Stellen WartendesAutoX einen Token enth lt und Tankspeicher nicht leer ist zieht die entsprechende Tanksaeule das Fluid aus dem Tankspeicher ab Wenn diese Transition gefeuert wird wird ein Token von einer der Stellen WartendesAutoX abgezogen e der zeitlosen Transition TankWagen die die Fluide Stelle TankSpeicher mit einem Impuls von 300 Gallonen bef llt wenn die Stelle TankWagenIstDa einen Token enth lt e der diskreten Stelle TankWagenIstWeg und der Transition TankWagenKommt Die beiden dienen dazu das Ankommen des Tankwagens und das Bef llen des Tankspeicher zu kontrollieren Die Parameter f r die Netzelemente sehen wie folgt aus 140 KAPITEL 7 TESTS UND BEISPIELE TankStelle5 Select moc Grid _ Splines _ Extende Scale 1 00 WartendesAuto1 AnkommendesAuto 1 Tanksaeule2 WartendesAuto2 AnkommendesAuto2 Tanksaeule x WartendesAuto3 AnkommendesAuto3 Tanksaeule4 WartendesAuto4 AnkommendesAuto4 TankWagenlstDa TankWagenKommt Abbildung 7 2 Beispiel Tankstelle 7 3 BEISPIEL TANKSTELLE 141 wena o o 1 i of o Die Simul
135. w hlen kann welche Stelle oder Transition beobachtet werden soll Die Simulator GUI kommuniziert mit dem Simulatorkern durch folgende Methoden e startSimulator in dieser Methode wird die Simulation wirklich begin nen e simulateButtonActionPerformed in dieser Methode werden alle Parameter und Einstellungen f r die Simulation gesammelt und an SimController Objekt weitergegeben e stopButtonActionPerformed diese Methode sendet eine vorzeitige Simulationstopp Nachricht an SimController Objekt e simulationFinished diese Methode wird aufgerufen um der Simulator GUI Bescheid zu sagen dass die Simulation aus welchem Grund auch im 5 4 SIMULATOR KERN 83 mer bereits zu Ende ist Am Ende werden die Log Informationen und Er gebnisse der Simulation sofern dise existieren im Monitoring Panel und Results Panel dargestellt 5 4 Simulator Kern 5 4 1 Verwendete Tools berblick Bei der Entwicklung des FSPN basierten Simulators wurde auf verschiedene frei verf gbare Bibliotheken zur ckgegriffen die die Gruppe bei der Implementierung unterst tzten Unter anderem wurde die Java Bibliothek SSJ 24 25 genutzt sie bildet die Basis des Simulators Des weiteren wurde der Java Expression Parser JEP 27 f r die Umsetzung von Guards und Flussfunktionen eingebunden siehe dazu die vorangegangenen Kapitel F r die Logausgaben des Simulators wurde die Apache Bibliothek Log4J genutzt 26 Die einzelnen Pakete sollen im folgende
136. w hlten Ab bruchkriterien ist e notifyStop diese Methode wird aufgerufen um das SimProgress Objekt in der Simulator GUI zu benachrichtigen dass die Simulation zu Ende ist ElementTableModel Diese Klasse ist eine abgeleitete Klasse von DefaultTableModel und dient dazu eine Basis f r die Elementetabelle bereitzustellen Die grundlegenden Me thoden dieser Klasse sind 5 3 SIMULATOR OBERFLACHE 81 e isCellEditable diese Methode liefert den Wert t rue wenn die Spal tenummer ungerade ist d h nur die Spalten mit dem Checkbox sind editier bar e getColumnClass diese Methode liefert die Klasse der gew nschten Spal te zur ck Wenn die Spalte keine Daten enth lt wird die Object Klasse zu r ckgeliefert e setData diese Methode setzt die angegebenen Daten in Form einer Tabel le um e clearData diese Methode entleert alle Daten in der Tabelle e getPlaceIndex diese Methode gibt den Vektor welcher alle Place IDs des Netzes enth lt zur ck e getTransitionIndex diese Methode liefert den Vektor welcher alle Transition IDs des Netzes enth lt zur ck ElementTable Diese Klasse ist eine abgeleitete Klasse von JTable und benutzt die Element TableModel Klasse als Basis zum Aufbau eine Tabelle Eine Tabelle dieser Klasse hat die Ei genschaften um die Daten in der Tabelle zu sortieren und die Breite der Spalte automatisch anzupassen ResultPane Diese Klasse ist eine abgeleitete Klasse von JTextPane Mi
137. wurden die Kontrollen der Gr e von Init Tokens Actual Tokens und Tokens eingef gt Die Klasse TransitionDialog Diese Klasse erbt von der Klasse PNDialog Es wurde ein weiterer Radio Button Resampling zu den vorhandenen Radio Buttons Age Memory und Enabling Memory hinzugef gt Der Auswahlliste f r die Verteilungen wurden weitere Ver teilungen hinzugef gt Die neuen Verteilungen und der neue Radio Button sind nur in FSPN s erlaubt d h nur in Netzen die mit dem neuen FSPN Simulator simu liert werden sollen Umgekehrt gibt es Verteilungen die nur in GSPN s erlaubt sind Im TransitionDialog k nnen vom Benutzer Verteilungen eingef gt und der Radio Button Resampling ausgew hlt werden Nachdem der OK Button des TransitionDialogs gedr ckt wurde wird mit Hilfe der neuen Metho de distributionArt gepr ft ob zwei Distributionen ausgew hlt wurden die nicht beide in einem Netz erlaubt sind oder ob Resampling gew hlt wurde und eine Distribution die im FSPN nicht erlaubt ist Der TransitionDialog kann nur geschlossen werden wenn alle Distributionen und der Resampling Button korrekt gesetzt wurden d h alle gleichzeitig erlaubt sind Die Methode 5 2 GRAMMATIK UND PARSER 65 distributionArt gibt den String spn zur ck falls die Transition ei ne Einstellung enth lt die nur in FSPN s erlaubt ist Sie gibt gspn zur ck falls die Transition eine Einstellung enth lt die nur in GSPN s erla
138. zu erf l lenden Bedingungen addArc f gt der Transition eine Kante hinzu Im n chsten Unterkapitel wird darauf genauer eingegangen Die wohl wichtigste Methode im Interface Transition ist fire Sie bewirkt das Feu ern der zugeh rigen Kanten Da die Kanten wissen was zu tun ist muss die Transition nur die Kanten durchlaufen und feuern Dabei werden zun chst die ein gehenden dann die ausgehenden Kanten gefeuert Aus diesem Grund sind die Kan ten einer Transition in zwei Listen aufgeteilt Entsprechend der FSPN Definition verf gen die Objekte der Klasse Immediate Transition ber ein Gewicht und eine Priorit t Diese Werte werden genutzt um die n chste zu feuernde zeitlose Transition zu ermitteln Die Klasse TimedTransition ist von der SSJ Klasse Event abgeleitet Somit lassen sich Objekte dieser Klasse in die SSJ Eventqueue einf gen Jedes Objekt besitzt eine eigene Verteilung welche in der Klasse TTRndGenerator gekapselt ist Diese Verteilung liefert die Zeitdifferenz zum n chsten Feuerzeitpunkt Die fluiden Kan ten der Transition werden in einer seperaten Liste gehalten damit die Fl sse ein fach verwaltet werden k nnen Jedes Objekt weiss in welchem Zustand es sich be findet Dies wird im Attribut state festgehalten Um eine einfache Vergleichbarkeit bei gleichzeitiger Typsicherheit zu erm glichen wurde hier das Typesafe Enum Pattern verwendet die Klasse TTState ist die entsprechende Typisierungsklasse Der Zustand ist

Download Pdf Manuals

image

Related Search

Related Contents

Valueline VLSP40020W20 coaxial cable  カタログ  取扱説明書 - イメージニクス  5516E-5586R User Manual  FlexAct® MF  

Copyright © All rights reserved.
Failed to retrieve file