Poprzedni wykład zakończyliśmy pesymistycznym twierdzeniem 13.4, że nie istnieją efektywne metody numerycznego całkowania funkcji wielu zmiennych, ponieważ ma miejsce zjawisko przekleństwa wymiaru. Zwróćmy jednak uwagę na to, że fakt istnienia przekleństwa wymiaru stwierdziliśmy przy założeniach, że:
(i) model obliczeniowy jest deterministyczny,
(ii) funkcje podcałkowe są
Można mieć nadzieję, że przekleństwo wymiaru zniknie, albo zostanie złagodzone, gdy przynajmniej jedno z tych założeń nie będzie spełnione.
Ten wykład poświęcimy (klasycznej) metodzie Monte Carlo numerycznego całkowania, która jest przykładem metody niedeterministycznej, tzn. takiej, która oblicza wynik wykorzystując zjawiska losowe. Chociaż może to brzmieć dziwnie, to właśnie niedeterministyczne zachowanie metody pozwala pokonać przekleństwo wymiaru.
Opisana dalej klasyczna metoda Monte Carlo związana jest ściśle ze Stanisławem Ulamem, uczniem Stefana Banacha i reprezentantem Lwowskiej Szkoły Matematycznej. Ulam zastosował metodę Monte Carlo do obliczania skomplikowanych całek w ramach ,,Manhattan Project” w Los Alamos (USA), w czasie II Wojny światowej.
Tak jak w poprzednim rozdziale chcemy obliczyć całkę
Zakładamy przy tym, że
Klasyczna metoda Monte Carlo polega na przybliżeniu
gdzie
Konsekwencją zastosowania losowości jest to, że przy różnych
realizacjach metody otrzymujemy różne wyniki, w zależności
od wyboru punktów
Ponieważ różnica
Dla danej funkcji
gdzie
jest wariancją funkcji
Zanim przystąpimy do dowodu zauważmy, że
jest szczególnym przypadkiem znanej nierówności Schwarza dla całek.
Oznaczmy, dla uproszczenia, zmienną losową
(14.1) |
Ponadto
gdzie skorzystaliśmy z niezależności zmiennych losowych
co kończy dowód.
∎Zauważmy, że w dowodzie pokazaliśmy przy okazji nierówność Schwarza posługując się narzędziami rachunku prawdopodobieństwa.
Twierdzenie (14.1) mówi, że błąd metody Monte Carlo jest
proporcjonalny do
Dziwnym może wydawać się, że przekleństwo wymiaru można
zlikwidować używając metod niedeterministycznych (losowych).
Jednak niczego nie ma za darmo. Należy pamiętać, że jest to
możliwe za cenę niepewności wyniku. O ile bowiem metoda
deterministyczna produkuje zawsze ten sam wynik, metoda
niedeterministyczna (taka jak Monte Carlo) produkuje różne
wyniki zależnie od konkretnych realizacji zmiennych losowych.
Dlatego, mimo iż błąd oczekiwany jest proporcjonalny do
gdzie Prob oznacza prawdopodobieństwo względem
rozkładu jednostajnego na
Deterministyczne metody interpolacyjne z poprzedniego rozdziału można
stosować jedynie do całkowania na
możemy bowiem zastosować wzór
przy czym
Adaptując odpowiednio dowód twierdzenia 14.1 otrzymujemy następujące wyrażenie na błąd uogólnionej metody Monte Carlo.
Niech
gdzie
Zauważyliśmy, że zaletą metody Monte Carlo jest nie tylko jej
prostota, ale również to, że błąd średni wynosi
Podzielmy obszar całkowania
i zastosujmy Monte Carlo do całkowania po każdym
gdzie
oraz
Oznaczmy przez
Przyjmijmy teraz, że
przy czym dla uproszczenia (ale bez utraty ogólności) zakładamy, że wielkości te są całkowite. Wtedy otrzymujemy
(14.2) |
Błąd tak zdefiniowanej metody
Dla dowolnej funkcji
przy czym równość zachodzi tylko wtedy gdy iloraz
Rzeczywiście, oznaczając
oraz wykorzystując nierówność Schwarza dla ciągów mamy
przy czym równość zachodzi tylko wtedy gdy wektory
Prawdziwość tezy pokazuje teraz porównanie wzorów na błędy obu metod.
∎Widzimy, że stosując losowanie warstwowe z ustalonym podziałem
na
Aby to uzyskać, najpierw przekształcimy wzór (14.2)
na błąd metody
(14.3) |
gdzie
Załóżmy teraz, że
Wtedy istnieją
gdzie
jest średnicą zbioru
Ustalmy teraz równomierny podział kostki
Ostatecznie, otrzymany w ten sposób wariant losowania warstwowego jest
zbieżny z wykładnikiem większym niż
Podobny efekt zwiększenia szybkości zbieżności można uzyskać
stosując klasyczną Monte Carlo bezpośrednio do funkcji
Rzeczywiście, przedstawmy
co sugeruje zastosowanie następującej metody:
Ponieważ
z twierdzenia 14.1 natychmiast wynika, że błąd
Pozostaje kwestia doboru funkcji
gdzie
jest funkcją charakterystyczną zbioru
(14.4) |
i dla
W ogólności, funkcję
Na przykład, dla funkcji
W konsekwencji, dla tak skonstruowanej metody dostajemy następujący błąd oczekiwany.
Dla
Dodajmy, że
Zbieżności
Istnieje
Dotychczas milcząco przyjmowaliśmy, że umiemy generować ciągi
niezależnych liczb losowych zgodnie z danym rozkładem prawdopodobieństwa.
Nie jest to jednak zadanie trywialne. W praktyce obliczeniowej liczby
losowe uzyskujemy przez zastosowanie specjalnych programów. Ponieważ
komputer jest urządzeniem deterministycznym, tak uzyskane ciągi nie są
idealnie losowe już choćby dlatego, że są okresowe. Fakt ten wpływa
na pogorszenie jakości wyniku i w szczególności powoduje, że ich
użycie pozwala uzyskać jedynie kilka liczb znaczących, przy czym
im większy wymiar
Generowanie liczb pseudolosowych jest bardzo obszernym tematem, my tylko zwrócimy uwagę na podstawowe metody.
Liniowe generatory kongruencyjne służą generowaniu ciągów
losowych
Jakość takiego generatora zależy istotnie o wyboru liczb całkowitych
(a)
(b) jeśli
(c) jeśli
Dostęp do dobrego generatora liczb losowych o rozkładnie jednostajnym
Jeśli znana jest dystrybuanta żądanego rozkładu, czyli funkcja
oraz łatwo obliczyć jej odwrotność zdefiniowaną jako
to potrzebne ciągi losowe mogą być wygenerowane według wzoru
Rzeczywiście, mamy
Na przykład, jeśli
Niestety, dla wielu rozkładów dystrybuanta nie może być
dokładnie obliczona. Wtedy jakość metody zależy od jakości
zastosowanej numerycznej aproksymacji funkcji
Inna uniwersalna metoda generowania liczb losowych o dowolnym
rozkładzie na
dla pewnej stałej
repeat | ||
. | . | generuj |
. | . | generuj |
. | until | |
. | return | |
Aby pokazać poprawność takiego generatora zauważmy, że
Ponieważ dla
i w konsekwencji dostajemy
Normalny rozkład gaussowski na
jest najczęściej stosowanym rozkładem niejednostajnym.
Dla rozkładu gaussowskiego bardzo efektywne okazują się algorytmy
bazujące na odwracaniu dystrybuanty. Używają one dość
skomplikowanych aproksymacji funkcji
Prostszą i najbardziej popularną jest metoda Box-Muller.
Generuje ona od razu dwie niezależne liczby
Przedstawmy
gdzie
Stąd, stosując metodę odwracania dystrybuanty mamy
generuj | |
. | |
. | |
. | return |
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i Mechaniki UW, 2009-2010. Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.