Sunteți pe pagina 1din 54

PREZENTAREA CURSULUI Cursul este structurat pe 4 capitole care acopera in intregime programa prezentata.

CAPITOLUL I Generaliti despre modelare si simulare


I.1. Introducere I.2. Construcia unui model de simulare I.3. Concepte de baz n modelarea sistemelor I.3.1. Realizari iterative ale sistemelor I.3.2. Modelarea sistemelori cu evenimente discrete I.3.3. Metodologia de realizare a experimentelor de simulare I.4. Generaliti despre limbajul GPSS I.5. Exemple de programe GPSS. I.5.1. Model de simulare pentru un sistem de ateptare cu o staie I.5.2. Model de simulare pentru un sistem de ateptare cu staii paralele I.5.3. Model cu staii paralele i preferine

CAPITOLUL II

Numere aleatoare

II.1. Noiuni introductive II.2. Necesitatea simulrii numerelor aleatoare II.3. Metode congrueniale liniare

CAPITOLUL III Simularea variabilelor aleatoare neuniforme


III.1. Metoda invers III.2. Metoda compunerii sau amestecrii III.3. Metoda respingerii III.4. Alte metode III.5. Simularea repartiiilor nrudite cu repartiia normal III.6. Simularea unor variabile particulare III.6.1. Repartiia exponenial III.6.2. Repartiia Gamma III.6.3. Metode pentru simularea variabilei Gamma(0,1, ) , > 1 III.6.4. Repartiia Beta III.6.5. Repartiia normal III.7. Simularea unor variabile discrete III.8. Validarea generatorilor

CAPITOLUL IV Simularea vectorilor aleatori


IV.1. Generalitati IV.2. Simularea vectorilor uniformi IV.3. Simularea vectorilor normali IV.4. Simularea repartitiei Cauchy multidimensionale VI.5. Simularea repartiiei multinomiale IV.6. Simularea repartitiei Dirichlet

CAPITOLUL I
GENERALITI DESPRE MODELARE SI SIMULARE 1.1. Introducere Cuvntul simulare este de origine latin (simulatio) i nseamn capacitatea de a reproduce ceva. n informatic, termenul de simulare a fost introdus de John von Neumann la nceputul anilor `40, o dat cu apariia primelor calculatoare electronice. J.von Neumann mpreun cu grupul de savani de la coala Los Alamos (Ulam, Metropolis etc) au dezvoltat primele aplicaii ale calculatoarelor. Tot ei au introdus denumirile Cercetri operaionale (pentru a desemna aplicaiile legate de dirijarea operaiilor militare pe arii geografice mari ale globului pmntesc!) precum i metoda Monte - Carlo (pentru a desemna aplicaii ale calculatoarelor bazate pe utilizarea numerelor aleatoare). n accepiunea actual a informaticii, simularea cuprinde o serie de aplicaii care realizeaz imitarea comportamentului unor pri ale lumii reale (simularea stochastic), lund n considerare i comportamentul aleator al acesteia. Din domeniul simulrii face parte i metoda Monte Carlo. Definiia 1. Simularea este o tehnic de realizare a experimentelor cu calculatorul, care implic utilizarea unor modele matematice i logice care descriu comportarea unui sistem real (sau a unor componente ale sale) de-a lungul unor perioade mari de timp. Deci simularea se realizeaz pe baza unui model special, numit model de simulare, cu ajutorul cruia se realizeaz experimentele prin intermediul calculatorului. Modelul de simulare se construiete pe scheletul unui model matematic i se finalizeaz ntr-un algoritm. De aceea n cele ce urmeaz vom prezenta schema general a unui model de simulare, pornind de la descrierea principalelor elemente ale unui model matematic. Model matematic. Prin definiie, un model este un analog ce reprezint o parte a lumii nconjurtoare ntr-un mod uor de perceput de ctre noi. Modelul ne reprezint uneori realitatea prin scheme, figuri geometrice sau alte obiecte ce ne sunt familiare i pe care le nelegem uor (i.e. la fel de bine cum le ''vedem'' sau le ''pipim''). Modelul matematic ne reprezint realitatea folosind elemente sau abstraciuni matematice. Elementele constitutive ale unui model matematic sunt urmtoarele: a) Variabile ( V ) i Parametri ( P ) care pot fi de intrare ( VI , PI ), dac pot fi percepute (msurate sau nelese uor), sau de ieire ( VE , PE ), dac dimpotriv, msurarea sau perceperea lor este dificil. Variabilele i parametrii pot lua valori numerice sau logice. Deosebirea dintre variabile i parametri const n aceea c parametrii nu i schimb valorile pe perioade mari de timp, n timp ce variabilele i schimb valorile chiar pe intervale mici de timp. Scopul modelului este de a exprima variabilele i parametrii de ieire n funcie de variabilele i parametrii de intrare, cu eventuala satisfacere a unor condiii de performan de ctre sistem (de ex. condiii de optim). Unele VI pot fi aleatoare, caz n care i unele variabile sau parametri de ieire vor fi de asemenea aleatoare. b) Relaiile funcionale constituie o alt categorie de elemente ale unui model matematic. Ele sunt de forma

Fi (VI , PI ,VE , PE ) = 0

(adic implicite) i pot fi la rndul lor de dou tipuri: - ecuaii, care sunt satisfcute numai de anumite valori ale variabilelor sau parametrilor; - identiti, care sunt satisfcute de orice valori ale variabilelor i parametrilor; ele exprima condiii de echilibru sau legi de conservare. Ecuaiile si identitile pot fi relaii algebrice sau transcendente, difereniale sau integrale, detrministe sau stochastice, etc. c) Caracteristicile operative constituie o alt categorie de elemente ce compun un model matematic i ele pot fi:

- ipoteze de lucru (referitoare la relaiile funcionale); - ipoteze statistice (referitoare la VI -aleatoare). d) Tehnica de rezolvare este un alt element constitutiv al unui model matematic. Ea este o tehnic matematic ce realizeaz separarea elementelor de ieire n funcie de elementele de intrare, adic: (V , P )E = f i (VI , PI ) . Cu alte cuvinte, tehnica de rezolvare a modelului exprim sub form explicit variabilele i parametrii de ieire n funcie de variabilele i parametrii de intrare. Tehnicile matematice de rezolvare a modelelor sunt ns srace att ca varietate, ct i ca performan. De exemplu, ecuaiile modelului se pot reazolva numai dac sunt liniare sau uneori ptratice, iar dac sunt de grad superior ele se pot rezolva numai dac au forme particulare. La fel, ecuaiile difereniale sau cu derivate pariale se pot rezolva cu metode matematice deductive numai n anumite cazuri particulare. De aceea n construcia modelelor matematice se fac de multe ori ipoteze simplificatoare care permit aplicarea tehnicilor de care dispune matematica. (Acesta este scopul utilizrii de ctre model a caracteristicilor operative!). Din aceste motive, modelarea matematic este aproximativ i ea nu permite rezolvarea realist a problemelor practice. Utilizarea calculatorului permite mbuntirea performanelor modelelor matematice prin utilizarea metodelor numerice. Dar i n aceste condiii modelele matematice nu pot descrie corect realitatea n toat complexitatea ei deoarece nu toate relaiile dintre obiectele lumii reale se pot exprima prin formule matematice. ntr-o atare situaie modelul matematic trebuie completat cu descrieri care s imite anumite comportri ale lumii reale. Acestea se realizeaz prin descrieri algoritmice de tipul if-then-else- sau if-then- combinate cu alte structuri algoritmce (cicluri, secvene etc.). n acest fel, modelul matematic se completeaz, se extinde sub form de algoritm i devine model de simulare. Simularea mrete deci mult posibilitatea de tratare realist a problemelor aplicative. Construcia unui model de simulare, care n fapt este un algoritm complex, dezvoltat pe scheletul unui model matematic, este o sarcin nu prea uoar; o vom trata mai jos. Clasificri ale modelelor matematice. Mai nti s vedem ns cum pot fi clasificate modelele matematice: (i) Clasificarea modelelor matematice dup natura variabilelor utilizate de model: continue/discrete; statice/dinamice (dac timpul nu intervine sau dac apare explicit ca variabil a modelului); deterministe/stochastice (dup cum nu conin sau conin mcar o variabil de intrare ca variabil aleatoare). (ii) Clasificare topologic, dup structura determinat de prile n care se descopune modelul (cnd este cazul): cu o component/cu mai multe componente n serie , n paralel, n reea. Un model, fie el matematic sau de simulare, constituie de fapt o clas de modele.

I.2. Construcia unui model de simulare


Modelul de simulare (MS) presupune utilizarea calculatorului i el se construiete pe baza/scheletul unui model matematic; mai precis, el completeaz modelul matematic descriind unele relaii prin algoritmi, deci n final MS este un algoritm. Acest algoritm trebuie s descrie corect evoluia sistemului i s permit efectuarea de experiene (prin rulri pe calculator), care s nlocuiasc experienele ce ar trebui realizate asupra sistemului real. Structura unui model de simulare Construcia unui MS utilizeaz dou concepte de baz: ceasul simulrii i agenda simulrii. Ceasul simulrii. Ceasul asigur ealonarea corect n timp a evenimentelor create de

model i uneori ajut la implementarea condiiei de terminare a simulrii. El este de dou feluri: a) ceas cu cretere constant; b) ceas cu cretere variabil. Not: Evenimentele corespund unor modificri n sistem adic modificari ale valorilor unor variabile care se calculeaz sau se genereaz prin instruciuni ale modelului (chiar i dac sunt aleatoare!). Ceasul pornete cu valoarea zero la nceputul simulrii. Dac modelul se bazeaz pe ceasul cu cretere variabil, atunci ceasul este crescut cu valoarea ce corespunde apariiei primului eveniment urmtor; apoi programul prelucreaz evenimentul, dup care ceasul crete din nou relundu-se ciclul simulrii, pn cnd ceasul atinge o valoare dat iniial, Tmax care corespunde perioadei pe care se realizeaz simularea. Ceasul cu cretere constant presupune c de fiecare dat creterea se realizeaz cu o cuant de timp c constant; apoi se prelucreaz toate evenimentele aprute pe intervalul de timp de lungime c , dup care se reia ciclul simulrii. Simularea se termin de asemenea cnd ceasul atinge valoarea Tmax . Terminarea simulrii se poate realiza i impunnd condiia ca modelul s prelucreze un anumit numr dat de evenimente de un tip precizat. (De exemplu, n cazul unui model de simulare a unui sistem de ateptare, se poate impune condiia ca simularea s se termine cnd s-a simulat servirea unui numr dat de clieni). A rmas oarecum neprecizat ce se nelege prin prelucrarea unui eveniment. Acest fapt se nelege uor dac precizm i conceptul de agend a simulrii. Agenda simulrii. Agenda se compune din elementele memorate de modelul de simulare. Variabilele modelului iau diverse valori pe parcursul simulrii; de aici rezult c pe parcursul simulrii apar multe evenimente. Memorarea n totalitate a acestor evenimente, mpreun cu caracteristicile lor, nu este nici recomandat dar nici necesar dac simularea se realizeaz pe perioade mari de timp. De aceea, se memoreaz (n agend) numai ceea ce este strict necesar. Evenimentele sunt de diverse tipuri; unele variabile descriu i stri ale sistemului (sau ale unor componente ale acestuia). Evenimentele sunt create sau generate la momente de timp ulterioare valorii ceasului. De aceea agenda se compune din dou pri: agenda evenimentelor curente AEC i agenda evenimentelor viitoare AEV . Deci agenda A = AEC AEV , unde: AEC = agenda evenimentelor curente (care au timpul de apariie egal cu valoarea ceasului); iar AEV = agenda evenimentelor viitoare (care au timpul de apariie ulterior ceasului). Algoritmul simulrii prelucreaz deci numai evenimentele din AEC ; prelucrarea unui eveniment nseamn fie determinarea apariiei unui nou eveniment (memorat n AEV ) sau modificarea unei stri, fie distrugerea unui eveniment ("tergerea'') lui din agend. Prelucrrile evenimentelor in seama i de strile sistemului la acel moment. Algoritmul simulrii gestioneaz/actualizeaz agenda prin interaciunea acesteia cu ceasul; ntr-un ciclu al simulrii ceasul este acualizat, dup care se selecteaz din agenda A evenimentele care fac parte din AEC i se prelucreaz aceste evenimente pn cnd AEC devine vid. Atunci, ceasul este crescut din nou i se reia ciclul simulrii. Deci agenda simulrii se modific pe parcursul simulrii conform urmtoarei relaii de dinamic

A = A AE gen O AE elim
unde Agen sunt evenimentele generate pe parcursul unui ciclu, iar Aelim sunt evenimentele eliminate cu ocazia prelucrrii AEC . (Semnele i O se autexplic).

I.3. Concepte de baz n modelarea sistemelor


Prin sistem se nelege, sub forma cea mai vag, o mulime de obiecte O interconectate prin intermediul unei relaii R , adica Sistem = (O , R ) , unde

R O O
Definiia formal general a unui sistem este: Definiia 2. Un sistem este urmtoarea structur de mulimi: S = (T , X , , , Y , , ) unde: T = timpul de baz al sistemului (ceasul sistemului); X = mulimea intrrilor; = mulimea segmentelor de intrare (forma intrrilor!); segment = : (t 0 , t1 ) X ,= (t ,t ) =grafic= {(t , (t )), t0 t t1} . Se folosete de regul notaia

= mulimea strilor interne ale sistemului = memoria sistemului; Conceptul de stare este esenial n modelarea sistemelor; el descrie structura intern (intim!) a sistemului; = funcia de tranziie a strilor definit ca : . Ea satisface relaia (, ) = , t ) , (t , t , = t )(t .

(t ,t1 ) = {(, ( )), t t1 } i notaiile = (t0 ,t1 ) , t ) = (t0 ,t ) , (t = (t ,t1 ) , = t )(t .

0 1

((

) )

Y ; (, x, t ) conduce la un segment de ieire ce reprezint forma rspunsului sistemului la intrarea x , la momentul t cnd starea la momentul t 0 , t 0 < t , este ;
= funcia de rspuns, de forma : X T

care este axioma semigrupului sau proprietatea de separabilitate a strilor. Mulimea (graficul) (, ) se numete traiectorie a strilor; Y = mulimea ieirilor (Sistemul este presupus deschis, intrrile i ieirile fiind exterioare sistemului). Mulimea Y conine rspunsul sistemului la intrarea de forma , cnd la momentul iniial t 0 sistemul se afl n starea .

Not: din definiie rezult c pentru o stare iniial , (la momentul t 0 ) cnd are loc intrarea de forma se realizeaz o traiectorie unic a strilor. Cu alte cuvinte, traiectoria strilor satisface relaiile: STRAJ , : (t 0 , t1 ) , astfel nct STRAJ , (t 0 ) =

STRAJ , (t ) = (, (t ) , t (t 0 , t1 ) OTRAJ , : (t 0 , t1 ) Y

Proiecia STRAJ obinut prin funcia de tranziie a strilor compus cu funcia de rspuns, este traiectoria de ieire Dac = ( ) (ieirea depinde numai de ) atunci rezult relaia simpl:

OTRAJ , (t ) = (STRAJ , (t )) .

Nivele de reprezentare a sistemelor. Exist mai multe nivele de reprezentare a sistemelor i anume: - Reprezentarea la nivel de comportare. Sistemul este o cutie neagr (black box), exprimat formal prin relaia:

Rs = (, ) , = OTRAJ , ,

Acest nivel de reprezentare este cel mai vag. El descrie numai relaiile de intrare/ieire ce

se pot observa din afara sistemului (care deci se comport ca o cutie neagr). Reprezentarea la nivel de structur de stare. La acest nivel se intr n structra intern a sistemului, adic se stabilesc elementele acestuia : (T , X , , , Y , , ) , definite ca mai sus. - Reprezentarea modular (ca structur compus). Dac sistemul este complex, atunci se identific subsisteme ale acestuia precum i interconexiunile dintre ele n sensul c ieirile unor subsisteme sunt intri n alte subsisteme, intrrile unor subsisteme fiind intrri ale sistemului i ieirile unor subsisteme fiind ieiri ale sistemului. Nivelele de reprezentare a sistemelor, pornind de la forma cea mai vag i continund pn la forma detaliat, legitimeaz Metodologia ''TOP DOWN'' de proiectare a sistemelor de orice fel, n particular, metodologia de proiectare a sistemelor informatice, i n general metodologia de proiectare ierarhic, descendent a programelor. -

1.3.1 Realizri iterative ale sistemelor


Considerm T o mulime numit timp de baz, timp care poate fi discret cnd T Z sau de puterea continuului cnd T R. Numim interval de observaie orice submulime < t0, t1 > T, unde < > { [ ], [ ), ( ], ( )}. Numim segment peste o mulime arbitrar A, relativ la intervalul de observaie < t0, t1 > orice funcie :< t0, t1 > A. Notm dom = < t0, t1 > i uneori < t0, t1 > n loc de . De asemenea, notm cu (T,A) mulimea tuturor segmentelor peste A relativ la intervale de observaie din T. Spunem c (T,A) este nchis prin segmentare (IPS) oricare ar fi asfel nct dom = < t0, t1 > i < t0, t1 > <, > , unde > = < , t1 > (numit segment drept) i < = < t0, > (numit segment stng). Numim obiect abstract [ 40,54] o mulime A de perechi ordonate (, ) cu condiia nchiderii prin segmentare, n care i sunt legate prin relaii i/sau funcii intrare/ieire. Perechea (, ) se numete pereche intrare / ieire; se numete intrarea lui A, iar se numete ieirea lui A. Un obiect abstract este dat prin una sau mai multe relaii sau funcii intrare / ieire, adic prin sisteme de ecuaii difereniale sau cu derivate pariale sau sisteme de ecuaii cu diferene sau este dat prin algoritmi capabili s genereze toate perechile intrare / ieire ale sale. Numim sistem o mulime de obiecte abstracte interconectate { A1, A2, , An } n care o parte din intrrile sau ieirile unor obiecte pot coincide cu ieirile respectiv intrrile altor obiecte. Astfel un sistem se reduce tot la o mulime de segmente legate prin relaii i/sau funcii intrare/ieire. Se numete main secvenial structura M = (X, , Y, , ) n care: X=alfabet de intrare Y=alfabet de ieire =o mulime de stri : Y funcia de ieire a mainii : X funcia de tranziie a strilor.

Se numete realizare iterativ a sistemului A = {(, )} structura G(A) = (T, X, G, , G, ) n care: T=timp de baz X=mulimea valorilor de intrare Y=mulimea valorilor de ieire =mulimea strilor sistemului G=mulimea generatoare a segmentelor de intrare : Y funcia de ieire G : G funcia de tranziie a strilor G ( T, X )0 = { : <0,t> X | t T } G este astfel nct extensia

+ G + G
i G

s verifice proprietatea de separabilitate a este nchiderea la compunere a lui

strilor (proprietatea compunerii), unde demonstreaz uor c este :


+ G

care se

i >0

, unde ,j

iG = { k
iar

k 2 k i

| kj

1, i

G (q,)

(q,)=

(G (q,x),

), = x

+ G , x G, G ,q

(proprietatea compunerii) Se numete model iterativ [1,40] al sistemului A = {(, )} cu realizarea iterativ G(A) = (T, X, G , , Y, G, ), structura SG(A) = (T, X, compunere a lui G, iar compunerii.
+ G , , Y,
G,

G ( q, ' ) = G ( G ( q, ), ' )

), n care

+ G

este nchiderea la

este extensia lui G definit mai sus i verific proprietatea

Exemplu Fie maina secvenial M = (XM, M, YM, M, M). Lum realizarea iterativ GM = (T, X, G , , Y, G, ) n care: T = Z, X = XM, Y = YM, = M, = M, < > = [ ) este interval de observaie i deci < t0, t0 + 1> = [t0, t0 + 1) = { t0 } G : G este dat prin relaia: G (q,) = M(q,(0))

G = {| : < 0,1> X} = {| : {0} X} = {x| x X, x(0) = x}, mulimea segmentelor de lungime 1. Observaie Evident, G X i dac X+ = unde X avem
k

X
k 1

= { x1 x2 xk | xi X,i = 1 , k }

+ + G X .

Propoziie Fie M o main secvenial i simboluri, dat prin

extensia funciei de tranziie a strilor la secvene de M,

: M

M ( q , ) ,

+ XM

XM
+ XM

(q,) =

Atunci

(M (q,x), ), = x

+ , x XM, X M

(q, ) =

(q, ), ) pentru q M, ,

+ XM

Demonstraie: Se face prin inducie dup lungimea secvenei , notat ||. Propoziie Fie M o main secvenial definit ca n exemplul de mai sus i GM o realizare iterativ a sa. Atunci, dac
+ G

dom

<

0,

>

avem

G (q,) = M (q,(0)(1)... (n 1))


Demonstraie Se face prin inducie dup lungimea lui , notat l(). Propoziie Fie M o main secvenial cu XM, M, YM spaii vectoriale de dimensiune finit peste un corp K, M : M YM dat prin M(q) = Cq iar M : M XM M , dat prin relaia M(q,x) = Aq + Bx, unde A, B, C sunt transformri liniare peste spaii vectoriale de dimensiune finit, A:M M, B:XM M, C:M Y. Atunci modelul iterativ extins SG ( M ) este modelul unui sistem liniar numit sistem discret invariant n timp specificat de A, B, C, K, n care G(M) este realizarea iterativ a lui M construit ca n exemplul de mai sus. Demonstraie

Se construiete din aproape n aproape funcia de tranziie a strilor modelului iterative. Se obine:

G ( q , ) = A l ( ) q +

l ( ) 1 i=0

l ( ) 1 i

B ( ( i ))

relaie care se demonstreaz prin inducie dup lungimea lui .

1.3.2 Modelarea sistemelor cu evenimente discrete


n acest paragraf vom prezenta un exemplu de modelare a sistemelor cu evenimente discrete cu scopul de a evidenia o metod de lucru i de a reliefa dificultatea unei astfel de modelri. Am vzut n introducere c modelul este o reprezentare izomorf a realitii, reprezentare care ofer o imagine intuitiv i riguroas a fenomenului studiat i n plus faciliteaz descoperirea unor conexiuni i legiti care nu pot fi observate la o analiz sumar. Reprezentarea unui model nu trebuie neaprat s fie perfect, ci s contribuie la clarificarea gndirii, la culegerea i nregistrarea de informaii necesare elucidrii consecinelor presupunerilor fcute asupra sistemului modelat. Modelul unui sistem este o reprezentare simplificat a acestuia orientat spre studiul anumitor tipuri de aciuni ale sistemului real. Definitie Se numete sistem cu evenimente discrete (SED) structura M = (XM, SM, YM, M , M, t ) n care: XM = mulimea evenimentelor externe SM = mulimea strilor secveniale ale sistemului YM = mulimea valorilor de ieire

: M (XM

{}) S

este funcia de cvasitranziie a strilor, dat prin:

M((s,e),)

= (s), : SM SM fiind funcie de tranziie autonom.

M = {(s,e) | s SM , 0 e t (s)} M : M YM este funcia de ieire a sistemului.

t : SM [0, ) este funcia de avans a timpului. Pentru s S, t (s) reprezint timpul maxim ct sistemul rmne n starea s. Neapariia evenimentelor externe a fost notat cu . n cele ce urmeaz modelm iterativ un sistem cu evenimente discrete. Vom cuta mai nti o realizare iterativ G(M) = (T, X, G, , Y, G,), n care vom lua T = Z , intervalul de observaie de forma [ ) i X = XM {} . Pentru aceasta vom lua ca mulime generatoare a segmentelor de intrare mulimea G = X unde = { | > 0, : [ 0,) {}} este mulimea segmentelor de lungime finit fr evenimente externe iar X = {x | > 0, x : [ 0,) XM {}, x (0) = x, x (t) = , t (0,)} este mulimea segmentelor de lungime finit pentru care evenimente externe pot apare doar la momentul t = 0. Vom defini G : G dat prin
(s, e + ),e + t (s) G ((s, e), ) = G (( (s),0),e+ t ( s) ),e + > t (s)

G (( s, e), x ) = G (( M ((s, e), x),0), )

Observaie: n cele ce urmeaz vom nota pentru uurin G (s,e, r ) n loc de G ((s,e), r ) i analog G (s,e, xr) n loc de G ((s,e), xr). Acest model general de sisteme cu evenimente discrete nglobeaz sistemele de ateptare, sistemele informatice, reelele de calculatoare etc. Propoziie Fie : SM SM funcie de tranziie autonom ntr-un SED i extensie a sa dat prin

: SM + SM o

(s,0) = s (s,n+1) = (

(s,n)), n 0

(s,n) reprezint starea la care ajunge sistemul pornind din s dup ce face n tranziii. Atunci:

a)

(s,n) =

n (s), n N* , s SM

+ b) (s,n+p) = ( (s,n),p), p,n , s SM Demonstraie a) Se face prin inducie dup n 1. b) Se folosete a) sau se demonstreaz prin inducie dup p 1, folosind urmtoarea observaie.

Observaie Lund n = 0 n definiia lui

se obine (s,1) = ( (s,0)) = (s).

Definiie Fie M un SED i : SM Z+ [0,) dat prin: (s,0) = 0,

(s, n) = t ( (s, i)),n 1


i =0

n1

Funcia (s,n) d timpul total folosit de sistem pentru a face n tranziii dup ce a plecat din starea s, adic timpul n care sistemul st n cele n stri atinse prin n tranziii succesive, timp msurat din momentul plecrii din starea s (acest timp se poate msura i din momentul intrrii n starea s lund

(s, n) = t ( (s, i)),n 1).


i =1

Propoziie Fie M un SED i definit ca mai sus. Atunci: a) Funcia us : Z+ [0,) dat prin us(n) = (s,n), n 0 este nedescresctoare pentru s SM. b) (s,n+m)= (s,n)+ (

(s,n),m), s SM, m,n +.

Demonstraie Pentru un SED M notm ms,e, = max {n N | (s,n) < e + } care reprezint numrul maxim de tranziii fcute de sistem n intervalul de timp <0,e + > plecnd din starea s, atunci cnd acest maxim exist.

Observaie a)Dac pentru orice n N, (s,n) < e + atunci {n N | (s,n) < e + }= N i deci nu exist ms,e,. b)Dac j N astfel nct j {n N | (s,n) < e + } atunci pentru orice m j, m {n N | (s,n) < e + } i astfel {n N | (s,n) < e + } este finit, de unde rezult c n acest caz exist ms,e,. Propoziie Fie M un SED. Atunci: a)Dac ms,e, avem (s, ms,e,) < e+ (s, ms,e,+1) b)Dac s SM pentru care lim ( s, n) = L , exist i este finit, atunci e, astfel nct
n

e + > L, nu exist ms,e,. c)Pentru s SM, ms,e,, e, astfel nct e + > 0 lim ( s, n) =
n

Demonstraie Propoziia 2.2.6. [40] Fie M un SED pentru care exist ms,e, s SM, e, +. Atunci Demonstraie

m ( s ,ms ,e , ), +e ( s ,ms ,e , ), =
=max {n N | (s,n + ms,e,)< e + + }.

Propozitie Fie M un SED pentru care exist ms,e,, s SM, e, +. Atunci

ms , e , + = ms , e , + m
Demonstraie

( s , m s , e , ), + e ( s , m s , e , ),

Propoziie ntr-un SED avem urmtoarele proprieti: a) ms,e, = 0 e + b) +e >

(s).

(s)

m s ,e , = m

( s ), 0 , e + t ( s )

+1

Demonstraie a)Implicaia de la stnga la dreapta se obine punnd ms,e, = 0 n 2.2.5.a) i folosind relaia (s,1) =

(s) care rezult lund

( s, n) =

t ( ( s , i )).
i=0

n 1

Aceasta reprezint timpul total necesar sistemului pentru a face n tranziii din momentul intrrii n starea s. Implicaia de la dreapta la stnga se demonstreaz prin absurd folosind forma de mai sus a lui . Propoziie Fie M un SED pentru care exist ms,e,, s SM, e, +. Atunci

G ( s, e, ) = ( ( s, ms , e, ), + e ( s, ms , e, )).
Demonstraie

Se face prin inducie dup ms,e, 0. Propoziie Fie M un SED pentru care exist ms,e,, s SM, e, +. Atunci

G (q, + ) = G ( G (q, ), ) , q = (s,e) , , +.

Demonstraie Se evalueaz cei doi membri ai relaiei folosind 2.2.9. i se obine egalitatea cerut. Propoziie Fie M un SED pentru care exist ms,e,, s SM, e, +. Atunci

G (q, x + ) = G ( G (q, x ), ) , q , , +.

Demonstraie Definiie Un SED M se numete viabil s SM, lim Teorema

(s, n) =

Fie M un SED viabil. Atunci structura G(M) = (T, X, G , , Y, G, ) este o realizare iterativ a lui M, iar
+ SG(M) = (T, X, G , , Y, G, )

este un model iterativ pentru sistemul cu evenimente discrete M n care: T = Z+, cu intervale de observaie de forma : < > = [ ) . X = XM {}, XM = M = {(s,e) | s SM, 0 e Y = YM = M G = X G : G dat prin :

(s)}

G (( s, e), ) = ( ( s, m s ,e , ), + e ( s, ms ,e , )) G (( s, e), x ) = G (( M (( s, e), x),0), )


Demonstraie Din definiia lui G se observ c aceasta poate fi luat ca mulime generatoare a segmentelor de intrare. Folosind propoziiile de mai sus se demonstreaz c G verific proprietatea de separabilitate a strilor. I.3.3. Metodologia de realizare a experimentelor de simulare (Metodologia simulrii) Etapele realizrii unui experiment de simulare sunt: 1. Formularea problemei; const n a preciza ntrebrile la care trebuie s rspund modelul i a preciza domeniul lumii reale ce trebuie analizat. Aici se precizeaz i forma rspunsului la ntrebri (de ex. dac se vor produce grafice, tabele sau chiar texte scrise).

2. Realizarea unor experimente preliminare; n aceast etap se stabilesc, pe baza observaiilor sau datelor culese din lumea real, sau existente, referitoare la aceasta (istorice), variabilele i parametrii i care din acestea sunt de intrare sau de ieire. 3. Prelucrarea (interpretarea) primar a datelor preliminare; acum se disting variabilele aleatoare, se estimeaz parametrii i se testeaz ipoteze statistice. (Statistica matematic joac un rol important n simulare). 4. Formularea unui model matematic preliminar, incomplet; n aceast etap se precizeaz relaii funcionale, ipoteze de lucru (care s concorde cu datele existente, colectate) i se indentific ce relaii nu pot fi exprimate matematic i care sunt dificultile ce ar trebui nlturate pentru a rspunde la ntrebrile formulate. 5. Evaluarea modelului etap de decizie; se urmrete s se evalueze complexitatea modelului, dac el poate rspunde n timp real i complet la ntrebri; n aceast etap se pot eventual revizui unele din etapele precedente fcndu-se simplificri sau completri ale modelului matematic propus. 6. Construcia modelului de simulare (sub form de algoritm detaliat); modelul se construiete conform celor precizate anterior urmrindu-se ca el sa fie general. La construcia algoritmului simulrii se va avea n vedere i cum se va realiza programarea: ntr-un limbaj evoluat sau nt-un limbaj specializat de simulare. Exist un numr mare de limbaje de simulare toate avnd la baz, mai mult sau mai puin, filozofia DEVS. Un astfel de limbaj (ce va fi prezentat n seciunea urmtoare) este GPSS= General Purpose Simulation System. O versiune romneasc a acestui limbaj este SIMUB (limbajul de SIMulare al Universitii din Bucureti). 7. Validarea modelului este de asemenea o etap important. n afar de validarea formal (testare sintactic i formal a programului), trebuie s se decid dac modelul rezolv corect problema formulat. Acest lucru se realizeaz prin compararea rezultatelor simulrii fie cu rezultate practice cunoscute, fie prin compararea cu soluia obinut cu ajutorul unui model matematic. (De ex. n teoria cozilor se cunoate soluia matematic a modelului n anumite ipoteze restrictive; se va obine soluia prin simulare pe baza unei selecii de volum mare a variabilelor de ieire. Dac soluia simulat se apropie de soluia matematic, atunci, n virtutea legii numerelor mari, rezult corectitudinea modelului de simulare, acesta fiind deci valid i n ipoteze diferite de cele cosiderate la validare). 8. Planificarea experienelor de simulare este urmtoarea etap necesar. Aa cum am precizat, simularea este un experiment realizat cu calculatorul pe baza unui model ce descrie sistemul real. Orice experiment (cu caracter statistic ca n cazul simularii) trebuie s se desfoare pe baza unui plan experimental. Pentru planificarea experimentelor de simulare se folosesc metode ale statisticii matematice (aa-zisele experimental designs). 9. Prelucrarea i interpretarea experienelor de simulare este o etap la fel de important ca i cele precedente. Programul de simulare rulat pe calculator produce de regul valori de selecie asupra variabilelor de ieire, dar care nu definesc selecii statistice n sensul obinuit (nu sunt selecii bernouliene deoarece valorile de selecie sunt de regula dependente). De aceea prelucrarea experimentelor de simulare se face cu mijloace statistice din cele mai sofisticate (prelucrarea seriilor dinamice). Toate limbajele de simulare posed un minim de faciliti pentru prelucrri statistice simple (calcule de medii, dispersii, coeficieni de corelaie, histograme etc,). I.4. Generaliti despre limbajul GPSS Limbajele de simulare sunt n acelai timp limbaje de programare i limbaje de modelare; ele implementeaz elementele eseniale ale simulrii: manipularea ceasului i gestionarea memoriei. Utilizatorul are grija descrierii evenimentelor i prelucrarea lor. Vom face o foarte scurt prezentare a limbajului GPSS (General Purpose System Simulator), urmnd ca cititorul interesat s recurg la un manual detaliat sau s foloseasc

facilitatea help existent n implementarea GPSS/PC. Acest limbaj a fost dezvoltat pentru prima data de firma IBM la inceputul anilor '60. Entitile limbajului GPSS. Limbajul GPSS se compune din 16 tipuri de entiti (elemente de abstractizare). La fiecare entitate se asociaz un numar de proprieti sau atribute n majoritatea lor adresabile intern (de ctre GPSS), dar unele sunt adresabile i de ctre utilizator; atributele sunt: standard numerice (numere) sau standard logice (valori logice). Entitile de baz sunt: 1) Blocuri (entiti care descriu {activiti); 2) Tranzacii (elemente circulante); ele sunt create (printr-un bloc special GENERATE) i circul prin model (sistem!), ca urmare a aciunii altor blocuri. Blocurile au asociate caracteristici numerice sau logice i posed argumente necesare descrierii activitilor. Tranzaciile posed un numr de parametri standard dar i parametri introdui de utilizator. Prin programul de simulare utilizatorul poate accesa parametrii tranzaciilor. Entiti de echipament: 3) Staii de serviciu sau faciliti (ele corespund subsistemelor cu o component care trateaz de regul o singura tranzacie!); 4) Multistaii de serviciu sau depozite; acestea trateaz de regul mai multe tranzacii (de ex. liftul, autobuzul, pot transporta mai muli clieni considerai ca tranzacii etc.); 5) Comutatorii logici sunt variabile logice care permit utilizatorului s realizeze ramificarea dup dorin a fluxului de execuie n programul de simulare. Entiti de calcul ce permit efectuarea (limitat!) a unor calcule: 6) Variabile aritmetice; permit evaluarea unor expresii aritmetice, iar rezultatul este memorat de o variabil aritmetic; 7) Variabile booleene; permit evaluarea unor expresii booleene, iar rezultatul este memorat de o variabil boolean; 8) Funcii descrise prin tabele sau prin segmente de dreapt (liniare pe poriuni); 9) Funcii analitice descrise prin expresii mai complicate (ele exist numai n SIMUB i au rolul de a facilita simularea diverselor variabile aleatoare prin metoda invers); Entitile statistice, permit colectarea unor statistici sau estimaii privind VE sau PE ; printre acestea se remarc: 10) Cozile care sunt entiti statistice ce memoreaz tranzaciile ntrziate n sistem; 11) Tabele de frecvene care descriu histograme ale VE ; 12) Tabele de frecven bidimensionale sau tabele de contingen (acestea sunt disponibile numai n SIMUB); Entiti de referin care memoreaz anumite informaii pe care le dorete utilizatorul i anume: 13) Cuvinte de salvare care memoreaz valori ce corespund cte unui cuvnt de memorie al calculatorului; 14) Matrice de cuvinte de salvare care memoreaz matrici; Entiti de tip lan, care sunt de dou tipuri: 15) Lanuri ale utilizatorilor n care se pot depune sau scoate tranzaii dup dorina utilizatorului (Exist i lanuri ale sistemului, manipulate intern de ctre GPSS, care nu pot fi accesate de utilizator). 16) Grupuri care separ tranzacii (cu anume scopuri de prelucrare dorite de utilizator). NOT. Toate entitile trebuie definite/identificate i declarate de ctre utilizator la nceputul programului. Pentru fiecare entitate se aloc memorie, la instalarea limbajului se aloc i un numr maxim de entiti care se pot utiliza ntr-un program. Entitile se invoc prin instruciuni cu structura fix. (Limbajul este un interpreter).

Limbajul permite descrierea modular a unui model de simulare general; cel mai important este modulul principal (ciclul de baz). Ieirile sunt standard; se afieaz/scriu valori ale atributelor, statistici, tabele de frecven etc. Limbajul GPSS este un interpreter, ceea ce nseamn c fiecare instruciune scris corect (i recunoscut ca atare de ctre GPSS) se execut imediat. Structura instruciunii GPSS. Instruciunea GPSS are un format fix. Nume simbolic Numele blocului Argumente/parametrii (etichet) (cuvnt cheie) (separate prin virgul) Verb imperativ care Opional pentru desemneaz aciunea A, B, C, referiri blocului 1) Blocurile descriu aciuni (sunt entiti active spre deosebire de tranzacii care sunt entiti pasive, n sensul c ele sunt micate prin model ca urmare a aciunii blocurilor). Tipurile de blocuri sunt: a) Blocuri de aciune: SEIZE/RELEASE (tranzacia curent ocup sau elibereaz o facilitate); PREEMPT (tranzacia intrat n acest bloc poate ocupa o staie de serviciu indicat de parametrul-argument sau o poate prelua dac este ocupat de alt tranzacie); ENTER/LEAVE (ocup sau elibereaz o poziie dintr-o multistaie); QUEUE/DEPART (intr n coad sau pleac din coad); LINK/UNLINK (introduce sau scoate tranzacia dintr-un lan al utilizatorului); SPLIT (descompune tranzacia n mai multe tranzacii care formeaz o familie); ASSEMBLE/GATHER (unific tranzaciile dintr-o familie fr, sau cu pstrarea atributelor de baz din familie); MATCH (sunt 2 blocuri conjugate; ele sincronizeaz deplasarea tranzaciilor care ntlnesc aceste blocuri); ADVANCE (ntrzie tranzaciile; simuleaz de ex. durata de serviciu a tranzaciei); BUFFER (nseamn prelucrarea tranzaciilor n ordinea prioritilor); JOIN/REMOVE (introduc sau scot tranzacia ntr-un grup); SCAN (verific dac exist o tranzacie n grup cu o anumit proprietate); b) Blocuri de creare i distrugere de tranzacii: GENERATE/TERMINATE (generarea se face cu generatori specializai de numere aleatoare, tranzacia putnd fi prevzut cu prioriti); c) Blocuri de control logic al tranzaciilor: TEST (controleaz dac 2 atribute ale tranzaciei satisfac o condiie); TRANSFER (asigur transfer condiionat sau nu al fluxului de execuie la blocul indicat prin argument); GATE (modific drumul tranzaciilor n funcie de condiii referitoare la atribute ale facilitilor, multistaiilor, comutatorilor logici sau tranzaciilor); EXAMINE (modific fluxul n funcie de apartenena la un grup); LOOP (repet execuia de la blocul menionat ca argument pn la blocul LOOP); d) Blocuri de modificare a caracteristicilor tranzaciilor i a valorilor unor entiti de referin: ASSIGN (atribuie valori numerice parametrilor tranzaciilor i/sau le modific; cnd se genereaz o tranzacie poate fi prevzut cu ''locuri'' pentru un numr de maximum 12 parametri referibili de ctre utilizator; numrul parametrilor poate fi standard sau precizat de utilizator la generare); INITIAL (iniializeaz cuvintele sau matricile de cuvinte pstrate); PRIORITY (modific prioritile; lucreaz n legtur cu blocul BUFFER); LOGIC (poziioneaz pe true sau false un comutator logic ce poate juca rol de semafor); MARK (utilizat pentru a marca ntr-un cuvnt special asociat fiecrei tranzacii, valoarea ceasului); SAVEVALUE/MSAVEVALUE (memoreaz ntrun cuvnt/matrice valoarea unui atribut standard numeric precizat); COUNT (determin numrul de entiti ce satisfac o anumit condiie i-l memoreaza ntr-un parametru al tranzaciei specificat ca argument al lui COUNT); SELECT (selecteaz prima entitate

dintr-o gam de entiti ce satisfac o anumit condiie); ALTER (modific condiionat sau nu, parametri sau prioritatea uneia sau mai multor tranzacii dintr-un grup putnd modifica opional i drumul tranzaciei); HELP (permite includerea unor proceduri de calcul ale utilizatorului; este un bloc pretenios cci necesit interfaa ntre GPSS i limbajul n care este scris procedura; n SIMUB se foloseau subrutine FORTRAN); e) Blocuri pentru obinerea de statistici: TABULATE (pentru construirea histogramei); (n SIMUB se folosete i BTABULATE pentru construirea tabelelor de contingen). f) Blocuri pentru listri: PRINT (permite scrierea parial a unor statistici; cele mai multe statistici se scriu automat de GPSS la sfritul simulrii). 2) Tranzaciile se genereaz cu GENERATE i se distrug cu TERMINATE. La generare tranzaiile primesc automat nite parametri interni i un numr de parametri (limitat de exemplu la 100) declarai i care pot fi accesai de utilizator; n funcie de implementare, un program GPSS poate utiliza un numr maxim de tranzacii (acesta este un dezavantaj al limbajelor de simulare datorat faptului c limbajul gestioneaz agenda, facilitnd astfel detaliile de programare pe care ntr-un limbaj evoluat le rezolv utilizatorul). 3) Staiile de serviciu pot fi ocupate de o singur tranzacie la un moment dat. 4) Depozitele sau multistaiile au o capacitate declarat n prealabil i n ele pot intra mai multe tranzacii (ct permite capacitatea). 5) Comutatorii logici sunt de fapt variabile booleene, ce trebuie iniializate (precizeaz condiii satisfcute de ''echipamente''). Toate entitile de echipament sunt identificate printr-un numr (ntreg). Ele posed atribute standard numerice sau logice. 6) Variabilele au cuvntul cheie VARIABLE, au un nume i o expresie aritmetic (de dimensiune limitat) care conine atribute standard numerice, cuvinte de salvare, parametri etc. 7) Variabilele booleene BVARIABLE, sunt construite analog (de ctre utilizator) folosind atribute standard logice, inclusiv comutatori logici). 8-9) Funcia (FUNCTION) desemneaz o funcie de o variabil dat printr-o list sau o funcie liniar precizndu-se argumentul prin care este referit. 10) Coada este o entitate statistic pentru care se reine automat lungimea medie i lungimea maxim care se listeaz la sfritul simulrii. 11-12) Tabela de frecven se definete la nceputul programului cu TABLE i reprezint o histogram a unei variabile de ieire din model, de regul atribut numeric. La definire se precizeaz argumentul tabelat i numrul de clase de frecvene. 13-14) Cuvintele sau matricile de cuvinte pstrate sunt invocate prin INITIAL, SAVEVALUE sau MSAVEVALUE i ele se folosesc pentru a reine anumite valori pe parcursul simulrii. Sunt referite printr-un numr de identificare. 15) Lanurile sistemului sunt: lanul evenimentelor curente (LEC), lanul evenimentelor viitoare (LEV), lanuri ale tranzaciilor ntrerupte, lanuri ale tranzaciilor n ateptare pentru sincronizri, lanuri de ntrziere (asociate echipamentelor). Orice tranzacie activ la un moment dat se gsete ntr-un lan. Tranzaciile care se deplaseaz n sistem se gsesc n lanul evenimentelor curente. Mecanismul de actualizare a lanului evenimentelor curente i al celor viitoare este cel cunoscut (descris prin relaia dintre A, AEC i AEV ). Tranzaciile terminate (prin blocul TERMINATE) sunt distruse; blocul START precizeaz printr-un argument al su cte tranzacii se vor prelucra (termina). Prelucrarea tranzaciilor din LEC nseamn transferul lor n alt lan sau distrugerea. Tranzaciile ntrziate ( de ex. prin ADVANCE) sunt introduse n LEV. Lanurile sistemului sunt controlate automat de ctre sistemul GPSS. Lanurile utilizatorului (LU) sunt definite de acesta i ele (sau atribute ale lor) pot fi referite n programul GPSS. Tranzaciile pot fi introduse sau scoase din LU prin LINK i

UNLINK i ele se folosesc la implementarea unor discipline de serviciu (n cazul prelucrrii tranzaciilor din cozi). 16) Grupurile ofer utilizatorului un instrument de clasificare a tranzaciilor care au anume proprieti. De ex. toate staiile care la un moment dat depesc un anumit grad de utilizare a unei staii pot fi fcute membre ale unui grup. Un program GPSS este o list ordonat de BLOCURI ale cror argumente se refer la diverse entiti. I.5. Exemple de programe GPSS. I.5.1. Model de simulare pentru un sistem de ateptare cu o staie Programul GPSS pentru acest model este: GENERATE 10,2 ;Sosiri aleatoare la 10 2 minute SEIZE FRIZER ;Ocup staia de serviciu "FRIZER" ADVANCE 12,3 ;Durata servirii 12 3 minute RELEASE FRIZER ;Elibereaz staia TERMINATE 1 ;Ieire din sistem un client Comentariu. Cifrele din faa tabelului reprezint etichetele instruciunilor/blocurilor, iar textele de la terminarea liniilor reprezint comentarii. Dup denumirile blocurilor apar parametri acestora. Modelul nu este complet deoarece n faa blocului SEIZE pot s apar ateptri de aceea naintea acestui bloc trebuie introdus un bloc QUEUE i dup el un bloc DEPART ca mai jos (etichetele indic locul unde se introduc aceste blocuri respectnd ordinea). 002 QUEUE COADA1 ;Tranzacia ocup COADA1 003 SEIZE 004 DEPART COADA1 ;Tranzacia pleac, se actualizeaz ateptrile Pentru a prelucra 200 tranzacii se va da la nceput comanda: 000 START 200 La sfritul simulrii apelnd procedura GPSSREPT.EXE se va afia un raport final privind simularea care conine: - durata total a prelucrrii tranzaciilor (durata simulrii); - gradul de ocupare a staiei de serviciu (media i maxima); - durata medie a ateptrilor etc. 001 003 005 007 009 I.5.2. Model de simulare pentru un sistem de ateptare cu staii paralele Modelul de mai jos simuleaz un sistem de ateptare cu 3 staii paralele (ghiee ale unei bnci) n care serviciul se realizeaz cu disciplina FIFO (First In First Out) adic serviciul se execut n ordinea sosirii clienilor i nu se consider prioriti ale unor clieni. Clientul va trece pe la staia multipl de servire (depozit), dar el va ocupa o singur staie care-l servete (STORAGE 3). n final el va trece i la staia CASIER unde primete un alt serviciu (primete sau pltete banii pe baza formelor elaborate de ghieul parcurs anterior!). Desigur, pentru executarea modelului care urmeaz ar trebui adugat comanda START corespunztoare i apelat n final modulul de ieire GPSSREPT.EXE. Modelul este dat de programul: GHISEE STORAGE 3 ;Declararea dimensiunii multistaiei 001 GENERATE 4,1 ;Sosesc clienii 002 QUEUE COADA ;Clientul n COADA cci dorim statistici

003 004 005 006 007 008 009 010

ENTER DEPART ADVANCE LEAVE SEIZE ADVANCE RELEASE TERMINATE

GHISEE COADA 15,3 GHISEE CASIER 2 CASIER 1

;Ocup un loc n GHISEE (dac exist!) ;Clentu pleac din COADA (spre servire!) ;Clientul este servit (durata de servire!) ;Se elibereaz un loc (un ghieu) ;Ocup loc la CASIER ;Servirea clientului este 2 minute ;Elibereaz casierul (clientul pleac) ;Plecare client

I.5.3. Model cu staii paralele i preferine Se modeleaz serviciul la o frizerie unde lucreaz 3 frizeri (trei staii de serviciu!): Figaro, Gic i Tic. Clienii care sosesc sunt primii n proporie de 60 % de Figaro (care este preferat!) iar restul de 40 % sunt servii de ceilali doi, dar din acetia 50 % merg la Gic i 50 % merg la Tic. Modelul nu conine comenzile de START i cele de ieire. 001 GENERATE 6,1 ;Sosesc clienii 002 TRANSFER 4,,ALTII ;60 % clieni merg la Figaro 003 QUEUE COADAFIG ;Intr n coada lui Figaro 004 SEIZE COADAFIG ;Clientul se duce la Figaro; 005 DEPART COADAFIG ;Se culeg date despre aceast coad 006 ADVANCE 8,1 ;Clientul este servit 007 RELEASE FIGARO ;Figaro devine liber 008 TRANSFER ,CASA ;Clientul merge s plteasc ALTII TRANSFER ,LAGICA ;Tic i Gic sunt la fel 010 SEIZE TICA ;50 % din clieni merg la Gic 011 ADVANCE 12,2 ;Tic servete mai ncet ca Figaro 012 RELEASE TICA ;Tic este eliberat 013 TRANSFER ,CASA ;Clientu pltete LAGICA SEIZE GICA ;50 % i 40 % clieni merg la Gic 015 ADVANCE 12,2 ;Gic servete ca i Tic 016 RELEASE GICA ;Se elibereaz Gic CASA SEIZE CASIERA ;Se ocup staia casiera 018 ADVANCE 1 ;Plata ntr-un minut 019 RELEASE CASIERA ;Se elibereaz casiera 020 TERMINATE 1 ;Tranzacia pleac Not. Cele trei staii sunt folosite explicit, nu ca multistaie. Folosim coada numai la Figaro cci numai acolo (presupunem!) ne intereseaz statistici finale. n programele GPSS etichetele sunt opionale i ele pot fi mnemonice (care denumesc obiecte modelate ca de ex. LAGICA sau ALTII), sau pot fi constante ntregi care sugereaz ordinea instruciunilor; sunt obligatorii etichetrile blocurilor la care se refer alte blocuri (vezi TRANSFER mai sus). Parametri unor entiti pot desemna nume simbolice (de ex. staia GICA sau coada COADAFIG).

CAPITOLUL II. NUMERE ALEATOARE


II.1. Noiuni introductive Vom aminti mai nti cteva noiuni de baz. Presupunem c X este o variabil aleatoare i fie F ( x ) = P ( X < x ) funcia sa de repartiie. Densitatea de repartiie, cnd aceasta exist, este derivata funciei de repartiie, adic f ( x ) = F (x ) . Funcia F satisface proprietile:

F ( ) = 0 , F (+ ) = 1 , F (a ) F (b ) dac a < b . ntre F (x ) i f ( x ) are loc relaia:

F (x ) =

f (x )dx

De obicei X reprezint o caracteristic a unei mulimi de obiecte care variaz aleator de la un obiect la altul; acea mulime se numete populaie statistic. Dac lum la ntmplare un numr n de obiecte din populaie i considerm valorile X 1 , X 2 ,..., X n ale caracteristicii X ce corespund acestor obiecte, spunem c aceste valori determin o selecie de volum n asupra lui X . n statistica matematic selecia X 1 , X 2 ,..., X n este considerat ca fiind o mulime de variabile aleatoare independente i identic repartizate ca i X (aceasta numindu-se selecie bernoulian). Independena a dou variabile aleatoare se definete astfel: X este o variabil aleatoare independent de Y dac P ( X < x, Y < y ) = P( X < x )P(Y < y ) sau, dac notm

F ( x, y ) = P( X < x, Y < y ) funcia de repartiie comun a variabilelor X i Y i notm F1 ( X ) = P( X < x ) , F2 ( y ) P(Y < y ) funciile de repartiie marginale, ale lui X respectiv Y , F ( x, y ) = F1 ( x )F2 ( y )

atunci condiia de independen se scrie

(2.1.) S observm c se face distincie ntre variabila aleatoare X i o valoare x a acesteia (care reprezint un numr real fixat!). Valorile efectiv obinute prin procesul de selecie constituie o mulime de n numere care se spune c reprezint o realizare a seleciei bernouliene. Deoarece fiecare din aceste numere pot s reprezinte oricare valoare a lui X , se consider c valorile de selecie (numite i variabile de selecie) sunt independente i identic repartizate ca i X . Cnd pentru o variabil aleatoare X se cunoate F sau f spunem c se cunoate repartiia de probabilitate sau repartiia statistic a lui X . Exist multe tipuri de repartiii de probabilitate. Cele mai importante vor fi introduse n acest capitol, dar i n capitolele urmtoare. Repartiia uniform Una dintre repartiiile de probabilitate importante, dar care este natural, este repartiia uniform pe un interval [a, b] care are densitatea de repartiie de forma

k dac x [a, b] 1 , k= g (x ) = ba 0 n rest

(2.2.)

Variabila V avnd densitatea de repartiie (2.2) se spune c este repartizat uniform pe [a, b] . Deci toate valorile variabilei V sunt egal probabile. Funcia de repartiie corespunznd densitii (2.2) este

dac x < a 0 x a G (x ) = g (u )du = dac x [a, b] (2.3.) b a dac x > b 1 S notm cu U variabila aleatoare uniform pe [0,1] , pe care o vom numi pe scurt variabil uniform 0 1 . Densitatea de repartiie i funcia de repartiie a lui U sunt respectiv 0 dac x < 0 1 dac x [0,1] f (x ) = , F ( x ) = x dac x [0,1] (2.4.) 0 n rest 1 dac x > 1
x

Valorile de selecie asupra variabilelor aleatoare uniforme se numesc numere aleatoare. Nu este posibil s se produc cu calculatorul, printr-un algoritm, secvene de numere aleatoare care s fie uniform repartizate pe intervalul [0,1] i care s fie independente stochastic. De aceea numerele produse cu calculatorul vor fi numite numere pseudoaleatoare i ele vor putea fi folosite drept numere aleatoare dac au un comportament ct mai aleator. Un algoritm care produce un numr aleator (pseudoaleator) se numete generator de numere aleatoare (pseudoaleatoare). Iternd un generator se poate obine o selecie (secven) de numere aleatoare. Cnd este nevoie de numere aleatoare cu ct mai bune caliti se pot aplica metode care combin doi sau mai muli generatori, rezultnd un alt generator care produce secvene de numere pseudoaleatoare mai bune. n multe aplicaii sunt ns suficient de bune numerele produse de generatori simpli, aa cum se va vedea mai jos. II.2. Necesitatea simulrii numerelor aleatoare Urmtoarea teorem stabilete legtura ntre repartiia uniform 0 1 i repartiia uniform pe un interval [A, B ] oarecare. variabil uniform pe [a, b] i reciproc, dac V este o variabil aleatoare uniform pe [a, b] atunci variabila Teorema 1. Dac U este o variabil uniform 0 1 atunci V = a + (b a )U este o

U=

cuvinte F 1 (U ) = X ).

dac notm cu F 1 inversa funciei F atunci F 1 (U ) are funcia de repartiie F (sau cu alte Consecin practic. Dac am putea produce valorile de selecie U 1 , U 2 ,..., U n asupra lui U i am cunoate funcia de repartiie F a lui X , atunci am putea produce valorile de selecie X 1 , X 2 ,..., X n asupra lui X cu formula X i = F 1 (U i ) , 1 i n . Dac funcia F 1 se poate calcula cu un algoritm atunci valorile de selecie X i ar putea fi produse (generate) cu calculatorul folosind urmtorul algoritm:

este uniform 0 1 . Fiind dat o variabil aleatoare oarecare X , pentru care se cunoate funcia de repartiie , F este adevrat urmtoarea teorem care evideniaz importana repartiiei uniforme 0 1 , adic importana numerelor aleatoare. Teorema 2 (Teorema lui Hincin). Variabila aleatoare F ( X ) este uniform 0 1 iar

V a ba

independente, atunci i X i = F 1 (U i ) ar fi independente.

Metoda invers. (Algoritm) repet de n ori urmtoarele instruciuni genereaz o valoare de selecie U uniform 0 1 ; calculeaz X = F 1 (U ) ; Spunem c acest algoritm simuleaz o selecie de volum n asupra lui X . Dar paii cei mai importani ai algoritmului sunt ultimii doi pai care produc o valoare de selecie X , cci dac putem genera numere U uniforme 0 1 i independente, atunci prin iterarea primului pas am produce valorile seleciei de volum n asupra lui X . n metoda invers, dac am putea genera valori de selecie U i , 1 i n uniforme 0 1 Un algoritm pentru generarea (simularea) unei selecii U i , 1 i n de variabile uniforme 0 1 va trebui deci s produc n primul rnd un numr uniform 0 1 , iar prin iterri acelai algoritm s fie n msur s produc selecia de volum n ; deci selecia se va produce printr-o relaie iterativa de forma U i +1 = g (U i ) , iar algoritmul trebuie s permit producerea de numere U i independente stochastic. Valorile de selecie U i se numesc numere aleatoare uniforme sau simplu numere aleatoare. II.3. Metode congrueniale liniare Fie X o variabil aleatoare discret repartizat uniform avnd repartiia

2 m 1 1 (2.5.) m m + unde m N . Conform teoremei 1, variabila U uniform 0 1 se poate obine astfel X U = (0,1) (2.5'.) m 1 X : 1 m
unde n ultima relaie mprirea se execut n real. Valori de selecie asupra variabilei X se pot obine prin relaia congruenial liniar X i +1 = (aX i + c )(mod m ) (2.6.)

care spunem c definete generatorul mixt congruenial ( X 0 , a, c, m ) unde cele patru constante sunt numere naturale date. Pentru ca generatorul (2.6) s produc numere aleatoare, trebuie alese constantele X 0 , a , c , m astfel nct s satisfac condiiile: 1. Numerele X i s reprezinte o repartiie uniform de forma (2.5); acest lucru se realizeaz dac irul

{X i }

are o perioad mare adic dac cel mai mic numr pentru care

X i = X i + are loc pentru un ct mai mare.Acest lucru se ntmpl dac cele patru constante se aleg astfel nct relaia (2.6) s produc toate resturile modulo m , adic numerele 0,1,..., m 1 , iar m este mare. 2. Numerele X i s fie independente stochastic; acest lucru nu este practic posibil deoarece X i +1 depinde de X i conform relaiei (2.6); este ns posibil ca numerele X i , X i +1 s fie
slab dependente stochastic. Aceast condiie nseamn c numerele respective au un coeficient serial de corelaie apropiat de 0 , definit astfel:

= 1 = Corr ( X 1 , X i +1 ) =

E [X i X i +1 ] E [X i ]E [X i +1 ] Var [ X i ]Var [X i +1 ]
2

(2.7.)

Var [X i ] = E [X i E [ X i ]] = E X i2 {E [ X i ]}

[ ]

unde cu E [Y ] se noteaz valoarea medie a variabilei aleatoare Y . Din motive impuse de aritmetica sistemelor de calcul, modulul m se ia de forma e m = p unde p este un numr prim. Urmtoarea teorem precizeaz condiii pentru alegerea constantei a care definete generatorul (2.6). Teorema 3. Perioada maxim a generatorului (2.6) este = p e dac i numai dac

a 1(mod p ) cnd p > 2 a 1(mod 4 ) cnd p = 2 , 1 < a < p

(2.8.)

O valoare a lui a poate fi a = p k + 1 , 2 k e . Alegerea lui a folosind numai aceast teorem poate ns s produc un ir de ntregi X 0 , X 1 ,..., X 1 care s nu fie aleator; acest ir care conine sigur numrul 0 , poate s conin subiruri de lungime mare care s fie sau cresctoare, sau descresctoare, sau s prezinte o periodicitate mare. Presupunnd c X 0 = 0 (ceea ce este desigur permis) se observ c irul {X n } este de forma

1)c (2.6'.) (mod m ) , b = a 1 b Dac n relaia precedent lum a = b + 1 atunci (2.6') devine 2 X n = c n + Cn b + ... + C ns b s 1 (mod m ) (2.6''.) unde s este cel mai mic numr natural care satisface relaia (2.6'''.) b s 0(mod m ) Numrul s se numete potena generatorului mixt congruenial. Din relaia (2.6'') rezult c X n este de forma unui polinom n b modulo m i deci generatorul este cu att mai bun cu ct potena sa s este mai mare. S-a constatat c din punct de vedere practic, potena trebuie s fie cel
Xn =
n

(a

puin 5. Un caz interesant este acela cnd m = 2 e unde e este apropiat de cuvntul calculatorului pe care se implementeaz generatorul (2.6). n acest caz se arat c o alegere bun a lui a este de forma a = 2 1 + 2 2 + ... + 1 , f1 > f 2 > ... . Deci un generator pentru care m i a satisfac condiiile teoremei 3 genereaz un ir de numere aleatoare ntregi de perioada mare i care nu prezint regulariti (nu conin subiruri periodice de lungimi mari sau subiruri cu monotonii periodice). Constanta c poate fi deocamdat arbitrar aleas. S vedem cum putem alege constantele generatorului (2.6) astfel nct s fie suficient de mic. Numerele produse de (2.6) au o repartiie de forma (2.5) n care valorile lui X sunt 0,1,..., m 1 . Deci n acest caz avem
f f

E[X ] =

x
x =0

m 1

, Var [X ] =

x
x =0

m 1

{E [ X ]}

Evaluarea lui se face cu dificultate. Se arat c

m 1 m xs( x ) x x =0 x =0 , s ( x) = (ax + c )(mod m ) . 1 = = 2 m 1 m 1 2 m x x x =0 x =0


m 1

c c 1 1 6 + 6 a m m

c , c a m

(2.9.)

O valoare conciliant a lui a , care s asigure o valoare mic a lui este a condiia 0 se deduce c

m iar din

c trebuie s satisfac ecuaia m c 1 1 1 6 x + 6 x 2 = 0 adic = 3 = 0.211324865 (2.10.) m 2 6 Ultima relaie d o condiie pentru alegerea lui c . Notnd k = Corr ( X i , X i + k ) , se arat c k 1 , k > 1 , ceea ce asigur o dependen slab a numerelor deprtate din secvena X 1 , X 2 ,... . n concluzie, pentru ca generatorul (2.6) s fie bun trebuie s alegem un modul m ct mai mare, s selectm un a astfel nct s satisfac teorema 3 mpreun cu o poten mai mare dect 5 i s ia o valoare apropiat de m , iar c s satisfac (2.10). Numrul de start X 0 , care se mai numete i smna generatorului poate fi orice numr natural mai mic dect m . Pentru a produce un numr aleator ntreg X , generatorul (2.6) necesit deci efectuarea unei nmuliri i a unei adunri i apoi calcularea restului modulo m . Dac am alege c = 0 atunci am obine generatorul multiplicativ congruenial ( X 0 , a,0, m ) care are avantajul c
necesit numai operaia de nmulire el fiind deci de forma

X n +1 (aX n )(mod m )

(2.11.)

n acest caz X 0 trebuie s fie neaprat pozitiv cci altfel irul produs de (2.11) ar avea toate elementele egale cu zero deci nu ar fi un ir de numere aleatoare uniforme ntregi. Condiia de perioad maxim se modific i ea i ntr-un caz interesant din punct de vedere practic se exprim prin teorema urmtoare. Teorema 4. Perioada maxim a generatorului ( X 0 , a,0, m ) se obine cnd: (i) (ii)

X 0 este un ntreg pozitiv prim cu m ; a este rdcin primitiv modulo m i dac pi , 1 i t sunt numere prime atunci
perioada este

p ... p
1.

e e = 2 e 2 dac e 3 p e = p e 1 ( p 1) , dac p > 2


e1 1 et t e1 1

( ) ( )

) = c.m.m.m.c.((p ),..., ( p ))
et t

(2.12.)

Ali generatori de numere uniforme sunt: Generatorul aditiv congruenial, sau Fibonacci decalat notat (k ; X 0 , X 1 ,..., X k ; j; m ) i bazat pe relaia X n = X n j X n k (mod m ) (2.13.)

iar o alegere bun a constantelor este j = 24 , K = 55 , m = 2 e , e 31 care asigur o

2.

Generatorul congruenial inversiv notat ( X 0 , a, c, m )

perioad 2 55 1 .

unde X

1 i

este inversul (mod m ) al lui X i n raport cu operaia de nmulire a claselor de

X n = aX

1 n 1

+ c (mod m )

cu m prim , definit de relaia (2.14.)

3.

resturi, cnd acesta exist sau este zero altfel. (Dac m prim i X i 0 atunci inversul exist!). Generatorul matricial congruenial care este de forma X n = ( AX n 1 + C )(mod m ) (2.15.) unde X n este un vector d dimensional iar A , C sunt matrici d d . nmulirea matriceal va produce vectori X n cu componente corelate. Acest tip de generatori se utilizeaz pe calculatoare paralele. Generatori bazai pe registre de deplasare care utilizeaz reprezentarea binar a numerelor ntregi n calculator. Dac notm cu ai , 1 i p cifrele binare ale lui x n 1 i considerm cifrele C i nu toate egale cu zero, atunci generarea cifrelor ai ale lui lui X n se realizeaz prin relaia ai = c p ai p + c p 1 ai p +1 + ... + c1 ai 1 (mod 2) (2.16.)

4.

ai = (ai = p + ai p + q )(mod 2) , p > q > 0 (2.16'.) sau dac notm operaia binar or-exclusiv ca suma de bii modulo 2 atunci relaia
precedent devine

n practic se folosete forma mai simpl

ai = ai p ai p + q
recuren a numerelor aleatoare X i interpretate ca p tupluri de bii, adic

(2.16''.)

S observm c relaia de recuren referitoare la biii ai este aceeai cu relaia de

X n = X n p X n p+q

(2.17.)

Un generator bun este de exemplu generatorul X n = X n 3 p X n 3q , p = 521 , q = 32 , care are o perioad = 2 5211 . Formula (2.17) se poate extinde matricial sub forma X n = X n p X n p+q (2.17'.) 5.

G2 i folosim o tabel T [1,..., k ] (de ex k 64 sau k = 128 ). Algoritmul de amestecare a celor doi generatori este Iniializm T [i ] = U i cu numere U i produse cu G1 ;
Lum Y = T [ j ] ; Generm U cu G1 i lum T [ j ] = U Generm cu G 2 un indice aleator j { 1,2,..., k } ;

Amestecarea de generatori se obine astfel: S presupunem c se dau doi generatori G1 ,

1,2,..., k } se face Generarea indicelui aleator j , care este un ntreg uniform cu valori n { astfel Genereaz U cu G 2
Ia j = trunc(U k ) + 1 .

Generatorul G rezultat din amestecare este mai aleator dect prinii si G1 , G 2 , iar perioadele satisfac relaia (G ) = c.m.m.m.c.((G1 ), (G 2 )) .

CAPITOLUL III. SIMULAREA VARIABILELOR ALEATOARE NEUNIFORME


III.1. Metoda invers Aceast metod a fost deja introdus ca o consecin direct a teoremei lui Hincin. Ea se aplic n cazul n care funcia de repartiie se poate inversa uor. n tabela urmtoare se prezint cteva repartiii de probabilitate ce se pot simula cu metoda invers. Densitatea f Repartiia Inversa F 1

Exp( ) , > 0

f ( x ) = e x , x > 0 f ( x) = vx v 1e x f ( x) =
2

x = ln (u )
1v

Weib(0,1, v ) , v > 0
Cauchy PearsonXI, R , v > 0 Arcsin Logistic

x = ( ln (u ))

1 u x = log u n formulele lui f din tabel se precizeaz numai valorile lui x pentru care f ( x) > 0 , presupunndu-se c f ( x) = 0 n rest. n ultima coloan se scrie direct formula cu care se simuleaz variabila aleatoare X , deoarece s-a nlocuit 1 u cu u , economisindu-se n acest fel o operaie de scadere. nlocuirea lui 1 u cu u se va face ori de cte ori se va ivi ocazia.
Folosind metoda invers se poate construi uor un algoritm pentru simularea variabilei discrete

1 1 , xR x 1+ x2 vx , x>0 f ( x) = (1 + x )v+1 1 1 , x [ 1,1] f ( x) = x 1 x2 ex f ( x) = , xR (1 e x )2

1 x = tan u 2 1 x = 1v u 1 x = sin u 2

a2 am m , pi = 1 (3.1.) p2 pm i =1 Pentru simularea variabilei aleatoare X calculm mai nti valorile funciei de repartiie a a1 X : p 1
acesteia. Avem

0 p 1 p1 + p 2 F ( x) = p + p + ... + p 2 k ` 1

dac x < a 1 dac a 1 x < a 2 dac a 2 x < a3 dac a k x < a k +1 dac a m x


(3.2.)

Algoritmul pentru simularea lui X este Algoritmul SIMDISCRV Intrare tabela T [1..m] , T [i ] =
i

p
j =1

. Intrare a[1..m]

Ia X = a[i ]. III.2. Metoda compunerii sau amestecrii

Genereaz U uniform 0 1 cu U := random ; i := 1 ; while U > F [i ] do i := i + 1 ;

Aceast metod se aplic variabilelor aleatoare X a cror repartiie de probabilitate satisface urmtoarea definiie. Definiie 1. Funcia de repartiie F ( x) este o amestecare (sau compunere sau mixtur) discret a mulimii de funcii de repartiie {Fi ( x)}1i m cu repartiia disret

1 J : p 1
dac

2 m , p2 pm
m

p
i =1

=1

(3.3.)

F ( x) = pi Fi ( x)
i =1

(3.4.)

{G(x, Y )}YR , cu funcia de repartiie continu H ( y ) a lui Y F ( x) = G ( x, Y )dH ( y )


R

Funcia de repartiie F ( x) este o amestecare continu a familiei de funcii de repartiie dac ea este de forma (3.5.)

ultima integral fiind integral Stieltjes. Dac notm cu X variabila aleatoare care are funcia de repartiie F ( x) i cu X i variabila aleatoare care are funcia de repartiie Fi ( x) atunci amestecarea discret poate fi interpretat astfel: X = X i cu probabilitata pi , de unde rezult urmtorul algoritm pentru simularea lui X : Algoritmul COMPDISCR Genereaz un indice j avnd repartiia (3.3); Genereaz x j avnd funcia de repartiie F j ( x) ; Ia X := X j . O interpretare analog are i amestecarea continu, de unde se deduce urmtorul algoritm de simulare a variabilei aleatoare X ~ F ( x) Algoritmul COMPCONT Genereaz variabila Y care are funcia de repartiie H ( y ) ; Genereaz repartiie G (x, Y ) ; variabila aleatoare

ZY

care

are

funcia

de

Ia X := Z Y . Desigur, n algoritmii precedeni se presupun cunoscute metode de generare a variabilelor

aleatoare J , X i , Y , Z Y . Dac n definiia compunerii considerm n loc de funcii de repartiie, densiti de repartiie atunci formulele (3.4) i (3.5) se scriu respectiv:

f ( x) = pi f i ( x)
i =1

(3.4'.) (3.5'.)

f ( x) = g ( x, y )h( y )dy
R

III.3. Metoda respingerii Aceast metod (denumit n mod pesimistic ca metod a respingerii), ar putea fi denumit i metoda acceptrii-respingerii. Ea are forma general urmtoare dac ne referim la simularea unei variabile aleatoare X . Presupunem c se cunosc urmtoarele elemente: - Se cunoate un procedeu de simulare a unei variabile aleatoare N care ia valori naturale pozitive; - Se cunosc metode pemtru simularea unor variabile aleatoare S i S , i 1 , unde S este o familie de variabile aleatoare dat; - Se cunoate un predicat P (S1 , S 2 ,..., S n ) care se poate calcula S i , 1 i n ; (Acest predicat sau condiie trebuie s poat fi evaluat fr calcule de mare complexitate!); - Se cunoate funcia astfel nct X = ({S1 , S 2 ,..., S n }) , P (S1 , S 2 ,..., S n ) = true . Cnd pentru o variabil aleatoare X este posibil s se construiasc elementele precizate anterior, atunci se poate construi un algoritm pentru simularea lui X sub forma general urmtoare: ALGRES=Algoritm General de Respingere repeat Simuleaz o valoare n a lui N ; Simuleaz valorile de selecie S1 , S 2 ,..., S n din S ; Ia X = (S1 , S 2 ,..., S n ) . until P (S1 , S 2 ,..., S n ) = true ;

ordine de idei, se observ c dac p a = P (P (S1 , S 2 ,..., S n ) = true ) , numit probabilitate de acceptare, este apropiat de 1, atunci algoritmul este bun; n caz contrar algoritmul este lent. Teorema 1 (nfurtoarei). Fie dat o variabil aleatoare X care are densitatea de repartiie f ( x) , x R , pe care dorim s o simulm. Fie Y o alt variabil aleatoare a crei densitate de repartiie este h( x) astfel nct densitile f , h au acelai suport S (adic iau valori diferite de zero pe aceeai mulime S R ). Presupunem c exist o constant , 0 < < , astfel nct f ( x) h( x) , x S . n aceste condiii dac U este o variabil uniform 0 1 independent de Y , atunci densitatea de repartiie a variabilei Y , condicionat de 0 U f (Y ) (h(Y )) este f . Probabilitatea de acceptare este p a = 1 , de unde rezult c pentu o metod a infurtoarei ne banal trebuie s avem > 1 . Procedura de respingere este format din urmtoarele elemente: N = 2 (variabila aleatoare constant); S = { U , Y } ; P (U , Y ) = true dac

{S1 , S 2 ,..., S n }

S observm c dac P (S1 , S 2 ,..., S n ) = false atunci mulimea de variabile aleatoare se respinge, de unde provine i numele de metod de respingere. n aceeai

0 U f (Y ) (h(Y )) ; (U , Y ) = Y , (adic proiecia). Teorema 2. Fie X o variabil aleatoare care are funia de repartiie de forma:

F ( x) = c Q((t ) )dR(t )

(3.6.)

funcie ce ia valori n [0, M ] (unde M poate lua i valoarea ) iar R ( y ) este funcia de repartiie a unei variabile aleatoare Y , Y R , iar variabilele Z , Y sunt independente stochastic. n aceste condiii funcia de repartiie a variabilei Y , condiionat de Z (Y ) este F ( x) . Se observ din nou c probabilitatea de acceptare a algoritmului este p a = P ( B ) . Este evident c teorema descrie un procedeu de respingere ale crui elemente sunt uor de precizat. Teorema rmne valabil dac condiia (3.6.) se scrie n termeni de densiti i anume: f ( x) = cQ(( x) )r ( x) , r ( x) = R ( x) (3.7.) O form dual a teoremei se obine dac F ( x) este de forma

unde Q( z ) este funcia de repartiie a unei variabile aleatoare Z , Z [0, M ] , ( x) este o

F ( x) = c (1 Q((t )))dR(t )
iar predicatul devine Z (Y ) iar condiia (3.7.) se scrie n termen de densiti.

(3.8.)

f ( x) = c(1 Q(( x) ))r ( x) (3.7'.) Teorema 3 (a irului descendent). Presupunem date variabilele aleatoare Z i ~ G ( x) . i 1 i Z 0 ~ G0 ( x) , independente stochastic. Atunci, urmtoarele afirmaii sunt adevrate (1) Dac x este fixat i numrul k este fixat, atunci

P( x Z 1 Z 2 ... Z k 1 < Z k

k 1 k [ [ G ( x )] G ( x)] )=

(n 1)!

k!

(3.9.)

(2) Dac x este fixat i K este indicele aleator la care se ''rupe'' subirul descendent (ca la pct (1)), atunci (3.9'.) P(K = numr impar ) = P(K (mod 2) = 1) = e G ( x ) (3) Dac subirul descendent este Z 0 Z 1 ... Z k 1 < Z k (adic se rupe la un K aleator i ncepe cu Z 0 ~ G0 ( x) ), atunci

P (Z 0 < x K (mod 2) = 1) = p a e G ( t ) dG0 (t )

(3.10.)

unde p a este constanta de normare

p a = e G ( x ) dG0 ( x)

(3.10'.)

Algoritmul de respingere rezultat din teorem este urmrorul Algoritmul RESPSIRD bazat pe iruri descendente. repeat Genereaz Z 0 ~ G0 ( x) ; Ia Z * = Z 0 , K := 1 ; genereaz Z 1 ~ G ( x) ; while Z 0 Z 1 do begin

K = K + 1 ; Z 0 := Z 1 ; Genereaz Z 1 ~ G ( x) ;
end; until K mod 2 = 1 ; Ia X := Z * . S analizm acum performana algoritmului. Observm c p a ne d informaie asupra vitezei algoritmului: cu ct p a este mai mare, cu att mai repede ajungem s acceptm un Z 0 (cnd K = numr impar ). Dar

p a nu este de ajuns pentru a caracteriza performana algoritmului; ar trebui s vedem i cte numere Z i , i 0 sunt necesare pentru a obine un Z 0 acceptat . Dac N * este numrul total de valori de selecie Z i , i 0 necesare pn la
acceptarea unui Z 0 , atunci avem:

E N* =

( )

1 pa

1 + e G ( x ) dG0 ( x)

(3.11.)

III.4. Alte metode Metodele de simulare a variabilelor aleatoare neuniforme X pot fi obinute fie prin transformarea unor variabile aleatoare uniforme 0 1 , fie sub forma X = T (Y1 , Y2 ,..., Yn ) (3.12.) unde variabilele Yi pot fi simulate. De fapt, metodele prezentate n primele subseciuni ale acestui capitol sunt toate de acelai tip: simularea lui X se reduce la simularea unor variabile mai simple Yi , 1 i n , unde i n poate fi aleator. n tabelul urmtor se dau cteva repartiii de probabilitate a cror simulare se realizeaz prin transformri simple de variabile U uniforme 0 1 dar nu prin metoda invers. n ultima coloan se precizeaz transformarea T . Nr. Numele Densitatea de repartiie Transformarea T crt. repartiiei 1. Normal

N ((0,1)

f ( x) =

2. Modul Repartiia 3. maximului 4. Repartiia minimului Repartiia

5.

Erlang (k )

nx n 1 dac x [0,1] f ( x) = altfel 0 n(1 x )n 1 dac x [0,1] f ( x) = altfel 0 dac x < 0 0 , kN+ f ( x) = 1 (k) dac x 0

e , < x < 2 1 x dac x [- 1,1] f ( x) = altfel 0

x2 2

X = U i
i =1

12

X = U1 U 2

max{ U 1 ,U 2 ,...,U n } min{ U 1 ,U 2 ,...,U n } k X = ln U i i =1

Definiia 2. Dac Z i , 1 i k sunt variabile Exp(1) independente, atunci variabila

X = Z i este o variabil Erlang (k ) .


i =1

Cnd o familie de variabile aleatoare are proprietatea c suma a dou variabile independente este tot o variabil din aceeai familie spunem c aceasta este o familie stabil de variabile aleatoare. Pentru stabilitatea unor familii de variabile aleatoare putem da urmtoarele enunuri. Teorema 4. Dac X ~ Gamma(0,1, ) , Y ~ Gamma(0,1, ) i X i Y sunt independente stochastic, atunci Z = X + Y ~ Gamma(0,1, + ) (familia variabilelor aleatoare Gamma standard este stabil). X ~ N (m, ) i Y ~ N ( p, ) , atunci Teorema 5. Dac

Z = X + Y ~ N m + p, 2 + 2 (familia variabilelor normale este stabil).


III.5. Simularea repartiiilor nrudite cu repartiia normal Repartiia 2 Dac Z 1 , 1 i f sunt variabile normale N (0,1) independente atunci

2 = Z i2
i =1

(3.13.)

se numete variabil hi ptrat centrat cu f grade de libertate notat 2 f .

Dac Z i ~ N (mi ,1) , atunci variabila dat prin relaia (3.11.) se numete variabil hi

ptrat necentrat cu f grade de libertate i cu parametrul de excentricitate , notat 2 f , , unde

2 = mi2 i2
i =1

(3.13'.)

Observaie. Variabila 2 , f centrat este o variabil de tip Gamma 0,

1 f . 2 2

2 Formula (3.24) permite simularea direct, pornind de la definiie a variabilelor 2 f , f , .

Repartiia Student Dac Z ~ N (0,1) este independent de variabila hi ptrat 2 f atunci variabila

tf =

Z 2f f
(3.14.)

se numete variabila t a lui Student cu f grade de libertate. Dac n (3.14) n loc de 2 f se introduce 2 f , atunci se obine variabila notat t f , care se numete variabila t Student necentrat cu f grade de libertate i cu parametrul de excentricitate . Variabilele de tip t Student se simuleaz direct cu formule de tipul (3.14).

Repartiia Snedecor
2 Dac variabilele 2 f , f sunt independente atunci variabila 1 2

F f1 f 2 =

f 2 f1 f1 f 2
1 , 1

(3.15.)

se numete variabila F a lui Snedecor centrat cu f1 , f 2 grade de libertate (n notaia indicilor conteaz ordinea!). Dac n (3.15) se folosete cte una din f atunci se obin variabilele F Snedecor simplu necentrate F f
1 , f 2 ;1 , 0

, f

2 , 2

sau ambele,

, Ff

1 , f 2 ; 0 , 2

, cu parametri
1 , f 2 ;1 , 2

corespunztori de excentricitate, sau variabila F Snedecor dublu necentrat F f Variabilele F pot fi de asemenea simulate direct prin formule de tipul (3.15.). Repartiia lognormal dac variabila X = log(Y ) este normal N (, ) .

Variabila aleatoare pozitiv Y se numete lognormal LN (, ) de parametri ,

Dac se dau media m i dispersia s 2 pentru variabila lognormal Y atunci media i dispersia 2 pentru X se calculeaz cu formulele:

1 s2 = log(m ) log + 1 2 2 m 2 s 2 = log m 2 + 1 deci simularea variabilei Y se realizeaz cu algoritmul simplu


Algoritmul LNORM pentru simularea lognormalei Intrare m , s 2 ; calculeaz , ; (acesta este un pas pregatitor!); Genereaz Z ~ N (0,1) ; Calculeaz X = + Z ; (unde = Ia Y = e X . ( Y ~ LN (, ) )

(3.16.)

2 );

Familia de variabile de tip Johnson Din aceasta familie fac parte o serie de variabile ce se obin prin transformri de variabile normale X ~ N (m, ) . Aceste transformri sunt: -

Y = 1 + e x + = variabila logit normal; Y = e X + = variabila lognormal; e x ex Y = sinh ( X ) + = variabila sinh normal, sinh( x) = , unde > 0 , 0 , 2 aceste constante alegndu-se de obicei astfel nct E [Y ] = 0 , Var [Y ] = 1 .
1

III..6. Simularea unor variabile particulare III.6.1. Repartiia exponenial Este suficient s ne ocupm de repartiia variabilei Z ~ Exp(1) a crei densitate de repartiie este

0 f ( x) = -x e

dac x 0 dac x > 0

(3.17.)

cci simularea variabilei X ~ Exp( ) se realizeaz cu X =

Z . Metoda invers pentru simularea lui Z , adic Z = log(U ) , nu este recomandabil deoarece dac U este apropiat de zero atunci log(U ) nu se poate calcula. De aceea vom prezenta o metod de respingere datorat
lui John von Newmann care se bazeaz pe teorema urmtoare. Teorema 6. n teorema 3. (a irului descendent) se consider Z 0 = U 0 , Z i = U i , i 1

unde U 0 , U i sunt uniforme 0 1 . Dac notm cu N numrul aleator de subiruri descendente respinse pn cnd se accept un subir, atunci X = N + Z 0 ~ Exp(1) , unde Z 0 este cel acceptat (din ultimul subir descendent). De aici se deduce urmtorul algoritm pentru simularea lui Z . Algoritmul EXRJ de simulare a exponenialei prin metoda respingerii Iniializeaz N := 0 ; repeat genereaz U 0 , U 1 uniforme 0 1 i independente; Ia U * := U 0 ; K := 1 ; while U 0 U 1 do begin

K := K + 1 ; U 0 := U 1 ;
genereaz U 1 uniform 0 1 ; end; (s-a simulat un subir descendent); if K mod 2 = 0 then N := N + 1 ; (se numr subirurile respinse); until K mod 2 = 1 ; Ia Z := N + U * . Pe lng probabilitatea de acceptare

caracterizat i de numrul N * al variabilelor uniforme { U i }i 0 necesare a fi generate pn cnd se obine o valoare de selecie exponenial Z . Conform (3.11.) avem

p a = 1 e 1 , performana algoritmului este

E N* =

( )

1 pa

1 x e2 1 1 + e dz = ( ) 1 + 1 = 3,8 e 1 e 1 e 1 0

(3.11'.)

adic trebuie simulate n medie aproape 4 numere uniforme pentru a obine o valoare de selecie exponenial Z .

III.6.2. Repartiia Gamma Repartiia Gamma(, , ) are densitatea dat de formula

0 f ( x) = 1 ( x ) () ( x ) e
iar formulele

dac x < 0 dac x 0

Y =+

X , X = (Y )

spun c este necesar i esenial s construim metode pentru simularea unei repartiii Gamma standard, adic Gamma(0,1, ) , R + . Dac = k N + , atunci repartiia gamma devine cu o metod de respingere bazat pe nfurarea cu o densitate Weibull (0,1, ) cu densitatea de repartiie dat de repartiie Erlang (k ) . Dac 0 < < 1 atunci simularea variabilei Gamma(0,1, ) se realizeaz

0 h( x ) = -1 x x e Algoritmul pentru simularea lui X este:

dac x < 0 dac x 0

Algoritmul GAMRESM1 (algoritm de respingere pentru variabila gamma standard cu parametru subunitar) Intrare ; Calculeaz c :=

1 ; := 1 ; a := e ( 1) ;

{se genereaz Y ~ Weibull (0,1, ) } Genereaz alt U uniform 0 1 ; until U ae Z Y ; Ia X := Y . O metod de compunere-respingere pentru cazul 0 < < 1 . Vom scrie densitatea de repartiie Gamma(0,1, ) , 0 < < 1 dat de expresia

repeat Genereaz U uniform 0 1 ; Calculeaz Z = ln (U ) ; Y = Z c ;

0 f ( x) = 1 1 x () x e
sub forma

dac x < 0 dac x 0

f ( x) = p1 f 1 ( x) + p 2 f 2 ( x)
unde

f ( x) f1 ( x) = p1 0

f ( x) dac x (1, ) , f 2 ( x) = p 2 0 altfel altfel (1 : ) () (1; ) p1 = , p 2 = 1 p1 = () () dac x [0,1]


() = x
0 1 x

e dx , (1; ) = x 1e x dx
0

S notm X 1 ~ f1 ( x) , X 2 ~ f 2 ( x ) . Atunci are loc urmtoarea teorem:


1 Z0 = U0 , Z i = U i cu { U i }i 0 uniforme 0 1 , iar X 2 se simuleaz cu ajutorul teoremei 3.2. duale unde densitatea f 2 ( x) este de forma f 2 ( x) = c(1 = Q( x) )r ( x) , x > 0 , 1 c= , e(() (1 : v )) dac x < 1 0 , r ( x) = - x +1 dac x 1 e

Teorema 7. Variabila X 1 se simuleaz folosind teorema 3. a subirului descendent unde

0 Q( x) = -1 1 - x

dac x < 1 dac x 1

Presupunnd c s-au calculat n prealabil

g = () ;

g1 = (1; ) ;

p1 =

g1 , g

g g1 1 1 1 , a= , b= , c= , algoritmul de simulare al variabilei e( g g 1 ) g 1 v X ~ Gamma(0,1, ) , 0 < < 1 este p2 =


Algoritmul GAMCOMNL1 pentru simularea variabilei gamma de parametru subunitar prin compunere i respingere: Intrare p1 , p 2 ; Genereaz U ~ uniform 0 - 1 ; if U p1 then begin Genereaz X 1 ~ f1 ( x) ; Ia X = X 1 ; end else begin Genereaz X 2 ~ f 2 ( x) ; Ia X = X 2 end. Variabilele X 1 i X 2 se genereaz cu algoritmii de respingere prezentai n continuare. Algoritmul GAMRESNL1 pentru simularea variabilei X 1 . repeat Genereaz U = random ; ( U = uniform 0 - 1 ); Ia Z 0 = U a ; Genereaz Z 1 = random ; Ia K = 1 ; Z * = Z 0 ; while Z 0 Z 1 do begin

Z 0 = Z1 ; Genereaz Z 1 = random ; K = K + 1 ; end; until K mod 2 = 1 ;


Ia X 1 = Z * . Pentru acest algoritm avem p a = (1 : ) , E N 1* = integral putnd fi calculat numeric.

( )

1 pa

1 1 t 1 + t e dt , ultima 0

* = Pentru acest algoritm avem p 2 = 1 p1 , E N 2

( )

i 0 , Z , Y necesare pentru a genera n final un X este * E N * = p1 E N 1* + p 2 E N 2 = p1 E N 1* + 2 .

2 , deci numrul mediu de variabile Z i , p2

( )

( )

( )

( )

III.6.3. Metode pentru simularea variabilei Gamma(0,1, ) , > 1 Vom prezenta doi algoritmi de respingere bazai pe metoda nfurtoarei. G1 S considerm X ~ f ( x) ~ Gamma(0,1, ) , > 1 i s lum ca nfurtoare densitatea h( x) ~ Exp

1 , adic

dac x < 0 0 h( x ) = 1 x dac x 0 e f ( x) x 1e x = Analiznd raportul r ( x) = , > 1 , se constat c acesta are ca punct de x h( x ) ()e
maxim x = , deci constanta din teorema 3.1. (a nfurtoarei) este = r () =

e1 . ()
adic

Probabilitatea de acceptare a algoritmului de simulare (care este simplu de construit) este deci

() p a = 1 e
() ( 1)
1

e 2 2 1

. S-a folosit aproximarea lui Stirling pentru

e (1) 2( 1) , deci aceast probabilitate scade de ordinul


G2

Algoritmul precedent este lent pentru foarte mare. De aceea vom prezenta n acest caz o alt metod de respingere, bazat pe nfurarea cu o densitate Cauchy nonstandard trunchiat pe [0, ) de forma

h( x ) =

2 ( x ( 1)) 1+

, x0

(3.18)

unde k este o constant de normare. Putem enuna teorema: Teorema 8. Dac nfurm densitatea Gamma(0,1, ) , > 1 , cu densitatea h( x) dat de (3.18) atunci pentru c 2 1 avem

r ( x) =

1 f ( x) ( 1)1 e (1) = h( x ) k()

(3.18'.)

Pentru a descrie algoritmul dedus din teorema precedent presupunem calculate n prealabil constantele b = 1 , c = + b , S = variabilei X ~ Gamma(0,1, ) , > 1 este

2 1 . Atunci algoritmul pentru generarea

Algoritmul GAMCAUCHY (simularea variabilei Gamma(0,1, ) , > 1 prin nfurarea cu o densitate Cauchy) repeat repeat Genereaz U := random i ia T := s tg ((U 0.5)) ; Ia Y = b + T ; ( Y este Cauchy non standard pe ( ,+ ) ; until Y > 0 ; (Se aplica respingerea pentru a obine Y trunchiat ; Genereaz U 1 := random ; until U 1 e ; Ia X = Y . Se observ c constanta k nu intervine n construcia algoritmului dar ea este necesar
T2 Y b log T + log 1+ b c

( T este Cauchy standard pe ( ,+ ) ;

1 1 pentru a calcula p a = . Un calcul simplu arat c k = + arctg . Referitor 2 1 2 la repartiia Gamma(0,1, ) , > 1 mai observm i faptul c dac descompunem sub forma

= k + p , k = [] N + , p = k [0,1) i considerm variabilele X ~ Gamma(0,1, ) , E k ~ Erlang (k ) , Y ~ Gamma(0,1, p ) , atunci simularea lui X se realizeaz cu relaia X = E k + Y , E k , Y independente.
III.6.4. Repartiia Beta Variabila X are repartiia Beta(a, b) , a > 0 , b > 0 dac densitatea sa de repartiie este

1 b 1 x a 1 (1 x ) f ( x ) = B ( a, b) 0
unde
1

dac x [0,1] altfel

(3.19.)

(a)(b) . (3.19'.) ( a + b) 0 Urmtoarea teorem permite simularea variabilei Beta(a, b) . Teorema 9. Dac X 1 ~ Gamma(0,1, a ) , X 2 ~ Gamma(0,1, b) , X 1 independent
B (a, b) = x a 1 (1 x) b 1 dx , B (a, b) =
de X 2 , atunci variabila

X =

X1 X1 + X 2

(3.20.)

este o variabil Betta (a, b) . Simularea variabilei Beta(a, b) poate fi deci fcut cu (3.20). Dar deoarece aceast formul presupune generarea prealabil a dou variabile gamma, rezult c aceast metod are o complexitate mare. De aceea, n cazuri particulare se pot folosi urmtoarele teoreme: Teorema 10. Fie a, b N + i n = a + b 1 i s considerm variabilele U 1 , U 2 ,..., U n uniforme 0 1 . S construim statisticile de ordine U (1) < U ( 2 ) < ... < U ( n ) prin ordonarea valorilor { U i }1i n . Atunci U ( a ) ~ B(a, b ) .
1

Teorema 11. Dac 0 < a < 1 , 0 < b < 1 i U 1 , U 2 sunt variabile aleatoare uniforme

0 1 i independente, i dac V = U 1 a , T = U 2 b , atunci repartiia variabilei X =


condiionat de V + T < 1 este Beat (a, b) .
1 1

V V +T

Teorema 12. Dac 0 < a < 1 , b > 1 i U 1 , U 2 sunt variabile uniforme 0 1 independente i considerm V = U 1 a , T = U 2 b 1 , atunci repartiia variabilei V condiionat de V + T < 1 este Beta(a, b) . Algoritmii ce rezult din aceste ultime teoreme sunt uor de construit. Vom prezenta algoritmul ce rezult din teorema 11. Algoritmul BETA14 pentru simularea variabilei Beta(a, b) , 0 < a, b < 1 repeat Genereaz U 1 , U 2 uniforme 0 1 i independente; Ia V = U 1 a , T = U 2 b ; until V + T < 1 ; Calculeaz X =
1 1

V . V +T ab B ( a, b ) . a+b

Probabilitatea de acceptare a acestui algoritm de respingere este p a =

Algoritmul de respingere construit pe baza teoremei 3.11 are probabilitatea de acceptare p a = aB(a, b) . III.6.5. Repartiia normal variabil atunci X ~ N (m, ) se simuleaz cu formula X = m + Z . O metod de compunere-respingere. S considerm variabila normal standard N (0,1) , notat cu X 1 , care are densitatea Ne vom opri la simularea variabilei Z ~ N (0,1) cci dac tim s simulm aceast

0 dac x < 0 f 1 ( x) = 2 x 2 (3.21.) e 2 dac x 0 Considerm i variabila X 2 = X 1 cu densitatea f 2 ( x) . Densitatea X ~ N (0,1) se 1 1 scrie f ( x ) = f 1 ( x) + f 2 ( x) , adic este o compunere discret a densitilor f 1 ( x) i f 2 ( x) . 2 2 Pentru a construi un algoritm de simulare a lui X va trebui s construim mai nti un algoritm de simulare a lui X 1 . Vom nfura densitatea f1 ( x) cu h( x) ~ Exp(1) . Rezult teorema: f ( x) 2e = i deci putem h( x ) aplica teorema de respingere a nfurtoarei pentru simularea variabilei X 1 . Algoritmul pemtru simularea lui X ~ N (0,1) este: Algoritmul RJNORM de compunere-respingere pentru simularea normalei N (0,1)
Teorema 13. Dac nfurm f 1 ( x) cu h( x) avem repeat Genereaz U uniform 0 1 ; Genereaz Y ~ Exp(1) ; ; until U e Ia X 1 := Y ; Genereaz U uniform 0 1 ; if U 0.5 then s := 1 else s := 1 ; ( s este un semn aleator); Ia X = sX 1 . Se observ c probabilitatea de acceptare este p a =
Y2 +Y 0.5 2

patru perechi (U , Y ) trei sunt acceptate pentru a produce un X 1 . Metoda polar

0,72 , adic, n medie, din 2e

O alt metod interesant de simulare a variabilei N (0,1) este metoda polar dat de urmtoarea teorem, datorat lui Box i Muller. Teorema 14. Dac variabilele U 1 , U 2 sunt uniforme 0 1 i independente, atunci variabilele

2 log( S ) 2 log( S ) , Z 2 = V2 , unde V1 = 2U 1 1 , S S V2 = 2U 2 1 , S = V12 + V22 , S < 1 , sunt variabile normale N (0,1) independente.
aleatoare

Z 1 = V1

Algoritmul corespunztor metodei polare se deduce cu uurin i el produce simultam dou valori de selecie N (0,1) , Z 1 i Z 2 , independente. III.7. Simularea unor variabile discrete Dac X este o variabil discret care ia ca valori irul {a n }1 n i se cunoate funcia de frecven

f (i ) = P( X ai , f calculabil, atunci folosind proprietatea lim f (i ) = 0 ,


i

(dedus din

f (i) = 1 ) se poate construi uor un algoritm bazat pe metoda respingerii (mcar


i =1

aproximativ!). n aceast seciune vom prezenta algoritmi pentru simularea unor repartiii particulare. Simularea unor repartiii bazate pe probe Bernoulli Fie un eveniment aleator observabil A care are probabilitatea constant p = P ( A) > 0 . ntr-o experien ntmpltoare se poate produce A cu probabilitatea p sau evenimentul contrar

A cu probabilitatea q = 1 p . O astfel de experien se numete prob Bernoulli. Cnd se produce A spunem c avem de-a face cu un succes, iar cnd A nu se produce spunem c se realizeaz un eec. S asociem unei probe Bernoulli variabila aleatoare Z astfel nct Z = 1 dac se produce A i Z = 0 dac se produce A , adic Z are repartiia 0 1 Z : (3.22.) q p , E (Z ) = p , Var (Z ) = pq = p (1 p ) . Funcia de repartiie a lui Z este 0 dac x < 0 F ( x) = P( Z < x) = q dac 0 x < 1 . (3.22'.) 1 dac x 1 De aici rezult c algoritmul de simulare a lui Z prin metoda invers este
Algoritmul BERN de simulare a unei variabile (probe) Bernoulli Genereaz U := random ; if U > p then Z := 0 else Z := 1 . S observm din nou c dac p = ntmplare cu banul. Repartiia binomial Se spune c variabila aleatoare discret X N este o variabil binomial Binom(n, p ) ,

1 , atunci suntem n cazul particular al aruncrii la 2

n N , 0 < p < 1 dac X este numrul de succese n n probe Bernoulli independente, adic X = Z i , unde Z i sunt variabile identic repartizate Bernoulli, independente. Simularea
i =1 n

binomului ( p + q ) , de unde deriv i denumirea de repartiie binomial. Media i dispersia lui X sunt E ( X ) = np i Var ( X ) = npq , iar din teorema limit
n

variabilei X se face deci simplu, prin numrarea de succese n n probe Bernoulli independente. n Avem P ( X = ) = C n p q , q = 1 p , adic P( X = ) este termenul general al dezvoltrii

central se deduce c pentru n suficient de mare ( n ) variabila Wn =

~ N (0,1) . npq De aici rezult urmtorul algoritm simplu de generare a lui X ~ Binom(n, p ) pentru n mare.

X np

Algoritmul BINNORM Genereaz W ~ N (0,1) ; Calculeaz

X := np + W npq . (Notaia {E} nseamn ''cel mai apropiat ntreg de E .


Repartiia Pascal

Variabila X are repartiia Pascal (k , p ) , k N + , 0 < p < 1 , dac X este numrul de eecuri pn la apariia a k succese ntr-un ir oarecare de probe Bernoulli independente. De aici rezult c variabila X ~ Pascal (k , p ) se simuleaz cu urmtorul algoritm care numr eecurile realizate pn la realizarea a k succese ntr-un ir de probe Bernoulli independente. Algoritmul PASCAL Intrare k N + , p , 0 < p < 1 ; X = 0 ; j := 0 ; ( X numr eecurile i j succesele); repeat Genereaz U := random ; if U < p then j := j + 1 else X := X + 1 ; until j = k . ( X este valoarea de selecie generat).
k 1 k S observm c P ( X = ) = C + k 1 p q , = 0,1,2,... , care este termenul general al k

dezvoltrii n serie a expresiei p k (1 q ) din care cauz repartiia Pascal (k , p ) se mai numete i repartiia binomial cu exponent negativ. Avem i urmtorul rezultat. Teorema 15. Dac X 1 ~ Pascal (k1 , p ) i X 2 ~ Pascal (k 2 , p ) , sunt variabile independente, atunci X = X 1 + X 2 ~ Pascal (k1 + k 2 , p ) (repartiia Pascal este stabil). Avem i c:

E( X ) =

kq kq , Var ( X ) = 2 p p

(3.23.)

formule ce se folosesc la validarea algoritmului. Repartiia geometric Geom( p ) Este un caz particular de repartiie Pascal, cnd k = 1 . Simularea variabilei X ~ Geom( p) se poate realiza cu algoritmul PASCAL sau cu metoda invers cu formula

log(U ) q q de unde se deduce i E ( X ) = , Var ( X ) = 2 , formule care se folosesc la X = p p log(q)


testarea algoritmului de simulare. Repartiia hipergeometric Aceast repartiie se introduce dup cum urmeaz: S considerm experimentul cu urn n care n bile se extrag la ntmplare din urn, fr ntoarcere. n acest caz numrul X de bile albe extrase este o variabil hipergeometric. S notm cu U evenimentul care reprezint extragerea unei bile albe i cu V evenimentul care const n extragerea unei bile negre; atunci probabilitile de a extrage n prima extragere o bil

alb respectiv neagr, sunt respectiv p = P (U ) =

A B , P (V ) = . Probabilitile de extragere a N N

unei bile albe sau negre n a doua extragere sunt condiionate de rezultatele primei extrageri adic

P (U U ) =

B 1 A B A 1 , P (U V ) = , P (V U ) = , P (V V ) = . Se observ c la N 1 N 1 N 1 N 1

fiecare extragere compoziia urnei se schimb i probabilitatea de a extrage o bil alb sau neagr este variabil n funcie de extragerile anterioare. Variabila hipergeometric se noteaz H ( N , p, n) , 0 < p < 1 , n < N de unde A = {Np} ( {x}, x R este cel mai apropiat ntreg de x ), B = N A . Probabilitatea ca n n extracii succesive fr ntoarcere, s se extrag a bile
a na CA CB albe este P ( X = a ) = , 0 a n , n < N . De asemenea, avem E ( X ) = np , n CN np [n(Np 1) + N (1 p )] i Var ( X ) = np(1 p) N n . E X2 = N 1 N 1 Algoritmul de simulare a variabilei hipergeometrice X este

( )

Algoritmul HIPERGEOM Intrare A , B , n , N = A + B ; (Acesta este un pas pregritor); Calculeaz p =

A ; IniializeazA j := 0 , X := 0 ; N

repeat Genereaz U := random ; Ia j := j + 1 ; if U < p then begin X := X + 1 ; S := 1 ; (S-a estras o bil alb); end else S := 0 ; (S-a extras o bil neagr); Calculeaz N := N 1 , A := A = S , p := until j = n ; ( X ~ H ( N , p, n ) ). Repartiia Poisson Variabila aleatoare

A ; N

X,

X N

are

repartiia

Poisson( ) ,

>0

dac

P( X = ) =

e , > 0 . Avem i E ( X ) = , E X 2 = 2 + , Var ( X ) = . ! Repartiia Poisson( ) este repartiia evenimentelor rare n sensul urmtor: evenimentele

( )

sunt independente i se produc la intervale aleatoare de timp astfel nct un eveniment se produce pe intervalul de timp [t , t + t ] cu probalilitatea t + O(t ) unde lim O(t ) = 0 i

O(t ) = 0 ( O(t ) este neglijabil n raport cu t ) iar probabilitatea ca pe acelai interval t 0 t s se produc mai mult de un eveniment (condiia de raritate) este O (t ) (adic este neglijabil). lim
Numrul de evenimente rare ce se produc pe unitatea de timp este o variabil aleatoare Poisson( ) . Numrul este intensitatea cu care se produc evenimentele rare. Intervalul de timp la care se produc dou evenimente rare consecutive are o repartiie

t 0

Exp( ) fapt care spune c X = j 1 dac

i < i . innd acum seama de faptul c


i =1 i =1

j 1

i = log

Ui , U i uniforme 0 1 , atunci rezult c

X = j 1 dac

U
i =1

j 1

e > U i
i =1

(3.24.)

Pe baza relaiei (3.24.) se poate construi cu uurin un algoritm pentru simularea lui X . III.8. Validarea generatorilor Validare nseamn nu numai verificarea corectitudinii formale a programelor, ci n special dac algoritmul implementat (programat) produce valori de selecie asupra variabilei aleatoare n cauz, adic dac pe baza unei selecii X 1 , X 2 ,..., X n , de volum n suficient de mare se verific ipoteza statistic H : X ~ F ( x) , care se mai numete i ipotez de concordan. Mai nti ar trebui s verificm intuitiv dac repartiia empiric sau repartiia de selecie se aseamn cu cea teoretic. Mai precis trebuie s construim grafic histograma i s vedem dac ea se aseamn cu densitatea de repartiie. Construcia histogramei se face astfel: - se determin mai nti m = min ( X 1 , X 2 ,..., X n ) , M = max( X 1 , X 2 ,..., X n ) care reprezint intervalul de variaie [m, M ] ; se alege un ntreg pozitiv k , (practica recomand 15 k 40 ) care reprezint numrul de intervale ale histogramei; se mparte intervalul [m, M ] n k intervale I i = [a i 1 , ai ] , 1 i k , a 0 = m , a k = M ;

se determin f i = numrul valorilor de selecie ce cad n intervalul [ai 1 , a i ) , 1 i k ; f i se numesc frecvene absolute; se determin frecvenele relative ri = Repartiia empiric este

fi . n
(3.25.)

I1 r 1

I2 Ik . r2 rk

Pentru reprezentarea grafic a valorilor din (3.25.) procedm astfel: lum pe abscis intervalele I i i construim dreptunghiuri care au ca baz aceste intervale i ca nlimi ri . Graficul obinut reprezint histograma seleciei X 1 , X 2 ,..., X n date. (Ea este histograma frecvenelor relative; asemntor se obine i histograma frecvenelor absolute). Testul 2 Odat construit histograma putem aplica testul de concordan 2 pentru verificarea ipotezei

H : X ~ F ( x) . Pentru aceasta calculm nti probabilitile pi = F (ai ) F (ai 1 ) , 2 i k 2 , p k = 1 F (a k 1 ) .


Calculm apoi =
2

p1 = F (a1 ) ,

j =1

( f i npi )2
npi

care se tie c are repartiia hi ptrat cu k 1 grade

de libertate, ( 2 k 1 este variabila corespunztoare). Fiind dat riscul de genul I, , (o probabilitate mic, apropiat de zero) determinm 2 k 1, (numit cuantil superioar) astfel nct

2 2 2 P 2 k 1 > k 1, = . Ipoteza H se accept dac < k 1, i se respinge n caz contrar.

Un test simplu Cel mai simplu mod de testare a unui generator care simuleaz o variabil neuniform X se poate realiza astfel: - Se determin cteva momente teoretice ale lui X ca de exemplu m = E ( X ) i

2 = Var ( X ) ;
Cu ajutorul seleciei simulate X 1 , X 2 ,..., X n se calculeaz momentele empirice de selecie:

X =

Xi
i =1

Se consider c generatorul este bun dac pentru n suficient de mare ( n > 1000 ) valorile lui X i s 2 sunt tot mai apropiate de m i 2 , ca o consecin a legii numerelor mari. Se presupune c momentele teoretice m , 2 sunt cunoscute.

, s2 =

X
i =1

2 i

X2.

CAPITOLUL IV. SIMULAREA VECTORILOR ALEATORI

IV.1. Generaliti
Un vector X = ( X 1 , X 2 ,..., X k ) (vector coloan) ale crui componente X i sunt variabile aleatoare, se numete vector aleator. Cazul n care componentele sunt independente stochastic este desigur banal, de aceea cazul cel mai interesant este cnd componentele X i sunt dependente sau corelate. Funcia de repartiie a vectorului X este F ( x) = F ( x1 , x 2 ,..., x k ) = P( X 1 < x1 , X 2 < x 2 ,..., X k < x k ) (4.1.) i ea se mai numete funcia de repartiie comun a lui X 1 , X 2 ,..., X k sau funcia de repartiie multidimensional. Desigur, F ( ,..., ) = 0 , F (+ ,...,+ ) = 1 , dac xi < y i atunci F (..., xi ,...) F (..., y i ,...) (adic F este monoton pe componente). Funcia f ( x1 , x 2 ,..., x k ) definit de relaia

k F (x1 , x 2 ,..., xk ) (4.2.) x1x 2 ...x k cnd derivata parial exist, se numete densitate de repartiie multidimensional a lui X. Funcia de repartiie P( X i < xi ) = F (+ ,...,+, xi ,+,...,+ ) == Fi ( xi ) se numete funcie de repartiie marginal a lui X i , iar f i ( xi ) = Fi( xi ) ( cnd derivata exist) se numete densitate de repartiie marginal a lui X i . Se pot defini funcii de repartiie marginale pentru 2,3,..., k 1 componente etc. De exemplu, funcia de repartiie Fij (xi , x j ) = P(X i < xi , X j < x j ) = F (+ ,..., xi ,..., x j ,... + ) , 1 i, j k marginal f ( x) = f ( x1 , x 2 ,..., x k ) = corespunde componentelor X i , X j ale vectorului X .$ Au loc relaiile

F ( x ) = F ( x1 , x 2 ,..., x k ) = = =
x1 x2

... f (u , u
1

xk

,..., u k )du1 du 2 ...du k =

(4.3.)

f (u )du
(4.4.) (4.4'.) ,

Dac variabilele X i , 1 i k sunt independente atunci F ( x1 , x 2 ,..., x k ) = F1 ( x1 )F2 ( x 2 )...Fk (x k ) sau analog pentru densiti f ( x1 , x 2 ,..., x k ) = f1 ( x1 ) f 2 ( x 2 )... f k ( x k ) Cnd exist integralele mi = E ( X 1 ) = mij = E (X i X j ) =
+ + +

x f (x )dx
i i i i j ij i

x x f (x x )dx dx
j i

acestea se numesc momente de ordinul I, respectiv de ordimul II. Expresiile ij = E ( X i mi )(X j m j ) =

] (x

+ +

mi )(x j m j )dxi dx j

cnd integralele exist, se numesc momente centrate; n acest caz, ij se numete

covariana lui

ii = Cov( X i , X i ) = Var ( X i ) = i2 . Este uor de artat c dac X i este independent de X j , i j , atunci mij = E (X i X j ) = mi m j = E ( X i )E (X j ) , ij = Cov(X i , X j ) = 0 .

Xi

cu

Xj

i se noteaz

ij = Cov(X i , X j ). Se observ c

Este satisfcut inegalitatea lui Schwarz, adic Cov (X i , X j ) Var ( X i )Var (X j ) sau ij i j . Se numete coeficient de corelaie al variabilelor X i i X j mrimea ij = Corr (X i , X j ) = Var ( X i )Var (X j ) Cov (X i , X j ) . (4.5.)

Se observ c [ 1,1] i el are urmtoarea interpretare: ij 0 atunci X i depinde foarte puin de X j ; dac ij < 0 , atunci X i i X j sunt invers corelate iar dac ij > 0 , atunci X i i X j sunt direct corelate; dac ij 1 atunci X i i X j sunt puternic

corelate.

vectorul valoare medie notat E ( X ) iar covarianele ij definesc o matrice = ij


(care este pozitiv definit,
0 ) i se noteaz = Cov( X , X ) .

Pentru un vector aleator mediile mi definesc un vector m = (m1 , m2 ,..., mk ) numit

are densitatea de repartiie f ( x) i s considerm descopmunerea lui X n doi subvectori X = (X (1) , X (2 ) ) unde X (1) este un vector r dimensional iar X (2 ) este un vector q dimensional , r < k , r + q = k . Definim

Presupunem c

densitatea de repartiie condiionat f x (1) x (2 ) a lui X (1) cnd X (2 ) = x (2 ) astfel


f x (1) x (2 ) =

f ( x1 , x 2 )
+

f (y

(1)

, x (2 ) dy (1)

, unde f ( x ) = f (x (1) , x (2 ) ).

(4.6.) E X (1) X (2 ) = x (2 ) ,

Cu

aceast

densitate

se

definesc,

cnd

exist,

(1) (1) (2 ) (2 ) Cov X , X X = x adic media condiionat, respectiv matricea de covarian condiionat. Uneori este necesar s simulm X (1) X (2 ) = x (2 ) , cnd se cunoate

repartiia condiionat. Metoda invers este valabil i n cazul simulrii vectorilor aleatori. Fie F ( x) = F ( x1 , x 2 ,..., x k ) = P( X 1 < x1 , X 2 < x 2 ,..., X k < x k ) , funcia de repartiie a lui X i X 1 , i fie F1 (x1 ) = P( X 1 < x1 ) funcia de repartiie marginal a lui F1...i ( x1 ,..., xi ) = P( X 1 < x1 ,..., X i < xi ) funcia de repartiie marginal a lui ( X 1 ,..., X i ) . Fie de asemenea funciile de repartiie condiionate F2 (x1 , x 2 ) = P (X 2 < x1 X 1 = x1 ) = F (x 2 x1 ) ,
Fi ( x1 , x 2 ,..., xi ) = P( X i < xi X 1 = x1 ,..., X i 1 = xi 1 ) = F (xi x1 , x 2 ,..., xi 1 ) , 2 i k .

F3 ( x1 , x 2 , x3 ) = P ( X 3 < x3 X 1 = x1 , X 2 = x 2 ) = F x3 x1 , x ,

Y1 = F11 (U 1 ) , Y2 = F21 (Y1 ,U 2 ) , , Yi = Fi 1 (Yi , Y2 ,..., Yi 1 , U i ) , (4.6'.) 2ik are funcia de repartiie F (x ) . De aici se deduce urmtorul algoritm pentru simularea vectorului aleator X cnd se cunosc inversele Fi 1 ale funciilor de repartiie condiionate Fi ( x1 , x 2 ,..., xi 1 , xi ) n raport cu xi .

S notm cu Fi 1 inversa funciei Fi ( x1 , x 2 ,..., xi ) n raport cu xi . Atunci are loc urmtoatea teorem. Teorema 1. Dac U i , 1 i k sunt variabile aleatoare uniforme 0 1 independente atunci vectorul aleator Y = (Y1 , Y2 ,..., Yk ) ale crui componente sunt

Algoritmul AIMULT pentru metoda invers multidimensional.


Genereaz U := random ; Calculeaz Y1 = F11 (U ) ; for i := 2 to k do begin

Genereaz U := random ; Calculeaz Yi := Fi 1 (Y1 , Y2 ,..., Yi 1 , U ) ; end.

IV.2. Simularea vectorilor uniformi


Vectorul aleator k dimensional V = (V1 ,V2 ,...,Vk ) are repartiie uniform pe

domeniul mrginit D R k dac densitatea sa de repartiie este k dac v D 1 f (v ) = ,k= , mesD = dv (4.7.) mesD 0 dac v D D Rezult c V are repartiie uniform pe intervalul I = [a1 , b1 ] [a 2 , b2 ] ... [a k , bk ] < ai < bi < + , 1 i k dac
1 dac v I k (b a ) f (v ) = i (4.7'.) i i =1 dac v I 0 Din (4.7') rezult c dac V este uniform pe I atunci Vi sunt variabile uniforme pe [ai , bi ] i independente deoarece f (v1 , v 2 ,..., v k ) =
i =1 k

1 f i (vi ) , f i (vi ) = bi ai 0

dac v i [ai , bi ] dac v i [ai , bi ]

(4.7''.) vectorului

De aici se deduce V ~ uniform pe I .

urmtorul

algoritm

simplu

pentru

simularea

Algoritmul VUNIFINT de simulare a vectorului uniform pe interval


Intrare ai , bi , 1 i k . for i := 1 to k do begin Genereaz U := random ; Ia ; end.

Pentru a simula un vector aleator W uniform pe D R k ( D fiind un domeniu oarecare), nu mai este adevrat (4.7''.). Dar s observm c dac D I i V e uniform pe I , atunci restricia lui V la D ( vectorul notat W ), este un vector uniform pe D . De aici rezult urmtorul algoritm de respingere pentru simularea lui W .

Algoritmul VECTUNIFD de simulare a vectorului uniform pe domeniu oarecare:

Construiete un interval minimal I = [a1 , b1 ] [a 2 , b2 ] ... [a k , bk ] astfel nct D I ; (Acest interval exist deoarece D este

mrginit).
repeat Genereaz V uniform pe I ;

until V D ; Ia W := V .

Probabilitatea de acceptare a acestui algoritm este p a =

mesD = mesI

mesD

(b
i =1

ai )

de unde se

deduce c pentru a obine un interval I ct mai bun, acesta trebuie s fie minimal astfel nct D I . IV.3. Simularea vectorilor normali Vectorul aleator k dimensional X are repartiia normal N (, ) dac densitatea sa este 1 ( x ) 1 ( x ) 1 2 f ( x, , ) = e , x Rk . (4.8.) 1 k (2) 2 [det ]2 i avem E ( X ) = , Cov ( X , X ) = . (4.8'.) S notm cu Z vectorul normal N (0, I ) unde I este matricea unitate k dimensional iar 0 este vectorul nul din R k . Atunci densitatea f ( z ) a lui Z satisface proprietatea (4.9.) e 2 adic componentele Z i ale lui Z sunt independente i normale N (0,1) . Deci, simularea lui Z ~ N (0, I ) se realizeaz simplu astfel
i =1

f (z ) = f i (z i ) , f i (z i ) =

z2 i 2

Algoritmul VECNORMSTD de generare a vectorului normal standard.


for i := 1 to k do begin Genereaz T ~ N (0,1) ; Ia Z i := T ; end.

Pentru a simula X ~ N (, ) vom folosi mai nti teorema: Teorema 2. Dac Y ~ N (0, ) i C este o matrice k k iar este un vector, k 1 atunci X = + CY ~ N (, CC ) ,

Fiind dat matricea 0 (pozitiv definit) se tie c exist o matrice C = cij 0 inferior triunghiular (adic cij = , i < j ), astfel nct $ CC = . Matricea
C este matricea Choleski. De aici deducem teorema: Teorema 3. Dac Z ~ N (0, ) , este un vector k 1 i C este matricea Choleski a lui , atunci X = + CZ ~ N (, ) .

Matricea C se determin cu ajutorul matricii = ij cu formulele lui Choleski:

ci1 =

i1 , 1 i k 11
i 1 r =1

2 cii = ii cir , 1< i k

cij =

ij cir c jr
r =1

j 1

(4.10.) , 1< j < i k

c jj

Simularea vectorului X ~ N (, ) , dup ce se calculeaz ntr-un pas pregtitor matricea C a lui Choleski, se realizeaz cu urmtorul algoritm:
Algoritmul NORMMULT de simulare a vectorului normal
Genereaz Z ~ N (0, I ) cu algoritmul VECNORMSTD; Calculeaz X = + CZ . Intrare , C ;

cij = 0 , 1 < i < j k .

Uneori este necesar s simulm un subvector al unui vector normal cnd se d cellalt subvector. Mai precis dac X = (X (1) , X (2 ) ) ~ N (, ) , cu X (1) vector r dimensional i X (2 ) vector q dimensional , r + q = k , se cere s se simuleze X (1) condiionat de X (2 ) = x (2 ) . S considerm scrierea celular a lui i , adic
(1) 11 12 = (2 ) , = 21 22 Dac i sunt cunoscute atunci este adevrat urmtoarea teorem.

(4.11.)

Teorema 4. Repartiia condiionat a lui X (1) cnd se d X (2 ) = x (2 ) este (1) * , 11 unde normal N * (1) 1 (2 ) * = (1) + 12 (2 ) 22 x (4.12.) * 1 11 = 11 12 22 21

De aici se deduce algoritmul de simulare a lui X (1) condiionat de X (2 ) = x (2 ) i anume:


Algoritmul NORMCOND de simulare condiionat.
Intrare x (2 ) , i , ij , i, j = 1,2 ; Genereaz Z (`1) ~ N 0, I r r ;
(1) Calculeaz X *(1) = * + C * Z (1) . (1) * Calculeaz * , 11 ;

+ ; Calculeaz C * astfel nct C *C * = 11

(1) * , 11 . Rezultatul este X *(1) ~ N *

IV.4. Simularea repartiiei Cauchy multidimensionale Repartiia Cauchy standard care are densitatea: 1 f ( x) = (4.13.) 1+ x2 se poate simula cu ajutorul metodei inverse. Dac Z 1 , Z 2 sunt variabile normale N (0,1) independente, atunci variabila Z X = 1 (4.14.) Z2 are repartiia Cauchy standard. Din aceast proprietate rezult deci o metod simpl de simulare a variabilei Cauchy standard unidimensionale ca raport de variabile normale N (0,1) independente. O variabil Y are repartiia Cauchy (c, ) dac densitatea sa este 1 1 g ( x) = , c R, < 0, 2 (4.15.) ( x c) 1+ 2 Simularea lui Y se va face cu formula Y = c + X . n mod asemntor se poate introduce repartiia Cauchy standard multidimensional. Vectorul aleator X are repartiia Cauchy standard multidimensional dac densitatea sa de repartiie este de forma +1 k2 1 f ( x) = k + , x Rk . (4.14'.) 1 k +1 2 2 ( ) + 1 x x Dac Z este un vector k dimensional normal N (0, I ) i este o variabil normal N (0,1) independent de Z , atunci X se poate simula cu formula Z X = . (4.14''.) Se poate considera i repartiia multidimensional Cauchy (c, ) care are densitatea de forma

( )

k +1 (4.15'.) 1 det 1 + ( x c ) ( x c ) 2 Relaia dintre vectorul Cauchy standard X i vectorul Y ~ Cauchy (c, ) este asemntoare relaiei dintre vectorul Z normal N (0, I ) i vectorul Y normal N (c, ) , adic dac X are repartiie Cauchy standard i Y ~ Cauchy (c, ) i considerm matricea S inferior triunghiular astfel ca = SS , atunci Y se poate genera cu formula Y = SX + c (4.15''.) Combinnd (4.14') cu (4.15'') rezult c Y ~ Cauchy (c, ) se simuleaz cu formula

g ( x) =

k +1 2

( )
k +1 2

Z* unde Z ~ N (0, ) , independent de ~ N (0,1) . Y=

(4.16.)

IV.5. Simularea repartiiei multinomiale Aceast repartiie este generalizarea multidimensional a repartiiei binomiale. X = ( X 1 , X 2 ,..., X k ) , Vectorul aleator cu componente ntregi nenegative X 1 + X 2 + ... + X k = n are repartiia multinomial Multinom(n, p1 , p 2 ,..., p k ) dac n! n n n P( X 1 = n1 , X 2 = n 2 ,..., X k = n k ) = p1 1 p 2 2 ... p k k , n1!n 2 !...n k ! (4.17.) n1 + n2 + .. + nk = n , pi > 0 , 1 i k , p1 + p 2 + .. + p k = 1 Avem: mi = E [ X i ] = npi , i2 = Var [X i ] = npi (1 pi ) = Cov( X i , X i ) , ij = Cov(X i , X j ) = E X i X j E [ X i ]E X j =

[ ]

(4.17'.)

= n(n 1) pi p j n 2 pi p j = npi p j Vectorul X are o interpretare asemntoare variabilei binomiale n cazul unui experiment cu urn dup cum urmeaz: s presupunem c ntr-o urn se gsesc N i bile de culoarea i , 1 i k , N = N 1 + N 2 + ... + N k . Se presupune c se extrag n bile din urn cu ntoarcere, din care X i sunt bile de culoarea i , n = X 1 + X 2 + ... + X k . Atunci vectorul aleator X = ( X 1 , X 2 ,..., X k ) are repartiia Multinom(n, p1 ,..., p k ) , pi = N i ,

p
i

= 1 . Aceast interpretare ne conduce la urmtorul algoritm pentru simularea lui

X.

Algoritmul MULTINOM de simulare a repartiiei multinomiale

Intrare

n, k , p1 , p 2 ,..., p k

i calculeaz

F [ ] = pi ,
i =1

1 i k ;

Iniializeaz X [1] := 0 , , X [k ] = 0 ; for i := 1 to n do begin Simuleaz U := random ; Ia i := i + 1 ;

(Acesta este un pas pregtitor);

while U F [i ] do i = i + 1 ; Insumeaz X [i ] := X [i ] + 1 ; end.

se genereaz selecia de volum T , X ( ) = X 1( ) ,..., X k( ) , 1 T ; se calculeaz mediile aritmetice i dispersiile empirice 1 T 1 T 2 X i = X i( ) = X ( X i2 i) T =1 T i =1 Pentru validarea algoritmului, trebuie ca pentru un T mare s avem mi X i ,

Testarea algoritmului se face n mod simplu astfel:

[ ]

i2 si2 , unde mi i i2 sunt date de (4.17.). IV.6. Simularea repartiiei Dirichlet. Un vector aleator X are repartiia Dirichlet (1 , 2 ,..., k +1 ) dac densitatea sa de repartiie este (1 + ... + k +1 ) 1 k x1 ...x k (1 x1 ... x k ) k +1 dac x S k f ( x1 ,..., x k ) = (1 )...( k +1 ) (4.18.) 0 dac x S k dac Yi ~ Gamma(0,1, i ) , 1 i k + 1 sunt variabile gama independente, atunci vectorul X ale crui componente sunt de forma Yi Xi = , 1 i k (4.19.) Y1 + Y2 + ... + Yk +1 are o repartiie Dirichlet(1 , 2 ,..., k +1 ) . Se observ deci c repartiia Dirichlet este o extensie la cazul multidimensional a repartiiei Beta. Formulele (4.15) simuleaz componentele unui vector Dirichlet, presupunndu-se desigur c parametrii 1 , 1 i k sunt cunoscui.

LISTA DE SUBIECTE
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. Modelul matematic al unui model de simulare Clasificari ale modelelor matematice Sistem de asteptare- model mathematic Structura unui model de simulare Agenda simularii Realizari iterative ale sistemului Proprietati ale unei masini secventiale Sistem cu evenimente discrete (SED) Proprietati ale extensiei unei functii de tranzitie autonoma a unui SED Proprietati ale functiei ce da timpul total necesar unui SED pentru a face n tranzitii Proprietati ale numarului maxim de tranzitii facute intr-un SED intr-un interval de timp dat Proprietati ale unui SED viabil Etapele realizarii unui experiment de simulare Generalitati despre limbajul GPSS Instructiuni GPSS Program GPSS pentru simularea unui sistem de asteptare cu o statie Program GPSS pentru simularea unui sistem de asteptare cu statii paralele Model de simulate cu statii paralele si preferinte Model de simulare a activitatilor de reparatie a unui automobil intr-un atelier service Repartitia uniforma Necesitatea simularii numerelor aleatoare Metod congruentiale liniare Teorema ce da perioada maxima a unui generator congruential liniar Generatori de numere uniforme Amestecarea de generatori si generarea unui indice aleator Metoda inversa pentru simularea variabilelor neuniforme Metoda compunerii pentru simularea variabilelor neuniforme Metoda respingerii pentru simularea variabilelor neuniforme Teoreme ce fundamenteaza algoritmii de respingere pentru simularea variabilelor neuniforme Teorema lui Forsythe (a sirului descendent) Algoritmii Compdiscr si Compcont Algoritmii Lapcomp si Algres Algoritmii Gamresm1, Resp34 si Respsird Metode de simulare care se obtin prin transformarea unor variabile uniforme 0-1 Stabilitatea familiilor de variabile aleatoare gamma standard si normale Simularea repartitiilor 2 si Student Simularea repartitiilor Snedecor si lognormala Simularea repartitiei exponentiale Algoritmul Exrj Simularea repartitiei gamma Algoritmul Gamcomnl1, Gamresnl1 si Gamresnl2 Metode pentru simularea variabilei gamma cu parametru supraunitar Algoritmul Gamcauchy Metode pentru simularea repartitiei beta Algoritmul Beta13 O metoda de compunere-respingere pentru simularea repartitiei normale Algoritmul Rjnorm Metoda polara pentru simularea repartitiei normale Simularea unor repartitii bazate pe probe Bernoulli Simularea repartitiei binomiale Algoritmii Bern si Binnorm

52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74.

Simularea repartitiei Pascal si algoritmul Pascal Simularea repartitiei geometrice Simularea repartitiei hipergeometrice Algoritmul Hipergeom Simularea repartitiei Poisson Validarea generatorilor Constructia histogramei Algoritmul Histogramei Testul de concordanta 2 Testarea unui generator care simuleaza o variabila neuniforma Vectori aleatori (generalitati) Teorema ce reprezinta metoda inversa pentru vectori aleatori Simularea repartitiei Gumbel bidimensionale Algoritmul Gumbel si Aimult Simularea vectorilor uniformi Algoritmii Vunifint si Vectunifd Simularea vectorilor normali Algoritmii Vectnormst si Normmult Algoritmul Normcond de simulare conditionata Simularea repartitiei Cauchy multidimensionale Simularea repartitiei multinomiale Algoritmul Multinorm Simularea repartitiei Dirichlet

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