Metoda Monte Carlo

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Vizualizare tridimensională a unei simulări extrem de mari a unei probleme de instabilitate Rayleigh-Taylor - Laboratorul Național Lawrence Livermore

Metoda Monte Carlo este o clasă largă de metode de calcul bazate pe eșantionare aleatorie pentru a obține rezultate numerice. Poate fi util pentru depășirea problemelor de calcul legate de testele exacte (de exemplu, metode bazate pe distribuție binomială și combinatorică , care pentru eșantioane mari generează un număr excesiv de permutări ).

Metoda este utilizată pentru a obține estimări prin simulări. Se bazează pe un algoritm care generează o serie de numere fără legătură, care urmăresc distribuția probabilității pe care ar trebui să o aibă fenomenul de investigat. Non-corelația dintre numere este asigurată de un test chi-pătrat .

Simularea Monte Carlo calculează o serie de realizări posibile ale fenomenului luat în considerare, cu ponderea probabilității unei astfel de apariții, încercând să exploreze într-un mod dens întregul spațiu parametru al fenomenului. Odată ce acest eșantion aleatoriu a fost calculat, simularea efectuează „măsurători” ale cantităților de interes pentru acest eșantion. Simularea Monte Carlo este bine executată dacă valoarea medie a acestor măsurători pe realizările sistemului converge la valoarea reală.

Originile sale datează de la mijlocul anilor 40, ca parte a Proiectului Manhattan . Formalizatorii metodei sunt Enrico Fermi , John von Neumann și Stanisław Marcin Ulam [1] . Numele Monte Carlo a fost inventat ulterior de Nicholas Constantine Metropolis referindu-se la binecunoscutul cazinou . Utilizarea tehnicilor bazate pe selecția numerelor aleatorii a fost deja menționată într-o lucrare de Lord Kelvin din 1901 și în unele studii de William Sealy Gosset [1] .

Algoritmul Monte Carlo este o metodă numerică utilizată pentru a găsi soluții la probleme matematice cu multe variabile și care nu pot fi ușor rezolvate, de exemplu calculul integral . Eficiența acestei metode crește față de celelalte metode pe măsură ce dimensiunea problemei crește.

Un prim exemplu de utilizare a metodei Monte Carlo este reprezentat de experimentul cu ac Buffon ; cea mai faimoasă utilizare a acestuia a fost cea a lui Enrico Fermi , care în 1930 a folosit o metodă aleatorie pentru problemele de transport al neutronilor [1] .

Descriere generala

Metoda Monte Carlo poate fi ilustrată ca o bătălie navală . Primul jucător trage lovituri aleatorii. Apoi, el aplică niște algoritmi (de exemplu, cuirasatul are patru puncte în direcția verticală sau orizontală). În cele din urmă, pe baza rezultatelor eșantionării aleatorii și a algoritmilor, jucătorul poate determina pozițiile probabile ale navelor celorlalți jucători.

Nu există o singură metodă Monte Carlo; termenul descrie o clasă de abordări utilizate pentru o categorie mare de probleme. Cu toate acestea, aceste abordări tind să urmeze un anumit tipar:

  1. Definiți un domeniu de date de intrare posibile.
  2. Generați intrări aleatorii din domeniu cu o anumită distribuție de probabilitate.
  3. Efectuați un calcul determinist folosind datele de intrare.
  4. Agregați rezultatele calculelor individuale în rezultatul final.

Integrare

Metodele deterministe de integrare numerică funcționează luând în considerare un număr de eșantioane distribuite uniform. În general, această metodă funcționează foarte bine pentru funcțiile unei variabile. Cu toate acestea, pentru funcțiile vectoriale , metodele deterministice în cvadratură pot fi ineficiente. Pentru a integra numeric o funcție a unui vector bidimensional, sunt necesare grile de puncte la fel de distanțate pe suprafața însăși. De exemplu, o grilă de 10x10 necesită 100 de puncte. Dacă vectorul este de 100 de dimensiuni, aceeași distanță a grilei ar trebui să ia 10 100 de puncte - prea scump din punct de vedere al calculului. Cele 100 de dimensiuni nu au o semnificație nerezonabilă, deoarece în multe probleme de fizică, o „dimensiune” este echivalentă cu un grad de libertate .

Metodele Monte Carlo oferă o soluție la această problemă a creșterii numărului de grade de libertate. Atâta timp cât funcția în cauză are un comportament bun, poate fi evaluată prin selectarea aleatorie a punctelor într-un spațiu 100-dimensional și luarea unor tipuri de medii ale valorilor funcției în aceste puncte. Pentru teorema limitei centrale , această metodă va arăta ordinea convergenței ; de exemplu, cvadruplând numărul de puncte la distanțe egale, înjumătățește eroarea, în ciuda numărului de dimensiuni.

O caracteristică a acestei metode este de a alege punctele în mod aleatoriu, dar punctele care aparțin regiunilor care contribuie cel mai mult la calcularea integralei sunt mai susceptibile de a fi alese decât cele care aparțin unor regiuni cu contribuție redusă. Cu alte cuvinte, punctele trebuie alese în funcție de o distribuție similară ca formă funcției integrand. Înțeles, a face acest lucru este la fel de dificil ca rezolvarea integralei, dar există și alte posibile metode de aproximare, pornind de la cele care construiesc o funcție integrabilă similară cu cea care urmează să fie integrată, până la unul dintre procedurile de adaptare.

O astfel de abordare implică utilizarea secvențelor cu discrepanță scăzută, mai degrabă decât metoda cvasi-Monte Carlo . Metodele Quasi-Monte Carlo pot fi adesea mai eficiente ca metode de integrare numerică, deoarece secvența de valori generată umple mai bine zona și evaluările ulterioare pot face ca simularea să convergă mai repede la soluție.

Discuție analitică

Pentru un model stochastic fie θ cantitatea care trebuie determinată. Rulați o simulare, generând variabila aleatorie X 1 astfel încât θ să fie valoarea așteptată a lui X 1 . Să luăm în considerare oa doua simulare, generând o variabilă aleatorie X 2 astfel încât valoarea ei așteptată să fie întotdeauna θ. Continuăm cu k simulări, generând până la k variabile aleatoare X k cu E [X k ] = θ. Ca estimator al lui θ putem lua media aritmetică a k variabile aleatorii generate, adică

deoarece este evident E [X] = θ. Care este cea mai potrivită valoare a lui k? Să presupunem că avem n variabile aleatoare independente, X 1 , .., X n având aceeași distribuție. Fie σ 2 varianța variabilei X i și θ valoarea așteptată (E [X i ] = θ, Var (X i ) = σ 2 ). Media eșantionului X este definită de

Valoarea sa așteptată este:

Prin urmare, X este un estimator nedistorsionat (adică cu o valoare așteptată egală cu cea a parametrului) de θ. Varianța sa, folosind formula lui Bienaymé este:

Prin urmare X este o variabilă aleatorie cu media θ și varianța σ 2 / n; rezultă că X este un estimator eficient atunci când σ / √n este mic. Având stabilită o toleranță pentru σ 2 / n și având estimată σ 2 putem astfel estima n.

Se poate impune că valoarea așteptată obținută cu estimatorul se află într-un interval de încredere bine definit. O consecință a teoremei limitei centrale poate fi utilizată în acest scop. Fie X 1 , X 2 ,…, X n …, o succesiune de variabile aleatorii independente și distribuite identic având media finită μ și varianța finită σ 2 . Atunci

unde Φ (x) este funcția de distribuție a uneivariabile aleatoare normale standard,

Când n >> 1 teorema limitei centrale ne spune că variabila

este distribuită aproximativ ca o variabilă aleatorie normală unitară, notată cu N (0,1), adică cu zero medie și varianță 1. Acum să fie zα, unde 0 <α <1, să fie acel număr astfel încât, pentru o variabilă normală unitară, avem P (Z> zα) = α Apoi, din teorema limitei centrale avem că, asimptotic pentru n mare

Care afirmă că probabilitatea ca media θ să fie cuprinsă în interval

este (1 - α). Prin urmare, având în vedere 1-α și cunoscând σ, putem estima valoarea minimă necesară a lui n.

De aici și problema modului de estimare a varianței σ 2 = E [(X - θ) 2 ]

Definiție . Varianța eșantionului S 2 este definită de

Următorul rezultat este valabil.

Propunere . E [S 2 ] = σ 2 De fapt avem:

urmează

Pentru o variabilă aleatorie avem:

Prin urmare

În plus

Urmează

Acum să presupunem că avem n variabile aleatoare independente X 1 , X 2 , ..., X n având aceeași funcție de distribuție F și vrem să estimăm parametrul θ ( F ) (pentru a arăta că această cantitate trebuie calculată în raport cu funcția de distribuție F ). Fie g (X 1 , X 2 ,…, X n ) estimatorul propus pentru θ ( F ); dacă aceasta nu corespunde valorii medii, nu se poate aplica metoda descrisă anterior pentru estimarea varianței estimatorului. Să vedem cum putem estima eroarea pătrată medie care este comisă atunci când se utilizează acest estimator:

În cazul în care indicele F înseamnă că valoarea de așteptare este calculată în raport cu funcția de distribuție F care pentru moment nu este cunoscută.

O metodă de estimare a acestei cantități este cea a bootstrap-ului , utilizând funcția de distribuție empirică F e (x) definită de:

Legea puternică a numărului mare afirmă că pentru n foarte mare, cu probabilitatea 1, F e (x) tinde spre F (x). Apoi, o valoare aproximativă a EQM ( F ) este dată de (aproximare bootstrap):

Trebuie remarcat, din punct de vedere operațional, că dimensionarea simulării este ușor de depășit datorită disponibilității crescânde a puterii de calcul. Cu alte cuvinte, prin utilizarea metodei pe computer, va fi suficient să se genereze o serie de teste de amplitudine cu siguranță redundante pentru a asigura semnificația estimării.

Exemple

Returul unei garanții

Vrem să estimăm rentabilitatea lunară a unui stoc . Stocul există de cinci ani, deci sunt disponibile doar 60 de returnări lunare. Să presupunem că randamentele sunt distribuite în urma uneivariabile aleatoare normale .

Calculăm:

Cu un model de regresie liniară vom încerca să estimăm media la o lună. Ulterior, prin algoritmul Monte Carlo, vor fi generate o serie de medii „experimentale” care vor fi obținute dintr-o distribuție normală (deoarece s-a presupus că randamentele urmează această distribuție) cu o medie egală cu media estimată și abaterea standard egală cu deviația standard a eșantionului la o lună.

O strategie pentru a continua și a estima media reală a fenomenului, în acest moment, poate fi obținerea mediei generale a tuturor mediilor experimentale obținute. Datele obținute oferă estimări mai bune cu cât numărul testelor efectuate este mai mare.

Determinarea valorii π

Metoda Monte Carlo aplicată în aproximarea valorii lui π.

Fie M un punct cu coordonatele (x, y) cu 0 <x <1 și 0 <y <1 și alegeți aleatoriu valorile lui x și y.

De sine atunci punctul M aparține sectorului discului (un sfert din cercul căruia îi aparține) cu centrul (0,0) de raza 1.

Aria acestui disc este raza pătrată de π împărțită la 4. În exemplu, raza este egală cu una și, prin urmare, aria de interes este 1 * π / 4 = π / 4. Prin urmare, punctul poate cădea fie în cerc, fie în pătratul circumscris cercului. Probabilitatea ca punctul să cadă în interiorul sectorului discului este deci egală cu raportul dintre aria sectorului π / 4 și aria pătratului circumscris sectorului discului care este 1; deci probabilitatea este π / 4.

Realizând raportul dintre numărul de puncte care cad în sectorul discului și numărul de fotografii realizate, obținem o aproximare a numărului π / 4 dacă numărul de fotografii este mare.

Executând exemplul numeric, se obține o tendință procentuală a erorii prezentate în graficul de mai jos.

% Tendința erorii dintre pi teoretic și pi calculat. Programul a efectuat 1370 de milioane de lansări. Rețineți că la început eroarea este foarte mare, dar scade rapid. Fiind o metodă statistică, pot exista unele creșteri temporare ale erorii, dar tendința este scăderea acesteia odată cu creșterea numărului de lansări.

Determinarea suprafeței unui lac

Acesta este un exemplu clasic de popularizare a metodei Monte-Carlo. Se dă fie o zonă dreptunghiulară, fie pătrată, a cărei lungime este cunoscută. În centrul acestei zone se află un lac a cărui suprafață este necunoscută. Datorită măsurătorilor laturilor zonei, zona dreptunghiului este cunoscută. Pentru a determina aria lacului, o trupă înarmată este rugată să tragă cu X tunuri aleatorii asupra acestei zone. Numărăm apoi numărul N de bile care au rămas pe sol, putem determina apoi numărul de bile care au căzut în lac: XN. Prin urmare, este suficient să se stabilească o relație între valori:

De exemplu, dacă solul are o suprafață de 1000 m 2 și presupunem că armata aruncă 500 de bile și că 100 de gloanțe au căzut în lac, atunci suprafața lacului este: 100 * 1000/500 = 200 m 2 .

Estimarea suprafeței lacului datorită focurilor de tun aleatorii

Desigur, calitatea estimării se îmbunătățește prin creșterea numărului de fotografii și asigurarea faptului că artileria nu vizează întotdeauna același loc, ci acoperă bine zona. Această ultimă ipoteză coincide cu ipoteza de a avea un bun generator de numere aleatorii , această condiție este esențială pentru a avea rezultate bune cu metoda Monte Carlo. Un generator distorsionat este un pic ca un tun a cărui tragere tinde să fie direcționată mai degrabă către anumite zone decât spre altele: informațiile care pot fi obținute din acesta sunt, de asemenea, distorsionate.

Unele aplicații

Metoda este utilizată pe scară largă în diverse discipline. Printre posibilele aplicații: fizica și ingineria statistică , unde se pretează foarte bine la rezolvarea problemelor legate, de exemplu, de dinamica fluidelor ; în economie și finanțe la prețul instrumentelor derivate și al opțiunilor nestandardizate; în optică , pentru a simula iluminarea naturală; în fizica medicală este utilizat pentru planificarea tratamentelor radioterapeutice, în special în terapia cu protoni cu creion; în chimia computațională Monte Carlo cuantică este o metodă pentru determinarea structurii electronice; etc ...

Este foarte puternic atunci când este utilizat împreună cu alte metode non-parametrice, cum ar fi eșantionarea.

Un alt exemplu particular de utilizare a metodei Monte Carlo este utilizarea metodei în analiza șahului . În ultimii ani, unele programe comerciale de șah au implementat opțiuni de analiză folosind „analiza Monte Carlo”. Pentru a evalua o poziție, mii de jocuri sunt jucate pe computer începând de la poziția de analizat, făcând PC-ul să efectueze mutări „aleatorii” (o alegere aleatorie între mutările pe care programul le consideră mai logice). Media rezultatelor obținute la aceste meciuri este o indicație plauzibilă a celei mai bune mișcări. [2]

Metoda Monte Carlo găsește o aplicare și mai mare a succesului în jocul go . În acest caz, aplicarea metodei este și mai directă: multe programe ating un nivel bun de joc fără a fi necesar să restricționeze selecția aleatorie la un subset de mișcări legale determinate de o funcție de evaluare (exemplu de program care folosește această metodă în uniune cu învățarea automată este AlphaGo ).

Notă

  1. ^ a b c Carlo Jacoboni și Paolo Lugli, Metoda Monte Carlo pentru simularea dispozitivelor semiconductoare - Springer-Verlag
  2. ^ Chessbase

Bibliografie

  • WK Hastings, metode de eșantionare Monte Carlo folosind lanțurile Markov și aplicațiile acestora , Biometrika, 1970, pp. 97-109.
  • Bernd A. Berg, Markov Chain Monte Carlo Simulations and Their Statistical Analysis (With Web-based Fortran Code) , World Scientific 2004, ISBN 981-238-935-0 .
  • P. Kevin MacKeown, Simulare stocastică în fizică , 1997, ISBN 981-3083-26-3
  • Harvey Gould și Jan Tobochnik, Introducere în metodele de simulare pe computer, partea 2, Aplicații la sistemele fizice , 1988, ISBN 0-201-16504-X
  • CP Robert și G. Casella. „Metode statistice Monte Carlo” (ediția a doua). New York: Springer-Verlag, 2004, ISBN 0-387-21239-6
  • Producătorii de pachete comerciale care implementează algoritmi Monte Carlo includ Palisade Corporation (@Risk) , Decisioneering (Crystal Ball) și Vanguard Software (DecisionPro)
  • Mosegaard, Klaus. Și Taranto, Albert, 1995. Monte Carlo eșantionarea soluțiilor pentru probleme inverse. J. Geophys. Rez., 100, B7, 12431-12447.
  • Albert Tarantola, Teoria problemelor inverse , Societatea pentru matematică industrială și aplicată, 2005, ISBN 0-89871-572-5 .
  • Morin, L. Richard, Monte Carlo Simulation in the Radiological Sciences , CRC Press, ISBN 0-8493-5559-1 .

Elemente conexe

Alte proiecte

linkuri externe

Software statistic

Controlul autorității Tezaur BNCF 32258 · LCCN (EN) sh85087032 · GND (DE) 4240945-7 · NDL (EN, JA) 00.567.842