Statistische Formeln für den Szenariodesigner Im Folgenden werden die in der Aufgabenstellung für den Szenariodesigner erwähnten Verteilungen erklärt. Wer es gar nicht so genau wissen will, kann den Abschnitt Hintergrund jeweils auslassen und einfach nur die Formel unter Implementierung abtippen. Stetige Verteilungen Gleichverteilung Hintergrund Die stetige Gleichverteilung auf dem Intervall [a,b] hat die Dichtefunktion f ( x) = 1 . b−a Der Erwartungswert ist (a+b)/2 und die Standardabweichung (b-a)/√12. Die Gleichverteilung wird verwendet, wenn alle möglichen Werte gleich wahrscheinlich sind. Implementierung Die auf dem Rechner zur Verfügung stehenden Zufallsgeneratoren, etwa die random() Methode von Java, geben auf dem Intervall [0,1] (zumindest annähernd) gleichverteilte Werte zurück. Daraus lassen sich leicht auf dem Intervall [a,b] gleichverteilte Werte u[a,b] erzeugen: u[ a ,b ] = a + (b − a ) u[ 0,1] Exponentialverteilung Hintergrund Die Exponentialverteilung hat die Dichtefunktion f ( x ) = λ e − λx . Ihr Erwartungswert ist 1/λ, ihre Standardabweichung ist 1/λ2. Sie wird häufig für die Modellierung von Wartezeiten verwendet, weil sie „gedächtnislos“ ist, d.h. für die Berechnung der zukünftigen Wartezeit spielt es keine Rolle, wie lange bereits gewartet wurde. Radioaktiver Zerfall ist etwa ein natürliches Beispiel für einen exponentialverteilten Prozess. Implementierung Aus den 0,1-gleichverteilten Werten u, die die random()-Methode zurückgibt, lassen sich direkt nach folgender Formel mit Parameter λ exponentialverteilte Werte y gewinnen: y=− 1 λ ln (1 − u ) . Für alle, die es genau wissen wollen: Nach dem Simulationslemma erhält man einer Verteilung entsprechende Zufallswerte, wenn man in die Inverse ihrer Verteilungsfunktion (die Verteilungsfunktion ist das Integral der Dichtefunktion) 0,1-gleichverteilte Werte einsetzt. Normalverteilung Hintergrund Die Normalverteilung ist die bekannte Glockenkurve. Viele Beispiele in der Praxis, etwa Körpergrößen, Fabrikationsungenauigkeiten oder Messfehler, entsprechen annähernd einer Normalverteilung. Ihre Dichte ist f (x ) = 1 2π σ e − (x − µ )2 2σ 2 . Ihr Erwartungswert ist µ, ihre Standardabweichung ist σ. N(0,1), d.h. eine Normalverteilung mit µ=0 und σ=1, wird als Standardnormalverteilung bezeichnet. Implementierung Leider funktioniert das Simulationslemma bei der Normalverteilung nicht, weil man noch nicht einmal ihre Verteilungsfunktion, geschweige denn die Inverse der Verteilungsfunktion, als Formel angeben kann. Allerdings gibt es andere Methoden, die standardnormalverteilte Zufallswerte zu erzeugen. Eine einfache Methode ist das Verfahren von Box-Muller, mit dem folgendermaßen aus zwei 0,1-gleichverteilten Zufallszahlen u1 und u2 zwei (oder wahlweise auch nur ein) normalverteilte(r) Wert(e) z1 (und z2) gewonnen werden: z1 = − 2 ln (u1 ) sin( 2π u 2 ) z 2 = − 2 ln (u1 ) cos(2π u 2 ) . Aus standardnormalverteilten Werten z0,1 kann man jede andere Normalverteilung erzeugen: z µ ,σ = σ z 0,1 + µ Für die Frist f eines Auftrags, die normalverteilt mit Parametern µ = k m und σ = (k-1) m / q sein soll, ergibt sich also: f = (k − 1) d min q z + k d min . Diskrete Verteilungen Laplace-Verteilung Hintergrund Die Laplace-Verteilung ist das diskrete Gegenstück zur Gleichverteilung. Eine endliche Menge von Ereignissen hat dabei jeweils die gleiche Wahrscheinlichkeit. Bekanntestes Beispiel ist das Werfen eines sechsseitigen Würfels, wobei alle Zahlen die gleiche Wahrscheinlichkeit von 1/6 haben. Implementierung Die Laplace-Verteilung für n Ereignisse lässt sich leicht aus der Gleichverteilung gewinnen, indem man das Intervall [0,1] in n gleiche Abschnitte unterteilt und dann prüft, in welchen Abschnitt der generierte Zufallswert fällt: l = ceiling (n u ) Binomialverteilung Hintergrund Die Binomialverteilung zählt das Eintreten eines Ereignisses (X), etwa „Kopf“ beim nmaligen Münzewerfen, bei einem möglichen Gegenereignis („Zahl“). Wenn die Wahrscheinlichkeit für das Ereignis p ist, gilt für k-maliges Eintreten bei n Versuchen: n n−k B( X = k ) = p k (1 − p ) k Der Erwartungswert ist np, die Standardabweichung np(1-p). Implementierung Die Binomialverteilung lässt sich ganz einfach simulieren, indem man das Experiment mit dem Rechner nachspielt. Für jeden Münzenwurf (p = 0,5) nimmt man eine gleichverteilte Zufallsvariable u und wertet den Versuch als Erfolg (Kopf), wenn u ≤ p ist. Multinomialverteilung (Polynomialverteilung) Hintergrund Die Multinomialverteilung ist die Verallgemeinerung der Binomialverteilung auf mehr als zwei mögliche Ereignisse. Jedem Ereignis wird eine eigene Wahrscheinlichkeit pi zugeordnet, die Summe aller Wahrscheinlichkeiten muss dabei natürlich 1 sein. Es wird wiederum gezählt, wie oft bei n Versuchen jedes Ereignis eintritt. Die Verteilung ist im täglichen Leben relativ häufig anzutreffen, etwa, wenn man zählt, wie oft beim Würfeln mit einem oder mehreren Würfeln eine bestimmte Summe gefallen ist, wird aber in Statistikvorlesungen gerne stiefkindlich behandelt, weil die zugehörigen Formeln etwas unhandlich sind. Dasselbe wollen wir hier also auch tun. Wichtig ist für uns nur, dass der Erwartungswert für das i-te Ereignis npi ist. Implementierung Die Multinomialverteilung lässt sich wie die Binomialverteilung ganz leicht simulieren, indem man die einzelnen ‚Würfe’ nachspielt. Das lässt sich dadurch erreichen, dass man das Intervall [0,1] entsprechend den Wahrscheinlichkeiten pi in unterschiedlich große Abschnitte unterteilt, eine Zufallszahl u generiert und dann das Ereignis auswählt, in dessen Abschnitt u fällt. Für die Bestimmung des Start-Zielort-Paares nimmt man also einfach die vorgegebenen Anteile asz als Einzelwahrscheinlichkeiten. Also werden z.B. bei drei möglichen Strecken mit Anteil 40% (A), 50% (B) und 10% (C) die Intervallgrenzen bei 0,4 und 0,9 gezogen und somit bei u=0,3 A, u=0.44 B, u=0.63 B und u=0.93 C gewählt.