Zufallszahlen Zufallszahlengeneratoren Transformation von Zufallszahlen Test von Zufallszahlengeneratoren Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 1 Zufallszahlengeneratoren - Zufallszahlen Zufallszahl : Wert, den eine Zufallsgröße bei ihrer Realisierung annimmt. Zufallszahlenfolge : Folge oder Vektor von Realisierungen unabhängiger, identisch verteilter Zufallsgrößen (independent and identically distributed IID) Ein n-Tupel von Zahlen, das mit einer statistischen Hypothese im Einklang steht, eine Realisierung eines zufälligen Vektors mit unabhängigen, identisch nach einer Verteilungsfunktion F verteilten Komponenten (Zufallsgrößen) zu sein, heißt n-Tupel von F verteilten Zufallszahlen. Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 2 Zufallszahlengeneratoren - Zufallszahlen Nach F verteilte Zufallszahlenfolge Beispiele für Zufallszahlen: Zufallszahlen und Computeranwendungen Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 3 Zufallszahlengeneratoren - Zufallszahlen Integrierte Zufallszahlengeneratoren Zufallszahlentafeln 1955 Rand Corporation Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 4 Zufallszahlengeneratoren - Klassen Physikalische Zufallszahlengeneratoren natürliche oder physikalische Effekte Beispiele : – Kommerzielle Geräte – Kopplung dieser Geräte an den Computer Nachteile: » Reproduzierbarkeit » Speicherplatz Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 5 Zufallszahlengeneratoren - Klassen Pseudozufallszahlengeneratoren sind Instrumente zur determinierten Erzeugung von Zufallszahlen Hardware (Schieberegister) oder Software Dominanz der algorithmischen Generatoren Vorteile: – – Zufallszahlen werden als Pseudozufallszahlen bezeichnet Alter Vorschlag: Dezimalstellen transzendender Zahlen Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 6 ZZG - Gleichverteilte Zufallszahlen Eine diskrete Zufallsgröße X heißt gleichmäßig verteilt oder auch diskret gleichverteilt auf den Punkten a1, ... , an , wenn gilt (für i=1,...,n) P{ X = ai } = 1 n Erwartungswert EX EX = Streuung DX 1 n ∑ ai n i =1 DX = Otto-von-Guericke-Universität Magdeburg 1 n 2 ai − ( EX ) 2 ∑ n i =1 Thomas Schulze Diskrete Simulation 7 ZZG - Gleichverteilte Zufallszahlen Eine stetige Zufallsgröße X heißt gleichmäßig verteilt oder auch stetig gleichverteilt über dem Intervall [a,b] , wenn sie die Wahrscheinlichkeitsdichte f(x) besitzt 1 f ( x) = b − a 0 für a≤x≤b Erwartungswert EX EX = a+b 2 Otto-von-Guericke-Universität Magdeburg Streuung DX DX = Diskrete Simulation 1 (b − a ) 2 12 Thomas Schulze 8 ZZG - Rekursive Generatoren Dezimalstellen einer transzendenden Zahl als zufällige Ziffern Vorteil : Ziffernfolgen sind nicht zyklisch, d.h. • • Nachteil : Dominanz von rekursive Zufallszahlengeneratoren z n := R ( z n −1 ,..., z n − k ) Otto-von-Guericke-Universität Magdeburg Häufig k=1 oder k=2 Diskrete Simulation Thomas Schulze 9 ZZG - Rekursive Generatoren Diese Zufallszahlengeneratoren sind zyklisch. Von einer bestimmten Zahl an, tritt eine davor stehende Teilfolge erneut auf. AAAA0000000011111112222222 AA 00 11 22 Zyklusfreies Anfangsstück Nullter Zyklus Erster Zyklus Zweiter Zyklus Welche Zyklen sollen verwendet werden? Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 10 ZZG - Rekursive Generatoren Woraus ergeben sich die Zyklen? Jede im Computer darstellbare Menge von Zahlen ist endlich ist. Es sei m die Mächtigkeit der benutzten Zahlenmenge. Spätestens nach der Erzeugung von m Zahlen muß eine Zahl zum zweitenmal auftreten. Spätestens nach mk Zahlen dieser Menge muß ein k-Tupel erneut auftreten. Wenn also eine Zahl rekursiv aus ihren k Vorgängern erzeugt wird, tritt spätestens nach mk Zahlen ein erzeugendes mk Tupel wieder auf. Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 11 ZZG - Rekursive Generatoren Wenn dieses k-Tupel nach l Zahlen wiederkehrt, so wird mit l die Zykluslänge des Generators bezeichnet. Die Zykluslänge ist ein wichtiges Qualitätskriterium für Zufallszahlengeneratoren. Praktisch tritt es gelegentlich auf, daß Zufallszahlengeneratoren genutzt werden sollen, deren Zykluslänge nicht für das zu lösende Problem ausreicht. Das führt zu falschen und gegebenenfalls unbrauchbaren Resultaten. Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 12 ZZG - Rekursive Generatoren Geforderte allgemeine Eigenschaften • [0,1] Gleichverteilung entsprechen, und die einzelnen Zahlen dürfen nicht korrelieren. • Die verwendeten Algorithmen sollen schnell sein und wenig Speicherplatz beanspruchen. • Der erzeugte Zahlenstrom muß reproduzierbar sein. Gründe: • • • Unterschiedliche Ströme von Zufallszahlen Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 13 ZZG - Rekursive Generatoren Der Quadratmittengenerator von John von Neumann ist ein Generator aus den 40-er Jahren. Das Grundprinzip besteht darin, daß eine Zufallszahl aus dem Quadrat ( oder der Quadratwurzel) ihres Vorgängers berechnet wird. Algorithmus: – Beginne mit einer vier-stelligen positiven ganzen Zahl Z0 und quadriere diese Zahl zu einer acht-stelligen ganzen Zahl Z0² . – Schneide die mittleren vier Zahlen als die nächste Zahl Z1 heraus (Vornullen einfügen). – Plaziere einen Dezimalpunkt vor den Ziffern und erhalte eine Dezimalzahl U1. – Dann werde aus der Zahl Z1 die Zahl Z0 und der Algorithmus beginnt wieder neu. Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 14 ZZG - Rekursive Generatoren 51581124 33767721 58936329 87665769 44315649 9960336 92217609 4734976 54007801 6084 3600 1296 144 1 0 0 0 0 0 0 5811 7677 9363 6657 3156 9603 2176 7349 78 60 36 12 1 0 0 0 0 0 0 0 0.5811 0.7677 0.9363 0.6657 0.3156 0.9603 0.2176 0.7349 0.0078 0.0060 0.0036 0.0012 0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 Otto-von-Guericke-Universität Magdeburg 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 Thomas Schulze Diskrete Simulation 15 ZZG - Rekursive Generatoren Mit einer anderen Startzahl ergibt sich eine andere Länge des Zyklus. Berechnung der Zykluslängen für 8999 unterschiedliche Startwerte. Random Variable laenge Obs Count Mean Std Dev Minimum 8999 42.90 25.91 1.00 Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Maximum 110.00 Thomas Schulze 16 ZZG - Lineare Kongruenzverfahren Das heute am häufigsten verwendete Verfahren auf Computern ist das lineare Kongruenzverfahren (linear congruential generators LCGs), das 1951 von Lehmer veröffentlicht wurde. Ri = (aRi −1 + c)(mod m) 0 ≤ Ri ≤ m − 1 U i = Ri / m Otto-von-Guericke-Universität Magdeburg [0,1] gleichverteilte Zufallszahl Diskrete Simulation Thomas Schulze 17 ZZG - Lineare Kongruenzverfahren Bedingungen 0<m, a<m, c<m und R0 < m Nach der Berechnungsvorschrift können die gleichverteilten Zufallszahlen Ui nur die Wertefolge 0, 1/m, 1/m, 2/m, ..., (m-1)/m annehmen. Keine Möglichkeit für Werte zwischen 0.1/m und 0.9/m, obwohl die Wahrscheinlichkeit dafür 0.8/m >0 ist. Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 18 ZZG - Lineare Kongruenzverfahren Eine generierte Periode mit der Länge m wird als volle Periode bezeichnet. Zur Erreichung dieses Zieles wurde von Hull und Dobell 1962 folgendes Theorem aufgestellt: Der ZZG mit der Berechnungsvorschrift hat eine volle Periode dann und nur dann wenn die folgenden Bedingungen eingehalten werden: – (a)Die einzige positive ganze Zahl, die exakt beide Zahlen m und c dividiert ist 1. – (b)Wenn q eine Primzahl ist, die m dividiert, dann muß q auch a-1 dividieren. – (c)Wenn 4 die Zahl m dividiert, dann dividiert 4 auch a-1. Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 19 ZZG - Mischgeneratoren Für c>0 in werden die Generatoren als Mischgeneratoren bezeichnet. Für eine lange Periode und einer hohen Dichte der gleichverteilten Zufallszahlen Ui im Intervall [0,1] muß m einen großen Wert annehmen. Ein gute Auswahl ist m=2b ,wobei b die Anzahl der Bits für ein Wort auf dem Computer sind (Warum?) Typischer Wert für b ist 32 . Anzahl der Bits b Computer 35 UNIVAC 31 IBM, PC, DEC Otto-von-Guericke-Universität Magdeburg m m=2b m=2b a 515 314 159 269 Diskrete Simulation c 1 453 806 245 Thomas Schulze 20 ZZG - Multiplikative Generatoren In multiplikativen Generatoren ist c gleich Null. Damit wird die Bedingung a) des Theorems nicht erfüllt. So werden mit diesen Generatoren keine vollen Zykluslängen erreicht. Bei einer guten Wahl von m und a können Perioden mit einer Länge von m-1 erreicht werden. Über multiplikative Generatoren ist mehr bekannt als über die gemischten Generatoren. Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 21 ZZG - Multiplikative Generatoren Wahl von m – Empfehlung für m ein Wert von 2b . – Dadurch wird eine Zykluslänge von 2b-2 erreicht, d.h. – Keine Vorhersage, wie diese Zahlen in dem Intervall verteilt sind. Wahl von a – Oft wird der Wert für den Multiplikator a mittels 2l +j bestimmt ( l und j sind gannzahlig) . – Dann sind schlechte statistische Eigenschaften der Zahlenfolge zu erwarten. Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 22 ZZG - Multiplikative Generatoren Vor dem Generator RANDU ist eigentlich zu warnen. Dieser Generator verwendet folgende Parameter ( m=231 , a=216 +3 = 65 539, c=0 ) und liefert eine Folge mit unzureichenden statistischen Eigenschaften. Es gibt eine Reihe von Untersuchungen zur Festlegung von m. Eine Empfehlung ist die Verwendung der größten Primzahl, die kleiner als 2b ist. Für b=31 ergibt sich die entsprechende Primzahl zu 231 – 1 = 2 147 483 647. Otto-von-Guericke-Universität Magdeburg Diskrete Simulation Thomas Schulze 23 ZZG - Multiplikative Generatoren Die gebräuchlichsten Simulationssprachen und Simulationssysteme verwenden multiplikative Generatoren. Als Wert für m wird 231 – 1 genutzt. Mit einen entsprechenden Multiplikator wird eine Zykluslänge von 231 – 2 erreicht. Sprache GPSS/H und SLX SIMAN und SLAM II SIMSCRIPT II.5 Otto-von-Guericke-Universität Magdeburg Multiplikator 742 938 285 16 807 630 360 016 Anzahl der Ströme Unbegrenzt 10 10 Diskrete Simulation Thomas Schulze 24