hs / fub - AWSys/Sim1 Projekt Simulation: Einführung Simulation in a Nutshell - Teil 2 - Simulation und Modellbildung Klassifikation von Simulationsmethoden Zeitsynchrone Simulation: ein Beispiel Ereignisgesteuerte Simulation - eine Fallstudie Analyse und Interpretation von Simulationsläufen Literatur: Pagé, B.: Diskrete Simulation, Springer Verlag, 1991 Vorlesungsfolien Informatik 2, F. Mattern, TH Darmstadt, 1997
32
Embed
Hs / fub - AWSys/Sim1 Projekt Simulation: Einführung Simulation in a Nutshell - Teil 2 - Simulation und Modellbildung Klassifikation von Simulationsmethoden.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
hs / fub - AWSys/Sim1
Projekt Simulation: Einführung
Simulation in a Nutshell - Teil 2 -
Simulation und Modellbildung Klassifikation von Simulationsmethoden Zeitsynchrone Simulation: ein Beispiel Ereignisgesteuerte Simulation - eine Fallstudie Analyse und Interpretation von Simulationsläufen
Fragen über Fragen:- wie viele Verkäufer?- Wie lange dauert es, bis ein Kunde bedient ist? - Werden alle in "etwa" der gleichen Zeit bedient?- Wie viel Anrufe kommen "in der Zeiteinheit" an? Was heißt das??- Genauer: wie groß ist der Abstand zwischen zwei Anrufen?- Wie lange wartet eine Kunde, bevor er aufgibt und auflegt? - Wie viele Kunden können sich maximal in der Warteschleife aufhalten?
hs / fub - AWSys/Sim3
Eine Anwendung
Beispiel Reisebüro: Telefonische FahrkartenreservierungSystemspezifikation:1. 5 Angestellte nehmen Buchungen entgegen.2. 18 Telefonleitungen (d. h. max. 13 Anrufer warten).3. “Bitte warten” wenn alle Angestellten belegt.4. Angest. wird frei --> am längsten wartenden bedienen (FIFO).5. Wartebereitschaft der Kunden im Mittel 4 Min. (normalverteilt).6. Endgültiger Verzicht eines Kunden, wenn keine Leitung frei oder Wartezeit überschritten.7. Zwischenankunftszeiten exponentialverteilt (20 Sek.).8. Bedienzeit exponentialverteilt (mit Mittel 1 Min.bei einfacher Fahrt, 2 Min. bei Rückfahrkarte).9. Wahrscheinlichkeit für Rückfahrkarte = 0.75.
hs / fub - AWSys/Sim4
Zufallszahlen
Im richtigen Leben hat man es oft mit Zufallszahlen (Zufallsgrößen) zu tun: - die Zahl beim Würfeln - die Wartezeit beim Bäcker (zwischen 7 und 8) - die Zeit zwischen zwei Anrufen beim Kartenservice ....
Der Abstand zwischen zwei Anrufen ist eine zufällige Größe.
Man nennt X eine Zufallsvariable, wenn sie die Werte einer Zufallsgröße annimmt.
Die Variable X = "Abstand zwischen zwei Anrufen“ ist eine Zufallsvariable.
... ...
hs / fub - AWSys/Sim5
Verteilungsfunktion
Zufallsfallsvariable X :Die Funktion F(x) = P(X < x) Wahrscheinlichkeit dafür, dass X < x heißt Verteilungsfunktion.
Wahrscheinlichkeit, dass die Zeit zwischen 2 Anrufen"bis zu 4 Minuten" beträgt
ExponentialverteilungMittelwert = 0.33 min
hs / fub - AWSys/Sim6
Dichtefunktion
Wahrscheinlichkeit,dassAbstand zwischen zweiAnrufen zwischen 2 und 4 Minuten liegt .
ExponentialverteilungMittelwert = 0.33 min
Aus der Dichtefunktion f(x) läßt sich ablesen, mit welcher Wahrscheinlichkeit die Zufallsvariable Werte zwischen a und b annimmt, denn die Verteilungsfunktion F(x) ist definiert:
F(x) = f(t) dtx
-
hs / fub - AWSys/Sim7
Fragen?
1. Wie weiß man, welche Verteilung eine Zufallsvariable hat?
Weiß man normalerweise anfangs nicht!- analysiere kumulative Häufigkeiten (empirische Verteilung)
- bestimme daraus empirische Verteilung - oder teste Vermutung, dass Daten
in bestimmter allgemeiner Weise (normal, exponentiell,...) verteilt sind und teste diese Hypothese (mit statistischen Testverfahren)
- oder es ist bekannt, dass gewisse Prozesse sich nach gewissen Verteilungen zufällig verhalten (z.B. normalverteilt). Dann müssen "nur noch" die Parameter bestimmt werden, besonders Mittelwert und Varianz.
hs / fub - AWSys/Sim8
Fragen?
2. Wie erzeugt man Zufallszahlen?
Erzeugung wichtig, da "echter Zufall" im Rechner nicht existiert. Denkbar: Tabellen echter Zufallszahlen. Nicht handlich... Vorteil von Pseudozufallszahlen: Reproduzierbarkeit
Gleichverteilte Zufallszahlen? Andere Verteilungsfunktion?
Gleichverteilung F(x) = x
(zwischen 0 und 1) 1
10
1
10
Dichte: f(x) = 1
(zwischen 0 und 1 zwischen a und b: 1/(b-a))
Kongruenzenverfahren: z i+1 = (a * z i ) mod p, p große Primzahl
Liefert Zufallszahlen zwischen 0 und p-1, Normierung auf 0<= z < 1
Im Simulationsprojekt: Java Klasse zur Erzeugung von Zufallszahlen benutzen.
hs / fub - AWSys/Sim9
Zufallszahlen
Erzeugen anderer Verteilungen aus gleichverteilten Zufallszahlen (eine von mehreren Möglichkeiten)Z.B. Exponentialverteilung aus GleichverteilungIdee: Verteilungsfunktion F(x) bildet eine (0,1) gleichverteilte Größe auf F(x) ab. Umkehrfunktion x = F-1(y), z.B. x = -1/ * ln (1-y)
• Dauer eines Kartenverkaufs an einen Kunden (Bediendauer)exponentialverteilt (einfache Fahrt: Mittelwert 1 min, Rückfahrt: 2 min
• Art der Aufträge (mit unterschiedlicher Bediendauer !) diskrete Verteilung (nur endlich viele mögliche Werte): p = 0,25: einfache Fahrt, p = 0,75 = Rückfahrkarte• Geduld–am–Ende – Zeit: Wann legt der Kunde auf, bevor er bedient wird? Normalverteilt, Mittelwert = 4 Min
hs / fub - AWSys/Sim11
Ereignisgesteuerte Simulation
Aktivität Aktivität 3 Akti. 4A2
Ereignisse und Aktivitäten
Aktivitäten können überlappen (Anruf und Kartenverkauf)
Ereignisse entsprechen nicht in allen Fällen Anfang und Endeeiner Aktivität. - Anfang / Ende verschiedener Ereignisse können zusammenfallen: "Ende Warten = Beginn Bedienung" - Ereignis ohne Dauer: "Geduld am Ende"
hs / fub - AWSys/Sim12
Modellentwurf „Kartenverkauf“
Zustand des Modells (" als Schnappschuß"):
- Status (frei / beschäftigt) jedes Angestellten- Anzahl der freien Leitungen- Menge der wartenden Anrufer
Braucht man die Identitätoder nur die Anzahl ?
Genügt hier nicht die Anzahl?
Aus Sicht eines individuellen Kunden
- Anruf --> Beginn Bedienung / Warten- Ende Warten (freie Bediener / abgelaufene Geduld)- Ende Bedienung EreignistypenEreignistypen ?
Bei Benden desWartens erzeugt K3 Bedien-Ende-Event
Nur ein Bediener!
hs / fub - AWSys/Sim15
Modellierung
Welche Ereignisse (Ereignistypen)?• neuer Kunde kommt; versucht zu wählen! • Ende der Geduld; nur wenn in Warteschleife• Bedienende; Kunde verlässt das System
Ist nicht auch Bedienanfang ein Ereignis?
Welche Ergebnisdaten? • Wartezeit pro Benutzer• Anteil der abspringenden Kunden • mittlere Warteschlangenlänge• mittlere Auslastung von Leitungen / Bedienern•.....
Welche Zustände? • # freie Bediener• Schlange der wartenden Kunden• # freier Leitungen
Wartende Kundensind keine Ereignisse
hs / fub - AWSys/Sim16
Der Zyklus der Simulation
Initialisieren
Gibt es noch ein Ereignis
Uhr = Zeit des nächsten
Ereignisses
Ereignis aus Ereignis-liste entnehmen
Ende der Simulation, Gesamtstatistik
Ggf. Statistik-Ausgabe
N
Y
Zustandsänderung gemäß Ereignis-routine
Ende: „das letztes Ereigns“ bearbeitet oder Uhr > Sim.zeit
Hier muß ein erstes Ereignis erzeugt werden, damit es los geht. Ggf. auchein letztes!
Hier passiert was:Zustand verändern, neue Ereignisse erzeugen.
Es wird also immer das jüngste Ereignis bearbeitet. Dabei fallen ggf. neue Ereignisse an.
hs / fub - AWSys/Sim17
Die Ereignisroutinen
Kundenanruf Auszuführen bei Eintritt desEreignisses
Nächsten Kunden-anruf vor-merken
alle Leitungenbesetzt?
freiLeitungen --;
Sachbearbeiter frei?
Kundensatz er-zeugen, in Kunden-
warteschlange
GeduldEndeEreignisvormerken
bediener--;
Bedienroutineausführen
abgewieseneKd++
Hier wird auch das Ende-ereignis erzeugt!
Trick: erhält die Simulation am Leben. Hat das mit Kausalität zu tun? Kundenanruf ursächlich für nächsten Kundenanruf??
hs / fub - AWSys/Sim18
Die Ereignisroutinen (2)
Bedienende
freieLeitungen++;
KdWarteschlangeleer? bedienert++;
Kunden aus KdWarte-schlange entnehmen,
Kdsatz löschen
Bedienroutineausführen
Ja
GeduldEnde
Lösche Kundensatz
freieLeitungen++;
hs / fub - AWSys/Sim19
Bedienung
Bedienroutine
GeduldEnde-ereignis löschen
ggf. Statistikdaten schreibenu. Ausgaben
Bedienende-Ereigniseinplanen
Beachte: es gibt zwei Arten von Objekten in der ereignis-gesteuerten Simulation:- Ereignisse: im wesentlichen intern, treiben die Simulation- nach der Realität modellierte Dinge, wie Warteschlange mit Kunden
hs / fub - AWSys/Sim20
Der ereignisgesteuerte Simulator schematisch
17 23 25
12Zustand
Programmcode
Uhr (Simulationszeit)springt zum jeweils nächsten Ereignis,
Ereignisroutinen: ändern den Zustand, einschl. Erzeugung ggf. zukünftiger Ereignisse.
Ereignisrepräsentation: prinzipiell ausreichend - Zeit - Ereignistyp
hs / fub - AWSys/Sim21
Die Kunst des (ereignisorientierten) Modellierens
Aktivitäten so in Ereignisketten auflösen, dass • Realität adäquat vom Modell widergespiegelt wird• Wechselwirkungen zwischen Aktivitäten auf die Ereignisse beschränkt sind• Ereignisse sich korrekt einplanen• Ereignisroutinen die Zustandsveränderungen richtig wiedergeben.
Entscheidende Frage: wie gut spiegelt das Simulationssystem die Realität wider?• Modell adäquat? • entsprechen die angesetzten Wahrscheinlichkeitsverteilungen den wahren Verhältnissen?• Sind die Ergebnisse (statistisch) vertrauenswürdig?
warum Bsp. nicht zeitgesteuert??
hs / fub - AWSys/Sim22
Planung und Analyse von Experimenten
Zielgröße(n) festlegen: - Was soll untersucht werden? Hypothesen formulieren (zu jedem Experiment gehört Hypothese!) - Wovon hängen Zielgrößenwerte ab? - In welcher GrößenordnungFixieren der Parameter für das Untersuchungsziel
Beispiel: - Wie lassen sich die Wartezeiten so verkürzen, dass nur noch jeder die 10 % der wartenden Kunden abspringt? - Hypothese: mehr Personal- Ziel: Aussage, wieviele Kunden prozentual abspringen, wenn nur statt n n+1, n+2, ... Mitarbeiter eingesetzt werden? - Zielgröße: Kundenabsprung als Funktion von Anzahl eingesetzter MA
Wichtig: Welches Vertrauen kann man in Ergebnisse haben? -> Statistik
hs / fub - AWSys/Sim23
Einschwingphase
a) Heuristische Verfahren: - Augenmaß - Max / Min-Test: in Folge x0, x1, ...xi, x i+1,... prüfen, ob xi Max oder Min der xj, i<j wenn nein: diese Restfolge mit erstem Glied xi+1 nehmen. b) Statistische Testverfahren
t
xt
Zufallsvariable (Zielgröße)
Einschwingvorgang
Und was ist hiermit? Verkehrsimulation: Rush hour?
hs / fub - AWSys/Sim24
Schätzgenauigkeit der Ergebnisse
Abstraktes Simulationsproblem:
- Gesucht die Verteilungsfunktion F(X) einer Zufallsvariable des Modells (z.B. Anzahl der Kunden in der Warteschleife)
- Oft ausreichend: Erwartungswert der unabhängigen Zufallsvariablen schätzen- E [X ] = = x f(x) dx- x1,x2,...xn sei Ausgang eines Experiments (z.B. die gemessenen Längen der Warteschlange zu n Zeitpunkten)
- Mittelwert ist erwartungstreuer Schätzwert für echten Mittelwert : x = (1/n) xi , d.h lim ( (1/n) xi ) = i=1..n n -> i=1..n
- reicht aber nicht für genauere Aussagen. Beispiel...
hs / fub - AWSys/Sim25
Schätzgenauigkeit
Beispiel aus der Literatur:
Für Bedien- / Wartesystem mit exponentialverteilter Zwischenankunfts-und Bedienzeit lässt sich Mittelwert analytisch errechnen (M/M/1-Bediensystem)
Erwartungswert für Warteschlangenlänge bei bestimmten Parametern: = 4,86Aber X = 3,2 bei Stichprobe von n = 1000
Wie bestimmt man ?
X ist selbst eine Zufallsvariable mit dem Mittelwert E(X) =
Abschätzen, mit welcher Wahrscheinlichkeit der wahre Mittelwert in einem Intervall [x – cn , x + cn ] liegt.
hs / fub - AWSys/Sim26
Schätzgenauigkeit der Simulationswerte
Mit welcher Wahrscheinlichkeit (Konfidenzniveau) befindet sich der wahre Wert in einem gegebenen Intervall (Konfidenzintervall)- Typische Aufgabe der Statistik, nicht simulationsspezifisch.
t
„Mit Wahrscheinlichkeit 0.95findet man den wahren Wert der Anrufer , die aufgeben, iin diesem Intervall
hs / fub - AWSys/Sim27
Konfidenzintervall
Tatsächlicher, unbekannter Mittel-wert
xx-cn x+cn
xx-cn x+cn
xx-cn x+cn
Experiment 1
Experiment 2
Experiment n
hs / fub - AWSys/Sim28
Schätzen der Lage des Mittelwerts
Wie groß ist Streuung ??
Es gilt : der wahre Mittelwert liegt bei genügend großem n mit von z abhängiger Wahrscheinlichkeit im Intervall:
[ x - z* /( n) , x + z * /( n)]
wenn die unbekannte Verteilung die Varianz hat.
Also cn = z* /( n)
z = 1,96 : Wahrscheinlichkeit beträgt 0,95, dass im Intervall.
Tatsächlicher Mittelwert mLiegt mit Wahrscheinlichkeit0,95 im Intervall [5.22, 6.7]
hs / fub - AWSys/Sim32
Validierung
• Operationale Verifikation Stimmen das dynamisch Modellverhalten mit der Realität überein? (für Prognosemodelle offenbar besonders schwer. 20 Jahre warten??) - Vergleich mit historischen Daten - Vergleich von Verteilungen von echten und von Modelldaten (statistische Testverfahren) - unabhängiges Modell erstellen, rechnen und vergleichen
Klassifikation der Validierungsschritte stammtvon Pagé (s. Literatur) ... ist schwierig!
• Stimmt das konzeptuelle Modell mit Realität überein? - Experten befragen, - Verifikation der Verteilungsannahmen durch Analyse von echten Daten
•Modellverifikation Tut das System das, was es soll? - Prinzipien der Entwicklung großer Programme beachten, - Plausibilitätsprüfungen