Lösung der Zusatzaufgabe

Ähnliche Dokumente
Programmiertechnik II

Lösung Aufgabe 2. Es muss ein Weg gefunden werden, die Länge des längsten Laufs identischer Ziffern zu identifizieren:

1 Zufallszahlen jede Zahl gleichen Wahrscheinlichkeit Zufallszahlenfolge unabhängiger, identisch ver- teilter

7 Zufallszahlen, Simulation

15 Grundlagen der Simulation

Stochastik-Praktikum

Grundlagen der Monte-Carlo-Simulation

Zufallszahlen. Diskrete Simulation. Zufallszahlengeneratoren - Zufallszahlen

Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin.

13 Pseudo-Zufallszahlen

Einführung in die Simulation. Dr. Christoph Laroque Wintersemester 11/12. Dresden,

Lineare Kongruenzgeneratoren und Quicksort

Nicht-parametrische statistische Verfahren

Statistics, Data Analysis, and Simulation SS 2015

IT-Security. Teil 15: Zufall

15.3 Statistische Tests von Pseudozufallszahlen

Nr. 4: Pseudo-Zufallszahlengeneratoren

Simulation und Prognose

Statistik für Ingenieure Vorlesung 12

Die Familie der χ 2 (n)-verteilungen

Die Familie der χ 2 (n)-verteilungen

Simulation von Zufallszahlen. Grundlage: zufällige Quelle von Zufallszahlen, durch einfachen rekursiven Algorithmus am Computer erzeugt

10. Statistische Verteilungen

Teil XI. Hypothesentests für zwei Stichproben. Woche 9: Hypothesentests für zwei Stichproben. Lernziele. Beispiel: Monoaminooxidase und Schizophrenie

Wahrscheinlichkeitsrechnung und schließende Statistik

Anhang 1: Lamellare Strukturen in Systemen mit Bolaamphiphilen

Wahrscheinlichkeitsverteilungen und ihre Implementierung in Root. Eric Volkmann

Pollards Rho-Methode zur Faktorisierung

4.1 Der Blum-Blum-Shub-Generator

Aufgaben zu Kapitel 9

das Kleingedruckte...

Rechnernutzung in der Physik Teil 3 Statistische Methoden der Datenanalyse

Pseudozufallsgeneratoren

Über den Autor 7. Einführung 21

4 Probabilistische Analyse und randomisierte Algorithmen

Werkzeuge der empirischen Forschung

Elementare Stochastik

Zufallszahlen Mathematik zum Nachbilden von Zufälligkeit SommerUni 2013 Bergische Universität Wuppertal Autor: Prof. Dr.

Arbeitsbuch zur deskriptiven und induktiven Statistik

Erzeugung von Pseudozufallszahlen mit Computern

Zufälle gibt s, oder gibt s die nicht? Martin Köhler Science Café Hamburg, 25. Juni 2014

Monte-Carlo Tests. Diplomarbeit. Wiebke Werft. Mathematisches Institut der Heinrich-Heine-Universität Düsseldorf

Beispiel 6 (Einige Aufgaben zur Gleichverteilung)

Statistik II. Statistische Tests. Statistik II

Einführung in die Statistik

Tutorial: Anpassungstest

Statistische Methoden in den Umweltwissenschaften

Teil VIII Hypothesentests für zwei Stichproben

Wahrscheinlichkeitsrechnung und schließende Statistik

k np g(n, p) = Pr p [T K] = Pr p [T k] Φ. np(1 p) DWT 4.1 Einführung 359/467 Ernst W. Mayr

SozialwissenschaftlerInnen II

Statistics, Data Analysis, and Simulation SS 2017

Physikalisches Institut

Zufallsvariablen. Diskret. Stetig. Verteilung der Stichprobenkennzahlen. Binomial Hypergeometrisch Poisson. Normal Lognormal Exponential

1.4 Die maximale Periode

Wahrscheinlichkeitsrechnung und schließende Statistik

Stochastik für Dummies

I. Deskriptive Statistik 1

Philipp Sibbertsen Hartmut Lehne. Statistik. Einführung für Wirtschafts- und. Sozialwissenschaftler. 2., überarbeitete Auflage. 4^ Springer Gabler

Pseudo-Zufallsgeneratoren basierend auf dem DLP

Elementare Stochastik

Statistik für. von. Prof. Dr. Josef Bleymüller. und. Prof. Dr. Rafael Weißbach. sowie. Dr. Günther Gehlert. und. Prof. Dr.

Tutorial: χ 2 -Test auf vorgegebene Verteilung

Statistik II. IV. Hypothesentests. Martin Huber

1. Nennen Sie den für das Merkmal X geeigneten Skalentyp und begründen Sie Ihre Antwort.

Kapitel XIV - Anpassungstests

STATISTISCHE METHODEN UND IHRE ANWENDUNGEN

Statistik für Ingenieure Vorlesung 13

Informationssicherheit III

Modulare Arithmetik. Kapitel Ganze Zahlen

Kryptographische Zufallszahlen. Schieberegister, Output-Feedback

5. Kolmogorov-Smirnov-Test und χ 2 -Anpassungstest

1. Grundbegri e der Stochastik

Vorlesung: Statistik II für Wirtschaftswissenschaft

Modellierung- und Simulation Mathis Plewa ( )

Name: SS Universität Kassel Prof. Dr. Hadrian Heil

5.8 Anpassungstests. W. Kössler (IfI HU Berlin) Werkzeuge der empirischen Forschung 389 / 419

Zufallszahlenerzeugung

Stochastik in den Ingenieu rwissenschaften

Wahrscheinlichkeitsrechnung und Statistik

Willkommen zur Vorlesung Statistik (Master)

unendlich-dimensionalen lästigen Parameter auffassen.

Aufgaben zu Kapitel 9

Simulation von Zufallsvariablen und Punktprozessen

BZQ II: Stochastikpraktikum

Zufallszahlen in Testbetten und Simulationen

P (X = 2) = 1/36, P (X = 3) = 2/36,...

Angewandte Statistik 1

Primzahlen und Programmieren

Transkript:

Lösung der Zusatzaufgabe Erweitern Sie lnkng() um einen Parameter, so dass dass die Anzahl der zurückzugebenden Parameter wählbar ist. Lösung: lnkng <- function (a, m, c, start, n) { result <- rep(na, n) result[1] <- (a*start+ c)%% m for (i in 2:n) result[i] <- (a*result[i-1]+ c) %% m result } Dr. D. Steuer, Tel. 2819 91

Weitere Verfeinerungen in der Konstruktion von LKGen Ergebnisse aus der Zahlentheorie schränken die Wahl für gute Parameter weiter ein. Ohne Details (s. Knuth!) gilt: Ist m = 2 e, so muss a = 3 oder a = 5 mod 8 (bei c = 0) gelten. Wählt man m = 10 e,e > 5, so erhält man die maximal mögliche Periode 5 10 e 2 für X 0 kein Vielfaches von 2 oder 5 und a mod 200 ist einer der Werte 3, 11, 13, 19, 21, 27, 29, 37, 53, 59, 61, 67, 69, 77, 83, 91, 109, 117, 123, 131, 133, 139, 141, 147, 163, 171, 173, 179, 181, 187, 189 oder 197. Dr. D. Steuer, Tel. 2819 92

Heuteüblichist,m = 2 p 1,pprim,zuwählen,dadieseWahlenzugroßen Periodenlängen führen. Die Zahlen 2 p 1 sind sehr oft Primzahlen, die sogenannten Mersenne-Primzahlen. Die bisher größte gefunden Primzahl ist auch von dieser Art ist 2 43112609 1 mit ca. 13 Mio Stellen! Problem bei allen LKGen ist, dass nach mehr als m entnommenen Zufallszahlen die Zufälligkeit stark abnimmt. Dies ist nur eine Faustregel, in der Literatur findet man auch m/1000 als Grenze. Deshalb wurden Methoden entwickelt, die Ausbeute an Zufallszahlen weiter zu steigern. Dr. D. Steuer, Tel. 2819 93

Andere Methoden der Zufallszahlengenerierung Ein verallgemeinerter Ansatz findet sich in den multipel rekursiven Generatoren, die von mehr als einem vorherigen Wert, nämlich einer ganzen Teilmenge der Vergangenheit abhängen: X n = f(x n i1.x n i2,...,). Das älteste Beispiel für einen solchen Ansatz ist der Fibonacci-Generator (1958) X n = (X n 1 +X n 2 ) mod m. Oft gibt dieser sogar Periodenlängen größer als m! Wieso? (Leider scheitert dieser elegante Generator an einfachen statistischen Tests, wie wir noch sehen werden.) Dr. D. Steuer, Tel. 2819 94

Andere Verfahren sezten auf die Permutation des Zufallszahlenstroms, den ein Generator erzeugt. Weiterhin gibt es nichtlineare Kongruenzgeneratoren, bspw. Eichenhauer/Lehn (1986) bei dem x n 1 ersetzt wird durch das inverse Element in Z p : x n = ax n 1 +c mod m. oder auch Knuth (1998) mit der naheliegenden Idee eines quadratischen Generators x n = ax 2 n 1+bx n 1 +c mod m. Der aktuell als das Nonplusultra geltende Generator ist ein auf Mersenne- Primzahlen basierender Generator von Makoto Matsumoto und Takuji Nishimura (1996/7) mit Periodenlänge 2 19937 1! Dr. D. Steuer, Tel. 2819 95

Dieser heißt auch liebevoll das große Monster oder Twisted Mersenne Twister! Dieser ist auch der Standardgenerator in R! Dr. D. Steuer, Tel. 2819 96

Aufgabe: Implementieren Sie den Fibonacci-Generator als R Funktion! Nutzen Sie hier auch das zweistufige Vorgehen. 1. Im ersten Schritt eine Zufallszahl aus zwei gegebenen. 2. Im zweiten Schritt n Zufallszahlen aus zwei Startwerten. Dr. D. Steuer, Tel. 2819 97

Lösung: rfib1 <- function ( x1, x2, m) { (x1+ x2) %% m} rfib <- function (n, x1, x2, m) { result <- rep(na, n) result[1] <- rfib1( x1,x2,m) result[2] <- rfib1(result[1], x2, m ) for (i in 3:n) result[i] <- rfib1( result[i-1], result[i-2], m) result } Dr. D. Steuer, Tel. 2819 98

Zusatzaufgabe: RANDU Implementieren Sie RANDU! Für RANDU gilt X n+1 = 65539X n mod 2 31,X 0 ungerade. RANDU gilt als der vielleicht schlechteste Zufallsgenerator der je kommerziell vertrieben wurde. Er gehörte zur Standardausstattung von IBM Großrechnern seit den 1960er Jahren, bis in die 1970er hinein. Viele wissenschaftliche Arbeiten der Zeit, die mit Simulationen gearbeitet haben, gelten seitdem als suspekt. Das Hauptproblem ist allerdings ein anderes: Erzeugt man dreidimensionale Punkte, indem man x n,x n+1,x n+2 als Koordinaten eines Punktes in R 3 auf, so liegen alle Punkte auf genau 15 Ebenen! Dr. D. Steuer, Tel. 2819 99

Erzeugen Sie 100000 Punkte in R 3 mit RANDU und einem guten Startwert (x 0 1) und plotten Sie diese Punkte mit Hilfe des R Paketes scatterplot3d! Können Sie die Ebenen entdecken? Experimentieren Sie mit dem Blickwinkelparameter! Probieren Sie alternativ das Paket rgl! Dr. D. Steuer, Tel. 2819 100

Tests auf Zufälligkeit - Vorüberlegungen Wir haben gesehen, dass die menschliche Intuition sehr schlecht ist, um Zufälligkeit zu beurteilen. Der nahe liegende Ausweg sind statistische Tests. Da wir aber nur Mimikry mit dem Zufall betreiben, sagt das Bestehen eines statistischen Tests für einen Zufallsgenerator nichts über das Bestehen eines anderen Test aus. Bestehen bedeutet hier, dass der Erwartungswert einer Teststatistik für die Gleichverteilung gleich dem Erwartungswert der entsprechenden Teststatistik für die von einem Generator erzeugten Pseudozufallszahlen ist. Dr. D. Steuer, Tel. 2819 101

In der Praxis testet man einen neuen Generator an einer Serie von Standardtests (5-10). Bewährt sich der Generator in diesen Tests, gilt er als unverdächtig, bis jemand eine Schwachstelle findet. Bespielhaft wird dies am Fibonacci-Generator gezeigt werden. Dr. D. Steuer, Tel. 2819 102

Theoretische Tests Einen Generator nur a posteriori beurteilen zu können, ist eine prinzipiell unbefriedigende Situation. Schön wäre, wenn man z.b. für einen linearen Kongruenzgenerator anhand der Paramter direkt seine Güte ablesen könnte. Beispiele für solche Ergebnisse wurden für die Zykluslänge gegeben. Im Laufe der Jahrzehnte konnten (einige) Tests entwickelt werden, die die vollständige Sequenz von Zufallszahlen eines Generators untersuchen. Es scheint theoretisch sehr schwer zu sein, sinnvolle Dinge über kurze Sequenzen von Zufallszahlen in Bezug auf ihre Zufälligkeit auszusagen. Da die Mathematik dieser Tests sehr aufwändig ist, gehen wir hier nicht weiter in die Tiefe. Dr. D. Steuer, Tel. 2819 103

Tests auf Zufälligkeit - Allgemeine Tests Die erste Möglichkeit besteht natürlich darin, die allgemein verfügbaren Tests auf Verteilung zu nutzen. Namentlich sind dies der χ 2 -Test und den Kolmogorov-Smirnoff-Test. Zur Erinnerung: χ 2 -Test ist für diskrete Verteilungen, KS-Test für stetige Verteilungen. Durch Diskretisierung kann der χ 2 -Test auch für jede stetige Verteilung genutzt werden. Details siehe Statistik II! Dr. D. Steuer, Tel. 2819 104

Beispiel: Das Scheitern des Fibonacci-Generators Der Fibonacci Generator scheitert am KS-Test. > randomfib <- rfib(1000, 1, 1, 31415) > randomfib <- randomfib[901:1000] ### Die ersten 900 Werte werden als sog. burn-in genutzt > ks.test(randomfib, "punif", 0, 31414) One-sample Kolmogorov-Smirnov test data: randomfib D = 0.1745, p-value = 0.004544 alternative hypothesis: two-sided > ks.test(runif(100), "punif") > plot(ecdf(randomfib)) > lines(seq(0,31414), seq(0,31414)/31414) Dr. D. Steuer, Tel. 2819 105

Vergleich der Verteilungsfunktionen Die emp. Verteilungsfunktion des Fibonacci-Generators und die der Gleichverteilung. ecdf(randomfib) Fn(x) 0.0 0.2 0.4 0.6 0.8 1.0 0 10000 20000 30000 x Dr. D. Steuer, Tel. 2819 106

Würfeln mit Fibonacci-Zahlen Generiert man mit denselben Fibonacci-Zahlen Würfelwürfe, so bestehen diese den χ 2 -Test! > randomdice <- randomfib %% 6 > table(randomdice) randomdice 0 1 2 3 4 5 11 22 13 22 12 20 > chisq.test(c(11,22,13,22,12,20)) Chi-squared test for given probabilities data: c(11, 22, 13, 22, 12, 20) X-squared = 8.12, df = 5, p-value = 0.1497 Dr. D. Steuer, Tel. 2819 107

Empirische Tests - ad hoc Methoden Im Folgenden ist (U n ) stets eine Folge von unabhängig identisch auf [0, 1] gleichverteilten Zufallszahlen. Für Tests, die auf ganzen Zahlen operieren, sei (Y n ) = ( du n ), die Folge der auf {0, 1,..., d-1} gleichverteilten ganzen Zahlen, für einen angemessenen Wert von d. Es gibt einen ganze Reihe derartiger Tests. Während der klassische χ 2 -Test jeweils nur einzelne Glieder der Folgen (U n ), bzw. (Y n ) betrachtet, erweitern die folgenden Methoden den Ansatz jeweils auf n-tupel von Folgengliedern, betrachten also mehrere Zufallszahlen mit ihrer gemeinsamen Verteilung. Dr. D. Steuer, Tel. 2819 108

Der serial test. Beim Serial-Test betrachtet man Paare von ganzen Zahlen (Y i,y i+1 ),(Y i+2,y i+3 ),... und zählt die Häufigkeit, mit der die Paare (q,r),q,r {0,1,...,d 1} auftreten. Mit diesen Paaren wird dann der klassische χ 2 -Test durchgeführt. Im Wesentlichen handelt es sich also beim Serial-Test um den χ 2 -Test für alle d 2 möglichen Ausprägungen von Paaren erzeugter Zufallszahlen. Der Ansatz lässt sich natürlich auf Tripel, Quadrupel etc. erweitern. Bei der Durchführung muss darauf geachtet werden, dass der realisierte Stichprobenumfang n so groß ist, dass man eine valide χ 2 -Teststatistik erhält. Z. B. n > 5d 2 für Paare. (Besetzung der Zellen!) Dr. D. Steuer, Tel. 2819 109

Da der benötigte Stichprobenumfang, um k-tupel von Zufallszahlen zu betrachten, exponentiell mit k wächst, gibt es abgeschwächte Varianten,um die höherdimensionalen Verteilungseigenschaften von Generatoren zu überprüfen. Diese abgeschwächten Varianten beschränken sich auf bestimmte Eigenschften der Tupel. Dr. D. Steuer, Tel. 2819 110

Empirische Tests - Der Pokertest Auch beim Pokertest wird im Grunde ein χ 2 Test durchgeführt. Betrachtet werden Quintupel (Y i,y i+1,y i+2,y i+3,y i+4 ). Dann zählt man im klassischen Pokertest das Auftreten der Ereignisse: Alle verschieden abcde, ein Paar aabcd, zwei Paare aabbc, ein Dreier aaabc, full house aaabb, ein Vierer aaaab oder ein Fünfer aaaaa. Leichter zu programmieren ist eine abgeschwächte Form, bei der nur gezählt wird, wie viele verschiedene Elemente das Quintupel enthält. Diese Variante läuft auch unter dem Namen Pokertest. Die Wahrscheinlichkeiten für die einzelnen Felder der χ 2 -Tafel lassen sich kombinatorisch herleiten. Dr. D. Steuer, Tel. 2819 111

Oder: Aufgabe: Schreiben Sie ein Programm, dass diese Wahrscheinlichkeiten für den vereinfachten Poker-Test simuliert (d = 100 und 10000 Wiederholungen)! Tipp: Nutzen Sie die Funktion unique()! Dr. D. Steuer, Tel. 2819 112

Empirische Tests - Maximum-von-t-Test Ein Test, der nicht auf dem χ 2 -Test zurückgeführt beruht, ist der Maximum-von-t-(Zahlen) Test. Bei diesem Test wird ausgenutzt, dass für 0 j < n gilt: Wenn V j := max{u tj,u tj+1,...,u tj+t 1 }, dannf(v j ) = V t j. Für die Folge V 0,,...,V n 1 kann dann der KS-Test gegen die Verteilung F(V t ) durchgeführt werden. Dieser Test beruht darauf, dass P(max{U 1,...,U t } x) = x t. Dr. D. Steuer, Tel. 2819 113

Und viele, viele mehr! Die Thematik ist hier nur angeschnitten worden. Stichworte: Kollisonstest, Run-Test, Gap-Test, Korrelationstests... Dr. D. Steuer, Tel. 2819 114