Projekt simulation einf hrung
Download
1 / 32

Projekt Simulation: Einführung - PowerPoint PPT Presentation


  • 101 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Projekt Simulation: Einführung' - saffron


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Projekt simulation einf hrung l.jpg
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


Beispiel telefonischer fahrkartenvertrieb l.jpg
Beispiel: Telefonischer Fahrkartenvertrieb

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


Eine anwendung l.jpg
Eine Anwendung

Beispiel Reisebüro: Telefonische Fahrkartenreservierung

Systemspezifikation:

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.


Zufallszahlen l.jpg
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.


Verteilungsfunktion l.jpg
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

Exponentialverteilung

Mittelwert l = 0.33 min


Dichtefunktion l.jpg

Wahrscheinlichkeit,dass

Abstand zwischen zwei

Anrufen zwischen

2 und 4 Minuten liegt .

Exponentialverteilung

Mittelwert l = 0.33 min

Dichtefunktion

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

x

-


Fragen l.jpg
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.


Fragen8 l.jpg

1

1

0

1

0

1

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)

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.


Zufallszahlen9 l.jpg

(0,1)-gleichverteilter

Y-Wert liefert F(x)-verteilten x-Wert

Zufallszahlen

Erzeugen anderer Verteilungen aus gleichverteilten Zufallszahlen

(eine von mehreren Möglichkeiten)

Z.B. Exponentialverteilung aus Gleichverteilung

Idee: Verteilungsfunktion F(x) bildet eine (0,1) gleichverteilte Größe

auf F(x) ab. Umkehrfunktion x = F-1(y), z.B. x = -1/l * ln (1-y)


Zuf llige gr en im beispiel l.jpg
Zufällige Größen im Beispiel

  • Zwischenankunftszeit der Anrufe 

  • 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


Ereignisgesteuerte simulation l.jpg
Ereignisgesteuerte Simulation

Ereignisse und Aktivitäten

A2

Aktivität

Aktivität 3

Akti. 4

Aktivitäten können überlappen (Anruf und Kartenverkauf)

Ereignisse entsprechen nicht in allen Fällen Anfang und Ende

einer Aktivität.

- Anfang / Ende verschiedener Ereignisse können zusammenfallen: "Ende Warten = Beginn Bedienung"

- Ereignis ohne Dauer: "Geduld am Ende"


Modellentwurf kartenverkauf l.jpg
Modellentwurf „Kartenverkauf“

Zustand des Modells (" als Schnappschuß"):

- Status (frei / beschäftigt) jedes Angestellten

- Anzahl der freien Leitungen

- Menge der wartenden Anrufer

Genügt hier nicht die Anzahl?

Braucht man die Identität

oder nur die Anzahl ?

- Anruf --> Beginn Bedienung / Warten

- Ende Warten (freie Bediener / abgelaufene

Geduld)

- Ende Bedienung

Ereignistypen ?

Ereignistypen

Zustands-

übergänge

Aus Sicht eines individuellen Kunden



Ereignisgesteuerte simulation14 l.jpg

Ereigniszeit statt synchroner Ticks

K3 Gibt auf

9.07

K3 EndeBedienung

9.06

K1 AR,Beg.

Bedienung

9.00

K2 AR,Beg.

Warten

9.02

K3 AR,Beg.

Warten

9.03

K1 Ende

Bedienung

9.05

K2 Gibt auf

9.04

K4AR

9.05

Wert der Zufallsvariable "Zwischenankunftszeit"

Erzeugung der Events

K3 ARBeg.

Warten

9.03

K1 ARBeg.

Bedienung

9.00

K1 Ende

Bedienung

9.05

K2 AR Beg.

Warten

9.02

K4 AR

9.05

K2 Gibt auf

9.04

K3 Gibt auf

9.07

Bei Benden des

Wartens erzeugt

K3 Bedien-Ende-Event

K3 EndeBedienung

9.06

Ereignisgesteuerte Simulation

Nur ein Bediener!


Modellierung l.jpg

Ist nicht auch

Bedienanfang

ein Ereignis?

  • Welche Zustände?

    • # freie Bediener

    • Schlange der wartenden Kunden

    • # freier Leitungen

Wartende Kunden

sind keine Ereignisse

Modellierung

  • Welche Ergebnisdaten?

    • Wartezeit pro Benutzer

    • Anteil der abspringenden Kunden

    • mittlere Warteschlangenlänge

    • mittlere Auslastung von Leitungen / Bedienern

    • .....


Der zyklus der simulation l.jpg

Hier muß ein erstes

Ereignis erzeugt

werden, damit

es los geht. Ggf. auch

ein letztes!

Initialisieren

Gibt es noch

ein Ereignis

N

Ende der Simulation,

Gesamtstatistik

Y

Uhr =

Zeit des nächsten

Ereignisses

Hier passiert was:

Zustand verändern,

neue Ereignisse erzeugen.

Ereignis aus Ereignis-

liste entnehmen

Zustandsänderung gemäß Ereignis-routine

Ggf. Statistik-

Ausgabe

Der Zyklus der Simulation

Ende: „das letztes Ereigns“

bearbeitet oder Uhr > Sim.zeit

Es wird also immer das

jüngste Ereignis

bearbeitet. Dabei fallen

ggf. neue Ereignisse an.


Die ereignisroutinen l.jpg

Auszuführen bei Eintritt des

Ereignisses

Nächsten Kunden-

anruf vor-

merken

Trick: erhält die Simulation am

Leben. Hat das mit Kausalität

zu tun? Kundenanruf ursächlich

für nächsten Kundenanruf??

alle Leitungen

besetzt?

abgewieseneKd++

freiLeitungen --;

Sachbearbeiter

frei?

bediener--;

Bedienroutine

ausführen

Kundensatz er-

zeugen, in Kunden-

warteschlange

Hier wird auch das Ende-

ereignis erzeugt!

GeduldEndeEreignis

vormerken

Die Ereignisroutinen

Kundenanruf


Die ereignisroutinen 2 l.jpg

freieLeitungen++;

Ja

KdWarteschlange

leer?

GeduldEnde

bedienert++;

Lösche

Kundensatz

Kunden aus KdWarte-

schlange entnehmen,

Kdsatz löschen

Bedienroutine

ausführen

freieLeitungen++;

Die Ereignisroutinen (2)

Bedienende


Bedienung l.jpg

Bedienroutine

GeduldEnde-

ereignis

löschen

ggf. Statistikdaten schreiben

u. Ausgaben

Bedienende-Ereignis

einplanen

Bedienung

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


Der ereignisgesteuerte simulator schematisch l.jpg

17

23

25

12

Zustand

Programmcode

Der ereignisgesteuerte Simulator schematisch

Uhr (Simulationszeit)

springt zum jeweils

nächsten Ereignis,

Ereignisroutinen: ändern

den Zustand, einschl.

Erzeugung ggf. zukünftiger

Ereignisse.

Ereignisrepräsentation:

prinzipiell ausreichend

- Zeit

- Ereignistyp


Die kunst des ereignisorientierten modellierens l.jpg
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??


Planung und analyse von experimenten l.jpg
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ößenordnung

Fixieren 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


Einschwingphase l.jpg

Zufallsvariable (Zielgröße)

xt

Und was ist hiermit?

Verkehrsimulation: Rush hour?

t

Einschwingvorgang

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


Sch tzgenauigkeit der ergebnisse l.jpg
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 ] = m =  xf(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 m :

  • x = (1/n)Sxi , d.h lim ( (1/n)Sxi ) = m

  • i=1..n n ->  i=1..n

- reicht aber nicht für genauere Aussagen. Beispiel...


Sch tzgenauigkeit l.jpg
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:

m = 4,86Aber X = 3,2 bei Stichprobe von n = 1000

Wie bestimmt man m ?

X ist selbst eine Zufallsvariable mit dem Mittelwert E(X) = m

Abschätzen, mit welcher Wahrscheinlichkeit der wahre Mittelwert m in einem Intervall [x – cn , x + cn ] liegt.


Sch tzgenauigkeit der simulationswerte l.jpg
Schätzgenauigkeit der Simulationswerte

„Mit Wahrscheinlichkeit 0.95

findet man den wahren Wert

der Anrufer , die aufgeben, iin

diesem Intervall

t

Mit welcher Wahrscheinlichkeit (Konfidenzniveau) befindet sich

der wahre Wert m in einem gegebenen Intervall (Konfidenzintervall)

- Typische Aufgabe der Statistik, nicht simulationsspezifisch.


Konfidenzintervall l.jpg
Konfidenzintervall

Tatsächlicher, unbekannter Mittel-wert

Experiment 1

x-cn

x+cn

x

Experiment 2

x-cn

x+cn

x

Experiment n

x-cn

x+cn

x


Sch tzen der lage des mittelwerts l.jpg
Schätzen der Lage des Mittelwerts

Es gilt : der wahre Mittelwert liegt bei genügend großem n

mit von z abhängiger Wahrscheinlichkeit im Intervall:

[ x - z* s/( n), x + z * s/( n)]

wenn die unbekannte Verteilung die Varianz s hat.

Alsocn = z* s/( n)

z = 1,96 : Wahrscheinlichkeit beträgt 0,95, dass m im Intervall.

Wie groß ist Streuung s ??

Schätzen!


Varianz sch tzen l.jpg
Varianz schätzen

Schätzer für Varianz :

Varianz: Var(X) = E[(X-E(X))2] = s2 =  (x– m)2 f(x) dx

Var(X1+X2+...Xn) = Var(X1) + Var(X2) + ... + Var(Xn)

für unabhängige Xi

Wenn s2 Varianz der Xi, dann s(X) = s /  n

Schätzwert dafür : s 2 = 1/(n-1) S (x i - x ) 2 Standardabweichung:s ~ s =  s2

Damit : Mittelwert m liegt mit 95%iger Wahrscheinlichkeit im Intervall

[ x - 1,96* s/( n), x + 1,96 * s/( n)] (*)

Wichtige Voraussetzung: die X sind unabhängig! Anzahl Versuche groß ! n >= 30


Vorgehen l.jpg
Vorgehen

  • Unabhängige Simulationsläufe, die die interessierenden Größen jeweils

  • zu einem neuen Stichprobenwert zusammenfassen.

  • Mit den n unabhängigen Simulationsläufen Konfidenzintervall für E(X) mit (*) bestimmen.

  • Verfahren funktioniert nur bei unabhängigen Versuchen

  • n >= 30

  • Sehr aufwendig, da die die gesamte Simulation wiederholt werden muß.

  • Es gibt statistische Verfahren mit geringerem Aufwand


Beispiel l.jpg
Beispiel

Experiment i gemessener Mittelwert x

1 5,9

2 6.4

3 6.0

4 6.0

5 4.7

6 8.6

7 4.0

8 6.4

9 5.7

10 5.9

x = 5.96

s = 1.19

1.96* s/( n) = 0.74

x  0.74 = [5.22, 6.7]

Tatsächlicher Mittelwert m

Liegt mit Wahrscheinlichkeit

0,95 im Intervall [5.22, 6.7]


Validierung l.jpg

Klassifikation der Validierungsschritte stammt

von Pagé (s. Literatur)

Validierung

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

  • 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


ad