2010-05-26 11 views
14

Wann sollte die Monte-Carlo-Methode verwendet werden?Warum Monte-Carlo-Methode?

Warum entschied sich Joel beispielsweise dafür, die Monte-Carlo-Methode für Evidence Based Scheduling zu verwenden, anstatt alle Benutzerdaten für das vergangene Jahr methodisch zu verarbeiten?

+0

Was meinen Sie mit "methodische Verarbeitung" der Benutzerdaten? zufällige Samples ist eine ziemlich einfache Art Glockenkurven zu addieren, wie würdest du das machen? – amwinter

+2

Konnten Sie nicht alle verfügbaren Daten verarbeiten und die gleichen Statistiken mit den Worten "75% der Daten sind größer als X, 50% der Daten sind größer als Y und 25% der Daten sind größer als Z" erstellen? – Gili

Antwort

12

Angenommen, Sie möchten eine bestimmte Menge an Interesse schätzen. Im Beispiel von Joel ist das Lieferdatum das, was Sie schätzen wollen. In den meisten derartigen Situationen gibt es zufällige Faktoren, die unsere Schätzungen beeinflussen.

Wenn Sie eine zufällige Menge haben, möchten Sie in der Regel ihren Mittelwert und die Standardabweichung kennen, damit Sie geeignete Maßnahmen ergreifen können. In einfachen Situationen können Sie die Menge als Standardverteilung (z. B. Normalverteilung) modellieren, für die analytische Formeln für den Mittelwert und die Standardabweichung existieren. Es gibt jedoch viele Situationen, in denen keine analytischen Formeln existieren. In solchen Situationen greifen wir statt einer analytischen Lösung für den Mittelwert und die Standardabweichung auf die Simulation zurück. Die Idee ist:

Schritt 1: Faktoren erzeugt, die die Menge von Interesse mit entsprechenden Verteilungen

Schritt 2 auswirken: Berechnen Menge von Interesse

Wiederholen Sie die Schritte 1 und 2 viele Male und berechnet den empirischen Mittelwert und Standardabweichung für das, was Sie wissen wollen.

Das oben genannte ist bei weitem die typische Anwendung von Monte Carlo Anwendung. Siehe den von Jarrod bereitgestellten wikipedia-Link für mehrere solcher Anwendungen und einige Beispiele für interessante Anwendungen, bei denen es keine inhärente Zufälligkeit gibt (z. B. Schätzung von pi).

+0

Ich mag deine Antwort, außer dass die Schritte, die du gibst, sehr vage sind. Kannst du sie irgendwie genauer machen? – Gili

+1

Nun, Monte Carlo ist ein riesiges Gebiet mit vielen Anwendungen. Angenommen, Sie möchten einige Daten über verschiedene Projekteigenschaften (z. B. Nein der Entwickler, Ziel-OS usw.) und Lieferzeiten (z. B. 3 Monate, 6 Monate usw.) haben. Möglicherweise kennen Sie bereits die Beziehung zwischen Projekteigenschaften und Lieferzeiten. Zum Beispiel Schiffszeiten ~ N (mu, sigma^2) I (Schiffszeiten> 0), wobei N (.) Eine Normalverteilung angibt, mu und sigma eine Funktion der Projekteigenschaften sind und I (Schiffszeiten> 0) die Tatsache ausdrückt diese Schiffszeiten können nicht negativ sein. – vad

+1

Vielleicht möchten Sie die Auswirkungen der Änderung einiger Projektparameter (z. B. Erhöhung der Anzahl der Entwickler) auf die Schiffszeiten kennen. Leider existiert kein geschlossener Ausdruck für den Mittelwert einer abgeschnittenen Normalen. Also, was Sie tun würden, ist: Schritt 1: ein Generieren abgeschnittene normale Verwendung Verwerfungsmethode oder inverse Transformationsverfahren Schritt 2. Store Schiffs Zeit (in diesem Fall Schritt 2 beinhaltet keine Berechnung) Wiederholen Sie die Schritte 1 und 2 N Zeiten und berechnen Sie die mittlere und std dev der Schiffszeiten, die Sie in Schritt 2 gespeichert haben. Das obige geht davon aus, dass Sie die Beziehung zwischen den Projektparametern und mu und Sigma kennen. – vad

3

Wikipedia hat einen guten Artikel über Monte Carlo Simulationsmethoden. Ich habe Monte Carlo bei einigen Gelegenheiten benutzt - kurz gesagt, MC-Methoden neigen dazu, genaue Antworten zu geben, wenn man versucht, Ergebnisse mit Samples zu erzeugen, die ziemlich zufällig sind und jemand würde typischerweise Intuition verwenden, um einen Trend zu erraten. Leider ist es schwierig, MC-Methoden zu erklären.

+0

Wenn ich Daten von x Spiel Bewertung und keine Installation habe. Problem: Vorhersage der Anzahl der Installationen für y Spiel Ist dies der richtige Fall MC-Simulation zu verwenden? –

1

Da die Schätzungen bei der Planung von Programmieraufgaben normalerweise ziemlich weit verteilt sind, ist es sinnvoller, sie statistisch zu behandeln.

Wenn wir ein Projekt mit mehreren hundert Aufgaben durchführen, werden die Fehler in den Schätzungen ausgeglichen und Sie erhalten eine Verteilung, die die Wahrscheinlichkeit der Fertigstellung des Projekts als Bereich anzeigt.

Es umgeht auch einige schwerwiegende Probleme wie Task-Pufferung und Student-Syndrom, die Ergebnisse noch mehr verzerren.

2

Manchmal ist das Überprüfen aller Optionen einfach unerschwinglich.

16

Monte-Carlo-Methoden werden häufig verwendet when the dimensionality of the problem is too high for traditional schemes. Ein großes einleitendes Papier zu diesem Thema ist Persi Diaconis 'The Markov Chain Monte Carlo Revolution.

+0

Interessantes Papier, aber ich verlor mich schnell in den Details. – Gili

+0

Schön aussehendes Papier, aber ich muss sagen, dass es für einen Teilchenphysiker, der "Revolution" im Titel eines nach 2009 geschriebenen MC-Papiers verwendet, etwas seltsam erscheint. Wir machen das schon lange genug, dass Metropolis * ein traditionelles Schema ist. – dmckee

+0

@dmckee Dieses Papier zielte, glaube ich, auf ein breites Publikum von Mathematikern ab, die nicht nur Mathematiker oder Statistiker umfassten, sondern auch Leute, die in anderen Bereichen wie Algebra, Analysis usw. involviert waren. – jmbr