Grundlagen der Simulation: Übungsaufgabe Sommersemester 2006 Torsten Reiners Universität Hamburg Fachbereich Wirtschaftswissenschaften Institut für Wirtschaftsinformatik
Grundlagen der Simulation eM-Plant Zugang
Grundlagen der Simulation Modellformulierung in der Realität gibt es kaum deterministische Ereignisse
Grundlagen der Simulation Notwendigkeit von Zufallszahlen Art und Umfang von Aufträgen, die in einer Werkstatt eintreffen Zeit, zwischen dem Eintreffen von zwei Aufträgen bzw. allgemein Ankunftsprozesse in vielen Warteschlangensystemen Ausfall von Maschinen Krankenstand von Personal Bearbeitungs- und Transportzeiten Auftreten von Qualitätsmängeln nach Art und Häufigkeit
Grundlagen der Simulation Klassisches Beispiel Zufallsexperiment Werfen einer Münze 2 mögliche Ergebnisse (Kopf oder Zahl) vor dem Wurf ist das Ergebnis unbekannt Ergebnisse voneinander unabhängig Ergebnis hat keinen Einfluss auf das nächste Ergebnis „gedächtnislos“ Wiederholung von Experimenten erlaubt die Ermittlung von Wahrscheinlichkeiten (relative Häufigkeit) Wahrscheinlichkeitsmodell bildet alle möglichen Ereignisse (Ergebnisraum) mit den zugehörigen Wahrscheinlichkeiten ab Zufallsvariable „speichern“ den (numerischen) Ausgang des Experiments
Grundlagen der Simulation Zufallsvariablen Sei X eine Zufallsvariable X heißt diskret, wenn sie nur eine abzählbare Anzahl von Werten x1, x2, ... annehmen kann Kennzeichnend für eine diskrete Zufallsvariable ist eine diskrete Wahrscheinlichkeitsfunktion p (xi ), die jedem möglichen Ereignis xi (i =1, 2, ...) eine reelle Zahl zuordnet: P (X=xi ) = p (xi ) Es muss gelten: 0 < p (xi ) < 1 ∀i und
Grundlagen der Simulation Zufallsvariablen X heißt kontinuierlich, wenn eine Dichtefunktion f(x) existiert, die die Wahrscheinlichkeit angibt, dass X in einem Intervall I liegt: Es muss gelten: 0 ≤ f (x) ≤ 1 ∀x∈ℜ und = 1 Dann wird F (x) = P (X ≤ x) = als Verteilungs- funktion der Zufallsvariablen X bezeichnet, wobei x alle Werte der reellen Zahlengerade durchläuft.
Grundlagen der Simulation Erzeugung von Zufallszahlen Zufallszahlen als Realisierung exogener stochastischer Variablen Stichprobe aus der Verteilung einer Variable Erzeugung Mechanisch erzeugte („echte“) Zufallszahlen Beispiele: Würfel, Roulette, Ziehung der Lottozahlen Mit einem Digital-Computer erzeugte Pseudozufallszahlen deterministischer Algorithmus (reproduzierbar) Ziele: Gleichverteilung, keine Korrelation, große Periodenlänge
Grundlagen der Simulation Pseudozufallszahlen Vorteile schnell zu generieren volle Wiederverwendbarkeit keine externen Einflüsse günstige/homogene Hardware (im Vergleich zu echten Zufallszahlen) Hilfe für Tests während des Programmentwurfs Unterstützung bei systematischer, statistischer Auswertung Nachteil keine echten Zufallszahlen (Perioden) Abhängigkeit Korrelationen nur scheinbar unabhängig
Grundlagen der Simulation Erzeugung von Zufallszahlen Vorgehensweise no Startwert (Seed, ganze Zahl) ni Folge von i ganzen Zahlen m obere Schranke der Folge ni (ni < m für i) Einfache rekursive Vorschrift k-fache rekursive Vorschrift mit festem k N und gegebener Anfangsfolge n0, n1, …, nk-1 ni = f(ni-1 ) ni = f(ni-1 )
Grundlagen der Simulation Zufallsgenerator Vorschrift heißt Zufallszahlengenerator! Transformation der ganzzahligen Zufallszahlen in [0,1[-gleichverteilte Zufallszahlen (0 xi < 1) Grundsätzlich wird ein Strom von Zufallszahlen erzeugt xi: xi = ni / m
Grundlagen der Simulation Methoden zur Erzeugung von Zufallszahlen Mittelquadratmethode Lineare Kongruenzmethoden Gemischte Kongruenzmethode Multiplikative Kongruenzmethode Allgemeine Kongruenzmethoden Kompositionsmethoden Tausworthe Ansatz ...
Grundlagen der Simulation Mittelquadratmethode J. v. Neumann Vorgehen ni sind s-stellige Dezimalzahlen mit s gerade (m=10s) ni erhält man, indem man ni-1 quadriert und aus dem 2∙s-stelligen Ergebnis (inkl. der evtl. führenden Nullen) die mittleren s Stellen als ni auswählt. Beispiel i ni-1 (ni-1)2 ni xi 1 13 0169 16 0.16 2 0256 25 0.25 3 0625 62 0.62 4 3844 84 0.84 5 7056 0.05 6 0025 0.02 7 0004 … s = 2 m = 100 n0 = 13
Grundlagen der Simulation Lineare Kongruenzmethode Definition: Periode Eine Periode ist ein Teilstück einer Folge von Zufallszahlen, das sich identisch wiederholt (und nicht selbst aus identischen Teilstücken besteht). Beobachtung: Alle rekursiv erzeugten Zufallszahlen besitzen eine Periode! i ni-1 (ni-1)2 ni xi 1 24 0576 57 0.57 2 3249 0.24 3 … s = 2 m = 100 n0 = 24
Grundlagen der Simulation Lineare Kongruenzmethode (einfache) Rekursionsgleichung (hier bereits um den Parameter c erweitert a Parameter m obere Schranke, maximale Länge der Periode n0 ungerader Startwert erzeugt Zahlen im Intervall [0, m -1] Beispiel ni = (a ni-1 + c ) mod m i ni-1 ni = (a ni-1 + c ) mod m ni 1 7 n1=19∙7 mod 128=133-lb(128/133) ∙128=5 0.0391 2 5 n2=19∙5 mod 128=95-lb(128/133) ∙128=95 0.7422 3 95 n3=19∙95 mod 128=1805-lb(128/133) ∙128=13 0.1016 … a = 19 c = 0 m = 27 = 128 n0 = 7
Grundlagen der Simulation Lineare Kongruenzmethode Grundlage vieler Implementationen z.B. m = 2s, für Rechner mit der Wortlänge s bzw. (s + 1)-Bit. Die Modulo-Funktion kann mit Hilfe der Assemblersprache sehr einfach realisiert werden (→ Überlauf!) Probleme Es werden nur bestimmte Zahlen an diskreten Punkten im Intervall [0,1] „getroffen„ Die Zahlen wiederholen sich mit einer Periode p≤m Die Zahlen können direkt ermittelt werden; es gilt
Grundlagen der Simulation Anforderungen an Zufallszahlengeneratoren Folgende Anforderungen resultieren an die Generatoren Die Periode sollte so groß wie möglich sein. Im Idealfall gilt Periodenlänge p = m (full-period Generator) Alle Zahlen von 0 bis m-1 sollten mit der gleichen Wahrscheinlichkeit erzeugt werden (Gleichverteilung) Die entstehende Zahlenfolge sollte so zufällig wie möglich scheinen, d.h. alle ganzen Zahlen 0, 1, ..., m-1, alle Zahlentupel, Tripel oder n-Tupel sollten mit gleicher Wahrscheinlichkeit an jeder Stelle der Zahlenfolge erscheinen können
Grundlagen der Simulation Setzen der Parameter Generell muss gelten: 0<m; a<m; c<m; n0<m (da gilt: (x + m) mod m = x mod m) Satz 1: Ein auf der linearen Kongruenzmethode basierender Zufallszahlengenerator ist genau dann ein full-period Generator, wenn gilt: Der größte gemeinsame Teiler von m und c ist 1 Wenn q Primteiler von m ist, dann muss a-1 auch durch q teilbar sein Wenn 4 Teiler von m ist, dann muss 4 auch Teiler von a-1 sein
Grundlagen der Simulation Multiplikative Kongruenzmethode Satz 2: Ein auf der multiplikativen Kongruenzmethode basierender Zufallszahlengenerator ist genau dann ein full-period Generator, wenn gilt: Der größte gemeinsame Teiler von n0 und m ist 1 (relativ prim) a ist primitives Element mod n Eine maximale Länge ist erreichbar, wenn m eine Primzahl ist Weitere Variante ist der Fibonacci-Generator ni+1 = (ni-1 + ni-1 ) mod m
Grundlagen der Simulation primitives Element Satz 3: Sei p eine Primzahl mit p > 4. Eine ganze Zahl g ist genau dann primitives Element von Zp , wenn für jeden Primfaktor q von p-1 das Folgende gilt: gPrimfaktoren≠ 1 mod p Beispiel p = 167, Primfaktoren sind 2 und 83 12 = 1 mod 167 22 = 4 mod 167; 283 = 1 mod 167 32 = 9 mod 167; 383 = 1 mod 167 42 = 16 mod 167; 483 = 1 mod 167 52 = 25 mod 167; 583 = 166 mod 167
Grundlagen der Simulation Multiplikative Kongruenzmethode Es gilt c = 0 ⇒ Teil (a) von Satz (2.1) ist nicht erfüllt Es lässt sich zeigen, dass p ≤ 2s-2 gilt, wenn m = 2s gewählt wird. Es gibt ein Vielzahl von unterschiedlichen Generatoren, die auf dieser Methode basieren PMMLCG (prime modulus multiplikative linear congruence generators). Bestimmung von a, m und n0 bei PMMLCG: m Größte Primzahl für die gilt m < 2s a Es muss gelten: Die kleinste Zahl l, für die al-1 durch m teilbar ist, ist l=m-1 Unter diesen Bedingungen gilt bei beliebiger Wahl von n0 stets p = m -1 Beispiel für einen PMMLCG: Die Simulationssprache SIMSCRIPT II.5 bietet Generatoren mit a=630360016 und m = 231 - 1
Grundlagen der Simulation Allgemeinere Kongruenzmethode Zugrunde liegt eine k-fache Rekursionsgleichung Beispiele: Quadratische Kongruenz: Verallgemeinerte lineare Kongruenz: Vorteil: Periodenlängen von p >> m werden möglich. Nachteil: Die Kalkulation von ni wird rechenzeitintensiver. ni = f (ni-1 , ni-2 , …, ni-k ) mod m ni = (a∙ni-1 + b∙ni-1 + c ) mod m ni = (a1ni-1 + a2ni-2 + … + ai-kni-k ) mod m
Grundlagen der Simulation Kompositionsmethode Grundgedanke: Zwei auf einer linearen Kongruenzmethode basierende Generatoren werden in geeigneter Weise miteinander kombiniert. Beispiel: Mit dem ersten Generator wird ein Vektor V von k Zufallszahlen erzeugt Mit dem zweiten Generator wird eine gleichverteilte ganze Zahl i zwischen 1 und k ermittelt Als Ergebnis wird die i-te Komponente von V zurückgegeben. Anschließend ersetzt der erste Generator die i-te Komponente in V durch die nächste vom ihm erzeugte Zufallszahl. Vorteil: Mit dieser Methode kann aus zwei "schlechten" Generatoren ein Generator mit guten statistischen Eigenschaften gemacht werden.
Grundlagen der Simulation Tausworthe-Generator Zugrunde liegt eine q -fache Rekursionsgleichung bi sowie ck sind entweder 0 oder 1 (Binärvariablen) Generell haben Tausworthe-Generatoren die folgende Gestalt bi = (c1bi-1 + c2bi-2 + … + cqni-q ) mod 2 bi = (bi-r + bi-q) mod 2 mit 0<r<q
Grundlagen der Simulation Tausworthe-Generator Beispiel r=3; q=5; b1 = b2 = ... = b5 = 1 Damit erzeugt der Generator die folgende Bitfolge: 11111 00011 01110 10... Teilfolgen werden als binäre Darstellung der eigentlichen Zufallszahl interpretiert. Die maximale Periodenlänge von Tausworthe-Generatoren ist 2q - 1 Das resultiert aus der Anzahl von Möglichkeiten q Binärzeichen zu permutieren. Vorteile: Addition und mod 2 sind äquivalent zum „exklusiven oder“ ⇒ effiziente Ermittlung der nächsten Zahl ist sichergestellt Problem: Der Ansatz, aus den Bitfolgen gleichverteilte Zufallszahlen zu erzeugen, ist umstritten. Eingesetzt wird ein Tausworthe-Generator z.B. in der Simulationssprache GPSS/H.
Grundlagen der Simulation Tests von Zufallsgeneratoren Grundsätzliches Zufallszahlengeneratoren sind deterministische Berechnungsvorschriften Sie werden getestet, um festzustellen wie stochastisch sie erscheinen Zwei Klassen von Tests lassen sich unterscheiden: Empirische Test Zufallsgenerator wird ausprobiert k Zufallszahlen erzeugen und statistisch testen Gleichverteilung Korrelation bzw. Unabhängigkeiten Theoretische Tests
Grundlagen der Simulation Empirische Tests Optische Tests Aus dem Zahlenstrom X1, X2, …, Xn werden Zahlentupel gebildet 2D- bzw. 3D-Plots sind üblich Bei zufälligen Zahlenströmen entstehen keine Muster Problem Aussage nur über einen Ausschnitt des Zahlenstroms möglich lokale Tests
Grundlagen der Simulation Tests von Zufallsgeneratoren Unabhängigkeitstests Verteilungstests Anordnungstest Tests auf Gleichverteilung Serientest weitere Momente Runtest Erwartungswert Kominatorische Tests Test auf andere Verteilungen Pokertest Normalverteilung Sammlertest Permutationstest Autokorrelationstest
Grundlagen der Simulation Empirische Tests Serientest sind wiederkehrende Muster zu erkennen sind in den Zahlenfolgen auffällige Lücken Runtest Zahlenfolgen sollten steigen und fallen Differenz benachbarter Zahlen mal positiv, mal negativ Runs: gleiches Vorzeichen bei mehreren Zahlen Pokertest Transformation des Zahlenstroms auf die Ziffern 0-9 durch Intervallbildung Zusammenfassung der Folge zu Quintupeln Vergleich der relativen Häufigkeiten der verschiedenen Quintupel mit der berechneten Wahrscheinlichkeiten
Grundlagen der Simulation Empirische Tests Permutationstest Unterteilung der Zahlenfolge im Tupel (z.B. Triple) Indexierung der einzelnen Elemente der Tupel nach der Größe Häufigkeitsauswertung der einzelnen Permutationen der Indizes Autokorrelationstest Test auf lineare Unabhängigkeit Es wird der Korrelationskoeffizient r(Xn, Xn+a) mit a gleich der Abstand zwischen zwei Zahlen der Zahlenfolge Erwartungswerttest Der Erwartungswert aus einer gleichverteilten Stichprobe [0,1[ Erwartungswert ist das arithmetische Mittel der Stichprobe (0.5)
Grundlagen der Simulation Theoretische Tests Versuchen a priori Aussagen über Generatoren anhand ihrer Parameter zu machen theoretische Tests sind global Problem: Die Durchführung ist komplizierter bzw. auf als bei empirischen Tests Grundsätzliches zum Testen von Generatoren Der Aufwand zur Untersuchung der Generatoren sollte von der Bedeutung der Güte der Zufallszahlen für den jeweiligen Anwendungsfall abhängig gemacht werden.
Grundlagen der Simulation Wahrscheinlichkeitsverteilungen
Grundlagen der Simulation Nichttheoretische Verteilungen Diskrete Werte werden direkt mit ihren jeweiligen relativen Wahrscheinlichkeiten (ungleich 0) angegeben Jedem möglichen Variablenwert werden ganzzahlige Zufallszahlen (Integer-Random-Variablen) zugewiesen, so daß die Anzahl dieser Variablen proportional zur Wahrscheinlichkeit des Wertes ist. unendliche Zahl von Werten; Modellierung von Zeiträumen Wahrscheinlichkeit, dass die Zufallsvariable einen bestimmten Wert annimmt, ist gleich Null. Die Wahrscheinlichkeit, dass sie irgendeinen Wert im Intervall annimmt, gleich Eins. Daher wird mit sogenannten kumulativen Wahrscheinlichkeiten gearbeitet. Die Dichtefunktion P(x) einer Verteilung
Grundlagen der Simulation Nichttheoretische diskrete Verteilung Beispiel Sie haben bereits 100 Lieferungen getätigt und 40 Lieferungen binnen eines Tages, 40 Lieferungen in zwei Tagen und 20 Lieferungen in drei Tagen erfolgen. Dann sind die relativen Häufigkeiten für die Lieferung in einem Tag 40/100 = 0,4, in zwei Tagen ebenfalls 40/100 = 0,4 und in drei Tagen 20/100 = 0,2. Werden nun 100 Zufallszahlen zwischen 0 und 99 generiert, dann können z.B. die Werte zwischen 0-39 dem Variablenwert (Lieferzeit in Tagen) 1, die Werte zwischen 40-79 dem Variablenwert 2 und die Werte zwischen 80-99 dem Variablenwert 3 zugewiesen werden.
Grundlagen der Simulation Nichttheoretische Verteilungen ist eine intervallweise stetige Funktion, die angibt, wie hoch die Wahrscheinlichkeit ist, dass die Zufallsvariable X in einem vorgegebenen Intervall liegt, kann keine negativen Werte annehmen, und die Fläche zwischen der Funktion und der x-Achse ergibt immer den Wert 1, bestimmt die kumulative Wahrscheinlichkeitsfunktion C(x), die sogenannte Verteilungsfunktion. Sie Wahrscheinlichkeit, daß ein Bauteil bis zu einem bestimmten Zeitpunkt ausfällt. Die Wahrscheinlichkeit, daß das Bauteil im ersten Jahr ausfällt, beträgt 0.5, daß es während der ersten drei Jahre ausfällt, 0.9 usw.
Grundlagen der Simulation Erwartungswert Der Erwartungswert µ oder E (X) einer Zufallsvariable X gibt den Wert an, der sich bei einer häufigen Wiederholung des Zufallsexperiments einstellen wird
Grundlagen der Simulation Varianz/Standardabweichung Die Varianz σ² oder V (X) einer Zufallsvariablen X ist ein Maß für die Streuung der Variablen Die Standardabweichung σ oder S (X ) ist als positive Quadratwurzel aus der Varianz definiert σ² = E (X – E (X ))²
Grundlagen der Simulation Kovarianz Die Kovarianz Cij von zwei Zufallsvariablen Xi und Xj ist ein Maß für die Abhängigkeit der beiden Zufallsvariablen (Mittelwert der für alle Datenpunktpaare gebildeten Produkte der Abweichungen) Es gilt: Cij = 0 ⇒ Xi und Xj sind unabhängig (Die Umkehrung gilt im allgemeinen nicht!) Ist Cij > 0 (Cij < 0) so werden Xi und Xj als positiv (negativ) korreliert bezeichnet. Tendenziell treten dann Xi> E(Xi) sowie Xj > E(Xj) gemeinsam (nicht gemeinsam) auf. Als standardisiertes Maß für die Korrelation wird der Koeffizient verwendet. Es gilt -1 ≤ ρij ≤ 1. Cij = E ( (Xi – E (Xi)) ⋅ (Xj – E (Xj )) )
Grundlagen der Simulation Bernoulli-Verteilung Beschreibt die Ergebniswahrscheinlichkeit eines Experimentes mit zwei möglichen Ausgängen, die sich durch X = 0 bzw. X = 1 charakterisieren lassen. Wahrscheinlichkeitsverteilung Erwartungswert: E (X ) = p Varianz: V (X) = p – p ² Verwendung Immer dann, wenn ein Experiment gelingen (X=1) oder misslingen (X=0) kann Grundlage der Binomial-Verteilung
Grundlagen der Simulation Poisson-Verteilung Beschreibt die Wahrscheinlichkeit, dass in einem bestimmten Zeitintervall eine Anzahl von x Ereignissen auftritt. Unterstellt wird ein unabhängiges Auftreten der einzelnen Ereignisse. Im Mittel treten pro Zeiteinheit λ>0 Ereignisse auf. Wahrscheinlichkeitsverteilung Erwartungswert: E (X ) = λ Varianz: V (X ) = λ Verwendung Modellierung der Anzahl von pro Zeiteinheit nachgefragten Einheiten; z.B. Nachfrage in einem Lagerhaltungsmodell
Grundlagen der Simulation Erlang-k-Verteilung Spezialfall der Gamma-Verteilung; k muss eine nichtnegative ganze Zahl sein Dichtefunktion Erwartungswert: E (X ) = k⋅µ Varianz: V (X ) = k⋅µ² Verwendung Modellierung von Bearbeitungs- zeiten, beispielsweise zur Durch- führung von Reparaturen
Grundlagen der Simulation Dreiecksverteilung Dichtefunktion E (X ) = V (X ) = Verwendung Einsatz in "informationsarmen" Situationen Benötigt wird die Kenntnis des häufigsten Wertes m, einer unteren Grenze a und einer oberen Grenze b Basis können grobe Schätzungen sein
Grundlagen der Simulation Exponentialverteilung Dichtefunktion Erwartungswert: E (X ) = λ Varianz: V (X ) = λ2 Verwendung Zeit zwischen unabhängigen Ereignissen Einsatz zur Modellierung von Ankunftsprozessen aller Art
Grundlagen der Simulation Zusammenfassung Verteilungen