Michael Kolonko Stochastische Simulation
Michael Kolonko
Stochastische Simulation Grundlagen, Algorithmen und Anwend...
57 downloads
911 Views
3MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Michael Kolonko Stochastische Simulation
Michael Kolonko
Stochastische Simulation Grundlagen, Algorithmen und Anwendungen STUDIUM
Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar.
Prof. Dr. Michael Kolonko TU Clausthal Institut für Mathematik Erzstr. 1 38678 Clausthal-Zellerfeld
1. Auflage 2008 Alle Rechte vorbehalten © Vieweg+Teubner | GWV Fachverlage GmbH, Wiesbaden 2008 Lektorat: Ulrike Schmickler-Hirzebruch | Susanne Jahnel Vieweg+Teubner ist Teil der Fachverlagsgruppe Springer Science+Business Media. www.viewegteubner.de Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Umschlaggestaltung: KünkelLopka Medienentwicklung, Heidelberg Druck und buchbinderische Verarbeitung: MercedesDruck, Berlin Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier. Printed in Germany ISBN 978-3-8351-0217-0
Ich widme dieses Buch meiner Mutter, meiner Schwester, und ganz besonders Annette, Marie, Lilia und Hannah.
Vorwort Der Zufall in Gestalt von unvorhersehbaren Risiken und Chancen spielt seit jeher eine große Rolle bei vielen Entscheidungen in Wirtschaftsleben, Technik und Wissenschaft. Zufällige Einflussfaktoren müssen deshalb auch in die formalen Modelle aufgenommen werden, mit denen heutzutage komplexe Systeme geplant, gesteuert und optimiert werden. Früher reichte es dabei oft, zufallsbehaftete Größen durch ihre Mittelwerte zu modellieren. Für die Genauigkeit, die heutzutage von Modellen etwa für Prozesse in Produktion und Logistik verlangt wird, müssen aber auch die zufälligen Einflüsse genauer modelliert werden, es müssen ihre zeitliche Entwicklung und ihre wechselseitigen Abhängigkeiten beschrieben werden. Dies führt typischerweise auf Modelle, die zwar realitätsnah sind, die aber mit den verfügbaren mathematisch-analytischen Methoden oft nicht mehr gelöst werden können. In dieser Situation kann die stochastische Simulation einen Ausweg bieten, indem sie der mathematischen Modellierung sozusagen eine experimentelle Variante zur Seite stellt. Einzige Voraussetzung dafür ist, dass der nicht-zufällige Teil des Modells, also etwa das Prozessgeschehen bei feststehenden zufälligen Einflüssen, berechnet oder auf dem Rechner dargestellt werden kann. Wird dieses Teilmodell dann für wechselnden zufälligen Input beobachtet, so können aus den Beobachtungen Schätzungen für verschiedene Leistungskenngrößen gewonnen werden. Eine ähnliche Situation entsteht auch bei der Anwendung vieler heuristischer Suchmethoden auf komplexe Optimierungprobleme. Das Grundproblem, z. B. das Auffinden einer optimalen Reihenfolge, ist oft einfach und enthält keinerlei Zufallseinflüsse. Die Komplexität, z. B. die Anzahl der möglichen Reihenfolgen, ist aber zu groß, um mit herkömmlichen Mitteln beherrscht werden zu können. Hier erweisen sich stochastische Suchmethoden wie z. B. Simulated Annealing oft als erfolgreich bei der Verbesserung vorhandener Lösungen. Ähnlich wie man einem Sack voller Holzklötze einige Stöße versetzt, um die Klötze in eine dichtere Anordnung zu bringen, ohne jeden Klotz einzeln anzufassen, kann man Lösungen komplexer Optimierungsprobleme immer wieder durch kleine zufällige Störungen verändern und gelangt so oft zu wesentlich besseren Lösungen. Voraussetzung ist auch hier, das die Lösung und ihre Qualität auf dem Rechner bestimmt werden können. Zur Aufstellung solcher Modelle benötigt man zum einen anwendungsspezifisches KnowHow, um die Problemstellung adäquat zu erfassen. Daneben gibt es aber eine wachsende Menge von allgemeinen Techniken und Konzepten, die mit der Bereitstellung des „zufälligen Inputs“ und der Auswertung der Beobachtungen zu tun haben. Diese anwendungsübergreifenden Aspekte der stochastischen Simulation stehen im Mittelpunkt des vorliegenden Buches. Es behandelt die Erzeugung von Zufallszahlen für verschiedene, auch mehrdimensionale Verteilungen, untersucht die Qualität dieser Zufallszahlen, stellt einige Standardanwendungen wie die Monte-CarloIntegration vor und geht schließlich auf die Organisation und Auswertung der Simulationsexperimente ein. Dabei wird versucht, den Bogen zu spannen von den mathematisch-theoretischen Grundlagen über die Algorithmen bis hin zu praktischen Beispielen, die z. T. aus realen, von uns
VIII
bearbeiteten Anwendungen stammen. Einige Beispiele beziehen sich insbesondere auf heuristische Such- und Optimierungsstrategien, bei deren Darstellung in der Literatur die Bedeutung der Simulation oft nicht genügend gewürdigt wird. Das Buch wendet sich an Leser und Leserinnen, die schon über Grundkenntnisse in Stochastik verfügen. Die vorausgesetzten Begriffe und Konzepte der Wahrscheinlichkeitstheorie (und in geringerem Umfang der Statistik) sind im Anhang stichwortartig zusammengefasst. Bei der Formulierung des Textes wurde manchmal auf größte mathematische Allgemeinheit verzichtet, wenn dadurch eine bessere Verständlichkeit erzielt werden konnte. Verzichtet wurde insbesondere auf die genaue maßtheoretische Ausformulierungen der Sätze und ihrer Voraussetzungen, stattdessen wollen wir hier vereinbaren, dass alle auftretenden Mengen und Funktionen in geeigneter Weise messbar sein sollen. Algorithmen werden in einem Pseudocode angegeben, der eng an die Programmiersprache angelehnt ist, so dass es meist sehr einfach ist, aus den Beispielen lauffähige Programme in zu gewinnen. Dieses Buch ist entstanden aus Skripten zu Vorlesungen über stochastische Simulation, die ich an der TU Clausthal und der Universität Hildesheim vor allem für Studierende der Wirtschaftsmathematik und Informatik gehalten habe. Ich habe mich bei der ursprünglichen Ausarbeitung auf verschiedene Quellen gestützt, insbesondere auf die Bücher [BFS87], [Dev86], [Fis03], [Knu98], [Rip87] und [Ros02]. Viele Personen haben im Laufe der Jahre zu diesem Text beigetragen, besonders möchte ich meinen ehemaligen Mitarbeitern M. T. Tran, O. EngelhardtFunke und D. Wäsch danken. Sehr geholfen hat mir auch die Unterstützung von Herrn B. Görder bei der Endredaktion und von Herr N. Zhang bei der Korrektur des Textes. Schließlich möchte ich dem Verlag Vieweg+Teubner und dem Herausgeber, Herrn Kollegen B. Luderer, für die Möglichkeit danken, das Buch in der Reihe „Wirtschaftsmathematik“ zu veröffentlichen.
Clausthal-Zellerfeld, Juli 2008
Michael Kolonko
Inhaltsverzeichnis 1
I
Einleitung 1.1 Eine Begriffsabgrenzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Modellierungsebenen der Simulation . . . . . . . . . . . . . . . . . . . . . . . .
Zufallsgeneratoren für Gleichverteilungen
1 1 2
7
2
Ganzzahligkeit und Rekursion 11 2.1 Die Gleichverteilung auf {0, 1, . . . , M − 1} . . . . . . . . . . . . . . . . . . . . . 11 2.2 Rekursive Generatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3
Lineare Kongruenzgeneratoren 17 3.1 Maximale Periodenlänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 Implementierung von LKGs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4
Zufallsgeneratoren mit dem Modulus 2 4.1 Schieberegister-Generatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Tausworthe-Generatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Der Mersenne-Twister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
Weitere Zufallsgeneratoren 37 5.1 Mischen von Generatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2 Inverse Kongruenzgeneratoren . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.3 Erzeugen von Zufallszahlen in Gleitkomma-Darstellung . . . . . . . . . . . . . 42
6
Analytische Gütekriterien 6.1 Kriterien zur Beurteilung von Zufallsgeneratoren 6.2 d-gleichverteilte Folgen . . . . . . . . . . . . . . 6.3 Grafische Überprüfung der Gleichverteiltheit . . 6.4 Der Spektraltest . . . . . . . . . . . . . . . . . .
7
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
27 27 29 34
51 51 53 57 59
Statistische Gütekriterien 67 7.1 Statistische Anpassungstests . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.2 Spezielle Anpassungstests bei Zufallsgeneratoren . . . . . . . . . . . . . . . . . 73
X
Inhaltsverzeichnis
II Erzeugung von Zufallszahlen mit vorgegebener Verteilung
81
8
Inversionsmethode 8.1 Die verallgemeinerte Inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Das Inversionsprinzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Inversion bei diskreten Verteilungen . . . . . . . . . . . . . . . . . . . . . . . .
85 85 87 90
9
Annahme-Verwerfungsmethode
97
10 Kompositionsmethode 107 10.1 Das allgemeine Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 10.2 Simulation der Normalverteilung mit der Kompositionsmethode . . . . . . . . . 110 11 Tabellen-Nachschlagemethoden 11.1 Eine einfache Nachschlagemethode . . . . . . 11.2 Die Alias-Methode . . . . . . . . . . . . . . . 11.3 Aufbau der Alias-Tafel . . . . . . . . . . . . . 11.4 Ein Beispiel für den Aufbau einer Alias-Tabelle
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
121 121 123 128 131
12 Simulationsverfahren für einige Standardverteilungen 133 12.1 Diskrete Verteilungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 12.2 Stetige Verteilungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 12.3 Mehrdimensionale Verteilungen . . . . . . . . . . . . . . . . . . . . . . . . . . 136 13 Simulation von Gleichverteilungen auf Flächen 141 13.1 Gleichverteilung auf einem Simplex . . . . . . . . . . . . . . . . . . . . . . . . 142 13.2 Gleichverteilungen auf Kugeloberflächen . . . . . . . . . . . . . . . . . . . . . 151 14 Ziehen einer zufälligen Stichprobe 159 14.1 Stichproben mit vorgegebenen Ziehungswahrscheinlichkeiten . . . . . . . . . . . 159 14.2 Ziehen bei bekannter Grundgesamtheit . . . . . . . . . . . . . . . . . . . . . . . 164 14.3 Sequentielle Stichprobenentnahme . . . . . . . . . . . . . . . . . . . . . . . . . 165
III Simulationsexperimente : Aufbau und Auswertung
171
15 Beispiele und Anwendungen 175 15.1 Schätzungen eines Erwartungswertes . . . . . . . . . . . . . . . . . . . . . . . . 175 15.2 Ereignisgesteuerte Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 16 Konfidenzintervall und Stichprobenumfang bei Mittelwertschätzungen
189
17 Regenerative Simulation
197
Inhaltsverzeichnis
XI
18 Varianzreduktion 18.1 Monte-Carlo-Integration . . . . . . . . . . . 18.2 Antithetische Variable . . . . . . . . . . . . . 18.3 Varianzreduktion durch „Conditioning“ . . . 18.4 Varianzreduktion durch eine Kontrollvariable
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
IV Simulation und Optimierung 19 Optimales Landebahnmanagement 19.1 Problemstellung Landebahnzuweisung . . 19.2 Das mathematische Modell . . . . . . . . 19.3 Ereignisgesteuerte Simulation . . . . . . 19.4 Regenerative Simulation . . . . . . . . . 19.5 Zuweisungsstrategien . . . . . . . . . . . 19.6 Varianzreduktion . . . . . . . . . . . . . 19.7 Optimierung mit genetischen Algorithmen
207 207 211 218 223
227 . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
229 229 231 233 236 238 240 242
Anhang
247
A Einige Grundbegriffe der Stochastik
249
B Einige Grundbegriffe der mathematischen Statistik
253
Literaturverzeichnis
255
Sachverzeichnis
257
1 Einleitung 1.1 Eine Begriffsabgrenzung Simulation bedeutet im technischen Sprachgebrauch meist soviel wie: vereinfachtes Nachbilden einer komplexen Situation oder eines komplexen Systems, um Berechnungen oder Untersuchungen vorzunehmen. So können etwa neue Verfahrensweisen erprobt, Kenngrößen berechnet oder Hypothesen überprüft werden. Eine Simulation wird typischerweise dann benutzt, wenn eine Erprobung des realen Systems nicht möglich ist, z. B. weil das System noch nicht existiert, ein gefährlicher Fehlerfall untersucht werden soll oder die Kosten zu hoch sind. Die Nachbildung des Systems erfolgt dabei meist auf einer anderen technischen Ebene als das Original, z. B. werden bestimmte Eigenschaften eines Flugzeugs durch ein kleines Flugzeugmodell im Windkanal untersucht oder es wird ein Hochregallager im Spielzeugmaßstab nachgebaut, um ein komplexes Steuerungsprogramm zu erproben. Während diese „Hardware-Simulation“ jeweils nur zu einer speziellen Problemstellung passt, erhält man sehr viel flexiblere Modelle, wenn die zu untersuchenden Zusammenhänge in Software abgebildet und auf einem Rechner simuliert werden können. Wir beziehen uns im Folgenden nur auf diese „Rechnersimulation“. Um ein solches Simulationsmodell zu erhalten, versucht man zunächst, mit Techniken der angewandten Mathematik ein möglichst vollständiges Modell des realen Systems zu erstellen und analytische Wege zur Lösung des in Frage stehenden Problems zu finden. Dies ist häufig nur dann möglich, wenn das Modell sehr einfach gestaltet ist und stark von der realen Problemstellung abstrahiert. Als Folge haben die ermittelten Resultate oft nur beschränkten Wert für die Praxis. Wählt man andererseits ein realistischeres Modell, so sind die Zusammenhänge oft zu kompliziert, um mit klassischen mathematischen Methoden bearbeitet werden zu können. Hier kann die Simulation einen Ausweg bilden. Sie setzt ein Modell voraus, dessen Zusammenhänge so beschrieben sind, dass sie in einem lauffähigen Rechnerprogramm abgebildet werden können. Anstelle des realen Systems wird dann dessen Abbild auf dem Rechner untersucht. Grob kann man dabei zwei Arten von Simulation unterscheiden. In der numerischen Simulation geht es um Zusammenhänge, deren Dynamik häufig durch Differenzialgleichungen dargestellt wird und zu deren Lösung Algorithmen der numerischen Mathematik verwendet werden. In der stochastischen Simulation, mit der wir uns hier beschäftigen wollen, geht es um Fragestellungen, in denen zufallsabhängige Größen ausschlaggebend sind, deren Einfluss nicht vollständig analytisch erfasst werden kann. Dies ist z. B. bei vielen Fragestellungen des Operations Research der Fall, etwa bei der Untersuchung von Kommunikations- und Verkehrssystemen oder im Supply Chain Management. Für die stochastische Simulation müssen dann insbesondere Rechneralgorithmen gefunden werden, die das zufallsabhängige Geschehen hinreichend genau auf dem Rechner nachbilden. Der komplette Vorgang der stochastischen Simulation umfasst grob gesehen folgende Teilschritte:
2
1 Einleitung
• • • • •
Aufstellung eines Modells des realen Systems mit Mitteln der Mathematik und Informatik, Bereitstellung der (zufallsabhängigen) Input-Daten, Durchführung der Simulationsexperimente, Erfassen, Auswerten, Darstellen und Interpretieren der Ergebnisse, eventuell eine Anpassung des Modells.
Von diesen vielfältigen Aspekten werden im Rahmen dieses Buches vor allem die Punkte behandelt, die einen stärker mathematischen Charakter haben, wir gehen dabei auf folgende Fragen ein: • • • • • •
Wie kann „Zufall“ auf dem Rechner erzeugt werden ? Wie kann die Qualität dieser Mechanismen untersucht und bewertet werden? Wie können Input-Daten mit einer vorgegebenen Verteilung erzeugt werden? Wie kann ein komplexes Simulationsexperiment auf dem Rechner aufgebaut werden? Wie können Aussagen aus den Simulationsdaten gewonnen werden? Wie kann die Schärfe dieser Aussagen verbessert werden?
1.2 Modellierungsebenen der Simulation Am Beispiel eines einfachen Lagerhaltungsproblems wollen wir die verschiedenen Modellierungsschritte von einer realen Problemstellung bis hin zur Simulation noch einmal ausführlich darstellen. Dabei wird auch deutlich, dass dieser Prozess Modellierungen auf verschiedenen Ebenen umfasst, vgl. Abbildung 1.1 auf Seite 5. . Ein Lager für ein Gut (z. B. Autoreifen) wird nach einer bestimmten Bestellstrategie wöchentlich aufgefüllt: Wenn der Bestand y zu Beginn der Woche unter einen vorgegebenen Wert r gefallen ist, wird eine feste Menge Q bestellt. Die Nachfrage x pro Woche (= Abgang aus dem Lager) ist zufallsabhängig. Es fallen dabei verschiedene Kosten an wie z. B. Unterhaltskosten (Miete, Energie, ...), Bestellkosten für neue Reifen oder Kosten, die anfallen, wenn eine Nachfrage bei leerem Lager nicht erfüllt werden kann. Die Bestellstrategie (d. h. die Parameter r und Q) soll so gewählt werden, dass die jährlichen Kosten im Mittel minimal werden.
Die oben aufgeführten Eckdaten des Lagers werden in einem Standardmodell der Lagerhaltungstheorie präzisiert: Alle Kosten in der m-ten Woche werden in der Kostenfunktion Kr,Q zusammengefasst, die vom aktuellen Bestand ym zu Beginn der m -ten Woche und der Nachfrage xm abhängen kann: Kr,Q (ym , xm ) m = 1, 2, ... Die Ausgangsdaten für die jeweils folgende Woche werden durch ein Bewegungsgesetz beschrie-
1.2 Modellierungsebenen der Simulation
3
ben, das von der Bestellstrategie (r, Q) abhängt, also etwa: ym − xm , falls ym ≥ r ym+1 := mit (z. B.) y1 = Q. ym + Q − xm , falls ym < r
(1.1)
Hier haben wir zur Vereinfachung angenommen, dass die bestellte Menge Q ohne Zeitverzug zur Verfügung steht und daher im Falle einer Bestellung zu Beginn der m-ten Woche der Bestand am Ende der Woche ym + Q − xm ist. Die während einer Woche auftretende Nachfrage wird oft vereinfachend als Folge von unabhängigen, identisch verteilten Zufallsvariablen X1 , X2 , ... angesehen mit einer zu bestimmenden Verteilung, z. B. PXm = N(μ, σ 2 ). Es gilt dann: Ym − Xm , falls Ym ≥ r , Y1 := Q Ym+1 := Ym + Q − Xm , falls Ym < r für die Folge der Zufallsvariablen (Ym )m≥1 , die den Lagerbestand zu Beginn der Woche beschreiben. Die zu minimierende Zielfunktion „mittlere jährliche Kosten“ ist dann gegeben durch den Erwartungswert 52
G(r, Q) := E
∑ Kr,Q (Ym , Xm )
.
m=1
Damit ist der Sachverhalt für unsere Zwecke mathematisch ausreichend exakt erfasst. . Für einfache Verteilungen von Xm lassen sich derartige Modelle u.U. vollständig mathematisch analysieren. Bei komplizierteren Nachfrageverteilungen oder zusätzlichen Modellkomplikationen (z. B. verderbliches Gut, Lieferverzögerung, . . .) ist dies häufig unmöglich, man ist dann auf Simulation angewiesen. Ziel ist dabei die Bestimmung des Erwartungswerts G(r, Q) = E g(X1 , . . . , X52 )
mit
52
g(x1 , ..., x52 ) :=
∑ Kr,Q (xm , ym ),
m=1
y1 = Q und y2 , . . . , y52 wie in (1.1). Das starke Gesetz der großen Zahlen ermöglicht eine Darstellung des Erwartungswertes mit Hilfe einer unabhängigen, identisch verteilten Folge (i) (i) (X1 , . . . , X52 )i≥1 von (52-dimensionalen) Zufallsvariablen als 1 n (i) (i) g X , . . . , X ∑ 1 52 n→∞ n i=1
G(r, Q) = lim
(P-f.s.).
(1.2)
Die Idee der Simulation von G(r, Q) besteht nun darin, auf dem Rechner geeignete Zahlenreihen (i) (i) (i) (i) (x1 , . . . , x52 ) in großer Zahl zu produzieren und den Durchschnitt der g(x1 , . . . , x52 ) zu bestim(i)
(i)
men. (1.2) zeigt, dass dies ein sinnvolles Vorgehen ist, wenn die (x1 , . . . , x52 ) so gewählt werden, dass sie als Beobachtung von möglichen Nachfragen angesehen werden können.
4
1 Einleitung
Es muss ein lauffähiges Programm erstellt werden, das in der Lage ist, (i)
(i)
1. Folgen von Zahlen x1 , ..., x52 , i = 1, 2, . . . zu produzieren, deren relative Häufigkeiten denen der beobachteten Nachfrage entsprechen und 2. zu gegebenen Parametern r, Q, y1 und Input x1 , ..., x52 die Kosten g(x1 , ..., x52 ) :=
52
∑ Kr,Q (xm , ym )
m=1
zu berechnen.
(i)
(i)
Mit obigem Programm werden Zahlenfolgen x1 , . . . , x52 , i = 1, . . . , N, erzeugt und der Durchschnitt 1 N 1 N 52 (i) (i) (i) (i) g(x , · · · , x ) = K , x y ∑ 1 ∑ ∑ r,Q m m 52 N i=1 N i=1 m=1 wird als Schätzwert für G(r, Q) zurückgegeben. Zur verlässlichen Interpretation der Ergebnisse sind weitere Überlegungen erforderlich: Es muss die Genauigkeit dieser Schätzung angegeben werden oder es muss die Zahl N von Simulationsschritten bestimmt werden, die erforderlich sind, um eine vorgegebene Genauigkeit garantieren zu können. Das oben unter und beschriebene Lagerhaltungsmodell ist nur ein (stark) vereinfachtes Modell eines realen Lagers, in dem speziell die Ungewissheit über die Nachfrage mit Hilfe der üblichen Begriffe der Stochastik mathematisch modelliert wurde. Bei einer Simulation wird dieses nicht oder nicht vollständig analysierbare Modell ersetzt durch ein mathematisch weitgehend gleichwertiges (Simulations-)Modell , das auf dem Rechner ablauffähig ist. Der Grad der Gleichwertigkeit der beiden Modelle und (und damit die Übertragbarkeit der Resultate) ergibt sich durch die dahinterstehende mathematische Theorie der Stochastik in Modell . Im Ergebnis haben wir es mit zwei realen, empirisch durchführbaren Zufallsexperimenten und zu tun, die letztlich durch einen Wahrscheinlichkeitsraum und entsprechende Zufallsvariablen beschrieben werden. Dabei setzt das mathematische Modell meist nicht direkt an der realen Situation an, sondern baut auf einem passenden, fachwissenschaftlich aufbereitete Zwischenmodelle auf. Dies ist in unserem Beispiel zum einen das betriebswirtschaftlich aufbereitete Lagerhaltungsmodell mit seinen Standardannahmen, Kostenfunktionen etc. Auf der anderen Seite benutzt man Techniken der Informatik, um die Simulationsalgorithmen zu lauffähigen Programmen in Modell zu machen. In Abb. 1.1 ist diese etwas unübersichtliche Situation noch einmal dargestellt. Beobachtete Kenngrößen aus der Simulation in lassen sich auf ursprüngliche Lager übertragen, soweit ihre gemeinsamen stochastischen Gesetzmäßigkeiten in Modell korrekt erfasst
1.2 Modellierungsebenen der Simulation
5
: konkretes Lager
Zufallsexperimente in der Realität
beobachtbar: Bestand, Nachfrage etc.
E: Simulationsprogramm, uswertung
?
Ermittlung von Durchschnittswerten für Bestand, Nachfrage etc. Genauigkeit, Interpretation
Abstraktion
formalisierte Modelle
Implementierung
B: Lagerhaltungsmodell Festlegung und Beschreibung von: Input, Output, funktionalen Zusammenhängen, Häufigkeitsverteilungen, ...
D: Simulationsmodell Algorithmen, Zufallsgenerator funktionale Zusammenhänge, Datenstrukturen, ...
Entwurf geeigneter Algorithmen
Reduktion auf stochastische Begriffe
mathematisches Modell
C: Stochastisches Modell Wahrscheinlichkeitsverteilung, i.i.d. Folge von Zufallsvariablen Erwartungswert, Starkes Gesetz...
Abbildung 1.1: Schematische Skizze der Simulation eines Lagers
wurden. Wichtig für das Funktionieren dieser Vorgehensweise ist daher die möglichst gute Übereinstimmung zwischen den beiden Zufallsexperimenten und dem stochastischen Modell. Dieses Buch beschäftigt sich vor allem mit den Übergängen von zu und also mit der Umsetzung stochastischer Modelle in lauffähige Algorithmen und deren Auswertung. Wir setzen z. B. eine bestimmte Verteilung (in ) voraus und untersuchen, mit welchen Algorithmen man sogenannte Zufallszahlen erzeugen kann, deren Eigenschaften möglichst genau denen der vorgegebenen Verteilung entsprechen. Dabei werden wir uns insbesondere mit dem Problem auseinandersetzen, dass Rechneralgorithmen (hier) immer deterministisch sind, wir aber ein Zufallsexperiment erstellen wollen. Ermöglicht wird dies dadurch, dass „Zufälligkeit“, wie sie in der Stochastik betrachtet wird, weniger eine Eigenschaft des Zustandekommens der Beobachtungen, sondern mehr des Ergebnisses
6
1 Einleitung
ist: eine algorithmisch erzeugte Zahlenfolge x0 , x1 , ... muss daher nur so „aussehen wie“ durch Zufall zustande gekommen. Der Aufbau des Buches ist dabei der folgende: Im Teil I gehen wir zunächst von einem einfachen stochastischen Standardmodell aus: wir betrachten eine Folge von Zufallsvariablen (Xm )m≥1 , die unabhängig und identisch verteilt sind mit der Gleichverteilung U(0, 1) auf dem Intervall (0, 1). Wir untersuchen verschiedene Algorithmen (sogenannte Zufallsgeneratoren) zur Erzeugung von Zahlenfolgen, die gut durch die (Xm )m≥1 beschrieben werden können, die also den Übergang von Modell nach Modell für die Gleichverteilung U(0, 1) lösen. Ein wichtiger Aspekt ist dabei die Güte dieser Algorithmen: wie gut wird die Zahlenfolge von dem mathematischen Modell beschrieben bzw. andersherum, wie gut simulieren die Zahlenfolgen das mathematische Modell? Im Teil II wird gezeigt, wie Zufallszahlen zu verschiedenen vorgegebenen Verteilungen erzeugt werden können. Dabei greift man auf die im Teil I entwickelten Zufallsgeneratoren für U(0, 1) zurück. Im Teil III wird die Simulation komplexerer Situationen mit Hilfe der zuvor eingeführten Zufallsgeneratoren untersucht. Es werden Fragen des Programmaufbaus und der Auswertung von Simulationsexperimenten anhand einiger Beispiele erläutert. Dies schließt auch ein längeres Praxisbeispiel in Teil IV ein, an dem die unterschiedlichen Aspekte und Einsatzmöglichkeiten von Simulation beleuchtet werden.
Teil I Zufallsgeneratoren für Gleichverteilungen
2 Ganzzahligkeit und Rekursion 2.1 Die Gleichverteilung auf {0, 1, . . . , M − 1} Beim Umgang mit reellen Zahlen auf einem Rechner ergeben sich eine Reihe von Problemen, da bekanntlich nur rationale Zahlen mit begrenzter Stellenzahl darstellbar sind und häufig Rundungsfehler auftreten. Algorithmen, die mit ganzen Zahlen arbeiten, sind darüberhinaus oft einfacher mathematisch zu analysieren. Die meisten Zufallsgeneratoren für U(0, 1) arbeiten daher nach dem folgenden Schema: 1. Mit einem Zufallsgenerator für die diskrete Gleichverteilung U({0, 1, . . . , M − 1}) werden ganze Zahlen x0 , x1 , . . . ∈ {0, 1, . . . , M − 1} erzeugt. Hierbei wird M meist sehr groß gewählt. xi ∈ [0, 1], i = 0, 1, . . . zurückgegeben. 2. Es wird dann ui := M Die Rechtfertigung für dieses Vorgehen auf mathematischer Ebene liefert der folgende einfache Satz. Zu den Problemen, die sich bei der Umsetzung auf dem Rechner ergeben können, siehe auch Kapitel 5.3 unten. Im Beweis benutzten wir folgende Bezeichnungen: für r ∈ R sei r die größte ganze Zahl, die kleiner gleich r ist. r MOD 1 sei der gebrochene Anteil von r, also r = r + r MOD 1.
Für M ∈ N sei X (M) gleichverteilt auf {0, 1, . . . , M −1}, d. h. X (M) sei eine Zufallsvariable mit (M) Werten in {0, . . . , M − 1} und P(X (M) = i) = M1 für alle 0 ≤ i ≤ M − 1. Es sei Y (M) := XM . Dann gilt M−1 1 (M) a) Y ist gleichverteilt auf der Menge 0, , . . . , . M M b) Ist U eine U(0, 1)-verteilte Zufallsvariable, dann gilt lim P(Y (M) ≤ t) = P(U ≤ t)
M→∞
für alle t ∈ R.
Diese Konvergenz ist sogar gleichmäßig in t ∈ R.
Die Verteilung von Y (M) konvergiert also in diesem (starken) Sinne gegen U(0, 1), obwohl die diskrete Zufallsvariablen sind und U(0, 1) eine stetige Verteilung ist. Es gilt also insbesondere lim P(Y (M) ∈ (a, b]) = b − a = P(U ∈ (a, b]),
Y (M)
M→∞
12
2 Ganzzahligkeit und Rekursion
1
FM F
t 1 M
2 M
M−1 M
3 M
1
Abbildung 2.1: Die Verteilungsfunktionen FM (t) = P(Y (M) ≤ t) und F(t) = P(U ≤ t) für M = 8
obwohl für alle M < ∞ gilt M−1 1 P Y (M) ∈ 0, , . . . , = 1 M M
und
M−1 1 P U ∈ 0, , . . . , = 0. M M
i Beweis: a) Die Verteilung von Y (M) ist auf die M rationalen Zahlen ai := , 0 ≤ i ≤ M − 1, M konzentriert, denn es gilt für alle a ∈ R (M) X 0 für a · M ∈ {0, . . . , M − 1} (M) (M) P(Y = a = P(X = a) = P = a · M) = 1 M für a · M ∈ {0, . . . , M − 1} M 0 für a ∈ {0, M1 , . . . , M−1 M } = 1 1 M−1 für a ∈ {0, , . . . , M M M }
und daher P(Y (M) ∈ 0, M1 , . . . , M−1 M } = 1. b) Für a ∈ R bezeichne Mit Für 0 ≤ t ≤ 1 gilt: FM (t) := P(Y (M) ≤ t) = P(X (M) ≤ t · M) =
1 {ai | 0 ≤ i ≤ M − 1, ai ≤ t · M} M
1 (die ‘0’ muss extra gezählt werden) M 1 tM MOD 1 1 tM − tM MOD 1 + = +t + . = M M M M = (1 + t · M)
Da tM MOD 1 ∈ [0, 1) gilt, folgt limM→∞ FM (t) = t gleichmäßig in 0 ≤ t ≤ 1. Für die U(0, 1)-
2.2 Rekursive Generatoren
13
verteilte Zufallsvariable U gilt aber (vgl. auch Abbildung 2.1) ⎧ ⎪ ⎨ 0 für t < 0 P(U ≤ t) = t für 0 ≤ t < 1 . ⎪ ⎩ 1 für 1 ≤ t
Der Satz liefert eine Aussage über das Verhältnis verschiedener Zufallsvariablen zueinander, er ist eine Aussage innerhalb des mathematischen Modells (vgl. in Abb. 1.1). Für das dadurch beschriebene Simulations-Zufallsexperiment folgt daraus: Wenn ein Zufallsgenerator Folgen x0 , x1 , . . . erzeugt, deren relative Häufigkeiten gut durch die Gleichverteilung U({0, . . . , M − 1}) beschrieben werden können, so können die relativen Häufigkeiten der Folge xM0 , xM1 , . . . gut 1 , . . . , M−1 durch die Gleichverteilung U({0, M−1 M }) beschrieben werden und für „große“ M auch durch U(0, 1). Über die Güte der Näherung ist dabei nichts gesagt. Von dem oben formulierten Ziel, eine Folge von Zufallszahlen zu produzieren, die U(0, 1) simulieren, rückt man also noch einmal ab und sucht zunächst Folgen, die durch eine U({0, . . . , M − 1})-Verteilung beschrieben werden können.
2.2 Rekursive Generatoren Welche Eigenschaften muss ein Algorithmus besitzen, damit er als Zufallsgenerator benutzt werden kann? Als erstes muss er offensichtlich bei wiederholtem Aufruf unterschiedliche Zahlen liefern. Dies leisten sogenannte rekursive Algorithmen. a) Eine Folge von natürlichen Zahlen (xn )n≥0 heißt rekursiv der Ordnung k ≥ 1 mit Startwerten x0 , . . . , xk−1 , falls es eine durch einen Algorithmus berechenbare Abbildung G : Nk0 → N0 gibt, so dass für alle n ≥ k − 1 gilt xn+1 = G(xn−(k−1) , xn−(k−2) , . . . , xn ).
(2.1)
(2.1) definiert ein Rekursionsschema. b) Die Werte xn können dabei auch eingeschränkt werden z. B. auf eine Menge S := {0, 1, . . . , M − 1} für ein M ∈ N. G muss dann eine Abbildung G : Sk → S sein. Benutzen wir eine Folge wie in Definition 2.2, so nennen wir die Funktion G bzw. den zugehörigen Algorithmus einen Zufallsgenerator. Ein besonders einfaches Rekursionsschema der Ordnung 1 ist xn+1 := xn + 1. Die damit erzeugt Folge durchläuft (bei x0 := 0) die natürlichen Zahlen, kann aber kaum als „zufällig“ angesehen werden. Bessere, weil weniger vorhersehbare Folgen erhält man typischerweise dann, wenn die Rekursionsvorschrift mehrere Rechenschritte verknüpft, die sich in gewisser Weise fremd sind und deren Auswirkung nicht so leicht vorhersehbar ist.
14
2 Ganzzahligkeit und Rekursion
Eines der ältesten Verfahren zur Erzeugung von Zufallszahlen ist die sogenannte „midsquare“-Methode des berühmten Mathematikers J. v. Neumann. Bei diesem Algorithmus betrachtet man xn ∈ {0, 1, . . . , 108 − 1} als 8-stellige Zahl, die gegebenenfalls von links mit ‘0’ aufgefüllt wird. Als Startwert x0 wird eine beliebige Zahl aus {0, . . . , 108 − 1} gewählt, die weiteren Element der Folge werden nach der folgenden Vorschrift gebildet xn+1 := mittlere acht Ziffern von xn2 . Die Folge ist rekursiv der Ordnung k = 1. Hier sind das Quadrieren und das anschließende Herausschneiden der acht mittleren Ziffern Operationen, deren Zusammenwirken nicht so leicht abzusehen ist. Die Zufälligkeit der Folge ist jedoch schlecht, wie wir in Kapitel 6.3 sehen werden. Dieser Generator wird daher heute nur noch zu Demonstrationszwecken benutzt. Man möchte einerseits einen Algorithmus haben, dessen Ergebnisse nicht leicht vorherzusehen sind, andererseits aber möchte man das Verhalten des Algorithmus analysieren können, um mögliche Schwachstellen zu entdecken. Diese eigentlich zuwiderlaufenden Anforderungen werden relativ gut von den Kongruenzgeneratoren erfüllt, bei denen eine Operation in der Bildung von Resten (bei Division) besteht. Wir verwenden dazu die folgenden elementaren Begriffe und Sachverhalte.
Für x ∈ Z, M ∈ N definieren wir den Rest bei Division durch M als x MOD M := min{x + zM | z ∈ Z, x + zM ≥ 0}. Es gilt offensichtlich x MOD M = x − Mx M. Wir rechnen dabei in dem endlichen Restklassenring ZM := {0, 1, . . . M − 1}, der einen Körper bildet, wenn M eine Primzahl ist. Es gelten u. a. folgende einfache Aussagen für x, y ∈ N0 : x MOD M = y
=⇒
x MOD M = x
⇐⇒
−x MOD M = M − x
∃ k ∈ N0
x = y + kM bzw. y = x − kM
0 ≤ x ≤ M−1 für 0 ≤ x ≤ M − 1
(x + y) MOD M = (x MOD M + y MOD M) MOD M
und
(x · y) MOD M = (x MOD M · y MOD M) MOD M. Mit r MOD 1 für r ∈ R bezeichnen wir wie zuvor den gebrochenen Anteil von r. Dies stellt eine direkte Erweiterung von Definition 2.4 auf reelle Zahlen dar.
2.2 Rekursive Generatoren
15
Ein linearer Kongruenzgenerator der Ordnung k ≥ 1 mit dem Modulus M ∈ N besteht aus einem Rekursionsschema der folgenden Gestalt: k−1
xn+1 :=
∑ ai xn−i + c
MOD M
i=0
für n ≥ k − 1, mit den Startwerten x0 , . . . , xk−1 ∈ N0 . Dabei heißen c ∈ N0 die additive Konstante und a0 , . . . , ak−1 ∈ N0 die Multiplikatoren. Der wichtigste Fall ist k = 1, dann gilt xn+1 = (axn + c) MOD M.
Wir betrachten den linearen Kongruenzgenerator (der Ordnung k = 1) mit a := 3, c := 2, M := 7, x0 := 0, also die Vorschrift xn+1 = (3xn + 2) MOD 7,
n ≥ 0.
Dieser Generator erzeugt die Folge: 0, 2, 1, 5, 3, 4, 0, 2, 1, 5 . . . Im nächsten Kapitel werden wir lineare Kongruenzgeneratoren ausführlich untersuchen. Hier wollen wir zunächst noch auf eine entscheidende Einschränkung aufmerksam machen, der alle rekursiv arbeitenden Generatoren unterworfen sind. G beschreibe ein Rekursionsschema wie in (2.1) der Ordnung k ≥ 1 zur Erzeugung der Zufallszahlen (xn )n≥0 . a) Gibt es m, n ≥ 0 mit (xn , . . . , xn+k−1 ) = (xn+m , . . . , xn+m+k−1 ), so folgt für alle l ≥ 0 xn+l = xn+m+l (d. h. stimmen k aufeinanderfolgende Elemente der Folge von zwei verschiedenen Stellen n und n + m an überein, so wiederholt sich die ganze Folge). b) Liegen alle xn in {0, . . . , M − 1}, so gibt es für alle Startwerte Indizes m, n ≤ M k mit (xn , . . . , xn+k−1 ) = (xn+m , . . . , xn+m+k−1 ), d. h. spätestens nach M k Schritten wiederholt sich die Folge. Beweis: a) Wir benutzen vollständige Induktion über l ≥ k − 1. Nach Voraussetzung gilt die Aussage für l = k − 1. Für den Induktionsschritt l → l + 1 lautet die Induktionsvoraussetzung: xn+ j = xn+m+ j für alle j ≤ l. Daraus folgt xn+l+1 = G(xn+l−(k−1) , . . . , xn+l ) = G(xn+m+l−(k−1) , . . . , xn+m+l ) = xn+m+l+1 . b) Für die Teilfolge (xn−(k−1) , . . . , xn ) stehen nur |{0, . . . , M − 1}|k = M k verschiedene Werte zur Verfügung.
16
2 Ganzzahligkeit und Rekursion
Für rekursive Folgen der Ordnung k = 1 gilt also: Wiederholung eines Wertes führt zu Wiederholung der ganzen Folge und bei einer Beschränkung auf die Werte {0, . . . , M − 1} muss dieser Fall nach spätestens M Schritten auftreten. Rekursive Generatoren für Zufallszahlen in {0, . . . , M − 1} sind daher zwangsläufig periodisch. Es beschreibe G ein Rekursionsschema der Ordnung k mit Startwerten x0 , . . . , xk−1 . a) L(G; x0 , . . . , xk−1 ) := min {m ∈ N | (xn , . . . , xn+(k−1) ) = (xn+m , . . . , xn+m+(k−1) ) für ein n ∈ N} heißt die Periodenlänge der mit G und Startwerten x0 , . . . , xk−1 erzeugten Folge. b) L(G) := max {L(G; x0 , . . . , xk−1 ) | x0 , . . . , xk−1 zulässige Startwerte} heißt die (maximale) Periodenlänge des Generators G.
a) Durch xn+1 := (xn + xn−1 ) MOD 4 wird ein linearer Kongruenzgenerator der Ordnung k = 2 definiert, der sogenannte Fibonacci-Generator. Für Startwerte x0 := 1, x1 := 1 ergibt sich die Folge 1, 1, 2, 3, 1, 0, 1, 1, 2, . . . also die Periodenlänge L(G; 1, 1) = 6, dies ist auch die maximale Periodenlänge. Bei Startwerten x0 := 2, x1 := 0 ergibt sich dagegen 2, 0, 2, 2, 0, 2, 2, 0, . . . also gilt L(G; 2, 2) = 3. b) Es sei xn+1 := 3xn MOD 7, dies ist ein linearer Kongruenzgenerator der Ordnung k = 1. Für Startwert x0 := 1 erhält man die Folge 1, 3, 2, 6, 4, 5, 1 d. h. es gilt L(G; 1) = 6. Diesen Wert erhält man auch für jeden anderen Startwert = 0. c) Der Generator xn+1 := 2xn MOD 8 erzeugt bei Startwert x0 := 1 die Folge 1, 2, 4, 0, 0, 0, 0 also gilt L(G; 1) = 1 Periodische Wiederholung von Werten passt eigentlich nicht zu zufälligen Zahlenfolgen. Da sich die Periodizität aber (bei rekursiven Generatoren) nicht vermeiden lässt, fordert man als ein erstes Qualitätskriterium für Zufallsgeneratoren, dass die Periodenlänge sehr hoch sein muss, so dass eine Wiederholung der Werte praktisch ausgeschlossen ist. In Kapitel 4.3 betrachten wir z. B. einen Generator, der die Periodenlänge 219937 − 1 hat! Dazu ist es wichtig, die Periodenlänge eines Generators bestimmen zu können. Im folgenden Kapitel untersuchen wir dieses Problem für lineare Kongruenzgeneratoren.
3 Lineare Kongruenzgeneratoren In diesem Kapitel werden wir lineare Kongruenzgeneratoren der Ordnung 1 näher untersuchen. Wir betrachten also eine Folge (xn )n≥0 mit xn+1 = (axn + c) MOD M und Startwert x0 ∈ {0, . . . , M − 1}. Diesen Generator bezeichnen wir mit LKG(a, c, M; x0 ) und schreiben dafür auch kurz (xn )n≥0 = LKG(a, c, M; x0 ).
3.1 Maximale Periodenlänge Wegen (ax + c) MOD M ∈ {0, . . . , M − 1} gilt xn ∈ {0, . . . , M − 1} für alle n ≥ 1. Mit Satz 2.7 b) folgt daher für die maximale Periodenlänge L(a, c, M) := L(LKG(a, c, M)) stets L(a, c, M) ≤ M.
a) Es sei (xn )n≥0 = LKG(5, 1, 8; 0), d. h. xn+1 := (5xn + 1) MOD 8 mit Startwert x0 = 0. Die Folge x0 , x1 , . . . durchläuft die Werte 0, 1, 6, 7, 4, 5, 2, 3, 0, 1, 6, . . . Dieser Generator hat die maximal erreichbare Periodenlänge M = 8. b) Für c = 0 heißt der Generator multiplikativ; es gilt dann: xn+1 = axn MOD M. Hier muss x0 = 0 gelten, da wegen xn+1 = a · 0 = 0 die Zahl 0 ein „absorbierender“ Wert ist. Es können also sinnvollerweise nur Werte in {1, . . . , M − 1} erzeugt werden, entsprechend hat die maximal erreichbare Periode bei c = 0 den Wert M − 1.
Es sei (xn )n≥0 = LKG(a, c, M; x0 ) für a, c ∈ N0 und x0 ∈ {0, . . . , M − 1}. Dann gibt es stets a , c ∈ {0, . . . , M − 1} mit (xn )n≥0 = LKG(a , c , M; x0 ), die Konstanten a und c können also ohne Einschränkung aus {0, . . . , M − 1} gewählt werden. Dazu setzt man a := a MOD M und c := c MOD M. Es gilt dann xn+1 = (axn + c) MOD M = (axn MOD M + c MOD M) MOD M = ((a MOD M)xn + c ) MOD M = (a xn + c ) MOD M.
18
3 Lineare Kongruenzgeneratoren
Aus den Beispielen oben wird deutlich, dass die tatsächliche Periodenlänge (und damit die Qualität) von linearen Kongruenzgeneratoren sehr unterschiedlich sein kann. Gesucht werden daher solche Parameterwerte a, c, M, bei denen die Periodenlänge von LKG(a, c, M; x0 ) möglichst groß, d. h. möglichst gleich M ist (bzw. bei c = 0 gleich M − 1). Für die weitere Analyse benutzen wir die folgende (bekannte) Notation für x, y ∈ N : • es bezeichne ggT (x, y) den größten gemeinsamen Teiler von x und y, z. B. ggT (9, 12) = 3, ggT (7, 12) = 1. • kgV (x, y) bezeichne das kleinste gemeinsame Vielfache von x und y, z. B. kgV (3, 6) = 12. • Für „x teilt y“ (ohne Rest) schreiben wir auch x|y. • x, y sind teilerfremd (relativ prim), falls ggT (x, y) = 1 gilt. Einfache Abschätzungen für die maximale Periode L(a, 0, M) multiplikativer Generatoren ergeben sich aus dem folgenden Satz:
Es sei xn+1 := axn MOD M, n ≥ 0. a) Gilt für ein x0 ∈ ZM , dass es eine natürliche Zahl b < M gibt mit b | M und b | xn für ein n ∈ N0 , so folgt b|xm für alle m ≥ n, und die Periodenlänge ist kleiner gleich Mb − 1. b) Es sei d := ggT (a, M) < M, dann gilt d | xn für alle n ≥ 1 und L(a, 0, M) ≤
M − 1. d
c) Gilt M = d l für d, l ∈ N und ist d Teiler von a, so folgt L(a, 0, M) = 1. Der Satz erlaubt eine erste Folgerung: Um eine große Periodenlänge zu erreichen, sollte d = ggT (a, M) möglichst klein sein, am besten sollten a, M teilerfremd sein. Beweis: a) Es gelte b|M und b|xn . Mit xn+1 = axn MOD M folgt dann für ein k ∈ N0 M xn M xn xn+1 = axn − kM = a b − k b = a − k b = lb b b b b M xn M xn − k . Da , ∈ N, muss auch l ganzzahlig sein. Damit folgt aber auch b|xn+1 b b b b und b|xm für alle m ≥ n. Also sind alle xm , m ≥ n, Vielfache von b, d. h. für alle m ≥ n gilt M −1 b . xm ∈ {ν · b | ν ∈ N} ∩ {0, 1, . . . , M − 1} = 0, 1b, 2b, . . . , b
für l := a
Da 0 absorbierend ist, gibt es nur also eine Periodenlänge ≤
M b
− 1.
M − 1 verschiedene Werte für xm , m ≥ n, der Generator hat b
3.1 Maximale Periodenlänge
19
b) Aus d | a, d | M folgt wie oben, dass es ein k ∈ N0 gibt, so dass für alle n ≥ 0, unabhängig vom Startwert x0 , gilt a a M M xn − k xn+1 = dxn − k d = d d d d d M a xn − k ∈ N0 , d. h. d|xn+1 . Wie in a) folgt jetzt die Behauptung. d d c) Für jedes n ≥ l − 1 gibt es kn , kn−1 , . . . , k0 , k ∈ N0 mit mit
xn+1
= axn − kn M = a(axn−1 − kn−1 M) − kn M = a2 xn−1 − (akn−1 + kn )M = . . . an+1 = an+1 x0 − (an k0 + . . . + akn−1 + kn )M = an+1 x0 − kM = l d l x0 − kd l d n+1 a = x0 − k d l . dl
an+1 al n+1−l a l n+1−l Da aber nach Voraussetzung = a = a ∈ N, folgt M|xn+1 und damit d dl dl xn MOD M = 0 für alle n ≥ l.
a) Für LKG(2, 0, 6; x0 ) gilt 2 = ggT (a, M). Nach Satz 3.3 b) folgt L(2, 0, 6) ≤ Md − 1 = 6 2 −1 = 2. Bei Startwert x0 = 1 erhält man 1, 2, 4, 2, 4, . . . , bei Startwert 5 dagegen 5, 4, 2, 4, . . . b) Für LKG(2, 0, 8; x0 ) gilt M = 23 und 2 = ggT (2, 8), nach Satz 3.3 c) folgt L(2, 0, 8) = 1. Für Startwert x0 = 1 erhält man 1, 2, 4, 0, 0, 0, . . . , bei Startwert 3 ganz ähnlich 3, 6, 4, 0, 0, 0, . . . Die bisherigen Überlegungen haben obere Schranken für die Periodenlänge geliefert. Schwieriger ist es, Bedingungen anzugeben, unter denen die maximal möglichen Periodenlängen auch tatsächlich angenommen werden. Dazu benötigt man den folgenden Begriff aus der Algebra: a, M ∈ N seien teilerfremd, dann heißt l(a, M) := min {k ∈ N|ak MOD M = 1} die Ordnung von a modulo M. Ist M Primzahl, so ist ZM − {0} bezüglich der Multiplikation eine Gruppe, l(a, M) ist dann die Ordnung von a in dieser Gruppe, d. h. die Mächtigkeit der von a erzeugten zyklischen Untergruppe {1, a, a2 , . . .}. Es gilt daher stets l(a, M) ≤ M − 1. Damit lassen sich nun hinreichende Bedingungen angeben, unter denen die Periodenlänge ihren maximalen Wert M bzw. M −1 annimmt. In diesem Falle ist die Periodenlänge auch für alle Startwerte gleich, da ja während einer Periode alle Werte aus {0, 1, . . . , M − 1} bzw. {1, . . . , M − 1} genau einmal auftauchen müssen.
20
3 Lineare Kongruenzgeneratoren
a) Der multiplikative Generator LKG(a, 0, M; x0 ) hat die maximale Periodenlänge M − 1 bei beliebigem Startwert x0 = 0, falls gilt (i) M > 2 ist Primzahl und (ii) l(a, M) = M − 1 (a heißt dann primitive Wurzel von M). b) Der lineare Kongruenzgenerator LKG(a, c, M; x0 ) mit c > 0 hat die maximale Periodenlänge M bei beliebigem Startwert x0 , falls gilt (i) c, M sind teilerfremd, (ii) für jeden Teiler d von M, der Primzahl ist, gilt a MOD d = 1 und (iii) falls d = 4 ein Teiler von M ist, gilt ebenfalls a MOD 4 = 1. Den Beweis zu diesem Satz findet man in [Knu98], 3.2.1.2, Theorem A und B. Offensichtlich ist es zur Erzielung einer großen Periodenlänge sinnvoll, den Modulus M möglichst groß zu wählen. Daher sind die größten darstellbaren Zahlen die natürlichen Kandidaten für M − 1. Die größten auf heutigen digitalen Rechnern standardmäßig darstellbaren ganzen Zahlen haben aber typischerweise die Gestalt 2β − 1, wobei β die Wortlänge des Prozessors ist. Der folgende Satz untersucht die maximale Periodenlänge für diesen wichtigen Spezialfall, der durch Satz 3.6 nur teilweise abgedeckt wird. Es sei M = 2β für ein β ∈ N mit β > 3. a) Der multiplikative Generator LKG(a, 0, M; x0 ) hat die Periodenlänge 2β −2 = M4 , falls x0 ungerade ist und a MOD 8 ∈ {3, 5} (d. h. a = k · 8 ± 3 für eine k ∈ N0 ). b) Für beliebige Startwerte x0 ≥ 0 nimmt LKG(a, c, M; x0 ) die maximale Periodenlänge 2β = M an, falls c > 0 ungerade ist und a MOD 4 = 1 gilt.
Beweis: a) Der vollständige Beweis findet sich wieder in [Knu98] 3.2.1.2. Dort wird insbesondere gezeigt, dass gilt: a MOD 8 ∈ {3, 5} ⇔ a maximiert l(a, M) für M = 2β und l(a, M) = 2β −2 . Wegen M = 2β sind alle Teiler von M gerade. Daher sind x0 , M teilerfremd, falls x0 ungerade ist (vgl. Satz 3.3 a)). b)Wir zeigen, dass die Voraussetzungen aus Satz 3.6 b) gelten. Aus c ungerade und M = 2β folgt, dass c, M teilerfremd sind. Sei d ein Teiler von M = 2β . Ist d Primzahl, so folgt d = 2, wegen a MOD 4 = 1 gilt auch a MOD 2 = (a MOD 4) MOD 2 = 1. Ist d = 4, dann gilt a MOD 4 = 1 nach Voraussetzung. Mit Satz 3.6 b) folgt die Behauptung. Während wir bisher nur Spielbeispiele betrachtet haben, erlauben es die Sätze 3.6 und 3.7, die Periodenlänge tatsächlich verwendeter Zufallsgeneratoren zu untersuchen. Das folgende Beispiel stellt einige wichtige Generatoren für U(0, 1) zusammen.
3.2 Implementierung von LKGs
21
a) Es sei M := 235 , a := 129 = 27 + 1, c := 1. Dann gilt: c > 0 ist ungerade, a, M sind teilerfremd und a MOD 4 = (27 + 1) MOD 4 = 1. Nach Satz 3.7 (b) folgt für alle x0 ≥ 0, dass der Generator die Periodenlänge 235 hat. b) Es sei M := 235 , a := 131075 = 217 + 3 und c := 0. Dann gilt a MOD 8 = (217 + 3) MOD 23 = 3. Also hat dieser Generator für ungerade Startwerte x0 nach Satz 3.7 a) die Periodenlänge 2β −2 = 233 . c) Es sei M := 229 , a := 216 + 3 = 65539 und c := 0. Dann gilt a MOD 8 = 3, für ungerade Startwerte x0 ergibt sich die Periodenlänge 227 . Dieser Generator hat zwar eine hohe Periodenlänge, aber relativ schlechte Zufallseigenschaften, wie wir in Kapitel 6.3 unten sehen auf früheren IBM-Großrechner verwendet. werden. Er wurde unter dem Namen d) ([LGM69]) Es seien M := 231 − 1 = 2147483647, a := 75 = 16807 und c := 0. M ist Primzahl, a ist primitive Wurzel von M. Nach Satz 3.6 a) hat dieser Generator maximale genauer untersucht. In Periodenlänge 231 − 2. Er wird in Kapitel 6.3 unter dem Namen der Praxis hat sich dieser Generator lange Zeit relativ gut bewährt, ist aber etwas schlechter als moderne Generatoren, wie z. B. der folgende. e) ([L’E88]) M := 2147483399 = 231 − 249 ist Primzahl und a := 40692 ist primitive Wurzel von M. Der zugehörige multiplikative Generator hat die Periodenlänge M − 1 = 231 − 250. Seine hervorragende Qualität wird in Beispiel 6.8 untersucht. stellt die Funktif) Der Open-Source-Compiler von „Gnu“ für die Programmiersprache zur Verfügung, dies ist ein linearer Kongruenzgenerator mit den Parametern on M := 248 , a := 25 214 903 917 und c := 11. Hier ist c ungerade und es gilt a MOD 4 = 1, daher hat dieser Generator die Periodenlänge M = 248 .
3.2 Implementierung von LKGs Zufallsgeneratoren werden heutzutage von vielen Anwendungsprogrammen und Programmierumgebungen bereitgestellt. Für besonders kritische Anwendungen kann es trotzdem sinnvoll sein, den Zufallsgenerator selbst zu implementieren, um so vollständige Kontrolle über das Geschehen zu haben. Dabei ist besondere Sorgfalt erforderlich. Insbesondere muss die Korrektheit der Implementierung sehr gründlich geprüft werden, da das einfache Ausprobieren meist nur sehr grobe Fehler erkennen lässt, subtilere Fehler werden durch die „Zufälligkeit“ des Outputs leicht überdeckt. Da Zufallsgeneratoren typischerweise sehr oft aufgerufen werden, muss darüberhinaus auf eine sehr schnelle Implementierung geachtet werden. Ein technisches Problem entsteht bei linearen Kongruenzgeneratoren mit einem Modulus M nahe der größten auf dem Rechner darstellbaren Zahl. Hier kann bei der Ausführung von axn + c
22
3 Lineare Kongruenzgeneratoren
b31 b30
...
bk
bk−1 . . .
x(k)
b1
b0
x(k)
Abbildung 3.1: Dualdarstellung eines
mit 32 Bits.
ein Überlauf auftreten, d. h. eine Zahl, die auf dem Rechner nicht mehr darstellbar ist. Die Auswirkungen eines Überlaufs hängen vom Rechner ab, sie können das Ergebnis aber grob verfälschen. Wir zeigen im Folgenden am Beispiel eines 32-Bit-Rechners, wie der Überlauf bei multiplikativen Kongruenzgeneratoren vermieden werden kann, wenn der Multiplikator a nicht zu groß ist. Die Ideen stammen aus [BFS87] bzw. [L’E88]. Die binäre (oder Dual-) Darstellung einer ganzen Zahl x schreiben wir als (. . .)2 . Auf einem 32-Bit-Rechner gilt also x = (b31 , . . . , b0 )2 , dabei enthält das oberste Bit b31 das Vorzeichen, vgl. Abb. 3.1. Rechnen wir mit x ≥ 0, so kann dieses Bit für die Zahldarstellung verwendet in der Programmiersprache ). werden (etwa bei Verwendung des Datentyps Die größte darstellbare ganze Zahl ist dann 232 − 1. Wir wollen als erstes ein Verfahren vorstellen, dass sich zur Implementierung des Generators xn+1 = 16807xn MOD (231 − 1) aus Beispiel 3.8 d) eignet. Wir verwenden dazu folgende Bezeichnungen: Für x ∈ {1, 2, . . . , M − 1} und 1 ≤ k ≤ 31 sei x(k) := x MOD 2k
und
x(k) := x/2k .
x(k) besteht aus den oberen 32 − k Bits (einschließlich Vorzeichen-Bit) und x(k) aus den unteren k Bits, vgl. Abb. 3.1. Insbesondere gilt dann x = x(k) · 2k + x(k) .
(3.1)
Es sei M = 231 − 1 und a < 215 . Für x ∈ {1, 2, . . . , M − 1} sei (15) + x(16) · a + (x(16) · a)(16) z := x(16) · a + (x(16) · a)(16)
(15)
· 216 + (x(16) · a)(16) . (3.2)
Dann gilt: a) Alle Terme in z und z selbst sind ohne Überlauf mit 32-Bit-Worten zu berechnen. b) Für das Ergebnis des Rekursionsschritts gilt xa MOD M =
z,
falls z < M
z − M,
falls z ≥ M
.
(3.3)
3.2 Implementierung von LKGs
23
Man beachte, dass bei M = 231 − 1 auch 2M = 232 − 2 noch eine darstellbare Zahl ist. Beweis: Es folgt aus (3.1) mit b := x(16) · a + (x(16) · a)(16) x · a = x(16) · a · 216 + x(16) · a = x(16) · a · 216 + (x(16) · a)(16) · 216 + (x(16) · a)(16) = (x(16) · a + (x(16) · a)(16) ) · 216 + (x(16) · a)(16) = b · 216 + (x(16) · a)(16) = b(15) · 215 + b(15) · 216 + (x(16) · a)(16) = b(15) · 231 + b(15) · 216 + (x(16) · a)(16) = b(15) · M + b(15) + b(15) · 216 + (x(16) · a)(16) = k·M+z für k = b(15) , d. h. es gilt xa MOD M = z MOD M. Wegen x < M = 231 − 1 folgt x(16) ≤ 215 − 1, x(16) ≤ 216 − 1 wobei nur ein „=“ gelten kann (andernfalls wäre x = 231 − 1). Aus a < 215 folgt weiter x(16) · a
≤ (215 − 1) · (215 − 1) = 230 − 216 + 1
x(16) · a
≤ (2 − 1) · (2 − 1) = 2 − 2 − 2 + 1
(3.5)
(x(16) · a)
≤ (2 − 2 − 2 + 1)/2 = 2 − 1
(3.6)
(x(16) · a)(16)
≤ 2 −1
(3.7)
(16)
b = x(16) · a + (x(16) · a)(16) b
(15)
(15)
15
31
16
31
15
16
16
15
16
< 230 − 216 + 1 + (215 − 1) = 230 − 215
(3.8)
≤ (2 − 2 )/2 = 2 − 1
(3.9)
30
15
15
15
≤
2 −1
b(15) · 2
16
≤
2 −2
+ b(15) · 2
16
≤ max{2 − 1 + 0 · 2 , 2 − 2 + (2 − 1) · 2 }
b(15) b
(3.4) 15
16
15 31
(3.10)
16
15
(3.11) 16
15
15
16
(3.12)
= 231 − 215 − 2
Hierbei ist zu beachten, dass in (3.4) und (3.5) bzw. (3.6) nur einmal „=“ gelten kann, daher folgt in (3.8) „<“. Auch (3.9) und (3.10) sind dadurch gekoppelt: gilt b(15) = 215 − 1 so folgt b(15) = 0 und umgekehrt folgt aus b(15) = 215 − 1 auch b(15) ≤ 215 − 2, dies führt zu (3.12). Aus (3.12) und (3.7) ergibt sich z ≤ 231 + 215 − 3 < 2M. Mithin sind alle Ausdrücke mit den zur Verfügung stehenden 32 Bit zu berechnen, ohne dass Überlauf entsteht. Wegen 0 ≤ z < 2M unterscheiden sich xa MOD M und z höchstens um M. Damit ist der Satz bewiesen. In der Programmiersprache können die benötigten Ausdrücke sehr effizient durch BitOperationen berechnet werden. Es gilt x(k) =
(k Rechtsshifts)
und x(k) =
( bitweises „Und“ )
24
3 Lineare Kongruenzgeneratoren
wobei in genau die unteren k Bits ‘1’ sind, d. h. Maske hat den ganzzahligen Wert 2k+1 − 1. Zur Realisierung des Generators aus Beispiel 3.8 d) benötigt man die folgenden Konstanten // // // //
M = 231 − 1 a = 75 untere 16 Bit für x(16) untere 15 Bit für x(15)
Hier bewirkt das angehängte „ “ in , dass die Zahl als Wert vom Typ gespeichert wird, während das Präfix „ “ eine Hexadezimalzahl einleitet. Enthält die Variable (vom ) die zuletzt erzeugte Zufallszahl xn (oder den Startwert), so berechnet der Typ folgende Algorithmus die nächste Zufallszahl xn+1 = 16807xn MOD (231 − 1) nach dem in Satz 3.9 beschriebenen Verfahren: / / x(16) · a / / b und z aus Beweis oben:
Die vorletzte Anweisung realisiert dabei (3.3). Bei eine Implementierung ist darauf zu achten, dass die jeweils zuletzt zurückgegebene Zukönnte man dazu eine Klasse fallszahl erhalten bleibt. In definieren, die obigen Algorithmus als Methode und die aktuelle Zufallszahl als Variable enthält. Die Instanzen dieser Klasse sind dann Zufallsgeneratoren. Die Konstanten wie a, c, M und die Bitmasken könnten als Konstanten vom Typ deklariert werden. Da diese Implementierungsdetails aber stark sprachabhängig sind, wollen wir darauf im Folgenden nicht weiter eingehen. Der folgende Satz zeigt, dass sich ein multiplikativer Kongruenzgenerator noch einfacher im√ plementieren lässt, wenn man weiß, dass a < M gilt. Dies ist der Fall in dem Generator aus Beispiel 3.8 e). √ Es sei M < 231 und 0 < a < M. Mit m := Ma und l := M MOD a hat M die Darstellung M = am + l. Für x ∈ {1, . . . , M − 1} sei ferner x k1 := und z := a (x MOD m) − k1 l. m Dann folgt a) z und alle darin auftretenden Größen sind betragsmäßig kleiner als 231 , lassen sich also mit ihren Vorzeichen in 32-Bit-Worten berechnen.
3.2 Implementierung von LKGs
25
b) Es gilt
xa MOD M =
z,
falls z ≥ 0
z + M,
falls z < 0
.
Beweis: 1. Es sei k := ax M , dann gilt ax MOD M = ax − kM = ax − k1 M + (k1 − k)M = ax − k1 (am + l) + (k1 − k)M = a(x − k1 m) − k1 l + (k1 − k)M = a(x MOD m) − k1 l + (k1 − k)M
(3.13)
= z + (k1 − k)M 2. Wir zeigen zunächst, dass gilt k ≤ k1 ≤ k + 1. Aus M = am + l folgt sofort ax ax x ax k = = ≤ = = k1 . M am + l am m Für k1 ≤ k + 1 genügt es offensichtlich, folgende Ungleichung zu zeigen x ax ≤ +1 m M
bzw.
xM m(ax + M) ≤ . mM mM
√ Aus a < M folgt a2 < M und m = Ma ≥ a, also insbesondere l < a ≤ m. Mit x < M folgt nun wie gewünscht xM = x(am + l) = xam + xl < xam + Mm = m(ax + M). 3. Als nächsten Schritt zeigen wir, dass gilt k1 − k = 1 ⇐⇒ z < 0. Aus (3.13) folgt z = ax − k1 M. Oben wurde k als größte ganze Zahl definiert, für die gilt ax − kM ≥ 0. Also gilt k1 > k offensichtlich genau dann, wenn ax − k1 M < 0. 4. Aus 1. - 3. folgt jetzt Behauptung b). 5. Zu zeigen bleibt Behauptung a), also dass z = a(x MOD m) − k1 l mit Vorzeichen in 32 Bit berechnet werden kann. Wegen x MOD m < m gilt 0 ≤ a(x MOD m) < am < M. In 2. oben wurde l < m gezeigt, daraus folgt 0 ≤ k1 l < k1 m ≤ x < M, daher −M < z < M. Der folgende Algorithmus setzt diese Idee mit den Werten aus Beispiel 3.8 e) um. Da alle -Datentypen. Die Variable Größen betragsmäßig kleiner als M sind, genügen hier einfache enthalte wieder den zuletzt zurückgegebenen Wert xn (bzw. den Startwert), dann wird die nächste Zufallszahl xn+1 mit dem folgenden Code erzeugt: // // // // // //
M = 231 − 249 a m = M/a l = M MOD a k1 = x/m k = ax/M
/ / nach Satz 3.10
4 Zufallsgeneratoren mit dem Modulus 2 Neben den linearen Kongruenzgeneratoren gibt es ein Vielzahl anderer Typen von Zufallsgeneratoren, die die Gleichverteilungen U({0, . . . , M − 1}) bzw. U(0, 1) simulieren. Eine wichtige Klasse von Generatoren erzeugt die Zufallszahlen aus {0, . . . , M − 1} unmittelbar in ihrer Dualdarstellung, also als Bitfolgen aus {0, 1}l . Wir beginnen dieses Kapitel mit einem Generator für zufällige Bitfolgen, also einem Zufallsgenerator für die Gleichverteilung U({0, 1}).
4.1 Schieberegister-Generatoren Benutzt man die linearen Kongruenzgeneratoren der Ordnung 1 aus Kapitel 3 mit M = 2 zum Erzeugen von Bitfolgen, so stellt man fest, dass es überhaupt nur sechs unterschiedliche Folgen von Zufallszahlen gibt. Bei dem Startwert x0 = 0 z. B. ist nur die Folge 0, 0, 0, . . . , die Folge 0, 1, 1, 1, . . . und die Folge 0, 1, 0, 1, 0, . . . erzeugbar. Dies liegt daran, dass es nur vier Rekursionsschemata der Ordnung 1 auf Z2 = {0, 1} gibt. Schieberegister-Generatoren haben eine höhere Ordnung und können daher bessere Folgen produzieren. Wir bezeichnen die Addition modulo 2 mit „⊕“. Bekanntlich stimmt „⊕“ mit der Verknüpfung „XOR“ (exklusives „oder“) auf den Wahrheitswerten überein: b1 0 0 1 1
b2 0 1 0 1
b1 XOR b2 0 1 1 0
b1 ⊕ b2 0 1 1 0
Es seien p, q ∈ N, q < p. Der binäre Schieberegister-Generator BSR(p, q) erzeugt eine Folge von Bits bn ∈ {0, 1} mit bn := bn−p ⊕ bn−(p−q)
(4.1)
für n ≥ p mit Startwerten b0 , b1 , . . . , b p−1 ∈ {0, 1}. Zur Parametrisierung durch p, q siehe unten Bemerkung 4.3 d). Die Abkürzung „BSR“ kommt von „binary shift register“.
4 Zufallsgeneratoren mit dem Modulus 2
28
Es seien p = 5, q = 2 und Startwerte (b4 , . . . , b0 ) := (1, 1, 1, 1, 1) gegeben. Es gilt dann n − p = n − 5 und n − (p − q) = n − 3. Die von BSR(5, 2) erzeugte Bitfolge ist (in der für Dualdarstellungen üblichen Reihenfolge von rechts nach links geschrieben): . . . b10 ... 0
b9 1
b8 1
b7 0
b6 0
b5 0
b4 1
b3 1
b2 1
b1 1
b0 1
Hier gilt also z. B. b5 = b5−5 ⊕ b5−3 = b0 ⊕ b2 = 0 und b9 = b9−5 ⊕ b9−3 = b4 ⊕ b6 = 1.
a) Der Name „Schieberegister-Generator“ rührt daher, dass BSR(p, q) als Software- oder Hardware-Schieberegister realisiert werden kann, z. B. als (logisch zirkuläres) Array der Länge p wie in Abb. 4.1. Der neue Wert bn wird aus bn−p und bn−(p−q) gebildet und auf die Position des alten bn−p geschrieben; der aktuelle Index wird von n auf n + 1 erhöht. bn−k−1
bn−(p−q) ···
bn−p bn−1 ···
bn−k ···
bn = bn−p ⊕ bn−(p−q) Abbildung 4.1: Ein Schieberegister-Generator als zyklisches Array.
b) (4.1) kann auch als linearer Kongruenzgenerator der Ordnung k = p geschrieben werden, wenn man berücksichtigt, dass Addition modulo M = 2 gerade ⊕ ergibt: p bn = bn−p + bn−(p−q) MOD 2 = ∑ ai bn−i MOD 2 i=1
mit ai :=
1
für i = p und i = p − q
0
sonst
, 1 ≤ i ≤ p.
c) Ein linearer Kongruenzgenerator der Ordnung k hat eine Periodenlänge ≤ M k , da der aktuelle Wert xn von den k letzten Werten xn−1 , . . . , xn−(k−1)−1 abhängt, die jeweils M verschiedene Werte annehmen können (vgl. Satz 2.7). Für den Schieberegister-Generator ergibt sich daher als maximale Periodenlänge 2 p − 1, wobei „−1“ daher rührt, dass der Wert (bn , . . . , bn−p ) = (0, . . . , 0) absorbierend ist. d) Man kann zeigen, dass die maximale Periodenlänge 2 p − 1 genau für die Werte p, q angenommen wird, für die das Polynom p(x) := x p + xq + 1
4.2 Tausworthe-Generatoren
29
ein sogenanntes primitives Polynom über Z2 ist (vgl. [Rip87], S. 26, und die dort angegebene Literatur). Tabelle 4.1 gibt einige Werte, für die maximale Periodenlängen erzielt werden (siehe auch [Knu98] S. 28). Wegen der engen Verwandtschaft zu diesen Polynomen wird auch traditionell die Parametrisierung von BSR(p, q) mit p und q anstelle der naheliegenderen mit p und p − q benutzt. p q
5 2,3
10 3,7
15 1,4,7,8,11,14
20 3,17
31 13
127 63
828 205
Tabelle 4.1: Einige Werte von p, q, die maximale Periodelänge garantieren.
4.2 Tausworthe-Generatoren Für manche Anwendungen genügt es, „zufällig Bits“ zur Verfügung zu haben, d. h. die Verteilung U({0, 1}) zu simulieren, wofür dann BSR(p, q) direkt benutzt werden kann. Meist fasst man jedoch einen Abschnitt dieser Bits zu einer Dualdarstellung von natürlichen bzw. reellen Zahlen zusammen. Diesen Typ von Generator wollen wir jetzt untersuchen.
Der Tausworthe-Generator T G(p, q, l) mit p, q, l ∈ N und q < p erzeugt eine Folge von natürlichen Zahlen xn ∈ N mit der Dualdarstellung l−1 xn = b(n+1)l−1 , b(n+1)l−2 , , . . . , bnl 2 , d. h. xn = ∑ 2i bnl+i , i=0
wobei die Folge (bm )m≥0 von Bits durch BSR(p, q) mit Startwerten b0 , . . . , b p−1 ∈ {0, 1} erzeugt wird. l heißt dabei die Wortlänge von T G(p, q, l). Es sei p = 5, q = 2, l = 3 und (b4 , . . . , b0 ) = (1, 1, 1, 1, 1). Es ergeben sich folgende Werte: ... ... ... ...
b14 0
b13 1 x4 3
b12 1
b11 1
b10 0 x3 5
b9 1
b8 1
b7 0
b6 0
b5 0
x2 4
b4 1 x1 3
b3 1
b2 1
b1 1
b0 1
x0 7
Die Auswahl des Abschnitts von Bits, die eine Zahl xn bilden, kann auch mit Lücken bzw. Überlappung geschehen, vgl. Abb. 4.2. Allgemein gilt dann: xn = (bnt+l−1 , bnt+l−2 , . . . , bnt )2 mit der sogenannten Spreizung t ∈ N. t heißt eigentlich, falls ggT (2 p − 1,t) = 1 gilt.
4 Zufallsgeneratoren mit dem Modulus 2
30 b(n+2)t+l−1 b(n+2)t
b(n+1)t+l−1
b(n+1)t
bnt+l−1
bnt
... xn+2
xn+1
xn
xn+3
xn+1
... xn+4
xn+2
xn
Abbildung 4.2: Bildung der Rückgabewerte xn beim Tausworthe-Generator mit Wortlänge l = 7, in der oberen Zeile mit Spreizung t = 11, unten mit t = 5.
Bei t < l (d. h. bei einer Überlappung) enthalten xn , xn+1 „gemeinsame“ Bits, die die Unabhängigkeit der xn beeinträchtigen können. Der folgende einfache Satz zeigt für t = l, dass die Zusammenfassung von gleichverteilten Bits zu Dezimalzahlen die Gleichverteilung erhält.
Es sei (Bm )m≥0 eine Folge von Zufallsvariablen mit Werten in {0, 1} und (Xn )n≥0 eine Folge mit Werten in {0, . . . , 2l − 1} für ein l ≥ 1. Dann gilt: (Bm )m≥0 ist i.i.d. U({0, 1})-verteilt genau dann, wenn (Xn )n≥0 mit Xn = (B(n+1)l−1 , . . . , Bnl )2 i.i.d. U({0, . . . , 2l − 1})-verteilt ist. Beweis: Zur Erinnerung: Eine Folge diskreter Zufallsvariablen (Yn )n≥0 heißt i.i.d. mit Verteilung Q , falls für alle k ∈ N und alle i0 , . . . , ik aus dem Wertebereich von Y j gilt P(Y0 = i0 , . . . ,Yk = ik ) =
k
∏ P(Y0 = i j ) j=0
=
k
∏ Q({i j }). j=0
Die Abbildung d : {0, 1}l → {0, . . . , 2l − 1} mit d(b0 , . . . , bl−1 ) := (bl−1 , . . . , b0 )2 ist bijektiv, j , . . . , b0j )2 = x j , 0 ≤ j ≤ n : daher folgt für x j ∈ {0, . . . , 2l − 1}, und (bl−1 P(X0 = x0 , . . . , Xn = xn ) (4.2) 0 = P d(B0 , . . . , Bl−1 ) = d b0 , . . . , b0l−1 , . . . , d Bnl , . . . , B(n+1)l−1 = d bn0 , . . . , bnl−1l = P (B0 , . . . , Bl−1 ) = b00 , . . . , b0l−1 , . . . , Bnl , . . . , B(n+1)l−1 = bn0 , . . . , bnl−1 = P B0 = b00 , . . . , Bl−1 = b0l−1 , . . . , Bnl = bn0 , . . . , B(n+1)l−1 = bnl−1 Sind die (Bm )m≥0 i.i.d. U({0, 1})-verteilt, so ist der letzte Ausdruck in (4.2) gleich (1/2)(n+1)l = (1/2l )n+1 , d. h. die X0 , . . . , Xn sind i.i.d. U({0, . . . , 2l − 1})-verteilt. Ganz analog folgt die umgekehrte Richtung der Behauptung.
4.2 Tausworthe-Generatoren
31
Überträgt man diesen Satz auf die Generatoren, so besagt er: Entstammen die Bits (bm )m≥0 einem „guten“ BSR, so sind auch die daraus aufgebauten xn „gut“ (und umgekehrt). Die Folge der Bits (bm )m≥0 aus einem BSR hat nach Bemerkung 4.3 c) eine maximale Periodenlänge 2 p − 1. Der folgende Satz zeigt, dass auch die xn eine entsprechende Periodenlänge haben können.
Es sei BSR(p, q) ein Schieberegister-Generator mit maximaler Periodenlänge 2 p − 1. Für die durch T G(p, q, l) erzeugte Folge (xn )n≥0 gilt: (xn )n≥0 hat Periodenlänge
2p − 1 , ggT (2 p − 1, l)
d. h., sind l und 2 p − 1 teilerfremd, so hat (xn )n≥0 die Periodenlänge 2 p − 1. Den Beweis überspringen wir, siehe [Rip87] für Details. Abb. 4.3 macht aber plausibel, dass sich auch die (xn )n≥0 nach der Erzeugung von 2 p − 1 Bits wiederholen, falls die Wortlänge l die Periodenlänge 2 p − 1 des BSR teilt. b2 p b1 b0 b2 p −1
...
b1
b0
... x6 = x1
x5 = x0
x4
x3
x2
x1
x0
Abbildung 4.3: Für p = 4 ist l = 3 Teiler von 2 p − 1 = 15, die Periodenlänge beträgt 2 p−1 /l = 5.
Hat man Shift-Operationen auf Maschinenworten zur Verfügung oder kann man sie in der verwendeten Programmiersprache (wie etwa C++) nachbilden, so lässt sich leicht ein TauswortheGenerator realisieren, der alle l Bits in wenigen Schritten erzeugt, wie der folgende Satz zeigt. Wir fassen dabei Zahlen aus ∈ {0, 1} p als „Register“ der Länge p auf, d. h. wir identifizieren Zahlen x ∈ {0, 1} p mit ihrer Dualdarstellung (bl−1 , . . . , b0 )2 . p . Auf {0, 1} p seien die folgenden Shift-Operationen für 2 (b p−1 , . . . , b0 ) ∈ {0, 1} p und n ≤ p definiert:
Es sei p = l ≥ 1 und q ≤
RechtsShift(n, (b p−1 , . . . , b0 )) := (0, . . . , 0, b p−1 , . . . , bn ) LinksShift(n, (b p−1 , . . . , b0 )) := (b p−n−1 , . . . , b0 , 0, . . . , 0). x, y ∈ {0, 1} p seien zwei Register der Länge p. Zu Beginn enthalte x = (b p−1 , . . . , b0 ) die p Startbits, nach Durchführung der folgenden Schritte enthält x die mit dem BSR(p, q) erzeugten nächsten Bits (b2p−1 , . . . , b p ).
4 Zufallsgeneratoren mit dem Modulus 2
32
//
bitweises XOR
Beweis: Zum Beweis geben wir in Abbildung 4.4 auf Seite 33 den Inhalt der Register x und y nach jedem Schritt an. Zur Abkürzung benutzen wir wieder „⊕“ anstelle des bitweisen „XOR“.
a) p = 31, q = 13 ergeben nach Bemerkung 4.3 einen BSR maximaler Periodenlänge. Für -Programm für diese Werte lässt sich der Algorithmus aus Satz 4.9 sehr elegant in einem mit bezeichnet, einen 32-Bit-Rechner realisieren. Die bitweise XOR-Operation wird in und ausgedrückt die Shift-Operationen werden durch
/ / 32−Bit−Wort , enthält den Startwert / / RechtsShift (q , x ) XOR x / / LinksShift (p−q , y ) XOR y b) Die Tausworthe-Generatoren lassen sich etwas eleganter auch mit Matrixoperationen beschreiben: Es sei I die (p × p)–Einheitsmatrix und ⎞ ⎛ ⎞ ⎛ 0 1 ··· ··· 0 0 ··· ··· ··· 0 .. ⎟ .. ⎟ ⎜ .. ⎜ .. ⎜. 0 ⎜1 0 . .⎟ .⎟ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ .. . . . . . . . . . . . . . . = RT L := R := ⎜ . ⎜ ⎟ . . .⎟ . . .⎟ ⎟ ⎜. ⎜ ⎟ ⎜. ⎜. .⎟ .. ⎝ .. ⎝ .. . 0 .. ⎠ 0 1⎠ 0
···
···
1
0
0
···
···
···
0
seien (p × p)–Matrizen. Es sei „⊗“ die Matrix-Vektor-Multiplikation modulo 2 auf Z2 . Dann gilt für (b p−1 , . . . , b0 ) ∈ {0, 1} p L ⊗ (b p−1 , . . . , b0 )T = (b p−2 , . . . , b0 , 0) R ⊗ (b p−1 , . . . , b0 )T = (0, b p−1 , . . . , b1 ) d. h. die Multiplikation mit L bzw. R erzeugen einen Links- bzw. Rechtsshift des Maschinenworts (b p−1 , . . . , b0 ). Es sei Q := (I ⊕ L(p−q) ) ⊗ (I ⊕ Rq ).
4.2 Tausworthe-Generatoren Inhalt von Register x 1. y := x b p−1 , · · · , b0 2. RechtsShift(q, x) 0, · · · , 0, b p−1 · · · bq ! "# $
33 Inhalt von Register y b p−1 , · · · , b0 b p−1 , · · · , b0
q
3. x := x ⊕ y (0 ⊕ b p−1 ), · · · , (0 ⊕ b p−q ), (b p−1 ⊕ b p−q−1 ), · · · , (bq ⊕ b0 ) = b p−1 , · · · , b p−q , (b p−1 ⊕ b p−q−1 ), · · · , (bq ⊕ b0 )
b p−1 , · · · , b0
( da 0 ⊕ i = i für i ∈ 0, 1) 4. y := x b p−1 , · · · , b p−q , (b p−1 ⊕ b p−q−1 ), · · · , (bq ⊕ b0 ) 5. LinksShift(p − q, y) b p−1 , · · · , b p−q , (b p−1 ⊕ b p−q−1 ), · · · , (bq ⊕ b0 )
b p−1 , · · · , b p−q , (b p−1 ⊕ b p−q−1 ), · · · , (bq ⊕ b0 ) (b2q−1 ⊕ bq−1 ), · · · , (bq ⊕ b0 ), 0, · · · , 0 ! "# $ p−q
nach Voraussetzung: p ≥ 2q, p − q ≥ q 6. x := x ⊕ y (b p−1 ⊕ (b2q−1 ⊕ bq−1 ), · · · , (b p−q ⊕ (bq ⊕ b0 )) (b p−1 ⊕ b p−q−1 ⊕ 0), · · · , (bq ⊕ b0 ⊕ 0) = b2p−1 , · · · , b p dabei: b p−1 ⊕ (b2q−1 ⊕ bq−1 ) = b p−1 ⊕ b p+q−1 = b p+q−1 ⊕ b p−1 = b2p−1−(p−q) ⊕ b2p−1−p = b2p−1 .. . b p−q ⊕ (bq ⊕ b0 ) = b p−q ⊕ b p = b p ⊕ b p−q = b2p−q−(p−q) ⊕ b2p−q−p = b2p−q und b p−1 ⊕ b p−q−1 ⊕ 0 = b p−1 ⊕ b p−q−1 = b(2p−q−1)−(p−q) ⊕ b(2p−q−1)−p = b2p−q−1 .. . bq ⊕ b0 ⊕ 0 = bq ⊕ b0 = b p−(p−q) ⊕ b p−p = bp
(b2q−1 ⊕ bq−1 ), · · · , (bq ⊕ b0 ), 0, · · · , 0
Abbildung 4.4: Der Inhalt der Register x und y während der Ausführung der Operationen aus Satz 4.9.
Identifizieren wir wieder Zahlen x ∈ {0, . . . , 2 p − 1} mit ihrer Dualdarstellung x = (b p−1 , . . . , b0 )2 , so lautet die Aussage von Satz 4.9 für die von T G(p, q, p) erzeugten Folgen (xn )n≥0
4 Zufallsgeneratoren mit dem Modulus 2
34
xn+1 = Q ⊗ xnT ,
n ≥ 0.
c) Auf dieser Ebene lassen sich Aussagen über die Länge der Periode mit Mitteln der linearen Algebra gewinnen: Die Folge (xn )n≥1 nimmt ihre maximale Periode 2 p − 1 genau dann an, wenn für alle Startwerte x0 , alle n ∈ N0 und alle k < 2 p − 1 gilt xn+k = xn . Wegen xn+k = Qk ⊗ xnT ist dies genau dann der Fall, wenn die Matrix Q die Ordnung 2 p − 1 in der Gruppe der nicht-singulären (p × p)-Matrizen über Z2 hat (vgl. [MT85]).
4.3 Der Mersenne-Twister Ein besonders guter Zufallsgenerator für die diskrete Gleichverteilung U({0, . . . , 2l − 1}) ist der sogenannte Mersenne-Twister ([MT98]). Es handelt sich um einen rekursiven Algorithmus, der auf der Dualdarstellung x = (bl−1 , . . . , b0 )2 von Zahlen x ∈ {0, . . . , 2l − 1} operiert. Dabei werden eine Reihe unterschiedlicher, z. T. unkonventioneller Operationen verwendet. Der Name rührt daher, dass als Periodenlänge eine sogenannte Mersenne-Primzahl der Gestalt 2m − 1 auftritt. Eine zentrale Rolle spielt eine Art „Kreuzung“ (Crossover) der Dualdarstellung zweier Zahlen. Für x, y ∈ {0, . . . , 2l−1 } mit x = (bl−1 , . . . , b0 )2 und y = (cl−1 , . . . , c0 )2 sei Crossover(r, x, y) := z
mit z = (bl−1 , . . . , br , cr−1 , . . . , c0 )2 .
Das Ergebnis von Crossover(r, x, y) ist also diejenige Zahl z, deren obere l − r Bits aus x und deren untere r Bits aus y stammen. Ferner wird eine (l × l)-Matrix ⎞ ⎛ 0 1 0 ··· 0 ⎟ ⎜ ⎜ 0 0 1 ··· 0 ⎟ ⎟ ⎜ ⎟ ⎜ . . . . ⎜ .. .. .. 0 ⎟ A := ⎜ .. ⎟ ⎟ ⎜ ⎜ 0 0 0 ··· 1 ⎟ ⎠ ⎝ αl−1 αl−2 αl−3 · · · α0 für ein α = (αl−1 , . . . , α0 ) ∈ {0, 1}l benutzt. Mit „⊗“ bezeichnen wir wieder das Matrix-VektorProdukt im Z2 und schreiben einfach x ⊗ A für das Produkt des Vektors der Dualdarstellung von x ∈ {0, . . . , 2l − 1} mit der Matrix A. „⊕“ bezeichnet wieder das bitweise „XOR“. Mit diesen Vereinbarungen lässt sich der Kern des Algorithmus als ein Rekursionsschema der Ordnung k mit k Startwerten x0 , . . . , xk−1 ∈ {0, 1}l schreiben: xn = xn−m ⊕ Crossover(r, xn−k , xn−k+1 ) ⊗ A für n ≥ k, (4.3)
4.3 Der Mersenne-Twister
35
wobei sich in [MT98] die folgenden Parameter bewährt haben: l := 32,
k := 624,
m := 227,
r := 31,
α := 2567483615.
Es werden also k = 624 Speicherworte der Länge l = 32 als „Gedächtnis“ benutzt. Für diese Werte hat der Zufallsgenerator die phantastische Periodenlänge 2kl−r − 1 = 219937 − 1. Trotz der relativ komplizierten Definition in (4.3), lässt sich dieser Generator einfach implementieren. So gilt etwa für die Matrixmultiplikation, wie man leicht nachrechnet: (0, bl−1 , . . . , b1 ), falls b0 = 0 (bl−1 , . . . , b0 ) ⊗ A = (0, bl−1 , . . . , b1 ) ⊕ α, falls b0 = 1. Das niedrigste Bit b0 einer Zahl x ∈ {0, . . . , 2l − 1} kann durch die bitweise „UND“-Verknüpfung -Notation: . Daher kann x⊗A durch folgenden -Code von x mit 1 bestimmt werden, in berechnet werden: α
/ / (0, bl−1 , . . . , b1 ) / / (0, bl−1 , . . . , b1 ) ⊕ α
Die beiden Bestandteile von z = Crossover(1, x, y) können durch ein bitweises „UND“ mit zwei Masken bestimmt werden. Für r = 31 erhält man: // //
(100. . .00) (011. . .11)
Dabei werden die Konstanten zur Vereinfachung wieder hexadezimal (Präfix ) angegeben. Zur kompletten Implementierung benötigt man noch eine erweiterte Modulo-Funktion, die den Wert wie in Definition 2.4 auch für negative Argumente korrekt berechnet:
Enthält das Array vom Typ die vorangegangenen k Werte xn−k , . . . , xn−1 , so berechnet der folgende Code den nächsten Wert nach (4.3) in der Variablen :
// z =
(1, x[n − k], x[n − k + 1]) :
// y = z⊗A : α
4 Zufallsgeneratoren mit dem Modulus 2
36
Damit dieser Mechanismus in funktioniert, müssen das Array und die Laufvariable Variablen sein, deren Werte auch nach dem Aufruf der entsprechenden Funktion erhalten bleiben, vgl. die Anmerkungen zu Satz 3.9. Schließlich wird das Ergebnis von oben vor der Rückgabe als xn zur Verbesserung der Gleichverteilungseigenschaft noch etwas „gehärtet“ durch Multiplikation mit einer Matrix Q, die (ähnlich wie in Bemerkung 4.10) folgende, etwas unübersichtliche Operationen ausführt: y = y ⊕ RechtsShift(11, y) y = y ⊕ ( LinksShift(7, y) & 2636928640) y = y ⊕ ( RechtsShift(15, y) & 4022730752) xn
= y ⊕ RechtsShift(16, y).
Eine besonders elegante Implementierung findet sich in der Originalarbeit [MT98].
5 Weitere Zufallsgeneratoren In diesem Kapitel werden drei weitere Verfahren zur Erzeugung gleichverteilter Zufallszahlen vorgestellt: das Mischen von Generatoren, die inversen Kongruenzgeneratoren und eine Methode, die die Dualdarstellung von Zufallszahlen u ∈ (0, 1) direkt erzeugt.
5.1 Mischen von Generatoren Es erscheint intuitiv einleuchtend, dass „Zufälligkeit“ und „Unvorhersehbarkeit“ von rekursiv erzeugten Folgen größer werden, wenn zwei unabhängig arbeitende Algorithmen zusammenwirken, wenn sich der Zufall gewissermaßen aus zwei Quellen speist. Diese Idee soll jetzt genauer untersucht werden. Es seien dazu (xn )n∈N und (yn )n∈N zwei Folgen von Zufallszahlen in {0, 1, . . . , M − 1}, die unabhängig voneinander erzeugt worden sind. Dann ist die Mischung der beiden Folgen die Folge (zn )n≥0 mit (5.1) zn := (xn + yn ) MOD M, n ∈ N. ( j)
Allgemeiner seien Folgen von Zufallszahlen (xn )n≥0 mit Werten in {0, . . . , M j − 1} für j = 1, . . . , r gegeben. Dann stellt (1)
(r)
zn := (δ1 xn + · · · + δr xn ) MOD M1 für δ1 , . . . , δr ∈ Z eine Mischung der Folgen mit Werten in {0, . . . , M1 − 1} dar. Sind die Ausgangsfolgen mit linearen Kongruenzgeneratoren erzeugt, so können Aussagen über die Periodenlänge der Mischungsfolge (zn )n≥0 gemacht werden ([LT91]). a) In [L’E88] wird die folgende Kombination zweier linearer Kongruenzgeneratoren vorgeschlagen, Generator 2 wurde in Beispiel 3.8 e) eingeführt: (1)
xn+1 := 40014 · xn MOD 2147483563 (2)
xn+1 := 40692 · xn MOD 2147483399. Für die Kombination (1)
(2)
zn+1 = (xn+1 + xn+1 ) MOD 2147483563
(5.2)
ergibt sich eine Periodenlänge von etwa 2.3·1018 ([L’E88]). Die Operationen lassen sich nach Satz 3.10 ohne Überlauf implementieren, da die Multiplikatoren kleiner als die Wurzeln aus ihren Moduli sind. Darüberhinaus zeigt dieser Generator relativ gute Verteilungseigenschaften (s. u. Kapitel 6.4).
38
5 Weitere Zufallsgeneratoren
b) In [L’E99] wird ein noch besserer Generator mit dem Namen vorgeschlagen, der lineare Kongruenzgeneratoren der Ordnung 3 kombiniert. Die einzelnen Operationen lassen sich als floating-point-Operationen in „double precision“ auf einem 32-Bit-Rechner durchführen. xn+1 := (1403580 · xn−1 − 810728 · xn−2 ) MOD (232 − 209) yn+1 := (527612 · yn − 1370589 · yn−2 ) MOD (232 − 22853). Die Kombination zn := (xn − yn ) MOD (232 − 209)
(5.3)
2191
liefert eine Periodenlänge von etwa und hat hervorragende Eigenschaften in Bezug auf die Gleichverteilung der Werte, siehe unten Kapitel 6.4. In der Implementierung, die in [L’E99] angegeben wird, wird der (mögliche) Wert 0 auf M1 = 232 − 209 „umgebogen“ und der Rückgabewert un := zn /(M1 + 1) durch Normierung mit M1 + 1 = 232 − 208 berechnet. Durch diesen Trick wird erreicht, dass stets nur Zahlen aus dem offenen Intervall (0, 1) produziert werden. c) Der folgende Algorithmus benutzt eine etwas andere Art von Mischung, er stammt aus [Knu98] (Algorithmus M, S. 33). Es seien (xn )n≥0 , (yn )n≥0 Folgen von Zufallszahlen mit xn ∈ {0, . . . , M − 1} und yn ∈ {0, . . . , r − 1}, dabei sei M eine möglichst große Zahl. (xn )n≥0 und (yn )n≥0 können zum Beispiel mit linearen Kongruenzgeneratoren erzeugt werden. Die Mischung der beiden Folgen wird über ein Array V der Länge r vermittelt, das zu Beginn mit x0 , . . . , xr−1 gefüllt ist. Die (yn )n≥0 werden als Indizes für V interpretiert, zurückgegeben wird die Zufallszahl zn := V [yn ], danach wird V [yn ] durch xn+1 , die nächste Zahl aus dem Strom (xn )n≥0 ersetzt. Hier bestimmt (yn )n≥0 also die Reihenfolge, in der die Werte der Folge (xn )n≥0 verwendet werden. d) Folgende Modifikation von c) kommt mit nur einer Inputfolge aus: man setzt x z r n r , zn := V [yn ], yn+1 := r , y0 := M M (vgl. Algorithmus B in [Knu98], S.34). Der folgende Satz bestätigt die anfangs aufgestellte Vermutung, dass das Mischen zweier Generatoren die Qualität der Zufallszahlen tendenziell verbessert. Dazu verlassen wir zunächst die algorithmische Ebene und betrachten ein stochastisches Modell der Mischung aus (5.1). Der Satz vergleicht die Verteilung zweier Zufallsvariablen X,Y mit der Verteilung ihrer Verknüpfung, z. B. X + Y. Voraussetzung ist, dass X,Y Werte in einer endlichen Menge annehmen, auf der die Verknüpfung eine Gruppenoperation darstellt. Dies ist z. B. für ’+’ auf ZM erfüllt, siehe Beispiel 5.3 unten. Die Verteilung einer Zufallsvariablen P(X = i) = (PX )i , i ∈ G, wird als |G|-dimensionaler Vektor PX ∈ R|G| angesehen, die Gleichverteilung U(G) entspricht dann dem Vektor (1/|G|, . . . , 1/|G|).
5.1 Mischen von Generatoren
39
Es sei (G, ◦) eine endliche Gruppe. X,Y seien unabhängige Zufallsvariablen mit Werten in G. Dann gilt U(G) − PX◦Y ≤ min { U(G) − PX , U(G) − PY } für die Euklidische Norm · , d. h.
∑
i∈G
2 2 1 1 − P(X ◦Y = i) − P(X = i) , ≤ min ∑ |G| i∈G |G|
∑
i∈G
2 % 1 − P(Y = i) . |G|
Das Ergebnis einer Gruppenverknüpfung zweier Zufallsvariablen führt also zu einer Verteilung, die sich weniger von der Gleichverteilung U(G) auf G unterscheidet als die Ausgangsverteilungen. Der Beweis dieses Satzes (siehe [MO79], S. 383) benutzt das interessante Konzept der Majorisierung von Verteilungen, auf das wir hier aus Platzgründen leider nicht eingehen können.
a) Es sei (G, ◦) := (ZM , +) für ein M ∈ N. (Xn )n∈N und (Yn )n∈N seien zwei unabhängige Folgen von i.i.d. Zufallsvariablen mit Werten in G. Nach Satz 5.2 gilt für Zn := Xn ◦Yn = (Xn +Yn ) MOD M,
n ≥ 0,
dass die Verteilung von Zn „näher“ an U(G) liegt als die Verteilungen von Xn und Yn . b) (xn )n≥0 und (yn )n≥0 seien Folgen von Zufallszahlen mit Werten in G = ZM , die von Zufallsgeneratoren für U({0, . . . , M − 1}) erzeugt werden. Es sei zn := (xn + yn ) MOD M,
,n ≥ 0
die Mischung der beiden Folgen mit der Gruppenverknüpfung „+“. Die durch die Zufallszahlen (xn )n≥0 und (yn )n≥0 tatsächlich simulierte Verteilung, d. h. die tatsächlich auftretenden relativen Häufigkeiten werden möglicherweise etwas von der Gleichverteilung abweichen. Nehmen wir an, dass diese tatsächlichen Verteilungen die Verteilungen von Zufallsvariablen X bzw. Y seien. Dann entspricht die Verteilung der Mischungsfolge (zn )n≥0 der Zufallsvariablen Z := X + Y. Sind die beiden Ausgangsfolgen unabhängig voneinander gewonnen worden, so liegt die Verteilung von Z, die von (zn )n≥0 simuliert wird, eher näher an der Gleichverteilung U(ZM ) als die der Ausgangsfolgen. c) Überträgt man diese Argumentation auf endliche Teilstücke der Länge k x¯0 := (x0 , . . . , xk−1 ), x¯1 := (xk , . . . , x2k−1 ), . . . y¯0 := (y0 , . . . , yk−1 ), y¯1 := (yk , . . . , y2k−1 ), . . . und z¯0 := (z0 , . . . , zk−1 ), z¯1 := (zk , . . . , z2k−1 ), . . .
40
5 Weitere Zufallsgeneratoren
so gilt für die Folge (¯zn )n≥0 , dass sie eher der Gleichverteilung U(Gk ) auf der Gruppe ((ZM )k , +) (mit komponentenweisen Operationen ’+’ modulo M) entspricht als die Ausgangsfolgen. Es gilt hier aber U((ZM )k ) = U(ZM ) × · · · ×U(ZM ) d. h. die Komponenten der auf (ZM )k gleichverteilten Zufallsvariablen sind insbesondere unabhängig. Also sind auch alle Teilstücke der Folge (zn )n≥0 eher unabhängig als die Teilstücke der Ausgangsfolgen.
5.2 Inverse Kongruenzgeneratoren Als Alternative zu den linearen Kongruenzgeneratoren der Gestalt xn+1 = (axn + c) MOD M können inverse Kongruenzgeneratoren ([EL86]) benutzt werden, die Folgen (xn )n≥0 ganzer Zahlen nach dem folgenden Schema erzeugen xn+1 = (axn + c) MOD M,
(5.4)
dabei bezeichnet x¯ das zu x inverse Element bezüglich der Multiplikation modulo M, d. h. dasjenige Element x¯ aus ZM = {0, . . . , M − 1}, für das gilt: (xx) MOD M = 1. Für x ∈ ZM − {0} existiert die Inverse x¯ und ist eindeutig bestimmt, falls M und x teilerfremd sind (siehe [Aig75], S. 47), also z. B. falls M eine Primzahl ist oder falls M = 2β und x ungerade ist. Im ersten Falle ist der Restklassenring {0, . . . , M − 1} bekanntlich ein Körper, so dass die Gleichung xy = 1 für alle x ∈ ZM − {0} eine Lösung y hat. Dazu ein einfaches Beispiel.
Es sei M := 7, dann gilt: (1 · 1) MOD 7 = 1,
also 1 = 1
(2 · 4) MOD 7 = 1,
also 2 = 4
(3 · 5) MOD 7 = 1,
also 3 = 5
und entsprechend 4 = 2, 5 = 3 und 6 = 6. Durch geeignete Auswahl der Parameter kann ähnlich wie bei den linearen Kongruenzgeneratoren die maximale Periodenlänge M erzielt werden. So hat der Generator zumindest dann die Periodenlänge M, wenn M eine Primzahl und x2 − cx − a ein primitives Polynom über ZM ist. In [EH92] wird z. B. M = 231 − 1, a = 1, c = 1 vorgeschlagen, also xn+1 = (x¯n + 1) MOD (231 − 1).
5.2 Inverse Kongruenzgeneratoren
41
Algorithmisch lässt sich die Inverse x¯ mit einer Variante des bekannten Euklidischen Algorithmus (zur Berechnung des größten gemeinsamen Teilers) bestimmen. Dabei werden folgende Eigenschaften von ggT(u, v) für u, v ∈ N benutzt: ggT(u, v) = ggT(v, u),
(5.5)
ggT(u, v) = ggT(v, u MOD v) = ggT(v, u − nv) ∃ k, l ∈ Z
ggT(u, v) = ku + lv.
für alle n ∈ N mit nv ≤ u, (5.6) (5.7)
Der klassische Euklidische Algorithmus gibt zu Input-Werten u, v den ggT(u, v) zurück, er kann folgendermaßen formuliert werden: E UKLIDISCHER A LGORITHMUS
Nach dem ersten Durchlaufen der Schleife in Algorithmus 5.5 enthalten die Variablen und die Werte und , es wird (5.6) ausgenutzt. Dieser klassische Algorithmus kann erweitert werden zu einem Algorithmus, der zusätzlich die Größen k, l aus (5.7) berechnet (vgl. auch ∈ Z3 und einer [Knu98], Alg. X, S. 342). Der Algorithmus arbeitet mit drei Vektoren Variablen ∈ N0 . Input zu diesem Algorithmus sind wieder natürliche Zahlen und , zurück( ). gegeben wird der Vektor (y1 , y2 , y3 ) mit y1 · +y2 · = y3 =
1
2
3
1
2
3 3
3
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
·
1
2
3
3
Für u = 16, v = 7 durchlaufen die Variablen während der Ausführung des Algorithmus 5.6 die folgenden Werte
42
5 Weitere Zufallsgeneratoren
q
y1
y2
y3
z1
z2
z3
t1
t2
t3
1
0 16
0
1
7
2
0
1
7
1
−2
2
1
−2
2
3
1
−2
2
−3
7
1
−3
7
1
2
−3
7
1
7
−16
0
7
−16
0
Der Rückgabewert ist (−3, 7, 1), und es gilt −3 · 16 + 7 · 7 = 1 = ggT(16, 7). Sind M, x teilerfremd, gilt also ggT(M, x) = 1, so liefert der Algorithmus 5.6 mit Input und 3 := x also Werte 1 , 2 mit 1 ·M+ 2 ·x
Es gilt ferner |
2| < M
= ggT(M, x) = 1,
(
also
2 · x) MOD
3
:= M
M = 1.
(vgl. [Knu98], S. 43), daher folgt x =
2,
falls
2
>0
2 + M,
falls
2
<0
.
Im Beispiel 5.7 folgt so, dass 7 = 7 modulo 16. Für M = 8, x = 7 liefert der Algorithmus 2 = −1, daher gilt 7 = −1 + 8 = 7 modulo 8. Der worst-case Aufwand dieses Algorithmus wird in [Knu98] mit 4.8 log10 M + 1.7 angegeben. Für M = 232 ergibt sich ca. 48, d. h. pro Erzeugung einer Zufallszahl sind allein für die Bestimmung von x¯ im Mittel etwa 48 Schritte notwendig. Dieser Aufwand kann sich aber in besonders kritischen Anwendungen lohnen, da die inversen Kongruenzgeneratoren sehr gute Verteilungseigenschaften haben, siehe unten Kapitel 7.2.
5.3 Erzeugen von Zufallszahlen in Gleitkomma-Darstellung Fast alle bisher vorgestellten Zufallsgeneratoren arbeiten mit natürlichen Zahlen xn ∈ {0, . . . , M − 1}, die dann durch un := xn /M in Gleitkommazahlen aus [ 0, 1) umgewandelt werden. Dabei muss die Division durch M als Gleitkomma-Operation durchgeführt werden, was relativ aufwändig ist. Der entscheidende & Vorgehensweise ist jedoch, dass nur rationale Zahlen aus
Nachteil bei dieser erzeugt werden können. Selbst wenn man für M die größte der Menge S := 0, M1 , M2 , . . . , M−1 M auf dem Rechner darstellbare ganze Zahl wählt, umfasst die Menge S im Allgemeinen nicht alle darstellbaren Zahlen in [0, 1). Umgekehrt sind u. U. auch nicht alle un ∈ S auf dem Rechner exakt darstellbar, wie wir unten zeigen werden. Diese Probleme können umgangen werden, wenn man direkt eine Gleichverteilung auf der Menge R der auf dem Rechner darstellbaren Zahlen in [ 0, 1) simuliert. Dazu muss man die Maschinendarstellung dieser Zahlen mit einem Zufallsgenerator erzeugen.
5.3 Erzeugen von Zufallszahlen in Gleitkomma-Darstellung
43
Die Darstellung von Zahlen auf einem Rechner folgt heutzutage meist dem IEEE Standard 754-1985. Wir beschränken uns hier auf reelle Zahlen x ∈ [ 0, 1), die nach dieser Norm folgendermaßen in dualer Exponent-Mantisse-Schreibweise dargestellt werden: k
x = 2−e ∑ βi 2−i ,
(5.8)
i=0
in etwas laxer Schreibweise also x = β0 .β1 . . . βk · 2−e . Dabei ist „ . “ der „Dualpunkt“ (in Analogie zum „Dezimalpunkt“), β1 , . . . , βk ∈ {0, 1} bilden die duale Mantisse, β0 ∈ {0, 1} ist die Vorkommastelle und 1 ≤ e ≤ N − 1 ist der Exponent. Bei einer single-precision-Darstellung mit einem 32-Bit-Wort wird N := 127, k := 23 gesetzt, für double-precision-Darstellung mit 64-Bit-Wort gilt N := 1023, k := 53. Wir beschränken uns im folgenden auf „single precision“ Zahlen im Intervall [ 0, 1). Für die kleinsten Zahlen mit Exponent e = N − 1 kann β0 = 0 auftreten, diese Zahlen heißen denormalisiert, bei den normalisierten Zahlen gilt stets β0 = 1. Im Maschinenwort werden für normalisierte Zahlen nur der invertierte Exponent N − e und die Mantisse β1 . . . βk gespeichert, d. h. die Vorkommastelle β0 = 1 wird unterdrückt. Für denormalisierte Zahlen wird anstelle des tatsächlichen Exponenten eine 0 gespeichert. Genauer werden normalisierte Zahlen x ∈ [0, 1) dargestellt als: b31 b30
0
...
N −e
b23 b22 b21
β1 β2
...
...
b1
b0
β22 β23
wobei stets N − e ≥ 1 also 1 ≤ e ≤ N − 1 gilt. Für denormalisierte Zahlen gilt e = N − 1, β0 = 0, dies wird dargestellt durch: b31 b30
0 0
...
b23 b22 b21
··· 0
β1 β2
...
···
b1
b0
β22 β23
Wie man sich an obiger Darstellung klarmachen kann, umfasst die Menge R der darstellbaren Zahlen in [0, 1) genau N2k Werte, die wir aufsteigend sortiert mit r0 = 0, r1 , . . . , rN2k −1 bezeichnen, siehe Tabelle 5.1. Diese Zahlen sind nicht äquidistant, für r j = 2−e ∑ki=0 βi 2−i gilt : r j+1 − r j = 2−(e+k) . Daraus folgt u. a., dass wesentlich mehr darstellbare Zahlen nahe bei 0 liegen als nahe bei 1. In der Menge S = {0, M1 , . . . , M−1 M } der durch einen Kongruenzgenerator erzeugbaren Zahlen, haben alle Werte den festen Abstand 1/M, bei Modulus M = 232 also den Abstand 2−32 . Bei single-precision-Darstellung (d. h. k = 23) haben darstellbaren Zahlen r j ≤ 2−10 ≈ 0.00098 den Abstand: r j+1 − r j ≤ 2−(10+k) = 2−33 < 2−32 ,
44
5 Weitere Zufallsgeneratoren Name
Dezimalwert
r0
0
r1
2−126 2−k
=
Exponent
Mantisse
dekod.
binär
β0
β1 · · · βk
2−126
00 · · · 00
0
0 · · · 0000
2−149
2−126
00 · · · 00 .. . .. .
0
0 · · · 0001
.. . .. .
0
0 · · · 0010
r2
2−126 2−(k−1)
=
2−148
r3
2−126 (2−(k−1) + 2−k )
=
2−148 (1 + 1/2)
0
0 · · · 0011
r4 .. .
2−126 2−(k−2)
=
2−147 .. .
2−126 .. .
00 · · · 00 .. .
0 .. .
0 · · · 0100 .. .
2−126 (1 − 2−k )
=
2−126 (1 − 2−23 )
2−126
00 · · · 00
0
1 · · · 1111
2−126
=
2−126
2−126
00 · · · 01
1
0 · · · 0000
2−126 (1 + 2−k ) .. .
=
2−126 + 2−149 .. .
2−126 .. .
00 · · · 01 .. .
1 .. .
0 · · · 0001 .. .
2−126 (1 + 1 − 2−k )
=
2−125 − 2−149
2−126
00 · · · 01
1
1 · · · 1111
=
2−125
2−125
00 · · · 10
1
0 · · · 0000
=
2−125 + 2−148
2−125 .. .
00 · · · 10 .. .
1 .. .
0 · · · 0001 .. .
2−124 − 2−148
2−125
00 · · · 10
1
1 · · · 1111
r2k −1 r2k r2k +1 .. . r2k+1 −1 r2k+1
.. .
2−125
r2k+1 +1 .. .
2−125 (1 + 2−k )
r2k+2 −1
2−125 (1 + 1 − 2−k )
.. .
.. . =
.. .
.. .
.. .
2−124
00 · · · 11
1
.. .
.. .
.. .
.. .
.. .
.. .
.. .
.. .
.. .
.. .
.. .
2−2
01 · · · 01
1
.. .
=
1/2
2−1
01 · · · 10
1
0 · · · 0000
=
1/2 + 2−24
2−1 .. .
01 · · · 10 .. .
1 .. .
0 · · · 0001 .. .
2−1
01 · · · 10
1
1 · · · 1111
r126·2k r126·2k +1 .. . rN2k −1
2−1 2−1 (1 + 2−k
.. .
.. . 2−1 (1 + 1 − 2−k )
=
1 − 2−24
Tabelle 5.1: Die darstellbaren Zahlen in [ 0, 1). Die denormalisierten haben in der Spalte „Exponent“ eine 0, die normalisierten Werte zwischen 1 und 126.
d. h. nur noch ein Bruchteil der darstellbaren Zahlen ≤ 0.00098 wird von Zufallsgeneratoren mit un = xMn erzeugt. Umgekehrt gilt für r j ≥ 2−8 ≈ 0.0039, dass hier die darstellbaren Zahlen einen Abstand r j+1 − r j = 2−(e+k) ≥ 2−(8+k) = 2−31
5.3 Erzeugen von Zufallszahlen in Gleitkomma-Darstellung
45
haben, d. h. Zahlen u ∈ S mit u ≥ 0.004 sind auf dem Rechner bei single precision nur näherungsweise darstellbar! Bei double-precision-Darstellung (mit k = 53) gilt stets r j+1 − r j ≤ 2−(1+53) = 2−54 , d. h. S umfasst einen noch kleineren Bruchteil aller darstellbaren Zahlen, allerdings sind alle Zahlen aus S jetzt exakt darstellbar. Es erscheint daher naheliegend, eine Gleichverteilung auf R anstelle von S zu simulieren, indem man die Gleitkommadarstellung der Zahlen r ∈ R direkt von einem Zufallsgenerator erzeugen lässt. Dazu muss man sich zunächst darüber klar werden, welche Verteilung die Bits in der Darstellung aus (5.8) haben müssen, damit die von ihnen gebildeten Zahlen gleichverteilt auf R sind. Eine Antwort gibt der folgende Satz. Es sei E eine Zufallsvariable mit Werte in {1, . . . , N} und der Verteilung 2−m für 1 ≤ m ≤ N − 1 P(E = m) = . −(N−1) für m = N 2 B1 , . . . , Bk seien i.i.d. U({0, 1})-verteilt und unabhängig von E. Weitere Zufallsvariablen B0 und E ∗ seien definiert durch 1, falls E < N E, falls E < N und E ∗ := . B0 := 1[E
∗
k
∑ Bi 2−i .
i=0
Dann gilt: X nimmt Werte an in R = {r0 , . . . , rN2k −1 } und für die Verteilungsfunktion von X gilt: r j+1 , falls 0 ≤ j < N2k − 1 P(X ≤ r j ) = für 0 ≤ j ≤ N2k − 1. 1, falls j = N2k − 1 Die Verteilungsfunktion von X stellt damit die beste auf dem Rechner darstellbare Näherung an die Verteilungsfunktion F(t) = t, t ∈ [0, 1] von U(0, 1) dar. In Abb. 5.1 ist ein vereinfachtes Beispiel mit k = 3 im Bereich [0, 2−7 ] angedeutet. Die Sprungstellen der Verteilungsfunktion von X wie im Satz 5.8 sind mit schwarzen Punkten markiert. Die Kreise gehören zu einer Gleichverteilung auf {0, 1/M, . . . , (M − 1)/M} mit M = 210 . Die um 1 verschobene Zufallsvariable E − 1 aus Satz 5.8 besitzt eine bei N − 1 „abgeschnittene“ geometrische Verteilung. Unter den Voraussetzungen des Satzes gilt ja ⎧ 1 1 m f¨ur 0 ≤ m ≤ N − 2 ⎨ 2 2 N−2 m , P(E − 1 = m) = ⎩ 2−(N−1) = 1 − ∑ 12 12 f¨ur m = N − 1 m=0
46
5 Weitere Zufallsgeneratoren
2−10
2−9
2−7
2−8
Abbildung 5.1: Die Verteilungsfunktion von X approximiert die Winkelhalbierende besser als die durch Kreise angedeutet Verteilungsfunktion auf äquidistanten Punkten.
d. h. E − 1 stimmt auf {0, . . . , N − 2} mit einer Zufallsvariablen Y überein, die eine geometrische Verteilung mit Parameter p = 1/2 hat. Der „Rest“ P(Y ≥ N − 1) = 2−(N−1) wird auf den letzten Wert N − 1 gelegt. Die Zufallsvariable E bestimmt (durch die Entscheidung E < N bzw. E = N), ob eine normalisierte oder denormalisierte Darstellung gebildet wird. Im denormalisierten Fall wird der Exponent E ∗ = N − 1 und B0 = 0 gesetzt, im normalisierten gilt E ∗ = E und B0 = 1. Beweis: (zu Satz 5.8) 1. Wegen B0 = 1 für E ≤ N − 1 und B0 = 0 für E = N folgt mit dem Satz von der totalen Wahrscheinlichkeit (Anhang A.9) P(X ≤ r j ) =
N−1
∑ P(X ≤ r j | E = m) · P(E = m) + P(X ≤ r j | E = N) · P(E = N)
m=1
=
N−1 m=1
k 2−E 1 + ∑ Bi 2−i ≤ r j E = m · P(E = m)
∑P
i=1
k + P 2−(N−1) ∑ Bi 2−i ≤ r j E = N · P(E = N)
i=1
=
N−1
∑
m=1
k P 2−m 1 + ∑ Bi 2−i ≤ r j · P(E = m)
i=1
−(N−1)
+P 2
k
∑ Bi 2−i ≤ r j
i=1
· P(E = N) .
(5.9)
5.3 Erzeugen von Zufallszahlen in Gleitkomma-Darstellung
47 k
2. Für den ersten Term in der Summe (5.9) gilt für m ≤ N − 1, r j = 2−e ∑ βi 2−i i=0
k k P 2−m 1 + ∑ Bi 2−i ≤ 2−e ∑ βi 2−i i=1
i=0
⎧ 0, falls m < e ⎪ ⎪ ⎪ k k ⎪ ⎪ −i −i ⎪ falls m = e, r j normalisiert ⎨ P ∑ Bi 2 ≤ ∑ βi 2 , i=1 = i=1 k k ⎪ ⎪ P 2−(N−1) (1 + ∑ Bi 2−i ) ≤ 2−(N−1) ∑ βi 2−i , falls m = e = N − 1, r j denorm. ⎪ ⎪ ⎪ i=1 i=1 ⎪ ⎩ 1, falls m > e ⎧ 0, falls m < e oder (m = e = N − 1, r j denormalisiert) ⎪ ⎪ ⎨ k k = P ∑ Bi 2−i ≤ ∑ βi 2−i , falls m = e, r j normalisiert ⎪ i=1 i=1 ⎪ ⎩ 1, falls m > e. 3. (B1 , . . . , Bk ) ist U({0, 1}k ) verteilt, daher folgt in 2. weiter P
k
∑ Bi 2
−i
i=1
k
≤ ∑ βi 2
−i
k ' ( k k 1 = · (c1 , . . . , ck ) ∈ {0, 1}k | ∑ ci 2−i ≤ ∑ βi 2−i 2 i=1 i=1 k k = 2−k ∑ βi 2k−i + 1 = ∑ βi 2−i + 2−k ,
i=1
i=1
i=1
da für (c1 , . . . , ck ) ∈ {0, 1}k gilt k
k
i=1
i=1
∑ ci 2−i ≤ ∑ βi 2−i
⇔ ⇔
k
k
i=1
i=1
∑ ci 2k−i ≤ ∑ βi 2k−i k
(c1 , . . . , ck ) ist Dual-Darstellung einer ganzen Zahl ≤ ∑ βi 2k−i . i=1
4. Für den letzten Term in (5.9) folgt mit 3. (da B0 = 0) k k P 2−(N−1) ∑ Bi 2−i ≤ 2−e ∑ βi 2−i i=1
i=0
⎧ k k ⎨ −i −i P ∑ Bi 2 ≤ ∑ βi 2 , falls e = N − 1 und r j denormalisiert = i=1 i=1 ⎩ 1 sonst ⎧ k ⎨ ∑ βi 2−i + 2−k , falls e = N − 1 und r j denormalisiert = i=1 ⎩ 1 sonst.
48
5 Weitere Zufallsgeneratoren k
Daher folgt für normalisiertes r j = 2−e ∑ βi 2−i aus (5.9) und 3. i=0
P(X ≤ r j ) =
k
∑ βi 2−i + 2−k
· P(E = e) +
i=1
=
k
∑ βi 2−i + 2−k
N−1
∑
P(E = m) + P(E = N)
m=e+1
· P(E = e) + P(E > e)
i=1
k
k
= 2−e ∑ βi 2−i + 2−k 2−e + 2−e = 2−e ∑ βi 2−i + 2−k 2−e i=1
= r j + 2−(k+e) =
i=0
r j+1
falls j < N2k − 1
1
falls j = N2k − 1
,
da P(E > e) = 1 − ∑em=1 P(E = m) = 1 − (1 − 2−e ) = 2−e . 5. Aus (5.9) und 4. folgt ebenso für denormalisiertes r j P(X ≤ r j ) =
k
∑ βi 2−i + 2−k
i=1
= rj +2
−(N+k−1)
k
2−(N−1) = 2−(N−1) ∑ βi 2−i + 2−(N+k−1) i=1
= r j+1 .
Kann man also Mantisse und Exponent mit Verteilungen wie in Satz 5.8 simulieren, so liefert X aus Satz 5.8 einen Zufallsgenerator für U(R). Der folgende Satz zeigt, wie die Verteilung der Zufallsvariablen E simuliert werden kann.
Es sei D1 , D2 , . . . , DN−1 eine i.i.d. Folge von U({0, 1})–verteilten Zufallsvariablen, und E := min {i | Di = 0} mit min 0/ := N (d. h. für D1 = . . . = DN−1 = 1 wird E := N gesetzt). Dann gilt: a) Das so definierte E hat die Verteilung wie in Satz 5.8. b) E hat den Erwartungswert 2 − 2−(N−1) .
Beweis: a) Für 1 ≤ m < N gilt offensichtlich P(E = m) = P(D1 = · · · = Dm−1 = 0, Dm = 1) = 2−m und P(E = N) = P(D1 = · · · = DN−1 = 0) = 2−(N−1) . −m + N · 2−(N−1) = 2 − 2−(N−1) . b) Für den Erwartungswert berechnet man E E = ∑N−1 m=1 m · 2
5.3 Erzeugen von Zufallszahlen in Gleitkomma-Darstellung
49
Zur Implementierung eines U(0, 1)−Generators nach dem Konzept von Satz 5.8 benötigt man also zwei unabhängige Zufallsgeneratoren für U({0, 1}). Aus dem einen Strom von Zufallsbits (βn )n≥0 erzeugt man die Mantisse β1 , . . . , β23 . In dem anderen Strom (dn )n≥0 zählt man die Anzahl e der Aufrufe bis zum ersten Auftreten einer „0“ unter den nächsten N − 1 = 126 Bits. 23
x = 2−e 1 + ∑ βi 2−i
ist dann die erzeugte normalisierte Zahl in single-precision-Darstellung.
i=1
23
Gilt d1 = . . . = d126 = 1 , so erhält man die denormalisierte Zahl x = 2−126 ∑ βi 2−i . Satz 5.10 b) i=1
besagt, dass man im Mittel knapp zwei Bits zur Bestimmung des Exponenten benötigt. Für eine praktische Implementierung kann man Schieberegister-Generatoren BSR(p, q) etwa mit q = 13, p = 31 (für single-precision-Darstellung) bzw. q = 63, p = 127 für double-precisionDarstellung benutzen (vgl. Tabelle 4.1). Günstig ist dafür die beschleunigte Version aus Satz 4.9, mit der alle Bits der Mantisse in wenigen Schritten erzeugt werden können. Die Bits für den Exponenten können aus einem weiteren Schieberegister-Generator bezogen werden, vgl. auch [Kol92].
6 Analytische Gütekriterien Zufallsgeneratoren für die Gleichverteilung, wie sie in den vorangegangenen Kapiteln vorgestellt wurden, bilden die „Quelle“ für alle Zufälligkeit, die bei der Simulation eingesetzt wird. Die Qualität dieser Generatoren ist daher eine entscheidende Voraussetzung für die Qualität der Resultate, die mit Simulation erzielt werden können. Bislang haben wir nur ein Gütekriterium, die Periodenlänge, berücksichtigt. Periodenlänge ist in der Tat ein sehr wichtiges, aber natürlich nicht das einzige Kriterium, nach dem Zufallsgeneratoren beurteilt werden müssen.
6.1 Kriterien zur Beurteilung von Zufallsgeneratoren Die Güte eines Zufallsgenerators misst sich daran, wie gut er das gestellte Ziel erreicht. Unser Ziel bei der Konstruktion von Zufallsgeneratoren ist es, ein auf einem Rechner ablauffähiges Zufallsexperiment zu erhalten, das möglichst gut beschrieben wird durch das folgende mathematische Modell: eine Folge von unabhängigen, identisch verteilten Zufallsvariablen (Xn )n≥0 mit der Gleichverteilung U(0, 1) ( oder U({0, ..., M − 1}).
(6.1)
Die Übereinstimmung zwischen Modell und Zufallsexperiment bedeutet hier eine gute Annäherung der im Modell berechenbaren Wahrscheinlichkeiten durch die im Zufallsexperiment beobachtbaren relativen Häufigkeiten. Dazu muss man die Eigenschaft (6.1) so formulieren, dass sie überprüfbar wird. Zunächst bedeutet (6.1) ja, dass die gemeinsame Verteilung von X0 , . . . , Xd−1 für alle d ≥ 1 mit der Gleichverteilung auf [0, 1]d übereinstimmen soll. Der folgende Satz zeigt, dass man sich bei der Überprüfung dieser Übereinstimmung auf einfach Mengen beschränken kann, den (rein wahrscheinlichkeitstheoretischen) Beweis übergehen wir. a) Es sei (Xn )n≥0 eine Folge von Zufallsvariablen mit Werten in [0, 1]. (Xn )n≥0 ist i.i.d. mit Verteilung U(0, 1), falls für alle d ∈ N und alle 0 ≤ ai ≤ bi ≤ 1, i = 0, . . . , d − 1, gilt P (ai < Xi ≤ bi , i = 0, . . . , d − 1) =
d−1
∏ (bi − ai ) . i=0
Es genügt also, die Verteilung auf Rechtecken (a0 , b0 ] × · · · × (ad−1 , bd−1 ] zu untersuchen. b) Es sei (Xn )n≥0 eine Folge von Zufallsvariablen mit Werten in ZM = {0, . . . , M − 1} für ein M ∈ N. (Xn )n≥0 ist i.i.d. U({0, . . . , M − 1})-verteilt, falls für alle d ∈ N und für alle t0 , . . . ,td−1 ∈ ZM gilt P (X0 = t0 , . . . , Xd−1 = td−1 ) = M −d .
52
6 Analytische Gütekriterien
Es gibt unterschiedliche Herangehensweisen bei der Umsetzung von Satz 6.1. Bei der empirischen Untersuchung werden relative Häufigkeiten von Ereignissen bei der Beobachtung von Zufallszahlen auf ihre Verträglichkeit mit dem mathematischen Modell (d. h. Satz 6.1) hin überprüft. Dies kann zum einen eher subjektiv durch Inspektion der Ergebnisse etwa anhand graphischer Darstellungen geschehen, andererseits aber auch objektiv mit Hilfe statistischer Methoden. Bei der analytischen Untersuchung versucht man, mit mathematisch-analytischen Methoden nachzuweisen, dass der Algorithmus des Zufallsgenerators Eigenschaften wie in Satz 6.1 besitzt. Beide Ansätze stoßen auf Schwierigkeiten prinzipieller Art. Bei empirischen Untersuchungen kann man von den unendlich vielen Bedingungen („ für alle d ∈ N“ in Satz 6.1) immer nur endlich viele überprüfen. Bei einer Periodenlänge L ist es auch nicht sinnvoll, die relativen Häufigkeiten von (a0 , b0 ] × · · · × (ad−1 , bd−1 ] für d > L zu untersuchen, da ja von d = L an bei dem Generator eine vollständige Wiederholung des Geschehens stattfindet. Statt „für alle d ∈ N“ muss man sich also zunächst auf „für alle d < L“ beschränken. Eine weitere Einschränkung entsteht bei der Bestimmung der relativen Häufigkeiten. Dazu muss das Zufallsexperiment m-mal wiederholt werden, etwa mit den Ergebnissen x˜0 , . . . , x˜m−1 . Für eine Menge A wird durch 1 m−1 Hm (A) := ∑ 1A (x˜i ) m i=0 die relative Häufigkeit von A in der Beobachtungsfolge ermittelt. Die Wiederholung der Experimente soll dabei unabhängig und unter unveränderten Bedingungen stattfinden, dann strebt die relative Häufigkeit gegen einen festen Wert, den wir als empirisches Gegenstück zur Wahrscheinlichkeit für das Auftreten von A ansehen. Die in Satz 6.1 benutzten Ereignisse haben die Gestalt A = (a0 , b0 ] × · · · × (ad−1 , bd−1 ]. Das erste durchzuführende Einzel-Experiment besteht also in der Beobachtung von d Zufallszahlen (x0 , . . . , xd−1 ) =: x˜0 , die durch d-faches Aufrufen des Zufallsgenerators gewonnen werden. Eine Wiederholung dieses Experiments muss d neue Zufallszahlen liefern. Eine naive Wiederholung der Generatoraufrufe mit identischen Startwerten liefert dieselben Werte, ist also keine „unabhängige“ Wiederholung. Eine Änderung der Startwerte kann bei einigen Generatoren zu drastisch verändertem Verhalten führen, dies ist dann keine Wiederholung „unter unveränderten Bedingungen“. Der naheliegende Ausweg besteht darin, die nächsten d Zufallswerte x˜1 := (xd , . . . , x2d−1 ) als Ergebnis einer Wiederholung des Experiments anzusehen. Dabei ist aber zu beachten, dass eine funktionale Abhängigkeit zwischen x˜i und x˜i+1 besteht. Will man die Beobachtungen trotzdem als (näherungsweise) unabhängig ansehen, so setzt man u. U. einen Teil der nachzuweisenden Eigenschaften schon voraus, und zwar, dass sich die Unabhängigkeit von (X0 , ..., Xd−1 ), (Xd , ..., X2d−1 ) aus dem mathematischen Modell auf die Zufallszahlen überträgt. Außerdem sind bei einer Periodenlänge L maximal Ld Wiederholungen des Experiments möglich, sinnvollerweise sollte d, die Dimension des zu untersuchenden Ereignisses also wesentlich kleiner als die Periodenlängen L sein. Für die analytische Untersuchung stellt die unendliche Anzahl der Bedingungen aus der Satz 6.1 kein prinzipielles Hindernis dar. Es kann aber letztlich keinen Beweis dafür geben, dass eine deterministische Folge von funktional abhängigen Werten, wie sie ein Zufallsgenerator der hier betrachteten Art liefert, „i.i.d.“ im vollen Sinne der Definition ist.
6.2 d-gleichverteilte Folgen
53
Die Eigenschaften aus Satz 6.1 sind also offensichtlich zu stark, um eine direkte Entsprechung im Zufallsexperiment „Beobachtung der Zufallszahlen“ zu finden. Man benutzt daher schwächere Eigenschaften von (Xn )n≥0 , die aus der Eigenschaft „i.i.d.“ folgen und auf die hin die Zufallszahlen untersucht werden können. Es sind so im Laufe der Jahre eine Reihe von Kriterien entstanden, die von guten Generatoren eingehalten werden sollten. Keines dieser Kriterien ist aber hinreichend in dem Sinne, dass es abschließend „gute“ von „schlechten“ Generatoren trennt. Insbesondere sind die Kriterien, die auf statistischen Signifikanztests basieren (s. u. Kapitel 7.2), streng genommen nur Instrumente zum Aussondern schlechter Generatoren, sie können die Qualität eines Generators nicht bestätigen. Ein Zufallsgenerator wird daher als „gut“ angesehen, wenn er eine Reihe von schwierigen Tests besteht, bei der viele andere Generatoren scheitern. Zunächst betrachten wir einige spezielle Kriterien, also aus Satz 6.1 abgeleitete Eigenschaften, die analytisch behandelt werden können, d. h. deren Einhaltung bei manchen Generatoren aus der Struktur des Generator-Algorithmus abgeleitet werden kann. Z. T. können diese Kriterien auch empirisch (graphisch) überprüft werden, wie wir an einigen Beispielen zeigen. Im nächsten Kapitel werden dann Gütekriterien vorgestellt, die mit statistischen Tests überprüft werden.
6.2 d-gleichverteilte Folgen Um festzustellen, ob eine Zahlenfolge (xn )n≥0 Satz 6.1 näherungsweise erfüllt, werden, wie oben ausgeführt, im wesentlichen relative Häufigkeiten von Teilstücken der Länge d von (xn )n≥0 überprüft. Für eine unabhängige Wiederholung der Beobachtungen ist es naheliegend, die Teilstücke disjunkt zu wählen. Der folgende Satz zeigt, dass auch überlappende Teilstücke benutzt werden können. Das i-te Teilstück hat ganz allgemein die Form x˜i := (xik , xik+1 , . . . , xik+d−1 ),
i = 0, 1, . . .
dabei sind die x˜i überlappend für 1 ≤ k ≤ d − 1, disjunkt und lückenlos für k = d und disjunkt und „gespreizt“ für k > d. Der folgende Satz zeigt, dass im mathematischen Modell, d. h. bei entsprechenden Teilstücken von i.i.d. Zufallsvariablen, die relativen Häufigkeiten immer demselben Wert zustreben, unabhängig davon, ob die Teilstücke überlappend sind oder nicht. Dies ist die theoretische Rechtfertigung dafür, dass entsprechendes in einer „guten“ Zufallszahlenfolge gelten sollte.
Es sei (Xn )n≥0 eine i.i.d. Folge von Zufallsvariablen mit Werten in R. Dann gilt für alle d, k ∈ N und alle ai ≤ bi , i = 0, . . . , d − 1, mit A := (a0 , b0 ] × · · · × (ad−1 , bd−1 ] 1 n−1 ∑ 1A (Xik , . . . , Xik+d−1 ) = n→∞ n i=0 lim
d−1
∏ P (X0 ∈ (ai , bi ]) i=0
(P-f.s.).
54
6 Analytische Gütekriterien
Beweis: Es sei X˜i := (Xik , Xik+1 , . . . , Xik+d−1 ) für i ∈ N. 1. Für k ≥ d sind die Teilfolgen nicht-überlappend und die (X˜i )i≥0 sind dann i.i.d.. Die Aussage folgt in diesem Falle aus dem starken Gesetz der großen Zahlen (siehe Anhang A.22). 2. Für k < d sind X˜i , X˜i+1 nicht unabhängig. Es gilt aber: Die Folge (X˜i )i∈N0 bildet einen strikt stationären Prozess, d. h. für l ∈ N hängt die Verteilung von (X˜i , X˜i+1 , . . . , X˜i+l ) nicht von i ab. Dies folgt sofort, da (X˜i , . . . , X˜i+l ) von den i.i.d. Zufallsvariablen (Xi , Xi+1 , . . . , Xi+l , Xi+l+1 , . . . , Xi+l+d−1 ) gebildet werden, deren gemeinsame Verteilung nicht von i abhängt. Dann bildet auch Yi := 1A (X˜i ), i ≥ 0, einen strikt stationärer Prozess mit endlichem (nicht von i abhängigen) Erwartungswert EY0 =
d−1
∏ P (X0 ∈ (ai , bi ]) . i=0
Nach dem starken Ergodensatz ist dies auch das asymptotische arithmetische Mittel der Yi (vgl. [KT75] S. 483 ff, Ergodizitätskriterium S. 489). Dies ergibt die Behauptung. Für Zufallszahlen (un )n≥0 aus [0, 1] kann man die Anforderung aus Satz 6.1 bzw. Satz 6.2 direkt umsetzen, indem man die relative Häufigkeit, mit der Werte (uik , . . . , uik+d−1 ) in ein Rechteck A ⊂ [0, 1]d fallen, vergleicht mit der Wahrscheinlichkeit des Rechtecks unter der d-dimensionalen Gleichverteilung. Das Supremum der Abweichungen über alle Rechtecke heißt die Diskrepanz des Zufallsgenerators. Die Diskrepanz lässt sich z. B. für die inversen Kongruenzgeneratoren aus Kapitel 5.2 abschätzen, im Allgemeinen ist dies jedoch sehr aufwändig. Für ganzzahlige Folgen (xn )n≥0 aus {0, . . . , M − 1} stellt das folgende Kriterium eine relativ direkte Umsetzung von Satz 6.1 und Satz 6.2 dar. Es wird hier für periodische Folgen formuliert.
Es sei (xn )n≥0 eine periodische Folge von Zahlen in ZM = {0, . . . , M − 1} mit Periodenlänge L und es sei d ∈ N mit d < L. a) Die Folge (xn )n≥0 heißt d-gleichverteilt, falls die relative Häufigkeit 1 L−1 ∑ 1{(t0 ,...,td−1 )} (xi , xi+1 , . . . , xi+d−1 ), L i=1 mit der (t0 , . . . ,td−1 ) in der Folge der xn auftaucht, für alle (t0 , . . . ,td−1 ) ∈ ZdM gleich ist. Dabei kann der Wert (t0 , . . . ,td−1 ) = (0, . . . , 0) ausgenommen werden. b) Für m ∈ N bezeichne βm (x) ∈ {0, 1}m die oberen (höchstwertigen) m Bits der Dualdarstellung von x ∈ Zm . Bei Wortlänge l und x = (bl−1 , . . . , b0 )2 gilt also βm (x) = (bl−1 , . . . , bl−m ). Die Folge (xn )n≥0 heißt d-gleichverteilt mit m bit Genauigkeit, falls die Folge (βm (xi ))i≥0 d-gleichverteilt ist, d. h. falls die relative Häufigkeit 1 L−1 ∑ 1{(b0 ,...,bmd−1 )} (βm (xi ), βm (xi+1 ), . . . , βm (xi+d−1 )), L i=1
6.2 d-gleichverteilte Folgen
55
mit der (b0 , . . . , bmd−1 ) als oberste (aneinandergereihte) Bits in der Folge der (xi , xi+1 , . . . , xi+d−1 ), i ≥ 0, auftauchen, für alle (b0 , . . . , bmd−1 ) ∈ {0, 1}md gleich ist. Dabei kann wieder (b0 , . . . , bmd−1 ) = (0, . . . , 0) ausgenommen werden.
Damit jede der möglichen Zahlenfolgen (t0 , . . . ,td−1 ) ∈ ZdM in Definition 6.3 a) während eines Periodendurchlaufs gleichhäufig auftreten kann, muss offensichtlich die Periodenlänge L ein Vielfaches von M d sein, etwa L = k · M d . Dann ist die absolute Häufigkeit für ein (t0 , . . . ,td−1 ) ∈ ZdM in einer d-gleichverteilten Folge genau L/M d = k und die relative Häufigkeit ist M −d . Entsprechend muss im Falle von 6.3 b) die Periodenlänge L ein Vielfaches von 2md sein. Zur Veranschaulichung dieser Begriffe betrachten wir den Fall d = 2, dann lassen sich die Paare (xi , xi+1 ) als Punkte in der Menge Z2M = {0, . . . , M − 1}2 vorstellen, vgl. Abbildung 6.1 auf Seite 56. Eine Folge ist 2-gleichverteilt, wenn alle Punkte in Z2M beim Durchlaufen der Periode gleichhäufig auftreten. Untersucht man m bit Genauigkeit bei einer Wortlänge l, so kann man sich den Bereich {0, 1, . . . , 2l − 1} der darstellbaren Zahlen in 2m gleichgroße Teilintervalle I0 , . . . , I2m −1 zerlegt vorstellen. In das k-te Teilintervall Ik fallen genau die Werte, deren oberste m Bits den Dezimalwert k ergeben, k = 0, . . . , 2m − 1. Diese Zahlen unterscheiden sich nur durch ihre unteren l − m Bits, daher enthält jedes Intervall genau 2m−l Zahlen. Überträgt man diese Zerlegung auf die beiden Koordinatenachsen von {0, . . . , 2l − 1}2 , so erhält man eine Zerlegung in 22m Quadrate Ik × Ik für k, k = 0, . . . , 2m wie in Abbildung 6.1 angedeutet. 2-gleichverteilt mit m bit Genauigkeit heißt dann, dass jedes dieser Quadrate während eines Periodendurchlaufs gleichhäufig besucht wird. Aus der Darstellung in Abbildung 6.1 sieht man auch, dass dieser Begriff nur sinnvoll ist, wenn M durch 2l−m teilbar ist, so dass Z2M durch eine Teilmenge der Quadrate zerlegt wird. Andernfalls gäbe es am Rand von Z2M „angeschnittene“ Quadrate, die nicht ganz zu Z2M gehören und die nicht genauso häufig besucht werden können wie innere Quadrate. Die Betrachtung von m bit Genauigkeit bedeutet eine Vergröberung gegenüber der Definition 6.3 a). Für m = l =Wortlänge schrumpfen die Quadrate zu Punkten zusammen, die beiden Begriffe aus Definition 6.3 a) und b) fallen dann zusammen. Diese Veranschaulichung lässt sich auch auf die Punkte (ui , ui+1 ) in [0, 1]2 mit ui := xi /M übetragen. Ist M durch 2l−m teilbar, also etwa M = k2l−m , so zerlegt man [0, 1]2 in k gleichgroße Quadrate. Bei 2-Gleichverteiltheit mit m bit Genauigkeit werden dann alle Quadrate gleichhäufig besucht. Der analytische Nachweis dieser Eigenschaften gelingt meist nur bei solchen Zufallsgeneratoren, die explizit die Bits der Zahldarstellungen bearbeiten. Für den Tausworthe-Generator (vgl. Definition 4.4) ist so die d-Gleichverteiltheit für moderate Werte von d nachweisbar.
Es sei T G(p, q, l) ein Tausworthe-Generator mit maximaler Periodenlänge 2 p − 1 und Wortlänge l ≤ p. Für die erzeugte Folge von Zufallszahlen (xn )n≥0 gilt dann: (xn )n≥0 ist d-gleichverteilt für alle d ≤ pl .
56
6 Analytische Gütekriterien
2l − 1 I7 I6
M−1 I5 I4 (xi , xi+1 )
I3 I2 I1 I0 I0
I1
I2
I3
I4
I5
I6
M−1
I7
2l − 1
Abbildung 6.1: Für m = 3 bit Genauigkeit wird {0, . . . , 2l − 1} in 23 = 8 Intervalle eingeteilt. Die obersten drei Bits jeder ganzen Zahl xi entscheiden, in welches Quadrat die Punkte (xi , xi+1 ) fallen.
Beweis: 1. (bm )m≥0 sei die mit dem Schieberegister-Generator BSR(p, q) (vgl. Definition 4.1) erzeugte Bitfolge mit bm = bm−p ⊕ bm−(p−q) und Startwerten b0 , ..., b p−1 . Dann hat die von T G(p, q, l) erzeugte Zufallszahl xi die Dualdarstellung xi = bil , bil+1 , . . . , b(i+1)l−1 2 . 2. Das Teilstück (xi , xi+1 , ..., xi+d−1 ) von erzeugten Zufallszahlen wird also gebildet aus den Bitfolgen bil , . . . , b(i+1)l−1 b(i+1)l , . . . , b(i+2)l−1 ... b(i+d−1)l , . . . , b(i+d)l−1 , die disjunkt sind und zur lückenlosen Folge b¯ i := (bil , ..., b(i+d)l−1 ) ∈ {0, 1}dl der Länge dl zusammengezogen werden können. Für die d-Gleichverteiltheit ist zu zeigen, dass jeder der 2dl − 1 Werte für b¯ i aus {0, 1}dl − {(0, . . . , 0)} in einem Periodendurchlauf gleichhäufig vorkommt. 3. Wegen d ≤ pl folgt dl ≤ p, die Bitfolge b¯ i ist daher kürzer als das Schieberegister. Nach il Schritten des BSR(p, q), also nach der Erzeugung von x0 , . . . , xi−1 stehen in dem Schieberegister gerade die Werte (bil , ..., bil+p−1 ). b¯ i = (bil , ..., b(i+d)l−1 ) ist also ein Anfangsstück des Registers. Für n = 0, 1, ..., 2 p − 1, d. h. während des Durchlaufs einer Periode von T G(p, q, l), durchläuft der Registerinhalt (bn , ..., bn+p−1 ) genau die 2 p − 1 möglichen Werte von {0, 1} p − {(0, ..., 0)}. Dabei tritt jedes b¯ ∈ {0, 1}dl − {(0, . . . , 0)} genau 2 p−dl mal als Anfangsstück des Registers auf, jeweils ergänzt durch ein anderes Bitmuster auf den übrigen p − dl Positionen des Registers. 4. Lediglich das Anfangsstück b¯ = (0, . . . , 0) ∈ {0, 1}dl für dl < p taucht nur genau 2 p−dl − 1 –mal auf: es können alle Ergänzungen aus {0, 1} p−dl außer {(0, . . . , 0)} auftreten, da der Registerinhalt (0, . . . , 0) absorbierend ist.
6.3 Grafische Überprüfung der Gleichverteiltheit
57
Mit einer im Prinzip ähnlichen Argumentation kann man zeigen, dass der Zufallsgenerator Mersenne-Twister (vgl. (4.3) in Abschnitt 4.3) in der Dimension d = 623 mit m = 32 bit Genauigkeit d- gleichverteilt ist ([MT98]). Für Generatoren, die nicht direkt auf der Bitebene arbeiten, ist es meist sehr schwierig, Aussagen zur d-Gleichverteiltheit zu machen. Diese Eigenschaft eignet sich aber sehr gut dazu, ihre näherungsweise Einhaltung mit Hilfe graphischer Darstellungen zu überprüfen. Dieser schwächeren Art von Güteuntersuchung wollen wir uns jetzt zuwenden, bevor wir mit weiteren analytischen Kriterien fortfahren.
6.3 Grafische Überprüfung der Gleichverteiltheit Zur Demonstration betrachten wir drei spezielle U(0, 1)-Generatoren, die Zufallszahlen der Gestalt un = xn /M erzeugen mit xn ∈ {0, . . . , M − 1}. ist der Generator aus Beispiel 2.3 mit 8 Dezimalziffern. Generator Der Generator ist ein linearer Kongruenzgenerator mit M = 231 − 1, a = 75 und c = 0, der in Beispiel aus Beispiel 3.8 c) stammt, es ist ein 3.8 d) eingeführt wurde, während der Generator linearer Kongruenzgenerator mit M = 229 , a = 216 + 3 = 65539 und c = 0. Als erstes untersuchen wir, ob die Generatoren näherungsweise d-gleichverteilt sind für d = 1 mit m = 5 bit Genauigkeit. Wir vernachlässigen hierbei die oben angedeuteten Probleme am Rand, falls M nicht durch 2m teilbar ist. Wir unterteilen das Intervall [0, 1] in 25 = 32 gleichgroße Teilintervalle I0 , . . . , I31 . Wir beobachten Zufallszahlen u0 , . . . , uN−1 , hier für N = 5000, und ermitteln die Häufigkeiten N−1
hi :=
∑ 1Ii (un )
n=0
der Intervalle Ii , i = 0, . . . , 31, bzw. deren relativen Häufigkeiten hNi . Simuliert die Folge (un )n≥0 eine i.i.d. Folge (Un )n≥0 von U(0, 1)-verteilten Zufallsvariablen, so ist nach Satz 6.2 zu erwarten, dass für große N die relative Häufigkeit näherungsweise der Länge λ (Ii ) des Intervalls entspricht, dass also gilt 1 hi ≈ P(U0 ∈ Ii ) = λ (Ii ) = = 0.03125 N 32
bzw.
hi ≈
N = 156.25. 32
Abb. 6.2 zeigt das Ergebnis der absoluten Häufigkeiten hi für die drei Generatoren. Die Graphiken zeigen keine Auffälligkeiten, alle drei Generatoren bestehen diesen ersten Test. Im nächsten Kapitel werden wir sehen, wie die eher subjektive Beurteilung „keine Auffälligkeiten“ durch ein statistisches Verfahren ersetzt werden kann. Die Untersuchung der 1-Gleichverteiltheit hat allerdings nur sehr beschränkte Aussagekraft. Betrachtet man etwa den extrem schlechten Generator xn+1 = (xn + 1) MOD M, der die Menge {0, M1 , . . . , M−1 M } systematisch durchläuft, so erhalten wir z. B. für N = M die idealen relativen 1 . Häufigkeiten hNi ≡ 32 Ein etwa genaueres Bild ergibt sich, wenn wir in der Grafik auch die Reihenfolge, in der die Werte erzeugt werden, deutlich machen, etwa indem die Punkte (n, un ), n = 1, . . . , N, in einem
6 Analytische Gütekriterien
100
150 0
0 0.0
0.2
0.4
0.6
0.8
0
50
50
100
150 100 50
Frequency
150
58
1.0
0.0
0.2
0.4
MidSquare
0.6
0.8
1.0
0.0
0.2
0.4
LGM
0.6
0.8
1.0
RANDU
Abbildung 6.2: Häufigkeiten der un bei den Generatoren
,
und
.
(x, y)-Koordinatensystem angezeigt werden. Abb. 6.3 zeigt das Ergebnis von N = 5000 Simulationen für die drei Generatoren. Durch die Skalierung der x-Achse rücken dabei die Punkte (n, un ), (n + 1, un+1 ) in x-Richtung eng zusammen. Bei einem guten U(0, 1)-Generator sollte die y-Position (also der Wert un ) und die x-Position (also der Zeitindex n) unkorreliert sein, die Punkte sollten die Fläche gleichmäßig füllen. Dies und . Der Generator zeigt jedoch für ist der Fall bei den Generatoren n > 1700 ein sehr regelmäßiges Muster, der Generator ist in eine relativ kleine absorbierende
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
0
500
1000
1500
2000
0
2500
3000
3500
4000
LGM
MidSquare
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
RANDU
Abbildung 6.3: Die Werte (n, un ) für n = 1, . . . , 5000 für die drei Generatoren.
4500
5000
6.4 Der Spektraltest
0
0.2
0.4
0.6
59
0.8
1
MidSquare
0
0.2
0.4
0.6
LGM
0.8
1
0
0.2
0.4
0.6
0.8
1
RANDU
Abbildung 6.4: Die Verteilung der 2-Tupel (un , un+1 ) für die drei Generatoren.
Menge von Zahlen geraten, die in einem bestimmten Muster durchlaufen werden. Dieser Generator sollte deshalb nicht benutzt werden. Die Eigenschaft „d-gleichverteilt“ (ohne Beschränkung der Genauigkeit) kann für d = 2 und d = 3 gut veranschaulicht werden, indem die überlappenden d-Tupel (un , . . . , un+d−1 ) als Punkte in [0, 1]d eingezeichnet werden. Hat ein Generator bzw. die Folge der Zufallszahlen näherungsweise die Eigenschaft „d-gleichverteilt“, so sollte die Punktwolke den Raum gleichmäßig ausfüllen. Abb. 6.4 zeigt das Ergebnis für d = 2 mit N = 5000 überlappenden Paaren (u0 , u1 ), (u1 , u2 ), . . . Bei diesem Versuch ist auch beim Mid-Square-Generator bis N = 5000 kein Fixpunkt oder absorbierende Menge erkennbar. Alle drei Generatoren zeigen ein zufriedenstellendes Bild. In Abb. 6.5 auf Seite 60 sind überlappende 3-Tupel (un , un+1 , un+2 ) gezeigt. Die Generatoren und zeigen ein gutes Ergebnis. Bei dem Generator ist zu erkennen, dass alle Punkte auf nur wenige Ebenen konzentriert sind. Dies ist optisch aber nur im rechten Bild erkennbar, in dem der Blickwinkel richtige gewählt wurde. Im nächsten Abschnitt wird gezeigt, dass die Tupel bei allen linearen Kongruenzgeneratoren auf eine Schar paralleler Hyperebenen des Einheitswürfels konzentriert sind. Als Ergebnis dieser Beispiele lässt sich Folgendes festhalten: (Beispiel 2.3) ist ein sehr schlechter Generator, da er, abhängig vom Startwert, rela(Beispiel 3.8 c) tiv schnell in eine kleine, absorbierende Menge von Werten gerät. Bei sind die 3-Tupel auf nur wenige Hyperebenen konzentriert. Die (schlechte) Qualität dieser Generatoren wird aber nicht bei jedem Test deutlich, z. B. sehen die 2- und 3-Tupel von relativ gut aus. Es müssen daher immer mehrere Tests durchgeführt werden.
6.4 Der Spektraltest Wir wenden uns jetzt wieder den analytischen Gütekriterien zu. Für die häufig benutzten linearen Kongruenzgeneratoren gibt es ein wichtiges Gütemerkmal, das sich auf die Verteilung überlappender Tupel im Raum bezieht. In Abb. 6.5 auf Seite 60 sehen wir, dass die Tripel beim nur wenige Ebenen des Einheitswürfels belegen. Diese Beobachtung wollen Generator wir zunächst noch einmal rechnerisch bestätigen.
60
6 Analytische Gütekriterien
Abbildung 6.5: Die Verteilung der 3-Tupel (un , un+1 , un+2 ) für die Generatoren A, B und C.
Der Generator
benutzt die Rekursionsvorschrift xn+1 = (216 + 3)xn MOD 229 ,
un :=
xn , n ≥ 0, M
also a := 216 + 3 = 65539, c := 0, M := 229 . Dieser Generator hat nach Satz 3.7 a) maximale Periodenlänge M4 = 227 für ungerade Startwerte x0 . Es wird nun gezeigt, dass die überlappenden 3-Tupel (ui , ui+1 , ui+2 ) auf nur 15 Hyperebenen des Einheitswürfels [0, 1]3 liegen, die in Abb. 6.5 zu erkennen sind. 1. Es gilt für geeignete k1 , ..., k5 ∈ Z wegen a = 216 + 3 und M = 229 : ( mit k3 = k1 + ak2 ) xi+2 = axi+1 − k1 M = a(axi − k2 M) − k1 M = a2 xi − k3 M 2 = 216 + 3 xi + k3 M = 232 + 2 · 3 · 216 + 9 xi − k3 M = 232 xi + 6 216 + 3 xi − 9xi − k3 M = 23 Mxi + 6axi − 9xi − k3 M = 6xi+1 − 9xi − k4 M
(mit k4 ≥ k3 + 23 xi ),
also gilt −9xi + 6xi+1 − xi+2 = kM für ein k ∈ Z.
6.4 Der Spektraltest
61
2. Für Vektoren v ∈ R3 und k ∈ Z sei
& Hv (k) := y ∈ IR3 | vT y = k
die Hyperebene im R3 , die senkrecht auf v steht und den Abstand k/v zum Nullpunkt hat. Es sei speziell v0 := (−9, 6, −1)T . Dann gilt für yi := (xi , xi+1 , xi+2 )T , i ≥ 0 vT0 yi = −9xi + 6xi+1 − xi+2 = kM. Damit ist gezeigt, dass jedes Tripel (xi , xi+1 , xi+2 ), i ≥ 0, in einer der Hyperebenen Hv0 (kM), k ∈ Z, liegt. 3. Für zi := (ui , ui+1 , ui+2 )T =
x x i i+1 xi+2 T , , M M M
folgt vT0 zi = M1 vT0 yi = k für ein k ∈ Z. Also liegt jedes zi in einer der Hyperebenen Hv0 (k), k ∈ Z. Es gilt aber sogar: {zi | i ∈ N} ⊂
5 )
Hv0 (k),
k=−9
d. h. die Werte zi liegen nur in den 15 Hyperebenen Hv0 (−9), Hv0 (−8), . . . , Hv0 (5). Zum Beweis dieser Behauptung beachte man zunächst, dass wegen xi = 0 alle zi in (0, 1]3 =: I liegen. Der Wertebereich der Abbildung z = (u0 , u1 , u2 )T → vT0 z = −9u0 + 6u1 − u2 ergibt sich aus der Monotonie der partiellen Abbildungen: (u0 , u2 ) → vT0 z ist monoton fallend, u1 → vT0 z ist monoton wachsend. Daher folgt inf vT0 z
=
sup vT0 z
=
z∈I
z∈I
inf
(−9u0 + 6u1 − u2 ) = vT0 (1, 0, 1) = −10
sup
(−9u0 + 6u1 − u2 ) = vT0 (0, 1, 0) = 6
u0 ,u1 ,u2 ∈(0,1]
und
u0 ,u1 ,u2 ∈(0,1]
d. h. für alle zi gilt −10 ≤ vT0 zi ≤ 6. Die Werte (0, 1, 0) und (1, 0, 1) selbst liegen aber nicht mehr in I, d. h. die Hyperebenen Hv0 (−10) und Hv0 (6) sind nicht besetzt. Der folgende Satz zeigt, dass bei allen linearen Kongruenzgeneratoren die Tupel (ui , . . . , ui+d−1 ) auf eine Schar paralleler Hyperebenen des Einheitswürfels [0, 1]d konzentriert sind.
Es beschreibe xn+1 = (axn + c) MOD M,
n ≥ 0,
x0 ∈ ZM ,
einen linearen Kongruenzgenerator mit maximaler Periodenlänge (vgl. Satz 3.3 bzw. Satz 3.6) und es sei wieder un := xn /M die erzeugte Zufallszahl aus [0, 1]. Für d ≥ 2 sei Ψd := {(ui , . . . , ui+d−1 ) | i ≥ 0, x0 ∈ ZM }
62
6 Analytische Gütekriterien
die Menge aller überlappenden Tupel der Länge d, die mit dem Zufallsgenerator bei beliebigem Startwert x0 erzeugt werden können. Es seien ferner folgende Vektoren in Rd definiert 1 0, 1, 1 + a, . . . , (1 + a + · · · + ad−2 ) · c, v0 := M 1 (1, a, a2 , . . . , ad−1 ), v1 := M v2 := (0, 1, 0, . . . , 0), v3 := (0, 0, 1, 0, . . . , 0), . . . , vd := (0, 0, . . . , 0, 1). a) Für multiplikative Generatoren mit c = 0 gilt Ψd = (0, 1)d ∩ Ld , dabei ist ' Ld :=
d
∑ li vi | li ∈ Z, i = 1, . . . , d
(
i=1
das von (v1 , . . . , vd ) aufgespannte Gitter im Rd . b) Für Generatoren mit c = 0 gilt Ψd = [0, 1)d ∩ (v0 + Ld ) , d. h. das Gitter Ld wird um v0 verschoben. Eine ähnliche Aussage kann für überlappungsfreie Tupel gezeigt werden (vgl. [Rip87] Theorem 2.5). Beweis: Es sei s(x) := ax + c, dann gilt (xn , . . . , xn+d−1 ) = (xn , s(xn ), . . . , sd−1 (xn )) MOD M wobei MOD M hier komponentenweise anzuwenden ist. Durch einfaches Ausrechnen folgt sk (x) = (ak x + (1 + a + · · · + ak−1 ) · c) MOD M und damit (xn , . . . , xn+d−1 ) = (xn , s(xn ), . . . , sd−1 (xn )) MOD M = xn + 0c, axn + c, a2 xn + (1 + a)c, . . . ,
ad−1 xn + (1 + a + · · · + ad−2 )c MOD M = (1, a, a2 , . . . , ad−1 )xn + (0, 1, 1 + a, . . . , 1 + a + · · · + ad−2 )c MOD M = xn Mv1 + Mv0 MOD M
Für das zugehörige Tupel aus Ψd folgt
1 1 (xn , . . . , xn+d−1 ) = M(xn v1 + v0 ) MOD M = (xn v1 + v0 ) MOD 1. M M Da maximale Periode vorausgesetzt war, durchläuft (für c = 0) xn den ganzen Bereich ZM , also gilt Ψd = (ZM v1 + v0 ) MOD 1 bzw. etwas genauer mit r := (r1 , . . . , rd ) ∈ Rd (un , . . . , un+d−1 ) =
r ∈ Ψd
⇐⇒
r = v0 + kv1 + (k1 , . . . , kd )
für ein k ∈ ZM und k1 , . . . , kd ∈ Z so, dass 0 ≤ ri < 1 für alle 1 ≤ i ≤ d
⇐⇒
r = v0 + l1 v1 +
d
∑ li vi
i=2
⇐⇒
r ∈ (v0 + Ld ) ∩ [0, 1)d .
für l1 , . . . , ld ∈ Z so, dass r ∈ [0, 1)d
6.4 Der Spektraltest
63
Dabei wurde ausgenutzt, dass die erste Komponente von v0 + kv1 für k ∈ ZM stets kleiner 1 ist und daher k1 = 0 gilt. Für c = 0 gilt v0 ≡ 0. Im folgenden Beispiel wird die Menge Ψd aus Satz 6.6 für einen einfachen Generator explizit konstruiert.
1
0.8
0.6
0.4
0.2
0 0
0.2
0.4
0.6
0.8
1
Abbildung 6.6: Die Gitterpunkte von L2 und Ψ2
Es sei xn+1 = 13xn MOD 137. Dieser Generator hat nach Satz 3.6 die maximale Periode 136, da M = 137 Primzahl ist und a = 13 eine primitive Wurzel von 137 ist. Wir untersuchen Ψd für d = 2, also die Menge aller Paare (un , un+1 ). Es gilt dann v0 = 0, v1 = (1/M, a/M) = (1/137, 13/137), v2 = (0, 1). Abbildung 6.6 zeigt einen Ausschnitt des von (v1 , v2 ) erzeugten Gitters L2 . Die durch (un , un+1 ) darstellbaren Punkte liegen in dem Einheitsquadrat. Offensichtlich stellt die Konzentration der Tupel auf die Gitterpunkte eine Einschränkung ihrer Zufälligkeit dar. Als Maß für die Güte des Generators kann daher die maximale „Maschenweite“ des Gitters dienen. Die Maschen des Gitters werden durch parallele Hyperebenen gebildet, auf den die Gitterpunkte liegen. Ein Maß für die Güte eines linearen Kongruenzgenerators in d Dimensionen ist daher der maximale Abstand δd zweier Hyperebenen in einer Schar paralleler Hyperebenen, die die Gitterpunkte Ψd überdecken. Ein großer Abstand δd bedeutet dann, dass es große, regelmäßige Lücken zwischen den d-Tupeln gibt, d. h. die Qualität des Generators ist entsprechend schlecht. Abbildung 6.7 zeigt, dass das Gitter durch unterschiedliche Hyperebenen überdeckt werden kann, die jeweils durch einen Vektor u charakterisiert werden, auf dem alle Hyperebenen einer Schar senkrecht stehen. Die Bestimmung des maximalen Abstands δd läuft auf ein Optimierungsproblem hinaus, das ausführlich in [Knu98] Abschnitt 3.3.4 beschrieben wird. Dort ist auch
64
6 Analytische Gütekriterien
ein Algorithmus angegebene, der den maximalen Abstand δd bestimmt (vgl. auch [LC97]). Die Bewertung eines linearen Kongruenzgenerators mit den Abständen δd wird auch Spektraltest genannt. 1
0.8
0.6
0.4
u1
0.2
u2 0 0
0.2
0.4
0.6
0.8
1
Abbildung 6.7: Verschiedene Scharen von Hyperebenen überdecken die Gitterpunkte aus Beispiel 6.7. Die zum Normalenvektor u1 gehörende Schar von Hyperebenen haben einen geringeren Abstand als die zu u2 gehörenden.
a) Tabelle 6.1 gibt die maximalen Hyperebenenabstände δd für verschiedene lineare Kongruenzgeneratoren sowie eine untere Schranke für δd an (aus [Knu98], S. 106).
1 2 3 2
M a 229 216 + 3 231 − 1 16807 231 − 249 40692 minimale Werte
c 0 0 0
δ2 0.00004315 0.00005949 0.00002457 0.00002008
δ3 0.092057 0.001565 0.0008441 0.000690
δ4 0.092847 0.006791 0.004852 0.00390
δ5 0.092847 0.015009 0.012396 0.01104
δ6 0.092847 0.01057 0.02637 0.02157
Tabelle 6.1: Ergebnisse des Spektraltests für einige lineare Kongruenzgeneratoren
Zeile 1 beschreibt den Generator , der für d = 3 nur 15 Hyperebenen besetzt, obwohl für d = 2, also für Paare (un , un+1 ), der maximale Abstand δ2 = 0.00004315 nicht so schlecht ist, dies hatten wir auch bei der graphischen Untersuchung in Abb. 6.4 und Abb. 6.5 gesehen. (vgl. Beispiel 3.8 d)), der für d ≥ 3 erheblich bessere In Zeile 2 steht der Generator , d. h. die maximalen Abstände zwischen den Hyperebenen sind Werte erzielt als kleiner. Am besten schneidet der Generator aus Zeile 3 ab, der in Beispiel 3.8 e) eingeführt wurde. Abbildung 6.8 zeigt von den überlappenden Tupel {(un , un+1 ) | n = 1, . . . , 5 000 000} einen Ausschnitt mit 0 ≤ un ≤ 0.001. Die Hyperebenen sind im linken Bild für den Generator deutlich zu sehen, sie liegen aber so dicht, dass sie in der Vergrößerung von Abb. 6.4 nicht zu erkennen waren.
6.4 Der Spektraltest
65
1
1
0.9
0.9
0.8
0.8
0.7
0.7
0.6
0.6
0.5
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0
0 0
0.0002
0.0004
0.0006
0.0008
0.001
0
0.0002
0.0004
0.0006
0.0008
0.001
Abbildung 6.8: Ausschnitte aus 5 Millionen überlappender Tupel: links für LGM, rechts für MRG32k3a
b) Auch Mischungen aus linearen Kongruenzgeneratoren sind näherungsweise äquivalent zu linearen Kongruenzgeneratoren mit entsprechend größerem Modulus (vgl. Beispiel 5.1 b)). In [L’E99] werden verschiedene Mischungen in Bezug auf Hyperebenenabstände in hohen aus Beispiel 5.1 b) schneidet dabei beDimensionen untersucht. Der Generator sonders gut ab. Der Ausschnitt 0 ≤ un ≤ 0.001 für 5 Millionen Tupel ist in Abbildung 6.8 rechts zu sehen. Während bei lineare Kongruenzgeneratoren die Punkte (un , . . . , un+d−1 ) alle auf relativ wenigen Hyperebenen des [0, 1)d liegen, meiden die Punkte die Hyperebenen, wenn sie von einem inversen Kongruenzgenerator wie in Kapitel 5.2 erzeugt werden. Genauer gilt: bei einem inversen Kongruenzgenerator mit maximaler Periodenlänge und einer Primzahl als Modulus liegen jeweils höchstens d der Punkte (ui , . . . , ui+d−1 ) auf einer Hyperebene des [0, 1]d für alle 2 ≤ d < M. So liegen z. B. bei den Paaren (un , un+1 ), n = 0, 1, . . . keine drei Punkte auf einer Geraden (vgl. [EH91]). Das Ergebnis unserer analytischen Güteuntersuchungen lässt sich folgendermaßen zusammenfassen: Ein einzelnes Kriterium ist kaum in der Lage, gute von schlechten Generatoren zu unterscheiden, nach heutigem Stand scheinen das Kriterium „ d-gleichverteilt“ und der Spektraltest besonders (vgl. (4.3)) und geeignet. Sehr gut schneiden dabei die beiden Generatoren (vgl. (5.3) ab. Auch die inversen Kongruenzgeneratoren zeigen der Mischgenerator gute Gleichverteilungseigenschaft, sind aber etwas aufwändiger zu implementieren.
7 Statistische Gütekriterien Gütekriterien für Zufallsgeneratoren bestehen aus Eigenschaften, die sich aus der Definition 6.1 für unabhängige, identisch U(0, 1)-verteilte Zufallsvariablen ableiten lassen. In Kapitel 6.3 wurden einige analytisch nachweisbare Gütekriterien untersucht. Derartige Güteaussagen haben den Vorteil, dass sie für alle möglichen mit diesem Generator erzeugbaren Folgen gelten. Da sie aber meist nur für spezielle Generatortypen nachgewiesen werden können, sind sie z. B. für einen Vergleich zwischen unterschiedlichen Generatoren nicht geeignet. Wir wollen jetzt eine andere Art der Überprüfung von Gütekriterien vorstellen, die ähnlich wie bei der graphischen Überprüfung ohne Berücksichtigung des Erzeugungsprozesses nur die Ergebnisse eines Zufallsgenerators, d. h. die erzeugten Zahlenfolgen (xn )n≥0 mit statistischen Methoden untersuchen. Im Unterschied zu den analytischen Kriterien ist diese Art von Untersuchung auf jeden Generator und sehr viele Gütekriterien anwendbar. Die Schärfe der erzielbaren Aussagen ist aber geringer und das Ergebnis hängt in gewissem Grade von den im Einzelfall beobachteten Werten ab.
7.1 Statistische Anpassungstests Wir beginnen mit einer kurzen Einführung der dafür benötigten statistischen Verfahren, den sogenannten Anpassungstests. Wir führen diese Verfahren hier nur in der für unsere Zwecke notwendigen Allgemeinheit ein. Für etwas allgemeinere Darstellung siehe Anhang B und die dort angegebene Literatur. Anpassungstests vergleichen ein konkretes Zufallsexperiment mit einem vorliegenden stochastischen Modell und entscheiden, ob dieses Modell das Experiment hinreichend genau beschreibt. Die Entscheidung wird aufgrund von Beobachtungsdaten aus dem Zufallsexperiment, der sogenannten Stichprobe, getroffen. Wichtig ist das richtige Verständnis des in der Statistik üblichen Maßes für „hinreichend genau“, siehe dazu auch Anhang B.4. Bei der Anwendung eines Anpassungstests auf einen Zufallsgenerator muss zunächst eine Hypothese formuliert werden, dies ist in diesem Fall eine Verteilung P0 auf der Menge der möglichen Beobachtungswerte, von der wir feststellen wollen, ob sie das Experiment „Beobachtung der Zufallszahlen“ ausreichend genau beschreibt. Im einfachsten Falle könnte man auf diese Weise testen, ob die Zufallszahlen (xn )n≥0 durch eine Gleichverteilung P0 := U(0, 1) beschrieben werden können. Es muss dann eine Stichprobe x := (x0 , . . . , xn−1 ) durch n-faches Aufrufen des Zufallsgenerators gewonnen werden. Zur Überprüfung der Hypothese „P0 ist die das Zufallsexperiment beschreibende Verteilung“ wird eine sogenannte Prüfgröße T (x) ausgewertet. T (x) misst gewissermaßen den Abstand zwischen dem stochastischen Modell P0 und der Information, die in der Stichprobe x über das Zufallsexperiment enthalten ist. Die Prüfgröße T zusammen mit einem sogenannten kritischen Wert c ∈ R bilden den Test (T, c), in diesen Falle, wegen der speziellen Gestalt der Hypothese, einen Anpassungstest.
68
7 Statistische Gütekriterien
Ist dieser Abstand T (x) größer als die vorgegebene Schwelle c, so wird die Hypothese abgelehnt, P0 kommt dann als Beschreibung des Zufallsexperiments nicht in Frage. Der wesentliche Unterschied zu einer eher willkürlichen Bewertung wie etwa bei den graphischen Verfahren, besteht darin, dass bei einem Test die Wahrscheinlichkeit für eine Fehlentscheidung mitberücksichtigt wird. Ist der Test (T, c) ein Test zum Niveau α für einen kleinen Wert α ∈ (0, 1), so wird die Ablehnungsentscheidung zu Unrecht, also wenn P0 das Experiment tatsächlich doch beschreibt, nur mit der Fehlerwahrscheinlichkeit α getroffen. Bei wiederholter Anwendung dieses Verfahrens wird man also in höchstens α ·100% der Fälle die Hypothese zu Unrecht ablehnen und damit einen sogenannten Fehler 1. Art machen. Daher gilt die Ablehnungsentscheidung als (zum Niveau α) statistisch gesichert. Typische Werte von α sind α = 0.05 (5%-Niveau) und α = 0.01 (1%-Niveau). Ergibt die Stichprobe T (x) ≤ c, so wird die Hypothese nicht abgelehnt, sondern angenommen. Einen Fehler 2. Art macht man dabei, falls P0 eigentlich abgelehnt werden müsste, aber die Stichprobe so untypisch ausgefallen ist, dass T (x) ≤ c gilt. Die Wahrscheinlichkeit für eine solchen Fehler 2.Art ist im Unterschied zum Fehler 1. Art meist nicht beschränkt. Daher gilt die Entscheidung „Annahme der Hypothese“ nicht als statistisch gesichert und darf nicht als Bestätigung der Hypothese gewertet werden. Die Interpretation dieser Entscheidung lautet also eher: "Die Stichprobe x steht nicht im Widerspruch zur Hypothese P0 “. Diese asymmetrische Betrachtungsweise der Ergebnisse von Tests muss bei der praktischen Anwendung berücksichtigt werden. Wir fassen die eben beschriebenen Begriffe noch einmal in einer formalen Definition zusammen:
Es sei Rn der Stichprobenraum und P0 ein Wahrscheinlichkeitsmaß auf R. Es sei X = (X0 , . . . , Xn−1 ) die Stichprobenvariable mit X0 , . . . , Xn−1 i.i.d. und α sei ein (kleiner) Wert aus (0, 1). Ein Anpassungstest zum Niveau α für die Hypothese H := {PX0 = P0 } besteht aus einer Prüfgröße T : RN → R und einem kritischen Wert c, so dass P(T (X) > c) ≤ α,
(7.1)
falls H gilt, d. h. falls X0 , . . . , Xn−1 i.i.d. P0 -verteilt sind. Im Falle T (X) > c liefert der Test die Entscheidung „Ablehnung“, sonst „Annahme“ (der Hypothese H = {PX0 = P0 }). Der Bereich (7.2) {x ∈ Rn | T (x) > c} heißt auch der Ablehnungsbereich. Die Schwierigkeit bei der Aufstellung eines Anpassungstest besteht darin, Prüfgröße T und kritischen Wert c zu finden, so dass (7.1) für alle möglichen Wahlen von P0 gilt. Zwei Standardverfahren werden unten vorgestellt.
7.1 Statistische Anpassungstests
69
Mithilfe eines Anpassungstests kann ein Zufallsgenerator daraufhin überprüft werden, ob die erzeugten Werte durch eine U(0, 1)-Verteilung beschrieben werden. Das Zufallsexperiment besteht dann also im Aufruf des Zufallsgenerators. Die Stichprobe x = (u0 , . . . , un−1 ) ∈ [0, 1]n umfasst das Ergebnis von n aufeinanderfolgenden Aufrufen des Generators. Als Hypothese wählt man H = {PX0 = U(0, 1)}, dies entspricht der Behauptung „P0 = U(0, 1) ist die wahre Verteilung“ bzw. „Generator erzeugt Zufallszahlen u0 , u1 , . . ., die im mathematischen Modell durch U(0, 1)-verteilte Zufallsvariablen beschrieben werden können“. Es seien (T, c) Prüfgröße und kritischer Wert eines Tests zum Niveau α = 0.01. Führt die Stichprobe zu T (x) > c, also zu einer Ablehnung, so bedeutet dies, dass es aufgrund der vorliegenden Stichprobe als statistisch gesichert angesehen werden kann, dass der Generator Folgen erzeugt, die nicht zu U(0, 1) „passen“. Wird dieser Test wiederholt mit unterschiedlichen Stichproben durchgeführt, so erfolgt eine fehlerhafte Ablehnung des Generators nur in α · 100 = 1% der Fälle. Die ablehnende Entscheidung ist also entsprechend zuverlässig. Eine Annahme der Hypothese (bei T (x) ≤ c) bedeutet dagegen nur, dass die beobachteten Zufallszahlen nicht im Widerspruch zu einer Beschreibung durch U(0, 1)–verteilte Zufallsvariablen stehen. Dies sollte nicht als Bestätigung des Generators angesehen werden, da die Fehlerwahrscheinlichkeit dieser Entscheidung hier sehr hoch sein kann. Die üblichen Anpassungstests vergleichen die unter P0 zu erwartenden (relativen) Häufigkeiten mit den in der Stichprobe beobachteten Häufigkeiten. Will man dies auf der Ebene der Verteilungsfunktionen machen, so bestimmt man dafür die sogenannten empirische Verteilungsfunktion Fn zur Stichprobe x = (x0 , . . . , xn−1 ) : Fn (t) :=
1 n−1 ∑ 1(−∞,t] (xi ), n i=0
t ∈ R.
(7.3)
Fn (t) zählt also im Wesentlichen, wieviele Werte der Stichprobe kleiner gleich t sind. t → Fn (t) ist eine Treppenfunktion, die Sprünge gerade an den Stellen {x0 , . . . , xn−1 } macht, die Sprunghöhe ist die relative Häufigkeit, mit der der entsprechende Wert in der Stichprobe x auftaucht. Sind die x0 , . . . , xn−1 paarweise verschieden, so gilt offensichtlich Fn (x[i] ) = (i + 1)/n, wobei die x[0] , . . . , x[n−1] gerade die der Größe nach aufsteigend sortierten Werte aus x sind. Der folgende Anpassungstest benutzt als Prüfgröße T (x) den Abstand zwischen der zu P0 gehörenden Verteilungsfunktion F0 und der empirischen Verteilungsfunktion Fn , die aus der Stichprobe x gewonnenen wird. KOLMOGOROFF -S MIRNOV-A NPASSUNGSTEST F0 sei eine stetige Verteilungsfunktion. Die zu testende Hypothese lautet H = {FX0 = F0 }, d. h. „die Stichprobe (x0 , . . . , xn−1 ) entstammt einem Zufallsexperiment mit der Verteilungsfunktion F0 “. Der Test entscheidet aufgrund der Prüfgröße Tn (x) := sup | F0 (t) − Fn (t) | . t∈R
(7.4)
70
7 Statistische Gütekriterien
Tn (x) ist die maximale Abweichung zwischen F0 und Fn . Sind die Beobachtungswerte x0 , . . . , xn−1 paarweise verschieden, so gilt i + 1 i (7.5) , F0 (x[i] ) − , Tn (x) = max max F0 (x[i] ) − i=0,...,n−1 n n wobei x[0] , . . . , x[n−1] die der Größe nach aufsteigend sortierten Werte aus x = (x0 , . . . , xn−1 ) sind. Eine Stichprobe x führt zu einer Ablehnung der Hypothese, falls Tn (x) > kn;α , dabei sind die kn;α die α-Fraktile (Anhang A.19) der sogenannten Kolmogoroff-Verteilung, einige davon sind in Tabelle 7.1 angegeben. Es gilt: P(Tn (X0 , . . . , Xn−1 ) > kn;α ) ≤ α, wenn die X0 , . . . , Xn−1 i.i.d. P0 -verteilt sind, d. h., das Verfahren bildet für jedes n ∈ N einen Test zum Niveau α. α 0.05 0.01
k5;α 0.563 0.669
k10;α 0.409 0.489
k15;α 0.338 0.408
k20;α 0.294 0.352
k30;α 0.2417 0.290
∼ kn;α √ 1.36 / n √ 1.63 / n
Tabelle 7.1: Einige Fraktile für den Kolmogoroff-Smirnov-Anpassungstest
Der Kolmogoroff-Smirnov-Anpassungstest (oder kurz: KS-Test) soll wie in Beispiel 7.2 beschrieben auf den Zufallsgenerator xn+1 = 13xn MOD 137 aus Beispiel 6.7 angewendet werden. Es wird mit diesem Generator eine Stichprobe x = (u0 , . . . , u29 ) aus n = 30 Zufallszahlen un := xn /137 ∈ [0, 1] erzeugt. Abbildung 7.1 auf Seite 71 zeigt die empirische Verteilungsfunktion für diese Stichprobe. Als F0 ist die Verteilungsfunktion der Gleichverteilung U(0, 1) zu wählen, also F0 (t) := t für t ∈ (0, 1). F0 ist in Abbildung 7.1 als Gerade eingezeichnet. Unter diesen Voraussetzungen lässt sich die Prüfgröße Tn (x) aus (7.5) folgendermaßen berechnen: i i + 1 , u − . Tn (x) = max max u[i] − i=0,...,n−1 n [i] n wobei die u[0] , . . . , u[n−1] die aufsteigend sortierten Zufallszahlen sind. Die Prüfgröße liefert für die vorliegende Stichprobe den Wert T30 (x) = 0.1465, eine Ablehnung ist (auch bei großem α ≈ 0.5) nicht möglich. Der KS-Test kann nur bei Verteilungen P0 mit stetiger Verteilungsfunktion F0 wie z. B. U(0, 1) angewendet werden. Der folgende χ 2 -Anpassungstest ist bei beliebigen Verteilungen P0 anwendbar. Die (stetigen oder diskreten) Stichprobendaten werden dabei zu k Klassen C1 , . . . ,Ck zusammengefasst. Der Test vergleicht dann die beobachteten Klassen-Häufigkeiten mit den unter P0 zu erwartenden Häufigkeiten.
7.1 Statistische Anpassungstests
71
0.0
0.2
0.4
0.6
0.8
1.0
Fn (t)
t 0.0
0.2
0.4
0.6
0.8
1.0
Abbildung 7.1: Die empirische Verteilungsfunktion von 30 Zufallszahlen im Vergleich zur Verteilungsfunktion von U(0, 1).
χ 2 -A NPASSUNGSTEST Der Wertebereich S der Stichprobe ist in Klassen C1 , . . . ,Ck unterteilt, S = ∑ki=1 Ci . P0 ist eine Verteilung auf S, es sei pi := P0 (Ci ), i = 1, . . . , k. Von der Stichprobe x1 , . . . , xn liegen die Klassenhäufigkeiten ni vor, wobei n−1
ni :=
∑ 1Ci (x j ),
i = 1, . . . , k.
j=0
Zu testen ist wieder die Hypothese H = {PX0 = P0 }, d. h. „ die Stichprobe (x0 , . . . , xn−1 ) entstammt einem Zufallsexperiment mit Verteilung P0 “. (ni − npi )2 npi i=1 k
Tn (x) : = ∑
(7.6)
Tn (x) misst den (durch npi normierten) Unterschied zwischen den beobachteten Häufigkeiten ni und den unter P0 zu erwartenden Häufigkeiten npi . Die Hypothese wird abgelehnt, falls für die Stichprobe gilt: 2 Tn (x) > χk−1;α , 2 2 -Verteilung (vgl. Anhang A.13), einige Werte sind in dabei ist χk−1;α das α-Fraktil der χk−1 Tabelle 7.2 angegeben.
Es gilt für X0 , X1 , . . . i.i.d. P0 -verteilt 2 ≤ α, lim P Tn (X0 , . . . , Xn−1 ) > χk−1;α n→∞
d. h. dies ist ein Test, der nur asymptotisch für wachsenden Stichprobenumfang das Niveau α einhält.
72
7 Statistische Gütekriterien
α 0.05 0.01
2 χ5;α 11.1 15.1
2 χ10;α 18.3 23.2
2 χ15;α 25 30.6
2 χ20;α 31.4 37.6
2 χ25;α 37.77 44.3
2 χ30;α 43.8 50.9
Tabelle 7.2: Einige Fraktile für den χ 2 -Anpassungstest
Für eine Anwendung des χ 2 -Anpassungstests auf Zufallszahlen des Generators xn+1 = 13xn MOD 137 mit P0 = U(Z137 ) wird Z137 = {0, . . . , 136}) in k = 8 (annähernd) gleichgroße Klassen C1 = {0, . . . , 16},C2 := {17, . . . , 33}, . . . ,C7 := {102, . . . , 118},C8 := {119, . . . , 136} zerlegt. Es wird eine Stichprobe x = (x0 , . . . , x29 ) von n = 30 Zufallszahlen erzeugt. ni ist die Häufigkeit, mit der Zufallszahlen aus der Stichprobe in die Klasse Ci fallen. Die Hypothese (und damit der Generator) werden abgelehnt, falls T30 (x) =
k k 2 8 8 2 2 ni − n = ∑ ∑ ni − 30 > χ7;α n i=1 30 i=1
(7.7)
Dies folgt aus (7.6), da ∑ki=1 ni = n und für P0 = U(ZM ) mit |Ci | ≈ M/k auch pi ≈ 1/k gilt. Für die in Beispiel 7.4 verwendete Stichprobe ergeben sich mit den obigen 8 Klassen die 2 größer als χ 2 Klassenhäufigkeiten 4, 5, 4, 4, 3, 2, 4, 4. Daraus folgt T30 (x) = 1.4667. Da χ7;α 5;α ist, ergibt sich aus Tabelle 7.2, dass keine Ablehnung zum 1%- oder 5% Niveau möglich ist. Der χ 2 -Anpassungstest in dieser Anwendung kann auch als eine statistische Überprüfung der d-Gleichverteiltheit (vgl. Definition 6.3) angesehen werden, wobei hier d = 1 gilt und eine Genauigkeit von m Bits zu k := 2m Klassen führt.
a) Der Kolmogoroff-Smirnov-Anpassungstest erfordert eine stetige Verteilung P0 (mit einer stetigen Verteilungsfunktion F0 ), er hält aber das Niveau α für jeden Stichprobenumfang n ein. Dagegen erreicht der universell einsetzbare χ 2 -Anpassungstest das Qualitätsmerkmal „zum Niveau α“ nur asymptotisch für wachsenden Stichprobenumfang n. b) Die Ergebnisse des χ 2 -Anpassungstests hängen von der Klasseneinteilung ab, die ihrerseits nicht auf die Stichprobe abgestimmt werden darf, um eine Verzerrung der Ergebnisse zu vermeiden. Als Faustregel benutzt man trotzdem häufig: Klasseneinteilung und Stichprobenumfang sollten so gewählt werden, dass ni ≥ 5 für 20% der n1 , . . . , nk gilt. c) Die direkte Anwendung der Anpassungstests auf die Zufallszahlen setzt voraus, dass x0 , . . . , xn−1 durch eine i.i.d. Folge von Zufallsvariablen X0 , . . . , Xn−1 modelliert werden kann. Getestet wird nur, ob die den einzelnen Werten zugrundeliegende Verteilung mit P0 übereinstimmt.
7.2 Spezielle Anpassungstests bei Zufallsgeneratoren
73
Wird bei einem Anpassungstest einer Zufallszahlenfolge auf Gleichverteilung die Hypothese nicht abgelehnt, so ist dies wie oben ausgeführt keine statistisch gesicherte Bestätigung der Hypothese „Gleichverteilung“. Daher sind die Tests in erster Linie geeignet, schlechte Zufallsgeneratoren zu erkennen, für die die Hypothese statistisch gesichert abgelehnt werden kann. Praktisch geht man daher so vor, dass man, ähnlich wie bei den analytischen Kriterien, eine Reihe unterschiedlicher Tests auf die Zahlenfolge anwendet und schließlich die Generatoren als „gut“ ansieht, die alle Tests bestehen.
7.2 Spezielle Anpassungstests bei Zufallsgeneratoren Die in Beispiel 7.4 und 7.6 beschriebene direkte Anwendung der Anpassungstests mit der Hypothese „Gleichverteilung“ auf die Zufallszahlen selbst dürfte nur in seltenen Fällen zu einer Ablehnung führen, eine Nicht-Ablehnung hat daher wenig Aussagekraft. Eine schärfere Überprüfung der Qualität eines Zufallsgenerators erhält man, wenn man anstelle einzelner Zufallszahlen xn Abschnitte xid , . . . , xid+d−1 bzw. Funktionen davon wie yi := R(xid , . . . , xid+d−1 ) betrachtet. Für eine Anwendung der Anpassungstests muss dann zunächst bestimmt werden, welche Verteilung Q die Zufallsvariablen Yi := R(Xid , Xid+1 , . . . , Xid+d−1 ), unter der Hypothese haben, also unter der Voraussetzung, dass die (Xi )i≥0 i.i.d. U(0, 1)-verteilt sind. Es wird dann eine Stichprobe y = (y0 , . . . , yn−1 ) mit yi = R(xid , . . . , xid+d−1 ) aus dem Zufallsgenerator gewonnen und auf Anpassung an die Verteilung Q getestet. Auf diese Weise kann auch die Unabhängigkeit der (xid , . . . , xid+d−1 ) mituntersucht werden. Die folgenden Tests sind überwiegend für Zufallszahlen aus [0, 1], also für U(0, 1)-Generatoren formuliert, lassen sich aber meist auf U(ZM )-Generatoren übertragen. Es sei im Folgenden (Un )n≥0 eine i.i.d. Folge von U(0, 1)-verteilten Zufallsvariablen und (un )n≥0 eine Folge von Zufallszahlen aus [0, 1].
7.2.1 Serial Test Für die nicht-überlappenden Teilstücke Yi := (Uid ,Uid+1 , . . . ,U(i+1)d−1 ) gilt mit Anhang A.14: (Yi )i≥0 ist i.i.d. mit Q := U([0, 1]d ). für (z. B.) d = 2 Dimensionen besteht dann in der Beobachtung einer StichDer probe y = (y0 , . . . , yn−1 ) von nicht-überlappenden Paaren y0 = (u0 , u1 ), y1 = (u2 , u3 ), · · · , yn−1 = (u2(n−1) , u2n−1 ), die mit einen χ 2 -Anpassungstest auf die Verteilung P0 = U([0, 1]2 ) getestet werden. Dazu teilt man das Einheitsquadrat in k = m2 kleinere Quadrate der Seitenlänge m1 . ni ist dann die Anzahl der Paare aus y, die in die i-te Klasse Ci fallen. Die unter P0 zu erwartende Häufigkeit ergeben sich mit pi = P0 (Ci ) = 1/m2 als npi ≡ n/m2 , i = 1, . . . , k. Als Prüfgröße erhält man daher (ni − n/m2 )2 m2 k 2 = ∑ ni − n 2 n/m n i=1 i=1 k
Tn (y) = ∑
74
7 Statistische Gütekriterien
eine Ablehnung erfolgt bei Tn (y) > χm2 2 −1;α . Dieser Test hat Ähnlichkeit mit der Überprüfung der 2-Verteiltheit mit log2 m Bits Genauigkeit in Kapitel 6.2.
7.2.2 Gap Test Der sogenannte berücksichtigt stärker als der einfache den zeitlichen Verlauf der Zufallszahlen. Es wird dazu ein Intervall [a, b) ⊂ [0, 1] festgelegt. Ein Wert un ∈ [a, b) gilt als ein „Treffer“, ein „Gap“ ist die Anzahl von Beobachtungen, die zwischen zwei Treffern liegen. Dies kann als die Wartezeit zwischen zwei Erfolgen in einer Versuchsserie angesehen werden. Der nächste Satz zeigt, welche Verteilung die Gaps haben sollten.
0
1
a
b
Abbildung 7.2: Die Kreuze stellen eine Folge von Zufallszahlen dar mit drei „Treffern“ im Intervall [a, b).
Sei (Un )n≥0 i.i.d. U(0, 1)–verteilt und 0 ≤ a < b ≤ 1 vorgegebene Werte. (Ym )m≥1 , (Nm )m≥0 seien Zufallsvariablen mit Werten in N0 ∪ {−1}, die folgendermaßen definiert seien: Nm+1 := min {k > Nm | Uk ∈ [a, b)}, m ≥ 1,
N0 := −1
Ym := Nm − Nm−1 − 1, m ≥ 1 Dann gilt: (Ym )m≥1 ist eine Folge von Zufallsvariablen, die i.i.d. geometrisch verteilt ist mit dem Parameter p = b − a, d. h. P(Ym = k) = (b − a)(1 − (b − a))k , k ≥ 0. Nm beschreibt den Zeitpunkt des m-ten Treffers Un ∈ [a, b), Y1 ist daher die Wartezeit bis zum ersten Treffer und Ym+1 ist die Wartezeit zwischen m–ten und (m + 1)–ten Treffer. Der Satz besagt: wenn die zugrundeliegende Folge (Un )n≥0 i.i.d. und U(0, 1)-verteilt ist, müssen die (Ym )m≥1 i.i.d. und geometrisch verteilt sein. Dies kann mit einem χ 2 -Anpassungstest getestet werden. Beweis: (zu Satz 7.8) Es sei Zk := 1[a,b) (Uk ), k ≥ 0, dann sind die (Zk )k≥0 unabhängig und es gilt offensichtlich P(Zk = 1) = b − a, P(Zk = 0) = 1 − (b − a), d. h. (Zk )k≥0 ist i.i.d. b(1, p)-verteilt mit p := b − a. Ferner gilt offensichtlich Nm+1 = min {k > Nm | Zk = 1}. Wir bestimmen die gemeinsame Verteilung von Y1 , . . . ,Ym . Für y1 , . . . , ym ∈ N0 sei m
A := {y1 , y1 + y2 + 1, . . . , ∑ yi + m − 1} i=1
m
und
B := {0, 1, . . . , ∑ yi + m − 1} − A. i=1
7.2 Spezielle Anpassungstests bei Zufallsgeneratoren
75
Es folgt |A| = m, |B| = ∑m i=1 yi und : P(Y1 = y1 , . . . ,Ym = ym ) = P(N1 = y1 , N2 − N1 − 1 = y2 , . . . , Nm − Nm−1 − 1 = ym ) m
= P(N1 = y1 , N2 = y2 + y1 + 1, . . . , Nm = ∑ yi + m − 1) i=1
m
= P(Zi = 1 genau für die Zeitpunkte y1 , y1 + y2 + 1, . . . , ∑ yi + m − 1) i=1
= P(Zi = 1, i ∈ A, Z j = 0, j ∈ B) =
∏ P(Zi = 1) ∏ P(Z j = 0) i∈A
m
∑ yi
= (b − a)m (1 − (b − a))i=1
=
j∈B
m
∏(b − a)(1 − (b − a))yi . i=1
Die gemeinsame Verteilung der Y1 , . . . ,Ym ist also das Produkt von geometrischen Verteilungen mit den gewünschten Parametern. Daraus folgt mit Anhang A.15 die Behauptung. Für die Durchführung des Gap-Tests werden n Gaps y1 , . . . , yn beobachtet und mit dem χ 2 Anpassungstest auf die Verteilung P0 =„geometrische Verteilung mit Parameter b − a“ getestet. Als Klasseneinteilung kommt dabei z. B. {0}, {1}, . . . , {k − 2}, {m|m ≥ k − 1} für ein geeignetes k in Frage. Mit diesem Test kann z. B. untersucht werden, ob bestimmte Wertebereiche in [0, 1] (etwa [0, ε]) besonders häufig oder besonders selten auftreten. Die erforderliche Anzahl von Zufallszahlen, die für n Gaps erzeugt werden müssen, ist dabei selbst vom Zufall abhängig.
7.2.3 Maximum-aus-d-Test Es sei nun Yi := max{Uid ,Uid−1 , . . . ,U(i−1)d+1 } das Maximum der letzten d Werte. Der nächste Satz gibt die Verteilung von Yi an. Sei (Un )n≥0 i.i.d. U(0, 1)-verteilte Zufallsvariablen, d ≥ 1 und
& Yi := max U j | (i − 1)d < j ≤ id , für i ≥ 1 Dann gilt: (Yi )i≥1 ist i.i.d. mit Verteilungsfunktion P(Y1 ≤ t) = t d , t ∈ [0, 1] . Beweis: Da die Yi durch Anwendung der Funktion max auf disjunkte Abschnitte der Folge (Un )n≥0 hervorgehen, folgt mit Anhang A.16, dass auch die Folge (Yi )i≥1 i.i.d. ist. Für jedes t ∈ [0, 1] gilt, da P(U1 ≤ t) = t für t ∈ [0, 1]: P(Y1 ≤ t) = P(max{Ud ,Ud−1 , . . . ,U0 } ≤ t) = P(Ui ≤ t, 1 ≤ i ≤ d) =
d
∏ P(Ui ≤ t) i=1
= td .
76
7 Statistische Gütekriterien
Zur Durchführung des Maximum-aus-d-Test werden n disjunkte Abschnitte von Zufallszahlen jeweils der Länge d beobachtet und die Maxima yi , i = 1, . . . , n, ermittelt. Da die Verteilungsfunktion F0 (t) = t d , t ∈ [0, 1], aus Satz 7.9 eine stetige Verteilungsfunktion ist, kann der KolmogoroffSmirnov-Anpassungstest benutzt werden, um zu testen, ob die Stichprobe y = (y1 , . . . , yn ) zur Verteilungsfunktion F0 passt. Es gibt eine Reihe weiterer Tests, die hier nur kurz erwähnt werden sollen: beim sogenannten wird gezählt, wieviele Zufallszahlen beobachtet werden müssen, bis alle Kombinationen etwa der obersten drei Bits aufgetaucht sind. Es werden also sozusagen „Gutwird untersucht, ob scheine“ gesammelt, bis eine komplette Serie vorliegt. Im in Teilstücken der Länge d alle d! möglichen Anordnungen der Werte gleichhäufig auftreten. Es muss jeweils die Verteilung der beobachteten Größen bestimmt werden unter der Voraussetzung, dass der Input i.i.d. U(0, 1)-verteilt ist. Dann wird eine reale Stichprobe dieser Größen beobachtet und auf die Anpassung an die berechnete Verteilung getestet. Weitere Beispiele für derartige Tests finden sich z. B. in [Knu98], 3.3.2. Diesen Verfahren ist allen gemeinsam, dass die aufeinanderfolgenden Beobachtungen Y0 ,Y1 , . . . unabhängig und identisch verteilt sind und daher die Anpassungstests aus Kapitel 7.1 angewendet werden können. Tests, die mehr in die Tiefe gehen, führen oft auf abhängige Beobachtungen. So wird beim sogenannten gezählt, wieviele aufeinanderfolgende Werte aufsteigend sind: un ≤ un+1 > un+2 > un+3 ergibt z. B. einen run der Länge 2 bestehend aus un , un+1 und einem der Länge 1 bestehend aus un+2 . Diese Anzahlen sind nicht unabhängig voneinander, dies kann man sich folgendermaßen klar machen: nach einem langen run aufwärts ist der aktuelle Beobachtungswert ein eher großer Wert in [0, 1], daher ist die Wahrscheinlichkeit groß, dass als nächstes ein kleinerer Beobachtungswert, also ein run der Länge 1 folgt. Die Details für diesen Test finden sich wieder in [Knu98].
7.2.4 Tests mit überlappenden Teilfolgen Weitergehende Tests verknüpfen die Zufallszahlen noch stärker miteinander, insbesondere benutzen sie überlappende Teilfolgen. Wir wollen hier zwei dieser sehr wirksamen Tests darstellen, die tatsächlich nur von recht guten Generatoren bestanden werden. Das erste Verfahren untersucht bei Folgen von Zahlen aus {0, 1, . . . , β − 1} die Häufigkeiten, mit denen überlappende Paare und Tripel auftauchen. Da die Stichprobenwerte hier wegen der Überlappung nicht mehr unabhängig voneinander sind, können die Standard-Anpassungstests aus Abschnitt 7.1 nicht eingesetzt werden. Trotzdem werden zunächst die Abweichungen zwischen den unter der Gleichverteilung zu erwartenden Häufigkeiten und den tatsächlich beobachteten für die Paare und Tripel wie beim χ 2 -Anpassungstests bestimmt. Die verwendete Prüfgröße Tˆn ist dann die Differenz zwischen den Paar- und Tripelabweichungen. Der folgende Satz aus [Mar85] zeigt, dass diese Prüfgröße asymptotisch (für n → ∞) eine χβ2 3 −β 2 -Verteilung hat unter der Voraussetzung, dass die Beobachtungen tatsächlich gleichverteilt sind, die Hypothese also zutrifft. Im Beispiel 7.11 wird gezeigt, wie daraus ein Testverfahren gewonnen werden kann.
7.2 Spezielle Anpassungstests bei Zufallsgeneratoren
77
Es sei (Yn )n≥0 eine Folge von i.i.d. U({0, . . . , β −1})-verteilten Zufallsvariablen. Ferner seien die folgenden Zufallsvariablen definiert für i, j, k ∈ {0, . . . , β − 1}: n−3
(n)
Wi jk :=
∑ 1{(i, j,k)} (Yr ,Yr+1 ,Yr+2 ) + 1{(i, j,k)} (Yn−2 ,Yn−1 ,Y0 ) + 1{(i, j,k)} (Yn−1 ,Y0 ,Y1 )
r=0
= Häufigkeit, mit der das Tripel (i, j, k) in (Y0 , . . . ,Yn−1 ,Y0 ,Y1 ) überlappend auftaucht. (n)
n−2
Vi j :=
∑ 1{(i, j)} (Yr ,Yr+1 ) + 1{(i, j)} (Yn−1 ,Y0 )
r=0
= Häufigkeit, mit der das Paar (i, j) in (Y0 , . . . ,Yn−1 ,Y0 ) überlappend auftaucht. und als Prüfgröße
∑
Tˆn = Tˆn (Y0 , . . . ,Yn−1 ) :=
i, j,k∈{0,...,β −1}
Dann gilt
2 (n) Wi jk − βn3 n β3
−
∑
i, j∈{0,...,β −1}
2 (n) Vi j − βn2 n β2
.
lim P Tˆn ≤ t = Gβ 3 −β 2 (t),
n→∞
dabei sei Gn (·) die Verteilungsfunktion der χn2 –Verteilung (vgl. Anhang A.13), d. h. Tˆn ist asymptotisch χβ2 3 −β 2 –verteilt. Zum Beweis siehe [Mar85].
Der sogenannte benutzt eine Folge von Zufallszahlen (xn )n≥0 aus {0, . . . , M − 1} in ihrer Dualdarstellung. Um die mögliche Anzahl von Paaren und Tripeln zu reduzieren, werden (z. B.) nur die m untersten Bits jeder Zufallszahl xn berücksichtigt und als eine Zahl yn := xn MOD 2m in {0, . . . , β − 1} mit β := 2m angesehen. Für m = 3 erhält man β = 8 und yn ∈ {0, . . . , 7}. Simulieren die ursprünglichen Zufallszahlen die Gleichverteilung U({0, . . . , M − 1}) hinreichend gut, so sollten auch die zugehörigen „abgeschnittenen“ Zufallszahlen (yn )n≥0 eine Gleichverteilung auf {0, . . . , β − 1} simulieren. Es wird eine Stichprobe y := (y0 , . . . , yn−1 ) von diesen Zufallszahlen erzeugt. Wie im Satz 7.10 beschrieben werden von dieser Stichprobe die Häufigkeiten aller möglichen Paare und Tripel sowie die Prüfgröße Tˆn (y) bestimmt. Für m = 3 folgt β 3 − β 2 = 448, nach Satz 7.10 sollte Tˆn (y) für großen Stichprobenumfang n 2 -Verteilung genügen. einer χ448 Zu entscheiden ist, ob die Hypothese einer Gleichverteilung auf {0, . . . , β − 1} vereinbar ist mit dem Ergebnis Tˆn (y). Man lehnt die Hypothese nur dann ab, wenn der Wert Tˆn (y) 2 -Verteilung untypischen Randbereich der Werte liegt. Dieser Bereich in einem für die χ448 2 nur eine Wahrscheinlichkeit ≤ α hat. wird so bestimmt, dass er unter der Verteilung χ448
78
7 Statistische Gütekriterien
Nimmt Tˆn (y) Werte in diesem Bereich an und man lehnt die Hypothese ab, so geschieht dies zu Unrecht, d. h. wenn doch tatsächlich gleichverteilte Werte zugrunde lagen, höchstens mit der Wahrscheinlichkeit α. Die Wahrscheinlichkeit für eine Fehler 1. Art ist also durch α beschränkt, das Verfahren ist ein Test zum Niveau α. Konkret wählt man als Ablehnungsbereich die extremen Enden der Verteilung unterhalb des (1 − α/2)-Fraktils bzw. oberhalb des α/2-Fraktils. Der Generator wird also abgelehnt, falls 2 Tˆn (y) < χ448;1− α 2
dabei gilt für die Fraktile 391.24 für α = 0.05 2 χ448;1−α/2 = 374.65 für α = 0.01
oder
2 Tˆn (y) > χ448; α,
und
2 χ448;α/2
2
=
508.53
für α = 0.05
528.85
für α = 0.01
.
ist der , wobei „OPSO“ für „overlappingEng verwandt mit dem werden Häufigkeiten von überpairs-sparse-occupancy“ steht. Ähnlich wie beim lappenden Paaren gezählt, die Prüfgröße ermittelt diesmal aber wieviele der möglichen Wertekombinationen bei den Paaren nicht aufgetreten sind. Der folgende Satz gibt an, welche asymptotische Verteilung diese Prüfgröße hat, wieder unter der Annahme, dass den Zufallszahlen eine Gleichverteilung zugrunde liegt.
Es sei (Yn )n≥0 eine Folge von i.i.d. U({0, . . . , β − 1})-verteilten Zufallsvariablen. Für i, j ∈ {0, . . . , β − 1} sei (wie in Satz 7.10) (n)
Vi j :=
n−2
∑ 1{(i, j)} (Yr ,Yr+1 ) + 1{(i, j)} (Yn−1 ,Y0 )
r=0
und T˜n = T˜n (Y0 , . . . ,Yn−1 ) :=
∑
i, j∈{0,...,β −1}
(n)
1{0} (Vi j ).
T˜n beschreibt gerade die Anzahl der „unbesetzten“ Wertepaare. Dann gilt: T˜n − E (T˜n ) * ≤ t = Φ(t), lim P n→∞ V(T˜n ) wobei Φ die Verteilungsfunktion der Standardnormalverteilung N(0, 1) ist (vgl. Anhang A.11), d. h. T˜n ist asymptotisch normalverteilt. Zum Beweis siehe wieder [Mar85].
7.2 Spezielle Anpassungstests bei Zufallsgeneratoren
79
Bei der Durchführung des werden ähnlich wie in Beispiel 7.11 m Bits der Zufallszahlen x0 , . . . , xn−1 als Stichprobe y:=(y0 , . . . , yn−1 ) aus {0, . . . , 2m − 1} angesehen. Wie in Satz 7.12 angegeben, wird die Anzahl T˜n (y) der in den überlappenden Paaren nicht auftretenden Zahlenkombinationen ermittelt. * Für große n sollte diese Zahl normalverteilt sein, setzt man μn := E (T˜n ) und σn := V(T˜n ), so sollte T˜n − μn Zn := σn also näherungsweise N(0, 1)-verteilt sein. Mit einer Argumentation wie in Beispiel 7.11 wird die Hypothese, dass die zugrundeliegenden Werte gleichverteilt sind, abgelehnt, falls der Wert Zn für N(0, 1) untypisch große oder kleine Werte annimmt, genauer falls |Zn | > uα/2 , wobei uα das α-Fraktil der N(0, 1)-Verteilung ist (vgl. Anhang A.11). Das Problem bei der Durchführung dieses Tests besteht in der Bestimmung von μn und σn . In [Mar85] werden folgende Näherungswerte angegeben für unterschiedliche Werte von m (der Anzahl berücksichtigter Bits) und n: m
n
μn
σn
10 11 11
221
141 909 1 542 998 567 637
290.26 638.75 580.80
222 223
Ein weiterer, häufig benutzter Test, der verborgene Regelmäßigkeiten in den Zufallszahlen auf. Dabei wird die Folge der zu testenden decken soll, ist der sogenannte Zufallszahlen (aus ZM ) zunächst aufsteigend sortiert und es werden die Abstände zwischen aufeinanderfolgenden Werten bestimmt. Die Anzahl von gleichen Abstandwerten wird als Prüfgröße benutzt. Ergebnisse mit diesem Test werden ausführlich beschrieben in [LS01]. Eine Zusammenstellung verschiedener Tests von G. Marsaglia ist im Internet unter http://stat.fsu.edu/pub/diehard verfügbar. Angesichts der Fülle von Zufallsgeneratoren und Qualitätskriterien ist es schwierig, ein Resümee zu ziehen und einzelne Generatoren auszuwählen. Empfehlenswert scheint in jedem Falle (siehe Beispiel 5.1 b)). Gute Reeine Kombination mehrerer Generatoren wie etwa sultate erzielen auch der Mersenne-Twister (siehe (4.3)) und inverse Generatoren wie in Kapitel 5.2, die alle auch bei den analytischen Kriterien gut abgeschnitten haben. Einfache lineare Kongruenzgenerator wie in Beispiel 3.8 d) oder 3.8 e) sollten nur für sehr einfache Anwendungen benutzt werden, da sie rasch an ihre Grenzen stoßen, wenn sehr viele Zufallszahlen mit hoher Präzision benötigt werden.
Teil II Erzeugung von Zufallszahlen mit vorgegebener Verteilung
In den vorangegangenen Kapiteln wurden verschiedenen Verfahren für die Simulation der Gleichverteilung U({0, . . . , M − 1}) bzw. U(0, 1) vorgestellt. Jetzt stellen wir uns die Aufgabe, einen Zufallsgenerator für eine beliebig vorgegebene Verteilung Q auf Rd zu finden, d. h. wir suchen einen Algorithmus, der bei mehrfachem Aufruf eine Folge von Zahlen x0 , x1 , x2 , . . . erzeugt, für die das passende stochastische Modell eine Folge von Zufallsvariablen (Xi )i≥0 ist, die unabhängig und identisch Q-verteilt sind. Die Zielverteilung PX0 = Q kann in unterschiedlicher Form vorgegeben sein: als Verteilungsfunktion F(t) := P(X0 ≤ t) für d = 1, als Dichte f (t), t ∈ Rd , von Q für d ≥ 1 oder als Zähldichte P(X0 = t),t ∈ Nd0 , für diskrete Verteilungen. Als zentrale Voraussetzung nehmen wir im Folgenden stets an, dass ein guter U(0, 1)-Zufallszur Verfügung steht, dass also die Problemstellung aus Teil I gelöst ist. In den generator )-Funktion , Algorithmen benutzen wir deshalb ohne weitere Erläuterung eine ( die bei jedem Aufruf eine Zufallszahl aus [0, 1] liefert. Ferner bezeichne (Un )n≥0 wieder eine i.i.d. Folge von U(0, 1)-verteilten Zufallsvariablen und (un )n≥0 eine Folge von Zufallszahlen in [0, 1], wie sie etwa von obigem Generator erzeugt wird. Die allgemeine Vorgehensweise zur Simulation einer vorgegebenen Verteilung Q kann folgendermaßen umrissen werden: Auf der Ebene des mathematischen Modells sucht man eine geeignete Operation „Op“ auf den reellen Zahlen, so dass die Zufallsvariablen Xn := Op Unl , . . . ,U(n+1)l−1 , n ≥ 0, die Eigenschaft haben: (Xn )n≥0 ist i.i.d. mit PX0 = Q, d. h. man führt die Verteilung Q auf die U(0, 1)-Verteilung zurück (dies ist der schwierigste Teil der Aufgabe). Als Zufallszahlen zur Simulation von Q benutzt man dann xn := Op(unl , . . . , u(n+1)l−1 ),
n ≥ 0.
Es werden im Folgenden zunächst einige allgemeine Verfahren zur Darstellung einer beliebigen Verteilung Q durch die U(0, 1)-Verteilung vorgestellt. In den späteren Kapiteln folgen Generatoren für spezielle Verteilungen.
8 Inversionsmethode 8.1 Die verallgemeinerte Inverse Die Inversionsmethode beruht auf einem sehr einfachen Verfahren, eine eindimensionale Verteilung mit Hilfe von U(0, 1) darzustellen. Theoretisch ist damit das Problem, eine beliebige Verteilung auf R zu simulieren, gelöst. Die praktische Umsetzung scheitert jedoch bei einigen wichtigen Verteilungen daran, dass die dabei benötigte Inverse der Verteilungsfunktion nicht oder nicht effizient berechnet werden kann. Die Eigenschaften einer Verteilungsfunktion werden in Anhang A.5 erläutert. Im Folgenden werden Verteilungsfunktionen stets als Funktionen auf IR := R ∪ {+∞} ∪ {−∞} angesehen, d. h. eine Verteilungsfunktion F wird stets erweitert zu F : R → [0, 1]
mit
F(−∞) := 0, F(+∞) := 1.
Durch diese Erweiterung lässt sich der folgende Begriff der Inversen einfacher einführen. F : R → [0, 1] sei eine Verteilungsfunktion. Die verallgemeinerte Inverse F −1 : [0, 1] → R ist definiert durch
& F −1 (r) := inf t ∈ R | F(t) ≥ r , r ∈ [0, 1]. Dabei setzen wir inf 0/ = +∞.
1 F(t)
F −1 (r)
t 0
0
r 1
Abbildung 8.1: Eine stetige Verteilungsfunktion und ihre Inverse
Abbildung 8.1 und 8.2 zeigen Beispiele von Verteilungsfunktionen und ihren verallgemeinerten Inversen. Der folgende Satz fasst wichtige Eigenschaften von F −1 zusammen.
86
8 Inversionsmethode
Es sei F eine Verteilungsfunktion und F −1 die zugehörige verallgemeinerte Inverse. Dann gilt:
& a) F −1 (r) = min t ∈ R | F(t) ≥ r , r ∈ [0, 1], d. h. das Infimum wird stets angenommen. b) F −1 (r) ≤ t ⇔ F(t) ≥ r für alle r ∈ [0, 1] und t ∈ R. c) Ist F streng monoton wachsend und stetig, dann ist F −1 die Umkehrabbildung (im Sinne der Analysis) von F. Allgemein gilt nur F −1 (F(t)) ≤ t und F(F −1 (r)) ≥ r. d) r → F −1 (r) ist monoton wachsend und von links stetig.
1 pd pc
F −1 (r)
d c
F(t)
pb b pa
a t a
b
c d
−∞
pa
pb pc pd
1
r
Abbildung 8.2: Eine diskrete Verteilung auf den Punkten a, b, c, d und ihre Inverse
& Beweis: a) Sei r ∈ [0, 1] und Ir := t ∈ R | F(t) ≥ r , also F −1 (r) = inf Ir . 1. Es gilt F(+∞) = 1 ≥ r, also +∞ ∈ Ir . Ferner folgt für alle t,t ∈ R mit t ≤ t und t ∈ Ir auch F(t ) ≥ F(t) ≥ r, d. h. mit t ∈ Ir folgt auch t ∈ Ir . Also muss es ein t0 ∈ R geben mit Ir = (t0 , +∞] oder Ir = [t0 , +∞]. 2. Für alle h > 0 gilt dann t0 + h ∈ Ir , d. h. F(t0 + h) ≥ r. Da F von rechts stetig ist, folgt F(t0 ) = limh↓0 F(t0 + h) ≥ r, also auch t0 ∈ Ir . Damit folgt Ir = [t0 , ∞] und
&
& t0 = inf t ∈ IR | F(t) ≥ r = min t ∈ IR | F(t) ≥ r , dabei ist t0 = −∞ bzw. t0 = +∞ möglich, es gilt sogar stets F −1 (0) = −∞. b) Aus a) folgt &
F −1 (r) ≤ t ⇔ min t ∈ R | F t ≥ r ≤ t ⇔ t ∈ Ir ⇔ F(t) ≥ r. c) Für stetiges F gibt es für alle r ∈ [0, 1] ein t ∈ R mit F(t) = r, daher
&
& F −1 (r) = min t ∈ IR | F(t) ≥ r = min t ∈ IR | F(t) = r
8.2 Das Inversionsprinzip
87
und damit F F −1 (r) = r. Ohne die Stetigkeit gilt hier lediglich: F F −1 (r) ≥ r. Ist F streng monoton wachsend, so folgt für t,t ∈ R aus F(t) = F(t ) stets t = t . Daher &
F −1 (F(t)) = min t ∈ R | F t ≥ F(t) = t. Ohne die strenge Monotonie gilt hier nur: F −1 (F(t)) ≤ t. d) F −1 ist monoton wachsend, denn es gilt für r, r ∈ [0, 1] mit r < r stets {t ∈ R | F(t) ≥ r} ⊃ {t ∈ R | F(t) ≥ r } und damit &
&
F −1 (r) = min t ∈ R | F(t) ≥ r ≤ min t ∈ R | F(t) ≥ r = F −1 r Für die Stetigkeit von links von F −1 an der Stelle r ist zu zeigen, dass für alle Folgen (hn )n≥0 mit hn ≥ hn+1 > 0 und limn→∞ hn = 0 gilt limn→∞ F −1 (r − hn ) = F −1 (r). Zunächst folgt aus der Monotonie F −1 (r − hn ) ≤ F −1 (r − hn+1 ) ≤ . . . ≤ F −1 (r), d. h. limn→∞ F −1 (r − hn ) existiert, und es gilt limn→∞ F −1 (r − hn ) ≤ F −1 (r). Für die Gültigkeit von limn→∞ F −1 (r − hn ) ≥ F −1 (r) genügt es zu zeigen, dass für jedes t ∈ R aus limn→∞ F −1 (r − hn ) ≤ t auch F −1 (r) ≤ t folgt. Dies ergibt sich aber mit b) aus lim F −1 (r − hn ) ≤ t
n→∞
⇒ F −1 (r − hn ) ≤ t für alle n ⇒ F(t) ≥ r − hn für alle n ⇒ F(t) ≥ r = lim (r − hn ) ⇒ F −1 (r) ≤ t. n→∞
8.2 Das Inversionsprinzip Lässt sich der Wert von F −1 (r) für alle r ∈ (0, 1) auf dem Rechner bestimmen, so liefert der folgende wichtige Satz ein allgemeines Prinzip zur Simulation von F. (I NVERSIONSPRINZIP) Es sei F eine Verteilungsfunktion und U eine U(0, 1)–verteilte Zufallsvariable. Dann gilt: Y := F −1 (U) hat die Verteilungsfunktion F, d. h. P(Y ≤ t) = F(t), t ∈ R. Beweis: Es gilt P(Y ≤ t) = P F −1 (U) ≤ t = P(U ≤ F(t)) = F(t),
t ∈ IR,
da aus Satz 8.2 b) folgt F −1 (U) ≤ t ⇐⇒ U ≤ F(t) und P(U ≤ s) = s, s ∈ [0, 1].
88
8 Inversionsmethode
a) Wegen P(U∈ {0, 1}) = 0 können F −1 (0) und F −1 (1) beliebig festgelegt werden, ohne dass sich an P F −1 (U) ≤ t = F(t) etwas ändert. Dadurch können bei der algorithmischen Umsetzung ±∞ als Werte von F −1 (·) vermieden werden. Ist die zu F gehörende Verteilung auf ein Intervall [a, ∞) konzentriert, so ist es häufig günstig F −1 (0) := a zu setzen. Wir werden im Folgenden diese geänderte Funktion gleichfalls mit dem Symbol F −1 bezeichnen. b) Da mit U auch 1 −U die Verteilung U(0, 1) besitzt, gilt für in Satz 8.3 auch: F −1 (1 −U) hat Verteilungsfunktion F. Dies führt gelegentlich auf einen einfacheren Algorithmus. c) Es gilt die folgende Umkehrung von Satz 8.3: Ist F die stetige Verteilungsfunktion einer Zufallsvariablen X, so hat Y := F(X) die Verteilung U(0, 1). Dies folgt mit Satz 8.3 c) da P(F(X) ≤ r) = P(X ≤ F −1 (r)) = F(F −1 (r)) = r, r ∈ [0, 1]. Nach Satz 8.3 ist nun der folgende Schluss gerechtfertigt: Ist (un )n≥0 eine Folge von Zufallszahlen, die U(0, 1) simulieren und ist F −1 die verallgemeinerte Inverse einer Verteilungsfunktion F, so simuliert xn := F −1 (un ), n = 0, 1, . . . die Verteilung mit Verteilungsfunktion F. Dies führt auf den folgenden Algorithmus. Voraussetzung:
I NVERSIONSALGORITHMUS berechnet die verallgemeinerte Inverse F −1 (r).
Damit ist das Problem „ Simulation der Verteilung mit Verteilungsfunktion F“ gelöst, sofern F −1 auf dem Rechner effizient ausführbar ist. Dies ist leider für einige wichtige Fälle nicht möglich. Zunächst aber einige Beispiele, bei denen der Inversionsalgorithmus einsetzbar ist. a) Bernoulli-Verteilung b(1, p) Es sei die Verteilung einer diskreten Zufallsvariablen X zu simulieren mit P(X = a) = p, P(X = b) = 1 − p, für feste Werte a < b. Für die Verteilungsfunktion F von X und ihre Inverse gilt also (vgl. Abb. 8.2 auf Seite 86): ⎧ ⎧ ⎪ ⎪ ⎨ −∞ für r = 0 ⎨ 0 für t < a −1 F(t) = F (r) = a für 0 < r ≤ p . p für a ≤ t < b , ⎪ ⎪ ⎩ ⎩ b für p < r ≤ 1 1 für t ≥ b Mit Bemerkung 8.4 a) setzten wir F −1 (0) := a, der zugehörige Simulationsalgorithmus nach dem Inversionsprinzip 8.5 lautet dann:
8.2 Das Inversionsprinzip
89
f (t)
1 b−a
t a
b
1
b
F(t)
a
t a
F −1 (r)
r −∞
b
1
Abbildung 8.3: Dichte, Verteilungsfunktion und Inverse für U([a, b]).
≤ b) Gleichverteilung U ([a, b]) mit −∞ < a < b < +∞ U([a, b]) hat die folgende Dichte f bzw. Verteilungsfunktion F (vgl. Abb. 8.3): ⎧ 0 für t < a ⎪ ⎨ 1 t−a 1 (t), f (t) = F(t) = für a ≤ t < b , t ∈ R. b−a ⎪ b − a [a,b] ⎩ 1 für t ≥ b Da F in (a, b) umkehrbar ist, folgt
F
−1
(r) :=
⎧ ⎪ ⎨ ⎪ ⎩
−∞ (b − a)r + a b
für r = 0 für 0 < r < 1 . für r = 1
Mit der Abänderung F −1 (0) := a ergibt sich als Inversionsalgorithmusaus Für U([−1, +1]) folgt mit F −1 (r) = 2r − 1, r ∈ (0, 1), der Algorithmus Für U([0, b]) folgt mit F −1 (r) = br, r ∈ (0, 1),
c) Exponentialverteilung exp (α) Die Exponentialverteilung mit dem Parameter α > 0 hat die Dichte f (t) = αe−αt , t > 0, und die Verteilungsfunktion F(t) = 1 − e−αt ,t > 0, vgl. Abbildung 8.4. F ist streng monoton wachsend und stetig, daher folgt mit Satz 8.2 (d) für r ∈ (0, 1) (vgl. Abb. 8.5): F −1 (r) = − α1 ln(1 − r), d. h. X := F −1 (1 − U) = − α1 lnU hat die exp(α)-Verteilung,
90
8 Inversionsmethode
1.0 0.8 0.6 0.4 0.2
0
5
10
15
t
Abbildung 8.4: Die Verteilungsfunktion von exp(α) für α = 0.6 .
6
6
4
4
F −1 (r)
2
Fˆ −1 (r)
2
r
r 0.0
0.2
0.4
0.6
0.8
1.0
0.0
0.2
0.4
0.6
0.8
1.0
Abbildung 8.5: Die inversen Verteilungsfunktionen F −1 (r) und Fˆ −1 (r) := F −1 (1 − r) von exp(α) für α = 0.6 .
falls U die U(0, 1)-Verteilung besitzt. Dies ergibt den folgenden Inversionsalgorithmus, in abgefangen werden muss: dem gegebenfalls noch der Fall − α1 d) Normalverteilung N (0, 1)
+
t s2 1 Zur Verteilungsfunktion Φ(t) = √ e− 2 ds der Standardnormalverteilung ist die In2π −∞ verse Φ−1 nicht explizit angebbar, eine Inversion ist daher nur über eine Approximation oder z. B. mit Hilfe einer umfangreichen Tafel möglich. In Kapitel 10.2 stellen wir eine Methode zur Simulation von N(0, 1) vor, die ohne Inverse von Φ auskommt.
8.3 Inversion bei diskreten Verteilungen Die Verteilung einer Zufallsvariablen X mit Werten in {1, . . . , K} ist durch den Vektor (p1 , . . . , pK ) der Zähldichte mit pi := P(X = i) > 0, 1 ≤ i ≤ K, bestimmt. Für die diskrete Verteilungsfunktion F(t) = ∑Ki=1 pi 1(−∞,t] (i) gilt insbesondere (vgl. Abb. 8.6) F(m) = ∑mj=1 p j für m ∈ N.
8.3 Inversion bei diskreten Verteilungen
91
1.0
0.8
F(t)
0.6
0.4
0.2
t 0
2
4
6
8
10
Abbildung 8.6: Die Verteilungsfunktion der b(10, 0.4)-Verteilung.
Für r ∈ (0, 1] folgt daher: F
−1
%
K
(r) = min t ∈ R | ∑ pi 1(−∞,t] (i) ≥ r i=1
= dasjenige m ∈ {1, . . . , K} mit
m
%
= min m ∈ {1, . . . , K} | ∑ pi ≥ r i=1
m−1
m
i=1
i=1
(8.1)
∑ pi < r ≤ ∑ pi . m
Eine Implementierung von F −1 besteht nun darin, den passenden Wert in der Liste der ∑ pi , m = i=1
1, . . . , K, zu finden: I NVERSION BEI DISKRETER V ERTEILUNG / /F enthält F(m)
pm
Der folgende Satz bestimmt die Laufzeit von Algorithmus 8.7.
Es sei X eine Zufallsvariable mit Zähldichte p1 , . . . , pK . Die mittlere Anzahl von Durchläufen -Schleifen in Algorithmus 8.7 ist E X. der
92
8 Inversionsmethode
Beweis: Für die Bestimmung der mittleren Anzahl benutzen wir das mathematische Modell , d. h. wir ersetzen im Algorithmus die Variable u durch eine des Zufallsgenerators -Schleifendurchläufe, U(0, 1)-verteilte Zufallsvariable U. T sei die Anzahl der benötigten m
dann gilt mit F(m) = ∑ pi , 1 ≤ m ≤ K i=1
T = min{m ≥ 1 | F(m) ≥ U} = F −1 (U),
(8.2)
also hat T nach Satz 8.3 dieselbe Verteilung wie X und E T = E X Satz 8.8 besagt, dass die mittlere Laufzeit des Algorithmus gleich dem Mittelwert der zu simulierenden Verteilung ist. Satz 8.12 unten zeigt, wie diese Laufzeit verbessert werden kann.
a) Diskrete Gleichverteilung U ({1, . . . , K}) Hier gilt p1 = . . . = pK = K1 und daher m
m
m 1 = , K K i=1
F(m) = ∑ pi = ∑ i=1
m = 1, . . . , K,
und für r ∈ (0, 1) F −1 (r) = min{m ∈ {1, . . . , K} |
m ≥ r} = rK, K
wobei a die kleinste ganze Zahl ≥ a für a ∈ R bezeichnet. Der entsprechende Algorithmus lautet:
dabei entspricht die Umwandlung U({0, . . . , K}) benutzt man
→
für a ≥ 0 gerade der Operation a. Für
= 1 abgefangen werden.
Hier muss der Fall b) Poisson-Verteilung π(λ)
k
π(λ ) hat die Zähldichte π(λ )(k) = e−λ λk! , k ∈ N. Es gilt pi+1 := π(λ )(i + 1) = e−λ
λ λ λ i+1 λ ·λi = e−λ = π(λ )(i) = pi (i + 1)! (i + 1) · i! i+1 i+1
und p0 := π(λ )(0) = e−λ . Dadurch können die p0 , p1 , . . . sukzessive erzeugt werden: −λ
/ / p enthält pm / /F enthält F(m)
8.3 Inversion bei diskreten Verteilungen
93
λ m
Für die mittlere Laufzeit gilt nach Satz 8.8: E T = E X = λ . c) Binomialverteilung b(n, p) b(n, p) hat die Zähldichte n k b(n, p)(k) = p (1 − p)n−k k
für k ∈ {0, . . . , n}, n ∈ N, p ∈ (0, 1).
Ein Algorithmus kann wie in b) gebildet werden mit pi+1 =
n−i p · pi , i+1 1− p
p0 := (1 − p)n .
Als mittlere Laufzeit ergibt sich np. d) Geometrische Verteilung geom(p) geom(p) hat die Zähldichte geom(p)(k) = pqk
für k ∈ N0 ,
p ∈ (0, 1),
q = 1 − p.
Auch hier kann die Zähldichte sukzessiv erzeugt werden mit pi+1 = q · pi , p0 := p. Als mittlere Laufzeit ergibt sich 1−p p . Wird der Inversionsalgorithmus für eine diskrete Verteilung sehr oft aufgerufen, so lohnt es sich unter Umständen, die Suche nach dem Wert m in Algorithmus 8.7 zu beschleunigen. Die Suche geht schneller, wenn die p1 , . . . , pm so umsortiert werden, dass große Werte pi nach vorne kommen. Das Konzept der stochastischen Ordnung liefert dazu den theoretischen Hintergrund.
Es seien X,Y Zufallsvariablen mit Werten in R und Verteilungsfunktion FX bzw. FY . Y heißt stochastisch kleiner als X (Abk.: Y X), falls gilt P(Y ≤ t) ≥ P(X ≤ t) für alle t ∈ R. Gleichbedeutend damit ist offensichtlich: FY (t) ≥ FX (t),t ∈ R.
94
8 Inversionsmethode
Es seien X,Y Zufallsvariablen mit Y X. Es gilt dann für alle g : R → R, die monoton wachsend sind und für die die nachfolgenden Integrale existieren: E g(Y ) ≤ E g(X).
Beweis: Der Beweis wird durch eine Induktion über den Aufbau von g geführt. Ist g eine Indikatorfunktion g(t) = 1A (t), so muss wegen der Monotonie von g die Menge A die Gestalt A = [a, ∞) oder A = (a, ∞) für ein a ∈ R haben. Für A = (a, ∞) folgt E g(Y ) = E 1(a,∞) (Y ) = P(Y > a) = 1 − P(Y ≤ a) ≤ 1 − P(X ≤ a) = P(X > a) = E g(X) wegen P(Y ≥ a) = 1 − P(Y < a) = 1 − lim FY (a − h) ≤ 1 − lim FX (a − h) = P(X ≥ a) h↓0
h↓0
folgt die entsprechende Aussage auch für A = [a, ∞). Aus den Eigenschaften des Integrals folgt die Aussage E g(Y ) ≤ E g(X) für alle nicht-negativen, monoton wachsenden Funktionen g. Ebenso zeigt man, dass die Aussage E h(Y ) ≥ E h(Y ) für alle nicht-negative, monoton fallende Funktionen h gilt. Für eine beliebige monoton wachsende Funktion g folgt dann die Behauptung, da ihr Positivteil g+ (t) := max{g(t), 0} monoton wachsend und ihr Negativteil g− (t) := max{−g(t), 0} monoton fallend ist. Der folgende Satz zeigt, wie durch die Sortierung der Zähldichte eine stochastisch kleinere Zufallsvariable gefunden wird. Es sei X eine Zufallsvariable mit Werten in {1, . . . , K} und Zähldichte pi := P(X = i), 1 ≤ i ≤ K. Es sei π eine Permutation der Indizes 1, . . . , K, so dass gilt pπ(1) ≥ pπ(2) ≥ · · · ≥ pπ(K) , d. h. die Zähldichte wird durch π absteigend sortiert. Dann nimmt Y := π −1 (X) Werte an in {1, . . . , K} und es gilt Y X und EY ≤ E X. Beweis: Es gilt für alle l ∈ {1, . . . , K} P(Y ≤ l) =
l
i=1
=
l
l
i=1
i=1
∑ P(Y = i) = ∑ P(π −1 (X) = i) = ∑ P(X = π(i)) l
l
i=1
i=1
∑ pπ(i) ≥ ∑ pi = P(X ≤ l).
also ist Y ≺ X. Die zweite Behauptung folgt sofort aus Satz 8.11, da g(t) := t monoton wachsend ist.
8.3 Inversion bei diskreten Verteilungen
95
Mit Hilfe von Satz 8.12 kann Algorithmus 8.7 beschleunigt werden, indem zunächst eine absteigende Sortierung der Zähldichte p1 , . . . , pK durch eine Permutation π der Indizes 1, . . . , K vorgenommen wird. Die sortierte Zähldichte von Y = π −1 (X) wird mit dem Algorithmus 8.7 simuliert. Anstelle des Wertes Y muss dann der korrekte Wert X = π(Y ) zurückgegeben werden. Für die Laufzeit EY gilt nach Satz 8.12 EY ≤ E X. Technisch lässt sich dies folgendermaßen realisieren. Die Paare (i, pi ) i = 1, . . . , K aus und werden in einem geeigneten Feld gespeichert. Das Feld wird sortiert, so dass die Werte pi absteigend sind.
/ /F(m)=F(m−1)+pπ(m)
Gegenüber dem ursprünglichen Algorithmus erfordert dies einen (einmaligen) Mehraufwand für die Sortierung der Zähldichte. Eine weitere Beschleunigung kann erreicht werden, wenn die Werte der Verteilungsfunktion F(m), m = 1, . . . , K, in einer für das Suchen besonders geeigneter Datenstruktur (Baum) gespeichert werden, vgl. z. B. [Dev86], S. 88 ff. Besonders schnell ist die Alias-Methode, die wir in Kapitel 11 vorstellen und die eine Simulation in konstanter Zeit erlaubt. Diese Beschleunigungen erfordern aber alle einen gewissen Aufwand zur Erzeugung der benötigten Datenstruktur, der sich nur dann lohnt, wenn der Algorithmus sehr oft aufgerufen wird.
9 Annahme-Verwerfungsmethode Die Inversionsmethode aus Kapitel 8 ist zur Simulation von Verteilungen auf R1 mit einer berechenbaren inversen Verteilungsfunktion F −1 geeignet. Die Annahme-Verwerfungsmethode ist dagegen anwendbar, wenn eine Verteilung mit einer Dichte f simuliert werden soll und es eine Hilfsdichte g gibt, die „so ähnlich“ aussieht wie f und für die bereits ein Zufallsgenerator vorliegt. In diesem Kapitel seien f und g stets Dichten auf Rd , d ≥ 1, und es gelte für ein c ∈ R f (x) ≤ c · g(x)
für alle x ∈ Rd ,
(9.1)
vgl. Abb. 9.1. Wenn wir den trivialen Fall g = f ausschließen, so muss c > 1 gelten, c · g(t) ist dann keine Dichte (wieso?). f g
f
c·g
Abbildung 9.1: Dichten f , g mit f ≤ c · g
Folgendes Verfahren liefert einen Zufallsgenerator zur Dichte f , falls fallsgenerator ist, der die Dichte g simuliert:
ein Zu-
A NNAHME -V ERWERFUNGSMETHODE
Solange in der -Schleife Werte (x, y) mit y > f (x) produziert werden, wird x „verworfen“, sobald jedoch y ≤ f (x) gilt, wird der Wert x „angenommen“, d. h. als Zufallszahl zurückgegeben. Bevor wir beweisen, dass die so erzeugten Zufallszahlen x tatsächlich die Dichte f simulieren, betrachten wir ein einfaches Beispiel.
98
9 Annahme-Verwerfungsmethode
D
a
b
Abbildung 9.2: Eine beschränkte Dichte mit Träger [a, b].
Es sei f eine Dichte wie in Abbildung 9.2, d. h. f (x) = 0 für x ∈ / [a, b] und f (x) ≤ D für x ∈ [a, b]. Es sei g(x) = 1/(b − a) 1[a,b] (x) die Dichte der Gleichverteilung U([a, b]). Mit c := D · (b − a) gilt D · (b − a) = D ≥ f (x), für x ∈ [a, b] c · g(x) = b−a und f (x) = 0 = c·g(x) für x ∈ / [a, b], d. h. (9.1) gilt. Für die Abbruchbedingung der und y = u · c · g(x) Schleife in Algorithmus 9.1 gilt mit u = y ≤ f (x) ⇐⇒ u ·
D · (b − a) 1 (x) ≤ f (x) (b − a) [a,b]
/ [a, b]. ⇐⇒ u · D 1[a,b] (x) ≤ f (x) ⇐⇒ (D · u ≤ f (x) ∧ x ∈ [a, b]) ∨ x ∈ Einen Generator
für die U([a, b])-Verteilung erhält man aus Bsp. 8.6 b):
Dieser Generator erzeugt nur Werte in [a, b], daher vereinfacht sich Algorithmus 9.1 zu
In diesem Algorithmus simuliert x offensichtlich die U([a, b])- und y die U([0, D])Verteilung. Da beide Simulationen unabhängig voneinander vorgenommen werden, simuliert das Paar (x, y) die U([a, b] × [0, D])-Verteilung, also die Gleichverteilung auf dem Rechteck A := [a, b] × [0, D], das den Graph von f umschließt, vgl. Abb. 9.3. Das Verfahren kann man sich deshalb auch so veranschaulichen: Punkte (x, y) werden zufällig (gleichverteilt) in das Rechteck [a, b] × [0, D] „geworfen“. Gilt y ≥ f (x), d. h. liegt der
99
Punkt über dem Graph von f , so wird er verworfen, dies ist in dem grau unterlegten Gebiet in Abb. 9.3 der Fall. Liegt der Punkt (x, y) unter dem Graph, so wird er angenommen und die erste Koordinate (hier x) wird als Zufallszahl zurückgegeben. Die Intensität mit der bei diesem Verfahren ein bestimmter Wert x0 erzeugt wird, hängt offensichtlich direkt von f (x0 ) ab, daher ist es plausibel, dass hier f simuliert wird.
D
y
a
x
b
Abbildung 9.3: Punkte (x, y), die in die grau markierte Region fallen, werden verworfen.
Die Vorstellung von Punkten, die zufällig in eine Fläche geworfen werden, lässt sich auf beliebige Hilfsdichten g übertragen, bei denen das umschließende Rechteck durch folgende Menge ersetzt wird (9.2) A := {(x, y) ∈ Rd × R | x ∈ Rd , y ≤ c · g(x)}. A ist die Menge aller Punkte ‘unter dem Graph von c · g’. Der folgende Satz charakterisiert die Gleichverteilung auf dieser Menge, es ergibt sich dann, dass die in Algorithmus 9.1 erzeugten Punkte (x, y) gleichverteilt sind auf A.
Es sei g eine Dichte auf Rd und A wie in (9.2). Dann gilt a) λ d+1 (A) = c, wobei λ d+1 das (d + 1)-dimensionale Volumen im Rd+1 bezeichnet. b) Die Zufallsvariablen (X1 , . . . , Xd ,Y ) haben die Gleichverteilung U(A) als gemeinsame Verteilung ⇐⇒ X := (X1 , . . . , Xd ) hat die Dichte g und es gilt y für 0 ≤ y < cg(x) min{y, cg(x)} c·g(x) (9.3) = P[Y ≤ y | X = x] = c · g(x) 1 für y ≥ cg(x) für y ≥ 0, x ∈ Rd , d. h. die Gleichverteilung U([ 0, c · g(x)]) ist eine Version der bedingten Verteilung von Y unter der Bedingung X = x (vgl. Anhang A.8).
100
9 Annahme-Verwerfungsmethode
Beweis: a) Da g Dichte auf Rd ist, folgt sofort (vgl. Abbildung 9.4) λ
d+1
(A) =
+ Rd
+ c·g(x) 0
+
1 λ (dy) λ (dx) = d
c · g(x) λ (dx) = c d
Rd
+ Rd
g(x) λ d (dx) = c.
b) Die Gleichverteilung U(A) (vgl. Anhang A.10) hat die Dichte h(x, y) := 1c 1A (x, y). Wegen
c · g(x) A
c·g g
Rd
x Abbildung 9.4: Die Menge A „unter der Kurve“ c · g für d = 1. Für festes x simulieren die Punkte (x, y) eine Gleichverteilung auf der markierten Strecke.
1A (x, y) = 1 ⇐⇒ y ≤ g(x) gilt h(x, y) = 1c 1[0,cg(x)] (y). Für ein Rechteck B × [0,t] mit B ⊂ Rd folgt dann + + + 1 d+1 h(x, y) λ (d(x, y)) = 1[0,cg(x)] (y) λ (dy) λ d (dx) (9.4) B×[0,t] B c [0,t] + + min{t, cg(x)} 1 min{t, cg(x)} λ d (dx) = g(x) λ d (dx). = c cg(x) B B Sei nun U(A) die gemeinsame Verteilung von (X,Y ). Dann folgt für die Randverteilung von X wie in (9.4), indem man [0,t] durch R ersetzt P(X ∈ B)
= =
P((X,Y ) ∈ B × R) = +
+
B×R
h(x, y) λ d+1 (d(x, y))
min{∞, cg(x)} g(x) λ d (dx) = cg(x) B
+ B
g(x) λ d (dx)
für B ⊂ Rd . Also ist g Dichte von X. Um die zweite Behauptung zu beweisen, müssen wir zeigen, dass sich die gemeinsame Verteilung durch „Aufintegrieren“ der bedingten Verteilung gewinnen lässt, wie in Anhang A.8 beschrieben. Es genügt, dazu Rechtecke B × [0,t] mit B ⊂ Rd zu betrachten, zu zeigen ist also P(X ∈ B,Y ≤ t) =
+ B
min{t, cg(x)} PX (dx). c · g(x)
(9.5)
Da wir bereits wissen, dass g eine Dichte von X ist, stimmt die rechte Seiten von (9.5) mit dem letzten Ausdruck in (9.4) überein. Da nach Voraussetzung die gemeinsame Verteilung von (X,Y ) die Gleichverteilung U(A) ist, stimmt auch die linke Seite von (9.5) mit dem ersten Ausdruck in (9.4) überein. Damit ist die eine Richtung der Äquivalenz bewiesen.
101
Für die Rückrichtung sei nun g eine Dichte von X und (9.3) eine Version der bedingten Verteilung PY |X=x . Die gemeinsame Verteilung von (X,Y ) ergibt sich aus Gleichung (9.5), wobei deren rechte Seite nach Voraussetzung mit dem letzten Ausdruck in (9.4) überienstimmt. Liest man nun (9.4) von rechts nach links, so ergibt sich, dass h(x, y) die gemeinsame Dichte von (X,Y ) sein muss, da h die Dichte von U(A) ist, ist der Beweis vollständig. Der Satz zeigt, dass die in Algorithmus 9.1 erzeugten Punkte die Gleichverteilung auf A simulieren: zunächst werden die unmittelbar zur Dichte g simuliert. Der Aufruf erzeugt dann eine Zufallszahl , die zu gegebenem x gerade U([ 0, cg(x)]) simuliert (vgl. die GleichBeispiel 8.6 b)). Aus Satz 9.4 b) kann daher gefolgert werden, dass das Paar verteilung auf A simuliert. Wir zeigen nun, dass die vom Annahme-Verwerfungsalgorithmus 9.1 erzeugte Zufallszahlen tatsächlich die Dichte f simulieren. Dazu beachte man, dass im mathematischen Modell der bei -Schleife zurückgegebene Wert die bedingte Verteilung von X unter der Abbruch der Bedingungen Y ≤ f (X) simuliert. Es seien f , g Dichten auf Rd mit (9.1) und A wie in (9.2). Hat (X,Y ) = (X1 , . . . , Xd ,Y ) die gemeinsame Verteilung U(A), so gilt P[X ∈ B | Y ≤ f (X)] =
+ B
f (x) λ d (dx),
B ⊂ Rd ,
d. h. f ist eine Dichte der bedingten Verteilung von X unter der Bedingung Y ≤ f (X). Beweis: Aus Satz 9.4 b) erhalten wir die Randverteilung von X und eine Version der bedingten Verteilung von Y. Daraus folgt mit dem Satz von der totalen Wahrscheinlichkeit (Anhang A.9) P (X ∈ B,Y ≤ f (X)) = =
+
+B B
P[Y ≤ f (X) | X = x] PX (dx)
P[Y ≤ f (x) | X = x] g(x) λ d (dx)
+
(9.6)
min{ f (x), cg(x)} g(x) λ d (dx) cg(x) B + 1 = f (x) λ d (dx), c B
=
da wegen (9.1) stets min{ f (x), cg(x)} = f (x) gilt. Aus (9.6) folgt mit B = Rd sofort + 1 1 f (x)λ d (dx) = . P(Y ≤ f (X)) = P X ∈ Rd ,Y ≤ f (X) = c Rd c
(9.7)
Für die (elementare) bedingte Wahrscheinlichkeit gilt mit (9.6), (9.7) P(X ∈ B,Y ≤ f (X)) P[X ∈ B | Y ≤ f (X)] = = P(Y ≤ f (X))
1, c B
f (x) λ d (dx) 1 c
=
+ B
f (x) λ d (dx)
102
9 Annahme-Verwerfungsmethode
Der folgende Satz modelliert Algorithmus 9.1 noch etwas genauer, indem alle während der Schleifendurchläufe erzeugten Werte durch Zufallsvariablen Xi ,Yi beschrieben werden. Dadurch kann auch die mittlere Laufzeit bestimmt werden. Die Laufzeit des Algorithmus 9.1 hängt im wesentlichen von der Anzahl der Schleifendurchläufe, also der Zahl der Verwerfungen, ab. Eine Verwerfung findet immer dann statt, wenn Yi > f (Xi ) gilt.
Es seien (Xi )i≥1 Zufallsvariablen mit Werten in Rd , (Yi )i≥1 mit Werten in R. Die Folge (Xi ,Yi )i≥1 sei i.i.d. mit Verteilung U(A), wobei A wie in (9.2) gegeben sei. Weiter seien 1 falls Yi ≤ f (Xi ) Zi := i = 1, 2, . . . und T := min{i ≥ 1 | Zi = 1}. 0 sonst Dann gilt a) Die Folge (Zi )i≥1 ist i.i.d. mit P(Zi = 1) = 1c . b) ET = c. c) XT hat die Dichte f . Hier beschreibt Zi = 1 die Situation, dass das i-te Punktpaar (Xi ,Yi ) angenommen wird, also Yi ≤ f (Xi ) gilt. T ist die Anzahl der Paare, die erzeugt werden müssen, bis zur ersten Annahme, ET ist daher die mittlere Laufzeit. XT ist der vom Algorithmus 9.1 zurückgegebene Wert. Beweis: a) Aus (9.7) folgt p := P(Zi = 1) = P(Yi ≤ f (Xi )) = 1c . Da die (Xi ,Yi )i≥1 i.i.d. sind, folgt, dass auch die (Zi )i≥1 i.i.d. sind. b) Aus a) folgt für k ≥ 0 P(T − 1 = k) = P(T = k + 1) = P(Z1 = · · · = Zk = 0, Zk+1 = 1) = (1 − p)k p, d. h., T − 1 ist geometrisch verteilt, für den Erwartungswert gilt E T = 1/p = c. c) Für B ⊂ Rd gilt nach Satz 9.5 P(XT ∈ B) = =
∞
∑ P[XT ∈ B | T = i ] P(T = i)
i=1 ∞ +
∑
i=1 B
=
f (x) λ d (dx) · (1 − p)i−1 p =
∞
∑ P[Xi ∈ B | Yi ≤ f (Xi )] · (1 − p)i−1 p
i=1
+
B
f (x)λ d (dx)
Dabei haben wir ausgenutzt, dass Xi unabhängig ist von Z1 , . . . , Zi−1 und daher P[Xi ∈ B | T = i] = P[Xi ∈ B | Z1 = 0, . . . , Zi−1 = 0, Zi = 1] = P[Xi ∈ B | Zi = 1].
103
Satz 9.6 zeigt also (noch einmal), dass der Algorithmus 9.1 eine Zufallszahl zur Simulation der Dichte f erzeugt und dass die mittlere Laufzeit mit der in (9.1) benutzten Konstanten c übereinstimmt. Dies bedeutet insbesondere, dass diese Konstante möglichst klein gewählt werden sollte. Aus (9.1) ergibt sich daher als günstigster Wert für c c := sup x∈Rd
f (x) g(x)
(mit
0 = 0). 0
(9.8)
Der Annahme-Verwerfungsalgorithmus 9.1 wird auch gerne in der folgenden Form benutzt:
In dieser Form lässt sich die die Bedingung dem folgenden Beispiel.
oft noch vereinfachen, wie in
1 1 (t) erhält man als minimale Konb − a [a,b] stante c = D(b − a), d. h. minimale mittlere Laufzeit wird bei minimalem einschließenden Rechteck [a, b] × [0, D] erzielt. Anschaulich wird dadurch die „Verschnittfläche“ minimiert, auf der eine Ablehnung erfolgt, siehe Abb. 9.3 auf Seite 99.
a) Für eine Dichte f wie in Bsp. 9.2 und g(t) =
b) Es sei Q := U(K) die Gleichverteilung auf der Kreisscheibe K im R2 , wobei &
K = K2 (r) := (x1 , x2 ) ∈ IR2 | x12 + x22 ≤ r2 . Als Dichte von U(K) erhält man (vgl. Abb. 9.5): f (x1 , x2 ) =
1
1K (x1 , x2 ) = λ 2 (K)
1 1K (x1 , x2 ) πr2
Es sei g(x1 , x2 ) die Dichte der Gleichverteilung auf dem Quadrat [−r, r]2 also 1 g(x1 , x2 )= 2 1[−r,r]2 (x1 , x2 ) und mit (9.8) 4r c := sup x∈R2
f (x) = sup g(x) x∈R2
1 1 (x , x ) πr2 K 1 2
1 1 (x , x ) 4r2 [−1,1]2 1 2
=
4 . π
104
9 Annahme-Verwerfungsmethode
x2 f (x1 , x2 ) x1 K2 (r)
Abbildung 9.5: Die Dichte von U(K2 (r)).
-Schleife mit (x1 , x2 ) ∈ [−r, r]2 :
Es folgt dann für die Abbruchbedingung der y = u · c · g(x1 , x2 ) ≤ f (x1 , x2 )
⇐⇒
4 1 1 1[−r,r2 ] (x1 , x2 ) ≤ 2 1K (x1 , x2 ) 2 π 4r πr u · 1[−r,r2 ] (x1 , x2 ) ≤ 1K (x1 , x2 )
⇐⇒
u = 0 ∨ 1K (x1 , x2 ) = 1
⇐⇒
u = 0 ∨ x12 + x22 ≤ r.
⇐⇒
u·
r −r
r
−r Abbildung 9.6: Annahme- und Ablehnungsregion für U(K2 (r)).
Vernachlässigt man den Fall „u = 0“, der nur mit Wahrscheinlichkeit 0 auftritt, so erhält man =2 ∗ r folgende Version von Algorithmus 9.1, der zur Beschleunigung zwei Konstante =r2 benutzt. und
/ / simuliert U(−r, r) / / (x1 , x2 ) simuliert U([−r, r]2 )
1 2 1
1 1
2
2
2
Die mittlere Laufzeit ist hier c =
4 π
= 1.27.
105
c) Der in b) beschriebene Annahme/Verwerfungsalgorithmus funktioniert auch für die ddimensionale Kugel Kd (r) = {x ∈ Rd | ∑di=1 xi2 ≤ r2 }. Für die mittlere Laufzeit gilt auch hier c = cd = sup x∈Rd
f (x) λ d ([−r, r]d ) 2d Γ( d2 + 1) = d = , g(x) λ (Kd (r)) π d/2
,
wobei Γ(x) = 0∞ t x−1 e−t dt die Gammafunktion ist. Tabelle 9.1 gibt einige Werte für cd , die zeigen, dass die Laufzeit stark zunimmt für wachsende Dimension d. d cd
2 1.27
3 1.90
4 3.24
5 6.07
6 12.38
7 27.09
8 155.2
9 401.5
10 1086.9
Tabelle 9.1: Die mittlere Laufzeit des Annahme-Verwerfungsalgorithmus für U(Kd ) in Abhängigkeit von der Dimension d
Weitere Beispiele für den Annahme-Verwerfungsalgorithmus finden sich im nächsten Kapitel in den Beispielen 10.8 ff.
10 Kompositionsmethode Die Kompositionsmethode ist ein allgemeines Verfahren, mit dem Verteilungen simuliert werden können, die sich als Mischung von (einfach zu simulierenden) Verteilungen darstellen lassen. Wir beginnen mit einer kurzen Darstellung der allgemeinen Vorgehensweise. Danach wird die praktische Umsetzung an einem ausführlichen Beispiel gezeigt, in dem ein schneller und genauer Simulationsalgorithmus für die Normalverteilung entwickelt wird.
10.1 Das allgemeine Verfahren Zur Vorbereitung stellen wir einige Eigenschaften von Dichten und Verteilungsfunktionen zusammen. a) Ist g : Rd → R+ integrierbar, d. h. ist c := 1 c g(t)
+ Rd
g(t)λ d (dt) ein endlicher Wert, so ist f (t) :=
Dichte eines Wahrscheinlichkeitsmaßes auf Rd .
b) Die Menge der Wahrscheinlichkeitsmaße auf Rd ist konvex, insbesondere gilt: b1) Sind f1 , . . . , fk Dichten auf Rd und ist p1 , . . . , pk eine Zähldichte auf {1, . . . , k} (d. h. k
pi ≥ 0, ∑ki=1 pi = 1), dann gilt: f (t) := ∑ pi fi (t) ist eine Dichte auf Rd . i=1
b2) Ebenso: Sind F1 , . . . , Fk Verteilungsfunktionen, dann ist F(t) :=
k
∑ pi Fi (t) eine Vertei-
i=1
lungsfunktion.
Es sei f eine Dichte auf Rd mit der Darstellung k
f (t) = ∑ pi fi (t), t ∈ IRd ,
(10.1)
i=1
wobei f1 , . . . , fk Dichten sind und pi > 0, ∑ki=1 pi = 1 für ein k ∈ N. Z sei eine Zufallsvariable mit Werten in {1, . . . , k} und P(Z = i) := pi , 1 ≤ i ≤ k. Für 1 ≤ i ≤ k sei Y (i) eine von Z unabhängige Zufallsvariable mit Dichte fi . Dann gilt: Y (Z) hat die Dichte f . Dabei ist Y (Z) = ∑ki=1 Y (i) 1{i} (Z) die Zufallsvariable, die den Wert Y (i) annimmt, falls Z = i gilt.
108
10 Kompositionsmethode
Beweis: Mit dem Satz von der totalen Wahrscheinlichkeit (Anhang A.9) gilt für A ⊂ Rd : P Y (Z) ∈ A
=
k
∑ P Y (Z) ∈ A | Z = i
P(Z = i) =
i=1
=
∑ P Y (i) ∈ A P(Z = i) = k
i=1
=
+
A
k
∑ pi fi (s)
k
∑
+
i=1 A
k
∑ P Y (i) ∈ A | Z = i
P(Z = i)
i=1
fi (s) λ d (ds) · pi
λ d (ds)
i=1
Also ist ∑ki=1 pi fi eine Dichte von Y (Z) . Damit erhält man die folgende Methode zur Erzeugung von Zufallszahlen zur Dichte f = ∑ki=1 pi fi : (KOMPOSITIONSMETHODE) Voraussetzung:
ist ein Zufallsgenerator für die Zähldichte p1 , . . . , pk , erzeugt eine Zufallszahl zur Dichte fi für i = 1, . . . , k.
In diesem Algorithmus bestimmt die vom Zufallsgenerator gelieferte Zufallszahl zur Erzeugung des Ergebnisses aufgerufen wird. i, welcher der Generatoren
a) In einem Geschäft sind im Durchschnitt 20 % der Kunden Touristen und 80 % Einheimische. Ein Einheimischer kauft Waren für X Euro, wobei X eine exp(0.05)-Verteilung hat. Touristen kaufen für Y Euro mit PY = exp(0.025). Es soll der Umsatz Z eines Kunden simuliert werden. Bezeichnet T den Typ des Kunden, also etwa T = 0, falls der Kunde Einheimischer ist und T = 1 bei Touristen, so gilt offensichtlich PZ|T =0 = PX und PZ|T =1 = PY , also P(Z ≤ t) = P(X ≤ t)·P(T = 0)+P(Y ≤ t)·P(T = 1) = (1−e−0.05t )·0.8+(1−e−0.025t )·0.2. Die Verteilung von Z ist also eine Mischung aus zwei Exponentialverteilungen. Der folgende Algorithmus liefert Zufallszahlen, die Umsätze von Kunden simulieren. Anstelle des Typs i = 0, 1 des Kunden wird hier gleich der Parameter der Exponentialverteilung ermittelt, wobei die Exponentialverteilung mit dem Inversionsalgorithmus 8.6 c) simuliert wird:
10.1 Das allgemeine Verfahren
109
b) Es sei f eine symmetrische Dichte auf R, d. h. f (t) = f (−t), t ∈ R. Dann gilt mit f1 (t) := 2 f (t)1(−∞,0) (t), f2 (t) := 2 f (t)1[0,∞) (t) und p1 = p2 = 1/2 p1 f (t) + p2 f2 (t) = f (t) 1(−∞,0) (t) + 1[0,∞) (t) = f (t),
t ∈ R.
Also simuliert der folgende Algorithmus die Dichte f : 2 1
Ist f die Dichte einer Zufallsvariablen X, so gilt wegen der Symmetrie von f für t > 0 P(|X| ≤ t) = P(−t ≤ X ≤ t) =
+ t −t
f (s) ds = 2
+ t 0
f (s) ds =
+ t 0
f2 (s) ds,
also ist f2 eine Dichte von |X|. Die Dichte von −|X| ist nach Anhang A.3 dann 1 t f2 ( ) = 2 f (−t)1[0,∞) (−t) = 2 f (t)1(−∞,0] (t) = f1 (t), | − 1| −1 also ist f1 eine Dichte von −|X|, damit ist aber Algorithmus von oben vereinfacht sich zu
2
eine Generator für f1 und der
2 2
Hat man also eine komplizierte symmetrische Dichte f zu simulieren, so genügt es, 2 f auf [0, ∞) zu simulieren und das Vorzeichen des Rückgabewerts zufällig (gleichverteilt) auszuwählen. Davon wird im Beispiel unten ausführlich Gebrauch gemacht. Etwas übersichtlicher kann dies formuliert werden mit der Hilfsfunktion
Die Simulation von f erfolgt dann durch
2
a) Ist f die Dichte einer Zufallsvariablen X und Y eine weitere Zufallsvariable mit Werten in {1, . . . , k}, so kann eine Darstellung der Dichte f wie in (10.1) stets erzielt werden, indem als fi die Dichte der bedingten Verteilung PX|Y =i und pi := P(Y = i) gewählt wird. Das Problem besteht darin, eine Zufallsvariable Y zu finden, so dass sich f1 , . . . , fk gut simulieren lassen.
110
10 Kompositionsmethode
im Mittel Li Schritte benötigt, so gilt für die
b) Werden für einen Aufruf von Laufzeit des Kompositionsalgorithmus 10.3 L
:= E (# Schritte für Y (Z) ) =
k
∑ E [# Schritte für Y (Z) |Z = i] P(Z = i)
i=1 k
∑ E (# Schritte für Y (i) ) P(Z = i)
=
=
i=1
k
∑ Li pi
i=1
Die Kompositionsmethode lässt sich auch dann erfolgreich anwenden, wenn die zu simulierende Dichte f nicht von vorneherein als Mischung von Verteilungen erkennbar ist. Die im Folgenden beschriebene allgemeine Vorgehensweise wird im nächsten Abschnitt zur Simulation der Standardnormalverteilung eingesetzt. Die zu simulierende Zieldichte f auf Rd wird zunächst additiv in k nicht-negative Funktionen g1 , ..., gk zerlegt, also k
f (t) = ∑ gi (t), t ∈ Rd
mit gi : Rd → R+ , i = 1, . . . , k.
i=1
Es müssen nun Dichten fi und pi ∈ [0, 1] so bestimmt werden, dass gilt gi (t) = pi fi (t). Dies ist einfach, da wegen 0 ≤ gi (t) ≤ f (t) stets gilt: 0 ≤ pi :=
+
Rd
gi (t) λ d (dt) ≤
daher ist (vgl. Bem. 10.1 a)) fi (t) := gilt stets k
∑ pi =
i=1
und
k
∑
+
d i=1 R
1 pi gi (t),t
gi (t) λ d (dt) =
+
+
Rd
f (t) λ d (dt) = 1
∈ Rd , für i = 1, . . . , k eine Dichte auf Rd . Ferner k
∑ gi (t) λ d (dt) =
Rd i=1
k
k
i=1
i=1
+ Rd
f (t) λ d (dt) = 1
∑ pi fi (t) = ∑ gi (t) = f (t) .
Die Schwierigkeit besteht darin, die gi so zu bestimmen, dass fi leicht zu simulieren ist, die mittlere Laufzeit Li also gering ist. Bemerkung 10.5 b) zeigt, dass es dabei genügt, diejenigen Li gering zu halten, deren Gewichte pi groß sind, die also häufig aufgerufen werden. Dies wird im folgenden Beispiel ausgenutzt.
10.2 Simulation der Normalverteilung mit der Kompositionsmethode Wir stellen nun ausführlich die Simulation der Normalverteilung N(0, 1) mit Hilfe der Kompositionsmethode dar. Diese Art, N(0, 1) zu simulieren wird auch Trapezoid-Methode oder wedgetail-method genannt und stammt aus [AU72].
10.2 Simulation der Normalverteilung mit der Kompositionsmethode
111
Wir betrachten nun speziell f = ϕ, die Dichte der Standardnormalverteilung, d. h. 2 1 f (t) = ϕ(t) = √ e−t /2 , 2π
t ∈ R.
Im Folgenden sei k := 5. Zunächst wird eine Zerlegung ϕ(t) = ∑5i=1 gi (t) wie oben beschrieben vorgenommen. Dabei wird g1 ≤ ϕ so gewählt, dass der Graph von g1 ein möglichst großes Trapez unter dem Graphen von ϕ bildet, vgl. Abb. 10.1. Trapezförmige Dichten sind besonders einfach zu simulieren, s. u. Satz 10.6. Der Rest, ϕ − g1 , wird dann wie in Abb. 10.1 (a) angedeutet in vier Teile zerlegt, die relativ günstig zu simulieren sind. 0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0.0
0.0
−3
−2
−1
0
1
2
3
−t2 −t1
(a)
−t0 t0 (b)
t1 t2
Abbildung 10.1: Die Dichte der Normalverteilung wird in 5 additive Bestandteile zerlegt.
Dazu wird R in folgende, symmetrische liegende Intervalle zerlegt (−∞, −t2 ], (−t2 , −t1 ], (−t1 , −t0 ] (−t0 , −t0 ), [t0 ,t1 ), [t1 ,t2 ), [t2 , ∞). Darauf werden die folgenden zu 0 symmetrische Funktionen definiert (vgl. Abb. 10.1 (b) und 10.2): g2 (t) := ϕ(t) · 1(−t0 ,t0 ) (t),
g3 (t) := ϕ(t) · 1(−t1 ,t0 ]∪[t0 ,t1 ) (t)
g4 (t) := ϕ(t) · 1(−t2 ,t1 ]∪[t1 ,t2 ) (t),
g5 (t) := ϕ(t) · 1(−∞,t2 ]∪[t2 ,∞) (t).
Die folgenden Werte sind in [AU72] als besonders Laufzeit-günstig ermittelt worden und werden im Folgenden zugrunde gelegt: t0 := 0.2897295736,
t1 := 1.84039874739771,
t2 := 2.11402808333742.
Es ergeben sich g1 , . . . , g5 dann so, dass wir für pi :=
+ +∞ −∞
gi (t)dt = Fläche unter Kurve gi
112
10 Kompositionsmethode
0.04
0.03
g4
g4
0.02
g2
g5
g5
g3
g3
0.01
0.00
−t2 −t1
−t0
t0
t1
t2
Abbildung 10.2: Die Bestandteile g2 , . . . , g5 von ϕ.
folgende Werte erhalten: p1 = 0.9195,
p2 = 0.006307928,
p4 = 0.01549642,
p5 = 0.03451287
p3 = 0.02413838,
d. h. in p1 · 100 ≈ 92% der Fälle muss nur f1 := g1 /p1 simuliert werden. Die Laufzeit setzt sich nach Bem. 10.5 b) folgendermaßen aus den Laufzeiten Li der einzelnen Zähldichten fi zusammen: L ≈ 0.92 L1 + 0.006 L2 + 0.02 L3 + 0.02 L4 + 0.03 L5 , so dass es vor allem darauf ankommt, die Laufzeit L1 für f1 gering zu halten. Im Folgenden wird für jedes der Teilstücke (Dichten) fi := gi /pi , i = 1, . . . , 5, ein Generator vorgeschlagen. f1 hat Trapezgestalt. Der folgende Satz zeigt, wie ganz allgemein Dichten mit Trapezgestalt simuliert werden können.
Es seien U1 ,U2 unabhängige U(0, 1)-verteilte Zufallsvariablen. a) Für 0 ≤ a < b hat Y := aU1 + bU2 die folgende Dichte ⎧ t ⎪ ⎪ 1 ⎨ a fY (t) = ab ⎪ a+b−t ⎪ ⎩ 0 fY hat die Trapezgestalt aus Abb. 10.3 (a).
für 0 < t ≤ a für a < t ≤ b , für b < t ≤ a + b sonst
t ∈ R.
10.2 Simulation der Normalverteilung mit der Kompositionsmethode
113
b) Es sei 0 ≤ c < d. Die Zufallsvariable Z := (d − c)U1 + (d + c)U2 − d hat die zu 0 symmetrische Dichte ⎧ ⎪ ⎪ t + d für − d < t ≤ −c 1 ⎨ d − c für − c < t ≤ c , fZ (t) = 2 d − c2 ⎪ d − t für c < t ≤ d ⎪ ⎩ 0 sonst
t ∈ R,
d. h. fZ hat die in Abb. 10.3 (b) angegebene Trapezform mit e = (d + c)−1 .
1/b
e
fY
a
0
b
a+b
−d
−c
(a)
0
c
d
(b)
Abbildung 10.3: Die Trapezdichte von Y .
Beweis: a) Nach Anhang A.3 haben aU1 bzw. bU2 die Dichten t 1 1 faU1 (t) := 1[0,1] = 1[0,a] (t) a a a
1 fbU2 (t) := 1[0,b] (t). b
bzw.
Da mit U1 ,U2 auch aU1 , bU2 unabhängig sind, ist die Verteilung von Y die Faltung (vgl. Anhang A.17) der Verteilungen von aU1 und bU2 , d. h. fY (t) = = = = =
+ +∞ −∞+
faU1 (s) fbU2 (t − s) ds = +∞
+ +∞ 1 −∞
ab
1[0,a] (s)1[0,b] (t − s) ds
1 1[0,a] (s)1[t−b,t] (s) ds ab −∞ , min{a,t} 1 falls max{0,t − b} ≤ min{a,t} ab max{0,t−b} ds, 0 sonst 1 (min{a,t} − max{0,t − b})+ ab ⎧ t für 0 < t ≤ a ⎪ ⎪ 1 ⎨ a für a < t ≤ b ab ⎪ a + b − t für b < t ≤ a+b ⎪ ⎩ 0 sonst
114
10 Kompositionsmethode
b) Es sei a := d − c, b := d + c, dann hat Y = a U1 + b U2 nach a) die Dichte ⎧ s für 0 < s ≤ d − c ⎪ ⎪ ⎨ 1 d − c für d − c < s ≤ d + c . h(s) := (d + c)(d − c) ⎪ 2d − s für d + c < s ≤ 2d ⎪ ⎩ 0 sonst Z = Y − d hat dann nach Anhang A.4 die Dichte t → h(t + d). Durch einfaches Umformen erhält man h(t + d) = fZ (t).
Teilstück g1 : g1 hat eine Trapezform wie in Abb. 10.3 (b) mit c := t0 , d := t2 und e = ϕ(t0 ). Die zugehörige Trapezdichte f1 ergibt sich wie in Satz 10.6 zu ⎧ ⎪ ⎪ t + t2 für − t2 < t ≤ −t0 1 ⎨ t2 − t0 für − t0 < t ≤ t0 f1 (t) = 2 2 , t ∈ R. t − t für t0 < t ≤ t2 t2 − t 0 ⎪ ⎪ ⎩ 2 0 sonst Der Generator muss also (d −c)U1 +(d +c)U2 −d = (t2 −t0 )U1 +(t2 +t0 )U2 −t2 simulieren. für f1 Mit den passenden Konstanten lautet der entsprechende Generator / / t2 − t 0 / / t2 + t 0 2
2
Die übrigen Dichten f2 , . . . , f5 sind schwieriger zu simulieren, sie sind aber alle symmetrisch zum Nullpunkt, daher kann die in Beispiel 10.4 b) vorgestellte Methode benutzt werden: Anstelle der Dichte f wird 2 f 1(0,∞) simuliert und das Ergebnis mit einem zufälligen Vorzeichen zurückgegeben. a) Teilstück g2 : Für t ∈ (−t0 ,t0 ) gilt (vgl. Abb. 10.2) g2 (t) = ϕ(t) − ϕ(t0 ) = ϕ(t) − 0.3825446 und 1 für t ∈ (−t0 ,t0 ) g2 (t) p2 (ϕ(t) − ϕ(t0 )) = f2 (t) = p2 0 sonst dabei gilt ϕ(t0 ) = supt∈R g1 (t) =
p1 t0 +t2 .
fˆ2 (t) := 2 f2 (t) =
Nach Beispiel 10.4 b) genügt es, die Dichte
2 p2 (ϕ(t) − ϕ(t0 ))
0
für t ∈ [0,t0 ) sonst
10.2 Simulation der Normalverteilung mit der Kompositionsmethode
115
zu simulieren, vgl. Abb. 10.4. Wir verwenden die Annahme-Verwerfungsmethode mit der Hilfsdichte g(t) := t10 1[0,t0 ] (t) (dies ist Dichte der U(0,t0 )–Verteilung). c2 · g(t)
fˆ2 (t) f2 (t)
−t0
0
t0
Abbildung 10.4: Annahme-Verwerfungsmethode für f2 .
Nach (9.8) wird die Konstante c gewählt als c2 := sup t≥0
fˆ2 (t) 2t0 2t0 = sup (ϕ(t) − ϕ(t0 )) = (ϕ(0) − ϕ(t0 )). g(t) p2 t≥0 p2
Für die Abbruchbedingung des Annahme-Verwerfungsalgorithmus in der Form 9.7 folgt für x ∈ [0,t0 ]: c2 u · c2 · g(x) > fˆ2 (x) ⇐⇒ u · > 2 f2 (x) t0 2 2 ⇐⇒ u (ϕ(0) − ϕ(t0 )) > (ϕ(t) − ϕ(t0 )) p2 p2 ⇐⇒ u(ϕ(0) − ϕ(t0 )) > ϕ(x) − ϕ(t0 ) ⇐⇒ u K2 > ϕ(x) − K3 mit Konstanten K2 := ϕ(0) − ϕ(t0 ) = 0.01639772
und
K3 := ϕ(t0 ) = 0.3825446.
Unter Verwendung dieser Konstanten erhalten wir folgenden Annahme-Verwerfungsalgofür f2 : rithmus √ / / 1/ π
0
/ / U(0,t0 )
116
10 Kompositionsmethode
2
/ / u (ϕ(0) − ϕ(t0 )) > ϕ(x) − ϕ(t0 )
3
Bei jedem Durchlauf der Schleife muss die Dichte ϕ(x) der N(0, 1)–Verteilung bestimmt werden. Dies ist zwar relativ aufwendig, aber dieser Aufwand geht nur mit p2 ·100%≈ 0.63% in die mittlere Laufzeit ein! b) Teilstück g3 : Es gilt für t ∈ [t0 ,t1 ) g3 (t) = ϕ(t) − g1 (t) = ϕ(t) − p1 ·
t2 − t . t22 − t02
Zu simulieren ist fˆ3 (t) := 2/p3 · g3 (t)1[t0 ,t1 ) (t). Definiert man Konstante: t2 − t p1 ϕ(t) − p1 2 2 ≈ 0.01597452, K5 : = 2 2 ≈ 0.2096941, t − t t t∈[t0 ,t1 ] 2 0 2 − t0 p1t2 K6 : = 2 2 ≈ 0.4432991, K7 : = t1 − t0 = 1.550669, t2 − t0 K4 : = sup
so ergibt sich der folgende Annahme-Verwerfungsalgorithmus wie für f2 (vgl. Abb. 10.5):
7
/ / U(t0 ,t1 )
0
ϕ(x)
4
für f3 ähnlich
5
6
c) Teilstück g4 : Für t ∈ (t1 ,t2 ) gilt wieder g4 (t) = ϕ(t) − g1 (t). Mit K8 :=
sup g4 (t) = ϕ(t2 ) ≈ 0.04270258,
t∈[t1 ,t2 )
K9 := t2 − t1 = 0.2736293
ergibt sich der Annahme-Verwerfungsalgorithmus
9
1 8
ϕ
/ / U(t1 ,t2 ) 5
6
10.2 Simulation der Normalverteilung mit der Kompositionsmethode
117
c3 · g(t) fˆ3 (t)
f3 (t)
−t1
−t0
0
t1
t0
Abbildung 10.5: Die dicke Kurve zeigt die Dichte 2 f3 .
d) Teilstück g5 : 1. Für t ∈ ((−∞, −t2 ] ∪ [t2 , +∞)) gilt g5 (t) = ϕ(t) und f5 (t) :=
t2 1 1 ϕ(t) = √ e− 2 . p5 p5 2π
(10.2)
Auch hier kann ein Annahme-Verwerfungsalgorithmus eingesetzt werden, allerdings mit einer komplizierteren Hilfsdichte, da f5 (t) > 0 für alle t > t2 gilt und deshalb keine Gleichverteilung benutzt werden kann. t 2. Es sei Y Zufallsvariable mit Verteilung exp( 12 ), d. h. mit Dichte t → 12 e− 2 ,t ≥ 0. Dann √ hat: Y + r2 die Dichte t 2 −r2
hr (t) := te− 2 , t ≥ r, r > 0. * 1 2 2 Y + r2 ≤ t = P Y ≤ t 2 − r2 = 1 − e− 2 (t −r ) , t ≥ r, Dies folgt sofort, da Fr (t) := P √ die Verteilungsfunktion von Y + r2 ist. 3. Es gilt ferner p5 :=
+ +∞ −∞
g5 (s)ds =
+ −t2 −∞
ϕ(s)ds +
+ ∞ t2
ϕ(s)ds = 2(1 − Φ(t2 )).
g5 ϕ(t) , t ≥ t2 . = p5 1 − Φ(t2 ) 4. Mit der Hilfsdichte g(t) := ht2 (t) gilt für t ≥ t2 Also folgt 2 f5 (t) =
2 f5 (t) g(t)
=
ϕ(t) (1 − Φ(t2 )) · te−(t
2 −t 2 )/2 2
=
t22 t2 1 t2 1 √ e− 2 · · e 2 · e− 2 t (1 − Φ(t2 )) 2π
118
10 Kompositionsmethode
ϕ(t2 ) ϕ(t2 ) ≤ =: c5 t(1 − Φ(t2 )) t2 (1 − Φ(t2 ))
=
Dann gilt 2 f5 (t) ≤ c5 · ht2 (t), t ≥ t2 . 5. Für das Abbruchkriterium des Annahme-Verwerfungsalgorithmus folgt u · c5 · g(x) > 2 f5 (x) ⇐⇒ u >
t2 2 f5 (x) = ⇐⇒ ux > t2 cg(x) x
(10.3)
für u ∈ [0, 1], x ≥ t2 . 6. Die Hilfsdichte g = ht2 kann mit Inversion simuliert werden, es gilt 1 2 2 Ft2 (t) = 1 − e− 2 (t −t2 ) , Ft−1 (r) = t 2 − 2 ln (1 − r) und Fˆt−1 (r) = t 2 − 2 ln r. 2
2
2
2
7. Zusammengefasst ergibt sich der Annahme-Verwerfungsalgorithmus / / t22
10
/ / simuliert ht2
10 2
/ / Abbruchbed . aus (10.3)
Der Trapezoidalgorithmus ist ein Kompositionsalgorithmus für N(0, 1), der aus der Simulation von i ∈ {1, . . . , 5} mit Zähldichte (p1 , p2 , . . . , p5 ) und der anschließender Simulation von fi besteht. Wegen p1 > p5 > p3 > p4 > p2 werden die Fallunterscheidungen, die den Inversionsalgorithmus für (p1 , p2 , . . . , p5 ) realisieren, in dieser Reihenfolge abgearbeitet. Dadurch wird eine Beschleunigung wie in Satz 8.12 beschrieben erzielt. (T RAPEZOIDALGORITHMUS FÜR N(0, 1)) / / = p1 + p5 / / = p1 + p5 + p3 / / = p1 + p5 + p3 + p4 1
10.2 Simulation der Normalverteilung mit der Kompositionsmethode
119
Hat die Zufallsvariable X die Verteilung N(0, 1), so hat σ X + μ für σ = 0 bekanntlich die für N(0, 1) erhält Verteilung N(μ, σ 2 ). Aus dem eben entwickelten Generator man daher durch den Aufruf σ
μ
einen Generator für die Normalverteilung N(μ, σ 2 ).
11 Tabellen-Nachschlagemethoden Eine diskrete Verteilung auf einer endlichen Menge {1, . . . K} kann wie in Kapitel 8.3 beschrieben mit Hilfe der Inversion simuliert werden. Die mittlere Laufzeit entspricht dabei dem Erwartungswert der Verteilung, siehe Satz 8.8. Werden sehr viele Zufallszahlen zu dieser Verteilung benötigt, so lohnt es sich u. U., die Tabellen-Nachschlagemethode (auch Alias-Methode genannt) zu verwenden. Sie benutzt eine aufwändig zu erstellende Datenstruktur (die Tabelle), liefert dann aber Zufallszahlen in konstanter, sehr kurzer Zeit. Die zu simulierende Verteilung sei als Zähldichte p = (p(1), . . . , p(K)) gegeben, dabei gelte p(i) > 0, i = 1, . . . , K,
K
∑ p(i) = 1.
und
(11.1)
i=1
Für i ∈ {1, . . . , K} setzen wir p durch p(i) := 0 fort.
11.1 Eine einfache Nachschlagemethode Wir betrachten zunächst eine einfache Variante der Methode für eine Zähldichte p, bei der wir annehmen, dass die Wahrscheinlichkeiten p(i) rationale Zahlen sind, d. h. eine Darstellung p(i) = mn mit geeigneten natürlichen Zahlen m, n erlauben. Dann gibt es auch stets N ∈ N und s1 , . . . , sK ∈ N mit p(i) =
si , i = 1, . . . , K N
und
K
K
K
i=1
i=1
i=1
∑ si = ∑ p(i) · N = N ∑ p(i) = N.
N −1 kann als „Genauigkeit“ von p(1), . . . p(K) angesehen werden. Derartige Verteilungen treten typischerweise bei sogenannten Urnenmodellen auf: liegen N Kugeln in einer Urne, von denen jeweils genau si die Aufschrift „i“ tragen, 1 ≤ i ≤ K und bezeichnet X die Aufschrift einer zufällig gezogenen Kugel, so gilt P(X = i) =
si = p(i), N
1 ≤ i ≤ K.
Dies legt auch eine einfache Art der Simulation nahe, bei der die Urne und die Ziehung direkt auf dem Rechner dargestellt werden. Die Urne wird durch ein Feld der Länge N dargestellt, in dem genau si Elemente den Wert i tragen. Der Aufbau dieser einfachen „Tabelle“ kann mit folgendem Code erfolgen:
122
11 Tabellen-Nachschlagemethoden
si si Die „Ziehung“ besteht in der zufälligen Auswahl eines Feldes:
Abbildung 11.1 zeigt die für K = 5, N = 20 sowie p(1) = 0.3, p(2) = 0.1 = p(4), p(3) = 0.15 und p(5) = 0.35. Das „Nachschlagen“ in der Tabelle entspricht dem Ziehen
1 1 1 1 1 1 2 2 3 3 3 4 4 5 5 5 5 5 5 5 Abbildung 11.1: Eine Tabelle mit N = 20 Positionen
einer Kugel:
Die kann auch als eine Kodierung der verallgemeinerten Inversen der Verteilungsfunktion von p angesehen werden. Der Nachteil dieser Vorgehensweise liegt offensichtlich in der möglicherweise sehr großen Länge N der Tabelle und einer entsprechend langen Aufbauphase. Die Laufzeit nach erfolgtem Aufbau ist aber sehr kurz. Unten werden wir eine Tabelle mit nur 2K Feldern benutzen. Diese einfache Tabellen-Methode kann auch geometrisch veranschaulicht werden, indem das Einheitsquadrat [0, 1]2 so in K Flächenstücke A1 , . . . , AK aufgeteilt wird, dass λ 2 (Ai ) = p(i), vgl. Abb. 11.2. Die „Ziehung“ besteht in der zufälligen Wahl eines Punktes x ∈ [0, 1]2 . Zurückgegeben wird der Index i des von x getroffenen Flächenstücks. A4
A2 A5 A1 A3
Abbildung 11.2: Eine Flächenaufteilung für die zweidimensionale Nachschlagemethode.
11.2 Die Alias-Methode
123
Bei der praktischen Umsetzung dieser Idee besteht das Problem offensichtlich darin, die Flächen Ai mit p(i) = λ 2 (Ai ) zu bestimmen. Im folgenden wird ein Algorithmus von [Wal77] beschrieben, mit dem die Flächen Ai zu einer vorgegebenen Verteilung erzeugt werden können, allerdings sind die Ai u. U. nicht zusammenhängend.
11.2 Die Alias-Methode p(m)
p(m)
p(m)
a3 = 5 a2 = 1
1/5
1/5 m 1
2
3
4
5
Abbildung 11.3: Die den Wert auf ihre „Herkunft“ versehen.
m 1
1 K
a4 = 5
1/5
2
3
4
5
m 1
2
3
4
5
überschießenden Teile von p(·) werden verteilt und mit einem Hinweis ai
Es sei wieder K = 5 und p(1) = 0.3, p(2) = 0.1, p(3) = 0.15, p(4) = 0.1, p(5) = 0.35. Wird jeder Wert i mit einem Balken der Breite 1 dargestellt, so beträgt die Gesamtfläche der Balken 1, denn ∑Ki=1 p(i) = 1, vgl. Abb. 11.3. Den Aufbau der Alias-Tabelle kann man sich geometrisch wie in Abb. 11.3 veranschaulichen: alle über K1 hinausschießenden Werte von p(·) werden auf solche i verteilt, deren Wert p(i) unter K1 liegen. Die Alias-Werte ai werden diesen umgeschichteten Balkenstücken zugeordnet und verweisen auf deren Ursprung. Zur Erzeugung einer Zufallszahl aus {1, . . . , K} wird in einem ersten Schritt ein Werte i ∈ {1, . . . , K} gemäß der Gleichverteilung U({1, . . . , K}) ausgewählt. In einem weiteren Schritt wird dann entschieden, ob i selbst oder stattdessen der Alias-Wert ai zurückgegeben wird. Die Wahrscheinlichkeiten für diese beiden Alternativen werden durch die Größe des verlagerten Balkenstücks bestimmt. Im Beispiel wird zunächst gleichverteilt mit Wahrscheinlichkeit 15 einer der „Balken“ 1, . . . , 5 ausgewählt. Wird 1 oder 5 gewählt, so wird dieser Wert selbst zurückgegeben. Wird einer der Werte 2, 3, 4 gewählt, so muss ein weiteres Zufallsexperiment durchgeführt werden. Wird etwa im ersten Schritt 2 gewählt, so wird mit der (bedingten) Wahrscheinlichkeit K · p(2) = 5 · 0.1 = 0.5 der Wert 2 selbst zurückgegeben und mit Wahrscheinlichkeit 1 − K · p(2) = 0.5 (entspricht der schraffierten Fläche des Balkens 2 multipliziert mit K = 5 ) der Alias-Wert a2 , also 1. Die Summe der Balkenflächen, für den ein bestimmter Wert i zurückgegeben wird, entspricht so genau p(i). Die allgemeine Vorgehensweise der Alias-Methode benutzt eine Tabelle wie in Abb. 11.4 angedeutet. Zur Erzeugung einer Zufallszahl wird in einem ersten Schritt ein i gemäß U({1, . . . , K})
124
11 Tabellen-Nachschlagemethoden
a1 a2 a3
1 2
ai
aK
1 − qi
3
...
qi
i
...
K
Abbildung 11.4: Die allgemeine Gestalt eines Einheitswürfels mit der Zerlegung für die Alias-Methode.
ausgewählt, dann wird mit Wahrscheinlichkeit qi der Wert i bzw. mit Wahrscheinlichkeit 1 − qi der Alias-Wert ai zurückgegeben. Dies kann auch als Spezialfall der Kompositionsmethode angesehen werden. Die wesentliche Schwierigkeit liegt darin, Werte ai und qi so zu bestimmen, dass die erzeugten Zufallszahlen tatsächlich p simulieren. Wir werden das Problem zunächst mathematisch genau beschreiben und lösen, bevor wir uns der algorithmischen Erzeugung der Tabelle zuwenden. Mathematisch kann das Verfahren durch zwei Zufallsvariablen I und Y mit Werten in {1, . . . , K} beschrieben werden. I beschreibt den ersten Schritt, hat also die Verteilung U({1, . . . , K}). Y beschreibt die Entscheidung über den Alias-Wert, für die bedingte Verteilung muss daher gelten P[Y = i | I = i ] = qi
und
P[Y = ai | I = i ] = 1 − qi ,
i = ai für 1 ≤ i ≤ K.
Für die nicht-bedingte Verteilung von Y gilt K
P(Y = m) = ∑ P[Y = m | I = i ] · P(I = i) i=1
=
=
K 1 P[Y = m | I = m ] + ∑ P[Y = ai | I = i ] K i=1,i=m K 1 qm + ∑ (1 − qi ) . K i=1,i=m
(11.2)
ai =m
ai =m
Damit Y die gewünschte Verteilung p hat, müssen also Werte ai und qi , 1 ≤ i ≤ K, bestimmt werden, so dass mit (11.2) gilt: K 1 qm + ∑ (1 − qi ) = p(m), K i=1,i=m
1 ≤ m ≤ K.
ai =m
Der nächste Satz zeigt, dass dieses Problem lösbar ist. Dazu zeigen wir zunächst, dass sich Zähldichten p auf {1, . . . , K} stets in der Gestalt K1 ∑Ki=1 gi (·) darstellen lassen, wobei gi sehr einfache, auf zwei Punkte konzentrierte Bernoulli-Zähldichten sind.
11.2 Die Alias-Methode
125
Es sei p eine Zähldichte auf {1, . . . , K} wie in (11.1). Dann gibt es zu jedem 1 ≤ i ≤ K ein ai ∈ {1, . . . , K}, ai = i, und ein qi ∈ [0, 1], so dass für die Zähldichten ⎧ qi für m = i ⎪ ⎨ gi (m) := 1 − qi für m = ai , m ∈ N0 , 1 ≤ i ≤ K, ⎪ ⎩ 0 sonst gilt: p(m) =
1 K ∑ gi (m), K i=1
m ∈ N0 .
Es kann dabei durchaus ai = a j für i = j gelten, d. h. verschiedene Alias-Werte ai , a j können auf denselben Rückgabewert verweisen. Der Beweis von Satz 11.3 und ein Algorithmus für die Erzeugung der gi folgt unten. / {i, ai } Für (11.2) folgt jetzt mit den Werten ai , qi aus Satz 11.3 wegen gi (m) = 0 für m ∈ P(Y = m) =
K K 1 1 qm + ∑ (1 − qi ) = gm (m) + ∑ gi (ai ) K K i=1,i=m i=1,i=m ai =m
K 1 1 K = gm (m) + ∑ gi (m) = ∑ gi (m) K K i=1 i=1,i=m
ai =m
= p(m) Mit anderen Worten: werden qi und ai wie in Satz 11.3 gewählt, so liefert das in Abb. 11.4 skizzierte Verfahren die gewünschte Verteilung p(1), . . . , p(K). ein GeneraDer folgende Algorithmus beschreibt dieses Vorgehen. Sei dazu (·) kann mit einem Feld realisiert werden, in dem jeder tor zur Dichte gi . kann man dafür ein mit dem Eintrag die Werte qi und ai enthält. In der Sprache benutzen: Namen
Da die Indizierung von Feldern in bei 0 beginnt, verwenden wir hier ein Feld der Länge benutzen, K + 1, von dem wir aber nur die letzten K Einträge so dass die Indexmenge der Tabelle und der Träger der Verteilung übereinstimmen. Auf die bzw. zugegriffen. Komponenten der Tabelleneinträge wird mit Die Simulation von gi (·) erfolgt dann durch
Zusammengefasst ergibt dies den folgenden Algorithmus:
126
11 Tabellen-Nachschlagemethoden
(Z UGRIFF AUF A LIAS -TABELLE) / / simuliert U({1, . . . , K})
Gegenüber der zu Beginn des Kapitels beschriebenen einfachen Methode benötigt man also nur ein Feld der Größe 2 × K und zwei Aufrufe eines U(0, 1)–Generators. Es bleibt das Problem, wie qi und ai zu bestimmen sind. Der folgende Beweis von Satz 11.3 gibt die Hinweise dazu. Beweis: (von Satz 11.3) 1. Wir beweisen eine etwas allgemeinere Aussage: Für alle K ≥ 2 gilt: Ist p eine Zähldichte auf einer beliebigen Menge M = {m1 , . . . , mK }, so gibt es zu jedem 1 ≤ i ≤ K ein ai ∈ M, ai = mi und Zähldichten gi auf {mi , ai } mit p(m) =
1 K ∑ gi (m), K i=1
m ∈ N0 .
Wir zeigen die Behauptung durch Induktion über K ≥ 2. 2. Für den Induktionsanfang sei K = 2 und M = {m1 , m2 } mit p(m1 ) ≤ p(m2 ). Wir definieren 2p(m1 ) für m = m1 0 für m = m1 , g2 (m) := g1 (m) := 1 − 2p(m1 ) für m = m2 1 für m = m2 und g1 (m) = g2 (m) := 0 für m = m1 , m2 . Dann folgt 1 1 2p(m1 ) für m = m1 (g1 (m) + g2 (m)) = 2 2 1 − 2p(m1 ) + 1 für m = m2 = p(m)
=
p(m1 ) für m = m1 1 − p(m1 ) für m = m2
für m ∈ M.
Man beachte, dass wegen p(m2 ) = 1 − p(m1 ) aus p(m1 ) = p(m2 ), also für die Gleichverteilung folgt: p(m1 ) = 12 und gi (m) = 1{mi } (m), i = 1, 2. 3. Den Induktionsschritt „(K − 1) → K“ mit K ≥ 3 zeigen wir in mehreren Teilschritten: 3.1 Die Behauptung gilt, falls p(·) Zähldichte der Gleichverteilung U({m1 , . . . , mK }) ist. Dann erfüllt 1 für m = mi (11.3) gi (m) := = 1{mi } (m), m ∈ M, 0 sonst die Gleichung 1 K 1 K 1 = p(m), gi (m) = ∑ 1mi (m) = ∑ K i=1 K i=1 K
m ∈ IN0 .
Dabei hat gi die im Satz behauptete Gestalt mit qi := 1 und ai beliebig.
11.2 Die Alias-Methode
127
3.2 Es sei jetzt p(·) ≡ 1/K. Wir definieren die folgenden Menge Oben und Unten als Teilmengen von {1, . . . , K}: Oben := {ν ∈ {1, . . . , K}| p(mν ) ≥ 1/K} = {ν ∈ {1, . . . , K} | K p(mν ) ≥ 1} Unten := {ν ∈ {1, . . . , K}| p(mν ) < 1/K} = {ν ∈ {1, . . . , K} | K p(mν ) < 1} Oben bzw. Unten beschreiben offensichtlich das Über- bzw Unterschießen der Zähldichte wie in Abb. 11.3. Da p nicht die Gleichverteilung ist, muss Oben = 0/ und Unten = 0/ gelten. 3.3 Sei l ∈ Unten mit p(ml ) = minν=1,...,K p(mν ) einer der am stärksten unterschießenden und o ∈ Oben mit p(mo ) = maxν=1,...,K p(mν ) einer der am stärksten überschießenden Werte. Es gilt dann nach Definition von Oben und Unten K p(ml ) < 1
und
K p(mo ) ≥ 1.
3.3.1 Es gibt eine Zähldichte gl auf {ml , mo } und eine Zähldichte p¯ auf M − {ml } mit 1 gl (m) + (K − 1) · p(m) ¯ , m ∈ M. p(m) = K Der Beweis dazu folgt unten in 4. 3.3.2 Da p¯ Zähldichte auf M − {ml } mit |M − {ml }| = K − 1 ist, folgt jetzt aus der Induktionsvoraussetzung, dass es für alle i ∈ {1, . . . , K} − {l} Werte ai ∈ M − {ml }, ai = mi , und Zähldichten gi (·) auf {mi , ai } gibt mit K 1 gi (m). p(m) ¯ = ∑ K − 1 i=1,i=l Daher folgt mit 3.3.1 für alle m ∈ M :
K 1 1 1 gl (m) + (K − 1) ¯ = p(m) = (gl (m) + (K − 1) p(m)) ∑ gi (m) K K K − 1 i=1,i =l =
1 K ∑ gi (m) K i=1
und damit die Behauptung des Induktionsschrittes für Zähldichten p ≡ 1/K. 4. Es bleibt die entscheidende Aussage aus 3.3.1 zu beweisen. 4.1 Wir definieren zunächst gl . Es sei ql := K p(ml ) (wegen l ∈ Unten gilt K p(ml ) < 1 ) und ⎧ ql für m = ml ⎨ gl (m) := (11.4) 1 − ql für m = mo , ⎩ 0 sonst dann hat gl für al := mo die gewünschte Form. Ferner sei 1 p(m) ¯ := K p(m) − gl (m) K −1 ⎧ p(m) für m ∈ {ml , mo } K ⎨ = 0 für m = ml K −1 ⎩ p(mo ) + p(ml ) − K1 für m = mo
(11.5) für m ∈ M.
128
11 Tabellen-Nachschlagemethoden
4.2 Wir zeigen zuerst, dass p¯ überhaupt eine Zähldichte auf M −{ml } ist. Aus (11.5) folgt p(m) ¯ > 0, m ∈ M − {ml }, und K 1 ¯ = ∑ p(m) ∑ p(m) + p(mo ) + p(ml ) − K K − 1 m∈M−{m m∈M−{ml } o ,ml } K 1 K 1 = p(m) − = 1 − = 1, ∑ K − 1 m∈M K K −1 K d. h. p¯ ist Zähldichte auf M − {ml } wie in 3.3.1 verlangt. 4.3 Ferner gilt nach Definition von p¯ für m ∈ M 1 (gl (m) + (K − 1) p(m)) ¯ = K =
1 1 (gl (m) + (K − 1) (K p(m) − gl (m)) K K −1 p(m),
wie in 3.3.1 gefordert. Damit ist gezeigt, dass es eine Alias-Tabelle gibt, die mit dem oben skizzierten Verfahren die Zähldichte p simuliert. Wir müssen jetzt die Schritte des Beweises in einen Algorithmus für die Erzeugung der Tabelle umsetzen.
11.3 Aufbau der Alias-Tafel Gleichungen (11.4) und (11.5) zeigen, wie das Feld sukzessive aufgebaut werden kann. Die Zähldichte p wird aufgespalten in eine einfache Zähldichte gl wie in (11.4), die schon dem endgültigen Tabelleneintrag für l entspricht und in eine Zähldichte p, ¯ die nur noch auf K − 1 Elementen definiert ist. 11.5 lässt sich dazu auch schreiben als ⎧ K p(m) für m ∈ / {mo , ml } ⎨ . (11.6) (K − 1) p(m) ¯ = K p(m) − gl (m) = 0 für m = ml ⎩ K p(mo ) − (1 − ql ) für m = mo Im Algorithmus werden anstelle der Zähldichten p, p¯ daher die Werte K p und (K − 1) p¯ benutzt, der noch nicht endgültig bestimmten Tadiese Werte werden in den q-Werten belleneinträge i gespeichert. für 1 ≤ Der Algorithmus beginnt mit der Anfangsbelegung i ≤ K. Es wird dann der am stärksten unterschießende Wert l bestimmt, die Lücke 1/K − p(l) wird mit einem Stück des am stärksten überschießenden Werts p(o) ausgefüllt, dazu werden ql und al (also gl ) bestimmt und es muss der bei o verbleibende Wert berechnet werden. Damit ist l abgearbeitet. Die restlichen K − 1 Werte werden jetzt ebenso bearbeitet, dabei tritt p¯ an die Stelle von p. In p¯ ist die Änderung am Wert p(o) aus dem letzten Schritt bereits berücksichtigt. enthalte die Werte der Zähldichte p. Das Feld
11.3 Aufbau der Alias-Tafel
129
AUFBAU DER A LIAS -TAFEL / / I n i t i a l i s i e r u n g von ’ Tabelle ’ , ’Oben’ und ’Unten ’:
/ / ein aktuell maximal unterschießendes Element wird gewählt , / / f a l l s es mehrere davon gibt , wird das k l e i n s t e gewählt : argmin / / entsprechend für Oben: argmax / / Umschichten von o nach l , d . h . l bekommt den Alias−Wert o: / / j e t z t i s t l ausgeglichen ( s . u . ) : / / der Balken von o wird um die Lücke von l gekürzt ( s . u . ) : / / es muss geprüft werden , ob o j e t z t s e l b s t unterschießt :
Hierbei ist zu beachten: Im ersten Schleifendurchlauf gilt nach der Zuweisung = K p(l), also wird die Zähldichte verändert ⎧ ⎧ ql für i = l K p(l) ⎪ ⎪ ⎨ ⎨ gl (i) = 1 − K p(l) r1 − ql für i = o = ⎪ ⎪ ⎩ ⎩ 0 sonst 0
für den Wert ql unfür i = l für i = o sonst
gespeichert wie in (11.4) verlangt. Nach der Anweisung K −1 p(i) ¯ = (K − 1) p(i) ¯ K = K p(o) − (1 − K p(l)) = (K − 1) p(o), ¯ = K p(i) = K
gilt für i = l, o
wobei der letzte Schritt aus (11.5) und (11.6) folgt. Für i ∈ Oben ∪Unten enthält jetzt die Anfangswerte (K − 1) p(·) ¯ für den nächsten Schleifendurchlauf mit p¯ anstelle von p.
130
11 Tabellen-Nachschlagemethoden
Zu zeigen ist noch, dass die Auswahl von Elementen aus Oben und Unten stets möglich ist –Schleife das Array korrekt gefüllt ist. und bei Abbruch der Zunächst gilt, dass die Schleife spätestens nach K Schritten abbricht, da jedesmal ein Element l ausgeglichen und damit aus Oben ∪ Unten entfernt wird. Nach k < K Schleifendurchläufen enthalten Oben ∪ Unten genau K −k Elemente. Gilt Unten = {}, so muss die zugehörige aktuelle Zähldichte p¯ die Gleichverteilung auf Oben sein, es gilt dann also für die q-Werte der noch nicht bearbeiteten Elemente = (K − k) p(i) ¯ = (K − k)
1 = 1, K −k
i ∈ Oben,
d. h. bei Abbruch mit Unten = {} nach k < K Schritten gilt für i ∈ Oben 1 für m = i , gi (m) = 0 sonst wie in (11.3) gefordert. Solange aber Unten = {} gilt, muss auch Oben = {} gelten, eine Auswahl ist stets möglich, die nach dem Beweis von Satz 11.3 für K − k ≥ 3 stets korrekte Einträge produziert. Für K − k = 2 und Unten= {} muß gelten: Unten = {ml } und Oben in enthält in den noch zu bearbeitenden Positionen l und o die Werte = {mo }. = ql
= (K − k)p(ml ) = 2 p(m ¯ l)
= qo
= (K − k)p(mo ) = 2 p(m ¯ o)
wobei p¯ die aktuelle Zähldichte auf Oben ∪ Unten = {m0 , ml } ist. Der nächste Schleifendurchlauf produziert nun =
− (1 −
) = 1.
Die Überprüfung ergibt daher keinen neuen Eintrag für Unten, so dass das Programm abbricht. Die letzten beiden Zähldichten gl (m) = und go (m) =
1−
für m = ml für m = mo
=
1−
für m = mo für m = ml
= 1{mo } (m)
2 p(m ˜ l ) für m = ml 1 − 2 p(m ˜ l ) für m = mo
entsprechen gerade den in Beweis zu 11.3 in der Induktionsverankerung angegebenen Dichten, sie erfüllen also die Anforderungen des Satzes. Tatsächlich werden damit maximal K − 1 Schleifendurchläufe für den Aufbau der Aliaserfolgt dann wie in Algorithmus 11.4 Tabelle benötigt. Der Zugriff auf die Tabelle oben bereits beschrieben mit maximal zwei Aufrufen des Zufallsgenerators, also mit konstanter Laufzeit.
11.4 Ein Beispiel für den Aufbau einer Alias-Tabelle
131
11.4 Ein Beispiel für den Aufbau einer Alias-Tabelle An einem Flughafen sollen die Auswirkungen von Verspätungen ankommender Flugzeugen untersucht werden. Dazu möchte man eine große Anzahl von Flugzeugankünften mit den typischen Verspätungen simulieren. Die Zufallszahlen sollen mit der Alias-Methode erzeugt werden. i -6 -4 -2 0 2
i 4 6 8 10 12
p(i) 0.006 0.021 0.067 0.152 0.169
i 14 16 18 20 22
p(i) 0.158 0.121 0.091 0.086 0.051
p(i) 0.036 0.021 0.012 0.006 0.003
Tabelle 11.1: Die Werte der Verspätungsverteilung p.
1/15
Min
−6 −4 −2
0
2
4
6
8
10
12
14
16
18
20
22
Abbildung 11.5: Die Verteilung der Flugzeugverspätungen p
Wir nehmen an, dass die Flugzeuge in einem bestimmten Tagesabschnitt typischerweise Verspätungen aufweisen, die durch die Zähldichte p aus Tabelle 11.1 beschrieben werden können, siehe auch Abbildung 11.5. Hier sind Abschnitte von jeweils 2 Minuten zusammengefasst, zum Wert 0 gehören also z. B. alle Flugzeuge, die pünktlich oder maximal 2 Minuten verspätet sind. Negative Werte beziehen sich auf „Verfrühungen’", also auf Ankünfte, die vor der Planzeit erfolgen. Auf diese Zähldichte wird nun der Algorithmus 11.5 angewendet. Zu Beginn umfasst die 1 hinausschießenden Werte, die restlichen Menge Oben die Werte {−2, 0, . . . , 10} der über K1 = 15 Werte fallen in die Menge Unten. Tabelle 11.2 gibt für jeden Schleifendurchlauf an, welche Elemente l ∈ Unten und o ∈ Oben gewählt werden. Schrittzahl
1
2
3
4
5
5
6
8
9
10
11
12
13
l o
15 5
1 6
14 4
13 7
2 5
12 6
11 4
10 8
6 9
5 8
4 9
9 8
7 3
Tabelle 11.2: Die Auswahl der Werte l und o in den 13 Schleifendurchläufen.
Abbildung 11.6 zeigt die Gestalt der Alias-Tabelle nach den ersten drei Schritten, Abbildung 11.7 die endgültige Tabelle. Zur besseren Nachvollziehbarkeit sind unter den Minutenangaben
132
11 Tabellen-Nachschlagemethoden
die von 1 bis 15 laufenden Indizes der im Algorithmus verwendeten Alias-Tabelle in numerischer Form findet sich in Tabelle 11.3.
4
angegeben. Die
0
2
1/15
−6 −4 −2 1
2
3
Min 0
2
4
6
8
10
12
14
16
18
20
22
4
5
6
7
8
9
10
11
12
13
14
15
Abbildung 11.6: Die Alias-Tabelle nach drei Schritten, in den Kreisen stehen die Alias-Werte
4
10
2
8
10
−2
8
8
0
4
6
0
2
1/15
−6 −4 −2 1
2
3
0
2
4
6
8
10
12
14
16
18
20
22
4
5
6
7
8
9
10
11
12
13
14
15
Min
Abbildung 11.7: Die geometrische Veranschaulichung der fertigen Alias-Tabelle
Ergibt sich bei der Erzeugung einer Zufallszahl nach Algorithmus 11.4 zunächst z. B. der Index i = 13, so wird mit Wahrscheinlichkeit q13 = 0.18 der zum Index 13 gehörende Wert 18 Minuten zurückgegeben, mit Wahrscheinlichkeit 1 − q13 = 0.82 wird der Alias-Wert a13 = 6, also 6 Minuten zurückgegeben. i 1 2 3 4 5
qi 0.09 0.315 1 0.91 0.895
ai 5 4 2 8 7
i 6 7 8 9 10
qi 0.775 0.995 1 0.975 0.765
ai 8 2 7 7 7
i 11 12 13 14 15
Tabelle 11.3: Die fertige Alias-Tabelle
qi 0.54 0.315 0.18 0.09 0.045
ai 3 5 6 3 4
12 Simulationsverfahren für einige Standardverteilungen In den vorangegangenen Kapiteln wurden einige allgemein einsetzbare Simulationsverfahren, wie die Inversionsmethode, Annahme-Verwerfungsmethode etc. vorgestellt. In diesem und den nächsten zwei Kapiteln stehen dagegen die zu simulierenden Verteilungen im Vordergrund. Hier stellen wir zunächst Simulationverfahren für einige wichtige Standardverteilungen zusammen. Dabei kommen die oben eingeführten allgemeinen Verfahren zum Einsatz, z. T. werden aber auch spezielle Verfahren entwickelt. Einen umfassenden Überblick über Simulationsverfahren für die unterschiedlichsten Verteilungen gibt das Buch [Dev86]. Es bezeichne im Folgenden U stets eine U(0, 1)-verteilte Zufallsvariable. Der Programm-Code für eine Implementierung ergibt sich meist sofort aus den mathematischen Formeln, wenn die Zuersetzt wird. In diesen Fällen fallsvariable U durch den Aufruf des U(0, 1)-Generators wird der Code nicht separat aufgeführt.
12.1 Diskrete Verteilungen Zu simulieren ist eine Verteilung auf einer Menge M (meist M ⊂ N0 ) mit der Zähldichte p(i), i ∈ M. Als allgemeines Simulationsverfahren kommt die Inversion in Frage, wobei hier die Bestimmung der inversen Verteilungsfunktion auf eine Suche in der Menge {p(1), p(1) + p(2), . . .} hinausläuft, deren mittlere Laufzeit dem Erwartungswert der Verteilung entspricht, vgl. Satz 8.8. Ist M eine endliche Menge, so kann die Alias-Methode aus Kapitel 11 eingesetzt werden, die zunächst eine etwas komplizierte Tabelle aufbaut, dann aber die Erzeugung der Zufallszahlen in konstanter, sehr kurzer Zeit ermöglicht. Gleichverteilung U ({m, . . . , m + K}) 1 , k ∈ {m, . . . , m + K}. Die Simulation kann mit Hilfe der Inversion mit der Zähldichte p(k) ≡ K+1 (Bsp. 8.9 a)) erfolgen. Dabei nutzt man aus, dass m + (K + 1) ·U die gewünschte Verteilung hat. Bernoulli-Verteilung b(1, p) mit der Zähldichte b(1, p)(k) = p·1{1} (k)+(1− p)1{0} (k), k ∈ {0, 1}. Die Zweipunktverteilung wird mit Inversion (Bsp. 8.6 a)) erzeugt. Binomialverteilung b(n, p) mit der Zähldichte b(n, p)(k) = nk pk (1 − p)n−k , k ∈ {0, , . . . , n}. In Beispiel 8.9 c) wurde ein auf Inversion basierender Algorithmus mit mittlerer Laufzeit np angegeben. Es gilt b(n, p)(k) = b(n, 1 − p)(n − k). Eine Beschleunigung lässt sich daher dadurch erzielen, dass man das Verfahren für p > 12 mit p := 1 − p aufruft und anstelle des Rückgabewerts m der Wert n − m zurückgibt. Man erhält dann die günstigere Laufzeit n · min{p, 1 − p} anstelle von np.
134
12 Simulationsverfahren für einige Standardverteilungen
Geometrische Verteilung geom(p) mit der Zähldichte geom(p)(k) = pqk , k ∈ N0 . Ein Inversionsalgorithmus wurde in Beispiel 8.9 d) vorgestellt, die mittlere Laufzeit ist 1−p p . Der folgende Satz zeigt, dass diese Verteilung schneller und eleganter durch „Abrunden“ einer exponentialverteilten Zufallsvariable simuliert werden kann. Dabei bezeichne a wieder die größte ganze Zahl, die kleiner oder gleich a ist.
a) Hat X die Verteilung exp(α), so ist X geometrisch verteilt mit Parameter p := 1 − e−α . lnU b) Y := ln(1−p) hat die geometrische Verteilung mit Parameter p (wobei U wieder eine U(0, 1)-verteilte Zufallsvariable sei). Beweis: a) Die Verteilungsfunktion von X ist FX (t) = 1 − e−αt , t ≥ 0. Daher folgt für k ∈ N0 P(X = k) = P(k ≤ X < k + 1) = FX (k + 1) − FX (k) = (1 − e−α(k+1) ) − (1 − e−αk ) = e−αk − e−α(k+1) = (e−α )k (1 − e−α ). b) Für α = − ln(1 − p) ist F −1 (r) := − α1 ln(1 − r) =
ln(1−r) ln(1−p) nach Bsp. 8.6 c) die Inverse lnU ln(1−p) hat dann nach dem Inversions-
der Verteilungfunktion von exp(α ). X := F −1 (1 −U) = prinzip (Satz 8.3) die Verteilung exp(α ), mit a) hat X die geometrische Verteilung mit dem Parameter 1 − e−α = p. Aus Satz 12.1 b) erhält man folgenden einfachen Generator für die geometrische Verteilung mit Parameter p
Poisson-Verteilung π(λ) k mit der Zähldichte π(λ )(k) = e−λ λk! , k ∈ N0 . Die Simulation nach dem Inversionsprinzip wurde im Bsp. 8.9 b) beschrieben. Aus der Theorie des Poisson-Prozesses (z. B. [Cin75]) kennt man den folgenden Sachverhalt:
(Xi )i≥1 seien unabhängige, identisch exp(λ )-verteilte Zufallsvariablen für ein λ > 0. Für t ≥ 0 sei n
Nt := max{n ≥ 0 | ∑ Xi ≤ t}
(mit Nt = 0, falls X1 > t).
i=1
k
Dann ist Nt π(tλ )-verteilt, d. h. P(Nt = k) = e−λt (λt) k! , k ∈ N0 .
12.2 Stetige Verteilungen
135
Sind (Ui )i≥1 i.i.d. U(0, 1)-verteilte Zufallsvariablen, so folgt aus dem Inversionsprinzip, dass Xi := − λ1 lnUi , i ≥ 1, i.i.d. exp(λ )-verteilt sind und daher ' ( n 1 Y := max n ≥ 0 | ∑ − lnUi ≤ 1 λ i=1 dieselbe Verteilung wie N1 hat, d. h. Y hat eine π(λ )-Verteilung. Wegen n
∑
i=1
−
1 lnUi ≤ 1 λ
⇐⇒
−
1 n ln ∏ Ui ≤ 1 λ i=1
⇐⇒
n
∏ Ui ≥ e−λ i=1
erhält man folgenden einfachen Algorithmus für die π(λ )-Verteilung: S IMULATION DER P OISSON -V ERTEILUNG λ
Man kann zeigen, dass die Anzahl der Schleifendurchläufe im Mittel λ ist. Ist λ sehr groß, so kann π(λ ) auch durch eine Normalverteilung approximiert werden. Es gilt dabei: sind X1 , . . . , Xn i.i.d. mit Verteilung π(λ /n), so hat X := ∑ni=1 Xi die Verteilung π(λ ). Aufgrund des Zentralen Grenzwertsatzes (siehe Anhang A.23) ist X auch näherungsweise N(λ , λ )-verteilt. Für große λ kann π(λ ) also auch auf folgende Art mit Hilfe eines Generators für N(0, 1) simuliert werden: λ
λ
12.2 Stetige Verteilungen Verteilungen mit einer Dichte können mit der Annahme-Verwerfungsmethode aus Kapitel 9 simuliert werden, wenn es eine simulierbare Hilfsdichte g mit (9.1) gibt. Gleichverteilung U ([a, b]) 1 1 (t), t ∈ R. Der Inversionsalgorithmus wurde im Bsp. 8.6 b) mit der Dichte f (t) = b − a [a,b] dargestellt. Standardnormalverteilung N (0, 1) t2 1 mit der Dichte ϕ(t) = √ e− 2 , t ∈ R. Die Trapezoid-Methode aus Kapitel 10.2 ist sehr schnell 2π und genau, aber kompliziert zu implementieren. Es gibt andere Methoden, z. B. den sogenannten Box-Muller-Polaralgorithmus, der mathematisch sehr elegant und schnell zwei unabhängige
136
12 Simulationsverfahren für einige Standardverteilungen
N(0, 1)-verteilte Zufallszahlen erzeugt. Dieser Algorithmus ist aber sehr empfindlich gegenüber Schwächen der zugrunde liegenden linearen Kongruenzgeneratoren (vgl. [Rip87]). Normalverteilung N (μ, σ 2 ) Ein Generator wurde in Beispiel 10.10 angegeben. Exponentialverteilung exp (α) mit der Dichte f (t) = αe−αt , t ≥ 0. Die Inversion wurde in Bsp. 8.6 c) behandelt. Die sogenannte v. Neumann-Forsythe-Rejection-Method (siehe [Dev86]) kommt ohne Berechnung von Logarithmen aus, ist aber empfindlich gegenüber Mängeln der U(0, 1)-Generatoren. Erlang-n-Verteilung (Γα,n -Verteilung) n−1 (αt)i α nt n−1 −αt e , t ≥ 0, und der Verteilungsfunktion F(t) = 1−e−αt ∑ , mit der Dichte f (t) = (n − 1)! i=0 i! t ≥ 0, für einen Parameter α > 0. Es gilt: sind X1 , . . . , Xn i.i.d. exp(α)-verteilt, so ist ∑ni=1 Xi Erlang-n-verteilt mit Parameter α. Aus der Inversionsmethode zur exp(α)-Verteilung gewinnt man, dass folgende Zufallsvariable Erlang-n-verteilt ist: n 1 1 n ∑ − α lnUi = − α ln ∏ Ui . i=1 i=1 Also ergibt sich folgender Algorithmus:
− α1 Weibull-Verteilung W (α) α α mit der Dichte f (t) = α t α−1 e−t , t > 0, und der Verteilungsfunktion F(t) = 1 − e−t , t > 0, für einen Parameter α > 0. Die Weibull-Verteilung tritt bei Zuverlässigkeits- und Lebensdauerproblemen auf. Es gilt: Be1 sitzt X die exp(1)-Verteilung, so hat X α die Weibull-Verteilung W (α). Daraus oder mit Hilfe −1 der invertierten Verteilungsfunktion F (r) = (− ln(1 − r))1/α = exp( α1 ln(− ln(1 − r))), erhält man den Zufallsgenerator α
12.3 Mehrdimensionale Verteilungen Zur Simulation von mehrdimensionalen Verteilungen z. B. auf Rn oder Nn0 muss der Zufallsgenerator bei jedem Aufruf ein n-Tupel (x1 , . . . , xn ) zurückgeben. Dazu muss u. U. ein eigener Datentyp definiert werden; wir lassen diesen Punkt in unserem Pseudocode offen. Produktverteilung Ist Q die Verteilung der n-dimensionalen Zufallsvariable (X1 , . . . , Xn ), so ist Q Produktverteilung genau dann, wenn X1 , . . . , Xn unabhängig sind, vgl. Anhang A.14. Q kann dann einfach durch die
12.3 Mehrdimensionale Verteilungen
137
Aufrufe der Generatoren für die n Randverteilungen von X1 , . . . , Xn simuliert werden. Sind die X1 , . . . , Xn identisch verteilt, so muss nur ein Generator n-mal aufgerufen werden. Es soll U(A) auf dem Rechteck A = [a1 , b1 ] × [a2 , b2 ] × [a3 , b3 ] simuliert werden. Nach Anhang A.14 ist U(A) das Produktmaß U([a1 , b1 ]) × U([a2 , b2 ]) × U([a3 , b3 ]). Daher stellt der folgende Aufruf einen Generator für U(A) dar: b1 − a1 b3 − a3
a1 a3
b2 − a 2
a2
0.15 0.10 3
0.05
2 1
−3
0
−2 −1
−1
0 1
−2 2 3 −3
Abbildung 12.1: Die zweidimensionale Normalverteilung Nn (0, I)
Die n-dimensionale Normalverteilung Nn (μ, Σ) Die Dichte von Nn (μ, Σ) ist in Anhang A.12 angegeben. Abbildung 12.1 zeigt die 2-dimensionale Normalverteilung mit μ = (0, 0), Σ = I, die das Produkt von eindimensionalen Standardnormalverteilungen ist (vgl. Anhang A.14). Durch wird daher Nn (0, I) simuliert mit 0 = (0, . . . , 0) und der n−dimensionalen Einheitsmatrix I. Ist μ ∈ Rn und Σ eine positiv definite (n×n)-Matrix mit der Darstellung Σ = AAT für eine nicht singuläre Matrix A, so folgt mit Anhang A.12, dass Nn (μ, Σ) durch die lineare Transformation T (x) := Ax + μ, x ∈ Rn , aus Nn (0, I) hervorgeht, d. h. hat X die Verteilung Nn (0, I), so hat Y := T (X) die Verteilung Nn (μ, Σ). Der folgende Algorithmus simuliert daher Nn (μ, Σ):
138
12 Simulationsverfahren für einige Standardverteilungen N - DIMENSIONALE
N ORMALVERTEILUNG / / x simuliert Nn (0, I)
μi Ai, j
Es sei X = (X1 , X2 ) eine N2 (μ, Σ)− verteilte Zufallsvariable. Es seien σ12 := V(X1 ), σ22 := V(X2 ) die Varianzen der Randverteilungen und ρ := Korr(X1 , X2 ) der Korrelationskoeffizient von X1 , X2 . Dann gilt für die Zerlegung Σ = AAT σ1 0 σ12 ρσ1 σ2 * Σ= und A = . ρσ1 σ2 σ22 ρσ2 σ2 1 − ρ 2 Als Algorithmus erhält man daher
ρ
ρ2
Simulation abhängiger Zufallsvariablen Die Simulation beliebiger mehrdimensionaler Verteilungen, die nicht Produktverteilungen sind, ist schwieriger. Mit Hilfe des folgende Satzes lässt sie sich auf die Simulation eindimensionaler bedingter Verteilungen zurückführen: Es seien X1 , . . . , Xn diskrete Zufallsvariablen mit Werten in N. Dann gilt P((X1 , . . . , Xn ) = (k1 , . . . , kn )) = P[Xn = kn | X1 = k1 , . . . , Xn−1 = kn−1 ] · P[Xn−1 = kn−1 | X1 = k1 , . . . , Xn−2 = kn−2 ] · . . . · P[X2 = k2 | X1 = k1 ] · P(X1 = k1 ) für alle k1 , . . . , kn ∈ N. Der Beweis folgt induktiv aus den definierenden Eigenschaften der bedingten Verteilung, vgl. Anhang A.8. Eine entsprechende Aussage gilt für allgemeine, nicht-diskrete Verteilungen. wobei (k1 , . . . , ki−1 ) die Gibt es Generatoren bedingte Verteilung P[Xi = · | X1 = k1 , . . . , Xi−1 = ki−1 ] simuliert, so liefert der folgende Algorithmus nach Satz 12.7 ein Tupel von Zufallszahlen, das die gemeinsame Verteilung der Zufallsvariablen (X1 , . . . , Xn ) simuliert:
12.3 Mehrdimensionale Verteilungen
139
Zufällige Permutation Zu n + 1 „Objekten“ (ohne Einschränkung seien dies die Zahlen 0, . . . , n) ist ein Algorithmus gesucht, der bei jedem Aufruf eine zufällige Anordnung der Objekte (d. h. eine Permutation von {0, . . . , n}) liefert. Die Menge Sn+1 der Permutationen kann als Teilmenge von N0n+1 angesehen werden, sie enthält genau (n + 1)! Elemente, die Gleichverteilung darauf hat also die konstante Zähldichte 1/(n + 1)! Zufällige Permutation werden z. B. bei stochastischen Such- und Optimierungsverfahren in der kombinatorischen Optimierung benötigt. So sucht man z. B. bei dem bekannten TravellingSalesman-Problem eine Rundreise minimaler Länge durch vorgegebene Punkte („Städte“). Eine zufällige Permutation der Städte stellt dann eine zufällig herausgegriffene (i. A. sehr schlechte) Lösung des Problems dar. ein Feld, das die n + 1 Objekte 0, . . . , n enthalte. Nach Es sei im Folgenden eine zufällige Anordnung jedem Aufruf des folgenden Algorithmus enthält der Objekte. Der Algorithmus benötigt n Aufrufe des U(0, 1)-Zufallsgenerators, arbeitet aber innerhalb des Feldes, benötigt also keinen zusätzlichen Speicherplatz. Z UFÄLLIGE P ERMUTATION
/ / simuliert U({0, . . . , i})
U({0, . . . , i})
8
1
6 7
4
5
9 3
0
2
0
1
2
4
5
6
8
9
3
7
Abbildung 12.2: Der Aufbau einer zufälligen Permutation. In den grauen Feldern stehen bereits die endgültigen Werte.
Der Algorithmus baut die Permutation sukzessive auf, beginnend mit dem rechten Rand des ). Das -te Element des Feldes wird jeweils ersetzt durch ein zufällig gewähltes Feldes ( . Abbildung 12.2 zeigt ein Feld mit n = 9 nach vier Schritten mit Element aus Algorithmus 12.8, in denen die Werte 2, 0, 3, 2 angenommen hat. Die mathematische Begründung für diesen Algorithmus liefert der folgende Satz, bei dem die Indizes 0, . . . , n anders als im Algorithmus in ihrer natürlichen Reihenfolge betrachtet werden. Der Satz zeigt auch, dass der Algorithmus 12.8 nach dem Prinzip aus Satz 12.7 arbeitet.
140
12 Simulationsverfahren für einige Standardverteilungen
Es seien X0 , . . . , Xn Zufallsvariablen mit Werten in {0, . . . , n} mit folgenden Verteilungen: PX0 = U({0, . . . , n}),
P [Xi+1 = m | X0 = m0 , . . . , Xi = mi ] =
1 n−i
0
falls m ∈ {0, . . . , n} − {m0 , . . . , mi } sonst (12.1)
für alle 0 ≤ i ≤ n − 1 und m0 , . . . , mi paarweise verschieden, d. h. die bedingte Verteilung PXi+1 |X0 ,...,Xi ist die Gleichverteilung über allen nicht unter den X0 , . . . , Xi auftretenden Werten in {0, . . . , n}. Dann gilt P((X0 , . . . , Xn ) = (m0 , . . . , mn )) =
1 (n + 1)!
für alle Permutationen (m0 , . . . , mn ) von {0, . . . , n}, d. h. (X0 , . . . , Xn ) ist gleichverteilt auf der Menge der Permutationen. Beweis: Wir zeigen die folgende stärkere Aussage: Für alle 0 ≤ i ≤ n gilt P((X0 , . . . , Xi ) = (m0 , . . . , mi )) =
1 (n + 1) · n · (n − 1) · . . . · (n − i + 1)
für alle paarweise verschiedenen m0 , . . . , mi ∈ {0, . . . , n}. Für i = 0 gilt die Aussage aufgrund der Voraussetzung über PX0 . Für den Induktionsschritt „i → i + 1“ gilt aufgrund der Voraussetzung und der Induktionsannahme: P((X0 , . . . , Xi+1 ) = (m0 , . . . , mi+1 )) = P[Xi+1 = mi+1 | X0 = m0 , . . . , Xi = mi ] · P((X0 , . . . , Xi ) = (m0 , . . . , mi )) 1 1 1 = · = n − i (n + 1) · n · . . . · (n − i + 1) (n + 1) · n · . . . · (n − (i + 1) − 1)
Um zu erkennen, dass Satz 12.9 die Korrektheit von Algorithmus 12.8 zeigt, muss man sich nur klarmachen, dass in den Feldelementen A[0], . . . , A[i] stets die noch nicht ausgewählten Zahlen aus {0, . . . , n} stehen. Aus diesen wird dann eine gleichverteilte Auswahl getroffen, wie in (12.1) verlangt, vgl. auch Abbildung 12.2.
13 Simulation von Gleichverteilungen auf Flächen Gleichverteilungen bilden gewissermaßen die Basis der stochastischen Modellierung. Sie werden benutzt, um Unsicherheit und Zufälligkeit zu modellieren, wenn es keine weiteren Informationen und Einschränkungen gibt. Formal zeigt das Inversionsprinzip aus Satz 8.3, dass sich alle (eindimensionalen) Verteilungen auf die Gleichverteilung U(0, 1) zurückführen lassen. Wir haben bisher Gleichverteilungen auf unterschiedlichen Mengen untersucht: auf Intervallen, Rechtecken, auf Kugeln und auf der Menge der Permutationen. Wir wenden uns jetzt dem Problem zu, Gleichverteilungen auf Flächen im Rn , wie z. B. der Kugeloberfläche, zu simulieren. Derartige Generatoren werden bei den unterschiedlichsten Fragestellung benötigt, z. B. um Bewegungen oder Verbreitungen im Raum zu simulieren, aber auch, um bei Optimierungproblemen eine zufällige Suchrichtungen in einem Lösungsraum einzuschlagen. Bereits die Definition der Gleichverteilung wirft bei diesen (n − 1)-dimensionalen Gebilden Probleme auf, wie die folgenden Überlegungen zeigen. Zur Erinnerung (vgl. Anhang A.10): Für A ⊂ IRn mit 0 < λ n (A) < ∞ hat die n-dimensionale Gleichverteilung Un (A) die Dichte f (t) := λ n1(A) 1A (t), t ∈ Rn . Für das Maß Un (A) gilt Un (A)(C) =
λ n (A ∩C) , λ n (A)
für C ⊂ Rn .
(13.1)
Dabei schreiben wir wie bisher U(A) für U1 (A). Diese Definition lässt sich offensichtlich nicht ausweiten auf Mengen A ⊂ Rn mit λ n (A) = 0. So kann z. B. auf diese Art keine Gleichverteilung auf der Kugeloberfläche B3 der Einheitskugel im R3 definiert werden, da für dieses (2dimensionale) Gebilde λ 3 (B3 ) = 0 gilt. Um trotzdem eine Art von Gleichverteilung definieren zu können, muss man sich die wesentlichen Eigenschaften der Definition (13.1) vor Augen führen. Das Charakteristische an einer Gleichverteilung Q auf einer Menge A ⊂ Rn ist, dass für C ⊂ A der Wert Q(C) nicht von der Form oder Lage von C abhängt, sondern nur von dem (möglicherweise niedrigdimensionalen) „Volumen“ μ(C) im Verhältnis zum Volumen μ(A) von A, d. h. es gilt Q(C) =
μ(C) μ(A)
bzw. allgemeiner Q(C) =
μ(C ∩ A) μ(A)
für C ⊂ Rn .
(13.2)
Mit dieser Idee kann auch bei λ n (A) = 0 eine Gleichverteilung definiert werden, wenn es für A einen natürlichen Volumenbegriff μ mit μ(A) > 0 gibt, wie es bei der Kugeloberfläche z. B. der Fall ist. Wir wollen die erforderlichen Schritte zur Definition der Gleichverteilung zunächst für einfache Flächen, die sogenannten Simplizes, beschreiben, bevor wir uns den Kugeloberflächen zuwenden.
142
13 Simulation von Gleichverteilungen auf Flächen
13.1 Gleichverteilung auf einem Simplex x3
x3 x2
x2
1 1
A2
1
A3
x1
x1
S2 Abbildung 13.1: Die Simplizes S2 und A3 sind grau markiert, A2 bildet eine Seite von S2 .
Wir betrachten die sogenannten Simplizes (vgl. Abb. 13.1) Sn An
:= :=
' (x1 , . . . , xn ) ∈ Rn | 0 ≤ xi ≤ 1 für i = 1, . . . , n und ' (x1 , . . . , xn ) ∈ Rn | 0 ≤ xi ≤ 1 für i = 1, . . . , n und
n
(
∑ xi
≤ 1
∑ xi
( = 1 .
i=1 n
und
i=1
Wir wollen zunächst in einem Beispiel eine mögliche Anwendung für eine Gleichverteilung auf An skizzieren und erste Überlegungen zu einer Simulation anstellen.
a) Die Gleichverteilung auf An kann man bei der multikriteriellen Optimierung benutzen, um eine eindimensionale Kostenfunktion zu erhalten. Als Beispiel betrachten wir das TravellingSalesman-Problem, bei dem man Rundreisen durch K vorgegebene Punkte (die „Städte“) s1 , . . . , sK untersucht. Jede Lösung x lässt sich als eine Permutation der Indizes 1, . . . , K darstellen. Gesucht ist meist eine Lösung x, für die c1 (x) :=„Länge der Tour bei Reihenfolge x“ minimal wird. Häufig gibt es aber weitere Optimierungskriterien, z.B. sollen einige Städte möglichst in einer bestimmten Reihenfolge oder zu einer bestimmten Zeit besucht werden. Dann sind neben der Kostenfunktion c1 (x) weitere Funktionen c2 (x), . . . , cn (x) zu berücksichtigen, die die Abweichung der Lösung von der Zielvorstellung bewerten. Ein Vergleich zweier Lösungen x, y anhand der mehrdimensionalen Kostenfunktion (c1 (·), . . . , cn (·)) ist dann nicht möglich, falls ci (x) < ci (y) und c j (x) > c j (y) für einige 1 ≤ i, j ≤ n gilt. Häufig versieht man daher die ein¯ := ∑ni=1 αi ci (x) zelnen ci mit Gewichten αi ≥ 0 und betrachtet die Linearkombination c(x)
13.1 Gleichverteilung auf einem Simplex
143
als neue Kostenfunktion. Mit dieser eindimensionalen Kostenfunktion c(·) ¯ können z.B. lokale Verbesserungsschritte gemacht werden. Meist wird man dabei ∑ni=1 αi = 1 fordern, also eine konvexe Linearkombination benutzen. Es gilt dann α = (α1 , . . . , αn ) ∈ An . Die Wahl der Gewichte αi erfolgt oft sehr willkürlich. Will man die Suche nach guten Lösungen durch eine feste Wahl der Gewichte nicht zu sehr einschränken, so kann man bei jedem Suchschritt andere, zufällig ausgewählte Gewichtsvektoren (α1 , . . . , αn ) ∈ An benutzen, also gewissermaßen in verschiedene Richtungen im Kostenraum suchen. Die Gewichtsvektoren α = (α1 , . . . , αn ) sollten dazu gemäß einer Gleichverteilung auf An ausgewählt werden. b) Man könnte versuchen, die gleichverteilte Auswahl von (α1 , . . . , αn ) folgendermaßen vorzunehmen: Zuerst werden n Werte u1 , . . . , un mit einem U(0, 1)-Generator erzeugt, dann normiert man die Werte mit u¯ := ∑ni=1 ui und setzt ¯ . . . , un /u). ¯ (α1 , . . . , αn ) := (u1 /u, Dann liegt (α1 , . . . , αn ) offensichtlich in An , nicht so leicht zu sehen ist aber, dass diese Werte nicht gleichverteilt sind. Um dies zu zeigen, untersuchen wir den Fall √ n = 2 genauer. Das 1-dimensionale Volumen von A2 , also die Länge von A2 , ist offensichtlich 2. In Abbildung 13.2 ist A2 und die Umgebung Δ des Punktes (1/2, 1/2) mit dem Radius δ markiert. Die Länge von Δ ist 2δ , für eine auf A2 gleichverteilte Zufallsvariable Y ist die korrekte Wahrscheinlichkeit nach (13.2) also √ 2δ P(Y ∈ Δ) = √ = 2δ . 2 Seien nun U1 ,U2 zwei unabhängige U(0, 1)-verteilte Zufallsvariablen, dann entspricht die x2 1
Δ δ A2 1/2 − ε
1/2
1/2 + ε
1
x1
Abbildung 13.2: Δ ist die Umgebung um (1/2, 1/2) mit „Radius“ δ .
Bestimmung von (α1 , α2 ) wie oben der Beobachtung der Zufallsvariable V = (V1 ,V2 ) := (
U1 U2 , ). U1 +U2 U1 +U2
Offensichtlich gilt 0 ≤ Vi ≤ 1 und V1 +V2 = 1, d. h. V nimmt Werte an in A2 . Wir bestimmen nun P(V ∈ Δ). Aus einfachen geometrischen Überlegungen (vgl. Abbildung 13.2) gewinnt √ man, dass mit ε := δ / 2
144
13 Simulation von Gleichverteilungen auf Flächen
(V1 ,V2 ) ∈ Δ
⇐⇒ ⇐⇒ ⇐⇒
Mit γ :=
1+2ε 1−2ε
1 1 − ε ≤ V1 ≤ + ε 2 2 2U1 ≤ 1 + 2ε 1 − 2ε ≤ (U1 +U2 ) 1 − 2ε 1 + 2ε U2 ≤ U1 ≤ U2 . 1 + 2ε 1 − 2ε
folgt daher mit dem Satz von der totalen Wahrscheinlichkeit (Anhang A.9)
+ 1 1 1 P(V ∈ Δ) = P U2 ≤ U1 ≤ U2 γ = P U2 ≤ U1 ≤ U2 γ | U2 = u PU2 (du) γ γ 0 + 1 + 1 1 u P u ≤ U1 ≤ uγ PU2 (du) = = P(U1 ≤ uγ) − P(U1 < ) du γ γ 0 0 + 1/γ + 1 + 1 1 u du = 1 − = uγ du + 1 du − γ γ 0 1/γ 0 4ε . = 1 + 2ε * Es gilt aber für δ < 1/2, dass
P(V ∈ Δ) =
√ 4ε > 2ε = 2δ = P(Y ∈ Δ). 1 + 2ε
Die Werte von V sind also stärker in der Mitte von A2 konzentriert, als dies unter der Gleichverteilung der Fall sein dürfte. Abbildung 13.4 auf Seite 151 zeigt, wie sich die Punkte bei n = 3 auf dem Simplex A3 verteilen. Der eben für n = 2 berechnete Effekt ist auch dort deutlich zu sehen, die Verteilung von V entspricht nicht der Gleichverteilung auf dem Simplex. c) Für den Fall n = 2 kann man Werte in A2 offensichtlich einfach mit der Zufallsvariablen W = (U1 , 1 −U1 ) erzeugen. Hier gilt √ 1 1 P(W ∈ Δ) = P( − ε ≤ U1 ≤ + ε) = 2ε = 2δ , 2 2 d. h. diese einfache Konstruktion liefert zumindest auf Δ die richtige Wahrscheinlichkeit. Unten werden wir sehen, wie dieses (korrekte) Verfahren auf den Fall n > 2 verallgemeinert werden kann.
13.1.1 Die Definition der Gleichverteilung auf An Nach den Überlegungen von oben muss für die Gleichverteilung zunächst das (n − 1)-dimensionale Volumen μn−1 (C ∩ An ) bestimmt werden. Dies geschieht mit Hilfe des OberflächenIntegrals. Die grobe Vorgehensweise ist dabei die folgende: An wird als Bild der (n − 1)-dimensionalen Menge Sn−1 unter einer einfachen Transformation dargestellt. In Abbildung 13.1 muss
13.1 Gleichverteilung auf einem Simplex
145
z. B. der Nullpunkt von S2 auf der x3 -Achse „hochgeklappt“ werden, um A3 zu darzustellen. Dann kann das λ n−1 -Volumen von Sn−1 auf An übertragen werden. Um formal korrekt An als (n − 1)-dimensionale Untermannigfaltigkeit des Rn darstellen zu können, müssen wir uns zunächst auf Teilmengen der Simplizes beschränken indem wir Randpunkte weglassen, es sei S˘n := {(x1 , . . . , xn ) | 0 < xi < 1 für 1 ≤ i ≤ n und A˘ n := {(x1 , . . . , xn ) | 0 < xi < 1 für 1 ≤ i ≤ n und
n
∑ xi < 1}
i=1 n
∑ xi = 1}.
i=1
(x1 , x2 , 1 − x1 − x2 )
T
(x1 , x2 )
Abbildung 13.3: T bildet Punkte aus S˘n−1 auf A˘ n ab.
Die Darstellung von A˘ n durch S˘n−1 geschieht jetzt mit Hilfe der Abbildung T : S˘n−1 → A˘ n
n−1
mit T (x1 , . . . , xn−1 ) := (x1 , . . . , xn−1 , 1 − ∑ xi )
(13.3)
i=1
T „ergänzt“ Punkte aus S˘n−1 zu entsprechenden Punkten in A˘ n , vgl. Abb. 13.3. T ist offensichtlich eine stetig differenzierbare Abbildung, deren Umkehrabbildung T −1 (y1 , . . . , yn ) := (y1 , . . . , yn−1 ) = pr1...n−1 (y1 , . . . , yn ), gerade die Projektion pr1...n−1 auf die ersten n−1 Koordinaten von Rn ist. T −1 ist daher ebenfalls stetig differenzierbar. Die Funktionalmatrix ⎞ ⎛ 1 0 0 · · · 0 −1 ⎟ ⎜ ⎜ 0 1 0 · · · 0 −1 ⎟ ∂ Ti ⎟ ⎜ (13.4) = ⎜ DT (x1 , . . . , xn−1 ) = ⎟ .. ⎜ 0 ∂ x j 1≤i≤n . 0 −1 ⎟ 1≤ j≤n−1 ⎠ ⎝ 0 · · · 1 −1 hat maximalen Rang. Daher ist T eine Parameterdarstellung von A˘ n , d. h. eine Darstellung der Fläche An (oder zumindest A˘ n ) im Rn durch Einbettung des (n − 1)-dimensionalen Simplexes
146
13 Simulation von Gleichverteilungen auf Flächen
Sn−1 in den Rn (siehe z. B. [For07], S. 134). A˘ n ist daher eine (n − 1)-dimensionale Untermannigfaltigkeit im Rn . Zur Bestimmung des Integrals über An und damit des Volumens muss man die Volumenveränderung bei der Einbettung berücksichtigen. Dies geschieht mit der Gram’schen Determinanten der Funktionalmatrix: (13.5) ΓT (x) := det (DT (x))T (DT (x) , x ∈ Rn−1 . Wir definieren dann das (n − 1)-dimensionale Volumen einer Menge C ⊂ A˘ durch μn−1 (C) :=
+
*
T −1 (C)
ΓT (x) dλ n−1 (x)
(13.6)
wobei T −1 (C) messbar in Rn−1 sein muss. Wir wollen wie bisher schon weiter voraussetzen, dass alle betrachteten Mengen in geeigneter Weise messbar sind und dies nicht jedesmal gesondert erwähnen. Die Gram’sche Determinante berechnet sich hier wegen (13.4) zu ΓT (x) = n. (13.6) wird daher zu μn−1 (C) =
+ T −1 (C)
√
n dλ n−1 (x) =
√
n λ n−1 (T −1 (C)) =
√ n−1 n λ (pr1...n−1 (C))
(13.7)
√ für C ⊂ A˘ n . Der Faktor n drückt also die Volumenänderung aus, die Teilmengen von Sn−1 erfahren, wenn sie mit T nach An „hochgeklappt“ werden. Der folgende Satz zeigt, welchen Wert der Quotient aus (13.2) jetzt annimmt.
Für μn−1 aus (13.7) gilt μn−1 (C ∩ An ) = (n − 1)! λ n−1 pr1...n−1 (C ∩ An ) μn−1 (An )
für C ⊂ Rn .
Bevor wir den Satz beweisen, können wir jetzt die Gleichverteilung auf An so definieren, dass (13.2) erfüllt wird:
Die Gleichverteilung U˜ n−1 (An ) wird definiert durch den Ausdruck aus Satz 13.2, also U˜ n−1 (An )(C) := (n − 1)! λ n−1 pr1...n−1 (C ∩ An ) für C ⊂ Rn . Dabei soll das Symbol U˜ n−1 andeuten, dass die Verteilung im wesentlichen im Rn−1 definiert ist, aber nicht mit der einfachen Gleichverteilung aus (13.1) identisch ist.
13.1 Gleichverteilung auf einem Simplex
147
Beweis: (zu Satz 13.2) 1. Da λ n−1 (pr1,...,n−1 (An − A˘ n )) = 0 gilt, können wir den Unterschied zwischen An und A˘ n hier vernachlässigen. Es sei C ⊂ An , dann gilt nach (13.7) √ n−1 n λ (pr (C)) λ n−1 (pr1...n−1 (C)) λ n−1 (pr1...n−1 (C)) μn−1 (C) = √ n−1 1...n−1 = = λ n−1 (Sn−1 ) μn−1 (A˘ n ) n λ (pr1...n−1 (A˘ n )) λ n−1 (S˘n−1 ) da pr1...n−1 (A˘ n ) = S˘n−1 nach (13.3). 2. Zu zeigen bleibt λ n−1 (Sn−1 ) = 1/(n − 1)!. Es sei dazu für t ∈ [0, 1] Sn (t) := {(x1 , . . . , xn ) ∈ Rn | 0 ≤ xi ≤ t für 1 ≤ i ≤ n und
n
∑ xi ≤ t}.
i=1
Dann gilt offensichtlich Sn = Sn (1). Wir zeigen durch Induktion über n ≥ 2, dass λ n (Sn (t)) = t n /n! gilt, mit t = 1 folgt dann die Behauptung. Für n = 2 folgt λ 2 (S2 (t)) = t 2 /2 sofort aus geometrischen Überlegungen, siehe Abbildung 13.1. Für den Induktionsschritt „n → n + 1“ gilt λ n+1 (Sn+1 (t)) = = = =
+ t 0
···
+ t 0
+ t + t−x1 0
+ t 0
0
n+1
1[0,t] ( ∑ xi ) dxn+1 · · · dx1 i=1
···
+ t−x1 0
n+1 1[0,t−x1 ] ( ∑ xi ) dxn+1 · · · dx2 dx1
λ (Sn (t − x1 )) dx1 = n
i=2
+ t (t − x1 )n 0
n!
dx1 =
1 n!
+ t 0
(t − x)n dx
t n+1 1 t n+1 · = n! n + 1 (n + 1)!
Mit dem letzten Teil des Beweises wurde auch gezeigt, dass die gewöhnliche Gleichverteilung Un (Sn ) die folgende λ n -Dichte hat f (t) := n!1Sn (t),
t ∈ Rn .
(13.8)
˜n−1 (An ) 13.1.2 Die Simulation von U Für die Simulation der Gleichverteilung auf An ist der folgende einfache Zusammenhang zwischen den Gleichverteilungen auf Sn−1 und An von Bedeutung. a) Ist X = (X1 , . . . , Xn ) eine U˜ n−1 (An )-verteilte n-dimensionale Zufallsvariable, so hat (X1 , . . . , Xn−1 ) die Verteilung Un−1 (Sn−1 ). b) Ist Y = (Y1 , . . . ,Yn−1 ) eine Un−1 (Sn−1 )-verteilte (n − 1)-dimensionale Zufallsvariable, so ˜ hat (Y1 , . . . ,Yn−1 , 1 − ∑n−1 i=1 Yi ) die Verteilung Un−1 (An ).
148
13 Simulation von Gleichverteilungen auf Flächen
Grob gesagt gilt also für die in (13.3) definierte Abbildung T, erweitert zu T : Sn−1 → An : Y gleichverteilt auf Sn−1
⇐⇒
X = T (Y ) gleichverteilt auf An .
Beweis: a) Hat X die Verteilung U˜ n−1 (An ), so nimmt (X1 , . . . , Xn−1 ) = T −1 (X) nur Werte in Sn−1 an. Für D ⊂ Rn−1 gilt daher P((X1 , . . . , Xn−1 ) ∈ D) = P((X1 , . . . , Xn−1 ) ∈ D ∩ Sn−1 ) = P(T −1 (X1 , . . . , Xn ) ∈ D ∩ Sn−1 ) = P((X1 , . . . , Xn ) ∈ T (D ∩ Sn−1 )) = U˜ n−1 (An )(T (D ∩ Sn−1 )) λ n−1 (pr1...n−1 (T (D ∩ Sn−1 )) λ n−1 (D ∩ Sn−1 ) = λ n−1 (Sn−1 ) λ n−1 (Sn−1 ) = Un−1 (Sn−1 )(D). =
b) Sei Y Un−1 (Sn−1 )-verteilt. Es genügt zu zeigen, dass für X := T (Y ) = (Y1 , . . . ,Yn−1 , 1 − ∑n−1 i=1 Yi ) gilt P(X ∈ Ct ) = U˜ n−1 (An )(Ct ) (13.9) für Mengen Ct := {(x1 , . . . , xn ) ∈ Rn | xi > ti für 1 ≤ i ≤ n} für alle t = (t1 , . . . ,tn ) ∈ Rn . Es gilt zunächst n−1
n−1
P(X ∈ Ct ) = P((Y1 , . . . ,Yn−1 , 1 − ∑ Yi ) ∈ Ct ) = P(Y1 > t1 , . . . ,Yn−1 > tn−1 , 1 − ∑ Yi > tn ) i=1
i=1
n−1
= P(Y1 > t1 , . . . ,Yn−1 > tn−1 , ∑ Yi < 1 − tn ) = P((Y1 , . . . ,Yn−1 ) ∈ C˜t ) = Un−1 (Sn−1 )(C˜t ) =
i=1 n−1 λ (C˜t ) λ n−1 (Sn−1 )
= (n − 1)!λ n−1 (C˜t )
mit C˜t := {(y1 , . . . , yn−1 ) ∈ Rn−1 | yi > ti für 1 ≤ i ≤ n − 1 und ∑n−1 i=1 yi < 1 − tn }. Die Behauptung (13.9) ist bewiesen, wenn wir zeigen können, dass pr1...n−1 (Ct ∩ An ) = C˜t . Es gilt aber pr1...n−1 (Ct ∩ An ) = pr1...n−1 ({(x1 , . . . , xn ) | xi > ti für 1 ≤ i ≤ n und
n
∑ xi = 1})
i=1
= {(x1 , . . . , xn−1 ) | xi > ti für 1 ≤ i ≤ n − 1 und es gibt xn > tn mit
n
∑ xi = 1}
i=1
= {(x1 , . . . , xn−1 ) | xi > ti für 1 ≤ i ≤ n − 1 und es gibt xn > tn n−1
mit = {(x1 , . . . , xn−1 ) | xi > ti für 1 ≤ i ≤ n − 1 und
∑ xi = 1 − x n < 1 − t n }
i=1 n−1
∑ xi < 1 − tn }
i=1
= C˜t .
13.1 Gleichverteilung auf einem Simplex
149
Nach Satz 13.4 b) kann jetzt U˜ n−1 (An ) folgendermaßen simuliert werden: zunächst werden (y1 , . . . , yn−1 ) mit der gewöhnlichen Gleichverteilung auf Sn−1 erzeugt, dann wird (y1 , . . . , yn−1 , 1− ∑n−1 i=1 yi ) zurückzugeben. Dabei ist noch offen, wie man Un−1 (Sn−1 ) effizient simulieren kann, dies zeigt der nächste Satz. Es seien U1 , . . . ,Un−1 unabhängige, identisch U(0, 1)-verteilte Zufallsvariablen und U[1] , . . . ,U[n−1] die zugehörigen aufsteigend sortierten Werte. Es sei U[0] := 0 und U[n] := 1. Ferner sei 1 ≤ i ≤ n. (13.10) Xi := U[i] −U[i−1] , Dann gilt a) (X1 , . . . , Xn−1 ) ist Un−1 (Sn−1 )-verteilt. b) (X1 , . . . , Xn ) ist U˜ n−1 (An )-verteilt. Beweis: a) 1. Es sei Dn−1 = {(u1 , . . . , un−1 ) | 0 ≤ u1 ≤ u2 ≤ . . . ≤ un−1 ≤ 1}. Man kann zeigen, dass die gemeinsame Verteilung von U[1] , . . . ,U[n−1] die Gleichverteilung Un−1 (Dn−1 ) ist mit der Dichte f (t) := (n − 1)! 1Dn−1 (t),t ∈ Rn−1 (vgl. z. B. [Hin85], Satz 24.7). 2. Wir benutzen die Abbildungen τ : Rn−1 → Rn−1
mit
τ(u1 , . . . , un−1 ) := (u1 , u2 − u1 , . . . , un−1 − un−2 )
τ¯ : Rn−1 → Rn−1
mit
¯ 1 , . . . , xn−1 ) := (x1 , x1 + x2 , . . . , ∑ xi ). τ(x
n−1 i=1
Dies sind bijektive, zueinander inverse Abbildungen, τ¯ hat die Funktionaldeterminante Δτ¯ ≡ 1 und für Xi wie in (13.10) folgt (X1 , . . . , Xn−1 ) = τ(U[1] , . . . ,U[n−1] ). Daher erhält man mit dem Transformationssatz für Dichten (Anhang A.4) f(X1 ,...,Xn−1 ) (x1 , . . . , xn−1 ) =
¯ 1 , . . . , xn−1 )) |Δτ¯ | fτ(U[1] ,...,U[n−1] ) (x1 , . . . , xn−1 ) = f(U[1] ,...,U[n−1] ) (τ(x
¯ 1 , . . . , xn−1 )) = (n − 1)! 1Sn−1 ((x1 , . . . , xn−1 )). = (n − 1)! 1Dn−1 (τ(x Dabei wurde im letzten Schritt ausgenutzt, dass (x1 , . . . , xn−1 ) ∈ Sn−1
⇐⇒ ⇐⇒
n−1
n−1
i=1
i=1
0 ≤ xi ≤ 1, ∑ xi ≤ 1 ⇐⇒ 0 ≤ x1 ≤ x1 + x2 ≤ . . . ≤
∑ xi ≤ 1
¯ 1 , . . . , xn−1 ) ∈ Dn−1 . τ(x
Mit (13.8) folgt jetzt die Behauptung. b) Mit n−1
∑ Xi
i=1
=
n−1
∑ (U[i] −U[i−1] )
= U[n−1] −U[0] = U[n−1]
i=1
folgt Xn = U[n] −U[n−1] = 1 −U[n−1] = 1 − ∑n−1 i=1 Xi . Die Behauptung folgt jetzt mit Satz 13.4 b) aus Teil a).
150
13 Simulation von Gleichverteilungen auf Flächen
Der folgende Algorithmus erzeugt zunächst n − 1 gleichverteilte Werte aus [0, 1], sortiert sie und gibt die Differenzen zurück, die nach Satz 13.5 b) gleichverteilt auf An sind. Für das Sortieren wird hier ein einfaches „Bubble-Sort“ verwendet, für größere Werte von n müssen effizientere Sortierverfahren benutzt werden, siehe dazu etwa [Dev86], S. 215. G LEICHVERTEILUNG AUF S IMPLEX MIT UNIFORM SPACINGS / / Erzeugen der s o r t i e r t e n g l e i c h v e r t e i l t e n Werte U[1] , . . . ,U[n−1] :
/ / Erg[ i ] einsortieren in Erg[0] , . . , Erg[ i −1] :
/ / hier enthält Erg [ 0 ] . . . Erg[n−2] die Werte U[1] , . . . ,U[n−1] / / Erzeugen der ’uniform spacings ’ U[i] −U[i−1] :
Für n = 2 haben nach Satz 13.5 die Variablen (X1 , X2 ) = (U1 , 1 −U1 ) die Gleichverteilung U˜ 1 (A2 ). Satz 13.5 verallgemeinert daher das in Beispiel 13.1 c) vorgeschlagene Verfahren. In Beispiel 13.1 b) wurde auch eine scheinbar naheliegende andere Methode diskutiert, bei der n Zufallszahlen u1 , . . . , un mit einem U(0, 1)-Generator erzeugt und dann mit ihrer Summe u¯ := ∑ni=1 ui normiert werden, um einen Punkt in An zu erhalten. Abbildung 13.4 zeigt 10000 Punkte auf dem Simplex A3 , links mit den eben beschriebenen normierten Zufallszahlen, rechts mit den korrekten, von Algorithmus 13.6 erzeugten Punkten. Man sieht deutlich, dass links die extremen Werte in den Ecken zu selten auftreten, dies war in Beispiel 13.1 für n = 2 auch berechnet worden.
13.2 Gleichverteilungen auf Kugeloberflächen
151
1.2
1.2
1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Abbildung 13.4: Die Verteilung von 10000 Punkten in A3 , links nach der naiven Methode, rechts nach Satz 13.5
13.2 Gleichverteilungen auf Kugeloberflächen Es sei Bn (r) die Oberfläche von Kn (r), der (Voll-)Kugel um 0 mit Radius r im Rn , also ' ( n Bn (r) := (t1 , . . . ,tn ) ∈ IRn | ∑ ti2 = r2
und Bn := Bn (1).
i=1
Die zufällige Auswahl eines Punktes auf Bn (r) entspricht der zufälligen Auswahl einer Richtung im Rn vom Punkt 0 aus. Modellierung und Simulation eines Gleichverteilung auf Bn (r) ist daher eine wichtige Aufgabe in vielen naturwissenschaftlich-technischen Fragestellungen, aber auch bei stochastischen Such- und Optimierungsaufgaben. Hier gilt jedoch wieder λ n (Bn (r)) = 0 , da Bn (r) eine (n−1)-dimensionale Untermannigfaltigkeit des Rn ist. Es gibt daher keine λ n -Dichte auf Bn (r) und insbesondere keine Gleichverteilung im einfachen Sinne.
13.2.1 Definition der Gleichverteilung Um die Idee aus Abschnitt 13.1 verwenden zu können, muss das (n − 1)-dimensionale Volumen μn−1 (C) für Teilmengen C ⊂ Bn (r) bestimmt werden. μn−1 (·) ergibt sich wie in (13.6) aus einem Oberflächenintegral, lediglich die Einbettung der (n − 1)-dimensionalen Ausgangsmenge in den Rn ist hier komplizierter, sie erfolgt mit n-dimensionalen Polarkoordinaten. Es sei dazu π π π π A := [0, 2π) × [− , ] × . . . × [− , ] 2 2 2 2
⊂ Rn−1 ,
152
13 Simulation von Gleichverteilungen auf Flächen
und R = (R1 , . . . , Rn ) : R × A → Rn mit Ri : Rn → R sei definiert durch R1 (r, ϑ1 , . . . , ϑn−1 ) := r R2 (r, ϑ1 , . . . , ϑn−1 ) := r R3 (r, ϑ1 , . . . , ϑn−1 ) := r .. .. . . Rn (r, ϑ1 , . . . , ϑn−1 ) := r
cos ϑ1 sin ϑ1
cos ϑ2 cos ϑ2 sin ϑ2
... ... ... .. .
cos ϑn−1 cos ϑn−1 cos ϑn−1 .. . sin ϑn−1
Für r = 0 liefert R den Übergang von n-dimensionalen Polarkoordinaten zu kartesischen Koordinaten. Schränkt man R ein auf die Menge {r} × A, so gilt R({r} × A) = Bn (r), die Abbildung ist bis auf die Pole von Bn (r), die wir im Folgenden außer Acht lassen, bijektiv. Für festen Radius r = 1 setzen wir T (ϑ ) := R(1, ϑ ),
(13.11)
T ist dann eine Parameterdarstellung der Kugeloberfläche. Für das (n − 1)-dimensionale Volumen bzw. das Oberflächenintegral benötigen wir wieder die Gram’sche Determinante aus (13.5), für die in diesem Falle gilt (vgl. [ZN83]): * ΓT (ϑ ) = cos ϑ2 cos2 ϑ3 · . . . · cosn−2 ϑn−1
(13.12)
mit ϑ := (ϑ1 , . . . , ϑn−1 ). Das (n − 1)-dimensionalen Volumen auf Bn wird definiert als μn−1 (C) :=
+
*
T −1 (C)
ΓT (ϑ ) dϑ
für C ⊂ Bn ,
für die Oberfläche folgt insbesondere μn−1 (Bn ) =
+
* 2π n/2 ΓT (ϑ ) dϑ = Γ( n2 ) T −1 (Bn )
(13.13)
Die Gleichverteilung lässt sich jetzt wieder über das Verhältnis der (n − 1)-dimensionalen Volumina definieren:
Die Gleichverteilung U˜ n−1 (Bn ) auf Bn = Bn (1) wird definiert durch U˜ n−1 (Bn ) (C) := mit ϑ := (ϑ1 , . . . , ϑn−1 ) und C ⊂ Bn .
Γ( n2 ) 2π n/2
+ T −1 (C)
* ΓT (ϑ ) dϑ
13.2 Gleichverteilungen auf Kugeloberflächen
153
˜1 (B2 ) 13.2.2 Simulation von U Eine besonders einfache Situation ergibt sich für n = 2, also für die Gleichverteilung auf der Kreislinie B2 . Es gilt hier μ1 (B2 ) = 2π,
T (ϑ1 ) = R(1, ϑ1 ) = (cos ϑ1 , sin ϑ1 )
und
ΓT (ϑ1 ) = 1
(13.14)
für ϑ1 ∈ A = [0, 2π). Aus Definition 13.8 ergibt sich daher 1 U˜ 1 (B2 ) (C) = 2π
+ T −1 (C)
1 dϑ1 =
λ 1 (T −1 (C)) , 2π
wobei T −1 die Umkehrabbildung zu T aus (13.14) ist. Hat X die Gleichverteilung U1 (0, 2π) auf dem Intervall [0, 2π), so hat Y := T (X) = (cos X, sin X) die Gleichverteilung U˜ 1 (B2 ) auf der Kreislinie. Dies folgt mit (13.14) aus P(Y ∈ C) = P((cos X, sin X) ∈ C) = P(T (X) ∈ C) = P(X ∈ T −1 (C)) =
λ 1 (T −1 (C)) = U˜ 1 (B2 ) (C). 2π
Der folgende Algorithmus simuliert daher U˜ 1 (B2 ) : S IMULATION DER G LEICHVERTEILUNG AUF DEM K REIS / / simuliert U(0, 2π)
Für n = 2 lässt sich die Gleichverteilung U1 (0, 2π) also sehr einfach auf den Kreisbogen übertragen. Für n ≥ 3 gilt dies jedoch nicht mehr, da dann die entscheidende Größe ΓT keine Konstante mehr ist. Anschaulich liegt dies daran, dass zu gleichgroßen Bereichen der Polarkoordinaten, z. B. D := [0, 2π) × [0, τ] und D := [0, 2π) × [π/4, π/4 + τ], unterschiedlich große Oberflächenbereiche gehören können, aus λ 2 (D) = λ 2 (D ) folgt also also nicht unbedingt μ2 (T (D)) = μ2 (T (D )), vgl. Abb. 13.5. In [ZN83] finden sich weitere Details zur Bestimmung von U˜ n−1 (Bn ) mit Hilfe des Oberflächenintegrals.
˜n−1 (Bn ) als radial-symmetrische Verteilung 13.2.3 U Wir wollen hier einen etwas anderen, einfacheren Weg zur Simulation von U˜ n−1 (Bn ) beschreiten. Die im Zusammenhang mit (13.2) beschriebene Invarianz der Gleichverteilung gegenüber Lageund Formveränderungen lässt sich für Bn durch die Invarianz gegenüber Drehungen um den Nullpunkt präzisieren. Wir wollen daher zunächst allgemeiner Verteilungen betrachten, die diese Invarianzeigenschaft haben. Zur Erinnerung: Eine reelle (n × n)-Matrix M heißt orthogonal, falls ihre Spalten eine Orthonormalbasis des Rn bilden. Die lineare Abbildung x → Mx beschreibt dann eine Drehung um den Nullpunkt, es gilt x = Mx und | det M| = 1. Ferner gilt M −1 = M T , die transponierte
154
13 Simulation von Gleichverteilungen auf Flächen
τ
1 0.5 0 −0.5
−1 τ 1 0.5 0 −0.5 −1 −1
−0.5
0
0.5
1
Abbildung 13.5: Links: unterschiedlich große Oberflächen gehören hier zu gleichgroße Mengen von Polarkoordinaten (jeweils vom λ 2 -Volumen 2πτ). Rechts: das Ergebnis einer naiven Simulation mit gleichverteilten Polarwinkeln zeigt deutlich eine Häufung der Punkte an den Polen.
Matrix M T ist ebenfalls eine orthogonale Matrix. Wir bezeichnen mit M die Menge aller reellen orthogonalen (n × n)-Matrizen. Wir fassen jetzt alle Vektoren als Spaltenvektoren auf, daher gilt für einen Zufallsvektor X = (X1 , . . . , Xn ) und eine Matrix M = (mi j )1≤i, j≤n n
n
j=1
j=1
MX = ( ∑ m1 j X j , . . . , ∑ mn j X j ). Für C ⊂ Rn sei MC := {Mx | x ∈ C} die mit M gedrehte Menge C.
Die Verteilung von X = (X1 , . . . , Xn ) (auf Rn ) heißt radial-symmetrisch, falls sie invariant unter Drehungen ist, d. h. falls PX = PMX für alle orthogonalen (n × n)-Matrizen M gilt. Der folgende Satz liefert Kriterien für die Eigenschaft „radial-symmetrisch“.
a) X = (X1 , . . . , Xn ) hat eine radial-symmetrische Verteilung genau dann, wenn P(X ∈ C) = P(X ∈ MC) für alle M ∈ M und alle C ⊂ Rn gilt. b) Falls X eine Dichte f besitzt, so gilt : PX ist radial-symmetrisch ⇐⇒ für alle M ∈ M gilt f (t) = f (Mt) λ n -fast sicher ⇐= es gibt g : R → R+ mit f (t) = g(t), t ∈ Rn . Wir nennen dann auch die Dichte f „radial-symmetrisch“.
13.2 Gleichverteilungen auf Kugeloberflächen
155
Die letzte Eigenschaft in b) besagt, dass f auf den Kugelschalen Bn (r) um den Nullpunkt konstant ist, für alle Punkte t ∈ Bn (r) gilt ja gerade t = r. Man kann schnell zeigen, dass dies äquivalent zur radialen Symmetrie von f ist, falls die Nullmenge, außerhalb derer f (t) = f (Mt) gilt, unabhängig von M ∈ M gewählt werden kann. Beweis: a) Es sei M ∈ M, dann gilt M T X ∈ C ⇐⇒ X ∈ MC für alle C ⊂ Rn und daher P(M T X ∈ C) = P(X ∈ MC).
(13.15)
Ist PX radial-symmetrisch, so gilt PX = PMT X , es folgt daher mit (13.15) P(X ∈ C) = P(M T X ∈ C) = P(X ∈ MC). Gilt umgekehrt P(X ∈ C) = P(X ∈ MC) für ein M ∈ M, so folgt mit (13.15) P(X ∈ C) = P(X ∈ MC) = P(M T X ∈ C), d. h. PX = PMT X . b) Es sei S(t) := M T t für ein M ∈ M. Für Y = S(X) := M T X bestimmen wir eine Dichte fY mit dem Transformationssatz (Anhang A.4). Da die Funktionaldeterminante für die lineare Abbildung S gerade die Determinante von M ist und | det M| = 1 gilt, ergibt sich fY (t) = f (S−1 (t)) · |ΔS−1 (t)| = f (Mt) · | det M| = f (Mt) für t ∈ Rn .
(13.16)
Ist X radial-symmetrisch verteilt, so gilt PX = PMT X = PY , d. h. fY = f (λ n -f.s.) und daher mit (13.16) f (t) = fY (t) = f (Mt). Gilt umgekehrt f (t) = f (Mt) (λ n -f.s.), so folgt wieder mit (13.16) f (t) = fY (t), also PX = PY = PMT X . Gilt f (t) = g(t) für eine Funktion g, so folgt für alle orthogonalen M f (t) = g(t) = g(Mt) = f (Mt).
a) Wir zeigen, dass die Gleichverteilung Un (Kn (r)) auf der n-dimensionalen Vollkugel radialsymmetrisch ist. Dazu zeigen wir, dass die Dichte f von U(Kn (r)) das letzte Kriterium aus Satz 13.11 erfüllt. Für f gilt Γ n2 + 1 1Kn (r) (t), t ∈ Rn , f (t) := rn π n/2 dabei ist rn π n/2 /Γ( n2 + 1) = λ n (Kn (r)) das n-dimensionale Volumen der Kugel. Es gilt für t = (t1 , . . . ,tn ) 1Kn (r) = 1
n
⇔ t ∈ Kn (r) ⇔ t2 = ∑ ti2 ≤ r2 ⇔ 1(−∞,r] (t) = 1 i=1
daher folgt f (t) = g(t) für Γ n2 + 1 1 g(x) := 2 (x), rn π n/2 (−∞,r ]
x ∈ R.
156
13 Simulation von Gleichverteilungen auf Flächen
b) Sind X1 , . . . , Xn i.i.d. N(0, 1)-verteilt, so hat X = (X1 , . . . , Xn ) die n-dimensionale Verteilung Nn (0, I) mit 0 = (0, . . . , 0) (vgl. Anhang A.12). Nn (0, I) hat die Dichte ϕn (t1 , . . . ,tn ) := ϕ(t1 ) · . . . · ϕ(tn ) =
1
1
n/2
(2 π)
n
e− 2 ∑i=1 ti = 2
1
1
n/2
(2 π)
e− 2 t
2
Rn .
für t = (t1 , . . . ,tn ) ∈ Die Dichte hängt offensichtlich nur über t von t ab, d. h. die Verteilung ist radialsymmetrisch. Die Gleichverteilung U˜ n−1 (Bn ) auf der Oberfläche Bn = Bn (1) lässt sich mit Hilfe radialsymmetrischer Verteilungen charakterisieren und simulieren. Es sei X = (X1 , . . . , Xn ) eine Zufallsvariable mit Werten in Rn . a) X hat die Verteilung U˜ n−1 (Bn ) genau dann, wenn PX eine radial-symmetrische, auf Bn (1) konzentrierte Verteilung ist. X b) Ist PX radial-symmetrisch mit P(X = 0) = 0, so hat X die Verteilung U˜ n−1 (Bn ). Beweis: a) Vgl. hierzu [ZN83] und Eigenschaften radial-symmetrischer Verteilungen aus [Dev86]. X b) Es sei Y := X . Es gilt dann Y = X/X = 1, also P(Y = 1) = 1, d.h. die Verteilung von Y ist auf Bn (1) konzentriert. Für M orthogonal gilt MX = X und PX = PMX , daher folgt auch MX X X ∈ C) = P( ∈ C) = P( ∈ C) = P(Y ∈ C), P(MY ∈ C) = P(M X MX X
also gilt PY = PMY . Mit Teil a) folgt nun die Behauptung. Aus Satz 13.13 b) ergibt sich ein Algorithmus für die Simulation von Un−1 (Bn ), falls man einen Generator für eine radial-symmetrische Verteilung hat. Im folgenden Algorithmus wird hierzu Un (Kn (1)), die Gleichverteilung auf der n-dimensionalen Kugel, mit der Annahme-Verwerfungsmethode (vgl. Bsp. 9.8) simuliert. S IMULATION VON U˜ n−1 (Bn )
/ / simuliert U(−1, 1)
/ / hier simuliert (u [ 0 ] , . . . , u[n−1]) U(Kn (1))
13.2 Gleichverteilungen auf Kugeloberflächen
157
Die Laufzeit dieses Algorithmus wird durch die Konstante c für den Annahme/Verwerfungsteil bestimmt, es gilt c = sup t
f (t) λ n ([−1, 1]n ) 2n Γ( n2 + 1) = n = n g(t) λ (Kn (1)) π2
In Tabelle 9.1 oben wurde deutlich, dass c in Abhängigkeit von der Dimension n sehr schnell ansteigt. Ein besseres Laufzeitverhalten erhält man, wenn ein Generator für die N(0, 1)-Verteilung zur Verfügung steht. Bsp. 13.12 b) zeigt, dass das Produkt von N(0, 1)-Verteilungen radialsymmetrisch ist, der folgende Algorithmus simuliert daher nach Satz 13.13 b) die Gleichverteilung U˜ 2 (B3 ).
14 Ziehen einer zufälligen Stichprobe Die Wortwahl „Ziehen einer Stichprobe“ suggeriert das Auswählen von Objekten aus einer gut gemischten Menge, etwa die Ziehung eines Loses aus einer Lostrommel. Die meisten Stichproben werden heutzutage aber wohl am Rechner erzeugt. Dazu muss das „zufällige Ziehen“ als Auswahl von Datenobjekten aus einer Datei mit der gewünschten Verteilung simuliert werden. Wir wollen in diesem Kapitel das Ziehen von Stichproben unter zwei besonderen Aspekten untersuchen: Zum einen soll es möglich sein, den Datenobjekten unterschiedliche Wahrscheinlichkeiten zuzuordnen, mit denen sie in die Stichprobe aufgenommen werden. Dadurch kann die Eignung oder „Fitness“ der Datenobjekte bei der Ziehung berücksichtigt werden. Zum anderen betrachten wir den Fall, dass die Menge der Datenobjekte, insbesondere ihre Anzahl, unbekannt ist und die Stichprobe in nur einem Durchgang durch die Daten gezogen werden soll. Dies ist vorteilhaft bei sehr großen, möglicherweise über ein Netzwerk verteilten Datenbeständen.
14.1 Stichproben mit vorgegebenen Ziehungswahrscheinlichkeiten Die folgenden Beispiele skizzieren Situationen, in denen unterschiedliche Ziehungswahrscheinlichkeiten bei der Erstellung einer Stichprobe berücksichtigt werden müssen.
a) Aus den wahlberechtigten Einwohnern der Bundesrepublik soll eine Stichprobe vom Umfang n = 1000 gezogen werden. Wir nehmen an, dass die Daten aller wahlberechtigten Bürger in einer Datei vorliegen. Die Stichprobe soll „zufällig“ sein, d. h. jeder Wahlberechtigte soll die gleiche Chance haben, in die Stichprobe zu gelangen und natürlich soll keine Person mehrfach gezogen werden. Bei diesem Beispiel handelt es sich also um die Ziehung einer Stichprobe mit der Gleichverteilung als Ziehungsverteilung. Dies entspricht dem, was man normalerweise unter einer Zufallsstichprobe versteht. b) Zur näherungsweisen Lösung schwieriger Optimierungsprobleme werden sogenannte genetische Algorithmen eingesetzt, die einige grundlegende Prinzipien der natürlichen Evolution auf dem Rechner nachbilden. Genetischer Algorithmen werden unten in Kapitel 19.7 noch einmal ausführlicher behandelt, hier soll nur gezeigt werden, dass dabei Stichproben mit nicht-gleichverteilten Ziehungswahrscheinlichkeiten benötigt werden. Als Beispiel für ein Optimierungsproblem betrachten wir wieder das Travelling Salesman Problem (TSP), bei dem eine kürzeste Rundreise durch eine Anzahl gegebener Städte (oder allgemeiner Knoten in einem Graphen) gesucht ist. Das TSP wird z. B. benutzt für die Tourenplanung von Speditionen aber auch bei der Verdrahtung von Schaltungen ([Rei94]). Es
160
14 Ziehen einer zufälligen Stichprobe
ist vor allem auch ein Standardproblem zur Erprobung von Optimierungsverfahren. Die zulässigen Lösungen (Rundreisen) lassen sich, wie schon in Kapitel 12.3 erwähnt, durch die möglichen Anordnungen π der Städte beschreiben. Der zu minimierende Zielfunktionswert ist die Länge der zugehörigen Rundreise c(π). Bei der Lösung dieses Problems mit genetischen Algorithmen wird zunächst eine „Population“ P0 aus K zufälligen Lösungen, etwa mit dem Algorithmus 12.8, erzeugt. Durch Mutationen (zufällige kleine Änderungen der Reihenfolge) und Kreuzungen zweier Lösungen (Zusammenstellung einer neuen Reihenfolge unter Übernahme von Teilstücken der beiden „Eltern“) werden K neue Lösungen gebildet, die als Nachkommen die ursprüngliche Population zu P0 erweitern. Entscheidende Bedeutung hat die Nachbildung des Prinzips „survival of the fittest“. Hierzu wird den K + K Lösungen der erweiterten Population P0 eine „Fitness“ auf Basis ihrer Zielfunktionswerte zugeordnet. Beim TSP könnte etwa der Kehrwert der Tourlänge ϕ(π) := 1/c(π) als Fitness der Lösung π gewählt werden. Die neu zu bildende Population P1 der nächsten „Generation“ kann als eine Stichprobe vom Umfang K aus P0 gezogen werden. Bei dieser Ziehung werden Lösungen mit hoher Fitness bevorzugt. Zu der neuen Population P1 werden dann wieder Nachkommen erzeugt, die eine erweiterte Population P1 bilden, aus der wiederum die nächste Population P2 gezogen wird. Wird dieser Prozess über einige Generationen fortgeführt, so setzen sich dabei auf Dauer eher gute Lösungen mit hoher Fitness durch. Die Wahrscheinlichkeit p(π), mit der eine Lösung für die nächste Population gezogen wird („überlebt“), wird dabei proportional zu ihrer Fitness gewählt (Fitness-proportionale Selektion), also etwa 1/c(π) ϕ(π) = p(π) := ∑ ϕ(π ) ∑ 1/c(π ) π ∈Pm
π ∈Pm
wobei Pm die aktuelle erweiterte Population darstellt, aus der Pm+1 erzeugt werden soll. Die Situation verkompliziert sich aber etwas dadurch, dass wir hier keine Lösung mehrfach auswählen wollen. Dies ist zwar im Prinzip denkbar, führt aber oft zu einer zu einseitigen Konzentration der Population auf Lösungen, die momentan relativ gut sind. Die Stärke des Verfahrens liegt aber gerade darin, auch einige nicht so gute Lösungen beizubehalten, um die „genetische Vielfalt“ der Population für künftige Entwicklungen zu erhalten. Wir wollen hier also eine Stichprobe ohne Wiederholungen ziehen, bei der die einzelne Lösung mit der Wahrscheinlichkeit p(π) für die Ziehung in Frage kommt. Im Folgenden sei S die „Grundgesamtheit“ von N unterschiedlichen Objekten (z. B. eine Datei mit N Datensätzen), aus der eine Stichprobe vom Umfang n gezogen werden soll. Zur Vereinfachung setzen wir S = {0, 1, . . . , N − 1}. Auf S sei ein Zähldichte p gegeben, die wir die Ziehungswahrscheinlichkeit nennen. Gesucht ist nun ein Verfahren, n Objekte aus S zufällig so auszuwählen, dass Objekt i ∈ S mit Wahrscheinlichkeit p(i) gewählt wird, jedoch nur dann in die Stichprobe aufgenommen wird, wenn es nicht schon darin enthalten ist. Der folgende Algorithmus präzisiert diese Idee, es werden Objekte mit der Wahrscheinlichkeit p(·) ausgewählt, aber dann verworfen, wenn sie bereits in der Stichprobe enthalten sind.
14.1 Stichproben mit vorgegebenen Ziehungswahrscheinlichkeiten
161
Z IEHEN OHNE Z URÜCKLEGEN / / enthält das Ergebnis
S
p(i)
∈ / / hier wurde ein neues Objekt gefunden
Dieser Algorithmus stellt eine sehr direkte Umsetzung der oben formulierten Idee dar und dürfte i. A. kaum praktikabel sein. Dies liegt daran, dass die Anzahl der Ablehnung stark ansteigt, wenn der Stichprobenumfang hoch ist und bereits viele Objekte ausgewählt wurden. Eine einfach Art, Ablehnungen zu vermeiden, besteht darin, die Auswahl des neuen Objekts auf die bisher nicht-gezogenen Objekte einzuschränken, so wie dies bei der Erzeugung einer zufälligen Permutation gemacht wurde (Algorithmus 12.8). Dies setzt aber voraus, dass die Menge der Objekte entsprechend zugänglich ist, also etwa in den Hauptspeicher geladen werden kann. Außerdem muss geklärt werden, mit welcher Verteilung die Objekte aus der verengten Menge gewählt werden sollen. Dieser Ansatz wird in Abschnitt 14.2 behandelt. Wir wollen dazu zunächst die Wahrscheinlichkeit analysieren, mit der Objekte bei Algorithmus 14.2 tatsächlich in die Stichprobe gelangen. Die Ziehungswahrscheinlichkeit p(i) gibt ja nur die Wahrscheinlichkeit an, mit der ein Objekt zunächst ins Auge gefasst, dann aber möglicherweise wieder verworfen wird, abhängig von den bis dahin bereits gezogenen Objekten. Es sei dazu Dn := {(i1 , · · · , in ) ∈ Sn |iν = iμ für 1 ≤ μ < ν ≤ n} die Menge der n-Permutationen ohne Wiederholung aus S, n ≤ N.
Es sei X1 , . . . , Xn der Inhalt von des Algorithmus 14.2.
,...,
nach Ausführung
a) Es gilt P(X1 = i) = p(i), i ∈ S, und P[Xm+1 = i | X1 = i1 , . . . , Xm = im ] = für 1 ≤ m ≤ n − 1.
⎧ ⎨ ⎩
p(i) m
,
falls (i1 , . . . , im , i) ∈ Dm+1
0
sonst
1− ∑ p(i )
(14.1)
=1
162
14 Ziehen einer zufälligen Stichprobe
b) Die gemeinsame Verteilung von X = (X1 , . . . , Xn ) ist auf Dn konzentriert mit P((X1 , . . . , Xn ) = (i1 , . . . , in )) =
n
p(i j )
j=1
1 − ∑ p(i )
∏
j−1
,
(i1 , . . . , in ) ∈ Dn .
=1
Beweis: a) Die Behauptung gilt offensichtlich für X1 = , da das erste Objekt in Algorithmus 14.2 mit Wahrscheinlichkeit p(i) ausgewählt und in jedem Fall in die Stichprobe aufgenommen wird. Für festes (i1 , . . . , im ) ∈ Dm und i ∈ S setzen wir zur Abkürzung für die in (14.1) benutzte Zähldichte f (i) :=
p(i) m
1 − ∑ p(i )
für i ∈ / {i1 , . . . , im }
und f (i) := 0
sonst.
=1
Dass f eine Zähldichte auf S ist, ist leicht nachzuprüfen. Wir zeigen jetzt, dass f (i) die (bedingte) Wahrscheinlichkeit ist, mit der Objekt i im (m + 1)-ten Schritts von Algorithmus 14.2 in die Stichprobe aufgenommen wird, wenn die Stichprobe bisher (i1 , . . . , im ) umfasst. Wir konstruieren dazu einen Annahme-Verwerfungsalgorithmus für die Simulation der Zähldichte f und zeigen, dass dies gerade Algorithmus 14.2 ergibt. Zur Simulation von f nach der (diskreten) Annahme-Verwerfungsmethode wählen wir als Hilfsm
zähldichte g(i) := p(i), i ∈ S, dann gilt mit c := (1 − ∑ p(i ))−1 =1
f (i) ≤ c · g(i) =
p(i) m
1 − ∑ p(i )
,
i ∈ S,
=1
d. h. die zentrale Voraussetzung (9.1) aus Kapitel 9 ist erfüllt. Der Annahme-Verwerfungsalgorithmus 9.1 lautet hier
/ / i wird mit
Wahrscheinlichkeit p(i) gewählt
Dabei gilt für das Abbruchkriterium mit u ∈ (0, 1] y = u · c · g(i) ≤ f (i)
p(i)
≤
p(i)
· (1 − 1{i1 ,...,im } )(i)
⇐⇒
u·
⇐⇒
u ≤ (1 − 1{i1 ,...,im } )(i) ⇐⇒ (1 − 1{i1 ,...,im } )(i) = 1
⇐⇒
i∈ / {i1 , . . . , im }
m
1 − ∑ p(i ) =1
m
1 − ∑ p(i ) =1
14.1 Stichproben mit vorgegebenen Ziehungswahrscheinlichkeiten
163
Dies ist genau das Abbruchkriterium im Algorithmus 14.2, der also eine leicht verkürzte Form des Annahme-Verwerfungsalgorithmus für f darstellt. b) Für (i1 , . . . , in ) ∈ Dn folgt (vgl. auch Satz 12.7) P (X1 , . . . , Xn ) = (i1 , . . . , in ) = P[Xn = in | X1 = i1 , . . . , Xn−1 = in−1 ]· . . . · P[X2 = i2 | X1 = i1 ] · P(X1 = i1 ). Die Behauptung folgt nun unmittelbar aus Teil a). Wir können damit unsere Fragestellung präzisieren: das Ziehen einer Stichprobe mit Ziehungswahrscheinlichkeit p(·) ist die Simulation der in Satz 14.3 b) angegebenen Verteilung auf Dn .
a) Sollen bei der Ziehung alle Objekte wie im Beispiel 14.1 a) die gleiche Chance haben, gezogen zu werden, so setzen wir p(i) := N1 , i ∈ S und erhalten für (i1 , . . . , im , i) ∈ Dm+1 p(i) m
1 − ∑ p(i )
1/N
=
m
1 − ∑ 1/N
=1
=
1 N −m
=1
und daher für (i1 , . . . , in ) ∈ Dn nach Satz 14.3 b) 1 (N − n) 1 = = . N − j + 1 N · (N − 1) · . . . · (N − n + 1) N! j=1 n
P((X1 , . . . , Xn ) = (i1 , . . . .in )) = ∏
Schon im Beweis zu Satz 12.9 hatten wir gesehen, dass dies die Zähldichte der Gleichverteilung auf Dn ist. b) Stellt S ein erweiterte Population wie im Beispiel 14.1 b) dar, auf der eine Fitness- oder Bewertungsfunktion ϕ : S → R+ gegeben ist, so definieren wir als Ziehungswahrscheinlichkeit ϕ(i) ϕ(i) p(i) := N−1 = Φ ∑ ϕ( j) j=0
wobei Φ = ∑ ϕ(i) die „Gesamtfitness“ der Population bezeichne. Damit folgt für den in j∈S
Satz 14.3 a) auftretenden Ausdruck p(i) m
1 − ∑ p(i ) =1
=
ϕ(i)/Φ m
1 − ∑ ϕ(i )/Φ
=
=1
ϕ(i) m
Φ − ∑ ϕ(i ) =1
und für (i1 , . . . , in ) ∈ Dn folgt aus Satz 14.3 b) P((X1 , . . . , Xn ) = (i1 , . . . , in )) =
n
∏
j=1
ϕ(i j ) j−1
Φ − ∑ ϕ(i ) =1
.
164
14 Ziehen einer zufälligen Stichprobe
Im m-ten Schritt wird zur Aufnahme eines Objekts i in die Stichprobe also die Fitness ϕ(i) m−1
des Objekts verglichen mit der Gesamtfitness Φ − ∑ ϕ(i ) der noch nicht gezogenen Ob=1
jekte.
14.2 Ziehen bei bekannter Grundgesamtheit Sind die Grundgesamtheit S und damit ihr Umfang N und die Werte p(0), . . . , p(N − 1) vor der Ziehung bekannt, so kann anstelle von Algorithmus 14.2 eine Modifikation von Algorithmus 12.8 benutzt werden, bei der die Wahl eines neuen Objektes auf die Menge der wählbaren Objekte eingeschränkt wird und Ablehnungen vermieden werden. Statt wie in 12.8 eine Permutation aller N Elemente zu erzeugen, brechen wir hier den Algorithmus ab, sobald die ersten n Elemente der Permutation ermittelt wurden:
/ / S enthält die Objekte 0, . . . , N − 1 ... ∑m−1 l=0
Der Algorithmus wählt die m-te Komponente (für m = 0, . . . , n − 1) der Stichprobe gemäß der Wahrscheinlichkeit aus Satz 14.3 a), verschiebt das Ergebnis ans Ende des aktuellen Suchbereichs und verengt diesen Bereich für den folgenden Schritt. Am Ende steht auf den letzten n Positionen des Feldes die Stichprobe.
a) Für gleichverteiltes Ziehen mit p(i) ≡ N1 ergibt sich mit Beispiel 14.4 im m-ten Schritt die 1 Ziehungswahrscheinlichkeit f (i) ≡ N−m , es erfolgt also die gleichverteilte Auswahl eines der wählbaren Felder S[0], . . . , S[N − 1 − m]. Für N = n erhalten wir den Algorithmus 12.8. b) Im Falle einer Fitness ϕ(i) ≡ f (i) =
1 N
ergibt sich im m-ten Schritt (m = 0, . . . , n − 1)
ϕ(S[i]) m−1
Φ − ∑ ϕ(S[N − 1 − ]) =0
,
0 ≤ i ≤ N − 1 − m.
14.3 Sequentielle Stichprobenentnahme
165
Für diese Zähldichte kann eine Inversion wie in Algorithmus 8.7 benutzt werden, d. h. für eine Zufallszahl u ∈ (0, 1) suchen wir das k ∈ {0, . . . , N − 1 − m} mit k−1
∑ f (i)
< u ≤
i=0
k
∑ f (i)
⇐⇒
i=0
⇐⇒
ϕ(S[i]) < u ≤ F i=0
k−1
∑
k−1
∑ ϕ(S[i])
i=0
ϕ(S[i]) F i=0 k
∑
< u·F ≤
k
∑ ϕ(S[i])
(14.2)
i=0
m−1
mit F := Φ − ∑ ϕ(S[N − 1 − ]). Damit ergibt sich folgender Inversionsalgorithmus für f : =0
Φ − ∑m−1 =0 ϕ ϕ
//u · F
ϕ
Bei Abbruch der Schleife enthält die Variable den Wert ∑k=0 ϕ(S[]) aus (14.2), es wird also der korrekte Wert k zurückgegeben. ersetzt wird durch Die Algorithmen können verbessert werden, indem das lineare Array geeignete Suchbäume, vgl. z. B. [Dev86], III.2.3.
14.3 Sequentielle Stichprobenentnahme Algorithmus 14.5 setzt voraus, dass sämtliche Datenobjekte mit ihren Ziehungswahrscheinlichkeiten und ihrer Anzahl N vor der Ziehung bekannt sind. Technisch muss die Menge der Objekte im Arbeitsspeicher verwaltet werden können, um eine Ziehung mit der Zähldichte f vornehmen zu können. Es gibt aber Datenbestände, die zu umfangreich sind, um in einen Hauptspeicher zu passen, die nur verteilt z. B. im Internet existieren oder die etwa aus Gründen des Datenschutzes nicht zu einer Datei zusammengefasst werden dürfen. Wir stellen uns hier vor, dass diese Datenobjekte nacheinander aufgesucht werden und dass Ziehungswahrscheinlichkeiten nur von den bereits besuchten Objekten bekannt sind. Insbesondere sei unbekannt, wieviele Objekte es gibt. Um diese fehlenden Informationen zu erhalten, müsste man einen Durchgang durch die Daten machen, bevor man mit der Ziehung beginnt. Erstaunlicherweise kann man eine Ziehung aber auch ohne diese Information, in einem Durchgang durch die Daten gewinnen. Dies geht sowohl für die einfache Zufallsstichprobe wie auch
166
14 Ziehen einer zufälligen Stichprobe
für den allgemeineren Fall einer vorgegebenen Ziehungswahrscheinlichkeit. Wir beginnen mit eine Fortsetzung der Beispiele aus 14.1.
a) Einwohnerdaten, Kundendaten großer Firmen oder Versicherungen müssen aus technischen Gründen oft auf externen Speichern gehalten werden (z. B. Magnetbänder oder verteilten Datenbanken), so dass Zugriffe relativ aufwändig sind. Oft müssen diese Daten noch gefiltert werden (um z. B. die wahlberechtigten Bürger aus allen Bürgern zu erhalten), bevor eine Stichprobe gezogen werden kann. Bei Anwendung von Algorithmus 14.5 sind dann mehrere Durchgänge durch die Daten erforderlich: erst um die Daten zu filtern und zu zählen, dann, um die Stichprobe zu ziehen. Gesucht ist daher ein Verfahren, eine Stichprobe X1 , . . . , Xn mit der Verteilung aus Satz 14.3 zu produzieren in nur einem Durchgang durch S . b) Bei genetischen Algorithmen wird die nächste Generation meist mit einem Algorithmus wie in 14.5 gezogen. Dazu müssen alle Objekte bekannt sein, d. h. zur aktuellen Population müssen alle Nachkommen (neue Lösungen) sukzessive erzeugt und gespeichert werden, ihre Fitness muss ermittelt und die Gesamtfitness der erweiterten Population muss berechnet werden. Die nächste Generation kann dann mit dem Algorithmus 14.5 erzeugt werden. Alle nicht-gewählten Lösungen werden anschließend gelöscht. Wünschenswert ist hier ein Verfahren, dass während der Erzeugung eines Nachkommen bereits ermittelt, ob dieser Nachkomme überleben soll oder nicht. Dadurch können möglicherweise aufwändige Speichervorgänge von Lösungen, die später verworfen werden, gespart werden. Außerdem können dadurch die festen Grenzen zwischen den Generationen aufgelöst werden: statt zunächst alle Nachkommen zu einer Population zu erzeugen und dann die nächste Generation zu ziehen, kann jede ausgewählte Lösung sofort in die aktuelle Population übernommen und zur Bildung von Nachkommen herangezogen werden. Die allgemeine Problemstellung lautet daher jetzt: Die Objekte 0, . . . , N − 1 aus S werden (in dieser Reihenfolge) nacheinander einzeln aufgesucht (z. B. in den Arbeitsspeicher geladen). Gesucht ist ein Verfahren, das eine Stichprobe vom Umfang n mit der Verteilung aus Satz 14.3 b) erzeugt und dabei weder die Gesamtzahl N der Objekte noch die Werte p(i) der Zähldichte von noch nicht besuchten Objekten i benutzt. Die Daten aus S treten hier also als ein Datenstrom auf, aus dem geeignete Objekte für die Stichprobe „herausgefischt“ werden müssen. Da man die Länge des Stromes nicht kennt, muss man zu jedem Zeitpunkt i (d. h. nach Besuch der Objekte 0, 1, . . . , i) eine zu diesem Zeitpunkt für den Fall N = i + 1 gültige Stichprobe bereithalten, also eine Stichprobe mit der Verteilung aus Satz 14.3. Diese vorläufige Stichprobe wird in einem sogenannten Reservoir gespeichert und kann durch nachfolgende Auswahlen überschrieben werden. Man spricht in diesem Zusammenhang auch von einem Reservoiralgorithmus. Damit das Verfahren auch für N = n funktioniert, müssen stets die ersten n Objekte in das Reservoir genommen werden. Dazu muss natürlich N ≥ n gelten, d.h. es muss mindestens soviele Datenobjekte geben, wie in der Stichprobe enthalten sein sollen. Für jedes besuchte Datenobjekt muss dann entschieden werden, ob es in die Stichprobe (das Reservoir) aufgenommen wird und
14.3 Sequentielle Stichprobenentnahme
167
welches der dort befindlichen Objekte dafür gelöscht wird. Die hier betrachteten Algorithmen erzeugen zu jedem besuchten Objekt i einen reellen Hilfswert v(i) und wählen die Objekte so aus, dass im Reservoir stets die n Objekte mit den kleinsten bisher beobachteten Hilfswerten stehen. Auf die Bestimmung der Hilfswerte wird unten eingegangen. Realisiert wird das Reservoir mit einer Liste aus Elementen (i, v), wobei i ∈ S das Objekt und -Code könnte dies eine eigene Klasse sein: v = v(i) der zugehörige Hilfswert ist. In
/ / weitere Methoden
Die Liste ist nach aufsteigenden Hilfswerten geordnet, d. h. das erste Element der Liste, , enthält den kleinsten bisher beobachteten Hilfswert , . Der folgende Algorithmus der größte steht in dem letzten Listenelement sorgt dafür, dass in dem Reservoir stets eine Stichprobe aus den bis dahin besuchten Elementen mit den kleinsten beobachteten Hilfswerten steht. R ESERVOIRALGORITHMUS / / das erste Objekt wird in das Reservoir aufgenommen: / / Hilfswert zum Objekt berechnen
/ / Hilfswert zum Objekt berechnen / / die ersten n Objekte werden gewählt :
/ / Prüfen , ob akt_v zu den n kleinsten Werten gehört :
Der nächste Satz zeigt, dass Algorithmus 14.8 je nach Wahl der Hilfswerte die unterschiedlichen Ziehungswahrscheinlichkeiten löst.
das Problem für
168
14 Ziehen einer zufälligen Stichprobe
Es seien X1 , . . . , Xn die Objekte, die nach der Bearbeitung des N-ten Datenobjekts mit 14.8 im Reservoir stehen. a) Werden die Hilfswerte v(i) unabhängig vom Objekt i ∈ S gemäß einer U(0, 1)-Verteilung gewählt, so gilt für (i1 , . . . , in ) ∈ Dn P((X1 , . . . , Xn ) = (i1 , . . . , in )) =
(N − n)! , N!
d. h. es werden gleichverteilte Stichproben gezogen. b) Gibt es zu jedem Objekt i eine Fitness ϕ(i) ≥ 0 und wird der Hilfswert v(i) gemäß einer exp(ϕ(i)) -Verteilung gewählt, so erhält man für (i1 , . . . , in ) ∈ Dn P((X1 , . . . , Xn ) = (i1 , . . . , in )) =
n
ϕ(i j )
j=1
Φ − ∑ ϕ(i )
∏
j−1
,
=1
d. h. die Stichprobe wird proportional zur Fitness ϕ gezogen.
Beweis: 1. Es seien V0 ,V1 , . . . ,VN−1 die insgesamt erzeugten Hilfswerte, sie bilden eine Folge unabhängiger Zufallsvariablen mit Verteilungen wie im Satz angegeben. Es sei (i1 , . . . , in ) eine fest gewählte Permutation aus Dn und V ∗ = V ∗ (i1 , . . . , in ) := min{Vk | k ∈ {0, . . . , N − 1} − {i1 , . . . , in }}, dann sind insbesondere Vi1 , . . . ,Vin ,V ∗ unabhängig. Dabei ist zu beachten, dass wir hier nicht voraussetzen, dass i1 , . . . , in der Inhalt des Reservoirs ist; dann wären die Zufallsvariablen aufsteigend sortiert und natürlich nicht unabhängig. 2. (X1 , . . . , Xn ) = (i1 , . . . , in ) bedeutet, dass das Reservoir nach N Schritten die Elemente i1 , . . . , in enthält. Es gilt nach Konstruktion von Algorithmus 14.8 unabhängig von der Wahl der Hilfswerte P((X1 , . . . , Xn ) = (i1 , . . . in )) = P(Vi1 , . . . ,Vin sind die kleinsten Werte unter V0 , . . . ,VN−1 ) = P(Vi1 ≤ Vi2 ≤ . . . ≤ Vin ≤ V ∗ )
= =
+ ∞ 0
+ ∞ 0
P[Vi1 ≤ Vi2 ≤ . . . ≤ Vin ≤ V ∗ | V ∗ = t] PV ∗ (dt) P(Vi1 ≤ . . . ≤ Vin ≤ t) PV ∗ (dt)
Dieser Ausdruck ist für die beiden im Satz angegebenen Verteilungen der Hilfswerte zu bestimmen.
14.3 Sequentielle Stichprobenentnahme
169
3. Wählt man die Hilfswerte gleichverteilt wie in Teil a) des Satzes angenommen, so gilt: V0 ,V1 , . . . ,VN−1 sind i.i.d. und U(0, 1)-verteilt. Für die Verteilungsfunktion von V ∗ gilt P(V ∗ ≤ t) = P (min{Vk | k ∈ {0, . . . , N − 1} − {i1 , . . . in }} ≤ t) = 1 − P (min{Vk | k ∈ {0, . . . , N − 1} − {i1 , . . . in }} ≥ t) N−1
∏
= 1−
P(Vk ≥ t) = 1 − (1 − t)N−n .
k=0 k∈{i / 1 ,...,in }
Eine Dichte fV ∗ von V ∗ erhält man durch Ableiten der Verteilungsfunktion: fV ∗ (t) := (N −n)(1− t)N−n−1 , t ∈ (0, 1). n
Ferner gilt P(Vi1 ≤ . . . ≤ Vin ≤ t) = tn! für t ∈ (0, 1). Dies zeigt man durch vollständige Induktion über n ≥ 1 : für n = 1 folgt sofort P(Vi1 ≤ t) = t, da Vi1 U(0, 1)−verteilt ist. Der Induktionsschritt lautet P(Vi1 ≤ . . . ≤ Vin+1 ≤ t) = Mit der Formel
+ t 0
P(Vi1 ≤ . . . ≤ Vin ≤ s) PVin+1 (ds) =
+ t n s 0
n!
ds =
t n+1 (n + 1)n!
,1 k k!m! m 0 t (1 −t) dt = (k+m+1)! für das sogenannte Beta-Integral erhält man jetzt in 2.
P((X1 , . . . , Xn ) = (i1 , . . . , in )) = = =
+ 1 n t
(N − n)(1 − t)N−n−1 dt n! + N −n 1 n t (1 − t)N−n−1 dt n! 0 (N − n)! N − n n!(N − n − 1)! = . n! (n + N − n − 1 + 1)! N! 0
Damit ist Teil a) bewiesen. 4. Unter den Voraussetzungen von Teil b) des Satzes sind V0 , . . . ,VN−1 unabhängige Zufallsvariablen, wobei Vi die Verteilung exp(ϕ(i)) hat, i = 0, . . . , N − 1. Ähnlich wie in 3. kann man zeigen, dass dann V ∗ die Verteilung exp(α ∗ ) hat mit α∗ =
N−1
n
j=0
=1
∑ ϕ( j) − ∑ ϕ(i ).
In 2. ergibt sich jetzt mit dem untenstehenden Satz 14.10 ϕ(i j ) = ∗ ϕ(i ) + ϕ(i j j+1 ) + . . . + ϕ(in ) + α j=1 n
P(Vi1 ≤ . . . ≤ Vin ≤ V ∗ ) = ∏
n
ϕ(i j )
j=1
∑ ϕ( j) − ∑ ϕ(i )
∏ N−1 j=0
wie in Teil b) behauptet.
j−1
=1
,
170
14 Ziehen einer zufälligen Stichprobe
Sind Y1 , . . . ,YM unabhängige Zufallsvariablen mit PYi = exp(αi ), i = 1, . . . , M für Konstanten αi > 0, so gilt M−1 αk . P(Y1 ≤ Y2 ≤ . . . ≤ YM ) = ∏ k=1 αk + αk+1 + · · · αM
Beweis: Wir beweisen zunächst, dass für alle m = 0, . . . , M − 1 und alle t ≥ 0 gilt P(t ≤ YM−m ≤ YM−m+1 ≤ . . . ≤ YM ) =
αk e−(αM−m +···+αM )t . α + α k+1 + · · · αM k=M−m k M−1
∏
Wir benutzen vollständige Induktion über m = 0, . . . , M − 1. Für m = 0 folgt sofort P(t ≤ YM ) = e−αM t . Für den Induktionsschritt „ m → m + 1“ gilt wegen der Unabhängigkeit der Y1 , . . . ,YM P(t ≤ YM−m−1 ≤ YM−m ≤ . . . ≤ YM ) = = =
+ ∞ 0
+ ∞ t
P[ t ≤ YM−m−1 ≤ YM−m ≤ . . . ≤ YM | YM−m−1 = s] PYM−m−1 (ds) P( s ≤ YM−m ≤ . . . ≤ YM ) PYM−m−1 (ds)
+ ∞ M−1 t
αk e−(αM−m +···+αM )s αM−m−1 e−αM−m−1 s ds α + α k+1 + · · · αM k=M−m k
∏
+ ∞
=
αk αM−m−1 k=M−m αk + αk+1 + · · · αM
=
αk αM−m−1 e−(αM−m−1 +···+αM )t α + α + · · · α α + α + · · · α M M−m M M−m−1 k k+1 k=M−m
=
αk e−(αM−m−1 +···+αM )t . α + α + · · · α M k k+1 k=M−m−1
M−1
∏
e−(αM−m−1 +···+αM )s ds
t
M−1
∏
M−1
∏
Die Behauptung des Satzes folgt jetzt sofort mit m := M − 1, t := 0. Algorithmus 14.8 kann noch beschleunigt werden. So können z. B. bei p(i) ≡ 1/N eine gewisse Anzahl von Datenobjekten ungelesen übersprungen werden, bevor eine Auswahl getroffen wird, beim Lesen von einem Magnetband kann sozusagen auf „fast forward“ geschaltet werden. Ähnliche Verbesserungen sind bei Verwendung einer Fitness möglich. Ferner gibt es spezielle Varianten für den Fall n = 1, vgl. [KW06].
Teil III Simulationsexperimente : Aufbau und Auswertung
In den vorangegangenen Kapiteln wurden verschiedene Werkzeuge zur Erzeugung von Zufallszahlen mit vorgegebener Verteilung vorgestellt. Wir wenden uns jetzt der Frage zu, wie unter Einsatz dieser Zufallszahlen einfache Simulationsexperimente durchgeführt werden können. Die Vielfalt möglicher Anwendungsbereiche ist unübersehbar groß. Wir beginnen mit einigen kürzeren Beispielen, an denen allgemeine Prinzipien deutlich gemacht werden. In den folgenden Kapiteln wird dann untersucht, welchen Umfang die Simulationsexperimente haben sollten und wie zuverlässig die damit gewonnen Aussagen sind. Eine umfangreichere Anwendung wird in Kapitel 19 dargestellt.
15 Beispiele und Anwendungen 15.1 Schätzungen eines Erwartungswertes In vielen praktischen Situationen, in denen der Zufall eine Rolle spielt, ist man zunächst an der Bestimmung von Erwartungswerten interessiert. In der Einleitung hatten wir z. B. ein Lagerhaltungsproblem betrachtet, bei dem mittlere Kosten bestimmt werden sollten. Wir wollen diese Art von Fragestellung hier wieder aufgreifen. Wir sind jetzt also interessiert an Aussagen über den Erwartungswert ϑ := EY einer Zufallsvariablen Y mit der Verteilung Q := PY . Dies schließt den wichtigen Fall Y := 1A (X) für eine Zufallsvariable X und eine geeignete Menge A ein. Man erhält dann als gesuchte Größe ϑ = P(X ∈ A). Aussagen über den Erwartungswert schließen also auch immer entsprechende Aussagen über Wahrscheinlichkeiten mit ein. Je nach Gegebenheit können Aussagen über ϑ mit unterschiedlichen Methoden gesucht werden: 1. Ist die Verteilung Q bekannt und liegt z. B. eine Dichte vor, so kann der Erwartungswert ϑ analytisch bestimmt oder zumindest numerisch approximiert werden. 2. Ist Q unbekannt, beschreiben Y und Q aber ein reales Zufallsexperiment, das n−mal wiederholt werden kann, so werden die Beobachtungswerte y1 , . . . , yn zu einer Stichprobe zusammengefasst, aus der dann ϑ geschätzt wird. Als Schätzer (oder Schätzwert) ϑˆn := ϑˆn (y1 , . . . , yn ) benutzt man in dieser Situation meist das Stichprobenmittel y¯ :=
1 n ∑ yi , n i=1
¯ Die mathematische Statistik untersucht Eigenschaften von Schätalso ϑˆn (y1 , . . . , yn ) = y. zern, die als Zufallsvariablen ϑˆn (Y1 , . . . ,Yn ) mit Y1 , . . . ,Yn i.i.d. Q-verteilt angesehen werden. In Kapitel 16 werden wir darauf näher eingehen. Hier genügt es festzuhalten, dass aufgrund des starken Gesetzes der großen Zahlen (vgl. Anhang A.22) gilt lim ϑˆn (Y1 , . . . ,Yn ) = EY1 = ϑ
n→∞
(15.1)
für P-fast alle Beobachtungsverläufe. 3. Beschreiben Y, Q kein reales Zufallsexperiment, oder kann dieses nicht (oft genug) wiederholt werden, so kann man versuchen, die Schätzung auf einem Simulationsexperiment
176
15 Beispiele und Anwendungen
aufzubauen. Dazu muss man Q simulieren können, sei es direkt durch einen Zufallsgenerator oder durch ein komplexeres Programm, dass das Zustandekommen der Beobachtungen yi nachbildet (siehe unten Kapitel 15.2). Wird dieses Simulationsexperiment n-mal durchgeführt, so erhält man eine simulierte Stichprobe y1 , . . . , yn , auf die die statistischen Schätzer angewendet werden können. Die typische Vorgehensweise bei Simulationsexperimente sieht daher so aus: zunächst bestimmt man einen Schätzer ϑˆn für die unbekannte Größe ϑ , dann simuliert man eine Stichprobe y1 , . . . , yn und erhält als Resultat ϑˆn (y1 , . . . , yn ). Die drei hier angeführten Methoden für die näherungsweise Bestimmung von ϑ entsprechen in gewisser Weise den Modellebenen, die in Kapitel 1 angesprochen wurden (vgl. Abbildung 1.1 von Seite 5): Die analytische Bestimmung von ϑ findet in dem stochastischen Modell statt, die reale Stichprobe y1 , . . . , yn wird im konkreten Zufallsexperiment gewonnen, die simulierte Stichprobe im Simulationsexperiment . Ein klassisches Beispiel ist die Schätzung der Zahl π aus einer Simulation. Es sei X = (U,V ) eine Zufallsvariable mit Verteilung U([−1, 1]2 ), d. h. U,V sind unabhängig und identisch U([−1, 1])-verteilt. K2 (1) sei die Kreisscheibe mit Mittelpunkt 0 und Radius 1. Wie in Beispiel 9.8 zur Annahme-Verwerfungsmethode gilt: P(X ∈ K2 (1)) =
λ 2 (K2 (1)) π = . 2 4 2 λ [−1, 1]
1
−1
1
−1 Abbildung 15.1: Die Einbettung der Kreisscheibe K2 (1) in das Quadrat [−1, 1]2 .
π lässt sich also als eine Wahrscheinlichkeit ausdrücken. Sind (Xi )i≥0 i.i.d. U([−1, 1]2 )verteilt, so gilt mit (15.1) 1 n π ∑ 1K2 (1) (Xi ) = P(X ∈ K2 (1)) = 4 n→∞ n i=1 lim
4 n ∑ 1K2 (1) (Xi ) = π n→∞ n i=1 lim
(P-f.s.).
(P-f.s.)
bzw.
15.1 Schätzungen eines Erwartungswertes
177
ϑˆn (x1 , . . . , xn ) := 4n ∑ni=1 1K2 (1) (xi ) ist also ein Schätzer für ϑ := π. Der folgende Algorithmus erzeugt eine Stichprobe von n Zufallszahlenpaaren, die die Verteilung U([−1, 1]2 ) simulieren, und wertet ϑˆn aus.
/ / (u , v ) simuliert U([−1, 1]2 ) / / Anzahl zählt die Treffer (u , v )∈ K2 (1) Allgemeiner kann mit dieser Methode das Volumen λ d (A) einer beschränkten Menge A ⊂ Rd geschätzt werden. Dazu bestimmt man eine Menge B ⊃ A, für die die Gleichverteilung Ud (B) simuliert werden kann, z. B. kann man als B das umschließende, achsenparallele Rechteck zu A wählen. Man muss ferner für beliebiges x ∈ B auf dem Rechner entscheiden können, ob x ∈ A gilt. Für (Xi )i≥0 i.i.d. Ud (B)-verteilt gilt ja 1 n λ d (A) 1A (Xi ) = P(X1 ∈ A) = Ud (B)(A) = d ∑ n→∞ n λ (B) i=1 lim
(P-f.s.),
daher liefert der folgende Algorithmus eine Schätzung von λ d (A) :
∈ λ d (B) Tatsächlich laufen viele Simulationsaufgaben auf die Bestimmung eines Volumens hinaus, etwa die Monte-Carlo-Integration in Beispiel 15.3 unten.
In vielen Bereichen spielt die Zuverlässigkeit von Netzen ein große Rolle, etwa in der Telekommunikation oder im Verkehr. Stark vereinfacht besteht ein solches Netz aus einer Menge von Knoten V und ungerichteten Kanten E, die zwischen den Knoten verlaufen. Wir wollen untersuchen, ob es eine Verbindung zwischen zwei ausgezeichneten Knoten, der „Quelle “ s ∈ V und der „Senke“ t ∈ V gibt. Eine Verbindung besteht, wenn es einen durchgehenden Kantenzug aus intakten Kanten von s nach t gibt, vgl. Abbildung 15.2. Das Netz soll k Kanten besitzen, die wir einfach mit {1, . . . , k} bezeichnen. y j ∈ {0, 1} bezeichne den Zustand der j-ten Kante zu einem bestimmten Zeitpunkt, die Kante kann „intakt“
178
15 Beispiele und Anwendungen
s 1
s
t
s
2
t
5 4
3
7
t
6
Abbildung 15.2: Verschiedene einfache Netze
sein (y j = 1) oder „defekt“ (y j = 0), 1 ≤ j ≤ k. Ob bei gegebenen Kantenzuständen eine Verbindung zwischen s und t besteht, wird durch die Funktion Φ : {0, 1}k → {0, 1} ausgedrückt: Φ(y1 , ..., yk ) = 1 bedeutet „Verbindung besteht“, Φ(y1 , ..., yk ) = 0 bedeutet „Verbindung ausgefallen“. Für ein Seriensystem (vgl. Abb. 15.2 links) gilt etwa Φ (y1 , ..., yk ) := y1 · ... · yk , für ein Parallelsystem (Abb. 15.2 Mitte) Φ (y1 , ..., yk ) := max {y1 , ..., yk } und für das Netz in Abb. 15.2 rechts Φ (y1 , ..., yk ) := y2 · max{y5 y7 , y4 , y3 y6 }. Der tatsächliche Zustand der Kanten zu einem bestimmten Zeitpunkt werde durch Zufallsvariablen Y1 , ...,Yk wiedergegeben mit: 0 defekt , falls die j-te Kante ist, Yj = intakt 1 Y1 , . . . ,Yk seien unabhängig mit P(Y j = 1) = p j , 1 ≤ j ≤ k. Gesucht ist die „mittlere Zuverlässigkeit“ ϑ := E Φ(Y1 , . . . ,Yk ) = P Φ(Y1 , . . . ,Yk ) = 1 = P(„Verbindung intakt“). Einen Schätzer für ϑ gewinnt man durch wiederholte Beobachtung oder Simulation der Kan(1) (1) (2) (2) tenzustände y(1) = (y1 , ..., yk ), y(2) = (y1 , ..., yk ), ... als 1 n (i) (i) ϑˆn := ∑ Φ(y1 , . . . , yk ). n i=1
(15.2)
Der folgende Algorithmus benutzt die Inversion aus Beispiel 8.6 a), um die einzelnen Kantenzustände zu simulieren:
pj
yj
15.1 Schätzungen eines Erwartungswertes
179
yj Φ y1
yk
Eine der historisch ersten Anwendungen der Simulation ist die sogenannte Monte-CarloIntegration. Ziel ist die Berechnung des Integrals ϑ :=
+ b a
f (t)dt
für eine (integrierbare) Funktion f : R → R mit 0 ≤ f (t) ≤ D für t ∈ [a, b]. Es sei
D f
A
a
b
Abbildung 15.3: Die Fläche A „unter der Kurve“ f .
& A := (u, v) ∈ IR2 | u ∈ [a, b], 0 ≤ v ≤ f (u) die Fläche unter dem Graph von f , vgl. Abb. 15.3. Für das Volumen λ 2 (A) dieser Fläche gilt bekanntlich + λ 2 (A) =
b
a
f (t)dt = ϑ .
Eine einfache Idee zur näherungsweisen Bestimmung des Integral besteht darin, die Fläche λ 2 (A) nach dem Verfahren von Beispiel 15.1 zu schätzen, also Punkte gleichverteilt in das Rechteck [a, b] × [0, D] zu werfen und die relative Anzahl von Treffern von A als Schätzer für λ 2 (A) = ϑ zu verwenden. Diese Vorgehensweise heißt auch Hit-or-miss-Methode. Sei dazu (Xi )i≥1 eine i.i.d. Folge von Zufallsvariablen Xi = (Ui ,Vi ) mit Verteilung U([a, b] × [0, D]). Dann gilt ϑ λ 2 (A) = P(X1 ∈ A) = 2 λ ([a, b] × [0, D]) (b − a) · D und P-fast sicher 1 n ϑ ∑ 1A (Xi ) = E 1A (X1 ) = P(X1 ∈ A) = (b − a) · D n→∞ n i=1 lim
180
15 Beispiele und Anwendungen
d. h. als Schätzer für ϑ erhält man D(b − a) n ϑˆn (x1 , ..., xn ) = ∑ 1A (xi ). n i=1
(15.3)
Der folgende Algorithmus (der noch durch Einführung von Konstanten beschleunigt werden kann) liefert einen Schätzwert für ϑ :
/ / simuliert U(a, b) / / simuliert U(0, D)
Mit dieser Methode kann das Integral beschränkter Funktionen f : Rd → R näherungsweise bestimmt werden. Monte-Carlo-Integration stellt damit eine Alternative zu den bekannten numerischen Approximationsverfahren dar. Wenn zusätzliche Informationen über die Ableitungen von f zur Verfügung stehen, so sind die numerischen Verfahren bei vergleichbarem Aufwand (= Anzahl der Auswertungen von f (·)) wohl meist genauer. Liegen derartige Informationen nicht vor und/oder ist die Dimension d sehr hoch, so sind die Monte-Carlo-Methode jedoch durchaus konkurrenzfähig (siehe z. B. [Fis03], 2.2). Eine verbesserte Monte-Carlo-Integrationsmethode werden wir unten in Satz 18.1 kennenlernen.
Zwei Punkte U,V werden zufällig in einem Rechteck ausgewählt. Gesucht wird der mittlere Abstand U − V zwischen den beiden Punkten. Fragestellungen dieser Art treten z. B. bei der automatischen Verdrahtung hochintegrierter Schaltungen auf, wenn zwei Anschlusspunkte auf einem Chip durch eine Leitung verbunden werden müssen. Wir wollen hier eine einfache, speziellere Version dieses Problems betrachten. U und V seien zwei Punkte im Einheitsquadrat [0, 1] × [0, 1]. Dabei soll U = (U1 ,U2 ) in der linken Hälfte liegen, also die Verteilung U([0, 12 ] × [0, 1]) besitzen und V = (V1 ,V2 ) gleichverteilt aus der rechten Hälfte [ 12 , 1] × [0, 1] gewählt sein. U,V seien unabhängig, vgl. Abbildung 18.5. * · bezeichne den üblichen Euklidischen Abstand U − V = (U1 −V1 )2 + (U2 −V2 )2 . Gesucht ist der Wert ϑ := E U −V = E (U1 −V1 )2 + (U2 −V2 )2 . In diesem Beispiel sind alle auftretenden Zufallsvariablen U1 ,U2 ,V1 ,V2 unabhängig und gleichverteilt auf unterschiedlichen Intervallen. Trotz dieser einfachen Voraussetzungen ist die analytische Bestimmung des Wertes recht schwierig, wir wollen deshalb hier nur einige Etappen des Weges skizzieren und dann den simplen Simulationsalgorithmus präsentieren.
15.1 Schätzungen eines Erwartungswertes
181
U Y V
0
1/2 X
1
Abbildung 15.4: Der Abstand zweier Punkte im Einheitsquadrat
Es sei X := V1 −U1 , Y := |V2 −U2 |. Wir wollen die Verteilung von X bestimmen. U1 hat die Dichte fU1 (t) = 2 · 1[0,1/2] (t) und V1 die Verteilungsfunktion ⎧ 0 für t < 12 ⎪ ⎨ 1 FV1 (t) = 2(t − 12 ) für 12 ≤ t < 1 = 2(t − ) · 1[ 1 ,1] (t) + 1(1,∞) (t). 2 ⎪ 2 ⎩ 1 für t ≥ 1 Es gilt daher mit dem Satz von der totalen Wahrscheinlichkeit (Anhang A.9) für t ∈ [0, 1] : P(X ≤ t) = P(V1 −U1 ≤ t) =
+
P[V1 −U1 ≤ t | U1 = u] PU1 (du)
+ 1/2
P(V1 ≤ t + u) du / + 1/2 . 1 = 2 2(t + u − ) · 1[ 1 ,1] (t + u) + 1(1,∞) (t + u) du 2 2 0 , 1/2 2 1/2−t 2(t + u − 12 ) du für t < 12 = , , 1/2 2 01−t 2(t + u − 12 ) du + 2 1−t 1 du für 12 ≤ t 2t 2 für t < 12 = . −2t 2 + 4t − 1 für 12 ≤ t = 2
0
Ähnlich folgt P(Y ≤ t) = 2t − t 2 . Durch Ableitung nach t erhält man als Dichten von X und Y: ⎧ 4x für x ∈ [0, 12 ] ⎪ ⎨ 2(1 − y) für y ∈ [0, 1] 1 . und fY (y) := fX (x) := 4(1 − x) für x ∈ ( 2 , 1] ⎪ 0 sonst ⎩ 0 sonst (15.4)
182
15 Beispiele und Anwendungen
Damit folgt ϑ = E U −V
= E =
*
X 2 +Y 2 =
+ 1 + 0
0
1 2
+ 1 + 1 * 0
0
x2 + y2 fX (x) fY (y) dx dy
* x2 + y2 4x2(1 − y) dx dy +
+ 1 + 1 * 0
1 2
x2 + y2 4(1 − x)2(1 − y) dx dy.
Die Lösung dieser Integrale lässt sich mit Hilfe des Cosecans-Hyperbolicus ausdrücken. Numerische Approximation liefert dann ϑ ≈ 0.640425.
(15.5) (u(1) , v(1) ), . . . , (u(n) , v(n) )
Paare Wesentlich einfacher gestaltet sich die Simulation. Es seien (i) (i) (i) (i) (i) (i) von Punkten u = (u1 , u2 ), v = (v1 , v2 ), die durch Simulation der U([0, 1/2] × [0, 1])Verteilung bzw. der U([1/2, 1] × [0, 1])-Verteilung gewonnen wurden. ϑ wird dann geschätzt durch 1 n (i) (i) (i) (i) ϑˆn (u(1) , v(1) , . . . , u(n) , v(n) ) := ∑ (u1 − v1 )2 + (u2 − v2 )2 n i=1 (i)
(i)
(i)
Der zugehörige Algorithmus lässt sich durch Übergang zu x(i) := v1 − u1 und y(i) := v2 − (i) u2 besonders einfach schreiben:
/ / x = v1 − u1 / / y = v2 − u2
Abbildung 15.5 zeigt Ergebnisse aus 10 Wiederholungen der Schätzungen mit ϑˆn für verschiedenen Werte des Stichprobenumfangs n in Gestalt sogenannter Boxplots. Boxplots dienen der übersichtlichen Darstellung von Beobachtungswerten. Der Median der Werte wird durch die etwas dickere Querlinie angedeutet, obere und untere Kante der Box markieren gerade oberes und unteres Quartil der Beobachtungswerte (vgl. Anhang B.1). Die „Fühler“ oben und unten beschreiben die Lage der übrigen Werte. Die punktierte Querlinie in Abbildung 15.5 kennzeichnet den wahren, numerisch ermittelten Wert ϑ ≈ 0.640425 aus (15.5). Wie man gut erkennt, hängt sowohl die Lage des Medians als auch die Streuung der Beobachtungswerte um den Median sehr stark vom Stichprobenumfang n ab. Wir werden unten in Beispiel 18.10 dieses Problem noch einmal aufgreifen und zeigen, wie die starken Schwankungen in den Ergebnissen durch varianzreduzierende Maßnahmen gesenkt werden können.
15.2 Ereignisgesteuerte Simulation
183
0.70
0.65
ϑ
0.60
0.55
n = 10
50
100
500
1000
5000
Abbildung 15.5: Ergebnisse der Simulation der mittleren Drahtlänge mit Stichprobenumfang n.
15.2 Ereignisgesteuerte Simulation In den bisherigen Beispielen konnten die Schätzer für ϑ auf Zufallszahlen angewendet werden, die mit wenigen Aufrufen von Zufallsgeneratoren zu erzeugen waren. In diesem Abschnitt wird an einem Beispiel gezeigt, wie man vorgehen kann, wenn die Erzeugung der Stichprobe nur mit einem komplizierteren Programm erfolgen kann. Gleichzeitig wird dabei das wichtige Konzept der ereignisgesteuerten Simulation erläutert. Als Beispiel wählen wir ein einfaches Bediensystem G/G/1 wie in Abb. 15.6. Es besteht aus einem Bediener und einem Warteraum, in dem die ankommenden Kunden, die den Bediener besetzt vorfinden, eine Warteschlange bilden. Wird der Bediener frei, so bedient er den Kunden, der am Kopf der Warteschlange steht, also den, der schon am längsten wartet. Der Bediener benutzt also eine FIFO-Strategie (first in first out).
T1 , T2 , . . . B1 , B2 , . . .
Abbildung 15.6: Ein einfaches Bediensystem.
Die Kunden treffen zu zufälligen Zeitpunkten S1 , S2 , . . . (auf eine kontinuierlichen Zeitachse [0, ∞)) ein, wobei die Zwischenankunftszeiten Ti := Si − Si−1 i.i.d. seien mit Verteilungsfunktion F. Die Bedienzeit des i-ten Kunden sei Bi , wobei die Folge (Bi )i≥1 i.i.d. mit Verteilungsfunktion G sei. Bedienzeiten und Zwischenankunftszeiten seien voneinander unabhängig. Den Abgangszeitpunkt des n-ten Kunden nennen wir Rn . Der Ankunftsstrom wird zu einem vorgegegestoppt, die Bedienung der dann im System befindlichen Kunden benen Zeitpunkt wird aber noch zu Ende geführt.
184
15 Beispiele und Anwendungen Yt
t T1
S1
T2
T3
S2
B1
S3
B2 R1
T4
S4
T5
S5
T6
B3 R2
B4 R3
Abbildung 15.7: Die Anzahl der Kunden im System ändert sich nur bei Ankünften oder am Ende einer Bedienung.
Für dieses Bediensystem soll die durchschnittliche Wartezeit eines Kunden und seine durchschnittliche Verweilzeit im „System“ (d. h. in der Warteschlange und in der Bedienung) ermittelt werden. Eine naive, direkte Simulation dieses Modells müsste einen Mechanismus besitzen, der Ankünfte zu zufälligen Zeitpunkten produziert, und einen Bediener, der die Kunden nach einer zufälligen Bedienzeit entlässt. Beide Einheiten müssten parallel arbeiten und beständig miteinander kommunizieren. Dies ermöglicht eine sehr genaues Abbild des Geschehens zu jedem Zeitpunkt, ist aber verhältnismäßig kompliziert zu implementieren (parallele Prozesse) und zeitaufwändig, etwa in kleinen Zeitschritten Δ durchlaufen werden da das ganze Zeitintervall muss. In vielen zu simulierenden Systemen ändern sich die relevanten Größen jedoch nur zu bestimmten Zeitpunkten, beim Eintritt von sogenannten Ereignissen (engl. „events“). In dem Bediensystem z. B. ändert sich die zentrale Größe Xt := Anzahl der Kunden im System zur Zeit t nur zu den Ankunftszeitpunkten bzw. Abgangszeitpunkten von Kunden, dazwischen bleibt sie konstant, vgl. Abb. 15.7. Es ist daher naheliegend, nur die Zeitpunkte dieser Ereignisse zu simulieren und die Zeit dazwischen, in der keine relevanten Änderungen der Systemdaten stattfinden, zu überspringen. Anstelle des stochastischen Prozesses (Xt )t≥0 mit stetiger Zeitachse betrachtet man also einen eingebetteten Prozess (XGn )n≥0 mit diskretem Zeitparameter n, wobei sich die Ereigniszeitpunkte Gn aus den Ankunftszeiten (Sn )n≥0 und Abgangszeitpunkten (Rn )n≥0 wie in Abbildung 15.7 angedeutet zusammensetzen. Werden nur die XGn , also die Prozesszustände bei Eintritt von Ereignissen simuliert, so spricht man von „ereignisgesteuerter“ oder „ereignisorientierter“ Simulation. Zur Durchführung einer ereignisgesteuerten Simulation benötigt man zunächst eine Daten, der aus einem Zeitpunkt (zu dem das Ereignis eintritt) besteht und aus einem typ , an dem das System erkennen kann, wie es auf das Ereignis reagieren muss. Für und in Frage. Es muss das Warteschlangenbeispiel kommen die Ereignistypen
15.2 Ereignisgesteuerte Simulation
185
einen Erzeugungsmechanismus für Ereignisse geben, der hier im wesentlichen aus Zufallsgeneratoren für Zwischenankunfts- und Bedienzeiten besteht. Damit die Ereignisse in der richtigen Reihenfolge abgearbeitet werden können, müssen sie nach ihren Zeitpunkten geordnet werden. - ähnlicher Notation also etwa: Am einfachsten geschieht dies in einer Liste, in / / Die zentrale Klasse ’ Ereignis ’ , hier nur angedeutet : / / Eine Liste aus Ereignissen , s o r t i e r t nach ihren ZeitPkt−Werten : Die allgemeine Struktur einer ereignisgesteuerten Simulation sieht damit etwa folgendermaßen aus:
/ / mit frühestem ZeitPkt
Für die Simulation des Wartesystems und die Ermittlung der Zielgrößen und benötigen wir zusätzlich die folgende Elemente und Datenstrukturen (die hier z. T. nur angedeutet sind, deren genaue Implementierung aber für die Laufzeit sehr wichtig sein kann):
//
fügt
E ein , aufsteigend s o r t i e r t nach ZeitPkt
// gibt das Ereignis vom Kopf der Liste und löscht es dort ; // am Kopf s t e h t das Ereignis mit dem kleinsten ( frühesten ) ZeitPkt / /−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− // einfache Listen für die Ergebnisdaten : / / Liste der sim . Ankunftszeiten / / Liste der sim . Bedienbeginnzeiten / / Liste der sim . Abgangszeiten / /−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− / / die simulierte Zeit
186
15 Beispiele und Anwendungen
Das eigentliche Simulationsprogramm besteht aus einer Bearbeitung der nach dem oben skizzierten Schema, dabei seien bzw. Zufallsgeneratoren für die Verteilungen der Zwischenankunftszeit T1 , T2 , . . . bzw. der Bedienzeiten B1 , B2 , . . . . E REIGNISGESTEUERTE S IMULATION EINES G/G/1-S YSTEMS //
Anfangsereignis erzeugen , zunächst die erste Ankunftszeit :
/ / mit dem Konstruktor der Klasse wird ein Ereignisobjekt angelegt / / vom Typ Ankunft mit ZeitPkt=nextAnkunftszeit :
//
EreignisListe bearbeiten :
//
Zeit vorstellen :
//
passende Aktionen auslösen :
//
Ankunft registrieren :
//
Neues Ereignis : nächste Ankunft
// //
//
Bediener war leer , neue Bedienung beginnt .
// //
Neues Ereignis erzeugen für spätere Bearbeitung : der Abgang dieses Kunden nach seiner Bedienzeit
sonst : a l t e Bedienzeit l ä u f t weiter hier : AktEreignis . Typ == Abgang)
15.2 Ereignisgesteuerte Simulation
//
187
Abgang registrieren :
// / / Ende von
//
weiterer Kunde im System , neue Bedienung beginnt :
//
Neues Ereignis : dessen Abgang
sonst i s t System leer ‘ while ( EreignisListe . NichtLeer ( ) ) ’
Anschließend können die in den Ergebnislisten enthaltenen Daten ausgewertet und durchschnittliche Warte- und Verweilzeit ermittelt werden, also z. B. : / / Auswertung :
Mit demselben Programmaufbau können andere Kenngrößen des Bediensystems wie die durchschnittliche Schlangenlänge oder die Leerlaufzeiten des Bedieners ermittelt werden. Gibt es mehr als zwei Quellen für Ereignisse, z. B. verschiedene Ankunftsströme oder mehrere Bediener, so muss die Ereignisliste so strukturiert sein, dass schnell das nächste Ereignis gefunden werden kann, z. B. durch einen sogenannten „heap“ anstelle der Liste. Voraussetzung für den Einsatz ereignisgesteuerter Simulation ist, dass die Ereignisse einen zeitlich diskreten Charakter haben, wie es z. B. in vielen Fragestellungen des Operations Research der Fall ist. Bei der Simulation eines kontinuierlichen Phänomens, etwa einer chemischen Reaktion oder biologischer Vorgänge, kann man sich u. U. nicht auf die Simulation eingebetteter, diskreter Zeitpunkte beschränken, sondern muss die kontinuierliche Entwicklung möglichst genau abbilden.
16 Konfidenzintervall und Stichprobenumfang bei Mittelwertschätzungen Führt man eine Schätzung ϑˆn (x1 , . . . , xn ) wie in den Beispielen des vorangegangenen Kapitels mehrfach durch, so wird man mit unterschiedlichen Simulationsergebnissen (x1 , . . . , xn ) auch unterschiedliche Schätzwerte für die Konstante ϑ erhalten. Es stellt sich daher die Frage nach der Zuverlässigkeit der Schätzungen. In der Statistik gibt es eine Reihe von Konzepten zur Bewertung von Genauigkeit und Zuverlässigkeit von Schätzern, von denen wir einige hier kurz vorstellen wollen. Dazu müssen wir uns das zugehörige mathematische Modell noch einmal vor Augen führen. Die Erzeugung einer Stichprobe durch wiederholte Durchführung eines Simulationsexperiments kann offensichtlich durch eine Folge (X1 , . . . , Xn ) von i.i.d. Zufallsvariablen modelliert werden, dies war ja das ursprüngliche Ziel der Simulation. Entsprechend wird die Schätzung durch die Zufallsvariable ϑˆn := ϑˆn (X1 , . . . , Xn ) modelliert. Wir benutzen im folgenden die Funktionsschreibweise ϑˆn (x1 , . . . , xn ), wenn wir die Funktion ϑˆn oder den zugehörigen Algorithmus betrachten. Die Zufallsvariable ϑˆn (X1 , . . . , Xn ) benutzen wir, um Verteilungeigenschaften wie Erwartungswert oder Varianz zu bestimmen. 1. ϑˆn heißt erwartungstreu für ϑ , falls E ϑˆn (X1 , . . . , Xn ) = ϑ , d. h. ein erwartungstreuer Schätzer trifft im Mittel den richtigen Wert. 2. ϑˆn heißt stark konsistent, falls lim ϑˆn (X1 , . . . , Xn ) = ϑ für fast alle Beobachtungsvern→∞ läufe. Bei einem stark konsistenten Schätzer strebt der Schätzwert also mit wachsendem Stichprobenumfang gegen den wahren Wert. 3. ϑˆn heißt effizient, falls ϑˆn erwartungstreu für ϑ ist und die Varianz V(ϑˆn ) minimal unter allen erwartungstreuen Schätzern ist. Im Falle erwartungstreuer Schätzer beschreibt die Varianz V(ϑˆn ) = E (ϑˆn − E (ϑˆn ))2 = E (ϑˆn − ϑ )2 gerade die mittlere quadratische Abweichung des Schätzers vom wahren Wert. Ein effizienter Schätzer ist also in diesem Sinne ein besonders genauer Schätzer. Wenn der Erwartungswert ϑ = E ϑ X1 zu schätzen ist, so ist das Stichprobenmittel 1 n ϑˆn (X1 , . . . , Xn ) = ∑ Xi = X n i=1 stets erwartungstreu und konsistent und in vielen Fällen auch effizient. Für die Varianz gilt dann V(ϑˆn (X1 , . . . , Xn )) = V(
1 n 1 n 1 Xi ) = 2 ∑ V(Xi ) = V(X1 ), ∑ n i=1 n i=1 n
190
16 Konfidenzintervall und Stichprobenumfang bei Mittelwertschätzungen
so dass für eine möglichst geringe Varianz des Schätzers ein möglichst großer Stichprobenumfang n anzustreben ist. Die Genauigkeit einer Schätzung und ihre Abhängigkeit vom Stichprobenumfang n kann noch besser beschrieben werden, wenn man anstelle der Punktschätzer wie ϑˆn sogenannte Konfidenzintervalle zum Niveau α benutzt. Dies sind von der Stichprobe x = (x1 , . . . , xn ) abhängige Intervalle [λ (x), λ (x)], die den wahren Parameter mit einer vorgegebenen großen Wahrscheinlichkeit enthalten, für die also gilt P λ (X) ≤ ϑ ≤ λ (X) ≥ 1 − α für X = (X1 , . . . , Xn ). α ist dabei die Fehlerwahrscheinlichkeit, typische Werte sind α = 0.01 oder α = 0.05. Ähnlich wie bei den Tests kann man bei einem Konfidenzintervall zum Niveau α bei wiederholter Anwendung davon ausgehen, dass die ermittelten Intervalle in (1 − α)100% der Fälle den wahren Wert ϑ überdecken (vgl. Anhang B.4 und Beispiel 16.6 unten). Eine Schätzung mit einem Konfidenzintervall versucht also im Unterschied zur Punktschätzung, lediglich den Bereich, in dem der wahre Wert mit hoher Wahrscheinlichkeit liegt, einzugrenzen, ohne den Wert selbst zu benennen. Aus dem zentralen Grenzwertsatz erhält man folgende asymptotische Aussage für Konfidenzintervalle. Um die Abhängigkeit vom Stichprobenumfang n deutlich zu machen, setzen wir im Folgenden 1 n n ≥ 0, (16.1) X(n) := (X1 , . . . , Xn ) und X n := ∑ Xi n i=1 und entsprechend x(n) und xn .
Es sei (Xi )i≥1 i.i.d. mit E X1 = ϑ und V(X1 ) = σ 2 . Dann gilt lim P λn (X(n) ) ≤ ϑ ≤ λ n (X(n) ) = 1 − α
n→∞
σ λ n (x(n) ) := xn − uα/2 √ n
und
für
σ λ n (x(n) ) := xn + uα/2 √ , n
dabei ist uα/2 das α/2−Fraktil von N(0, 1), vgl. Anhang A.19. √ Umgibt man den Punktschätzer xn mit einem „Sicherheitszuschlag“ von ±uα/2 σ / n, so erhält man also ein Konfidenzintervall, das für wachsenden Stichprobenumfang asymptotischen das Niveau α einhält. Beweis: Es sei Z eine Zufallsvariable mit PZ = N(0, 1), dann gilt nach Definition des Fraktils (Anhang A.19) P(Z ≤ uα/2 ) = Φ(uα/2 ) = 1 − α/2. Daher folgt auch P(−uα/2 ≤ Z ≤ uα/2 ) = Φ(uα/2 ) − Φ(−uα/2 ) = 1 − α. Nach dem zentralen Grenzwertsatz (Anhang A.23) gilt also
191
σ σ √ √ ≤ ϑ ≤ X n + uα/2 lim P λn (X(n) ) ≤ ϑ ≤ λ n (X(n) ) = lim P X n − uα/2 n→∞ n→∞ n n ⎞ ⎛ Xn − ϑ ≤ +uα/2 ⎠ = P(−uα/2 ≤ Z ≤ +uα/2 ) = lim P ⎝−uα/2 ≤
n→∞
σ2 n
= 1−α
Für die Genauigkeit der Schätzung bei einem Konfidenzintervall ist offensichtlich die Länge λ n (x(n) ) − λ n (x(n) ) des Konfidenzintervalls ausschlaggebend, die wiederum vom Stichprobenumfang abhängt. Der folgende einfache Satz zeigt, wie groß der Stichprobenumfang mindestens gewählt werden muss, damit das Konfidenzintervall eine vorgegebene Länge nicht überschreitet. Es sei α ∈ (0, 1) und r > 0 eine vorgegebene Genauigkeit. Für das Konfidenzintervall [λn (x(n) ), λ n (x(n) )] aus Satz 16.1 gilt unabhängig von der Stichprobe x = (x1 , . . . , xn ) λ n (x(n) ) − λn (x(n) ) ≤ 2r falls n ≥ n0 (α, r) :=
0 uα/2
1 σ 2 . r
Beweis: Für n ≥ n0 (α, r) folgt sofort σ σ σ σ λ n (x(n) ) − λn (x(n) ) = x¯n + uα/2 √ − (x¯n − uα/2 √ ) = 2uα/2 √ ≤ 2uα/2 = 2r n n n uα/2 σr Bricht man die Simulation nach n0 (α, r) Schritten ab, so hat das Konfidenzintervall höchstens die Länge 2r. Man kann dann den Punktschätzer xn benutzen und sagen, dass er mit Fehlerwahrscheinlichkeit α eine Genauigkeit von r für die Schätzung von ϑ hat. Hierbei ist allerdings zu beachten, dass das Niveau α nach Satz 16.1 nur asymptotisch für n → ∞ angenommen wird. Das Konfidenzintervall aus Satz 16.1 setzt voraus, dass bei der Schätzung von ϑ = E X1 die Varianz σ 2 = V (X1 ) bekannt ist. Ist σ 2 nicht bekannt, so kann der Wert geschätzt werden. Dazu benutzt man als Schätzer für σ 2 die Stichprobenstreuung σˆ n2 = σˆ n2 (x(n) ) :=
1 n ∑ (xi − xn )2 , n − 1 i=1
für
x(n) = (x1 , . . . , xn )
* und setzt σˆ n = σˆ n (x(n) ) := σˆ n2 (x). Der folgende Satz zeigt, dass bei unbekannter Varianz in dem Konfidenzintervall aus Satz 16.1 σ durch den Schätzer σˆ n ersetzt werden kann, ohne dass die asymptotischen Eigenschaften des Konfidenzintervalls verlorengehen.
192
16 Konfidenzintervall und Stichprobenumfang bei Mittelwertschätzungen
Es sei (Xi )i≥1 i.i.d. mit E X1 = ϑ , V(X1 ) = σ 2 . a) σˆ n2 ist erwartungstreu und stark konsistent, d. h. E σˆ n2 (X1 , . . . , Xn ) = σ 2 , und lim σˆ n2 (X1 , . . . , Xn ) = σ 2 (P-f.s).
n→∞
b) Es gilt für α ∈ (0, 1) mit den Bezeichnungen aus (16.1) σˆ n (X(n) ) σˆ n (X(n) ) lim P X n − uα/2 √ ≤ ϑ ≤ X n + uα/2 √ = 1−α n→∞ n n . / σˆ n σˆ n √ √ , xn + uα/2 := xn − uα/2 n n bildet ein Konfidenzintervall für ϑ mit dem asymptotischen Niveau α.
d. h.
[λ n (x(n) ), λ n (x(n) )]
(16.2)
Beweis: a) Diese Aussagen finden sich z. B. in [LW06] und lassen sich mit Hilfe der Gleichung / . n n 2 2 (x − c) − (x − c) , c∈R σˆ 2 (x(n) ) = n ∑ i n − 1 i=1 für c := E X1 auch selbst nachrechnen. b) Es sei Z eine Zufallsvariable mit PZ = N(0, 1) und Yn :=
√ Xn − ϑ , n σ
Zn :=
σ . σˆ n
Dann gilt nach a) und dem zentralen Grenzwertsatz die folgenden Verteilungskonvergenzen: D D Yn −→ Z, Zn −→ 1 (vgl. Anhang A.20). Aus Anhang A.21 folgt daher auch für das Paar (Yn , Zn ) D
die Konvergenz (Yn , Zn ) −→ (Z, 1) und noch einmal nach A.21 für das Produkt Yn · Zn √ Xn − ϑ σ √ Xn − ϑ D · n = n = Yn · Zn −→ Z · 1 = Z. ˆ ˆ σ σn σn Also gilt für alle t
lim P
n→∞
und daher
√ Xn − ϑ n ≤t σˆ n
= P(Z ≤ t),
σˆ n σˆ n lim P X n − uα/2 √ ≤ ϑ ≤ X n + uα/2 √ n→∞ n n √ ϑ − Xn ≤ uα/2 = P(−uα/2 ≤ Z ≤ uα/2 ) = 1 − α. = lim P −uα/2 ≤ n n→∞ σˆ n
193
In einem Bediensystem soll die mittlere Zeit, die vom Start bis zum ersten Leerstand des Bedieners vergeht, bestimmt werden. Dazu wird das Bediensystem n = 100-mal leer gestartet und die Zeiten x1 , . . . , x100 bis zum Ende des ersten „busy cycle“ beobachtet. Die Ergebnisse seien xn = 1/n ∑ni=1 xi = 78 und σˆ n2 (x1 , . . . , xn ) = 225. Für α = 0.01 gilt mit uα/2 = 2.575 xn ± uα/2
15 σˆ n (x1 , . . . , xn ) √ = 78 ± 2.575 = 78 ± 3.86, n 10
also ist [74.14, 81.86] das Konfidenzintervall zum Niveau α = 0.01 für diese Stichprobe x1 , . . . , x100 . Die Sicherheit, mit der dieses Intervall den gesuchte Wert enthält, ist (asymptotisch) 99%. Dies bezieht sich, wie oben ausgeführt, auf die Fehlerquote bei wiederholter Durchführung der Schätzung. Anders ausgedrückt: die Genauigkeit der Schätzung x¯ = 78 auf dem 99%-Level liegt bei ±3.86. Für α = 0.05 erhält man sogar eine Genauigkeit von ±2.93.
a) Bei dem Konfidenzintervalls aus Satz 16.3 mit geschätzter Varianz ist die Länge des Intervalls σˆ n (x1 , . . . , xn ) √ 2uα/2 n von der Stichprobe (x1 , . . . , xn ) abhängig. In Analogie zu Satz 16.2 kann man die Simulation stoppen, sobald σˆ n (X(n) ) σˆ n (X(n) ) 2 ≤ r = min n | n ≥ uα/2 n ≥ N0 (α, r) := min n | uα/2 √ n r Diese Grenze ist aber, im Unterschied zu der aus Satz 16.2, eine vom Verlauf der Stichprobe abhängige Zufallsvariable! Da der Schätzer σˆ n (X(n) ) nicht monoton von n abzuhängen braucht, ist das erstmalige Unterschreiten der Länge 2r auch keine Garantie dafür, dass das Intervall für größeren Stichprobenumfang nicht auch wieder länger wird. In Beispiel 16.6 wird ein Fall untersucht, in dem sich diese „Stoppregel“ aber sehr gut bewährt. b) Ein Konfidenzintervall fester Länge erhält man, wenn man σ 2 in einer vorgeschalte ten Simulation aus einer separaten Stichprobe x1 , . . . , xm schätzt. Der Schätzwert σ := σˆ m (x1 , . . . , xm ) wird dann anstelle der unbekannten Varianz in dem Konfidenzintervall aus Satz 16.1 mit einer weiteren Stichprobe xm+1 , . . . , xm+n verwendet. Die Güte des Ergebnisses hängt dabei wesentlich von der Genauigkeit der vorgeschalteten Schätzung ab. c) Wird nur eine Schranke für den unbekannten Wert ϑ gesucht, so genügt ein einseitiges Konfidenzintervall zum Niveau α, z. B. [λ (x), ∞) mit der unteren Konfidenzschranke λ (x). Es gilt etwa in der Situation von Satz 16.1 σ lim P ϑ ≥ X n − uα √ = 1−α n→∞ n
194
16 Konfidenzintervall und Stichprobenumfang bei Mittelwertschätzungen
Entsprechend liefert xn + uα √σn eine obere Konfidenzschranke. Man beachte, dass hier uα anstelle von uα/2 benutzt wird. Auch hier kann σ wieder durch den Schätzer σˆ n ersetzt werden. Das folgende Beispiel zeigt, wie Konfidenzintervalle bei der Monte-Carlo-Integration eingesetzt werden können.
Wir untersuchen die Monte-Carlo-Integration mit dem Hit-Or-Miss-Verfahren aus Beispiel 4 15.3. Für die Funktion f (t) := e−t wollen wir ϑ :=
+ 3 −3
f (t) dt
schätzen. Dieses Integral kann natürlich leicht berechnet werden, es gilt ϑ = 1.8128, wir wollen aber an diesem Beispiel die Wirkungsweise der verschiedenen Stichprobenpläne und Konfidenzintervalle untersuchen. Der Hit-Or-Miss-Schätzer ist nach (15.3) 6 n D(b − a) n 1A (ui , vi ) = ∑ 1[0, f (ui )) (vi ) ϑˆn (x1 , ..., xn ) = ∑ n n i=1 i=1 mit a := −3, b := 3, D := 1 und Paaren von Zufallszahlen xi = (ui , vi ), die eine U([a, b] × [0, D])-Verteilung simulieren. ϑˆn zählt also im wesentlichen, wieviele der n Zufallspunkte vi ≤ f (ui ) erfüllen. Wir wollen dieses Problem als Schätzen eines Erwartungswerts formulieren, damit die Sätze über die Konfidenzintervalle anwendbar werden. Es seien X1 = (U1 ,V1 ), . . . , Xn = (Un ,Vn ) unabhängige, identisch U([a, b] × [0, D])-verteilte Zufallsvariablen und 4 1 falls Vi ≤ e−Ui . Yi := D(b − a)1A (Xi ) = 6 · 4 0 falls Vi > e−Ui Dann sind 1A (X1 ), . . . , 1A (Xn ) i.i.d. Bernoulli-verteilt und es folgt wie in Beispiel 15.3 EYi = D(b − a)E 1A (Xi ) = D(b − a)P(Xi ∈ A) = D(b − a)
λ 2 (A) = λ 2 (A) = ϑ . D(b − a)
Mit diesen Bezeichnungen kann die Hit-Or-Miss-Methode also als eine Schätzung des Erwartungswerts ϑ = EY1 aus einer Stichprobe Y1 , . . . ,Yn angesehen werden. In diesem Beispiel kann auch die Varianz von Yi bestimmt werden, es gilt mit P(X1 ∈ A) = ϑ /(D(b − a)) σ2
= V(Y1 ) = V(D(b − a)1A (X1 )) = D2 (b − a)2 V(1A (X1 )) = D2 (b − a)2 E 1A (X1 ) − (E 1A (X1 ))2 = D2 (b − a)2 P(X1 ∈ A) − P(X1 ∈ A)2 = ϑ (D(b − a) − ϑ ) = 7.59
und σ = 2.755.
195
Als erstes bestimmen wir das Konfidenzintervall [λ n (y1 , . . . , yn ), λ n (y1 , . . . , yn )] aus Satz 16.1, das die bekannte Varianz ausnutzt. Als Stichprobenumfang wählen wir den minimalen Stichprobenumfang n0 (α, r), der nach Satz 16.2 für eine Genauigkeit von r := 0.2 bei α := 0.05 erforderlich ist: 1 0 2 σ 3 2.755 2 ) = 728.97 = 729. n0 (α, r) = (uα/2 )2 = (1.96 r 0.2
2.2
2.2
λ n (x)
2.0
ϑ
2.0
ϑ
1.8
λ n (x)
1.6
1.4
1.8
1.6
1.4 0
20
40
60
80
100
0
20
40
60
80
100
Abbildung 16.1: 100 Konfidenzintervalle mit den Grenzen aus Satz 16.1 mit α = 0.05, links mit Genauigkeit r := 0.2, rechts mit r := 0.1.
Abbildung 16.1 zeigt auf der linken Seite die obere Grenze λ 279 und die untere Grenze λ 279 für 100 verschiedene Stichproben (y1 , . . . , yn ), jeweils vom Umfang n = 279. Der wahre Wert ϑ = 1.8128 ist als gestrichelte Linie eingezeichnet. Solange diese Linie zwischen den beiden Grenzen liegt, wird der wahre Wert vom Konfidenzintervall überdeckt. Dies wird hier in 93 der 100 Versuche erreicht, d. h. die empirische Überdeckungswahrscheinlichkeit liegt hier nur bei 93%, obwohl sie bei einem Konfidenzintervall zum Niveau α = 0.05 mindestens 95% betragen sollte. Dies liegt daran, dass diese Aussagen nur asymptotisch für n → ∞ gilt und n = 279 offensichtlich etwas zu klein ist. Auf der rechten Seite von Abbildung 16.1 sind die Grenzen für die Genauigkeit r := 0.1 mit n0 (0.05, 0.1) = 2916 angegeben. Die Intervalle sind hier nur halb so lang wie im ersten Fall. Diesmal wird die Fehlerwahrscheinlichkeit von 0.05 genau eingehalten, bei den 100 versuchen passiert es genau 5-mal, dass der wahre Wert ϑ nicht von dem Intervall überdeckt wird. Als nächstes benutzen wir das Konfidenzintervall aus Satz 16.3, bei dem die Varianz aus den Beobachtungen geschätzt wird. Den Stichprobenumfang haben wir ähnlich wie in Bemerˆ 1 ,...,yn ) des kung 16.5 a) gewählt: die Simulation wird gestoppt, sobald der „Radius“ uα/2 σn (y√ n Intervalls das erstemal kleiner als r ist und die Stichprobe einen Mindestumfang von n ≥ 20 hat. Durch diesen Mindestumfang wird vermieden, dass bei sehr kleinen Stichproben durch einen kleinen Schätzwert σˆ n die Simulation zu früh gestoppt wird. Dies kann gerade bei der
196
16 Konfidenzintervall und Stichprobenumfang bei Mittelwertschätzungen
Monte-Carlo-Integration leicht passieren, wenn zu Anfang viele Testpunkte (ui , vi ) abgelehnt werden und damit eine Stichprobe (y1 , y2 , . . .) = (0, 0, . . .) entsteht. In Abbildung 16.2 sind die Ergebnisse von 100 Schätzungen mit diesem Konfidenzintervall zu sehen. In der linken Graphik sind die Intervallgrenze für α := 0.05 und r := 0.2 abgebildet. 4-mal wurde der wahre Wert ϑ nicht von dem Intervall überdeckt, also haben wir eine empirische Überdeckung von 96%. Der dafür erforderliche durchschnittliche Stichprobenumfang betrug 728.59, dies ist praktisch genau die Größe n0 (0.05, 0.2), die wir bei bekannter Varianz benötigt haben. Die Varianz ist in diesem Beispiel so gering (da yi nur zwei Werte annehmen kann), dass eine simultane Schätzung von σ und ϑ praktisch keinen Nachteil bedeutet gegenüber der Situation, in der σ 2 bekannt ist. Auf der rechten Seite von Abbildung 16.2 sind die Intervallgrenzen für α := 0.01 und r := 0.1 angegeben. Die relative Anzahl von Fehlern lag hier bei 0.01, der durchschnittliche Stichprobenumfang war 5026.83. Bei bekannter Varianz wären nach Satz 16.2 n0 (0.01, 0.1) = 5036 Simulationen erforderlich.
2.2
2.2
λn
2.0
ϑ
2.0
ϑ
1.8
λn
1.6
1.8
1.6
1.4
1.4 0
20
40
60
80
100
0
20
40
60
80
100
Abbildung 16.2: 100 Konfidenzintervalle nach Satz 16.3, links mit α = 0.05 und Genauigkeit r := 0.2, rechts mit α := 0.01 und r := 0.1.
Bei allen hier betrachteten Schätzungen konnte die Genauigkeit im Wesentlichen nur durch eine Erhöhung des Stichprobenumfangs n erreicht werden. In Kapitel 18 werden darüberhinausgehende „varianzreduzierende“ Methoden der Schätzung aus simulierten Daten untersucht, mit denen die Ungenauigkeit der Schätzung auch bei festem Stichprobenumfang reduziert werden kann.
17 Regenerative Simulation In den vorangegangenen Kapiteln wurde stets angenommen, dass die Beobachtungen x1 , . . . , xn der Wiederholung eines (Simulations-)Experiments entstammen, die zugehörigen Zufallsvariablen also i.i.d. sind. Dies war u. a. die Voraussetzung für die Aussagen zur asymptotischen Genauigkeit der Konfidenzintervallen etwa in Satz 16.3. Bei der Untersuchung von stochastischen Prozessen wie z. B. dem Lagerhaltungsmodell aus der Einleitung oder dem Bediensystem aus Kapitel 15.2 treten jedoch häufig Beobachtungen auf, die nicht durch i.i.d. Zufallsvariablen modelliert werden können, so sind z. B. für aufeinanderfolgende Kunden die Verweilzeiten nicht unabhängig, siehe Beispiel 17.2 unten. Ziel ist es aber auch hier häufig, Kenngrößen zu bestimmen, die sich als langfristige Durchschnitte dieser Beobachtungen ausdrücken lassen. So möchte man z. B. die langfristige mittlere Verweilzeit der Kunden in einem Bediensystem bestimmen oder die (langfristige) relative Häufigkeit, mit der ein Lagerbestand ≥ c beobachtet wird. Analytisch bestimmbar sind diese Größen meist nur für einfache Spezialfälle, so dass man hier häufig auf Simulationen angewiesen ist. Neben der fehlenden Unabhängigkeit der Beobachtungen stößt man dabei auf die zusätzliche Schwierigkeit, dass zur Bestimmung der asymptotischen Durchschnitte immer nur endliche Anfangsstücke X1 , . . . , Xn des Prozesses simuliert werden können. Selbst wenn man dies mehrfach wiederholt und den Durchschnitt aus den Beobachtungswerten bildet, ist oft nicht klar, ob man auf diese Weise einen guten Schätzer für die stationären, langfristig auftretenden Größen erhält. Diese Probleme vereinfachen sich wesentlich, wenn der Prozess eine sogenannte regenerative Struktur besitzt, d. h. wenn es Zeitpunkte gibt, zu denen der Prozess sich stochastisch erneuert. Der Prozessverlauf setzt sich dann aus Teilstücken zusammen, die i.i.d. sind und auf die Schätzungen und Konfidenzintervalle aufbauen können. Wir stellen hier nur einige der wichtigsten Eigenschaften regenerativer Prozesse zusammen, weitere Details finden sich z. B. in [Cin75] und [HS82].
(Xt )t≥0 sei ein stochastischer Prozess mit Werten in einem Zustandsraum Rd . (τm )m≥0 sei eine Folge zufälliger Zeitpunkte in R+ mit 0 = τ0 ≤ τ1 ≤ τ2 ≤ . . . und P(τ1 = 0) < 1. Es sei für m ≥ 0 Xτm +s falls 0 ≤ s < τm+1 − τm (m) X4s := , s ∈ R+ . 0 sonst (m) X4s beschreibt den Ausschnitt von (Xt )t≥0 zwischen τm und τm+1 (ergänzt mit dem Wert ‘0’ oberhalb von [τm , τm+1 )), vgl. Abb. 17.1. Dann heißt (Xt )t≥0 ein regenerativer Prozess mit Regenerationszeiten (τm )m≥0 , falls die Zufallsvariablen (m) (X4s )s≥0 , τm+1 − τm m≥0
198
17 Regenerative Simulation (3) X4s
Xt
4 3 2 1
0
τ1
τ2
τ3
t
τ4 s
0 Abbildung 17.1: Der Prozess erneuert sich zu den Zeitpunkten τm , der dritte Zyklus ist grau markiert.
i.i.d. sind, d. h. falls für alle festen Zeitpunkte 0 ≤ t1 < t2 < · · · < tk , k ∈ N gilt: (m) (m) X4t1 , · · · , X4tk , τm+1 − τm m≥0
ist eine Folge von i.i.d. Zufallsvariablen. Eine entsprechende Definition gilt für Prozesse (Xn )n≥0 mit diskreter Zeit, bei denen die Regenerationszeiten τm Werte in N annehmen. Die Definition besagt, dass sich ein regenerativer Prozess aus einer Aneinanderreihung von i.i.d. „Touren“ oder „Zyklen“ aufbaut, die jeweils den Prozessverlauf im Zeitintervall [τm , τm+1 ) zwischen zwei Regenerationszeitpunkten beschreiben wie in Abbildung 17.1 angedeutet. Zu den zufälligen Zeitpunkten τm startet der Prozess einen neuen Zyklus, der verteilungsmäßig mit dem Startzyklus identisch ist, der Prozess „regeneriert“ sich also zur Zeit τm . Insbesondere bildet die Länge τm+1 − τm des m-ten Zyklus für m ≥ 1 eine Folge von i.i.d. Werten, (τm )m≥1 ist daher ein sogenannter Erneuerungsprozess. Benutzt man für eine Schätzung Beobachtungswerte, die jeweils nur vom Prozessverlauf in einem Zyklus abhängen, so erhält man wieder eine Stichprobe aus unabhängigen, identisch verteilten Werten, für die z. B. Konfidenzintervalle ähnlich wie in Kapitel 16 gebildet werden können. In diesem Zusammenhang spricht man von regenerativer Simulation. Der Unterschied zu Kapitel 16 besteht i. W. darin, dass die Längen τm+1 − τm der Zyklen, die zur Gewinnung einer der i.i.d. Größen beobachtet werden müssen, selbst Zufallsvariablen sind, die u. U. sehr große Werte annehmen können. Im folgenden Beispiel werden regenerative Prozesse und stationäre Größen in einem Bediensystem untersucht.
1. Wir betrachten ein Bediensystem vom Typ G/G/1 (vgl. Abschnitt 15.2), in dem die Zwischenankunftszeiten (Ti )i≥0 und die Bedienzeiten (Bi )i≥0 unabhängige i.i.d. Folgen bilden. Es sei Xt die Anzahl der Kunden im System zur Zeit t. Wenn wir annehmen, dass das System mit der Ankunft des ersten Kunden zur Zeit t = 0 startet, so bildet (Xt )t≥0 einen regenerativen Prozess. Er regeneriert sich jedesmal, wenn ein Kunde bei seiner Ankunft ein leeres System
199
vorfindet. Ein typischer Verlauf von Xt ,t ≥ 0, könnte wie in Abbildung 17.1 aussehen. Zur genaueren Definition sei Sm := ∑m i=1 Ti der Ankunftszeitpunkt des m−ten Kunden und N1 := min{i > 1 | XSi −0 = 0} Nm+1 := min{i > Nm | XSi −0 = 0},
(17.1) m ≥ 1.
(17.2)
Dann ist Nm die Nummer des Kunden, der als m-ter bei seiner Ankunft das System leer findet. Hierbei muss XSi −0 := limh↓0 XSi −h anstelle von XSi benutzt werden, da man üblicherweise annimmt, dass der Prozess (Xt )t≥0 von rechts stetig ist und in XSi , dem Prozesszustand zur Ankunftszeit Si , der gerade ankommende Kunde schon mitgezählt ist. XSi −0 ist dagegen der Zustand unmittelbar bevor der i-te Kunde ankommt, also der Zustand, den der i-te Kunde bei seiner Ankunft „sieht“. Der Regenerationszeitpunkt τm ist dann die Ankunftszeit des Kunden mit den Nummer Nm , also τm := SNm . Zu den Zeiten τ0 := 0, τ1 , τ2 , . . . startet das System also jeweils mit einem neuen Aktivitätszyklus, der dieselbe Verteilung wie die vorangegangenen hat und unabhängig (m) von ihnen ist. Die Abschnitte (Xt )τn ≤t<τn+1 , τn+1 − τn n≥0 bzw. ((X4s )s≥0 , τm+1 − τm )m≥0 sind daher i.i.d. Zyklen. Jeder von ihnen zerfällt in einen „busy cycle“, während dessen der Bediener ununterbrochen aktiv ist und in eine anschliessende „idle time“, in der auf den nächsten Kunden (der dann einen neuen Zyklus startet) gewartet wird. Abbildung 17.2 zeigt dies an einem Beispiel. Xt 4 3 2 1
0
τm
Si
Ri Vi
τm+1
t
Bi
Abbildung 17.2: Ein regenerativer Zyklus eines Bediensystems besteht aus einem „busy cycle“ mit nachfolgender „idle time“.
2. Es bezeichne Vi wieder die Verweilzeit des i-ten Kunden im System, also die Zeit von seiner Ankunft Si bis zu seinem Abgang Ri , vgl. Abbildung 17.2. Vi kann offensichtlich aus dem Verlauf von Xt , der Anzahl von Kunden zur Zeit t, bestimmt werden: Si ist der Zeitpunkt, an dem (Xt )t≥0 den i-ten Sprung nach oben macht, der Abgangszeitpunkt des i-ten Kunden ist entsprechend der Wert t, bei dem (Xt )t≥0 den i-ten Sprung nach unten macht. Von diesem Verlauf (Xt )t≥0 braucht man aber nur den Zyklus zu kennen, in dem der i-te Kunde ankommt: Da das System am Ende des Zyklus leer ist, muss der i-te Kunde in diesem Zyklus
200
17 Regenerative Simulation
auch abgehen. Da die Zyklen i.i.d. sind, bildet auch die Folge (Vi )i≥1 der Verweilzeiten einen regenerativen Prozess (in diskreter Zeit) mit Regenerationszeiten (Nm )m≥1 , d. h. , die Verweilzeiten (VNm ,VNm +1 , . . . ,VNm+1 −1 ) zwischen zwei Leerständen des Systems sind i.i.d. für m = 1, 2, . . . . Ebenso sind die Längen Nm+1 − Nm , m = 1, 2, . . . , der Zyklen i.i.d.. Nm+1 − Nm ist dabei die Anzahl der Kunden, die während des m-ten busy cycle bedient werden. 3. In Abschnitt 15.2 wurde die durchschnittliche Verweilzeit über einen festen Zeithorizont simuliert. Gesucht sei nun die asymptotische durchschnittliche Verweilzeit 1 n ∑ Vi , n→∞ n i=1
ϑ := lim
vorausgesetzt, dieser Ausdruck existiert. Eine einfache Art, ϑ zu schätzen, wäre 1 n ϑ4n := V n := ∑ Vi . n i=1 Ist man an Aussagen über die Genauigkeit von ϑ4n oder an Konfidenzintervallen für ϑ interessiert, so sind die Ansätze aus Kapitel 16 nicht anwendbar, da V1 ,V2 , . . . nicht i.i.d. sind. Dies ist anschaulich sofort einsichtig, da eine große Verweilzeit Vi des i-ten Kunden eher eine große Verweilzeit Vi+1 des dahinter anstehenden (i + 1)-ten Kunden nach sich zieht, genauer gilt: Vi ist stochastisch kleiner als Vi+1 (vgl. dazu Satz 8.11). Nach 2. bilden die (Vi )i≥1 aber einen regenerativen Prozess, daher sind insbesondere die Gesamtverweilzeiten pro Zyklus Nm+1 −1
∑
Vi ,
m = 1, 2, . . .
(17.3)
i=Nm
unabhängig und identisch verteilt. Dies kann, wie im Folgenden erläutert wird, als Ausgangspunkt für einen stark konsistenten Schätzer dienen. Viele Kenngrößen stochastischer Prozesse (Xn )n≥0 , die man durch Simulation ermitteln möchte, haben die Gestalt asymptotischer Durchschnitte limn→∞ n1 ∑n−1 i=0 f (Xi ) für eine Bewertungsoder Gewinnfunktion f , die jedem möglichen Wert x der Zustandsvariablen Xi einen „Gewinn“ f (x) zuordnet. Entsprechende Ausdrücke werden bei Prozessen mit stetiger Zeit untersucht. Bei regenerativen Prozessen lassen sich diese Durchschnittsgrößen als Erwartungswerte über einen Zyklus ausdrücken. Dies eröffnet wegen der i.i.d. -Eigenschaft der Zyklen dann die Möglichkeit einer Schätzung. Der folgende Satz stellt diese Zusammenhänge für einen Prozess in diskreter Zeit dar. Es sei (Xn )n≥0 ein regenerativer Prozess mit Zustandsraum R+ , Regenerationszeitpunkten (τm )m≥0 und einer Gewinnfunktion f : R+ → R. Es sei Mm := τm − τm−1
τm −1
und
Dm :=
∑
i=τm−1
f (Xi )
m = 1, 2, . . .
201
Dabei beschreibt Mm die Zyklendauer und Dm die während eines Zyklus anfallenden Gewinne. Es gelte ferner E τ1 < ∞
τm −1
E
und
∑
| f (Xi )| < ∞
(17.4)
i=τm−1
d. h. die mittlere Zyklendauer und der mittlere, während eines Zyklus auflaufende Gewinn (dem Betrage nach) seien endlich. Dann gelten die folgenden Aussagen a) (Mm )m≥1 und (Dm )m≥1 sind i.i.d. Folgen. b) Der asymptotische Durchschnittsgewinn hat die Form 1 n−1 E D1 ∑ f (Xi ) = E τ1 n→∞ n i=0 lim
(P-f.s.)
Eine entsprechende Aussage gilt für Prozesse (Xt )t≥0 mit stetiger Zeit, für die die Summen durch Integrale ersetzt werden. Der Beweis findet sich z. B. in [HS82]. Der Satz besagt, dass sich die langfristigen durchschnittlichen Gewinne über den Prozessverlauf aus den Erwartungswerten pro Zyklus bestimmen lassen, genauer als Quotient von mittlerem Zyklengewinn und mittlerer Zyklendauer. Ist ϑ := limn→∞ n1 ∑n−1 i=0 f (Xi ) die unbekannte zu schätzende Größe, so gilt also auch ϑ =
E D1 E D1 = . E τ1 E M1
(17.5)
Es kann nun ein auf den unabhängigen Zyklenbeobachtungen D1 , . . . , Dm , M1 , . . . , Mm basierender Schätzer für ϑ gebildet werden, es sei ∑ m Di ϑ5m = ϑ5m (D1 , . . . , Dm , M1 , . . . , Mm ) := mi=1 . ∑i=1 Mi
(17.6)
Da (Mm )m≥0 und (Dm )m≥0 jeweils i.i.d. und integrierbar sind, ist das starke Gesetz der großen Zahlen (vgl. Anhang A.22) anwendbar, d. h. es gilt P-f.s. 1 m ∑ Di = E D1 m→∞ m i=1 lim
1 m ∑ Mi = E M1 . m→∞ m i=1
und
lim
Damit folgt aber lim ϑ5m (D1 , . . . , Dm , M1 , . . . , Mm ) =
m→∞
=
∑m i=1 Di = lim m→∞ ∑m m→∞ i=1 Mi lim
limm→∞ m1 ∑m i=1 Di limm→∞ m1 ∑m i=1 Mi
=
1 m m ∑i=1 Di 1 m m ∑i=1 Mi
E D1 = ϑ, E M1
202
17 Regenerative Simulation
also ist ϑ5m ein stark konsistenter Schätzer für ϑ . Ein gewisser Nachteil dieses Schätzers ϑ5m ist allerdings, dass selbst bei festem m der genaue Simulationsaufwand nicht feststeht, da sich m auf die Anzahl der Zyklen zufälliger Länge bezieht. Da sich der Schätzer aus i.i.d. Größen aufbaut, kann ein Konfidenzintervall konstruiert werden, das asymptotisch das Niveau α einhält, wie im folgenden Satz aus [She93] gezeigt wird.
Unter den Voraussetzungen des Satzes 17.3 gelte zusätzlich V(D1 − ϑ M1 ) < ∞. Für m = 1 m 1, 2, . . . seien Dm := m1 ∑m i=1 Di und M m := m ∑i=1 Mi und wie oben Dm ∑m Di = . ϑ5m := mi=1 Mm ∑i=1 Mi Ferner sei s2 (m) := dann bildet das Intervall
2 1 m Di − ϑ5m Mi ∑ m − 1 i=1
und
s(m) :=
s2 (m),
(17.7)
. / s(m) s(m) 5 5 , ϑm + uα/2 √ ϑm − uα/2 √ m Mm m Mm
ein (asymptotisches) Konfidenzintervall zum Niveau α, d. h. es gilt s(m) s(m) 5 5 ≤ ϑ ≤ ϑm + uα/2 √ = 1 − α, lim P ϑm − uα/2 √ m→∞ m Mm m Mm dabei bezeichne uα/2 wieder das α/2−Fraktil der N(0, 1)−Verteilung. Beweis: 1. Es sei Yk := Dk − ϑ Mk , k ≥ 1. Wir zeigen zunächst die Verteilungskonvergenz (vgl. Anhang A.20) √ m Mm 5 D * (ϑm − ϑ ) −→ N(0, 1). (17.8) V (Y1 ) Es gilt: (Yk )k≥1 ist i.i.d. , da (Dk )k≥1 , (Mk )k≥1 i.i.d. sind. Es gilt ferner mit (17.5) EYk = E Dk − ϑ · E Mk = E D1 −
E D1 E M1 = 0 E M1
und nach Voraussetzung V(Yk ) = V(Y1 ) = V(D1 − ϑ M1 ) < ∞. Der zentrale Grenzwertsatz (Anhang A.23) besagt für die i.i.d. Folge (Yk )k≥1 , dass 1 m Yi − EYi √ ∑* m i=1 V (Yi )
203
in Verteilung gegen N(0, 1) konvergiert. Mit EYi = 0 folgt aber m m 1 m Yi − EYi 1 ∑m i=1 Yi √ ∑* = * = * ∑ Di − ϑ ∑ Mi m i=1 V(Yi ) m V(Y1 ) m V(Y1 ) i=1 i=1 m √ m m Mm 5 ∑i=1 Di ∑ Mi (ϑm − ϑ ) −ϑ = * = * i=1 m M mV (Y1 ) ∑i=1 i V (Y1 ) Damit ist (17.8) bewiesen. 2. Als nächstes Zwischenresultat zeigen wir, dass der Schätzer s2 (m) stark konsistent ist für V(Y1 ), d. h. limm→∞ s2 (m) = V(Y1 ) (P - f.s.). Zunächst folgt durch einfaches Ausmultiplizieren mit ϑ5m = Dm /M m 2 2 Dm 1 m 1 m 5 s (m) := ∑ Di − ϑm Mi = m − 1 ∑ Di − Mm Mi m − 1 i=1 i=1 6 7 2 m m m Dm Dm 1 2 2 = ∑ Di − 2 · Mm ∑ Di Mi + Mm ∑ Mi m − 1 i=1 i=1 i=1 2
(17.9)
= s211 (m) − 2 ϑ5m s212 (m) + ϑ5m2 s222 (m) für die Stichprobenstreuungen s211 (m) := s222 (m) := s212 (m) :=
1 m 1 (Di − Dm )2 = ∑ m − 1 i=1 m−1
1 m 1 ∑ (Mi − Mm )2 = m − 1 m − 1 i=1
m
∑
2 D2i − mDm
,
i=1
m
∑
2 Mi2 − mM m
und
i=1
m 1 m 1 ( (D − D )(M − M ) = i m i m ∑ ∑ Di Mi − mDm Mm ). m − 1 i=1 m − 1 i=1
Aus dem starken Gesetz der großen Zahlen folgt, jeweils P-f.s. lim ϑ5n = ϑ ,
n→∞
lim s2 (n) = V(M1 ) n→∞ 22
und
lim s2 (n) = V(D1 ), n→∞ 11 lim s2 (n) = Kov(D1 , M1 ). n→∞ 12
(17.10) (17.11)
Mit V(Y1 ) = V(D1 + (−ϑ )M1 ) = V(D1 ) + ϑ 2 V(M1 ) − 2 ϑ Kov(D1 , M1 ) folgt aus (17.9) - (17.11) die Behauptung limm→∞ s2 (m) = V(Y1 ) (P -f.s.). 3. Es sei Zm
√ m Mm 5 (ϑm − ϑ ) := * V (Ym )
8 und
Um :=
V (Y1 ) , s2 (m)
(17.12)
204
17 Regenerative Simulation D
dann folgt aus 1. die Konvergenz Zm −→ Z für eine N(0, 1)−verteilte Zufallsvariable Z und nach 2. gilt limm→∞ Um = 1 (P -f.s.). Mit Anhang A.21 folgt aber auch für das Produkt die D
Verteilungskonvergenz ZmUm −→ Z · 1, d. h. ZmUm
8 √ √ M m (ϑ5m − ϑ ) m Mm 5 V (Y1 ) = (ϑm − ϑ ) · = * m s2 (m) s(m) V (Y1 )
konvergiert in Verteilung gegen N(0, 1). Damit erhält man s(m) s(m) 5 5 ≤ ϑ ≤ ϑm + uα/2 √ lim P ϑm − uα/2 √ m→∞ m Mm m Mm √ ϑ − ϑ5m ≤ +uα/2 = lim P −uα/2 ≤ m M m m→∞ s(m) = P(−uα/2 ≤ Z ≤ uα/2 ) = 1 − α.
Zur praktischen Bestimmung des Schätzers s(m) ist die in (17.9) benutzte Darstellung oft günstiger: s2 (m)
= =
2 1 m Di − ϑ5m Mi ∑ m − 1 i=1 7 6 m 2 m m m m D D 1 ∑ ∑ i i ∑ D2i − 2 · ∑mi=1 Mi ∑ Di Mi + ∑mi=1 Mi ∑ Mi2 , m − 1 i=1 i=1 i=1 i=1 i=1
hier wird für die Berechnung von s(m) nur ein Durchgang durch die Zyklenergebnisse D1 , . . . , Dm , M1 , . . . , Mm benötigt, eine Zwischenspeicherung der Ergebnisse ist nicht erforderlich.
Wir betrachten wieder ein G/G/1-Bediensystem wie in Beispiel 17.2. Wir setzen voraus, dass die mittlere Bedienzeit E B1 kleiner ist als die mittlere Zwischenankunftszeit E T1 , dann ist das Bediensystem stabil und die Existenz des Grenzwerts ϑ := limn→∞ n1 ∑ni=1 Vi ist gesichert. In Beispiel 17.2 wurde gezeigt, dass die Verweilzeiten (Vi )i≥1 der Kunden einen regenerativen Prozess bilden mit den Regenerationszeitpunkten (Nm )m≥1 aus (17.1). Zur Schätzung der durchschnittlichen Verweilzeit ϑ kann daher regenerative Simulation benutzt werden. Es sei Nm −1
Dm :=
∑
i=Nm−1
Vi ,
und
Mm := Nm − Nm−1 ,
m ≥ 1,
205
dabei wird N0 := 0 gesetzt. Um die Voraussetzungen der Sätze 17.3 und 17.4 zu erfüllen, müssen die Verteilungen von Zwischenankunftszeiten und Bedienzeiten so geartet sein, dass E M12 < ∞
und
ED21 < ∞.
Hier ist M1 die Anzahl Kunden und D1 die Dauer des ersten busy cycle. Es folgt dann, dass E M1 < ∞ und E D1 < ∞ wie in Satz 17.3 verlangt und ferner V(M1 ) < ∞, V(D1 ) < ∞ sowie Kov(M1 , D1 ) < ∞. Mit (17.12) folgt daraus, dass V(D1 − ϑ M1 ) < ∞ wie in Satz 17.4 vorausgesetzt. Es werden m Zyklen simuliert, dabei werden die Beobachtungen D1 , . . . , Dm , M1 , . . . , Mm gemacht, aus denen ϑ durch N −1 ∑ m Vi ∑m Di = i=0 (17.13) ϑ5m = mi=1 Nm ∑i=1 Mi geschätzt wird. Für das Konfidenzintervall wird gleichzeitig s2 (m) wie in Bemerkung 17.5 bestimmt. Für großes m weicht der wahre Wert von ϑ dann mit Wahrscheinlichkeit ≥ 1 − α vom Schätzwert ϑ5m ab. höchstens um uα/2 √s(m) mM m
Wie bei den unabhängigen Beobachtungen kann man auch hier die Anzahl der simulierten Zyklen von der gewünschten Genauigkeit abhängig machen. Wird z. B. eine Genauigkeit von 0.05 ϑ5m gewünscht, d. h. soll der wahre Wert mit Wahrscheinlichkeit 1 − α um nicht mehr als 5% vom Schätzwert ϑ5m abweichen, so kann m als die kleinste Zahl gewählt werden, für die gilt s(m) ≤ 0.05 ϑ5m . uα/2 √ m Mm Dabei gelten die oben gemachten Einschränkungen in Bezug auf das nur asymptotisch geltende Niveau α. Man kann dabei folgende, vereinfachende Näherung benutzen 8 8 2 2 m m ∑mj=1 D j ∑mj=1 D j ∑ Di − ∑m M j Mi ∑ Di − ∑m M j Mi √ j=1 j=1 i=1 i=1 s(m) m uα/2 √ = uα/2 √ ≈ uα/2 Nm Nm m Mm m−1 Dieses Verfahren wird unten im Kapitel 19 auf ein konkretes Bediensystem angewendet.
18 Varianzreduktion In den letzten beiden Kapiteln haben wir die Genauigkeit von Schätzungen durch die Länge von Konfidenzintervallen beschrieben. Dabei spielten die Varianz der Beobachtungswerte bzw. ihre Schätzer σˆ n2 und s2 (m) eine große Rolle. Wir wenden uns jetzt Methoden zu, mit denen diese Varianz oder zumindest die Varianz des resultierenden Schätzers ϑˆn reduziert werden kann. Zur Erinnerung: bei einem Schätzern ϑˆn , der erwartungstreu für ϑ ist, beschreibt die Varianz 2 2 V ϑˆn = E ϑˆn − E ϑˆn = E ϑˆn − ϑ gerade die mittlere quadratische Abweichung des Schätzwertes ϑˆn vom wahren Wert ϑ , die Varianz ist also ein Maß für die Zuverlässigkeit des Schätzers. Die Schätzer haben in diesem Kapitel meist die Gestalt 1 n (18.1) ϑˆn (X1 , . . . , Xn ) = ∑ h(Xi ) n i=1 für eine geeignete Funktion h. Wegen X1 , . . . , Xn i.i.d. gilt dann 1 V ϑˆn (X1 , . . . , Xn ) = V(h(X1 )), (18.2) n so dass eine Erhöhung des Stichprobenumfangs n also stets die Varianz senkt. Auch bei den Konfidenzintervallen erhöhte sich die Genauigkeit mit wachsendem n. Im Unterschied dazu geht es jetzt um Verfahren, mit denen die Varianz eines Schätzers verringert werden kann, ohne dass der Stichprobenumfang wächst oder bei denen, wenn zusätzliche Stichproben erforderlich sind, die Reduktion der Varianz stärker ausfällt als in (18.2) vorgegeben. Gleichzeitig wird dabei die Eigenschaft der Erwartungstreue, also E ϑˆn = ϑ , aufrechterhalten.
18.1 Monte-Carlo-Integration Wir greifen zunächst die Monte-Carlo-Integration aus Beispiel 15.3 wieder auf und stellen jetzt einen besseren Schätzer mit einer i. A. geringeren Varianz vor. Es sei f : R → R+ eine integrierbare Funktion, ϑ := g : R → R+ sei eine Dichte, für die gilt
, +∞ −∞
f (t) dt sei der zu schätzende Wert.
g(t) > 0 für alle t ∈ R, für die f (t) > 0.
(18.3)
Y1 ,Y2 , . . . seien i.i.d. Zufallsvariablen mit Dichte g und 1 n f (Yi ) (2) . ϑˆn (Y1 , . . . ,Yn ) := ∑ n i=1 g(Yi ) (2) Dann ist ϑˆn erwartungstreu und stark konsistent für ϑ .
(18.4)
208
18 Varianzreduktion
Gibt es einen Zufallsgenerator für die Hilfsdichte g, der die Zufallszahlen y1 , . . . , yn produziert, , +∞ f (yi ) so stellt 1n ∑ni=1 g(y also einen guten Schätzer für ϑ = −∞ f (t) dt dar. Diese, auf den ersten Blick ) i nicht sehr einleuchtende Art der Schätzung heißt auch die Mittelwertsmethode. Beweis: Es sei
f (Yi ) , g(Yi ) dann sind Z1 , Z2 , . . . i.i.d. und aus (18.3) folgt
i = 1, 2, . . . ,
Zi :=
E Z1 = E =
+
f (Y1 ) = g(Y1 )
g=0
+ +∞ f (t) −∞
f (t) dt =
g(t)
+ +∞ −∞
g(t) dt =
+ g=0
f (t) g(t) dt g(t)
(18.5)
f (t) dt = ϑ .
(2)
Die Erwartungstreue von ϑˆn folgt jetzt sofort aus (18.5): (2)
E ϑˆn (Y1 , . . . ,Yn ) = E
1 n f (Y1 ) 1 n f (Yi ) f (Yi ) = ∑E = E = ϑ. ∑ n i=1 g(Yi ) n i=1 g(Yi ) g(Y1 )
Mit dem Starken Gesetz der großen Zahlen (Anhang A.22) folgt aus (18.5), dass P-f.s. 1 n (2) lim ϑˆn (Y1 , . . . ,Yn ) = lim ∑ Zi = E Z1 = ϑ . n→∞ n→∞ n i=1 Also ist der Schätzer auch stark konsistent. Der folgende Satz vergleicht die beiden Monte-Carlo-Integrationsmethoden: die Mittelwertsmethode aus Satz 18.1 und die Hit-or-miss-Methode aus Beispiel 15.3. Dafür betrachten wir die etwas speziellere Problemstellung der Hit-or-miss-Methode, die ja nur für beschränkte f über endlichen Intervallen [a, b] einsetzbar ist. Es sei daher jetzt f : [a, b] → R+ mit 0 ≤ f (t) ≤ D für , t ∈ [a, b] und f (t) = 0 für t ∈ / [a, b]. Zu schätzen sei ϑ := ab f (t)dt. In Beispiel 15.3 wurde der Schätzer D(b − a) n (1) ϑˆn (X1 , ..., Xn ) := ∑ 1A (Xi ) n i=1 hergeleitet, dabei sei A := {(x, y) | a ≤ x ≤ b, 0 ≤ y ≤ f (x)} die Fläche unter der Kurve wie in Abb. 15.3 auf Seite 179 und X1 , X2 , . . . seien i.i.d. gleichverteilt auf [a, b] × [0, D]. (1) a) Der Schätzer ϑˆn nach der Hit-or-miss-Methode ist erwartungstreu und stark konsistent für ϑ . 1 b) Es sei g(t) := b−a 1[a,b] (t) die Dichte der Gleichverteilung U(a, b). Dann gilt für den (2) ˆ Schätzer ϑn nach der Mittelwertsmethode aus (18.4)
b−a n (2) ϑˆn (Y1 , . . . ,Yn ) = ∑ f (Yi ) n i=1 mit Y1 ,Y2 , . . . i.i.d. U(a, b)-verteilt.
18.1 Monte-Carlo-Integration
209
c) Es gilt (2)
(1)
V(ϑˆn ) ≤ V(ϑˆn ), d. h. die Mittelwertsmethode liefert stets einen eher geringeren mittleren quadratischen Fehler.
(1) Beweis: a) Die starke Konsistenz von ϑˆn folgt sofort aus dem starken Gesetzt der großen Zahlen. Die Erwartungstreue folgt aus ähnlich wie in Bsp. 15.3
E
D(b − a) n D(b − a) n 1A (Xi ) = ∑ ∑ E 1A (Xi ) = D(b − a)P(X1 ∈ A) = ϑ . n n i=1 i=1 (2)
b) ergibt sich sofort aus der Definition von ϑˆn in (18.4). (2)
c) Für PYi = U(a, b) folgt für die Varianz von ϑˆn nach den Rechenregeln aus Anhang A.7: V(ϑˆn
(2)
) = V = = ≤ =
b−a 2 b−a n n V( f (Y1 )) ∑ f (Yi ) = n n i=1
(b − a)2 E f (Y1 )2 − (E f (Y1 ))2 n + + b 2 b 1 1 (b − a)2 dt − dt f (t)2 f (t) n b−a b−a a a + 2 + b b b−a 1 D f (t) dt − f (t) dt n b−a a a b−a ϑ2 Dϑ − n b−a
Für eine b(1, p)−verteilte Zufallsvariable X gilt V(X) = p(1 − p), daher folgt mit p := P(1A (X1 ) = 1) = ϑ /(D(b − a)) für die Varianz des Hit-or-miss-Schätzers D2 (b − a)2 D(b − a) n (1) ˆ 1A (Xi ) = (18.6) V(1A (X1 )) V(ϑn ) = V ∑ n n i=1 ϑ D2 (b − a)2 ϑ 1 (2) D(b − a)ϑ − ϑ 2 ≥ V(ϑˆn ). = 1− = n D(b − a) D(b − a) n
Stellt man die beiden Schätzer direkt gegenüber, so sieht man, dass die Mittelwertsmethode mehr Information aus dem Experiment aufnimmt. Für Paare von Zufallszahlen xi = (ui , vi ) aus [a, b] × [0, D] gilt in der Situation von oben
210
18 Varianzreduktion
(1) ϑˆn (x1 , . . . , xn ) =
= (2) ϑˆn (u1 , . . . , un ) =
D(b − a) n D(b − a) n 1A (xi ) = ∑ ∑ 1[a,b] (ui )1[0, f (ui )] (vi ) n n i=1 i=1 b−a n ∑ D1[0, f (ui )] (vi ) n i=1
und
b−a n ∑ f (ui ) = (b − a) · f¯ n i=1
(2) Die Fläche ϑ = λ 2 (A) wird bei ϑˆn durch ein Rechteck auf [a, b] mit Höhe f¯ = „mittlerer beobachteter Funktionswert“ abgeschätzt. Dies nutzt die Information f (ui ), i = 1, . . . , n direkt, während bei der Hit-or-miss-Methode diese Information nur indirekt genutzt wird.
1 0.9
f
0.8 0.7 0.6 0.5 0.4 0.3 0.2
g
0.1 0 −3
−2
−1
0
1
2
3
Abbildung 18.1: Die fette Kurve zeigt die Beispielfunktion f , die dünne Linie die Hilfsdichte g.
Zur Demonstration der Monte-Carlo-Integration benutzen wir die Beispielfunktion f (t) := , 3 −t 4 4 e dt = 1.8128 können wir e−t 1[−3,3] , wie in Abbildung 18.1. Den wahren Wert ϑ = −3 zu Kontrollzwecken durch numerische Integration gewinnen. f erfüllt die Voraussetzungen für die Hit-or-miss-Methode mit D := 1 und [a, b] = [−3, 3] und wurde bereits in Beispiel 16.6 oben untersucht. (1) Abbildung 18.2 zeigt links die Schätzwerte ϑˆn der Hit-or-miss-Methode für n = 10, . . . , 200. Für jedes n sind 10 unabhängige Versuche gemacht worden. Der wahre Wert ϑ = 1.8128 wird (2) durch die dünne Linie angedeutet. In der rechten Graphik sind die entsprechenden Werte ϑˆn für die Mittelwertsmethode aufgetragen, wobei als Hilfsdichte g(t) := ϕ(t), also die Dichte der Standardnormalverteilung, gewählt wurde (vgl. Abb. 18.1). Man sieht deutlich, dass die Mittelwertsmethode bessere Ergebnisse liefert, die weniger stark streuen. Da wir hier den wahren Wert ϑ numerisch bestimmen können, lässt sich die Varianz der beiden Schätzer berechnen. Aus (18.6) gewinnen wir 1 7.59 1 (1) . = (D(b − a)ϑ − ϑ 2 ) = (1 · 6 · ϑ − ϑ 2 ) = V ϑˆn n n n
18.2 Antithetische Variable
211
4
4
(1) ϑˆn
(2) ϑˆn 3
3
2
ϑ
2
ϑ
1
1
0
0 50
100
150
200
50
n
100
150
200
n
Abbildung 18.2: Schätzwerte für ϑ für unterschiedlichen Stichprobenumfang n, jeweils mit 10 Wiederholungen, links die Hit-or-miss-Methode, rechts die Mittelwertsmethode.
Ähnlich wie im Beweis zu Satz 18.2 folgt für die Mittelwertsmethode 1 f (Y ) f (Y1 ) f (Y1 ) 2 1 (2) 1 ˆ = V −E V ϑn = E n ϕ(Y1 ) n ϕ(Y1 ) ϕ(Y1 ) + +∞ 2 f (y) 1 1 f 2 (Y1 ) −ϑ2 = dy − ϑ 2 = E 2 n ϕ (Y1 ) n −∞ ϕ(y) 1.06 . = n Die Varianz bei der Hit-or-miss-Methode ist also mehr als siebenmal so groß wie bei der Mittelwertsmethode. Die Mittelwertsmethode schneidet bei diesem Beispiel besonders gut ab, da die Hilfsdichte g gut zur Testfunktion f passt: Zufallszahlen yi werden verstärkt in der Region erzeugt, die zur Bestimmung von ϑ wichtig ist (vgl. Abb. 18.1). In den folgenden Abschnitten wollen wir einige allgemeine Methoden zur Verringerung der Varianz vorstellen, die nicht speziell auf die Monte-Carlo-Integration zugeschnitten sind, sondern allgemeiner eingesetzt werden können.
18.2 Antithetische Variable Die Kovarianz Kov(Y1 ,Y2 ) zweier quadratisch integrierbaren Zufallsvariablen ist definiert als Kov(Y1 ,Y2 ) = EY1Y2 − EY1 EY2 und ist ein Maß für die (lineare) Abhängigkeit zwischen Y1 und Y2 , vgl. Anhang A.18.
212
18 Varianzreduktion
Es seien Y1 ,Y2 integrierbare, identisch verteilte Zufallsvariablen. Dann gilt 1 a) E (Y1 +Y2 ) = EY1 2 1 1 V(Y1 ) + Kov(Y1 ,Y2 ) b) V (Y1 +Y2 ) = 2 2
Die einfachen Beweise bleiben dem Leser überlassen. (1) (2) Der Nutzen von Satz 18.4 für die Simulation ergibt sich folgendermaßen: Sind ϑˆn , ϑˆn zwei erwartungstreue Schätzer für ϑ , die identisch verteilt und negativ korreliert sind, d. h. für die 1 ˆ (1) ˆ (2) (1) (2) erwartungstreu mit geringerer Varianz als Kov(ϑˆn , ϑˆn ) < 0 gilt, so ist ϑˆˆn := ϑn + ϑn 2 (i) ϑˆn , i = 1, 2, denn es gilt mit Satz 18.4 1 (1) (2) (1) E ϑˆˆn = E ϑˆn + ϑˆn = E ϑˆn = ϑ und 2 1 1 (1) (1) (1) (2) V ϑˆˆn = < V ϑˆn . V ϑˆn + Kov ϑˆn , ϑˆn 2 2 (1) (2) Durch Verdopplung des Aufwands (Bestimmung von ϑˆn und ϑˆn ) erhält man so einen (1) ˆ Schätzer ϑˆn , dessen Varianz kleiner als 1/2V(ϑˆn ) ist. Hätte man nur den Stichprobenumfang bei einem der Schätzer verdoppelt, so hätte man V(ϑˆ2n ) = 1/2V(ϑˆn ) (bei einem Schätzer wie in (18.1)). (1) Der folgende Satz zeigt, wie man zu ϑˆn eine identisch verteilte, aber negativ oder zumindest nicht-positiv korrelierte Größe (eine sogenannte antithetische Zufallsvariable) gewinnen kann:
a) Es sei U eine U(0, 1)−verteilte Zufallsvariable. Dann hat auch 1 − U die Verteilung U(0, 1) und es gilt 1 Kov(U, 1 −U) = − , 12 d. h. U, 1 −U sind antithetische Zufallsvariablen. b) X sei eine Zufallsvariable mit Verteilungsfunktion F und U eine U(0, 1)-verteilte Zufallsvariable. Dann sind Y := F −1 (U) und Z := F −1 (1 −U) antithetische Variable mit derselben Verteilung, d. h. X,Y und Z sind identisch verteilt und Kov(Y, Z) ≤ 0. c) U1 , . . . ,Uk seien i.i.d. Zufallsvariablen mit Verteilung U(0, 1). Es sei h : [0, 1]k → R eine Funktion, die in jeder Komponente monoton wachsend oder fallend ist, dann gilt Kov h(U1 , . . . ,Uk ), h(1 −U1 , . . . , 1 −Uk ) ≤ 0
18.2 Antithetische Variable
213
(falls die Kovarianz existiert, d. h. falls h(U1 , . . . ,Uk ) quadratisch integrierbar ist). Insbesondere sind also h(U1 , . . . ,Uk ) und h(1 −U1 , . . . , 1 −Uk ) antithetische Zufallsvariablen. Beweis: a) Es gilt P(1 −U ≤ t) = ,P(U ≥ 1 − t) = 1 − (1 − t) = t = P(U ≤ t), also PU = P1−U . Ferner gilt EU = 1/2 und EU 2 = 01 u2 du = 1/3. Daraus folgt sofort Kov(U, 1 −U) = E (U(1 −U)) − EU · E (1 −U) = EU − EU 2 − EU(1 − EU) 2 1 1 1 = (EU)2 − EU 2 = − =− 2 3 12 b) Nach dem Inversionsprinzip (Satz 8.3) haben Y und Z dieselbe Verteilung wie X. Nach Satz 8.2 ist F −1 monoton wachsend, mit h(t) := F −1 (t) folgt aus Teil c): Kov(Y, Z) = Kov(F −1 (U), F −1 (1 −U)) ≤ 0. c) (vgl. [Ros02]) Ohne Einschränkung nehmen wir an, dass für ein m ≤ k die Funktion h(u1 , . . . , uk ) wachsend in u1 , . . . , um und fallend in um+1 , . . . , uk ist. Dann sind f (u1 , . . . , uk ) := h(u1 , . . . , um , 1 − um+1 , . . . , 1 − uk )
und
g(u1 , . . . , uk ) := −h(1 − u1 , . . . , 1 − um , um+1 , . . . , uk ) wachsend in allen Komponenten. Wegen U1 , . . . ,Uk i.i.d. und weil Ui und 1 −Ui dieselbe Verteilung haben, haben auch und (U1 , , . . . ,Uk ), (1 −U1 , . . . , 1 −Uk ) (U1 , . . . ,Um , 1 −Um+1 , . . . , 1 −Uk ), (1 −U1 , . . . , 1 −Um ,Um+1 , . . . ,Uk ) dieselbe Verteilung. Wenn wir auf diese Tupel der Länge k die Funktion h anwenden, so stimmen wieder die Verteilungen und damit auch ihre Kovarianzen überein, d. h. es gilt Kov(h(U1 , . . . ,Uk ), h(1 −U1 , . . . , 1 −Uk )) = Kov(h(U1 , . . . ,Um , 1 −Um+1 , . . . , 1 −Uk ), h(1 −U1 , . . . , 1 −Um ,Um+1 , . . . ,Uk )) = Kov( f (U1 , . . . ,Uk ), −g(U1 , . . . ,Uk )) = −Kov( f (U1 , . . . ,Uk ), g(U1 , . . . ,Uk )) ≤ 0, dabei folgt die letzte Abschätzung aus Satz 18.6 unten.
214
18 Varianzreduktion
Es seien X1 , . . . , Xk unabhängige Zufallsvariablen, f , g : Rk → R monoton wachsend in allen Komponenten. Dann gilt für X := (X1 , . . . , Xk ) : E f (X)g(X) ≥ E f (X) · E g(X)
Kov( f (X), g(X)) ≥ 0
bzw.
(vorausgesetzt die Kovarianz existiert).
Beweis: Der Beweis wird mit vollständiger Induktion über k geführt. 1. Es sei k = 1. Für beliebige Werte x, y ∈ R haben f (x) − f (y) und g(x) − g(y) dasselbe Vorzeichen. Sind X1 ,Y1 i.i.d. , so folgt also 0 ≤ ( f (X1 ) − f (Y1 ))(g(X1 ) − g(Y1 )) und daraus 0 ≤ E ([ f (X1 ) − f (Y1 )][g(X1 ) − g(Y1 )]) = E f (X1 )g(X1 ) − E f (X1 )g(Y1 ) − E f (Y1 )g(X1 ) + E f (Y1 )g(Y1 ) = 2E f (X1 )g(X1 ) − E f (X1 )E g(Y1 ) − E f (Y1 )E g(X1 ) = 2 E f (X1 )g(X1 ) − E f (X1 )E g(X1 ) = 2 Kov( f (X1 ), g(X1 )). 2. Die Behauptung gelte für alle f , g : Rm → R mit m ≤ k. Wir zeigen, dass sie dann auch für alle f , g : Rk+1 → R gilt. Zunächst folgt wegen der Unabhängigkeit der X1 , . . . , Xk+1 : E f (X1 , . . . , Xk+1 )g(X1 , . . . , Xk+1 ) = = ≥ ≥
+ + + +
E [ f (X1 , . . . , Xk+1 )g(X1 , . . . , Xk+1 ) | Xk+1 = x] PXk+1 (dx) E ( f (X1 , . . . , Xk , x)g(X1 , . . . , Xk , x)) PXk+1 (dx) E f (X1 , . . . , Xk , x)E g(X1 , . . . , Xk , x) PXk+1 (dx) E f (X1 , . . . , Xk , x) PXk+1 (dx) ·
+
E g(X1 , . . . , Xk , x) PXk+1 (dx)
= E f (X1 , . . . , Xk+1 ) · E g(X1 , . . . , Xk+1 ). Dabei wurde die Induktionsvoraussetzung zunächst für g(t ¯ 1 , . . . ,tk ) := g(t1 , . . . ,tk , x) (für festes x ) und dann für fˆ(x) := E f (X1 , . . . , Xk , x),
f¯(t1 , . . . ,tk ) := f (t1 , . . . ,tk , x),
g(x) ˆ := E g(X1 , . . . , Xk , x)
ausgenutzt.
Satz 18.5 c) lässt sich folgendermaßen verallgemeinern: Es seien X1 , . . . , Xk i.i.d. reellwertige Zufallsvariablen mit PX1 = PC−X1 für eine Konstante C. Dies gilt z. B. dann, wenn Xi eine
18.2 Antithetische Variable
215
zu C/2 symmetrische Dichte hat. Ist dann h : Rk → R wieder eine Funktion, die in jeder Komponente monoton wachsend oder fallend ist, so gilt Kov(h(X1 , . . . , Xk ), h(C − X1 , . . . ,C − Xk )) ≤ 0. Der Beweis von Satz 18.5 c) kann direkt übernommen werden. Satz 18.5 erlaubt es, die Varianz von Schätzern für ϑ zu verringern, falls ϑ die Gestalt ϑ = E h(U1 , . . . ,Uk ) hat, wobei h : Rk → R in jeder ihrer Komponenten monoton wachsend oder fallend ist und U1 , . . . ,Uk i.i.d. U(0, 1)−verteilt sind. Da hier ein Erwartungswert zu schätzen ist, kann zunächst der Standardschätzer 1 n (i) (i) ϑˆn (u(1) , . . . , u(n) ) := ∑ h(u1 , . . . , uk ) n i=1 (i)
(i)
benutzt werden, wobei u(i) := (u1 , . . . , uk ), i = 1, . . . , n, wiederholte Beobachtungen (Simulationen) der U1 , . . . ,Uk darstellen. Ein erwartungstreuer Schätzer mit eher geringerer Varianz ist dann 1 n 1 (i) (i) (i) (i) (18.7) ϑˆˆn (u(1) , . . . , u(n) ) := ∑ h(u1 , . . . , uk ) + h(1 − u1 , . . . , 1 − uk ) , n i=1 2 (i)
(i)
(i)
(i)
dabei werden dieselben Zufallszahlen in u1 , . . . , uk und 1 − u1 , . . . , 1 − uk verwendet. Mit der Abkürzung
(i) (i) 1 − u(i) := (1 − u1 , . . . , 1 − uk )
gilt ja
1 ˆ (1) ϑˆˆn (u(1) , . . . , u(n) ) = ϑn (u , . . . , u(n) ) + ϑˆn (1 − u(1) , . . . , 1 − u(n) ) , 2 nach Satz 18.4 ist ϑˆˆn daher erwartungstreu für ϑ und hat nach Satz 18.5 die Varianz n 1 1 (i) (i) (i) (i) ˆ (1) (n) V ϑˆn (U , . . . ,U ) = V ∑ 2 [h(U1 , . . . ,Uk ) + h(1 −U1 , . . . , 1 −Uk )] n i=1 1 1 n (i) (i) (i) (i) = 2 ∑V h(U1 , . . . ,Uk ) + h(1 −U1 , . . . , 1 −Uk ) n i=1 2 11 (1) (1) (1) (1) (1) (1) = V h(U1 , . . . ,Uk ) + Kov h(U1 . . . ,Uk ), h(1 −U1 , . . . , 1 −Uk ) n2 1 1 (1) (1) (1) (1) = V(ϑˆn (U (1) , . . . ,U (n) )) + Kov h(U1 . . . ,Uk ), h(1 −U1 , . . . , 1 −Uk ) 2 2n 1 ≤ V(ϑˆn (U (1) , . . . ,U (n) )), 2 wobei im vorletzten Schritt ausgenutzt wurde, dass 1 (1) (1) V ϑˆn (U (1) , . . . ,U (n) ) = V(h(U1 , . . . ,Uk )). n
216
18 Varianzreduktion
ϑˆˆn hat also eine Varianz, die stets kleiner gleich ist als die Hälfte der Varianz von ϑˆn bei nicht ganz verdoppeltem Aufwand. Es werden zwar 2n Auswertungen von h vorgenommen, der Zufallsgenerator muss aber nur n mal aufgerufen werden, da in ui und 1−ui dieselben Zufallszahlen benutzt werden.
a) In Beispiel 15.2 wurde die Zuverlässigkeit eines Netzes mit Hilfe der Funktion Φ beschrieben. Man ist hier an der Schätzung von ϑ := E Φ(Y1 , . . . ,Yk ) interessiert, wobei die Y1 , . . . ,Yk unabhängige, Bernoulli-verteilte Zufallsvariablen mit P(Yi = 1) = pi sind. Meist wird dabei die Funktion Φ(y1 , . . . , yk ) monoton wachsend in allen Komponenten sein, d. h. Instandsetzung einzelner Kanten (Änderung eines y j von ‘0’ auf ‘1’) wird mögliche Verbindungen nicht unterbrechen, sondern eher herstellen.. Wird die Inversionsmethode wie in Beispiel 8.6 a) zur Simulation der Yi benutzt, so gilt wegen Fj−1 (r) = 1[0,p j ] (r), j = 1, . . . , k, ϑ = E Φ(Y1 , . . . ,Yk ) = E Φ 1[0,p1 ] (U1 ), . . . , 1[0,pk ] (Uk ) . Der Standardschätzer für ϑ aus (15.2) kann daher auch ersetzt werden durch 1 n 1 n (i) (i) ϑˆn (u(1) , . . . , u(n) ) = ∑ h(u(i) ) := ∑ Φ 1[0,p1 ] (u1 ), . . . , 1[0,pk ] (uk ) n i=1 n i=1
(18.8)
mit h(u1 , . . . , uk ) := Φ(1[0,p1 ] (u1 ), . . . , 1[0,pk ] (uk )) und gleichverteilten Zufallszahlen u(i) = (i)
(i)
(u1 , . . . , uk ), i = 1, . . . , n. Ersetzt man schließlich h in (18.8) durch 1 (i) (i) (i) (i) h(u1 , . . . , uk ) + h(1 − u1 , . . . , 1 − uk ) , 2 so erhält man einen erwartungstreuen Schätzer mit eher geringerer Varianz. b) Wir betrachten eine eindimensionale Version des Verdrahtungsproblems aus Beispiel 15.4. Es seien dazu U,V unabhängig gewählte Punkte in [0, 1] mit PU = U(0, 12 ) und PV = U( 12 , 1). Dann entspricht X := V −U dem Abstand der zwei Punkte wie in Abbildung 18.3 a). Es sei ϑ := E X der mittlere Abstand. Dieser Wert kann natürlich leicht analytisch bestimmt werden, es gilt 3 1 1 ϑ = E (V −U) = EV − EU = − = . 4 4 2 0
1/2 U
1 V
X
Abbildung 18.3: X ist der Abstand zweier zufällig gewählter Punkte in [0, 1/2] bzw. [1/2, 1].
18.2 Antithetische Variable
217
Um die Wirksamkeit antithetischer Variablen zu demonstrieren, schätzen wir ϑ durch eine Simulation. Wir erzeugen dazu Zufallszahlen u1 , . . . , un und v1 , . . . , vn , die die Verteilung von U und V simulieren, setzen xi := vi − ui und 1 n 1 n ϑˆn := ∑ xi = ∑ (vi − ui ). n i=1 n i=1
(18.9)
Als Programmcode erhält man:
Abbildung 18.3 legt den Verdacht nahe, dass X und 1 − X antithetische Variablen sein könnten. Abb. 18.4 veranschaulicht die Lage von X und 1 − X zueinander, wenn man die Endpunkte des Intervall [0, 1] miteinander identifiziert. 1 0 V
1−X
U
X 1/2 Abbildung 18.4: X und der antithetische Abstand 1 − X.
Aus Beispiel 15.4 erhält man für X := V −U und t ∈ [0, 1] : 4t für t < 12 2t 2 für t < 12 (t) = und f . P(X ≤ t) = X −2t 2 + 4t − 1 für 12 ≤ t 4(1 − t) für 12 ≤ t Die Dichte fX ist symmetrisch zu 1/2, also gilt P(1 − X ≤ t) = P(X ≤ t). Für die Kovarianz ergibt sich Kov(X, 1 − X) = E (X(1 − X)) − E XE (1 − X) = E X − E X 2 − E X + (E X)2 = (E X)2 − E X 2 + 1 2 + 1 = −V(X) = t fX (t) dt − t 2 fX (t) dt 0
1 = − . 24
0
218
18 Varianzreduktion
Also sind X, 1 − X antithetische Variable. Bildet man zu dem Schätzer aus (18.9) den verbesserten Schätzer unter Einbeziehung der antithetischen Variablen wie in (18.7), so erhält man 1 n 1 1 n 1 1 ϑˆˆn (x1 , . . . , xn ) = ∑ [xi + (1 − xi )] = ∑ = . n i=1 2 n i=1 2 2 Dieser Schätzer hängt nicht mehr von der Stichprobe ab, die Varianz ist auf 0 gesunken, bereits eine Beobachtung reicht, um den exakten Wert von ϑ = 1/2 zu bestimmen! c) Leider lassen sich die Aussagen von Satz 18.5 nicht auf den häufig auftretenden Fall verallgemeinern, in dem h(u1 , . . . , un ) nur in einigen Komponenten monoton ist. Sei etwa h(u1 , u2 ) in u1 wachsend, so gilt nicht notwendig Kov(h(u1 , u2 ), h(1 − u1 , u2 )) ≤ 0. Als Gegenbeispiel betrachten wir h(u1 , u2 ) := u1 + (1 − 2u2 )2 . h(u1 , u2 ) ist in u1 monoton, in u2 aber nicht. Für Zufallsvariablen U1 ,U2 , die i.i.d. und U(0, 1)-verteilt sind, bilden h(U1 ,U2 ) und h(1 −U1 ,U2 ) keine antithetischen Variablen. Dazu bestimmen wir die Kovarianz (vgl. Rechenregeln im Anhang A.18): Kov(h(U1 ,U2 ), h(1 −U1 ,U2 )) = Kov(U1 + (1 − 2U2 )2 , 1 −U1 + (1 − 2U2 )2 ) = Kov(U1 , 1 −U1 ) + Kov((1 − 2U2 )2 , (1 − 2U2 )2 ) = −Kov(U1 ,U1 ) + V((1 − 2U2 )2 ) = −V(U1 ) + E (1 − 2U2 )4 − (E (1 − 2U2 )2 )2 1 4 = − + > 0. 12 45 Allerdings ist die Monotonie in allen Komponente der Funktion h nur eine hinreichende Voraussetzung, unter der eine Verringerung wie in Satz 18.5 der Varianz zwangsläufig auftreten muss. Das Beispiel in Kapitel 19 unten zeigt aber, dass es sich lohnen kann, auch ohne Vorliegen von Monotonie antithetische Variablen auszuprobieren.
18.3 Varianzreduktion durch „Conditioning“ Diese Methode benutzt das Konzept des bedingten Erwartungswerts. Für reellwertige integrierbare Zufallsvariablen X,Y kann der bedingte Erwartungswert von X unter der Annahme Y = y als Erwartungswert bzgl. der entsprechenden bedingten Verteilung angesehen werden: E[X | Y = y] =
+
t PX|Y =y (dt).
Ist X z. B. eine diskrete Zufallsvariable mit Werten in N, so gilt also E[X | Y = y] =
∑ k · P[ X = k | Y = y ].
k∈N
18.3 Varianzreduktion durch „Conditioning“
219
Mit E [ X | Y ] bezeichnet man darüberhinaus die Zufallsvariable, die den Wert E [ X | Y = y ] annimmt, falls Y den Wert y annimmt. E [ X | Y ] lässt sich also als Funktion von Y schreiben: E [ X | Y ] = h(Y ). Es gilt dann E E [ X | Y ] = E X. (18.10) Ganz entsprechend kann man die bedingte Varianz von X unter Y = y definieren: / . 2 V[ X | Y = y ] := E X − E [ X | Y = y ] | Y = y 9 : = E X 2 | Y = y − E [ X | Y = y ]2 . Entsprechend setzt man V[ X|Y ] = E [ X 2 | Y ] − (E [ X | Y ])2 . V[ X|Y ] ist dann wieder eine Zufallsvariable, die den Wert V[ X | Y = y ] annimmt, wenn Y den Wert y annimmt. Der bedingte Erwartungswert E [ X | Y ] kann auch als eine Art „Glättung“ der Zufallsvariablen X angesehen werden, bei der sich die „Variabilität“ von X wegen E [ X | Y ] = h(Y ) der von Y angleicht. Es ist daher nicht verwunderlich, dass E [ X | Y ] eine eher geringe Varianz als X hat. Genauer gilt:
Es seien X,Y Zufallsvariablen, X sei quadratisch integrierbar und Y sei integrierbar. Dann gilt a) V(X) = E (V[ X | Y ]) + V(E [ X | Y ]) b) V(X) ≥ V(E [ X | Y ]) Beweis: a) Es gilt 9 9 : : E V[ X | Y ] = E E X 2 | Y − E [ X | Y ]2 = E E X 2 | Y − E E [ X | Y ]2 = E X 2 − E E [ X | Y ]2 und 2 V E [ X | Y ] = E E[ X | Y ]2 − E (E [ X | Y ]) = E E [ X | Y ]2 − E (X)2 . Daraus folgt E V [ X | Y ] + V E [ X | Y ] = E X 2 − (E X)2 = V(X). b) Aus der Definition oben folgt V[ X | Y = y ] ≥ 0 für alle y, daher auch E V[ X | Y ] ≥ 0 . Die Behauptung folgt dann aus a).
220
18 Varianzreduktion
Satz 18.9 kann folgendermaßen für die Simulation genutzt werden: ist ϑˆn = ϑˆn (X1 , . . . , Xn ) ein erwartungstreuer Schätzer für ϑ und Y eine Zufallsvariable, so ist ϑ˜n (Y ) := E [ ϑˆn | Y ]
(18.11)
ein erwartungstreuer Schätzer für ϑ mit eher geringerer Varianz als ϑˆn , denn es folgt mit (18.10) und Satz 18.9 9 : E ϑ˜n = E E ϑˆn | Y = E ϑˆn = ϑ und 9 : V ϑ˜n = V E ϑˆn | Y ≤ V ϑˆn . Anschaulich hat ϑ˜n eher geringere Varianz als ϑˆn , da ein Teil der in ϑˆn (X1 , . . . , Xn ) steckenden Ungewissheit über ϑ = E ϑˆn (X1 , . . . , Xn ) durch den exakt berechneten bedingten Erwartungswert bzgl. Y ersetzt wird. Es muss dann nur noch Y simuliert werden. Für eine Anwendung muss die Zufallsvariable Y so bestimmt werden, dass die bedingten Erwartungswerte E[ ϑˆ | Y = y ] bzw. E[ Xi | Y = y ] leicht zu berechnen sind.
U U
Y
0
−V
V
1
1/2 X
Abbildung 18.5: Bei gegebenem Abstand x liegen die Punkte auf zwei parallelen Geraden.
Wir betrachten jetzt wieder das zweidimensionale Verdrahtungsproblem aus Beispiel 15.4, in dem zwei Punkte in dem Einheitsquadrat auf ihren Abstand hin untersucht werden. Es sei also U = (U1 ,U2 ) wieder U([0, 12 ] × [0, 1])-verteilt und V = (V1 ,V2 ) sei gleichverteilt in [ 12 , 1] × [0, 1] gewählt. U,V seien unabhängig, vgl. Abbildung 18.5. Mit X := V1 −U1 ,
Y := |V2 −U2 |
sei der zu schätzende Wert der mittlere Abstand ϑ := E U −V = E
* X 2 +Y 2 .
18.3 Varianzreduktion durch „Conditioning“
221
In Beispiel 15.4 wurden die Dichten von X und Y bestimmt, es gilt ⎧ 4t für t ∈ [0, 12 ] ⎪ ⎨ 2(1 − t) 1 fX (t) := und fY (t) := 4(1 − t) für t ∈ ( 2 , 1] ⎪ 0 ⎩ 0 sonst
für t ∈ [0, 1] sonst
.
Als Schätzer für ϑ hatten wir dort gewählt 1 n ϑˆn (x1 , . . . , xn , y1 , . . . , yn ) := ∑ n i=1
-
xi2 + y2i ,
(18.12)
dabei waren die x1 , . . . , xn bzw. y1 , . . . , yn Zufallszahlen zu den Verteilungen von V1 −U1 bzw. V2 −U2 . Für eine Anwendung des „Conditioning“ wird der bedingte Erwartungswert des Abstands U −V bei gegebenem V1 −U1 = x bestimmt. Aus der Unabhängigkeit von X,Y erhält man * * h(x) := E U −V | V1 −U1 = x = E X 2 +Y 2 | X = x = E x2 +Y 2 | X = x = =
+ 1* + 1* * x2 + y2 fY (y) dy = x2 + y2 2(1 − y) dy E ( x2 +Y 2 ) = 0 0 * * 3 2 * 1 + x2 − 1 + x2 − x3 + x2 ln(1 + 1 + x2 ) − ln x , 3
wobei man die Stammfunktionen für den letzten Schritt mit Hilfe einer Formelsammlung ermitteln kann. h(x) kann aufgefasst werden als der mittlere Abstand zweier Punkte, die auf zwei Parallelen zur y-Achse mit Abstand x liegen, vgl. Abbildung 18.5. Wenden wir das „Conditioning“ aus (18.11) auf ϑˆn aus (18.12) mit der bedingenden Variable X = (X1 , . . . , Xn ) an, so erhalten wir als neuen Schätzer : 9 ϑ˜n (x1 , . . . , xn ) := E ϑˆn (X1 , . . . , Xn ,Y1 , . . . ,Yn ) | X1 = x1 , . . . , Xn = xn 7 6 1 n =E ∑ Xi2 +Yi2 X1 = x1 , . . . , Xn = xn (18.13) n i=1 . / 1 n 1 n = ∑E Xi2 +Yi2 Xi = xi = ∑ h(xi ). n i=1 n i=1 Dabei wurde ausgenutzt, dass wegen der Unabhängigkeit der X1 , . . . , Xn ,Y1 , . . . ,Yn auch Xi2 +Yi2 unabhängig von X j , j = i, ist. Zur Auswertung des neuen Schätzers müssen x1 , . . . , xn gemäß der Dichte fX simuliert werden, dies kann durch die Differenz zweier U(0, 1/2)− bzw. U(1/2, 1) -verteilter Zufallszahlen geschehen. Der Algorithmus für ϑ˜n lautet dann
222
18 Varianzreduktion
/ / x = v1 − u 1
Man kann zeigen, dass x → h(x) monoton wachsend ist, in Bsp. 18.8 b) wurde gezeigt, dass X, 1 − X antithetische Variable sind. Mit Bemerkung 18.7 folgt daher insbesondere, dass Kov(h(X), h(1 − X)) ≤ 0 ist. Es kann also auch der folgende, verbesserte Schätzer verwendet werden: 1 n 1 (18.14) ϑ˜n (x1 , . . . , xn ) := ∑ [h(xi ) + h(1 − xi )] n i=1 2
n = 10
n = 50
n = 100
0.75
0.70
0.65
ϑ
0.60
0.55
ϑˆn
ϑ˜n ϑ˜n
ϑˆn
ϑ˜n ϑ˜n
ϑˆn
ϑ˜n ϑ˜n
Abbildung 18.6: Vergleich der Verbindungslängen für unterschiedliche Schätzmethoden
Abbildung 18.6 zeigt die Ergebnisse für die drei hier hergeleiteten Schätzer für ϑ ≈ 0.640425. Es wurden jeweils zwanzig Wiederholungen der Schätzungen für Stichprobenumfänge n = 10, 50, 100 durchgeführt. Die Ergebnisse der Schätzer ϑˆn aus (18.12), ϑ˜n aus (18.13) und ϑ˜n aus (18.14) sind in Boxplots mit der entsprechenden Beschriftung zusammengefasst (siehe Beispiel 15.4 für eine Erläuterung der Boxplots). Die Grafik zeigt für alle drei Schätzverfahren eine relativ gute Übereinstimmung der Mediane aus den 20 Wiederholungen mit dem wahren Wert ϑ . Dies war auch zu erwarten, da alle drei Schätzer erwartungstreu für ϑ sind. Die Schwankungsbreite, angedeutet durch die Länge des Boxen, ist aber bei der Schätzung durch ϑ˜n , also mit der Kombination von Conditioning und antithetischen Variablen, sehr viel geringer als bei den anderen beiden Verfahren.
18.4 Varianzreduktion durch eine Kontrollvariable
223
18.4 Varianzreduktion durch eine Kontrollvariable Durch Hinzunahme einer sogenannten „Kontrollvariablen“ kann die Varianz einer Schätzung verringert werden, wenn die Kontrollvariable stark mit der ursprünglichen Beobachtung korreliert ist. Der folgende Satz zeigt zunächst allgemein, wie die Varianz einer Zufallsvariablen X gesenkt werden kann durch Übergang zu einer Zufallsvariablen der Gestalt X − cY. Es seien X,Y quadratisch integrierbare Zufallsvariablen mit EY = 0. Dann gilt für c ∈ R a)
E (X − cY ) = E X, V(X − cY ) = V(X) + c2 V(Y ) − 2c Kov(X,Y ).
b) c → V(X − cY ) wird minimiert für c = c∗ := V(X − c∗Y ) = V(X) −
Kov(X,Y ) und es gilt V(Y )
Kov(X,Y )2 = V(X)(1 − Kor(X,Y )2 ), V(Y )
dabei bezeichnet Kor(X,Y ) := √Kov(X,Y ) den Korrelationskoeffizienten von X,Y (vgl. AnV(X)V(Y )
hang A.18). Beweis: a) Die Aussage folgt sofort aus den bekannten Rechenregeln für Varianz und Erwartungswert. b) Es sei g(c) := V(X) + c2 V(Y ) − 2c Kov(X,Y ). c∗ ist Nullstelle der Ableitung 2c V(Y ) − 2 Kov(X,Y ) und
d2 g(c∗ ) = 2V(Y ) > 0. c∗ dc2
g(c∗ ) = V(X) + = V(X) −
Kov(X,Y ) V(Y )
d dc g(c)
=
ist also ein Minimum von g und
2 V(Y ) − 2
Kov(X,Y )2 V(Y )
Kov(X,Y )2 Kov(X,Y )2 = V(X)(1 − ). V(Y ) V(X)V(Y )
Die Aussagen von Satz 18.11 können offensichtlich auf Zufallsvariablen Y mit EY = 0 ausgeweitet werden, indem man überall Y durch Y − EY ersetzt. Eine Verbesserung der Schätzung durch Kontrollvariablen kann nun folgendermaßen erreicht werden: Ist ϑˆn = 1n ∑ni=1 Xi ein erwartungstreuer Schätzer für ϑ mit X1 , . . . , Xn i.i.d. und sind Y1 , . . . ,Yn weitere Zufallsvariablen, so dass die Paare (Xi ,Yi ), i = 1, 2 . . . , i.i.d. sind, so gewinnt man einen neuen Schätzer der Gestalt 1 n ϑˇn (X1 , . . . , Xn ,Y1 , . . . ,Yn ) := ∑ (Xi − c∗ (Yi − EY1 )) n i=1 (18.15) 1 n = ϑˆn (X1 , . . . , Xn ) − c∗ Y − EY , 1 ∑ i n i=1
224
18 Varianzreduktion
wobei c∗ := Kov(X1 ,Y1 )/V(Y1 ) gesetzt wird. ϑˇn ist ein erwartungstreuer Schätzer mit geringerer Varianz als ϑˆn , falls Kor(X1 ,Y1 ) = 0. Dies folgt aus Satz 18.11, wenn man dort X := ϑˆn und Y := 1n ∑ni=1 Yi − EY1 setzt. Es gilt dann offensichtlich EY = 0 und Kov(X,Y ) = Kov(X1 ,Y1 )/n sowie V(Y ) = V(Y1 )/n. Damit folgt aber auch c∗ =
Kov(X,Y ) Kov(X1 ,Y1 ) = V(Y1 ) V(Y )
und Kor(X,Y ) = Kor(ϑˆn ,Y ) = Kor(X1 ,Y1 ). Also hat ϑˇn nach Satz 18.11 die Varianz V(ϑˇn ) = V(ϑˆn )(1 − Kor(X1 ,Y1 )) < V(ϑˆn ). Die Schwierigkeit bei der Anwendung von Kontrollvariablen liegt darin, Zufallsvariablen Y1 ,Y2 , . . . zu finden, für die EY1 , V(Y1 ) und Kov(X1 ,Y1 ) bekannt sind oder leicht geschätzt werden können. Dabei sollte Yi möglichst stark mit Xi korreliert sein, damit die Reduktion in der Varianz des Schätzers entsprechend stark ausfällt.
Wir untersuchen noch einmal das Beispiel 15.4 bzw. 18.10, in dem die mittlere Verbindungslänge ϑ = E U − V zwischen zwei Punkten U,V in [0, 1] × [0, 1] untersucht wurde. In Beispiel 18.10 war die Varianz der Schätzung wesentlich gesenkt worden durch Übergang zu bedingten Erwartungswerten, die in diesem Beispiel aber sehr aufwändig zu bestimmen sind.
U U
Y
−V
V
m(U,V )
0
1/2 X
1
Abbildung 18.7: Euklidischer und Manhattan-Abstand
Wir setzen wieder X := V1 −U1 = |U1 −V1 | und Y := |U2 −V2 |. Man beachte, dass X,Y jetzt eine andere Bedeutung haben als eben in Satz 18.11. Als Ausgangspunkt nehmen wir wieder den einfachen Mittelwertschätzer 1 n (18.16) ϑˆn (x1 , . . . , xn , y1 , . . . , yn ) := ∑ xi2 + y2i n i=1 für Zufallszahlen x1 , x2 , . . . zur Verteilung von X = |U1 − V1 | bzw. y1 , y2 , . . . zur Verteilung von Y = |U2 −V2 |. Um Kontrollvariablen einsetzen zu können, benötigt man neben xi2 + y2i
18.4 Varianzreduktion durch eine Kontrollvariable
225
eine zusätzliche, korrelierte Beobachtung, deren Erwartungswert leicht zu bestimmen ist. Dazu bietet sich der sogenannte „Manhattan-Abstand“ m(u, v) für Punkte u = (u1 , u2 ) und v = (v1 , v2 ) an: m(u, v) := |v1 − u1 | + |v2 − u2 |, vgl. Abbildung 18.7. Es gilt mit der Dichte aus 18.10 E m(U,V ) = E |V1 −U1 | + E |V2 −U2 | = E (V1 −U1 ) + EY = EV1 − EU1 + =
+ 1 0
y · 2(1 − y) dy
5 3 1 2 − + = . 4 4 6 6
√ Als Kontrollvariable zur Beobachtung U − V = X 2 +Y 2 benutzen wir den ManhattanAbstand m(U,V ) = X +Y und erhalten als Schätzer mit Kontrollvariable aus (18.15) 5 1 n 2 (18.17) xi + y2i − c∗ (xi + yi − ) . ϑˇn (x1 , . . . , xn , y1 , . . . , yn ) = ∑ n i=1 6 Der Parameter c∗ kann dabei geschätzt werden, indem man zunächst in einer vorgeschalteten √ Simulation Werte xi , yi , i = 1, . . . , K, beobachtet und daraus die Kovarianz κ := Kov( X 2 +Y 2 , X + Y ) und die Varianz σ 2 := V(X + Y ) schätzt. Dazu bestimmt man die Stichprobenmittel 1 K d¯ := ∑ K i=1
xi2 + y2i
und
m¯ :=
1 K ∑ (xi + yi ) K i=1
und daraus die empirische Kovarianz und Varianz: κˆ
:=
σˆ 2
:=
1 K xi2 + y2i · (xi + yi ) − K d¯m¯ ∑ K − 1 i=1 1 K 2 2 (x + y ) − K m ¯ . ∑ i i K − 1 i=1
und
ˆ σˆ 2 und erhält den Schätzer Anstelle von c∗ benutzt man dann cˆK := κ/ 1 n 2 2 − cˆ (x + y − 5 ) . x + y K i i ∑ i i n i=1 6
(18.18)
Abbildung 18.8 zeigt die Ergebnisse für ϑˆn aus (18.16) und ϑˇn aus (18.18) als Boxplot. Für jeden der angegebenen Stichprobenumfänge n wurden 20 Wiederholungen durchgeführt. Dabei wurde cˆ = cˆn für jeden Stichprobenumfang aus einem Vorlauf mit K = 30 Versuchen geschätzt. Die Grafik zeigt deutlich, dass die Verwendung der Kontrollvariablen die Schwankungsbreite wesentlich reduziert, selbst wenn man berücksichtigt, dass der Vorlauf für die Schätzung von c∗ hier nicht mitgezählt wurde.
226
18 Varianzreduktion
n = 10
Stichprobenumfang n = 50
n = 100
0.75
0.70
0.65
ϑ
0.60
ϑˆn
ϑˇn
ϑˆn
ϑˇn
ϑˆn
ϑˇn
Abbildung 18.8: Vergleich zwischen der „Rohschätzung“ ϑˆn und der Schätzung ϑˇn mit Kontrollvariable Manhattan-Abstand.
Teil IV Simulation und Optimierung
19 Optimales Landebahnmanagement In den bisherigen Anwendungsbeispielen wurde Simulation benutzt, um den Wert einer Kenngröße in einer gewissen Situation zu ermitteln, etwa die mittlere Verweilzeit in einem Bediensystem wie in Abschnitt 15.2. Häufig ist es dabei das Ziel, Parameterkonstellationen zu bestimmen, die diese Kenngröße optimieren, z. B. könnte es das Ziel sein, die mittlere Verweilzeit zu minimieren durch Veränderung der Bedienzeitverteilung. Derartige Fragestellungen treten häufig im Operations Research auf, aber auch bei eher technischen Anwendungen. Die Kenngröße spielt dann die Rolle einer Kostenfunktion in einem Optimierungsproblem, die gesuchte Parameterkonstellation stellt die Lösung dar. Das Besondere daran ist, dass der Zusammenhang zwischen Parameterkonstellation und Wert der Kostenfunktion nicht analytisch ausgedrückt und berechnet werden kann, sondern mit Hilfe der Simulation geschätzt werden muss. Die üblichen Verfahren der mathematische Optimierung, etwa der linearen oder kombinatorischen Optimierung, setzten voraus, dass die Kostenfunktion als eine mathematische Abbildung von der Menge der zulässigen Lösungen in die reellen Zahlen vorliegt (und darüberhinaus, dass sie eine gewisse Struktur trägt, z. B. linear ist). Kann die Kostenfunktion selbst nur simuliert werden, so schließt das in der Regel den Einsatz dieser Methoden aus. Man geht daher vom Ziel einer optimalen Lösung ab und begnügt sich meist mit der heuristischen Suche nach einer möglichst guten Lösung. Dies ist auch dadurch gerechtfertigt, dass die Simulation in der Regel nur Schätzungen der Kostenwerte liefert, was den Nutzen exakter Optimierungsmethoden von vorneherein begrenzt. Heuristische Verfahren untersuchen in der Regel sehr viele Lösungen, für die die Kosten bestimmt werden müssen. Dies stellt wiederum die Simulation vor die Aufgabe, zuverlässige Schätzungen sehr schnell, d. h. mit möglichst geringem Aufwand zu finden. An einem ausführlichen Beispiel aus der Praxis sollen jetzt verschiedene Aspekte dieser Herangehensweise beleuchtet werden.
19.1 Problemstellung Landebahnzuweisung Wir wollen uns in diesem Kapitel mit einem aktuellen Problem des Luftverkehrs beschäftigen. Angesichts der steigenden Verkehrsnachfrage sind die Flughäfen heutzutage darauf angewiesen, ihre Kapazitäten immer effizienter zu nutzen. Dazu gehört auch, möglichst viele Starts und Landungen auf den vorhandenen Rollbahnen durchzuführen. Startende und landende Flugzeuge müssen relativ große Sicherheitsabstände einhalten, wodurch der Durchsatz der Rollbahnen zumindest in Stoßzeiten begrenzt wird. Diese Abstände sind deshalb so groß, da die Flugzeuge sogenannte Wirbelschleppen hinter sich herziehen, die die aerodynamische Stabilität nachfolgender Flugzeuge gefährden können. Die Stärke der Wirbelschleppe und die Empfindlichkeit gegenüber Turbulenzen hängen dabei von der Größe und
230
19 Optimales Landebahnmanagement
dem Gewicht der Flugzeuge ab: Folgt ein kleines Flugzeug einem großen, so muss ein sehr viel größerer Abstand eingehalten werden als bei umgekehrter Reihenfolge der Flugzeuge. Zur Vereinfachung wollen wir uns im Folgenden auf Landungen beschränken. Tabelle 19.1 zeigt ein Beispiel der Abstandsmatrix B = (b(i, j))i, j=1,2,3 für landende Flugzeuge (aus [BS00]). Die Flugzeuge sind dabei in die drei Gewichtsklassen „schwer“, „mittel“ und „leicht“ eingeteilt, b(i, j) ist der Abstand (in Sekunden) den ein Flugzeug vom Typ j halten muss, wenn es einer Maschine vom Typ i folgt. So muss ein leichtes Flugzeug hinter einem schweren den Abstand 144 Sekunden einhalten, in der umgekehrten Reihenfolge sind nur 72 Sekunden erforderlich. ⎛ ⎞ 96 120 144 ⎜ ⎟ B = (b(i, j))i, j=1,2,3 := ⎝ 72 72 96 ⎠ . 72
72
72
Tabelle 19.1: Die Abstands- oder „Staffelungsmatrix“ für die Typen „schwer“, „mittel“ und „leicht“
Ziel ist es nun, die Flugzeuge so anzuordnen, dass große Sicherheitsabstände möglichst vermieden werden, mehr Landungen stattfinden können und weniger Wartezeiten auftreten. Wir wollen uns hier auf einen einfachen Fall konzentrieren, in dem die Reihenfolge der ankommenden Flugzeuge nicht geändert werden darf, die Flugzeuge aber zwei verschiedenen Landebahnen zugeordnet werden können. Die ankommenden Flugzeuge werden bei Eintritt in den Zuständigkeitsbereich des Flughafens fest einer Landebahn zugewiesen, dabei ist jeweils nur das ankommende Flugzeug für den Flughafen sichtbar, d. h. die Zuordnung findet ohne Berücksichtigung der später eintreffenden Flugzeuge statt. Können die Flugzeuge nicht sofort landen, fliegen sie Warteschleifen, wodurch zusätzlicher Kraftstoffverbrauch entsteht. j
i Landebahn I Landebahn II
?
b(i, j)
k b( j, k)
Abbildung 19.1: Anfliegende Flugzeuge müssen einer Landebahn zugewiesen werden, der Sicherheitsabstand hängt vom Typ der Flugzeuge ab.
Die Wartezeiten und damit letztlich der Durchsatz der Landbahnen hängt offensichtlich stark davon ab, wie die Ankunftszeiten der Flugzeuge verteilt sind. Obwohl die Flugzeuge einem Fahrplan folgen, sind ihre tatsächlichen Ankunftszeiten durch Verspätungen häufig stark verzerrt. Es ist daher bei der Modellierung von Flughäfen üblich, die Ankunftszeiten und den Typ der ankommenden Flugzeuge als stochastische Prozesse anzusehen, z. B. als Poisson-Prozess mit einer i.i.d. Typenverteilung. Die Rate des Ankunftsprozesses, d. h. die mittlere Anzahl von Flugzeugen pro Zeiteinheit, die vom System bewältigt werden kann, beschreibt dann den Durchsatz des Systems. Eine mögliche Zielsetzung könnte es nun sein, eine Zuweisungsstrategie δ zu bestimmen, die ankommende Flugzeuge so den Landebahnen zuweist, dass die durchschnittliche Wartezeit der Flugzeuge minimiert wird bei einer vorgegebenen Ankunftsrate. Alternativ kann man eine Strategie suchen, die eine vorgegebenen mittlere Wartezeit nicht überschreitet und dabei den
19.2 Das mathematische Modell
231
Durchsatz, d. h. die mögliche Ankunftsrate, maximiert. In beiden Fällen ist die Auswirkung der Zuweisungsstrategie auf die Wartezeiten nur in einfachsten Fällen analytisch zu beschreiben, in der Regel ist man auf Simulation angewiesen.
19.2 Das mathematische Modell Das mathematische Modell für das Landebahnenproblem kann hier nur skizziert werden, weitere Einzelheiten lassen sich in [BEFK07] und [BEFK04] nachlesen. Man kann eine Landebahn als einen „Bediener“ in einem Bediensystem wie in Kapitel 15.2 ansehen. Ankommende Flugzeuge sind dann die Kunden und der Sicherheitsabstand, den ein Flugzeug hinter sich erfordert, ist die Bedienzeit dieses Kunden. Die beiden Landebahnen können so als ein Bediensystem aufgefasst werden, bei dem ankommende Kunden an eine von zwei Warteschlangen zugewiesen werden. Allerdings sind hier im Unterschied zu Standardbediensystemen die Bedienzeiten aufeinanderfolgender Kunden stochastisch abhängig: Landen etwa drei Flugzeuge mit den Typen i, j, k hintereinander auf einer Bahn, so sind die Bedienzeiten b(i, j) und b( j, k) der beiden ersten Flugzeuge abhängig voneinander, da ja beidesmal das Flugzeug vom Typ j eine Rolle spielt. Die Bedienzeit des letzten der drei Flugzeuge steht erst bei Ankunft des nächsten Flugzeugs fest. Es bezeichne Jn den Typ des n-ten ankommenden Flugzeugs. Wir nehmen an, dass (Jn )n≥1 eine i.i.d. Folge ist mit einem gegebenen „Typenmix“ p , der bei drei Typen etwa lauten könnte p = (p1 , p2 , p3 ) := (0.7, 0.2, 0.1).
(19.1)
Dies bedeutet, dass 70 % der ankommenden Flugzeuge vom Typ „schwer“ (=1) sind, 20% vom Typ „mittel“ (=2) und 10% vom Typ „leicht“ (=3). Tn sei die Zwischenankunftszeit zwischen dem (n − 1)-ten und dem n-ten ankommenden Flugzeug. Die (Tn )n≥1 seien i.i.d. und exponentialverteilt mit Parameter λ , d. h. die Ankunftszeitpunkte Sn = ∑ni=1 Ti der Flugzeuge bilden einen Poisson-Prozess mit Ankunftsrate λ . Bei zwei k i
... Landebahn
I aktuelle Zeit
u
b(i, k) Landebeginn des letzten wartenden Flugzeugs vom Typ i
frühester Landebeginn des neuen Flugzeugs vom Typ k
Abbildung 19.2: Ein auf Landebahn I neu eintreffendes Flugzeug vom Typ k kann erst b(i, k) Sekunden nach dem letzten auf dieser Bahn wartenden Flugzeug landen
Landebahnen I und II muss zu jedem Ankunftszeitpunkt Sn eine Entscheidung a ∈ {I, II} über
232
19 Optimales Landebahnmanagement
die anzusteuernde Landebahn getroffen werden. Die Entscheidung kann dabei abhängen von dem aktuellen Zustand der Landebahnen sowie vom Typ k des ankommenden Flugzeugs. Die Landebahn I ist in dieser Situation vollständig charakterisiert durch ihre aktuelle Last u und den Typ i des letzten auf dieser Landebahn wartenden Flugzeugs. Die Last der Landebahn zu einem bestimmten Zeitpunkt ist die Zeitdauer, die das letzte dort wartende Flugzeug bis zum Beginn seiner Landung noch vor sich hat. Wird das ankommende Flugzeug der Landebahn I zugewiesen, so müsste es dort also u + b(i, k) Zeiteinheiten auf den Beginn der eigenen Landung warten: die aktuell verbleibende Wartezeit u des vorangehenden Flugzeugs vom Typ i plus den darauf einzuhaltenden Sicherheitsabstand b(i, k), vgl. auch Abb. 19.2. Auf Landebahn II bezeichnen wir Last und Typ des letzten wartenden Flugzeugs mit v, j. Damit lassen sich alle entscheidungsrelevanten Größen bei Ankunft eines Flugzeugs vom Typ k im Zustand s := (u, i, v, j; k)
(19.2)
des Systems zusammenfassen. Dabei muss man noch berücksichtigen, dass eine Last u negativ sein kann, wenn die Landebahn leer ist und die Landung des letzten Flugzeugs vor −u Zeiteinheiten begann. Die genaue Wartezeit des Flugzeugs auf Bahn a in obiger Situation ist also [u + b(i, k)]+ , falls a = I , (19.3) w(s, a) := [v + b( j, k)]+ , falls a = II wobei [r]+ = max{r, 0} den Positivteil von r ∈ R bezeichnet. Ferner sollen die Landebahnen zu Beginn frei sein und das erste Flugzeuge auf beiden Bahnen keine Wartezeit haben. Dazu sei b∗ := maxi, j b(i, j) der maximale Sicherheitsabstand. Als Startzustand definieren wir s0 := (−b∗ , i0 , −b∗ , i0 ; i0 )
(19.4)
für einen beliebigen Typ i0 . Die Wartezeit des ersten Flugzeugs vom (beliebigen) Typ k ist dann nach (19.3) gerade [−b∗ + b(i0 , k)]+ = 0. Eine Zuweisungsstrategie δ ist eine Abbildung von der Menge S der möglichen Zustände in die Menge A := {I, II} der Aktionen, bzw. in die Menge von Wahrscheinlichkeitsmaßen auf A im Falle von randomisierten Entscheidungen. Eine mögliche Strategie könnte z. B. sein, ein Flugzeug immer an die kürzere Schlange zu stellen: I, falls u ≤ v δ (u, i, v, j; k) := . (19.5) II, falls u > v Bei gegebener Strategie δ bilden die entscheidungsrelevanten Zustände einen stochastischen Prozess (Xn )n≥1 mit einem Markoff’schen Bewegungsgesetz. Liegt etwa bei Ankunft des n-ten Flugzeugs (vom Typ k) der Zustand Xn = (u, i, v, j; k) vor, so wird die Zuweisungsentscheidung δ (Xn ) ∈ {I, II} getroffen. Der („aktualisierte“) Zwischenzustand unmittelbar nach der Zuweisung ist ([u + b(i, k)]+ , k, v, j; k), falls δ (Xn ) = I und (u, i, [v + b( j, k)]+ , k; k), falls δ (Xn ) = II, die Last der jeweiligen Landebahn hat sich also erhöht. Bis zur Ankunft des nächsten, (n + 1)-ten Flugzeugs vergeht die Zeit Tn+1 , die Lasten auf den Landebahnen werden entsprechend abgebaut.
19.3 Ereignisgesteuerte Simulation
233
Das nächste Flugzeug ist vom Typ Jn+1 und sieht daher den Zustand Xn+1 := g(Xn , δ (Xn ), Tn+1 , Jn+1 ) wobei die Übergangsfunktion g definiert ist durch ([u + b(i, k)]+ − t, k, v − t, j; l), falls a = I (19.6) g(s, a,t, l) := (u − t, i, [v + b( j, k)]+ − t, k; l), falls a = II für s = (u, i, v, j; k). Das vollständige Bewegungsgesetz des Zustandsprozesses ergibt sich jetzt aus den oben genannten Annahmen über die Zwischenankunftszeiten und die Typverteilungen. Wichtig ist hierbei, dass wir einen Prozess, der sich in stetiger Zeit abspielt, vollständig durch den eingebetteten Prozess (Xn )n≥0 beschreiben können, der sozusagen immer nur dann hinschaut, wenn ein Flugzeug ankommt. Dies ist der Ausgangspunkt für den Einsatz ereignisgesteuerter Simulation im nächsten Abschnitt. Stellt man sich etwa die Aufgabe, zu einer gegebenen Ankunftsrate λ eine Zuweisungsstrategie δ zu finden, die die mittlere Wartezeit eines Flugzeugs minimiert, so führt das hier angedeutete Modell auf ein Problem der stochastischen dynamischen Optimierung. Es besitzt zwar nur zwei Aktionen (I und II), hat aber einen überabzählbaren Zustandraum. Ansätze zur Analyse der Struktur dieses Problem finden sich in [BEFK04]. Beschränkt man sich bei den Entscheidungsstrategien auf solche, die nur vom Typ des ankommenden Flugzeugs abhängen dürfen, so wird in [BEFK07] gezeigt, dass man Warteschlangen des Typs M/SM/1 zur Modellierung und numerischen Lösung des Problems benutzten kann. Im allgemeinen ist man aber allein zur Bestimmung der mittleren Wartezeit, die eine vorgelegte Strategie δ erfordert, auf Simulation angewiesen.
19.3 Ereignisgesteuerte Simulation Es soll nun zunächst zu einer vorgegebenen Zuweisungsstrategie δ die mittlere Wartezeit 1 n−1 ∑ Wi n→∞ n i=0
ϑ := lim
(19.7)
geschätzt werden, wobei Wi = w(Xi , δ (Xi )) die Wartezeit des i-ten ankommenden Flugzeugs ist. Dieser Limes existiert nur, wenn das System in gewissem Sinne stabil ist, also nicht zu viele Ankünfte erfolgen. Dies wird unten noch weiter untersucht. Einige Grundlagen der ereignisgesteuerten Simulation wurden in Kapitel 15.2 dargestellt. Bei der Implementierung eines entsprechenden Systems für die Landebahnen werden Ereignisse benutzt, die die Ankünfte von Flugzeugen im Entscheidungsbereich des Flughafens markieren. Ein Ereignis (t, k) besteht aus der Zwischenankunftszeit t, die seit der letzten Ankunft vergangenen ist, und dem Typ k des gerade ankommenden Flugzeugs. Zur Erzeugung von Ereignissen wird also ein Zufallsgenerator für die Exponentialverteilung wie in Bsp. 8.6 c) mit vorgegebenem Parameter λ benötigt sowie ein einfacher Generator für die diskrete Verteilung p aus (19.1) für den Typ des Flugzeugs (z. B. Algorithmus 8.7). Entscheidend ist die Verwaltung des Systemzustands s = (u, i, v, j; k), der den Zustand unmittelbar vor Zuweisung des gerade ankommenden Flugzeugs beschreibt. Der Startzustand ist s0 = (−b∗ , 1, −b∗ , 1; 1), die erste Ankunft erfolgt zur Zeit 0. Zur Umsetzung des Zustandsübergangs aus (19.6) muss das System im Zustand s = (u, i, v, j; k), also bei Ankunft eines Flugzeugs vom Typ k, folgende Schritte auslösen:
234
19 Optimales Landebahnmanagement
1. Die vorgegebene Zuweisungsstrategie δ wählt eine Entscheidung a ∈ {I, II} abhängig vom Zustand s aus, im einfachsten (nicht randomisierten) Falle als a := δ (s). 2. Der Zustand s wird aktualisiert zu einem Zwischenzustand sakt , indem die durch die aktuelle Zuweisung veränderten Lasten bestimmt werden: ([u + b(i, k)]+ , k, v, j; k), falls δ (s) = I . sakt := (u, i, [v + b( j, k)]+ , k; k), falls δ (s) = II 3. Die Wartezeit w für das gerade zugewiesenen Flugzeug wird wie in (19.3) ermittelt: [u + b(i, k)]+ , falls δ (s) = I , w(s, δ (s)) = [v + b( j, k)]+ , falls δ (s) = II dies entspricht gerade der Last im aktualisierten Zustand sakt . Dieser Wert wird gespeichert. 4. Es wird dann das nächste Ereignis (t, l) erzeugt und verarbeitet. Dazu wird die Simulationszeit um t Zeiteinheiten vorgestellt, d. h. die Lasten auf beiden Bahnen werden um t Einheiten abgebaut, gleichzeitig steht der Typ l des nächsten zuzuweisenden Flugzeugs fest, der neue Zustand ist also s := g(s, δ (s),t, l) mit g wie in (19.6). s wird unmittelbar vor Zuweisung des neuen Flugzeugs (vom Typ l) angenommen und als neuer Systemzustand zurückgegeben. s = (u, i, v, j; k)
sakt
u<0
δ (s) = I
b(i, k)
i
k w j
j v
v t0
t0 t
(t, l)
u
k j v t0
t0 + t
j
s = (u k, v j; l) k
v < 0 t0 + t
Abbildung 19.3: Die einzelnen Schritte der Simulation einer Flugzeugankunft
Abbildung 19.3 zeigt ein Beispiel für den Zustandsübergang. Das System befinde sich zum Entscheidungszeitpunkt t0 im Zustand s = (u, i, v, j; k), d. h. zur Zeit t0 kommt ein Flugzeug vom Typ k an. Auf Bahn I ist als letztes ein Flugzeug vom Typ i gelandet, dies liegt (wegen u < 0) −u Zeiteinheiten zurück. Auf Bahn II wartet am Ende der Schlange ein Flugzeug vom Typ j,
19.3 Ereignisgesteuerte Simulation
235
es muss noch v Zeiteinheiten bis zu seiner Landung warten. Die Zuweisungsstrategie δ weist das ankommende Flugzeug der Bahn I zu, das dort den Abstand b(i, k) auf das bereits gelandete Flugzeug vor ihm halten muss. Die verbleibende Wartezeit geht in den aktualisierten Zwischenzustand sakt ein. Als nächstes tritt ein Ereignis (t, l) ein, d. h. nach t Zeiteinheiten ist ein Flugzeug vom Typ l zuzuweisen. Dazu wird die Zeit auf t0 + t aktualisiert, in der Grafik ist die aktuelle Zeit durch ein schwarzes Dreieck markiert. Für den neuen Zustand s , der zur Zeit t0 +t vorliegt, müssen die Lasten entsprechend angepasst, d. h. abgebaut werden. In Abbildung 19.3 führt dies zu einer negativen Last v = v − t auf Bahn II, d. h. das wartende Flugzeug (vom Typ j) ist zur Zeit t0 + t bereits gelandet. Da die Wirbelschleppe aber auch nach der Landung fortwirkt, muss dieser Wert in s aufgenommen werden. Damit ergibt sich als neuer Zustand zur Zeit t0 + t, unmittelbar bevor das neue Flugzeug zugewiesen wird s = (u , k, v , j; l) mit u = [u + b(i, k)]+ − t und v = v − t. Dieser Zustandsübergang ist zwar etwas komplizierter, die Struktur des Simulationsprogramms selbst ist aber sehr einfach etwa im Vergleich zum Warteschlangenbeispiel in Kapitel 15. Es wird nur eine Art von Ereignis benutzt, da z. B. die Kundenabgänge, d. h. die Zeitpunkte des Landungsbeginns, nicht explizit bestimmt werden müssen, sie sind implizit in den Lasten enthalten. Zum anderen wird keine Liste von Ereignissen benötigt, da die Ereignisse in der Reihenfolge ihrer Erzeugung vollständig abgearbeitet werden können, vgl. Abb. 19.4. Auf diese Weise kann eine beliebige Anzahl von Flugzeugankünften bearbeitet werden. Der Durchschnitt aus allen beobachteten Wartezeiten kann dann als Schätzwert für ϑ benutzt werden.
Abbildung 19.4: Der Ablauf des Simulationsprogramms
Formal benutzt der Schätzer für die mittlere Wartezeit als Input also die Ereignisse (t1 , k1 ), . . . , (tn , kn ) aus Zwischenankunftszeiten und Flugzeugtypen und bestimmt daraus die Wartezeiten: 1 n−1 ϑˆn (t1 , . . . ,tn , k1 , . . . , kn ) := ∑ w(si , δ (si )) n i=0
(19.8)
mit Startzustand s0 wie in (19.4), si+1 := g(si , δ (si ),ti+1 , ki+1 ) mit der Übergangsfunktion aus (19.6) und Wartezeit w(si , δ (si )) wie in (19.3).
236
19 Optimales Landebahnmanagement
19.4 Regenerative Simulation Der in Unterabschnitt 19.2 definierte Zustandsprozess (Xn )n≥0 der Landebahnen ist ein regenerativer Prozess in diskreter Zeit mit diskreten Regenerationszeiten (τm )m≥1 (vgl. Def. 17.1). Eine Regeneration finden offensichtlich dann statt, wenn ein ankommendes Flugzeug beide Landebahnen frei vorfindet und auf beiden Bahnen, unabhängig vom Typ des ankommenden Flugzeugs, die Wartezeit 0 anfällt. Das ist offensichtlich genau dann der Fall, wenn die vorgefundenen Lasten auf beiden Bahnen kleiner gleich −b∗ sind, wobei b∗ = maxi, j b(i, j) wieder der maximal auftretende Sicherheitsabstand ist. Die Warteschlangen müssen also leer sein und seit der jeweils letzten Landung muss mindestens soviel Zeit verstrichen sein, dass jeder Flugzeugtyp sofort landen kann. Formal ist die erste Regenerationszeit τ1 definiert als τ1 = min{n > 0 | Xn = (u, i, v, j; k) mit u ≤ −b∗ , v ≤ −b∗ , i, j, k beliebig } Für die Anwendung der regenerativen Technik nach Satz 17.3 und 17.4 müssen Erwartungswert und Varianz der Regenerationszeit τ1 und der in einem Regenerationszyklus anfallenden absoluten „Gewinne“, hier also der Wartezeiten, endlich sein (vgl. Beispiel 17.6). Die Dauer eines Regenerationszyklus hängt hier offensichtlich davon ab, wie dicht die Ankünfte erfolgen und welche Bedienzeiten b(i, j) tatsächlich auftreten, also von der Ankunftsrate λ und der benutzten Zuweisungsstrategie δ . Wir geben hier nur ein etwas vereinfachtes Ergebnis an, das die Anwendbarkeit der regenerativen Simulation garantiert, falls die mittlere Zeit zwischen zwei Ankünften größer ist als die maximale Bedienzeit. Weitere Einzelheiten finden sich in [BEFK07]. Es sei wieder Wi die Wartezeit des i-ten ankommenden Flugzeugs, d. h. Wi = w(Xi , δ (Xi )). τ
m+1 Es seien (τm )m≥1 die oben beschriebenen Regenerationszeiten und Dm := ∑i=τ m ∗ gilt unter der Voraussetzung E T1 > b für alle Zuweisungsstrategien δ
E τ1 < ∞, V(τ1 ) < ∞
und
−1
Wi . Dann
E D1 < ∞, V(D1 ) < ∞.
Beweis: Wir schätzen die in dem eigentlichen Landebahnmodell auftretenden Warte- und Regenerationszeiten ab durch die Zeiten in einem grob vereinfachten Modell. In diesem vereinfachten Modell erfolgen die Ankünfte zu denselben Zeitpunkten wie im ursprünglichen System, bei jeder Ankunft steigt aber die Last auf beiden Landebahnen um b∗ , unabhängig vom Typ der Flugzeuge. Zustandsübergänge finden in beiden Systemen also zugleich statt, die Lasten in dem neuen System sind aber stets auf beiden Bahnen identisch und größer gleich denen im ursprünglichen System. Eine Regeneration tritt in dem neuen Modell ein, wenn ein Flugzeug auf eine Landebahn mit Last ≤ −b∗ trifft. Für die Länge τ1 des ersten Regenerationszyklus und die Wartezeiten Wi im modifizierten System gilt daher offensichtlich τ1 ≤ τ1
und
Wi ≤ Wi , i = 1, 2, . . . .
(19.9)
Wir beweisen die Aussage des Satzes zunächst im modifizierten System. In diesem System sind beide Landebahnen völlig gleich, es finden keine Zuweisungen an eine Bahn statt und die Bedienzeiten b∗ sind konstant und daher insbesondere unabhängig voneinander. Dieses System lässt
19.4 Regenerative Simulation
237
sich durch ein sogenanntes M/G/1-Bediensystem beschreiben. Die Auslastung in einem M/G/1System ist definiert als ρ :=
b∗ E Bedienzeit = = λ b∗ . E Zwischenankunftszeit E T1
Gilt, wie unter unserer Voraussetzung, ρ < 1, so heißt das M/G/1-System stabil, es existiert dann insbesondere der Grenzwert ϑ := limn→∞ n1 ∑ni=1 Wi . Wegen (19.9) existiert daher auch ϑ wie in (19.7). Ferner können Aussagen zu den „busy cycles“ des M/G/1-Systems, also zu den Zyklen zwischen zwei Leerständen des Bedieners, gemacht werden. τ1 ist die Anzahl der während des ersten busy cycle im M/G/1-Systems bedienten Kunden. In [HS82], Cor. 6-13b wird gezeigt, dass die erzeugende Funktion ∞
H(z) :=
∑ zk P(τ1 = k),
z ∈ [0, 1),
k=0
die Gleichung H(z) = ze−(λ −λ H(z))b
∗
erfüllt. Unter der Voraussetzung ρ < 1 lassen sich daraus durch Ableiten die Momente bestimmen und es kann so insbesondere gezeigt werden, dass E (τ1 )m < ∞ für m = 1, . . . , 4. Mit (19.9) folgt daraus der erste Teil der Behauptung, da aus der Endlichkeit der ersten beiden Momente auch die Endlichkeit der Varianz folgt. Für den zweiten Teil schätzen wir die Wartezeiten Wi in dem ersten busy cycle (grob) durch die Dauer τ1 b∗ des ganzen busy cycle ab. Dann gilt D1 =
τ1 −1
∑ Wi
i=0
≤
τ1 −1
∑
i=0
Wi
≤
τ1 −1
∑ τ1 b∗
= (τ1 )2 b∗ .
i=0
Es folgt E D1 ≤ b∗ E (τ1 )2 < ∞ und E (D1 )2 ≤ (b∗ )2 E (τ1 )4 < ∞. Mit Satz 17.4 kann jetzt eine regenerative Simulation durchgeführt werden, der Schätzer ϑ5m wird wie in Beispiel 17.6 gewählt,wobei die Verweilzeit hier durch die Wartezeiten ersetzt werden: τm −1 Wj ∑ j=0 ∑m i=1 Di 5 = ϑm = m M τ ∑i=1 i m Der Input für diesen Schätzer ist wieder eine Folge von Ereignissen (t1 , k1 ), (t2 , k2 ), . . . , deren Anzahl aber im Unterschied zu (19.8) nicht fest vorgegeben ist, sondern vom Verlauf der m Regenerationen bestimmt wird. Die Genauigkeit der Schätzung kann mit dem in Satz 17.4 angegebenen asymptotischen Konfidenzintervall bestimmt werden. Dabei werden bei steigenden Ankunftsraten die Regenerationszyklen tendenziell länger und die Anzahl der Ereignisse, die bis zur Erreichung der angestrebten Genauigkeit simuliert werden müssen, steigt.
238
19 Optimales Landebahnmanagement
19.5 Zuweisungsstrategien Mit dem oben skizzierten System können Zuweisungsstrategien, die ihre Entscheidung vom Zustand s = (u, i, v, j; k) abhängig machen, simuliert werden. Einige Strategietypen sollen hier kurz vorgestellt werden. Die Join-the-least-load-Strategie (JLL) weist das ankommende Flugzeug der Landebahn zu, auf der es die geringste Wartezeit hat: I, falls [u + b(i, k)]+ ≤ [v + b( j, k)]+ . (19.10) δJLL ((u, i, v, j; k)) := II, falls [u + b(i, k)]+ > [v + b( j, k)]+ Im Unterschied zum Beispiel in (19.5) wird hier die Wartezeit des Flugzeugs, also die Last nach einer möglichen Zuweisung zur Entscheidung benutzt. Randomisierte Entscheidungsstrategien verwenden zur endgültigen Zuweisung ein weiteres Zufallsexperiment mit den möglichen Ausgängen I oder II. Bei der Strategie δMünze (s) wird die Landebahn durch einen Münzwurf entschieden, d. h. die Entscheidungen I oder II werden jeweils mit Wahrscheinlichkeit 0.5 gewählt, unabhängig vom Zustand. Naheliegend ist es auch, die Flugzeuge nach Typen zu sortieren, so dass möglichst selten ungünstige Abstände erforderlich sind. Da aber im Beispiel (19.1) 70% der Flugzeuge vom Typ „schwer“ sind, können sie nicht vollständig von den anderen getrennt werden, da sie sonst eine lange Schlange an einer Bahn bilden würden. Stattdessen kann man eine randomisierte Trennung der Typen vornehmen, bei der Typ k mit Wahrscheinlichkeit qk auf Landebahn I und mit 1 − qk auf Bahn II zugewiesen wird. Dadurch wird der Ankunftsstrom in zwei unabhängige Poissonströme aufgeteilt, für die Werte qk bestimmt werden können, bei dem das System eine maximale Kapazität hat (vgl. [BEFK07]). Für die in Tabelle 19.1 angegebenen Sicherheitsabstände, den Typenmix aus (19.1) und Ankunftsrate λ = 0.0213 ergibt sich z. B. (q1 , q2 , q3 ) := (0.697, 0, 0). Unter der zugehörigen Strategie δMaxKap werden also 69.7% der schweren Flugzeuge auf Bahn I zugewiesen, die restlichen 30.3% und alle mittleren und leichten Flugzeuge gehen auf Bahn II. Dies ist die optimale Aufteilung bei der (hohen) Ankunftsrate von 0.0213 Flugzeugen pro Sekunde (= 76.68 Flugzeuge pro Stunde). Eine besonders einfache Strategie weist den ankommenden Flugzeugen Bahn I und II im Wechsel zu. Diese naheliegende Strategie δLinksRechts passt streng genommen nicht in den Rahmen des mathematischen Modells aus 19.2, da hier die Entscheidung allein von der laufenden Nummer des Flugzeugs abhängt, die dazu zusätzlich in den Zustand aufgenommen werden müsste. Abbildung 19.5 zeigt die simulierte mittlere Wartezeit für die oben beschriebenen Strategien in Abhängigkeit von der Ankunftsrate λ , hier ausgedrückt durch die mittlere Anzahl ankommender Flugzeuge pro Stunde. Dabei wurde für jede Strategie und 40 unterschiedliche Ankunftsraten jeweils eine Simulation durchgeführt. Die Ergebnisse wurden mit einer regenerativen Simulation gewonnen, die abgebrochen wurde, sobald das Konfidenzintervall zum Niveau α = 0.05 aus Satz 17.4 einen Radius hatte, der kleiner war als 5% des aktuellen Schätzwerts ϑ5n (mit einer minimalen Anzahl von 200 Zyklen). Um die Simulation auch für Ankunftsraten nahe der Kapazitätsgrenze durchführen zu können, wurde die Zahl der Regenerationszyklen pro Simulation auf 10.000 beschränkt, der einzelne Zyklus
19.5 Zuweisungsstrategien
239
Sek 3000
2500 Münze
mittlere Wartezeit
2000
MaxKap
1500
1000 JLL
LinksRechts 500
0 45
50
55
60
65
70
75
80 Flgz/h
Ankunftsrate
Abbildung 19.5: Die mittleren Wartezeiten für verschiedenen Zuweisungsstrategien.
(und damit die ganze Simulation) wurde mit einer Fehlermeldung abgebrochen, falls auch nach mehr als 4.000.000 Ereignissen (ankommenden Flugzeugen) keine Regeneration aufgetreten ist. Für diese Fälle sehr hoher Ankunftsraten ist keine zuverlässige Simulation möglich. Für welche Ankunftsraten diese Situation auftritt, hängt von der Güte der Zuweisungsstrategie, genauer von den tatsächlich auftretenden mittleren Bedienzeiten, ab. Die Simulation einer Strategie bei allen 40 Ankunftsraten benötigt etwa 9 Sekunden auf einem Rechner mit einer 3.2 GHz CPU. Wie man in Abbildung 19.5 sieht, steigen bei mäßigen Ankunftsraten die Wartezeiten zunächst bei allen Strategien langsam an. Sobald sich die Ankunftsrate der Kapazität des Systems nähert, ändert sich das Verhalten drastisch. Unter der Strategie δMünze führt z. B. eine Erhöhung von 68 Flgz/h auf 71 Flgz/h zu einer Verdoppelung der Wartezeit von ca. 500 auf ca. 1000 Sekunden. Bei etwa 73.8 Flgz/h musste die Simulation abgebrochen werden, da die Regenerationen zu lange auf sich warten ließen. Bei den anderen Strategien trat diese Situation erst bei höheren Raten auf, sie vermeiden hohe Sicherheitsabstände und erhöhen dadurch diese „ultimative Kapazität“ des Systems. Die Strategien „LinksRechts“ und „JLL“ sind in Abbildung 19.5 kaum zu unterscheiden, beide versuchen, die Lasten (und damit die Länge) der beiden Schlangen auszubalancieren. Diese Strategie ist bei geringer Ankunftsrate deutlich besser als die Aufteilung der Ströme mit der Strategie δMaxKap . Dies ändert sich etwa ab 73 Flgz/h, bei dieser hohen Ankunftsrate macht es sich bezahlt, die Typen zu sortieren, allerding treten hier bereits Wartezeiten von 16 Minuten auf, die im Regelbetrieb kaum akzeptabel wären.
240
19 Optimales Landebahnmanagement
19.6 Varianzreduktion Bei einer einzelnen Landebahn ist die Wartezeit eines Flugzeugs offensichtlich eine monoton fallende Funktion der zugehörigen Zwischenankunftszeit, denn je mehr Zeit seit der Ankunft des vorangegangenen Flugzeugs vergangen ist, desto geringer ist die eigene Wartezeit. Daher könnte man nach Satz 18.6 die Technik der antithetischen Variablen zur Verringerung der Varianz des Wartezeit-Schätzers einsetzen. Bei einer Zuweisung zu zwei Landebahnen kann diese elementare Monotonie durch die Zuweisungsstrategie gestört werden, wie das folgende einfache Beispiel zeigt. Es sei δ ∗ definiert durch I falls u ≤ v oder u, v ≤ 0 ∗ δ ((u, i, v, j; k)) := II falls u > v und u > 0. δ ∗ ist also eine spezielle „join-the-least-load“ Strategie, die immer dann, wenn kein Flugzeug wartet, ein ankommendes Flugzeug auf Bahn I schickt. Treten zu Beginn die drei Ereignisse (t1 , k1 ), (t2 , k2 ), (t3 , k3 ) ein mit t1 := 0, t2 := 1/2b, t3 := b,
b(k1 , k2 ) = b(k2 , k3 ) := b > 0,
so führt der Ablauf aus Abschnitt 19.3 unter δ ∗ zu den Zuständen s0 = (−b∗ , 1, −b∗ , 1; k1 ), s1 = (−t2 , k1 , −b∗ − t2 , 1; k2 ), s2 = (−1/2b, k2 , −b∗ − t2 − t3 , 1; k3 ). In diesem Verlauf werden alle drei Flugzeuge auf Landebahn I zugewiesen und es entstehen die Wartezeiten 0, 1/2b, 1/2b. Treten die Ereignisse dagegen zu früheren Zeiten t1 ,t2 ,t3 mit t1 := t1 = 0,
t2 := t2 = 1/2b,
t3 := 1/4b < t3
ein, so verlängern sich die Wartezeiten nicht, sondern wir beobachten Wartezeiten 0, 1/2b, 0, da jetzt das letzte Flugzeug auf Bahn II zugewiesen wird: s 2 = (1/2b − t3 , k2 , −b∗ − t2 − t3 , 1; k3 ) = (1/4b, k2 , −b∗ − t2 − t3 , 1; k3 ). Für beliebige Zuweisungsstrategien kann daher nicht von einer Monotonie des WartezeitenSchätzers in Abhängigkeit von den Zwischenankunftszeiten ausgegangen werden und Satz 18.5 ist deshalb nicht anwendbar. Dies heißt allerdings nur, dass eine Verminderung der Varianz nicht garantiert werden kann. Es zeigt sich aber in der praktischen Simulation, dass im vorliegenden Fall durch die Verwendung antithetischer Variabler erheblicher Aufwand gespart werden kann. Dazu müssen geeignete „antithetische Ereignisse“ konstruiert werden. Die Ereignisse (t, k) bestehen, wie oben beschrieben, aus einer exponentialverteilten Zwischenankunftszeit t und einem Typ k, der der Verteilung „Typenmix“ gehorcht. Zu den Zwischenankunftszeiten lassen sich leicht antithetische Werte konstruieren: Die Exponentialverteilung wird mit dem Inversionsprinzip wie in Beispiel 8.6 c) als T := F −1 (U) = −1/λ log(U) gewonnen, wobei U gleichverteilt auf (0, 1) und F(x) = 1 − e−λ x die Verteilungsfunktion der exp(λ )-Verteilung ist. Nach Satz 18.5 b) ist dann T := F −1 (1 − U) = 1/λ log(1 − U) eine antithetische Variable. Mit t = 1/λ log(u) und t = 1/λ log(1 − u) erhält man zu (t, k) das antithetische Ereignis (t , k), der Typ k des ankommenden Flugzeuges wird also in beiden Ereignissen gleich gewählt.
19.6 Varianzreduktion
241
Bei der konkreten Durchführung der Simulation ist noch zu beachten, dass zu den antithetischen Zwischenankunftszeiten ein eigener Landebahnzustand gehört. Die daran ermittelten Wartezeiten Wi der Flugzeuge eines regenerativen Zyklus werden aufaddiert und mit denen des ursprünglichen Zustands gemittelt. Allerdings regeneriert sich das System mit den antithetischen Ereignissen nicht zugleich mit dem ursprünglichen System, da es eigene Regenerationszyklen hat. Bei der vorliegenden Simulation wurden die Regenerationszyklen des ursprünglichen Systems als „Takt“ benutzt: τ −1 1 2 (W j +W j )
m ∑ j=0 ∑m 1 (Di + D i ) 5 = ϑ5m = i=1 2m ∑i=1 Mi
τm
.
(19.11)
D i umfasst also alle mit antithetischen Ereignissen ermittelten Wartezeiten W j während des i-ten Regenerationszyklus des ursprünglichen Systems mit den Regenerationszeiten τi . Die Zyklen der gemittelten Wartezeiten sind dann leider nicht mehr unbedingt unabhängig voneinander, so dass Satz 17.4 nicht anwendbar ist. Die empirischen Werte aus Abb. 19.6 zeigen aber eine außerordentlich gute Übereinstimmung der neuen Werte mit den zuvor ohne antithetische Variable gewonnenen Werten aus Abb. 19.5. Gleichzeitig hat sich durch die antithetischen Ereignisse der Aufwand zur Erreichung des Genauigkeitsziels „Radius des 95%-Konfidenzintervalls < 5% vom aktuellen Schätzwert“ drastisch reduziert. In Abbildung 19.7 ist für die Zuweisungsstrategie δJLL aufgetragen, wieviele Regenerationszyklen erforderlich waren, um das Genauigkeitsziel zu erreichen. Der Aufwand bei Verwendung von antithetischen Variablen lag deutlich unter der Hälfte des Aufwandes ohne antithetische Variable. Es wird auch erkennbar, dass ohne antithetische Variable für hohe Ankunftsraten die vorgegebene Schranke von 10000 Zyklen nicht ausgereicht hat. Sek 3000
mittlere Wartezeit
2500
Münze
2000
MaxKap 1500
1000
LinksRechts
500
JLL
0 45
50
55
60
65
70
75
80 Flgz/h
Ankunftsrate
Abbildung 19.6: Die Simulation der verschiedenen Strategien mit antithetischen Zwischenankunftszeiten
242
19 Optimales Landebahnmanagement Abbruch der Simulation nach 10000 Zyklen
ohne antithetische Variable 10000
mit antithetischen Variablen
Anzahl Zyklen
8000
6000
4000
2000
0
45
50
55
60
65
70
75 Flgz/h
Ankunftsrate
Abbildung 19.7: Die erforderliche Anzahl von Regenerationszyklen zur Erzielung der geforderten Genauigkeit des Schätzers liegt ohne antithetische Variable deutlich höher.
19.7 Optimierung mit genetischen Algorithmen Zur Bestimmung einer optimalen Strategie muss das in Kapitel 19.2 skizzierte dynamische Optimierungsproblem gelöst werden, was wegen des überabzählbaren Zustandsraums schwierig ist. Für eine sehr eingeschränkte Klasse von randomisierten Strategien, die den Ankunftsstrom in zwei unabhängige Ströme aufteilen, lassen sich mit Hilfe der Warteschlangentheorie optimale Strategien bestimmen wie z. B. δMaxKap aus Abschnitt 19.5, vgl. [BEFK07]. Eine weitere Möglichkeit, gute Strategien zu gewinnen, besteht darin, eine parametrisierte Klasse von Strategien zu betrachten und innerhalb dieser Klasse eine möglichst gute Strategie, d. h. möglichst gute Parameter zu suchen. Dabei wird die Qualität einer Strategie durch die mittlere Wartezeit bei einer bestimmten Ankunftsrate beschrieben. Im vorliegenden Fall bieten sich eine Verallgemeinerung der einfachen „join-the-least-load“Strategie aus (19.5) als Ausgangspunkt an. In (19.5) wird im Zustand s = (u, i, v, j; k) die Entscheidung I genau dann getroffen, wenn u ≤ v. Stellt man sich die Lasten (u, v) der beiden Landebahnen als Punkte in der Ebene vor, so wird diese Strategie gerade durch die Winkelhalbierende beschrieben: Die Punkte auf und oberhalb der Gerade erfüllen u ≤ v und führen zur Entscheidung I, die darunterliegenden zu II, vgl. Abb. 19.8. Etwas mehr Flexibilität gewinnt man, wenn man diese Winkelhalbierende durch eine affine Funktion ersetzt, d. h. wenn man die Entscheidung I trifft bei u ≤ A + B · v für Konstante A, B. Dabei ist es sinnvoll, folgende Monotonieeigenschaft von den Strategien zu fordern: wenn für Lasten (u, v) die Landebahn I zugewiesen wird, so soll für (u , v) mit u < u nicht die (jetzt relativ ungünstigere) Bahn II zugewiesen werden. Daraus folgt, dass B ≥ 0 gelten muss. Zusätzlich kann man die Konstanten A und B noch von den Typen i, j, k der am Ende der Schlangen wartenden und des gerade ankommenden Flugzeugs abhängig machen. Dann sind A, B Matrizen der Dimension J × J × J, wobei J die Anzahl der Typen ist, hier also J = 3.
19.7 Optimierung mit genetischen Algorithmen
243
v I
A
B
II u
Abbildung 19.8: Die einfache join-the-least-load-Strategie teilt die Ebenen der Lasten entlang der Winkelhalbierenden.
Ziel ist es dann, Matrizen A∗ , B∗ zu bestimmen, so dass die Zuweisungsstrategie I, falls u ≤ A∗ (i, j, k) + B∗ (i, j, k) · v δA∗ ,B∗ (s) = δA∗ ,B∗ ((u, i, v, j; k)) := II, falls u > A∗ (i, j, k) + B∗ (i, j, k) · v
(19.12)
unter allen Strategien δA,B dieser Gestalt die geringste durchschnittliche Wartezeit 1 n−1 ∑ w(Xi , δA,B (Xi )) n→∞ n i=0
ϑ = ϑ (A, B) := lim
bei einer vorgegebenen Ankunftsrate aufweist. Dabei wird die Zielfunktion ϑ (A, B) durch Simulation geschätzt. Zur Optimierung oder auch nur Verbesserung der Wartezeit in dieser Klasse von Strategien ist man daher auf heuristische Suchverfahren angewiesen. Als recht erfolgreich haben sich in diesem Zusammenhang genetische Algorithmen erwiesen (vgl. Beispiel 14.1 b)). Genetische Algorithmen sind populationsbasierte Optimierungsverfahren, bei denen iterativ eine ganze Gruppe von Lösungen verbessert wird. In [Ree03] wird ein ausführlicher Überblick gegeben über die Arbeitsweise von genetischen Algorithmen und verwandten Suchverfahren. Wir stellen hier in aller Kürze den Algorithmus in der Form vor, wie er für die unten zitierten Resultate benutzt wurden. Wie man sehen wird, sind die genetischen Algorithmen selbst hochgradig stochastisch und erfordern an vielen Stellen Simulation von Verteilungen. Die Lösungen, in unserem Falle also die Matrizen A, B, werden als Individuen angesehen. Sie unterliegen einer Bewertung mit einer Kostenfunktion, hier die mit (19.11) geschätzte durchschnittlichen Wartezeit bei Verwendung der Strategie δA,B . Eine Anzahl K von diesen Individuen werden zufällig erzeugt und bilden die Startpopulation P0 . Jede Population Pn wird durch Anwendung genetischer Operatoren um K Nachkommen erweitert zu einer Zwischenpopulation Pn der Größe K + K . Aus dieser Population wird nun die nächste gültige Population Pn+1 ausgewählt, indem Lösungen mit guter Bewertung bevorzugt werden. Die Bewertung wird also als „fitness“ der Lösung angesehen, die ähnlich wie in der natürlichen Evolution zur Herausbildung besonders angepasster, hier also Wartezeit-armer, Lösungen führt. Dies wurde bereits in Beispiel 14.1 b) beschrieben. Genetische Operatoren sind im wesentlichen die Mutation und die Kreuzung (Crossover). Für eine Kreuzung zweier Lösungen wird ein „Elternpaar“ (A1 , B1 ), (A2 , B2 ) von Lösungen aus der
244
19 Optimales Landebahnmanagement
aktuellen Population zufällig ausgewählt. Eine neue Lösung (A, B) wird daraus erzeugt, indem A1 , A2 zu A und B1 , B2 zu B „gekreuzt“ werden. Diese Kreuzung kann z. B. so geschehen, dass die neue Matrix A bis zu einer zufällig bestimmten Position aus A1 und von dieser Position an aus A2 kopiert wird. B wird dann ebenso aus B1 , B2 kopiert. Eine wesentlich aufwändigere Art 3 der Kreuzung besteht darin, die Matrizen A1 , A2 als Punkte im RJ = R27 anzusehen und als Nachkomme diejenige Matrix A+ auf der Verbindungsstrecke {A1 + η(A2 − A1 ) | 0 ≤ η ≤ 1} ⊂ R27 zu wählen, die minimale Wartezeit erzeugt. Dazu beschränkt man sich zweckmäßigerweise auf endliche viele Punkte auf dieser Verbindungsstrecke, die einzeln untersucht werden. Die Einbeziehung der zweiten Matrix B kann so geschehen, dass auch auf der Verbindungsstrecke zwischen B1 und B2 im R27 wieder in eine Anzahl diskreter Punkte B(1) , . . . , B(N) gewählt wird und für jeden dieser Punkte B( j) wie oben beschrieben das beste A+ = A+ (B( j) ) gesucht wird, die beste dabei gefundene Kombination (A+ B( j) , B( j) ) wird dann der neue Nachkomme. Eine Mutation besteht aus der Änderung eines zufällig ausgewählten Elements der Matrizen A, B um einen kleinen zufälligen Betrag. Eine Mutation kann z. B. auf den neu erzeugten Nachkommen einer Kreuzung angewendet werden. Gut bewährt hat sich noch folgende Variante: In gewissen Abständen wird auf die Bildung einer erweiterten Population durch genetische Operatoren verzichtet. Stattdessen wird ein einzelnes Individuum der aktuellen Population ausgewählt und durch intensive lokale Optimierung verbessert. Die lokale Optimierung kann z. B. durch Simulated Annealing oder andere lokale Suchverfahren vorgenommen werden. Wird das so verbesserte Individuum in die Population zurückgegeben und mit den genetischen Operatoren weiterverarbeitet, so beobachtet man häufig, dass sich das gute „Erbmaterial“ der neuen Lösung schnell in der Population verbreitet und der ganzen Population zu großen Fortschritten verhilft. Zu dieser Idee siehe auch [EFK04]. Die Selektion der neuen Population Pn+1 aus der erweiterten Population Pn kann dabei z. B. so geschehen, dass Individuen mit einer Wahrscheinlichkeit ausgewählt werden, die umgekehrt proportional zu ihren Kosten (=Wartezeiten ϑ (A, B) ) ist. Hierbei ist der Reservoir-Algorithmus aus Satz 14.9 b) von Nutzen, mit dem die neue Population Pn+1 in einem Durchgang durch Pn erzeugt werden kann. Mehr noch, die erweiterte Population Pn selbst braucht nicht gespeichert zu werden: bei der Erzeugung der einzelnen Nachkommen wird gleich entschieden, ob sie ins Reservoir als Kandidaten für die nächste Population kommen. Alle diese Schritte erfordern die Simulation der Wartezeit ϑ (A, B) für eine Vielzahl von Strategien, die besonders zu Beginn der Optimierung weitgehend zufällig bestimmt und daher i. A. sehr schlecht sind. Es kann deshalb sinnvoll sein, die Genauigkeit und Dauer der Simulation von ϑ (A, B) im Laufe der Optimierung zu erhöhen, z. B. indem die geforderte Breite des Konfidenzintervalls anfangs auf einen höheren Wert gesetzt und im Laufe des Verfahrens langsam gesenkt wird. Im vorliegenden Fall hat intensive Optimierung mit dem hier beschriebenen Ansatz die Matrizen A∗ , B∗ aus Tabelle 19.2 geliefert. Dabei wurde für die Simulation von ϑ (A, B) eine Ankunftsrate von 73.25 Flugzeugen pro Stunde zugrundegelegt. Die Typen „schwer“, „mittel“ und „leicht“ sind wieder mit 1, 2, 3 bezeichnet. Tabelle 19.2 ist folgendermaßen zu lesen: findet z. B. ein ankommendes Flugzeug vom Typ „mittel“ (k = 2) an den Enden der beiden Warteschlangen die Typen „schwer“ und „mittel“ vor,
19.7 Optimierung mit genetischen Algorithmen
i
i
245
1 2 3
A∗ (i, j, 1) j 1 2 3 2.074 0.578 1.317 -1.487 -1.966 0.494 2.209 2.057 2.595
A∗ (i, j, 2) j 1 2 3 0.164 0.908 1.579 -2.408 -3.500 -1.520 -0.103 1.320 1.526
A∗ (i, j, 3) j 1 2 3 1.316 -1.153 3.827 -2.550 -3.255 0.626 -0.651 1.096 1.108
1 2 3
B∗ (i, j, 1) j 1 2 3 0.825 0.357 0.08 3.583 1.198 4.004 5.228 1.602 4.522
B∗ (i, j, 2) j 1 2 3 0.178 0.026 1.148 0.197 0.168 0.486 0.027 0.275 0.015
B∗ (i, j, 3) j 1 2 3 0.052 0.007 0.371 0.069 0.012 0.011 0.044 0.089 0.045
Tabelle 19.2: Die genetisch optimierten Parametermatrizen A∗ , B∗ für die modifizierte join-the-least-load Strategie
also i = 1, j = 2, so wird das Flugzeug der Landebahn I zugewiesen, wenn für die an den beiden Landebahnen vorliegenden Lasten u und v gilt: u ≤ A∗ (1, 2, 2) + B∗ (1, 2, 2) · v = 0.908 + 0.026 · v. Die Suchmethode, die zum Ergebnis (A∗ , B∗ ) geführt hat, kann weiter verfeinert werden. So kann z. B. ausgenutzt werden, dass nicht alle Typkonstellationen (i, j, k) gleichhäufig auftreten, Sek 3000
mittlere Wartezeit
2500
Münze
2000
MaxKap
1500
(A*,B*)
1000
LinksRechts JLL
500
0 45
50
55
60
65
70
75
80 Flgz/h
Ankunftsrate
Abbildung 19.9: Die durch Optimierung gewonnene Strategie δA∗ ,B∗ reduziert die Wartezeiten bei hoher Auslastung erheblich. Die Wartezeit von 5 Minuten ist durch die gestrichelte Linie gekennzeichnet.
246
19 Optimales Landebahnmanagement
beim vorliegenden Typenmix (19.1) ist etwa die Kombination (3, 3, 3) sehr selten. Bei der Optimierung müssen diese Werte deshalb nicht so stark beachtet werden. Trotzdem zeigt Abbildung 19.9 deutlich, dass die neue Strategie δ(A∗ ,B∗ ) für hohe Auslastung der Landebahnen deutlich besser abschneidet als die anderen Strategien. An der 5 Minuten-Schwelle können mit δ(A∗ ,B∗ ) etwa 3 Flugzeuge pro Stunde mehr bewältigt werden als mit δLinksRechts .
Anhang
A Einige Grundbegriffe der Stochastik Im Folgenden werden einige grundlegende Begriffe und Konzepte aus dem Bereich der Stochastik zusammengestellt. Sie werden hier nur in der Allgemeinheit eingeführt, in der sie in unserem Kontext benötigt werden. Weitere Einzelheiten können nachgelesen werden etwa in den Büchern [Bau02], [LW06] oder [Hin85]. A.1. (Ω, A) heißt ein Messraum, falls Ω = 0/ und A eine σ -Algebra auf Ω ist, d. h. eine Teilmenge von P(Ω), die 0/ enthält und abgeschlossen ist unter Komplementbildung und abzählbaren Vereinigungen. Auf Ω = Rn benutzt man A := Bn := die kleinste σ -Algebra, die die Rechtecke [a, b] ⊂ Rn enthält. ; P : A → [0, 1] heißt ein Wahrscheinlichkeitsmaß auf (Ω, A), falls gilt P(Ω) = 1 und P( ∞ i=1 Ai ) = ∞ P(A ) für alle Folgen (A ) ∑i=1 i i i≥1 paarweise disjunkter Mengen aus A. (Ω, A, P) heißt dann ein Wahrscheinlichkeitsraum. A.2. Es sei (Ω, A, P) ein Wahrscheinlichkeitsraum, (Ω , A ) ein Messraum. X : Ω → Ω mit X −1 (A ) ⊂ A heißt messbar oder eine Zufallsvariable auf (Ω, A) mit Werten in Ω . Die Verteilung von X ist das Wahrscheinlichkeitsmaß PX (A ) := P({ω ∈ Ω | X(ω) ∈ A }), A ∈ A auf (Ω , A ). A.3. Es sei Q ein Wahrscheinlichkeitsmaß auf (Rn , Bn ). Eine messbare Funktion, f : Rn → R+ heißt , eine Dichte von Q, falls B f (x) dx = Q(B) für alle B ∈ Bn . Dabei bezeichne · · · dx das LebesgueIntegral. Zum Nachweis der Dichteeigenschaft genügt es, Mengen B = [a, b] oder B = (−∞, b] zu betrachten. Ist f Dichte der Verteilung PX , so heißt f auch Dichte von X. Nimmt X Werte an in einer abzählbaren Menge S, so heißt s → P(X = s), s ∈ S, auch die Zähldichte von X. A.4. Ist f die Dichte einer Zufallsvariablen X mit Werten in R, so hat aX + b mit a, b ∈ R, a = 0 die Dichte 1/|a| f ((t − b)/a),t ∈ R. Allgemeiner gilt der folgende Transformationssatz für Dichten: G, H seien offene Teilmengen des Rn , X sei eine Zufallsvariable mit Werten in G und der Dichte fX . Die Abbildung S = (S1 , . . . , Sn ) : G → H sei ein Diffeomorphismus, d. h. S ist bijektiv und S und die Umkehrabbildung S−1 seien stetig differenzierbar. Dann hat die Zufallsvariable Y := S(X) die Dichte fY : H → R+ mit fY (y) := fX (S−1 (y)) · | ΔS−1 (y) | = fX (S−1 (y)) · dabei ist ΔS (x) := det
∂Sj ∂ xi
x = (x1 , . . . , xn ).
1 |ΔS
(S−1 (y))|
,
y ∈ H,
die Funktionaldeterminante von S = (S1 , . . . , Sn ) an der Stelle i, j=1,...,n
A.5. F : R → [0, 1] heißt Verteilungsfunktion, falls t → F(t) monoton wachsend und von rechts stetig ist mit lim F(t) = 0, lim F(t) = 1. t→−∞
t→∞
Für ein Wahrscheinlichkeitsmaß Q auf R ist F(t) := Q((−∞,t]) die zugehörige Verteilungsfunktion. Für eine Zufallsvariable X mit Werten in R ist F(t) := P(X ≤ t) die Verteilungsfunktion von X. Es existiert eine Bijektion zwischen den Wahrscheinlichkeitsmaßen auf R1 und den Verteilungsfunktionen. Ist die Verteilungsfunktion F von Q stetig und stückweise stetig differenzierbar, so besitzt Q eine Dichte f und es gilt f = F (λ -f.s.).
250
A Einige Grundbegriffe der Stochastik
A.6. Für eine reellwertige Zufallsvariable X auf (Ω, A, P) ist der Erwartungswert E X durch das Maßin, tegral E X := Ω X dP definiert, falls X P-quasi-integrierbar ist (vgl. [Bau92]). Nimmt X Werte an in , Rn und ist g : Rn → R messbar, so gilt E g(X) = Rn g(x) f (x) dx, falls f eine Dichte von X ist und , eine der beiden Seiten der Gleichung existiert. Insbesondere gilt dann E X = R t f (t) dt für n = 1. A.7. Gilt E X 2 < ∞, ist X also quadratisch integrierbar, so heißt V(X) := E (X − E X)2 die Varianz von X. Es gilt V(X) = E X 2 − (E X)2 und V(aX + b) = a2 V(X) für a, b ∈ R. A.8. Es seien X,Y Zufallsvariablen auf einem gemeinsamen Wahrscheinlichkeitsraum, X mit Werten in Rn , Y mit Werten in Rm . Eine Abbildung q : Bn × R → [0, 1] heißt eine Version der bedingten Verteilung von Y bezüglich X = x, falls B → q(x, B), B ∈ Bm ein Wahrscheinlichkeitsmaß für PX fast alle x ist, x → q(x, B) für alle B ∈ Bm messbar ist und für alle A ∈ Bn , B ∈ Bm gilt P((X,Y ) ∈ A × B) =
+
A
q(x, B) PX (dx).
Für q(x, B) schreibt man auch P[Y ∈ B | X = x ] oder PY |X=x (B). Die (elementare) bedingte Wahrscheinlichkeit ist definiert durch P[Y ∈ B | X ∈ A] := P(Y ∈ B, X ∈ A)/P(X ∈ A) für A, B wie oben. A.9. Der Satz von der totalen Wahrscheinlichkeit besagt für X,Y wie in A.8 P(Y ∈ B) =
+
Rm
falls f eine Dichte von PX ist und P(Y ∈ B) =
P[Y ∈ B | X = x] f (x) dx
∑ P[Y ∈ B | X = x] P(X = x), falls X Werte annimmt
x∈S
in einer abzählbaren Menge S. A.10. Es bezeichne λ n das n-dimensionale Lebesguemaß auf Rn . Die stetige Gleichverteilung Un (A) auf der (messbaren) Menge A ⊂ Rn mit 0 < λ n (A) < ∞ hat die Dichte t → 1A (t)/λ n (A) für t ∈ Rn . U([a, b]) = U1 ([a, b]) mit a, b ∈ R, a < b, hat die Dichte f (t) := 1[a,b] (t)/(b − a), t ∈ R. Die Verteilungsfunktion ist F(t) := (t − a)/(b − a) für t ∈ [a, b] und F(t) := 0 für t < a bzw. F(t) := 1 für t > b. Für U([0, 1]) schreiben wir auch U(0, 1), es gilt f (t) ≡ 1 und F(t) = t für t ∈ [0, 1]. Die diskrete Gleichverteilung U({0, . . . , M − 1}) hat die konstante Zähldichte P(X = m) = 1/M, m ∈ {0, . . . , M − 1}. A.11. Für μ ∈ R und σ > 0 ist
2
(t−μ) 1 − ϕμ,σ 2 (t) := √ e 2σ 2 , t ∈ R 2πσ 2 eine Dichte. Die zugehörige Verteilung auf (R, B) heißt die Normalverteilung N(μ, σ 2 ). Für die ,t Verteilungsfunktion Φμ,σ 2 (t) := −∞ ϕμ,σ 2 (s) ds, t ∈ R, existiert kein geschlossener Ausdruck. μ ist der Erwartungswert, σ 2 die Varianz von N(μ, σ 2 ) . N(0, 1) heißt auch die Standard-Normalt2 verteilung. Sie besitzt die Dichte ϕ(t) := √1 e− 2 , t ∈ R, und die Verteilungsfunktion Φ(t) :=
,t
−∞ ϕ(s) ds,
t ∈ R.
2π
A.12. Die n-dimensionale Normalverteilung Nn (μ, Σ) auf (Rn , Bn ) hat die Dichte ϕμ,Σ (t1 , . . . ,tn ) := ((2π)n detΣ)−1/2 e− 2 (t−μ) 1
T
Σ−1 (t−μ)
mit t = (t1 , . . . ,tn ) ∈ Rn , dem Erwartungswertsvektor μ ∈ Rn und der symmetrischen, positivdefiniten Kovarianzmatrix Σ. X1 , . . . , Xn sind i.i.d. N(0, 1) -verteilt genau dann, wenn die gemeinsame Verteilung von (X1 , . . . , Xn ) die Verteilung Nn (0, I) ist mit 0 := (0, . . . , 0) ∈ Rn und der (n × n)-Einheitsmatrix I. Hat X die Verteilung Nn (0, I) und ist Σ = AAT die Zerlegung der positiv definiten Matrix Σ durch eine nichtsinguläre Matrix A, so hat Y = AX + μ die Verteilung Nn (μ, Σ).
251 ,
ν
α A.13. Es sei Γ(ν) := 0∞e−t t ν−1 dt für ν > 0 die Gamma-Funktion. Dann ist γα,ν := Γ(ν) t ν−1 e−αt für t ≥ 0 die Dichte der Gammaverteilung Γα,ν auf [0, ∞). Es gilt Γα,1 = exp(α), Γα,n heißt auch die Erlang-n-Verteilung für n ∈ N. Sind X1 , . . . , Xn i.i.d. N(0, 1) -verteilt, so hat ∑ni=1 Xi2 die Γ1/2,n/2 - oder χn2 -Verteilung mit n Freiheitsgraden.
A.14. Sind Q1 , . . . , Qn Wahrscheinlichkeitsmaße auf einem Messraum (S, S), so wird durch (Q1 × · · · × Qn )(A1 × · · · × An ) :=
n
∏ Qi (Ai ),
Ai ∈ S, i = 1, . . . , n
i=1
eindeutig das Produktmaß Q1 × · · · × Qn auf (Sn , Sn ) definiert. Es gilt insbesondere U(a1 , b1 ) × · · · ×U(an , bn ) = U([a1 , b1 ] × · · · × [an , bn ]) N(a1 , σ12 ) × · · · × N(an , σn2 ) = Nn ((a1 , . . . , an ), Σ) mit der Kovarianzmatrix Σ, deren Diagonale von σ12 , . . . , σn2 gebildet wird und deren übrige Einträge ‘0’ sind. Ist X = (X1 , . . . , Xn ) eine Zufallsvariable mit Werten in S := S1 × · · · × Sn und Verteilung PX = Q, so heißt PXi die i-te Randverteilung von PX . Es gilt P(Xi ∈ A) = Q(S1 × · · · × Si−1 × A × Si+1 × · · · × Sn ). A.15. Zufallsvariablen X1 , . . . , Xn auf einem gemeinsamen Wahrscheinlichkeitsraum heißen unabhängig, falls P(X1 ,...,Xn ) = PX1 × · · · × PXn , d. h. falls P(X1 ∈ A1 , . . . , Xn ∈ An ) = P(X1 ∈ A1 ) · . . . · P(Xn ∈ An )
für alle geeigneten A1 , . . . , An .
X1 , . . . , Xn heißen unabhängig und identisch Q-verteilt (i.i.d.), falls sie unabhängig sind und PX1 = · · · = PXn = Q, d. h. falls gilt P(X1 ∈ A1 , . . . , Xn ∈ An ) =
n
∏ Q(Ai ).
i=1
Eine Folge (Xn )n≥1 von Zufallsvariablen heißt unabhängig (bzw. i.i.d.), falls für jedes n ∈ N gilt: X1 , . . . , Xn sind unabhängig (bzw. i.i.d.). A.16. Sind X1 , . . . , Xn unabhängig, so sind auch Funktionen disjunkter Teilmengen von {X1 , . . . , Xn } unabhängig. A.17. Sind X1 , X2 unabhängig mit Werten in R und Dichten f1 , f2 , so hat X1 + X2 als Dichte die Faltung , f1 ∗ f2 (t) := R f2 (t − s) f1 (s) ds, t ∈ R. A.18. Die Kovarianz zweier quadratisch integrierbarer Zufallsvariablen X,Y ist definiert als Kov(X,Y ) := E (X −E X)(Y −EY ). Es gilt Kov(X,Y ) = E XY −E XEY, Kov(aX, bY ) = abKov(X,Y ), Kov(X,Y + Z) = Kov(X,Y ) + Kov(X, Z), Kov(X,Y ) = Kov(Y, X), Kov(X, X) = V(X) und Kov(X,Y ) = 0, falls X,Y unabhängig sind. Ferner gilt V(X +Y ) = V(X) + V(Y ) + 2Kov(X,Y ). * Der Korrelationskoeffizient ist Kor(X,Y ) := Kov(X,Y )/ V(X)V(Y ). A.19. Das α-Fraktil Qα einer Verteilung Q mit Verteilungsfunktion F ist definiert durch Qα := F −1 (1 − α), dabei ist F −1 die verallgemeinerte Inverse (siehe Definition 8.1). Ist F stetig und streng monoton wachsend, so ist Qα der Wert t mit F(t) = 1 − α. Die Fraktile von N(0, 1) heißen uα . Häufig benötigte Werte sind u0.05 = 1.644, u0.025 = 1.959,u0.01 = 2.326 und u0.005 = 2.575.
252
A Einige Grundbegriffe der Stochastik
A.20. Es sei (Xn )n≥0 eine Folge von Zufallsvariablen mit Werten in R. (Xn )n≥0 konvergiert nach Verteilung gegen eine weitere Zufallsvariable X, falls limn→∞ P(Xn ≤ t) = P(X ≤ t) für alle t ∈ R, an den D
die Verteilungsfunktion F(t) := P(X ≤ t) stetig ist. In Zeichen Xn −→ X. D
A.21. Es seien (Yn )n≥1 , (Zn )n≥1 Folgen von Zufallsvariablen mit Yn −→ Y, D
D
Zn −→ c für eine Zufallsva-
riable Y und eine Konstante c ∈ R. Dann folgt (Yn , Zn ) −→ (Y, c). Ist ferner g eine stetige Funktion, D
D
so folgt aus Yn −→ Y auch g(Yn ) −→ g(Y ). A.22. Das starke Gesetz der großen Zahlen besagt, dass für eine Folge unabhängiger, identisch verteilter und integrierbarer Zufallsvariablen (Xn )n≥1 gilt 1 n Xi = EY0 n→∞ n ∑ i=1 lim
(P-f.s.) .
A.23. Der zentrale Grenzwertsatz besagt, dass für (Xi )i≥1 i.i.d. mit μ = E X1 und σ 2 = V(X1 ) gilt 1 n Xi − μ ≤ t = Φ(t), t ∈ R. lim P √ ∑ n→∞ n i=1 σ √ Es folgt daher für großes n : P(∑ni=1 Xi ≤ t) ≈ Φ((t − nμ)/ nσ 2 ), d. h. ∑ni=1 Xi ist näherungsweise 2 N(nμ, nσ )−verteilt. A.24. Es seien (Xi )i≥1 i.i.d. mit Verteilungsfunktion F. Dann gilt lim sup |
n→∞ t∈R
n
∑ 1(−∞,t] (Xi ) − F(t) | =
0
(P-f.s.)
i=1
A.25. Es sei (Xi )i≥1 eine i.i.d. Folge von integrierbaren Zufallsvariablen und N eine Zufallsvariable mit Werten in N und E N < ∞. Für jedes i ∈ N seien 1[N≥i] und Xi unabhängig. Dann gilt die Wald’sche Gleichung N
E
∑ Xi
i=1
= E N · E X1 .
B Einige Grundbegriffe der mathematischen Statistik Die hier skizzierten Begriffe und Konzepte können ausführlicher nachgelesen werden z. B. in [LW06] oder [Wit85]. Für die praktische Durchführung von Tests kann das freie Statistik-Paket „R“ benutzt werden, siehe auch . α B.1. Für eine Stichprobe x1 , . . . , xn beschreibt das α-Quantil qα den Wert an der Position mα := 1 + n−1 in der geordneten Stichprobe für α ∈ (0, 1). Ist mα keine ganze Zahl, so wird zwischen den Werten an den Positionen mα und dem nächstgrößeren Wert interpoliert. q0.5 heißt auch Median, q0.25 auch unteres Quartil und q0.75 oberes Quartil. q0.75 − q0.25 ist der Quartilsabstand, der die zentralen 50% der Werte der Stichprobe markiert.
B.2. Es sei (S, S) ein Messraum und P eine Menge von Wahrscheinlichkeitsmaßen auf (S, S). (S, S, P) heißt ein statistisches Experiment mit der Verteilungsannahme P. Wir beschränken uns auf parametrische Verteilungsannahmen P = {Pϑ | ϑ ∈ Θ} mit dem Parameterraum Θ. Die identische Abbildung auf Sn wird als X = (X1 , . . . , Xn ) geschrieben. X ist die Stichprobenvariable auf dem Wahrscheinlichkeitsraum (Sn , Sn , Pϑ ) mit Pϑ = Pϑ × · · · × Pϑ für ein ϑ ∈ Θ. Es gilt also etwa Pϑ (X ∈ (A1 × · · · × An )) = Pϑ (A1 ) · · · · · Pϑ (An ). B.3. Ein Testproblem H : K besteht aus der Hypothese H ⊂ Θ und der Alternative K := Θ − H. Ein Test für H : K zum Stichprobenumfang n ∈ N ist eine Abbildung ϕ : Sn → { „Annahme“, „Ablehnung“ }. B.4. Es sei α ∈ (0, 1). Ein Test ϕ für H : K heißt ein Test zum Niveau α oder Signifikanztest, falls gilt Pϑ (ϕ(X) = „Ablehnung“) ≤ α
für alle ϑ ∈ H.
Übliche Werte für α sind 0.05 und 0.01. B.5. Ein Test kann in der folgenden Situation benutzt werden: Es liegt ein Zufallsexperiment vor, für dass es eine Schar von möglichen stochastischen Modellen (S, S, Pϑ ), ϑ ∈ Θ, gibt. Dabei ist vorausgesetzt, dass es (mindestens) ein ϑ0 ∈ Θ gibt, so dass Pϑ0 das Experiment mit hinreichender Genauigkeit beschreibt. ϑ0 ∈ Θ ist unbekannt, es wird das „wahre“ ϑ genannt. Zur entscheiden ist, ob ϑ0 ∈ H oder ϑ0 ∈ K gilt für ein Testproblem H : K. Es sei ϕ ein Test zum Niveau α für das Testproblem H : K. Das Zufallsexperiment wird n-mal durchgeführt, die Beobachtungsergebnisse werden zur Stichprobe x = (x1 , . . . , xn ) zusammengefasst. Ergibt ϕ(x) = „Ablehnung“, so gilt die Ablehnung von H, d. h. die Aussage „ϑ0 ∈ K“ als zum Niveau α statistisch gesichert. Bei einer häufigen Wiederholung des Tests wird man diese Entscheidung zu Unrecht (d. h. wenn tatsächlich ϑ0 ∈ H gilt) nur in α · 100% der Fälle treffen. Liefert der Test ϕ(x) =„Annahme“, so kann die damit verbundene Fehlerwahrscheinlichkeit zunächst nicht beschränkt werden. Dieses Ergebnis kann also nicht als eine statistisch gesicherte Bestätigung von ’ϑ0 ∈ H’ interpretiert werden.
Literaturverzeichnis [Aig75]
A IGNER , A.: Zahlentheorie. deGruyter, Berlin, 1975.
[AU72]
A HRENS , J.H. und U.D IETER: Computer Methods for Sampling from the Exponential and Normal Distributions. Communications of the ACM, 15:873–882, 1972.
[Bau92]
BAUER , H.: Maß- und Integrationstheorie. De Gruyter, Berlin, 2. Auflage, 1992.
[Bau02]
BAUER , H.: Wahrscheinlichkeitstheorie. De Gruyter, Berlin, 5. Auflage, 2002.
[BEFK04] B ÄUERLE , N., O. E NGELHARDT-F UNKE und M. KOLONKO: Routing of Aircrafts to Two Runways: Monotonicity of Optimal Controls. Probability in the Engineering and Informational Sciences, 18:533–560, 2004. [BEFK07] B ÄUERLE , N., O. E NGELHARDT-F UNKE und M. KOLONKO: On the Waiting Time of Arriving Aircrafts and the Capacity of Airports with One or Two Runways. Europ. J. Operational Research, 177:1180–1196, 2007. [BFS87]
B RATLEY, P., B.L F OX und L.E. S CHRAGE: A Guide to Simulation. Springer, New York, 2. Auflage, 1987.
[BS00]
B OLENDER , M.A. und G.L. S LATER: Evaluation of Scheduling Methods for Multiple Runways. Journal of Aircrafts, 37:410–416, 2000.
[Cin75]
C INLAR , E.: Introduction to Stochastic Processes. Prentice Hall, Englewood Cliffs, 1975.
[Dev86]
D EVROYE , L.: Non-Uniform Random Variate Generation. Springer, Berlin, 1986.
[EFK04]
E NGELHARDT-F UNKE , O. und M. KOLONKO: Analysing Stability and Investments in Railway Networks Using Advanced Evolutionary Algorithms. International Transactions in Operational Research, 11:381–394, 2004.
[EH91]
E ICHENAUER -H ERRMANN , J.: Inversive Congruential Pseudorandom Numbers Avoid the Planes. Mathematics of Computation, 56:297–301, 1991.
[EH92]
E ICHENAUER -H ERRMANN , J.: Inversive Congruential Pseudorandom Numbers: a Tutorial. International Statistical Review, 60:167–176, 1992.
[EL86]
E ICHENAUER , J. und J. L EHN: A nonlinear congruential pseudorandom number generator. Statist. Hefte, 37:315–326, 1986.
[Fis03]
F ISHMAN , G.S.: Monte Carlo – Concepts, Algorithms and Applications. Springer, New York, 4. Auflage, 2003.
[For07]
F ORSTER , O.: Analysis 3, Integralrechnung im R3 mit Anwendungen. vieweg studium, Braunschweig, 4. Auflage, 2007.
[Hin85]
H INDERER , K.: Grundbegriffe der Wahrscheinlichkeitstheorie. Springer, Berlin, 1985.
[HS82]
H EYMAN , D. P. und M. J. S OBEL: Stochastic Models in Operations Research I, Stochastic Processes and Operationg Characteristics. McGraw-Hill Book Company, New York, 1982.
[Knu98]
K NUTH , E.D.: The Art of Computer Programming, Vol. 2 Seminumerical Algorithms. AddisonWesley, Reading, Massachusetts, 3. Auflage, 1998.
256
Literaturverzeichnis
KOLONKO , M.: Generating uniformly distributed random numbers without floating point operations. Probability in the Engineering and Informational Sciences, 6:139–145, 1992. [KT75] K ARLIN , S. und H. M. TAYLOR: A First Course in Stocastic Processes. Academic Press, New York, 2. Auflage, 1975. [KW06] KOLONKO , M. und D. W ÄSCH: Sequential Reservoir Sampling with a Non-Uniform Distribution. ACM Trans Mathematical Software (TOMS), 32:257–273, 2006. [LC97] L’E CUYER , P. und R. C OUTURE: An Implementation of the Lattice and Spectral Tests for Multiple Recursive Linear Random Number Generators. INFORMS Journal on Computing, 9:206–217, 1997. [L’E88] L’E CUYER , P.: Efficient and Portable Combined Random Number Generators. Communications of the ACM, 31:742–749, 1988. [L’E99] L’E CUYER: Good Parameter Sets for Combined Multiple Recursive Random Number Generators. Operations Research, 47:159–164, 1999. [LGM69] L EWIS , P.A., A.S. G OODMAN und J.M. M ILLER: A pseudo-random number generator for the system/360. IBM System’s Journal, 8:136–143, 1969. [LS01] L’E CUYER , P. und R. S IMARD: On the Interaction of Birthday Spacings Tests with Certain Families of Random Number Generators. Mathematics and Computers in Simulation, 551:131– 137, 2001. [LT91] L’E CUYER , P. und S. T EZUKA: Structural properties for two classes of combined random number generators. Mathematics of Computation, 57:735–746, 1991. [LW06] L EHN , J. und H. W EGMANN: Einführung in die Statistik. Teubner, Wiesbaden, 5. Auflage, 2006. [Mar85] M ARSAGLIA , G.: A Current View of Random Number Generators. In: B ILLARD , L. (Herausgeber): Statistics and Computer Science: 16th Symposium on the Interface, siehe auch http://stat.fsu.edu/pub/diehard, Seiten 3–10, Amsterdam, NewYork, 1985. Noth-Holland. [MO79] M ARSHALL , A.W. und I. O LKIN: Inequalities: Theory of Majorization and Its Applications. Academic Press, New York, 1979. [MT85] M ARSAGLIA , G. und L. T SAY: Matrices and the Structure of Random Number Sequences. Linear Algebra and its applications, 67:147–156, 1985. [MT98] M ATSUMOTO , M. und T.N ISHIMURA: Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator. ACM Trans. on Modeling and Computer Simulation, 8:3–30, 1998. [Ree03] R EEVES , C. R. ANS J. E. ROWE: Genetic Algorithms – Principles and Perspectives. Kluwer Academic Publishers, Boston, 2003. [Rei94] R EINELT, G.: The Traveling Salesman: Computational Solutions for TSP. Springer-Verlag, Berlin, 1994. [Rip87] R IPLEY, B. D.: Stochastic Simulation. J. Wiley, New York, 1987. [Ros02] ROSS , S. M.: A Course in Simulation. Academic Press, New York, 3. Auflage, 2002. [She93] S HEDLER , G. S.: Regenerative Stochastik Simulation. Academic Press, Boston, 1993. [Wal77] WALKER , A.J.: An efficient method for generating discrete random variables with general distributions. ACM Trans. Math. Software, 3:253–256, 1977. [Wit85] W ITTING , H.: Mathematische Statistik. Teubner, Wiesbaden, 1985. [ZN83] Z IELINSKI , R. und P. N EUMANN: Stochastische Verfahren zur Suche nach dem Minimum einer Funktion. Akademie-Verlag, Berlin, 1983. [Kol92]
Sachverzeichnis ·, 92 ·, 11 x | y, 18 α-Fraktil, 251 α-Quantil, 253 Ablehnungsbereich, 68 Aktion, 232 Alias-Tabelle, 129 Alternative, 253 Anpassungstest, 67, 68 χ 2 -, 71 Kolmogoroff-Smirnov, 69 antithetisch, 212 b(1, p), 88 b(n, p), 93 Bediensystem M/G/1, 237 Bedienzeit, 183 bedingte Wahrscheinlichkeit, 250 Bewegungsgesetz, 232 Binomialverteilung, 93 Boxplot, 182 χn2 -Verteilung, 251 Chi-Quadrat-Verteilung, 251 d-gleichverteilt, 54 d-gleichverteilt mit m bit Genauigkeit, 54 denormalisiert, 43 Dichte, 249 einer Zufallsvariablen, 249 Diskrepanz, 54 double precision, 43 E X, 250 E [X | Y = y], 218 E [ X | Y ], 219 exp(α), 89 Ereignis, 184 ereignisgesteuerte Simulation, 184 Erlang-n-Verteilung, 251
Erneuerungsprozess, 198 erwartungstreu, 189 Erwartungswert, 250 bedingter, 218 Exponent, 43 Faltung , 251 Fehler 1. Art, 68 Fehler 2. Art, 68 Fehlerwahrscheinlichkeit, 68, 190 Fibonacci-Generator, 16 Fraktil, 251 geom(p), 93, 134 ggT , 18 G/G/1-Bediensystem, 183 Gamma-Funktion, 251 genetische Algorithmen, 243 geometrische Verteilung, 93, 134 Gleichverteilung auf der Kugeloberfläche, 152 auf Permutationen, 139 auf Simplex An , 146 diskret, 250 stetig, 250 Hit-or-miss-Methode, 179 Hypothese, 67, 253 i.i.d., 251 Inverse, verallgemeinerte, 85 inverser Kongruenzgenerator, 40 kgV , 18 Kov(X,Y ), 251 Konfidenzintervall einseitig, 193 zum Niveau α, 190 Konfidenzschranke, 193 Konvergenz nach Verteilung, 252 Korrelationskoeffizient, 251 Kovarianz, 251 Kovarianzmatrix, 250
258
kritischer Wert, 67, 68 KS-Test, 69 l(a, M), 19 L(a, c, M), 17 LKG(a, c, M; x0 ), 17 L(G), 16 L(G; x0 , . . . , xk−1 ), 16 linearer Kongruenzgenerator, 15 additive Konstante, 15 multiplikativer, 17 Multiplikator, 15 Ordnung, 15 M, 154 r MOD 1, 11, 14 x MOD M, 14 M/G/1, 237 Mantisse, 43 Median, 253 messbar, 249 Messraum, 249 Mittelwertsmethode, 208 modulo, 14 Modulus, 15 Monte-Carlo-Integration, 179 Multiplikator, 15 normalisiert, 43 Normalverteilung, 250 n-dimensionale, 250 Ordnung modulo M, 19 orthogonal, 153 π(λ ), 92 Periodenlänge, 16 Poisson-Prozess, 231 Poisson-Verteilung, 92 Positivteil, 232 primitive Wurzel, 20 Produktmaß, 251 Prozess Erneuerungs-, 198 regenerativer, 197 Prüfgröße, 67, 68 qα , 253 quadratisch integrierbar, 250
Sachverzeichnis
Quantil, 253 Quartil oberes, 253 unteres, 253 Quartilsabstand, 253 radial-symmetrisch, 154 Randverteilung, 251 Regenerationszeiten, 197 regenerative Simulation, 198 regenerativer Prozess, 197 Rekursionsschema, 13 rekursiv, 13 Reservoir, 166 Reservoiralgorithmus, 166 Rest bei Division durch M, 14 σˆ n2 (x(n) ), 191 σ -Algebra, 249 Schätzer, 175 Schieberegister-Generator, 27 Signifikanztest, 253 Simplex, 142 Simulation der Verteilung N(0, 1), 110, 118, 135 N(μ, σ 2 ), 119 Nn (μ, Σ), 137 U([a, b]), 89, 135 U({1, . . . , k}), 133 U({1, . . . , K}), 92 Γ(α, n), 136 exp(α), 89, 136 π(λ ), 92, 134 U˜ n−1 (An ), 149, 150 U˜ n−1 (Bn ), 156 b(1, p), 88, 133 b(n, p), 93, 133 Un (Sn ), 149 Erlang-, 136 geometrische, 93, 134 mit Trapezdichte, 112 Weibull, 136 Simulation eines G/G/1-Systems, 186 Simulation, ereignisgesteuerte, 184 single precision, 43 Spektraltest, 64 Spreizung, 29 Standard-Normalverteilung, 250 starkes Gesetz der großen Zahlen, 252
259
Startwerten, 13, 15 Statistik, 175 statistisches Experiment, 253 Stichprobe, 67 Stichprobenmittel, 189 Stichprobenstreuung, 191 Stichprobenvariable, 253 stochastisch kleiner, 93 Tausworthe-Generator, 29 teilerfremd, 18 Test, 67, 253 KS-, 69 M-Tupel, 77 zum Niveau α, 68, 253 Testproblem, 253 Transformationssatz für Dichten, 249 Trapezoid-Methode, 110 Travelling Salesman Problem, 159 Typenmix, 231 U([a, b]), 89, 250 U({0, . . . , M − 1}, 250 Un (A), 250 U˜ n−1 (An ), 146 Übergangsfunktion, 233 unabhängig, 251 unabhängig und identisch Q-verteilt, 251 Untermannigfaltigkeit, 146 V[ X | Y = y ], 219 V[ X | Y ], 219 Varianz, 250 bedingte, 219 Verteilung χ 2 -, 251
bedingte, 250 Bernoulli-, 88 Binomial-, 93 diskrete Gleich-, 92, 250 einer Zufallsvariablen, 249 Erlang-n, 251 Exponential-, 89 Gamma-, 251 geometrische, 93 Normal-, 250 Poisson-, 92 radial-symmetrisch, 154 stetige Gleich-, 89, 250 Verteilungsannahme, 253 Verteilungsfunktion, 249 empirisch, 69 Wahrscheinlichkeitsmaß, 249 Wahrscheinlichkeitsraum, 249 Wald’sche Gleichung, 252 wedge-tail-method, 110 Wortlänge, 29 xn , 190 x(n) , 190 X(n) , 190 X n , 190 zentraler Grenzwertsatz, 252 Ziehungswahrscheinlichkeit, 160 Zufallsgenerator, 9, 13 Zufallsvariable, 249 Zufallszahlen, 9 Zuweisungsstrategie, 232 Zwischenankunftszeiten, 183 Zähldichte, 249