Sunteți pe pagina 1din 51

Metoda Monte Carlo: Carlo: Obinerea de selecii simulate cu EXCEL (partea a II a) Sim4_2011

CUPRINS
II. Procedura pentru aplicarea metodei Monte Procedura Carlo n cazul variabilelor probabiliste (aleatoare) continue aleatoare) Distribuii continue de probabilitate empiric continu uniform continu triunghiular normal exponential
2

Pentru o variabil probabilist continu


Se poate defini numai probabilitatea ca valoarea variabilei s fie cuprins ntr-un interval specificat adica toate valorile posibile ale lui X sunt toate punctele dintr-un interval si nu exista lipsuri intre valorile posibile ale lui X Aceast probabilitate se calculeaz cu o funcie f(x) de densitate de probabilitate a crui valoare reprezint aria de sub curba f(x) corespunztoare intervalului specificat pe axa orizontala.
3

Probabilitatea P(X x) ca valoarea variabilei probabiliste X s fie mai mic dect o anumit valoare particular x se calculeaz cu funcia de distribuie cumulativ F(x) = P(Xx) = P(X

x f ( v ) dv
4

Aplicarea metodei Monte Carlo pentru obinerea de selecii simulate n cazul variabilelor probabiliste continue se poate face pe baza urmtoarei proceduri:

Pasul 1. Se construiesc funciile f(x) de densitate de probabilitate i F(x) de distribuie cumulativ. n cazul distribuiilor empirice, dup organizarea i gruparea pe intervale, valorile variabilei probabiliste continue se pot prezenta tabelar - conform Tabelului 6.
5

Intervale de Frecven a valori ptr fi variabila probabilista [xi-1, xi) [x0, x1) [x1, x2) ... [xm-1, xm] f1 f2 ... fm

Frecven a relativ
m fi/ fk k=1

Tabelul 6 Frecven a cumulativ F(xi)

f1/ f k k =1 =1
m f2/ fk k=1

F(x1)=f1/ f k
k =1 =1
m F(x2)=(f1+f2)/ fk k=1

...
m fm/ fk k=1

... F(xm) = 1
6

Pasul 2. 2. Se asociaz un interval de numere aleatoare fiecrui fiecru interval de valori ale ale variabilei continue. continue. Acest lucru se poate realiza grafic sau tabelar. tabelar.
7

Graficul funciei F(x) al distribuiei empirice cumulative va fi o curb liniar pe poriuni, obinut prin unirea punctelor ale cror coordonate sunt limitele inferioare ale intervalelor [xi-1, xi) i respectiv [F(xi-1), F(xi)).

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5 10 15 20

F(x)

Probabilitati

25

30

35
9

Timpul de servire

Tabelar. n cazul distribuiilor empirice, dup organizarea i gruparea pe intervale de valori [xi-1, xi) ale variabilei [xi- xi) probabiliste, se poate obine Tabelul 6b.

10

Intervale de Frecven a valori ptr fi variabila probabilista [xi-1, xi) [x0, x1) [x1, x2) ... [xm-1, xm] f1 f2 ... fm

Frecven a relativ
m fi/ fk k=1

Frecven a cumulativ F(xi)

Tabelul 6b Intervale [F(xi-1), F(xi))

f1/ f k k =1
m f2/ fk k=1

F(x1)=f1/ fk k=1
m F(x2)=(f1+f2)/ fk k=1

[F(x0), F(x1)) [F(x1), F(x2)) ... [F(xm-1), F(xm)]


11

...
m fm/ fk k=1

... F(xm) = 1

Exemplul 5. Datele rezultate n urma observrii timpului de servire a 100 clien i care au solicitat efectuarea unor opera iuni la un ghieu de banc sunt prezentate astfel: Tabelul 7 Intervale Timpul Numrul Frecven a Frecven a individual relativ cumulativ [F(xi-1), F(xi)) clien ilor fi m de servire (min) F(xi) fi/ f k [xi-1, xi) k =1 [5, 10) 15 0,15 0,15 [0,00, 0,15) [10, 15) 26 0,26 0,41 [0,15, 0,41) [15, 20) 23 0,23 0,64 [0,41, 0,64) [20, 25) 18 0,18 0,82 [0,64, 0,82) [25, 30) 10 0,10 0,92 [0,82, 0,92) [30, 35] 8 0,08 1,00 [0,92, 1,00]
12

Pasul 3. Se genereaz un numr aleator u uniform repartizat n intervalul [0, 1] utiliznd un generator de numere aleatoare (de exemplu, cu funcia =RAND() din Excel). Pasul 4. Se genereaz o valoare x a variabilei probabiliste continue prin rezolvarea ecuaiei F(x) = u.
13

1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5

F(x)

Probabilitati

u=0,38

x=14,423

10

15

20 Timpul de servire

25

30

35
14

Procedura grafic poate fi nlocuit cu o rocedura procedur algebric echivalent de rezolvare a ecuaiei F(x) = u. dac soluia poate fi obinut cu relaia x= F-1(u), atunci metoda de extragere a unei valori a variabilei probabiliste se numete metoda inversei. inversei. dac nu se poate construi inversa explicit a funciei F(x), ecuaia F(x)=u se poate rezolva cu metoda interpolrii. interpolrii.
15

De exemplu: u = 0,38 aparine intervalului de numere aleatoare [0,15, 0,41) corespunztor [0,15, 0,41) intervalului [10,15) al timpului de servire, rezult [10, c x = 10 + (0,38 0,15)(15 - 10)/(0,41 0,15) = 14,423 min n general, dac numrul aleator u aparine intervalului de numere aleatoare [F(xi-1), F(xi)) asociat valorilor [xi-1, xi), atunci se va genera valoarea x cu relaia de interpolare:

x = xi-1 + (u - F(xi-1))(xi - xi-1)/(F(xi) - F(xi-1))


Pentru realizarea simularii se vor construi 3 tabele:
16

17

18

Pentru fiecare iteratie de simulare a timpului de servire a clientilor se vor calcula coloanele tabelului: tabelului:

Coloana B. Se genereaza un numar aleator u cu =RAND() Coloana C. Numarul aleator generat in Coloana B va fi folosit pentru generarea lui x i-1. =VLOOKUP(adresa =VLOOKUP( adresa lui u,$A$9:$C$14,3) Coloana D. Valoarea x i-1 obtinuta Coloana C. va fi utilizata pentru a obtine valoarea F(xi-1). In acest scop se va utiliza =VLOOKUP(adresa =VLOOKUP( adresa lui x i-1,$A$18:$B$23,2)
19

Coloana E. Se calculeaza produsul (u - F(xi-1))*(xi - xi-1). In ))* acest scop se va utiliza formula:

=(adresa lui u adresa lui F(xi-1))*$D$3


Coloana F. Valoarea x i -1 obtinuta in Coloana C va fi utilizata pentru a obtine diferenta (F(xi)-F(xi-1)) In acest scop se va (F(xi)-F(xiutiliza: utiliza:

=VLOOKUP( adresa lui x i-1,$E$18:$F$23,2)


Coloana G.. Timpul de servire x i simulat se va obtine cu formula

= adresa lui x i-1+adresa produsului (u-F(xi-1)) *(xi - xi-1) / adresa diferentei (F(xi)-F(xi-1)) (F(xi)-F(xiDupa 500 iteratii se obtin rezultatele
20

Coloana E. Se calculeaza produsul (u - F(xi-1))*(xi - xi-1). In ))* acest scop se va utiliza formula:

=(adresa lui u adresa lui F(xi-1))*$D$3


Coloana F. Valoarea x i -1 obtinuta in Coloana C va fi utilizata pentru a obtine diferenta (F(xi)-F(xi-1)) In acest scop se va (F(xi)-F(xiutiliza: utiliza:

=VLOOKUP( adresa lui x i-1;$E$18:$F$23;2)


Coloana G.. Timpul de servire x i simulat se va obtine cu formula

= adresa lui x i-1+adresa produsului (u-F(xi-1)) *(xi - xi-1) / adresa diferentei (F(xi)-F(xi-1)) (F(xi)-F(xiDupa 500 iteratii se obtin rezultatele
21

180 160 140 Frecvente absolute 120 100 119 0,672 153 0,81 0,912

1 0,9 0,8 Probabilitati cumulate


22

0,7 0,6 0,5

80 64 60 40 20 0 0 0 0 5 0 0 10 15 0,128

0,434

69 51 44

0,4 0,3 0,2 0,1 0

20

25

30

35

Timp servire (min) Frecvente absolute Probabilitati cumulate

Pentru a numara 500 de simulri se introduce numrul 1 n celula A27 i se revine n celula A27. Apoi, din meniu de selecteaz Edit, Fill, (sau in EXCEL2007: Home, Fill), Series i din csua dialog care apare, se selecteaz Columns, Linear, se introduce numrul 500 n dreptul lui Stop Value i apoi se selecteaz OK.

23

Histograma se poate construi n EXCEL prin Tools(Data)/ Data Analysis/ Histogram/ Input Range G27:G526/ Bin Range zona cu limitele intervalelor:0, 5, 10, 15, 20, 25, 30, 35/ Output Range o zona libera / Cumulative percentage / Chart Option

sau cu FREQUENCY
Pentru lucrul cu Data Analysis, daca nu este instalat: -in EXCEL 2003, din Tools, Addins, Analysis ToolPak -in EXCEL 2007, din Office Button, EXCEL Options, Add-ins, Analysis ToolPak , Go 24

Pentru a construi Tabelul Frecventelor cu FREQUENCY:

In zona J47:J54 se introduc limitele intervalelor pentru timp servire Se marcheaza zona K47:K54 unde se vor inscrie frecventele. In zona marcata, in prima celula K47 se introduce =FREQUENCY(zona cu timp servire; zona cu limitele intervalelor) apoi F2 apoi CTRL + SHIFT + ENTER Se observ c n zona K47:K54 au aparut frecventele absolute, iar in zona L47:L54 se calculeaza probabilitatile cumulate.
25

Pentru a construi Graficul distribu iei frecven elor : Se selecteaza zona J47:L54 -In EXEL 2003: pornind din meniu cu Chart Wizard, apoi

Custom Types i Line Column on 2 Axes . -In EXCEL 2007: pornind din meniu cu INSERT, Column, 2D Column, click barele mici, click dreapta, Change Series Chart Type, Line, Ok, click dreapta pe curba, Format Data Series, Series Options, Secondary Axis.
26

Apasati tasta F9 si analizati ce se intampla cu timpul de servire si cele doua reprezentari grafice

27

Distribuia uniform continu


variabila probabilista uniform repartizat n intervalul [a, b]: func ia f(x) de densitate de probabilitate: f(x) = 0 pentru x < a = 1/(b-a) pentru a x b = 0 pentru x > b, func ia distribu iei cumulative: F(x) = 0 pentru x < a = (x-a)/(b-a) pentru a x b = 1 pentru x > b media = (a+b)/2, dispersia 2 = (b-a)2/12. 28

Pentru distribuia uniform continu n intervalul [a, b], ecuaia F(x)=u este de forma (x-a)/(b-a) = u (x-a)/(bde unde: x = a + u*(b-a). u*(bExemplul 8. Timpul necesar pentru servirea unui 8. client este o variabil aleatoare uniform distribuit cu valori ntre 5 minute i 15 minute. Dac la Pasul 2 s-a generat numrul aleator u=0,72, atunci timpul de servire extras din distribuia de probabilitate uniform continu este x = 5 + 0,72 (15 5) = 12,2 minute
29

Distribuia triunghiular istribuia


- este descris prin trei valori (a<b<c), (a<b<c), - se utilizeaz atunci cnd nu exist date istorice referitoare la valorile variabilei analizate. analizate. Funcia f(x) de densitate de probabilitate: probabilitate: f(x) = 2(x-a)/((b-a)(c-a)) pentru a x b 2(x-a)/((b-a)(c= 2(c-x)/((c-a)(c-b)) pentru b < x c 2(c-x)/((c-a)(c30

Distributia triunghiulara (a=20; b=40; c=80)


0.35 0.3 0.25 f(x ) 0.2 0.1 0.05 0 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 Venit (u.m)
31

0.33

0.15

Distribuia triunghiular
Funcia F(x) a distribuiei cumulative este: F(x) = P(X x) = = 0 pentru x<a 2 = ((x-a) )/((b-a)(c-a)) pentru a x b 2 = 1 ((c-x) )/((c-a)(c-b)) pentru b<x c = 1 pentru x>c Media = (a+b+c)/3 Dispersia 2 = (a2+b2+c2ab acbc)/18

32

n cazul distribuiei triunghiulare descris prin trei valori (a<b<c): (a<b<c): Fie h = (b-a)/(c-a) (b-a)/(c dac u h, atunci din ecuaia F(x)=u rezult

x = a + (c-a)*(uh)
dac u > h, atunci

x = a + (c-a)*(1-((1-u)*(1-h)) )
33

Functia distributiei triungiulare cumulative 1.000 0.900 0.800 0.700 0.600 F(x) 0.500 0.400 0.300 0.200 0.100 0.000 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 Venit (u.m.)
(b-a)/(c-a)

34

Exemplul 9.
Se estimeaz c venitul lunar care va fi realizat din vnzarea unui produs nou poate fi descris de o distribuie de probabilitate triunghiular cu valoarea minim a = 20 uniti monetare, valoarea cea probabil b = 40 uniti monetare i valoarea maxim c = 80 uniti monetare. Se cere venitul mediu obinut prin 10 experimente de simulare.

35

36

Distribuia normal: are un rol fundamental normal: n teoria probabilitilor i n statistic; descrie: caracteristici ale populaiei (nlimea, greutatea) distribuiile unor mrimi care sunt sume de alte mrimi (conform teoremei limita centrale). Astfel, durata total de realizare a unui proiect, ca sum a duratelor probabiliste ale activitilor de pe drumul critic, este o variabil cu distribuie normal.
37

Distribuia normal - este simetric sub form de clopot (in lb. eng. bell shaped). Funcia f(x) de densitate de probabilitate este o funcie cu doi parametri, media i dispersia 2, de forma: f(x) =

( x ) 2 1 exp 2 2 2 2

38

39

40

Deoarece distribuia normal este descris de o funcie de densitate de probabilitate care nu poate fi integrat exact, nici inversa F -1 a funciei distribuiei cumulative nu poate fi obinut. Pentru generarea valorilor unei variabile cu distribuie normal se pot folosi metode aproximative cum sunt: metoda BoxBox-Muller, metoda teoremei limitei centrale, metoda respingerii. respingerii.
41

programul EXCEL, prin funcia =NORMINV (nr.aleator, media , abaterea standard ) determin o valoare x a unei variabile normal distribuite cu media i abaterea standard , prin aproximri succesive ale lui x, astfel nct diferena (u-F(x)), dintre numrul aleator u generat de RAND() i valoarea funciei F(x) de distribuie cumulativ, s fie mai mic dect 310-7.
42

Exemplul 10. Se cunoate c, greutatea unui cozonac realizat de firma Extra este o variabil probabilist normal distribuit cu media de 500 grame i abaterea standard de 50 grame. Se cere: -probabilitatea ca greutatea unui cozonac sa fie mai mare de 600 grame; -sa se realizeze 10 iteratii de simulare.

43

Exemplul 10. Pentru determinarea probabilitatii: P(X>600)= 1-NORMDIST(600,500,50,1) Pentru simulare: Nr.aleator = RAND() x = NORMINV(nr.aleator,500,50)

44

45

Distribuia exponeniala istribuia exponeniala este utilizat pentru a descrie timpul dintre diferite evenimente cum sunt, de exemplu, intervalele de timp dintre sosirile clienilor ntr-un sistem de ateptare. Se poate arta c dac numrul sosirilor poate fi descris de o distribuie Poisson, atunci intervalul dintre sosiri urmeaz o distribuie exponenial.
46

Distribuia exponeniala istribuia exponeniala Dac X este o variabil probabilist cu media i abaterea standard atunci:

funcia f(x) de densitate de probabilitate : f(x) = (1/)e-x/ funcia F(x) de distribuie cumulativ este: -x/ F(x) = P(X x) = 1 e Rezult c P(X > x) = e-x/
47

Daca 1/ = , atunci

48

49

n cazul distribuiei exponeniale cu media , soluia ecuaiei F(x)=u este de forma x = - ln(1-u) unde ln este logaritmul natural.
(sau EXCEL: =-ln(1-u)/lambda) Exemplul 11. Mrimea intervalului de timp dintre sosirile clienilor ntr-un magazin alimentar este o variabil aleatoare cu distribuie exponenial cu media de 5 minute. -Care este probabilitatea ca intervalul intre doua
sosiri sa fie mai mare de 10 minute?

-Sa se simuleze intervalele dintre sosirile urmatorilor 10 clienti.


50

51

S-ar putea să vă placă și