Erweiterung von Methoden zur Untersuchung von simultanen Ereignissen
- Slides: 30
Erweiterung von Methoden zur Untersuchung von simultanen Ereignissen Abschlussvortrag zum Praktikum Jamshid Azizi azizi@cs. uni-bonn. de 05. 04. 2001
Ziele des Praktikums Erweiterungen und Optimierungsmöglichkeiten von MOOSE in der Laufzeit Behandlung und Auswertung von Simulationsergebnissen und Logging Entwicklung einer neuen Methode aus der Methode Identifizierung des Ereignistypen Reduzierung der Rechenzeit Entwicklung eines stochastichen Verfahrens (Treffen einer Auswahl von simultanen Ereignissen : - Stichprobe ) 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 2
Der Name des Projektes odule-based bject riented imulation nvironment 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 3
Übersicht MOOSE Projekt TOMAS Erweiterung von Simulationsgraphen für komplexe Szenarien, Module/ Interfacekonzept Frontend/ Backend Anwendung Einfache Szenarien LG/ LS, TCP Netzsicherheit MOOSE Core APRIKOT Formalisierung Algorithmenstruktur, Implementierung Nutzbarmachung zur Laufzeit lokale/ globale APK_Phase Laufzeitphase Bewertung von APK, Branching, Zustandsvergleich, Ergebniserweiterung 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 4
Anforderungen an einen neuen Simulator MOOSE (1) Ermöglichung einer umfassenden Betrachtung und Behandlung von simultanen Ereignissen Hauptziel des gesamten MOOSE-Projekts: Maximierung der Ergebnismenge, die beim Branching entsteht. gleichzeitige Minimierung des Rechenaufwandes 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 5
Anforderungen einen neuen Simulator Anforderungen an für einen neuen Simulator MOOSEMOOS (2) Ermöglichung einer umfassenden Betrachtung und Behandlung von simultanen Ereignissen Hauptziel des gesamten MOOSE-Projekts: Maximierung der Ergebnismenge, die beim Branching entsteht. gleichzeitige Minimierung des Rechenaufwandes Erhalt einer erweiterbaren und leistungsfähigen Basis für künftige Simulationsprojekte t=2 { t=1 05. 04. 2001 S Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 6
Identifizierung in MOOSE durch ID’S Die eindeutige Identifizierung von Ereignissen zur Laufzeit ist eine entscheidende Voraussetzung: für eine präzise Betrachtung von simultanen Ereignissen für die Erzeugung eines lesbaren Logfiles Das Logfile ermöglicht dem Benutzer: den Abruf von Informationen zur Bearbeitung der Ereignisse zur Laufzeit. die Auswertung des Simulationsbaumes nach der Simulation eine bessere Darstellung des Simulationsbaumes 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 7
Identifizierung der Verzweigungen im Simulationsbaum Als Erweiterung des Programmes von Michael Schikora wurden zunächst die Simulationsläufe identifiziert. Ziele: Zusätzliche Abspeicherung aller Informationen über Simulationsbaum zur Laufzeit in temporäres Logfile. Implementierung einer neuen Art der Auswertung und Aufzeichnung von simultanen Ereignissen. Die Verbesserung der Abschätzungsmöglichkeit Durch Vergabe von Branch. ID´s kann man nach der Simulation feststellen : welche Simulationszweige in der Realität betrachtet wurden und welche nicht. Erhalten einer Vorstellung vom gesamten Simulationsbaum 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 8
Syntaktische Darstellung einer Branch. ID Um die Informationen über den Simulationsbaum in das temporäre Logfile in einer bestimmten Form codieren zu können, wurden numerische ID´s verwendet. <I. I. I> String-Typ Integerzahl (Präfix) Punktnotation als Trennung 05. 04. 2001 Integerzahl (Suffix) Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 9
Allgemeine Form eines temporären Logfiles In dem temporären Logfile werden nur die Branch. ID’s von Simulationszweigen eingetragen, die in der Realität bearbeitet wurden. temporäres Logfile <b. ID> : <Zustandsvariable> = <Wert> $ <b. ID> <b. ID 1>, <b. ID 2>, . . . , <b. IDk> // 2 k n $ <b. IDi> = <b. IDj> // für 1 i n und // für 1 j n Auf Grundlage dieser Branch. IDs kann man erkennen, welche Simulationszweige verfolgt wurden. Außerdem kann man zusätzliche Informationen zum Simulationsbaum herausfinden. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 10
Reduzierung der Rechenzeit durch Verwendung des stochastischen Verfahrens Der Scheduler „Branch. And. Compare“ ermöglicht: die Feststellung, dass eine große aber begrenzte Menge von simultanen Ereignissen in der Future-Event-List erfasst worden ist. Eine Prognose darüber, ob ein Simulationsbaum einen großen, nicht jedoch welchen genauen Umfang er hat. diese Feststellung kann kurz vor Beginn der Laufzeit oder zur Laufzeit gewonnen werden. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 11
Verwendeter Algorithmus in der Klasse „Sampling. Of. Sim. Events“ (1) Kriterien der Parameterschätzung Bei bestimmten Grenzübergängen ihrer Parameter konvergieren viele Verteilungen gegen die Normalverteilung. Ein großer Teil der Stichprobenfunktionen ( Summe, Anteil und arithmetisches Mittel) sind exakt oder annähernd normal verteilt. Ziel des Algorithmus ist: eine Schätzung eines Populationsparameters zu finden. ~ N ( , v n ) vn ist die Varianz von 05. 04. 2001 für einen Stichprobenumfang „n“. . Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 12
Verwendeter Algorithmus in der Klasse „Sampling. Of. Sim. Events“ (2) Bemerkung: je größer der Stichprobenumfang desto größer die Präzision. v 0 Präzision vn „n" soll so groß sein, dass folgende Ungleichung mit der Wahrscheinlichkeit 95% ( = 0. 05) gilt: P{| - | e} 1 - d. h. das entsprechende Konfidenzintervall darf höchstens „ 2 e“ sein die Länge des Konfidenzintervalles ist für gleich 2 Z /2 vn. äquivalent dazu gilt: Z /2 vn e d. h. vn [e/ Z /2]² dadurch gilt: v 0 = [e/ Z 05. 04. 2001 /2]² Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 13
Verwendeter Algorithmus in der Klasse „Sampling. Of. Sim. Events“ (3) Die Bestimmung des Stichprobenumfanges: Um den Stichprobenumfang berechnen zu können, muß folgende Ungleichung gelten: v 0 vn dann gilt: (1 -n/N)S²/n V 0 n S²/ ( V 0+ S²/N) S² = Z 05. 04. 2001 /2=1. 96 (wenn =0. 05) Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 14
Verwendeter Algorithmus in der Klasse „Sampling. Of. Sim. Events“ (4) Algorithmus: 1. Die erzeugten Zufallszahlen werden im „sample“ Array wie folgt abgelegt: a) Als erstes Element vom Array wird eine Zufallszahl eingesetzt. b) Als zweites Element setzt man die entsprechende ID vom ersten simultanen Ereignis ein. c) Dann wird zu jedem simultanen Ereignis aus der „Future-Event-List“ eine Zufallszahl generiert und nach der Durchführung von „b“ in „sample“ abgelegt. „sample“ Array: 1 z 1 2 id 1 3 z 2 4 id 2 2 N-1 2 N z. N id. N N: Anzahl der simultanen Ereignisse zi: die i te Zufallszahl idi: die i te Event. ID 2. Nach dem Quicksortverfahren wird das „sample“ Array nach den Zufallszahlen sortiert, um später den in 5. erläuterten Schritt ganz durch Zufall durchführen zu können. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 15
Verwendeter Algorithmus in der Klasse „Sampling. Of. Sim. Events“ (5) 3. Es kann zur Vertauschung einer ID von einem simultanen Ereignis (und der dazugehörenden Zufallszahl) mit einer ID von einem anderen simultanen Ereignis (und der dazugehörigen Zufallszahl) kommen. Dieser Fall tritt ein, wenn z. B. i wenn zi zj , für i < j i+1 j zi idi j+1 zj idj Quicksort: i zj i+1 idj j zi j+1 idi 4. Der Stichprobenumfang kann nach folgender Formel ausgerechnet werden. n S²/ ( V 0+ S²/N) Mittelwert der Zufallszahlen S: Standardabweichung der Zufallszahlen 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 16
Verwendeter Algorithmus in der Klasse „Sampling. Of. Sim. Events“ (6) 5. Nun zieht man eine Stichprobe (n) aus der Grundgesamtheit (N). Dies geschieht, in dem man nur die vergebenen ID’s der Elemente vom ersten Element bis zum n-ten Element aus dem „Sample“ herauszieht. „sample“ Array: 1 z 1` 05. 04. 2001 2 3 4 id 1` z 2` id 2` n zn` n+1 idn` Stichprobe: 2 N id. N` 1 2 n-1 id 1` id 2` idn-1` n idn` Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 17
Zustandsübergangsdiagramm für simultane Ereignisse Verwendung der Klasse „Sampling. Of. Sim. Events“ Start F. E. L „n“ ausgewählte SE. Ja „Sampling. Of Sim. Events“ N n Scheduler Nein ? N>k alle SE betrachten Nein A p-W. ? NIE<m N: Anzahl der simultanen Ereignisse n: Anzahl der ausgewählten SE. k: eine Oberschranke für SE. m: eine Oberschranke für NIE. A p-W. : A priori-Wissen 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Ja SE. werden weiter eingeplant und ausgeführt. Folie 18
Erzeugung eines temporären Logfiles Die Klasse „Simple. File. Stream“ Für die Aufzeichnung von relevanten Werten wurde die Klasse „Simple. File. Stream“ in MOOSE verwendet. Bei der Verwendung der Klasse „Simple. File. Stream“ wurde ein Logfile erzeugt, mit dem man nur sehr wenige Informationen über den Simulationsbaum beim Branching oder beim Vergleich der Zustandsvariablen erhalten konnte. Ein weiterer Nachteil von „Simple. File. Stream“ war, dass man nach der Simulation den Simulationsbaum nicht darstellen und auswerten konnte. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 19
Motivation für die Erweiterung Diese beschränkte Fähigkeit der Klasse „Simple. File. Stream“ war die Motivation dafür, eine neue Klasse „Branch. File. Stream“ zu implementieren. Durch die Klasse „Branch. File. Stream“ wird zur Simulationszeit ein temporäres Logfile eingerichtet. Der Vorteil des temporären Logfiles ist: Der Verlust von Informationen, die vom Simulationsbaum zur Verfügung stehen, kann durch die Einrichtung eines temporären Logfiles zur Laufzeit verhindert werden. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 20
Analysierung des temporären Logfiles nach der Simulation Das temporäre Logfile kann nach der Simulation durch einen Parser syntaktisch analysiert werden. Mit Hilfe der Klasse „Create. Logfiles” kann man aus dem temporären Logfile für jede Branche. ID einen Logfile erzeugen. Man erhält am Ende alle Informationen über den Simulationsbaum durch die Logfiles. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 21
Prozessverlauf zur Laufzeit und nach der Simulation: zur Laufzeit der Simulation: Temporal. Logfile Branch. And. Compare Branch. File. Stream mark. Branch(p. Old. Id, p. New. Ids[]) mark. Equal(p. Id 0, p. Id 1) write. Object(Object p. Value) Create. Logfiles + - main(args[]) read. Line() write. Line(p. Id, p. String) branch. Log. File(p. Old. Id, p. New. Ids[]) - create. List(p. Ids[]) - concat. Lists(p. Id 0, p. Id 1) 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 22
Das Format von Branch. ID’s (1) Die reguläre Vorgehensweise ist folgende: Beginn der Betrachtung des Simulationsbaumes bei der Wurzel Bezeichnung der Wurzel mit “ 0” Feststellung der Anzahl der simultanen Ereignisse in der Future-Event-List Beim Auftreten von mehreren simultanen Ereignissen wird eine Zahl von 1 bis n an die vorher vergebene Branch. ID angefügt. Angenommen man hat einen Simulationszweig mit der eindeutigen ID z. B. 0. 1. 1 wenn man z. B. nun 5 simultane Ereignisse an diesem Simulationszweig feststellen kann, erhalten die von ihm jetzt abgeleiteten 5 Simulationszweige die ID’s “ 0. 1. 1. 1” bis “ 0. 1. 1. 5” Wichtig dabei ist die Trennung der einzelnen Zahlen mit einer Punktnotation. dadurch kann man eindeutig zwischen “ 0. 1. 1. 1” und z. B. “ 0. 1. 11” unterscheiden. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 23
Das Format von Branch. ID’s (2) Bei der Vergabe von “ 0. 1. 1. 1” sieht der Teilbaum wie folgt aus. Bei der Vergabe von “ 0. 1. 11” sieht der Teilbaum wie folgt aus. X = 7 X = 13 0 0. 1 X = 5 0 0. 2 0. 1 0. 2 X = 5 0. 1. 1 0. 1. 2 0. 1. 11 0. 1. 1. 1 X = 8 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 24
Das Format von Branch. ID’s und temporären Logfiles Insgesamt besteht ein temporäres Logfile aus folgenden Zeilen: In einer Zeile wird die aktuelle Branch. ID mit einer Beschreibung von einem Wert und dem dazugehörigen Wert durch die Methode “ write. Object(String, Object)” beschrieben (b. ID: X=5). Angenommen man hat zwei unterschiedliche Simulationszweige, die aber die gleichen Zustandsvariablen haben. Dann werden zwei verschiedene Branch. IDs vergeben und durch “mark. Equal(String, String)” ($b. ID 1 = b. ID 2) in das temporäre Logfile eingetragen. Eine Branch. ID wird als Vater und die aufgespaltenen Zweige als seine Söhne in das temporäre Logfile geschrieben. Dies geschieht mit Hilfe der Methode “mark. Branch(String, String[])” ($b. ID 0 b. ID 1, b. ID 2). 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 25
Die Beschreibung des Algorithmus in “Create. Logfiles” mit Hilfe eines Beispiels Die Klasse “Create. Logfiles” geht folgendermaßen vor: Create. Logfiles (String) { // $ b. ID 0 b. ID 1, b. ID 2 { branch. Logfile(b. ID 0, {b. ID 1, b. ID 2}); // ({b. ID 1, b. ID 2}) wird als ein String in ”java” betrachtet. Nicht // als ein Array. Dann werden zwei Logfiles (b. ID 1 und b. ID 2) erzeugt. // alle Werte, die bis jetzt in das Logfile b. ID 0 geschrieben wurden, // werden in beide Logfiles (b. ID 1 und b. ID 2) eingetragen } // $ b. ID 0 = b. ID 1 { concat. Lists ( b. ID 0 , b. ID 1 ); // Danach werden alle Werte, die z. B. in das Logfile b. ID 0 geschrieben wurden // auch in das Logfile b. ID 1 geschrieben. } // b. ID: x = 13 { write. Line(b. ID , “x = 13”); // “x = 13” (z. B. ) wird an allen Logfiles angehängt, welche // Branch. IDs besitzen, die mit b. ID beginnen. } } 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 26
Prozessverlauf zwischen “Branch. File. Stream” und “Create. Logfiles“ X = 7 X = 13 Branch. File. Stream 0. 1 Temporal. Logfile 0. 1. 1 2 1 7 13 5 12 3 8 X = 5 $ 0. 1. 1 = 0. 1. 2 X = 15 ? = 0. 1. 2 7 13 15 12 3 8 X = 12 Create. Logfiles X = 3 1 2 X = 8 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 27
Mögliche Resultate bei der Anwendung der Klasse “Create. Logfiles” Durch die Anwendung der Klasse “Create. Logfiles” erzielt man folgende Verbesserungen: es ist möglich, sich nach der Simulation den kompletten Simulationsbaum vorzustellen. Man kann die Ergebnisse der Simulation besser auswerten, man kann jetzt auch bei Gleichheit der Ergebnisse am Ende der Simulation genau feststellen, an welcher Stelle des Simulationsbaumes die Zwischenergebnisse unterschiedlich waren. Obwohl nicht alle Simulationszweige verfolgt wurden, erhält man am Ende alle Informationen über den Simulationsbaum durch die Logfiles. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 28
Zusammenfassung Mögliche Erweiterungen von bereits verwendeten Algorithmen: Es wurde aus der Methode Identifizierung des Ereignistypen eine neue Methode entwickelt. Mit ihr können die Verzweigungen im Simulationsbaum identifiziert werden. Es wurde ein stochastisches Verfahren erläutert, das auch im Scheduler verwendet werden kann. Eine Auswahl von simultanen Ereignissen kann getroffen werden, in dem man eine Stichprobe zieht. Abschließend wurde die Erzeugung eines temporären Logfiles und mehrere Logfiles dargestellt. Damit kann man den Simulationsbaum auswerten und genau zeichnen. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 29
Ausblick Insgesamt sollten die Loggingmechanismen so gestaltet sein, dass man in Zukunft weitere Auswertungs- und Visualisierungshilfsmittel implementieren kann. Es wäre ein (graphisches) Tool zu implementieren, welches den kompletten bzw. einen Teil des Simulationsbaumes darstellt und mit dem man auf die einzelnen Log. Files eines Baumes zugreifen kann. 05. 04. 2001 Jamshid Azizi: Auswertung und Darstellung in MOOSE Folie 30
- Methoden zur problemlösung projektmanagement
- Risikoerkennung
- Stressreduktion methoden
- Psychologie
- Fit to work graz
- Struma
- Verkehrsmedizinische untersuchung berlin
- Selbstbemessungsabgaben beispiele
- Die kommunikative methode
- Längenmessung methoden
- Induktiv sport
- Schwachstellenanalyse methoden
- Biologiedidaktik grundlagen und methoden
- Visgraatdiagram downloaden
- Kennisoverdracht methoden
- Zeitmanagement-methoden hausarbeit
- Preisnennung im verkaufsgespräch
- Kwantitatieve gegevens
- Freier rückwärtspuffer berechnen
- Methoden der prozessmodellierung
- Thierry marchant
- Uml methoden
- Observeren methode
- Trendanalyse methoden
- Gez. bildergeschichte rätsel
- Methoden kunstunterricht
- Kammrätsel erstellen
- Festékező labdacs
- Alles kommt zur richtigen zeit
- Welcher seemann liegt bei nacht im bett
- Herzlich willkommen zur schulung