Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Verwerfungsmethode – Wikipedia
Verwerfungsmethode – Wikipedia 👆 Click Here!
aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Rejection Sampling)

Die Verwerfungsmethode oder Rückweisungsmethode (auch Acceptance-Rejection-Verfahren; engl. rejection sampling) ist eine Methode, um aus Standardzufallszahlen – das sind Realisierungen stochastisch unabhängiger, auf dem Einheitsintervall gleichverteilter Zufallsvariablen – Zufallszahlen aus anderen Wahrscheinlichkeitsverteilungen zu erzeugen. Sie geht auf John von Neumann zurück.[1] Sie kann genutzt werden, wenn die Inversion der Verteilungsfunktion nicht möglich oder zu aufwendig ist.

Idee

[Bearbeiten | Quelltext bearbeiten]

F {\displaystyle F\,} {\displaystyle F\,} sei hierbei die Verteilungsfunktion der Verteilung, zu der Zufallszahlen erzeugt werden sollen. G {\displaystyle G\,} {\displaystyle G\,} sei eine Hilfsverteilungsfunktion, zu der sich auf einfachem Weg – etwa über die Inversionsmethode – Zufallszahlen erzeugen lassen. Es seien ferner f {\displaystyle f\,} {\displaystyle f\,} und g {\displaystyle g\,} {\displaystyle g\,} die zugehörigen Dichten.

Um die Verwerfungsmethode anwenden zu können, muss zudem ein konstantes k ∈ R {\displaystyle k\in \mathbb {R} } {\displaystyle k\in \mathbb {R} } existieren, so dass f ( x ) ≤ k ⋅ g ( x ) {\displaystyle f(x)\leq k\cdot g(x)} {\displaystyle f(x)\leq k\cdot g(x)} für jedes x ∈ R {\displaystyle x\in \mathbb {R} } {\displaystyle x\in \mathbb {R} } erfüllt ist. Das k {\displaystyle k} {\displaystyle k} wird benötigt, da die Fläche unter einer Dichtefunktion immer 1 ist. Ohne den Vorfaktor k {\displaystyle k} {\displaystyle k} gäbe es deshalb zwangsläufig Stellen mit f ( x ) > g ( x ) {\displaystyle f(x)>g(x)} {\displaystyle f(x)>g(x)}.

Seien nun u i {\displaystyle u_{i}\,} {\displaystyle u_{i}\,} Standardzufallszahlen und v i {\displaystyle v_{i}\,} {\displaystyle v_{i}\,} Zufallszahlen, die der Verteilungsfunktion G {\displaystyle G\,} {\displaystyle G\,} genügen.

Dann genügt mit j := inf { n ≥ 1 ∣ k ⋅ u n ⋅ g ( v n ) < f ( v n ) } {\displaystyle j:=\inf\{n\geq 1\mid k\cdot u_{n}\cdot g(v_{n})<f(v_{n})\}} {\displaystyle j:=\inf\{n\geq 1\mid k\cdot u_{n}\cdot g(v_{n})<f(v_{n})\}} die Zufallszahl x := v j {\displaystyle x:=v_{j}} {\displaystyle x:=v_{j}} der Verteilungsfunktion F {\displaystyle F} {\displaystyle F}. Man wartet gewissermaßen auf einen ersten Treffer, der unterhalb von f {\displaystyle f} {\displaystyle f} liegt.

Anders gesagt: Es werden Zufallszahlen v i {\displaystyle v_{i}} {\displaystyle v_{i}} nach der Verteilungsfunktion G {\displaystyle G} {\displaystyle G} erzeugt, und die Zahl v n {\displaystyle v_{n}} {\displaystyle v_{n}} wird jeweils mit der Wahrscheinlichkeit

p = f ( v n ) k ⋅ g ( v n ) {\displaystyle p={\frac {f(v_{n})}{k\cdot g(v_{n})}}} {\displaystyle p={\frac {f(v_{n})}{k\cdot g(v_{n})}}}

akzeptiert (Acceptance), also dann, wenn erstmals u n < p {\displaystyle u_{n}<p} {\displaystyle u_{n}<p} ist. Die vorhergehenden Zufallszahlen werden dagegen verworfen (Rejection).

Einfaches Beispiel

[Bearbeiten | Quelltext bearbeiten]

Um eine Zufallszahl aus { 1 , 2 , 3 , 4 , 5 } {\displaystyle \{1,2,3,4,5\}} {\displaystyle \{1,2,3,4,5\}} zu wählen, wobei jede Zahl mit der gleichen Wahrscheinlichkeit 1 5 {\displaystyle {\tfrac {1}{5}}} {\displaystyle {\tfrac {1}{5}}} auftreten soll, kann man einen herkömmlichen Spielwürfel mit 6 Seiten werfen. Erscheint eine 6, wirft man ein erneutes Mal, damit stutzt man die möglichen Ergebnisse. Meist wird aber bereits beim ersten Wurf eine Zahl zwischen 1 und 5 (einschließlich) erscheinen.

Implementierung

[Bearbeiten | Quelltext bearbeiten]

Programmiertechnisch wird die Verwerfungsmethode allgemein wie folgender Pseudocode realisiert:

   function F_verteilte_Zufallszahl()
     var x, u
     repeat
       x := G_verteilte_Zufallszahl()
       u := gleichförmig_verteilte_Zufallszahl()
     until u * k * g(x) < f(x)
     return x
   end

Der Erwartungswert für die Anzahl der Schleifendurchläufe ist k {\displaystyle k} {\displaystyle k} (siehe unten, Effizienz).

Grafische Veranschaulichung

[Bearbeiten | Quelltext bearbeiten]
Beispiel: Der erste Treffer ist hier durch C angedeutet

Man kann sich die Methode so vorstellen, dass in der xy-Ebene zwischen der x-Achse und dem Graph von k ⋅ g ( x ) {\displaystyle k\cdot g(x)} {\displaystyle k\cdot g(x)} gleichmäßig auf der Fläche verteilte Zufallspunkte verstreut werden. Als x-Koordinate des Punkts i {\displaystyle i} {\displaystyle i} nimmt man die G-verteilte Zufallszahl v i {\displaystyle v_{i}} {\displaystyle v_{i}}, und die y-Koordinate erhält man aus der standardverteilten Zahl u i {\displaystyle u_{i}} {\displaystyle u_{i}}: y i = u i ⋅ k ⋅ g ( v i ) {\displaystyle y_{i}=u_{i}\cdot k\cdot g(v_{i})} {\displaystyle y_{i}=u_{i}\cdot k\cdot g(v_{i})}.

Von diesen Zufallspunkten werden diejenigen verworfen, die oberhalb des Graphs von f ( x ) {\displaystyle f(x)} {\displaystyle f(x)} liegen ( y i > f ( v i ) {\displaystyle y_{i}>f(v_{i})} {\displaystyle y_{i}>f(v_{i})}). Die x-Koordinaten der übrigen Punkte sind dann nach der Dichtefunktion f ( x ) {\displaystyle f(x)} {\displaystyle f(x)} verteilt.

Um eine Zufallszahl nach dieser Verteilung zu erzeugen, werden also solange neue Zufallspunkte erzeugt, bis einer unterhalb von f ( x ) {\displaystyle f(x)} {\displaystyle f(x)} liegt (im Bild der Punkt C). Dessen x-Koordinate ist die gesuchte Zufallszahl.

Effizienz

[Bearbeiten | Quelltext bearbeiten]

Die Fläche unter der Dichtefunktion f ( x ) {\displaystyle f(x)} {\displaystyle f(x)} ist 1, und unter k ⋅ g ( x ) {\displaystyle k\cdot g(x)} {\displaystyle k\cdot g(x)} ist die Fläche entsprechend k {\displaystyle k} {\displaystyle k}. Deshalb müssen im Mittel k {\displaystyle k} {\displaystyle k} Standardzufallszahlen und k {\displaystyle k} {\displaystyle k} Zufallszahlen, die G {\displaystyle G} {\displaystyle G} genügen, verbraucht werden, bis der erste Treffer erzielt wird. Daher ist es von Vorteil, wenn die Hilfsdichte g {\displaystyle g} {\displaystyle g} die Dichte f {\displaystyle f} {\displaystyle f} möglichst gut approximiert, damit man k {\displaystyle k} {\displaystyle k} klein wählen kann.

Literatur

[Bearbeiten | Quelltext bearbeiten]
  • Luc Devroye: Non-Uniform Random Variate Generation. (PDF; 758 kB) Springer-Verlag, New York NY u. a. 1986, ISBN 0-387-96305-7, S. 41ff.
  • Donald E. Knuth: The Art of Computer Programming. Volume 2: Seminumerical Algorithms. 3. Auflage. Addison-Wesley, Reading MA u. a. 1997, ISBN 0-201-89684-2, S. 120ff. (Addison-Wesley Series in Computer Science and Information Processing).
  • Horst Rinne: Taschenbuch der Statistik. 4. Auflage. Harri Deutsch, Frankfurt am Main 2008, ISBN 978-3-8171-1827-4, 3.4.4.2 Verwerfungsmethode, S. 210. 
  • Christian P. Robert, George Casella: Monte Carlo Statistical Methods (= Springer Texts in Statistics). 2. Auflage. Springer, 2004, ISBN 0-387-21239-6, 2.3 Accept-Reject Methods, S. 47–53, doi:10.1007/978-1-4757-4145-2. 

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ John von Neumann: Various techniques used in connection with random digits. Monte Carlo methods. In: Nat. Bureau Standards, 12, 1951, S. 36–38.
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Verwerfungsmethode&oldid=237950112“
Kategorien:
  • Stochastik
  • Pseudozufallszahlengenerator

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id