26
Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K. (2012). Monte Carlo-Algorithmen) 17.10.2013, Vincent Höhn

Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Embed Size (px)

Citation preview

Page 1: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

17.10.2013, Vincent Höhn

Hauptseminar: Einfache Monte Carlo-Algorithmen

Zufallszahlen

(Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K. (2012). Monte Carlo-Algorithmen)

Page 2: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

17.10.2013, Vincent Höhn 2

1 Allgemeines

1.1 Was sind Monte Carlo-Algorithmen?

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen

1.3 kurzes motivierendes Beispiel

2 Zufallszahlengeneratoren

2.1 Pioniere der randomisierten Algorithmen

2.2 Arten von Zufallsgeneratoren

2.3 Wie funktioniert ein Pseudozufallszahlengenerator?

2.4 Beispiele für Zufallsgeneratoren

3 Zufallszahlen und gleichverteilte Zufallsvariablen

Page 3: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

17.10.2013, Vincent Höhn 3

1 Allgemeines

1.1 Was sind Monte Carlo-Algorithmen?

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen

1.3 kurzes motivierendes Beispiel

2 Zufallszahlengeneratoren

2.1 Pioniere der randomisierten Algorithmen

2.2 Arten von Zufallsgeneratoren

2.3 Wie funktioniert ein Pseudozufallszahlengenerator?

2.4 Beispiele für Zufallsgeneratoren

3 Zufallszahlen und gleichverteilte Zufallsvariablen

Page 4: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

1.1 Was sind Monte Carlo-Algorithmen? 4

Definition (randomisierter Algorithmus):

„Ein Algorithmus, der im Laufe seiner Ausführung gewisse Entscheidungen zufällig trifft, heißt randomisierter Algorithmus"

Algorithmen, die neben den „normalen“ Befehlen auch Befehle der Art• Wähle x [0,1] zufällig

• Wähle x {0,.1,…,N-1} zufällig erlauben

Definition (Monte Carlo Algorithmus):

„Monte Carlo-Algorithmen sind randomisierte Algorithmen, die mit einer

kleinen Wahrscheinlichkeit ein falsches Ergebnis liefern dürfen.“

Page 5: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

1.1 Was sind Monte Carlo-Algorithmen? 5

Literatur:

‚stochastische Algorithmen‘ = ‚Monte Carlo Algorithmen‘ = ‚randomisierte Algorithmen‘

Randomisierter Algorithmus

Las Vegas-Algorithmus Monte Carlo-Algorithmus

Suchprobleme Entscheidungsprobleme

Einseitiger Fehler Zweiseitiger Fehler

Page 6: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

Vincent Höhn, 17.10.2013 6

1 Allgemeines

1.1 Was sind Monte Carlo-Algorithmen?

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen

1.3 kurzes motivierendes Beispiel

2 Zufallszahlengeneratoren

2.1 Pioniere der randomisierten Algorithmen

2.2 Arten von Zufallsgeneratoren

2.3 Wie funktioniert ein Pseudozufallszahlengenerator?

2.4 Beispiele für Zufallsgeneratoren

3 Zufallszahlen und gleichverteilte Zufallsvariablen

Page 7: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen 7

Vor- & Nachteile von Monte Carlo-Algorithmen

+ -Einfachheit:Implementierung & Verständnis

Unkorrektheit:Ergebnis nicht zwangsläufig richtig

Page 8: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

Vincent Höhn, 17.10.2013 8

1 Allgemeines

1.1 Was sind Monte Carlo-Algorithmen?

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen

1.3 kurzes motivierendes Beispiel

2 Zufallszahlengeneratoren

2.1 Pioniere der randomisierten Algorithmen

2.2 Arten von Zufallsgeneratoren

2.3 Wie funktioniert ein Pseudozufallszahlengenerator?

2.4 Beispiele für Zufallsgeneratoren

3 Zufallszahlen und gleichverteilte Zufallsvariablen

Page 9: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

1.3 Kurzes motivierendes Beispiel 9

Worum geht‘s?:

• Zufällige, aber gleichverteilte Erzeugung von Punkten innerhalb eines Quadrats

• Wie viele Punkte sind innerhalb des vom Quadrat eingeschlossenen Kreises?

• z.B. pro Durchlauf jeweils drei Punkte

• Startsituation:

4)2( 2

2

r

r

cheQuadratflä

eKreisfläch

)(

)(*4inf)lim(

insgesamtPunktederAnzahlN

KreisimPunktederAnzahlnN

Page 10: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

Ablauf/Durchführung:

Treffer: 3 Gesamt: 3 000,4 Treffer: 4 Gesamt: 6 667,2 Treffer: 7 Gesamt: 9 111,3

Treffer: 9 Gesamt: 12 000,3 Treffer: 12 Gesamt: 15

200,3

Laufzeit:• 3000 erzeugte Punkte:

0.000446 s• 3.000.000.000 erzeugte

Punkte: 3m 31s

Page 11: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

Vincent Höhn, 17.10.2013 11

1 Allgemeines

1.1 Was sind Monte Carlo-Algorithmen?

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen

1.3 kurzes motivierendes Beispiel

2 Zufallszahlengeneratoren

2.1 Pioniere der randomisierten Algorithmen

2.2 Arten von Zufallsgeneratoren

2.3 Wie funktioniert ein Pseudozufallszahlengenerator?

2.4 Beispiele für Zufallsgeneratoren

3 Zufallszahlen und gleichverteilte Zufallsvariablen

Page 12: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

2.1 Pioniere der randomisierten Algorithmen 12

Enrico Fermi John von Neumann Stanislaw Ulam

• 1930er: Erste signifkante wissenschaftliche Verwendung von MC- Simulationen durch Enrio Fermi zum Neutronentransport in spaltbarem Material.

• 1940er: Entwicklung des ersten numerischen Verfahrens zur Lösung hyperbolischer partieller Differentialgleichungen durch John von Neumann und Stanislaw Ulam.

Page 13: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

Vincent Höhn, 17.10.2013 13

1 Allgemeines

1.1 Was sind Monte Carlo-Algorithmen?

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen

1.3 kurzes motivierendes Beispiel

2 Zufallszahlengeneratoren

2.1 Pioniere der randomisierten Algorithmen

2.2 Arten von Zufallsgeneratoren

2.3 Wie funktioniert ein Pseudozufallszahlengenerator?

2.4 Beispiele für Zufallsgeneratoren

3 Zufallszahlen und gleichverteilte Zufallsvariablen

Page 14: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

2.2 Arten von Zufallsgeneratoren 14

Zufallsgenerator

deterministisch(Pseudozufallszahlen)

nichtdeterministisch(‚echte‘ Zufallszahlen)

Physikalischz.B.: radioaktiver Zerfallsvorgang

quasizufällige Ereignissez.B.: Systemzeit

Ein deterministischer Zufallsgenerator erzeugt eine Zahlenfolge, die zwar zufällig aussieht, es aber nicht ist. Die Folgen sind periodisch und bei selbem Startwert liefert der Generator immer dieselbe Folge. => Reproduzierbarkeit=> Für M.C. Algorithmen werden deterministische Pseudozufallsgeneratoren verwendet.

Page 15: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

Vincent Höhn, 17.10.2013 15

1 Allgemeines

1.1 Was sind Monte Carlo-Algorithmen?

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen

1.3 kurzes motivierendes Beispiel

2 Zufallszahlengeneratoren

2.1 Pioniere der randomisierten Algorithmen

2.2 Arten von Zufallsgeneratoren

2.3 Wie funktioniert ein Pseudozufallszahlengenerator?

2.4 Beispiele für Zufallsgeneratoren

3 Zufallszahlen und gleichverteilte Zufallsvariablen

Page 16: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

2.3 Wie funktioniert ein Pseudozufallszahlengenerator? 16

Bestandteile eines Pseudozufallszahlengenerator in Z=[0;1] oder Z={0,…,N-1}:» Endliche Menge A und B» Abbildungen g: A B f:B B h:B Z

Typischer Wert für Kardinalität von B: |B|=

Vorgehen:» Wahl eines Startwerts » definiert Folge in B » Sukzessive Aufrufe des Generators (x:=rand(), werden

Pseudo-Zufallszahlen erzeugt» Stets Startwert s und verwendeten Generator angeben

Mersenne Twister: |B|= 219937

2128

As)()(11 bbb ii

fundsg

)(bhx ii

Page 17: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

2.3 Wie funktioniert ein Pseudozufallszahlengenerator? 17

Zwei Möglichkeiten zur Wahl des Startwerts (=‚seed‘):» Benutzer gibt ihn vor (R: set.seed() )» System erzeugt ihn

Es sollten nur Zufallszahlengeneratoren benutzt werden, die sich für ähnliche Probleme bereits gut bewährt haben. Darüber hinaus sollten wichtige Rechnungen nach Möglichkeit mit verschiedenen Generatoren durchgeführt werden.

MATLAB: resettet Startwert beijedem Start von MATLAB.

R: generiert Startwert basierend auf der Systemzeit

Page 18: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

Vincent Höhn, 17.10.2013 18

1 Allgemeines

1.1 Was sind Monte Carlo-Algorithmen?

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen

1.3 kurzes motivierendes Beispiel

2 Zufallszahlengeneratoren

2.1 Pioniere der randomisierten Algorithmen

2.2 Arten von Zufallsgeneratoren

2.3 Wie funktioniert ein Pseudozufallszahlengenerator?

2.4 Beispiele für Zufallsgeneratoren

3 Zufallszahlen und gleichverteilte Zufallsvariablen

Page 19: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

2.4 Beispiele für Zufallsgeneratoren 19

• Mersenne Twister & Generator TT800:» 1997 entwickelt von Makoto Matsumoto und Takuji Nishimura» Extrem lange Periode: » Algorithmus:

Startwerte

» Zählt zur Gruppe der linearen Generatoren» Nicht für kryptographische Zwecke geeignet» Sehr schnell & Zufallszahlen hoher Güte» Standard-Generator in MATLAB, R und MAPLE» „kleiner Bruder“ TT800: Periodenlänge: - 1

gleiches Funktionsprinzip, weniger Startwerte

102600119937

3,41

YY 6241,...,

2800

Page 20: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

2.4 Beispiele für Zufallsgeneratoren 20

• Advanced Encryption Standard (AES)

» 1997/1998 entwickelt von Joan Daemen und Vincent Rijmen

» Nachfolger des ‚Data Encryption Standard‘

» Basiert auf dem Rijndael-Verschlüsselungsalgorithmus

» Sehr sicherer Kryptologie-Algorithmus

» Verwendung für Dokumente höchster Geheimhaltungsstufe

Page 21: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

2.4 Beispiele für Zufallsgeneratoren 21

• Betrachtung der Nachkommastellen einer irrationalen Zahl:

» Betrachtung von , e, ln(2) oder » Nicht-periodische Zahlenfolge(!)» Gleichverteilung wird vermutet, aber ist nicht bewiesen

• Kurzer Exkurs: Normalität von :

» Sequenzen jeglicher Länge sind jeweils gleichverteilt

(P(1)=P(2), P(1 2 3)=P (3 8 5))» David Bailey: Umrechnung in quartäres Zahlensystem

= 3,0210033…(www.mathisfun.com)

Anschließend Simulation als Random-Walk » Färbung anhand der Position der Dezimalstelle» gigapan.com/gigpans/106803 ersten 100 Mrd. Stellen

(rot, orange, grün, kurz vor 100 Mrd.ster Stelle blau violett)

2

Page 22: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

1.1 Was sind Monte Carlo-Algorithmen? 22

Page 23: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

Vincent Höhn, 17.10.2013 23

1 Allgemeines

1.1 Was sind Monte Carlo-Algorithmen?

1.2 Vor- & Nachteile von Monte Carlo-Algorithmen

1.3 kurzes motivierendes Beispiel

2 Zufallszahlengeneratoren

2.1 Pioniere der randomisierten Algorithmen

2.2 Arten von Zufallsgeneratoren

2.3 Wie funktioniert ein Pseudozufallszahlengenerator?

2.4 Beispiele für Zufallsgeneratoren

3 Zufallszahlen und gleichverteilte Zufallsvariablen

Page 24: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

3 Zufallszahlen und gleichverteilte Zufallsvariablen 24

Zufallszahlen aus [0;1]:

– d-dim. Zufallsvektor X ist gleichverteilt auf falls er die Lebesgue- Dichte besitzt. &

– Konstruktion eines d-dim. auf gleichverteilten Zufallsvektor durch Zusammenfassen von d unabhängigen auf [0;1] gleichverteilten Zufallsvariablen.

– Zerlegungssatz: „Unterteilt man eine unabhängige Folge von n*d reellwertigen auf [0;1] gleichverteilten Zufallsvariablen in die disjunkten Blöcke , so erhält man eine unabhängige Folge von n Zufallsvektoren der Dimension d, die jeweils auf gleichverteilt sind.

– idealer Generator auf [0;1]: unabhängige Folge von jeweils auf [0;1] gleichverteilten Zufallsvariablen.

]1;0[d

C dh ]1;0[ 1)( ]1;0[ d

XP )()( AAd

XP

XX dn*1,...,

),...,(),...,,...,(*1)*1(1 XXXX dndnd

]1;0[d

)( X i i

]1;0[d

Page 25: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

3 Zufallszahlen und gleichverteilte Zufallsvariablen 25

• Zufallszahlen aus {0,…,N-1}:

– Zufallsvariable X gleichverteilt auf endlicher Menge B mit N Elementen, fallsalle Elemente aus B dasselbe Gewicht 1/N besitzen.

– Idealer Generator auf {0,…N-1}: unabhängige Folge von von jeweilsauf B gleichverteilten Zufallsvariablen. n-maliger Aufruf des Generators liefert uns n Zufallszahlen aus B.

– Konstruktion von auf {0,…,N-1} gleichverteilten Zufallszahlen durch auf [0;1]gleichverteilten Zufallszahlen mit Hilfe der floor-Funktion.

1)( BPX

N

AAPX

||)(

)(X i i

Page 26: Technische Universität München Hauptseminar: Einfache Monte Carlo-Algorithmen Zufallszahlen (Kapitel 1.1 & 1.3, Müller-Gronbach, T., Novak & Ritter, K

Technische Universität München

Q&A 26