<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Verwerfungsmethode</id>
	<title>Verwerfungsmethode - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Verwerfungsmethode"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Verwerfungsmethode&amp;action=history"/>
	<updated>2026-06-02T05:26:52Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Verwerfungsmethode&amp;diff=285013&amp;oldid=prev</id>
		<title>imported&gt;Sigma^2: /* Einleitung */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Verwerfungsmethode&amp;diff=285013&amp;oldid=prev"/>
		<updated>2023-10-07T10:25:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Einleitung&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;Verwerfungsmethode&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Rückweisungsmethode&amp;#039;&amp;#039;&amp;#039; (auch &amp;#039;&amp;#039;&amp;#039;Acceptance-Rejection-Verfahren&amp;#039;&amp;#039;&amp;#039;; engl. &amp;#039;&amp;#039;rejection sampling&amp;#039;&amp;#039;) ist eine Methode, um aus [[Standardzufallszahl]]en – das sind Realisierungen stochastisch unabhängiger, auf dem [[Einheitsintervall]] [[Stetige Gleichverteilung|gleichverteilter]] Zufallsvariablen – Zufallszahlen aus anderen Wahrscheinlichkeitsverteilungen zu erzeugen. Sie geht auf [[John von Neumann]] zurück.&amp;lt;ref&amp;gt;John von Neumann: &amp;#039;&amp;#039;Various techniques used in connection with random digits. Monte Carlo methods&amp;#039;&amp;#039;. In: &amp;#039;&amp;#039;Nat. Bureau Standards&amp;#039;&amp;#039;, 12, 1951, S. 36–38.&amp;lt;/ref&amp;gt; Sie kann genutzt werden, wenn die [[Inversionsmethode|Inversion der Verteilungsfunktion]] nicht möglich oder zu aufwendig ist.&lt;br /&gt;
&lt;br /&gt;
== Idee ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F\,&amp;lt;/math&amp;gt; sei hierbei die [[Verteilungsfunktion]] der Verteilung, zu der Zufallszahlen erzeugt werden sollen. &amp;lt;math&amp;gt;G\,&amp;lt;/math&amp;gt; sei eine Hilfsverteilungsfunktion, zu der sich auf einfachem Weg –&amp;amp;nbsp;etwa über die [[Inversionsmethode]]&amp;amp;nbsp;– Zufallszahlen erzeugen lassen. Es seien ferner &amp;lt;math&amp;gt;f\,&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;g\,&amp;lt;/math&amp;gt; die zugehörigen [[Dichtefunktion|Dichten]].&lt;br /&gt;
&lt;br /&gt;
Um die Verwerfungsmethode anwenden zu können, muss zudem ein konstantes &amp;lt;math&amp;gt;k \in \mathbb{R}&amp;lt;/math&amp;gt; existieren, so dass &amp;lt;math&amp;gt;f(x) \le k \cdot g(x)&amp;lt;/math&amp;gt; für jedes &amp;lt;math&amp;gt;x \in \mathbb{R}&amp;lt;/math&amp;gt; erfüllt ist. Das &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; wird benötigt, da die Fläche unter einer Dichtefunktion immer 1 ist. Ohne den Vorfaktor &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; gäbe es deshalb zwangsläufig Stellen mit &amp;lt;math&amp;gt;f(x) &amp;gt; g(x)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Seien nun &amp;lt;math&amp;gt;u_i\,&amp;lt;/math&amp;gt; [[Standardzufallszahl]]en und &amp;lt;math&amp;gt;v_i\,&amp;lt;/math&amp;gt; [[Zufallszahl]]en, die der Verteilungsfunktion &amp;lt;math&amp;gt;G\,&amp;lt;/math&amp;gt; genügen.&lt;br /&gt;
&lt;br /&gt;
Dann genügt mit &amp;lt;math&amp;gt;j := \inf \{ n \ge 1 \mid k \cdot u_n \cdot g(v_n) &amp;lt; f (v_n) \}&amp;lt;/math&amp;gt; die Zufallszahl &amp;lt;math&amp;gt;x := v_j&amp;lt;/math&amp;gt; der Verteilungsfunktion &amp;lt;math&amp;gt;F&amp;lt;/math&amp;gt;. Man wartet gewissermaßen auf einen ersten Treffer, der unterhalb von &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; liegt.&lt;br /&gt;
&lt;br /&gt;
Anders gesagt: Es werden Zufallszahlen &amp;lt;math&amp;gt;v_i&amp;lt;/math&amp;gt; nach der Verteilungsfunktion &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; erzeugt, und die Zahl &amp;lt;math&amp;gt;v_n&amp;lt;/math&amp;gt; wird jeweils mit der Wahrscheinlichkeit&lt;br /&gt;
: &amp;lt;math&amp;gt;p = \frac{f(v_n)} {k \cdot g(v_n)}&amp;lt;/math&amp;gt;&lt;br /&gt;
akzeptiert (Acceptance), also dann, wenn erstmals &amp;lt;math&amp;gt;u_n &amp;lt; p&amp;lt;/math&amp;gt; ist. Die vorhergehenden Zufallszahlen werden dagegen verworfen (Rejection).&lt;br /&gt;
&lt;br /&gt;
== Einfaches Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Um eine Zufallszahl aus &amp;lt;math&amp;gt;\{1,2,3,4,5\}&amp;lt;/math&amp;gt; zu wählen, wobei jede Zahl mit der gleichen Wahrscheinlichkeit &amp;lt;math&amp;gt;\tfrac 15&amp;lt;/math&amp;gt; auftreten soll, kann man einen herkömmlichen [[Spielwürfel]] mit 6 Seiten werfen. Erscheint eine&amp;amp;nbsp;6, wirft man ein erneutes Mal, damit [[Stutzung|stutzt]] man die möglichen Ergebnisse. Meist wird aber bereits beim ersten Wurf eine Zahl zwischen 1 und 5 (einschließlich) erscheinen.&lt;br /&gt;
&lt;br /&gt;
== Implementierung ==&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird die Verwerfungsmethode allgemein wie folgender [[Pseudocode]] realisiert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
   function F_verteilte_Zufallszahl()&lt;br /&gt;
     var x, u&lt;br /&gt;
     repeat&lt;br /&gt;
       x := G_verteilte_Zufallszahl()&lt;br /&gt;
       u := gleichförmig_verteilte_Zufallszahl()&lt;br /&gt;
     until u * k * g(x) &amp;lt; f(x)&lt;br /&gt;
     return x&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Erwartungswert für die Anzahl der Schleifendurchläufe ist &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; (siehe unten, &amp;#039;&amp;#039;Effizienz&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
== Grafische Veranschaulichung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Beispiel Verwerfungsmethode.png|miniatur|450px|Beispiel: Der erste Treffer ist hier durch C angedeutet]]&lt;br /&gt;
&lt;br /&gt;
Man kann sich die Methode so vorstellen, dass in der [[xy-Ebene]] zwischen der [[x-Achse]] und dem Graph von &amp;lt;math&amp;gt;k \cdot g(x) &amp;lt;/math&amp;gt; gleichmäßig auf der Fläche verteilte Zufallspunkte verstreut werden. Als x-Koordinate des Punkts &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; nimmt man die G-verteilte Zufallszahl &amp;lt;math&amp;gt; v_i&amp;lt;/math&amp;gt;, und die y-Koordinate erhält man aus der standardverteilten Zahl &amp;lt;math&amp;gt;u_i&amp;lt;/math&amp;gt;: &amp;lt;math&amp;gt;y_i = u_i \cdot k \cdot g(v_i)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Von diesen Zufallspunkten werden diejenigen verworfen, die oberhalb des Graphs von &amp;lt;math&amp;gt; f(x)&amp;lt;/math&amp;gt; liegen (&amp;lt;math&amp;gt;y_i &amp;gt; f(v_i)&amp;lt;/math&amp;gt;). Die x-Koordinaten der übrigen Punkte sind dann nach der Dichtefunktion &amp;lt;math&amp;gt; f(x)&amp;lt;/math&amp;gt; verteilt.&lt;br /&gt;
&lt;br /&gt;
Um eine Zufallszahl nach dieser Verteilung zu erzeugen, werden also solange neue Zufallspunkte erzeugt, bis einer unterhalb von &amp;lt;math&amp;gt; f(x)&amp;lt;/math&amp;gt; liegt (im Bild der Punkt C). Dessen x-Koordinate ist die gesuchte Zufallszahl.&lt;br /&gt;
&lt;br /&gt;
== Effizienz ==&lt;br /&gt;
&lt;br /&gt;
Die Fläche unter der Dichtefunktion &amp;lt;math&amp;gt; f(x)&amp;lt;/math&amp;gt; ist&amp;amp;nbsp;1, und unter &amp;lt;math&amp;gt;k \cdot g(x) &amp;lt;/math&amp;gt; ist die Fläche entsprechend &amp;lt;math&amp;gt;k &amp;lt;/math&amp;gt;. Deshalb müssen im Mittel &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Standardzufallszahlen und &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Zufallszahlen, die &amp;lt;math&amp;gt;G&amp;lt;/math&amp;gt; genügen, verbraucht werden, bis der erste Treffer erzielt wird. Daher ist es von Vorteil, wenn die Hilfsdichte &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt; die Dichte &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; möglichst gut approximiert, damit man &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; klein wählen kann.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Luc Devroye: [http://luc.devroye.org/handbooksimulation1.pdf &amp;#039;&amp;#039;Non-Uniform Random Variate Generation&amp;#039;&amp;#039;.] (PDF; 758&amp;amp;nbsp;kB) Springer-Verlag, New York NY u.&amp;amp;nbsp;a. 1986, ISBN 0-387-96305-7, S. 41ff.&lt;br /&gt;
* [[Donald E. Knuth]]: &amp;#039;&amp;#039;[[The Art of Computer Programming]].&amp;#039;&amp;#039; Volume 2: &amp;#039;&amp;#039;Seminumerical Algorithms.&amp;#039;&amp;#039; 3. Auflage. Addison-Wesley, Reading MA u.&amp;amp;nbsp;a. 1997, ISBN 0-201-89684-2, S. 120ff. (&amp;#039;&amp;#039;Addison-Wesley Series in Computer Science and Information Processing&amp;#039;&amp;#039;).&lt;br /&gt;
* {{Literatur |Autor=[[Horst Rinne]] |Titel=Taschenbuch der Statistik |Verlag=Harri Deutsch |Ort=Frankfurt am Main |Datum=2008 |Auflage=4 |ISBN=978-3-8171-1827-4 |Fundstelle=&amp;#039;&amp;#039;3.4.4.2 Verwerfungsmethode&amp;#039;&amp;#039;, S. 210}}&lt;br /&gt;
* {{Literatur |Autor=Christian P. Robert, George Casella |Titel=Monte Carlo Statistical Methods |Auflage=2 |Reihe=Springer Texts in Statistics |Verlag=Springer |Datum=2004 |ISBN=0-387-21239-6 |Fundstelle=&amp;#039;&amp;#039;2.3 Accept-Reject Methods&amp;#039;&amp;#039;, S. 47–53 |DOI=10.1007/978-1-4757-4145-2 }}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Stochastik]]&lt;br /&gt;
[[Kategorie:Pseudozufallszahlengenerator]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Sigma^2</name></author>
	</entry>
</feed>