1 / 14

Erzeugung und Verwendung von Zufallszahlen

Erzeugung und Verwendung von Zufallszahlen. Modellierung von zufälligen Prozessen Anforderungen an eine Zufallszahl Zufallszahlengenerator Generierung einer exponentialverteilte Zufallszahl Empfehlungen zur Anwendungen der Zufallszahlenströme

halen
Download Presentation

Erzeugung und Verwendung von Zufallszahlen

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Erzeugung und Verwendungvon Zufallszahlen Modellierung von zufälligen Prozessen Anforderungen an eine Zufallszahl Zufallszahlengenerator Generierung einer exponentialverteilte Zufallszahl Empfehlungen zur Anwendungen der Zufallszahlenströme Bestimmung der Güte der Simulationsergebnisse durch Konfidenzintervalle Abhängigkeiten zwischen Simulationsergebnissen Literatur zur Simulation und Statistik

  2. Modellierung von zufälligen Prozessen mittels Zufallszahlengeneratoren • Zufallszahlengeneratoren erzeugen eine Folge von Zahlen (Zufallszahlenstrom), die möglichst viele Eigenschaften von Zufallszahlen haben. • Da die Erzeugung von Zufallszahlen auf deterministischen Algorithmen beruht, ist die entstehende Zahlenfolge nicht wirklich zufällig. Deshalb wird oft von Pseudozufallszahlen gesprochen. In Computerprogrammen werden "Zufallszahlen" nach bestimmten Algorithmen berechnet, d.h. es sind gar keine echten Zufallszahlen, sondern "Pseudozufallszahlen". Von den so bestimmten Pseudozufallszahlen verlangt man eine möglichst gute Annäherung an "echte" Zufallszahlen, z.B. sollten die einzelnen Zahlen mit gleicher Häufigkeit auftreten, Wiederholungen von Zahlen sollten die gleiche Häufigkeit wie bei echten Zufallsziffern haben. • Die von dem Zufallszahlengenerator erzeugte Menge von Realisierungen (auch Stichprobe genannt) muß einem vorgegebenen Verteilungsgesetz einer Zufallszahl gehorchen. • Es zeigt sich, dass es genügt, eine im Intervall (0,1) gleichverteilte Zufallszahl zu erzeugen. Mittels dieser Zufallszahl kann zum Beispiel eine normalverteilte Zufallszahl mit gegebenen Mittelwert  (Mu) und Standardabweichung  (Sigma) algorithmisch erzeugt werden.

  3. Anforderungen an eine im Intervall (0,1) gleichverteilte Zufallszahl • Die Wahrscheinlichkeit, dass eine Realisierung in einem Teilintervall von (0,1) liegt, ist nur von der Länge des Teilintervalls abhängig. Salopp gesagt: jede Zahl in (0,1) ist gleichwahrscheinlich. • Die Anordnung der Zufallszahlen hat keine typischen Merkmale, z.B. die Vorzeichen der Differenzen von aufeinanderfolgenden Zufallszahlen lassen keine typischen Muster erkennen. • Da es nur endliche viele Zustände eines Rechners gibt, muss ein solcher Algorithmus periodisch werden. Wir fordern deshalb, dass die Periodenlänge möglichst groß ist. • Ausgehend von gegebenen Startwerten (sogenannten Seed-Werten) muss eine große Anzahl von stochastisch unabhängigen Zufallszahlen zur Verfügung stehen. • Um bestimmte statistischen Methoden (wie z.B. die Varianzreduktion) anwenden zu können, müssen die zufälligen Prozesse einer Simulation reproduzierbar sein.

  4. Der Zufallszahlengenerator • Zwei ganzzahligen Zufallszahlengeneratoren ( MLCG: Multiplicative Linear Congruential Generator ) erzeugen zufällige ganze Zahlen, die zu einer gebrochenen Zahl aus dem Intervall (0,1) verschmolzen werden. • Die MLCG´en verwenden große Primzahlen p, die mit einem 32-Bit Rechner noch exakt darstellbar sind, d.h.: p < 231 = 2147483648. ·a1 ·a1 Seed1 = 0  a1 MLCG 1 1036797838 1950756402 1341219698 p1 = 2147483563 226382336 1336216557 1763549752 geheim Seed2 = 1  a2 MLCG 2 1724374066 5003141 1420731485 ·a2 ·a2 p2 = 2147483399 Simulation Zufallszahlen- strom (0, 1): 0.5034.. 0.3910.. 0.5661.. Multiplikation mit dem Multiplikator a des Stroms: Differenz der Zufallszahlen:

  5. Der Zufallszahlengenerator • Die ganzzahligen Zufallszahlengeneratoren (MLCG) basieren auf Erkenntnissen aus der Zahlentheorie, insbesondere der Theorie der Primzahlen. • Die MLCG en multiplizieren die aktuelle Zahl im Zufallszahlenstrom mit einem Multiplikator a:0 < a < p und bilden den Rest bei der Division durch p. Der zugehörige Algorithmus muss sicherstellen, dass bei allen Zwischenergebnissen niemals der Bereich der exakt darstellbaren ganzen Zahlen verlassen wird. • Um eine maximale Zyklenlänge der MLCG zu erhalten, müssen die Potenzen von a bei der Division durch p alle möglichen Reste 1,..., p-1 erzeugen. Die Zahl a ist dann eine primitive Wurzel der Primzahl p. Die Periodenlänge eines Zufallszahlenstroms ist (p1 - 1) ·(p2 - 1) / 2 2,30584265058394... · 1018. ·a 2 3 6 ·a Primitive Wurzeln für p = 7 a = 2 ist keine primitive Wurzel a = 3 ist primitive Wurzel 4 a = 3 1 2 a = 2 1 5 4

  6. Kombination von zwei Zufallszahlengeneratoren Gründe für die Kombination zweier ganzzahligen Zufallszahlengeneratoren und der Spektraltest Ein Punkt entspricht einem Paar aufeinanderfolgender Zufallszahlen. MLCG 1 p1 = 17 a = 14 unerwünschte Gitterstruktur Differenz-bildung Ebenenabstand = 5.38 MLCG 2 Der größere Abstand der Gitterebenen bestimmt die Qualität der Parameter a und p des MLCG. Die Kriterien sind in der Arbeit von Pierre L'Ecuyerbeschrieben. p2 = 19 a = 10 Ebenenabstand = 8.50

  7. Transformation von Zufallszahlen Generierung einer Zufallszahl, die einem gegebenen Verteilungsgesetz genügtBeispiel: Exponentialverteilte Zufallszahl ( Mittelwert  = 1 /  ) F(x) f(x) 1 Dichtefunktion f(x) =  exp(-  x) Verteilungsfunktion F(x) = 1 - exp(- x) F(x) = P( „Zufallszahl b“ ) u P( „a < Zufallszahl b“ ) F(x)´= f(x) x x 0 0 x a b u ist eine im Intervall (0,1) gleichverteilte Zufallszahl u = 1 - exp(-  x)  x = - ln(1-u) /  x ist eine exponentialverteilte Zufallszahl

  8. Empfehlungen zur Anwendungen der Zufallszahlenströme Zu jedem zufälligen Prozess muss ein Strom zugeordnet werden.VarianzreduktionUm die Ergebnisdaten verschiedener Simulationsläufe vergleichen zu können, sollten nicht ausgewertete zufällige Prozesse in den Simulationsläufen gleich ablaufen. Dadurch werden unnötige Schwankungen der Ergebnisdaten vermieden. Vergleich der mittleren Wartezeiten bei verschiedenen Warteschlangendisziplinen: Europa Amerika Zufällige Prozesse, die in beiden Modellen gleich ablaufen sollten. verschiedene Ströme mit gleichen Seed-Werten Ankunftszeiten der Kunden (1 Kunde / min ) Servicezeiten der Kunden ( 2 min ) Frage: Ist die Differenz der mittleren Wartezeiten in Europa und Amerika größer Null?

  9. Bestimmung der Güte der Simulationsergebnisse Es genügt nicht, die Ergebnisse aus verschiedenen Simulationsläufen nur durch einen Mittelwert zusammenzufassen. Die Ergebnisse können nur dann sinnvoll interpretiert werden, wenn zu dem Mittelwert das zugehörige Konfidenzintervall (Vertrauensintervall) angegeben wird.Die Simulationsergebnisse sind auch Zufallszahlen, von denen man nur wenige Realisierungen beobachtet hat (Stichprobe).Konfidenzintervalle ermöglichen die Genauigkeit der Simulationsergebnisse zu schätzen.Ein Konfidenzintervall gibt an, in welchem Bereich sich der wahre Mittelwert der Zufallszahl mit einer gegebenen Wahrscheinlichkeit (Vertrauenswahrscheinlichkeit, Sicherheitsniveau) befindet. Eine Vergrößerung des Stichprobenumfanges führt bei gleicher Vertrauenswahrscheinlichkeit zu einer Verkleinerung des Konfidenzintervalls. Eine Vergrößerung der Vertrauenswahrscheinlichkeit führt bei gleichen Stichprobenumfang zu einer Vergrößerung des Konfidenzintervalls.

  10. Konfidenzintervalle Gegeben ist eine Stichprobe einer (normalverteilten) Zufallszahl x.Beide Parameter der Zufallszahl sind unbekannt.n = Umfang der Stichprobe (z.B. Anzahl der Simulationsläufe)  = Irrtumswahrscheinlichkeit des Konfidenzintervalls1- = Vertrauenswahrscheinlichkeit des Konfidenzintervalls (90%) m = Mittelwert der Stichprobe s = Standardabweichung der StichprobeDas Konfidenzintervall [m-h, m+h] ist bestimmt durch P(„ m - h  x  m + h “) = P([m-h, m+h]) = 1 -  . h = t(1 -  /2, n-1) * s / n t(1 -  /2, n-1) ist das Quantil der Student t-Verteilung mit n-1 Freiheitsgraden(aus Tabellen oder mit dem Modell Datafit.spp , Netzwerk .StatisticalTools.Confidence bestimmen) Achtung: Die Excel-Funktion = KONFIDENZ(0,1;C16;10)  = 0,1,Standardabweichung aus Zelle C16, n = 10 geht von einer bekannten Standardabweichung der Zufallszahl x aus.

  11. Konfidenzintervalle Beispiel: Differenz der mittleren Wartezeiten bei verschiedenen Warteschlangendisziplinen: Konfidenzintervall bei verschiedenen Ankunfts- und Servicezeiten: [ -458 , 600 ] (m = 71) Mit einer Vertrauenswahrscheinlichkeit von 90 % kann man auf Grund dieser Simulationsstudie nicht entscheiden, ob die Wartezeiten in Europa oder Amerika kürzer sind. Konfidenzintervall bei gleichen Ankunfts- und Servicezeiten: [ 25 , 45 ] (m = 35) Der Mittelwert der Differenz der Wartezeiten in Europa und Amerika ist mit einer Wahrschein-lichkeit von 90 % zwischen 25 und 45 Sekunden. Streuungsdiagramme mit Wertepaare (Europa, Amerika)

  12. Konfidenzintervalle und Stichprobenumfang Situation:Es liegt eine Stichprobe vom Umfang n vor. Die halbe Breite des Konfidenzintervalls ist h.Frage:Wie groß muss n* sein, um die halbe Breite des Konfidenzintervalls auf einem gewünschten Wert h* zu bringen? h = t(1 -/2, n -1) * s / nh* = t(1 - /2, n*-1) * s /  n* n*/ n = (h / h*)2 t(1 -  /2, n-1) liegt für n  10 zwischen 1.282 und 3.106.Auch wird sich die Standardabweichung mit wachsenden n kaum noch ändern.h2 * n ist etwa konstant.Beispiel: Halbierung der Breite des Konfidenzintervalls ( h* / h = 0.5 ) erfordert eine 4-fach größere Stichprobe ( n* = 4 n ).Idee: J. Banks: „Output Analysis Capabilities of Simulation Software“, 1996

  13. Abhängigkeit zwischen Simulationsergebnissen (x,y)= Cov(x,y)Kovarianz der Zufallszahlen x und y E[x] = Erwartungswert der Zufallszahl x (x,y)= E[(x – E[x])(y - E[y]) ] x und y sind stochastisch unabhängig: (x,y)= 0 (x,y)= Korrelationskoeffizient(x,y)= (x,y)/((x)(y)) -1  (x,y) 1 Maß für die (lineare) Abhängigkeit von x und y, (x,y)= ±1: linear abhängige Zufallszahlen x und y.

  14. Literatur zur Simulation und Statistik • J. Banks; J.S. Carson: „Discrete-Event System Simulation.“, Prentice--Hall 1984. Eine umfassende Einführung in die Mathematischen und statistischen Grundlagen mit Bezügen zur Simulation von Produktions- und Logistikprozessen. • P. Bratley; B.L. Fox; L.E. Schrage: „A Guide to Simulation.“, Springer 1987. Kapitel 6 gibt einem umfassenden theoretischen Überblick zur Erzeugung von Zufallszahlen. • H. Corsten: „Produktionswirtschaft.“, München, Wien 1994. Grundlagen zur Steuerung und Planung. • Pierre L'Ecuyer: „Efficient and Portable Combined Random Number Generators.“ Comm of the ACM Vol 31, Number 6, 1988, p.742-750. Beschreibung der MLCG und Begründungen für die Wahl der Multiplikatoren und der verwendeteten Primzahlen. • A.M. Law; W.D. Kelton: „Simulation Modeling & Analysis“, McGraw-Hill, 1991. • F. Liebl: „Simulation: Problemorientierte Einführung“, Oldenbourg Verlag 1995. Allgemeinverständliche Einführung in die diskrete Simulation mit zahlreichen Anweisungen und Hinweisen zur Durchführung von Simulationsprojekten. • B. Page: „Diskrete Simulation: Eine Einführung mit Modula-2.“, Springer 1991. Statistische Verfahren werden ohne breite mathematische Abhandlungen allgemeinverständlich beschrieben. Hinweise zur Durchführung von Simulationsprojekten. • K. Neumann; M. Morlock: „Operations Research.“, Hanser Verlag 1993. Mathematische Grundlagen in knapper Form mit zahlreichen algorithmischen Problemlösungen, Bezüge zur Produktion und Logistik.

More Related