Erweiterung von Methoden zur Untersuchung von simultanen Ereignissen

  • Slides: 30
Download presentation
Erweiterung von Methoden zur Untersuchung von simultanen Ereignissen Abschlussvortrag zum Praktikum Jamshid Azizi azizi@cs.

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

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:

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

Ü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

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

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

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

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

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

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:

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

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

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:

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

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

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

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.

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

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 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

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.

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

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.

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

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.

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

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

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

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-

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