Ich versuche, den Rebinning-Algorithmus der Monte-Carlo-Integration von VEGAS ( Originalveröffentlichung ( Preprint von LKlevin) und Implementierungshinweise ) zu verstehen . Ich werde versuchen, zuerst zu erklären, was ich zu verstehen glaube, und dann meine Fragen zu stellen.
Nehmen wir der Einfachheit halber an, wir haben eine eindimensionale Funktion , die über das gesamte Intervall positiv ist . Dieses Intervall ist beispielsweise in n Bins unterteilt. Diese Behälter sind anfangs gleich groß. Die Behältergrößen \ Delta x_i definieren eine Wahrscheinlichkeitsdichte[ 0 , 1 ] n & Dgr; x i
Die Behältergrößen müssen sich zur Länge des Intervalls addieren, damit richtig normalisiert wird:
Unter Verwendung von zufällig ausgewählten Zahlen aus der Verteilung berechnet VEGAS eine Näherung des Integrals:
Bisher ist dies nur eine wichtige Stichprobe (ich bin nicht an einer geschichteten Stichprobe interessiert), die ein Raster mit variabler Größe verwendet. Das interessante Stück in VEGAS ist der Rebinning-Algorithmus, dh der Algorithmus, der die Bin-Größen in Abhängigkeit von den Funktionswerten neu berechnet, die in der vorherigen Iteration akkumuliert wurden:
- Für jeden Behälter werden die quadratischen Funktionswerte (?) Summiert (in der Originalveröffentlichung werden die absoluten Werte summiert).
- Es gibt auch eine Dämpfungsfunktion, die auf jeden Wert angewendet wird, um "schnelle, destabilisierende Änderungen zu vermeiden".
- Danach wird jeder Wert mit den benachbarten Bins geglättet. Ich denke, dies erhöht auch die Stabilität des Rebinning-Algorithmus für bestimmte Funktionen (aber ich kann nicht erklären, warum). Nennen wir die Endwerte .
- Die Behältergrößen sind jetzt so eingestellt, dass jeder neue Behälter ungefähr den Durchschnitt enthält:
Dieser Algorithmus lässt die Bins wachsen, wenn die Funktion "klein" ist, und schrumpfen, wenn die Funktion "groß" ist. Klein und groß werden im Verhältnis zueinander verstanden, z. B. werden die Maxima der Funktion als "groß" und alles andere als "kleiner" betrachtet. Da die Wahrscheinlichkeit, dass ein Punkt in einem Bin landet, gleich ist (VEGAS wird geschrieben, um dieses Verhalten zu zeigen), wird die Funktion am meisten dort abgetastet, wo sie am größten ist, und dadurch wird der Fehler verringert.
Warum ist es so geschrieben? Warum geht man das Problem nicht direkter an, indem man beispielsweise die gemittelte und gruppierte Funktion als Wahrscheinlichkeitsdichte für die nächste Iteration verwendet?
quelle
Antworten:
Haftungsausschluss: Ich bin mit Monte-Carlo-Algorithmen im Allgemeinen sehr vertraut, nicht jedoch mit dem VEGAS-Algorithmus im Besonderen.
Der VEGAS-Algorithmus basiert auf der Tatsache, dass wir, wenn wir die genaue Wahrscheinlichkeitsdichte kennen, die die Varianz unserer Monte-Carlo-Integration minimiert, unsere Antwort mit genau 1 Auswertung der Funktion f erhalten könnten.
Dies ist gegeben durch
Wir kennen die Wahrscheinlichkeitsdichte nicht und eine genaue Schätzung ist für eine hochdimensionale Funktion nicht möglich, da sie schnell eine enorme Menge an Speicher beanspruchen würde.
Stattdessen approximiert der VEGAS-Algorithmus es als stückweise konstante M-Schritt-Funktion.
Ich vermute, Sie haben keinen Zugriff auf den vollständigen Artikel? Der Originalartikel verwendet NICHT die Quadratfunktion, sondern die absolute (eine Vordruckversion finden Sie hier ).
Ich hoffe, dies hilft bei der Beantwortung Ihrer Frage. Der ursprüngliche Artikel beantwortet das meiste davon, daher könnte es sich lohnen, ihn zu bekommen
quelle