Czy wszystkie metody symulacji są jakąś formą Monte Carlo?


35

Czy istnieje metoda symulacji, która nie jest Monte Carlo? Wszystkie metody symulacji obejmują podstawianie liczb losowych w funkcji w celu znalezienia zakresu wartości dla funkcji. Czy wszystkie metody symulacyjne są w istocie metodami Monte Carlo?


2
Myślę, że „Stan” to tylko imię Ulama, a nie nazwisko innych osób.
Nick Cox,

Stan to skrót od Stanisława . Właśnie dlatego Andrew Gelman wybrał STAN dla swojego nowego języka symulacji.
Xi'an

Biorąc pod uwagę mały, być może trywialny, łączący problem, czy wyczerpujące poszukiwania nadal byłyby „Monte Carlo”?
Nick T

3
Pamiętam z wykładu z randomizowanych algorytmów, że metody Monte Carlo mają stochastyczne wyniki ze znanymi czasami uruchamiania, w przeciwieństwie do metod z Las Vegas, które mają stochastyczne czasy działania, ale poprawne wyniki. Nie ma na to odniesienia, oprócz pięcioletniego odręcznego skryptu w mojej szufladzie. Edytuj: Strony Wikipedii na temat Monte Carlo i Las Vegas wydają się z tym zgadzać.
bayerj

Wyczerpujące poszukiwanie byłoby prawdopodobnie obliczeniem brutalnej siły. Metody Monte Carlo pobierają z przestrzeni próbki. Ta próbka jest zwykle małym podzbiorem wszechświata wyników, co sprawia, że ​​analiza statystyczna jest wykonalna.
Alex Reynolds,

Odpowiedzi:


41

Istnieją symulacje, które nie są Monte Carlo. Zasadniczo we wszystkich metodach Monte Carlo stosuje się (słabe) prawo dużych liczb: średnia jest zbieżna z oczekiwaniami.

Są też metody Quasi Monte Carlo. Są one symulowane z kompromisem liczb losowych i równomiernie rozmieszczonych siatek, aby uzyskać szybszą zbieżność.

Symulacje inne niż Monte Carlo są np. Wykorzystywane w obliczeniowej dynamice płynów. Łatwo jest modelować dynamikę płynów w „skali mikro” pojedynczych porcji płynu. Te części mają początkową prędkość, ciśnienie i rozmiar i podlegają wpływom sił z sąsiednich części lub ciał stałych. Symulacje obliczają całe zachowanie płynu, obliczając wszystkie porcje i ich interakcje. Robienie tego skutecznie sprawia, że ​​jest to nauka. Nie są tam potrzebne losowe liczby.

W meteorologii lub badaniach klimatycznych rzeczy mają się podobnie. Ale teraz początkowe wartości nie są dokładnie znane: masz dane meteorologiczne tylko w niektórych punktach, w których zostały zmierzone. Wiele danych trzeba zgadnąć.

Ponieważ te skomplikowane problemy często nie są ciągłe w danych wejściowych, symulacje przeprowadzane są z różnymi przypuszczeniami. Ostateczny wynik zostanie wybrany spośród najczęstszych wyników. W ten sposób w zasadzie symulowane są niektóre prognozy pogody.


5
Niewielka korekta: symulacje Monte Carlo mogą wykorzystywać obliczenia nieprzypadkowe. Można nazywać symulację „monte-carlo”, jeśli zmienia ona warunki początkowe, a następnie stosuje obliczenia nieprzypadkowe. Wiele sytuacji CFD wymaga Monte Carlo, ponieważ warunki brzegowe są zdefiniowane statystycznie.
Cort Ammon,

14

Metoda Monte Carlo była pierwszym podejściem wykorzystującym symulację komputerową do rozwiązywania problemów statystycznych. Został on opracowany przez zespół Johna von Neumanna, Stanisława Ulama i Nicholasa Metropolis z laboratoriów Los Alamos, którzy pracowali nad projektem Manhattan podczas II wojny światowej. Po raz pierwszy został opisany w 1949 roku przez Metropolis i Ulam , i po raz pierwszy nazwa pojawiła się w formie drukowanej. Było to możliwe, ponieważ naukowcy, którzy go odkryli, mogli również korzystać z jednego z pierwszych komputerów , nad którymi pracowali. W swojej pracy wykorzystali metody Monte Carlo do symulacji problemów fizycznych, a pomysł polegał na tym, że można zasymulować skomplikowany problem z próbkowaniem kilku przykładów tego procesu. Istnieje wiele interesujących artykułów na temat historii Monte Carlo, np. AutorstwaSam Metropolis lub kilka nowszych, np. Robert & Casella .

Tak więc „Monte Carlo” było nazwą pierwszej metody opisanej w celu symulacji komputerowej w celu rozwiązania problemów statystycznych. Następnie nazwa ta stała się ogólną nazwą dla całej rodziny metod symulacyjnych i jest powszechnie stosowana w ten sposób.

Istnieją metody symulacyjne uważane za inne niż Monte Carlo , jednak chociaż Monte Carlo było pierwszym zastosowaniem symulacji komputerowej, powszechne jest, że „symulacja komputerowa” i „Monte Carlo” są używane zamiennie.

Istnieją różne definicje tego, czym jest „symulacja”, tj

Słownik Merriam-Webster :

3 a: naśladowcze przedstawienie funkcjonowania jednego systemu lub procesu za pomocą innego b: badanie problemu często nie podlegającego bezpośrednim eksperymentom za pomocą urządzenia symulującego

Słownik Cambridge :

robić lub tworzyć coś, co zachowuje się lub wygląda jak coś rzeczywistego, ale nie jest prawdziwe

Wikipedia :

naśladowanie działania rzeczywistego procesu lub systemu w czasie

Symulacja, która musi działać, to zdolność do naśladowania jakiegoś systemu lub procesu. Nie wymaga to żadnej przypadkowości (jak w przypadku Monte Carlo), jednak jeśli wszystkie możliwości zostaną wypróbowane, wówczas procedura jest raczej wyczerpującym wyszukiwaniem lub ogólnie problemem optymalizacji . Jeśli zaangażowany jest element losowy, a komputer jest używany do przeprowadzenia symulacji jakiegoś modelu, wówczas symulacja ta przypomina ducha początkowej metody Monte Carlo (np. Metropolis i Ulam, 1949). Element losowy jako kluczową część symulacji wspomniany jest na przykład przez Rossa (2006, Simulation). Elsevier). Odpowiedź na pytanie zależy jednak w dużej mierze od przyjętej definicji symulacji. Na przykład, jeśli założymy, że deterministyczne algorytmy, które wykorzystują optymalizację lub wyczerpujące wyszukiwanie, są w rzeczywistości symulacjami, musimy rozważyć wiele różnych algorytmów jako symulacji, co powoduje, że definicja symulacji per se jest bardzo rozmyta.

Dosłownie każda procedura statystyczna wykorzystuje pewien model lub przybliżenie rzeczywistości, która jest „wypróbowywana” i oceniana. Jest to zgodne z słownikowymi definicjami symulacji. Nie uważamy jednak wszystkich statystyk za oparte na symulacji. Pytanie i dyskusja wydają się wynikać z braku precyzyjnej definicji „symulacji”. Monte Carlo wydaje się archetypowym (i pierwszym) przykładem symulacji, jednak jeśli weźmiemy pod uwagę bardzo ogólną definicję symulacji, wówczas wiele metod innych niż Monte Carlo mieści się w definicji. Istnieją więc symulacje inne niż Monte Carlo, ale wszystkie metody oparte wyraźnie na symulacji przypominają ducha Monte Carlo, odnoszą się do niego w jakiś sposób lub zostały przez niego zainspirowane. Właśnie dlatego „Monte Carlo” jest często używane jako synonim „symulacji”.


3
Myślę, że „Stan” to tylko imię Ulama, a nie nazwisko innych osób.
Nick Cox,

1
Stan to skrót od Stanisława . Właśnie dlatego Andrew Gelman wybrał STAN dla swojego nowego języka symulacji.
Xi'an

Biorąc pod uwagę mały, być może trywialny, łączący problem, czy wyczerpujące poszukiwania nadal byłyby „Monte Carlo”?
Nick T

6
Nie rozumiem: jak to odpowiada na pytanie?
o0 ”.

1
@ Xi'an to Stanisław napisany „Ł” (w języku angielskim jako „woo”).
Tim

13

Wszystkie metody symulacji obejmują podstawianie liczb losowych w funkcji w celu znalezienia zakresu wartości dla funkcji.

Nigdy nie słyszałem o tej definicji symulacji. Na przykład artykuły Wikipedii na temat symulacji i symulacji komputerowych tylko krótko wspominają terminy takie jak losowe i stochastyczne .

Prostym przykładem symulacji, która nie wiąże się z żadną przypadkowością, a zatem wyraźnie nie jest symulacją Monte Carlo, byłby następujący:

Chcę zasymulować zachowanie prostego wahadła i przyjąć pewne uproszczenia (sznur bez masy, punktowa masa, brak tarcia, brak sił zewnętrznych, takich jak siła Coriolisa). Następnie uzyskuję matematyczne wahadło i mogę zapisać równania różniczkowe opisujące jego ruch. Następnie mogę użyć solwera do równań różniczkowych, takiego jak metoda Runge – Kutta, aby zasymulować jego trajektorię dla danych warunków początkowych. (Teoretycznie mogę również argumentować, że nie muszę brać pod uwagę dalszych warunków początkowych).

W ten sposób uzyskuję dość dobrą symulację prawdziwego wahadła bez użycia losowej liczby. Dlatego nie jest to symulacja Monte – Carlo.

W innym przykładzie rozważ mapę logistyczną , która jest prostym modelem populacji bez losowości.


7

Nie. Symulację cząstki pod wpływem siły można wykonać za pomocą Runge-Kutty lub innego algorytmu deterministycznego, który nie jest Monte Carlo.

Monte Carlo służy do obliczania całek (można to nazwać symulacją, ale na końcu po prostu oblicza przybliżenie liczbowe estymatora). Ponownie możesz użyć do tego deterministycznej metody (np. Reguła trapezoidalna).

Mówiąc ogólnie, można oddzielić algorytmy do obliczania całek w deterministycznych i niedeterministycznych. Monte Carlo jest metodą niedeterministyczną. Quasi-Monte Carlo jest kolejnym. Reguła trapezoidalna jest algorytmem deterministycznym.


4

Pozwólcie, że odniosę się do uproszczonego wyjaśnienia. Model „co-jeśli” jest symulacją (deterministyczną). Załóżmy, że masz złożony system, taki jak zakład przetwarzania widżetów. Chcesz być w stanie oszacować jakiś parametr wydajności, powiedzmy koszt. Budujesz model matematyczny instalacji, a następnie wybierasz różne założenia dla określonych czynników w modelu, takich jak szybkość widgetów poruszających się po różnych operacjach lub jakie wartości procentowe przepływają w różnych kierunkach, lub ile widgetów przetworzysz. Model jest symulacją zakładu, a każdy zestaw założeń daje oszacowanie tego parametru wydajności.

Teraz wprowadź niepewność. Nie wiesz, jakie będzie zapotrzebowanie na widżety w przyszłym miesiącu, ale musisz oszacować koszt. Zamiast więc powiedzieć, że popyt wyniesie 1000 widżetów, szacuje się rozkład prawdopodobieństwa dla popytu. Następnie losowo próbkujesz wartości zapotrzebowania z tego rozkładu i używasz ich do swoich założeń. W tym momencie możesz również użyć rozkładów prawdopodobieństwa dla innych założeń. Używasz modelu w kółko, wprowadzając założenia próbkowane z różnych rozkładów prawdopodobieństwa. Rezultatem będzie rozkład szacunków kosztów. To aspekt Monte Carlo.

Monte Carlo to „funkcja” lub „silnik”, który jest nakładany na model symulacyjny. Zamiast symulować za pomocą jednego zestawu założeń dla jednego oszacowania, wykonuje zbiór symulacji przy użyciu losowo wybranych założeń.


2

W teorii gier szczególnie podejścia wykorzystujące losowość w symulacjach nazywane są technikami monte carlo. Jest zwykle używany jako część Monte Carlo Tree Search (MCTS) we współczesnych programach.

(W pierwotnym pytaniu nie wprowadzono rozróżnienia między „ algorytmem Monte Carlo ” a „ metodą Monte Carlo ”, co może wyjaśniać brak zgody na niektóre odpowiedzi tutaj.)

Na przykład w grze go (i we wszystkich innych grach, o których wiem, że używają MCTS), symulacje nazywane są rozgrywkami. Losowe rozgrywki używają najsłabszego zestawu zasad. Lekkie rozgrywki są albo synonimem losowych rozgrywek, albo odfiltrowują kilka łatwo wykrywalnych złych ruchów. Ciężkie rozgrywki wykorzystują więcej heurystyki, aby odfiltrować o wiele więcej ruchów. (Nawiasem mówiąc, rozgrywka zawsze kończy się na końcu gry, więc każda rozgrywka zajmuje mniej więcej tyle samo czasu.) Ale wszystkie są określane jako symulacje „monte carlo”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.