Zufallszahlen - Universität Magdeburg

Werbung
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
Herunterladen