Acceptance-Rejection

Acceptance-Rejection

Die Verwerfungsmethode (auch Acceptance-Rejection-Verfahren) ist eine Methode zur Erzeugung von Zufallszahlen zu einer vorgegebenen Verteilung und geht auf John von Neumann zurück.[1] Sie kann genutzt werden, wenn die Anwendung der Inversionsmethode aufgrund der Komplexität der behandelten Funktion zu schwierig wäre.

Inhaltsverzeichnis

Idee

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

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

Seien nun u_i\, Standardzufallszahlen und v_i\, Zufallszahlen, die der Verteilungsfunktion G\, genügen.

Dann genügt mit j := \inf \{ n \ge 1 \mid k \cdot u_n \cdot g(v_n) < f (v_n) \} die Zufallszahl x: = vj der Verteilungsfunktion F. Man wartet gewissermaßen auf einen ersten Treffer, der unterhalb von f liegt.

Anders gesagt: Es werden Zufallszahlen vi nach der Verteilungsfunktion G erzeugt, und die Zahl vn wird jeweils mit der Wahrscheinlichkeit

p = \frac{f(v_n)} {k \cdot g(v_n)}

akzeptiert (Acceptance), also dann, wenn erstmals un < p ist. Die vorhergehenden Zufallszahlen werden dagegen verworfen (Rejection).

Einfaches Beispiel

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

Implementierung

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 (siehe unten, Effizienz).

Grafische Veranschaulichung

Beispiel: Der erste Treffer ist hier durch C angedeutet

Man kann sich die Methode so vorstellen, dass in der x-y-Ebene zwischen der x-Achse und dem Graph von k \cdot g(x) gleichmäßig auf der Fläche verteilte Zufallspunkte verstreut werden. Als x-Koordinate des Punkts i nimmt man die G-verteilte Zufallszahl vi, und die y-Koordinate erhält man aus der standardverteilten Zahl ui: y_i = u_i \cdot k \cdot g(v_i).

Von diesen Zufallspunkten werden diejenigen verworfen, die oberhalb des Graphs von f(x) liegen (yi > f(vi)). Die x-Koordinaten der übrigen Punkte sind dann nach der Dichtefunktion f(x) verteilt.

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

Effizienz

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

Quellen

  1. John von Neumann: Various techniques used in connection with random digits. Monte Carlo methods. In: Nat. Bureau Standards, 12 (1951), S. 36–38.

Literatur


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Acceptance-Rejection-Methode — Die Verwerfungsmethode (auch Acceptance Rejection Verfahren) ist eine Methode zur Erzeugung von Zufallszahlen zu einer vorgegebenen Verteilung und geht auf John von Neumann zurück.[1] Sie kann genutzt werden, wenn die Anwendung der… …   Deutsch Wikipedia

  • Acceptance-Rejection-Verfahren — Die Verwerfungsmethode (auch Acceptance Rejection Verfahren) ist eine Methode zur Erzeugung von Zufallszahlen zu einer vorgegebenen Verteilung und geht auf John von Neumann zurück.[1] Sie kann genutzt werden, wenn die Anwendung der… …   Deutsch Wikipedia

  • Rejection sampling — In mathematics, rejection sampling is a technique used to generate observations from a distribution. It is also commonly called the acceptance rejection method or accept reject algorithm .It generates sampling values from an arbitrary probability …   Wikipedia

  • rejection — re|jec|tion [rıˈdʒekʃən] n 1.) [U and C] the act of not accepting, believing in, or agreeing with something ≠ ↑acceptance rejection of ▪ What are the reasons for his rejection of the theory? 2.) [U and C] the act of not accepting someone for a… …   Dictionary of contemporary English

  • rejection — re·jec·tion /ri jek shən/ n: the act or an instance of rejecting: as a: a refusal to accept an offer b: a refusal to accept nonconforming goods as performance of a contract ◇ Rejection and revocation are two remedies available to the buyer under… …   Law dictionary

  • acceptance — I noun accedence, acceptio, accession, accordance, acknowledgment, acquiescence, adoption, agreement, allowance, approbation, approval, assent, assurance, compliance, comprobatio, concordance, consent, endorsement, ratification, receipt,… …   Law dictionary

  • rejection of goods — the return by the buyer of the goods and the recovery of the price. Often it will be the best remedy, certainly better than the alternative, which is to allow damages to be recovered. This right is lost once the goods have been accepted. See… …   Law dictionary

  • rejection — [n] denial, refusal bounce, brushoff*, cold shoulder*, disallowance, dismissal, elimination, exclusion, hard time*, kick in teeth*, nix*, no dice*, no go*, nothing doing*, no way*, pass*, rebuff, renunciation, repudiation, slap in the face*,… …   New thesaurus

  • Rejection letter — A rejection letter is a form of communication, print or otherwise, indicating the refusal of assent (viz: rejection) of a recommended course. There are numerous types and subtypes of rejection letters.Types of rejection lettersLiteraryA book or… …   Wikipedia

  • acceptance — [[t]ækse̱ptəns[/t]] acceptances 1) N VAR: usu with supp, oft poss N, N of n Acceptance of an offer or a proposal is the act of saying yes to it or agreeing to it. The Party is being degraded by its acceptance of secret donations... I sent them… …   English dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”