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
0 1

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

= 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 .

((

) )

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 .

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

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 )

Proiecia STRAJ obinut prin funcia de tranziie a strilor compus cu funcia de


rspuns, este traiectoria de ieire

OTRAJ , : (t 0 , t1 )

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+

strilor (proprietatea compunerii), unde


demonstreaz uor c este :

iG = { k

G+

k 2 k i

| kj

), = x

G (q,)
G

i
G

s verifice proprietatea de separabilitate a


este nchiderea la compunere a lui

care se

, unde

i >0

iar

G+

,j

1, i

(q,)=

(G (q,x),

G+ , x G, G ,q

G ( q, ' ) = 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,

), 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 1

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

G+ X + .

Propoziie

Fie M o main secvenial i


simboluri, dat prin

: M

M ( q , ) ,

extensia funciei de tranziie a strilor la secvene de

X M+

M,

XM

(q,) =

Atunci

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

(q, ) =

X M+

, x XM, X M+

(q, ), ) pentru q M, ,

X M+

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

l ( ) 1 i

B ( ( i ))

i=0

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((s,e),)

: M (XM

{}) S

este funcia de cvasitranziie a strilor, dat prin:

= (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

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

: SM + SM o

(s,n)), n 0

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

a)

n (s), n N* , s SM

(s,n) =

+
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,
n1

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


i =0

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
n

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

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

Demonstraie
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) =

n 1

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

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

(s, n) =

Teorema
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

(s)}

Y = YM
= M
G = X
G : G dat prin :

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 ,

atunci condiia de independen se scrie

F ( x, y ) = F1 ( x )F2 ( y )

(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

1
dac x > b
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

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.
Teorema 1. Dac U este o variabil uniform 0 1 atunci V = a + (b a )U este o

variabil uniform pe [a, b] i reciproc, dac V este o variabil aleatoare uniform pe [a, b]
atunci variabila

U=

V a
ba

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

dac notm cu F 1 inversa funciei F atunci F 1 (U ) are funcia de repartiie F (sau cu alte

cuvinte F 1 (U ) = X ).

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:

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

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

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

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 ]

(2.7.)

Var [ X i ]Var [X i +1 ]

[ ]

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

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
X n = c n + C n2 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 =

(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
f

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
m 1

E[X ] =

x
x =0

m 1

, Var [X ] =

x
x =0

{E [ X ]}

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

Evaluarea lui se face cu dificultate. Se arat c

1
c c
1 6 + 6
a
m m

c , c a

(2.9.)

O valoare conciliant a lui a , care s asigure o valoare mic a lui este a

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
condiia 0 se deduce 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

( )
( )

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

p ... p
1.

et
t

) = c.m.m.m.c.((p ),..., ( p ))
e1
1

(2.12.)

et
t

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

perioad 2 55 1 .

2.

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

X n = aX

unde X

3.

1
i

1
n 1

cu m prim , definit de relaia

+ c (mod m )

(2.14.)

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

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

4.

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.)

n practic se folosete forma mai simpl

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

ai = ai p ai p + q

(2.16''.)

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


recuren a numerelor aleatoare X i interpretate ca p tupluri de bii, adic

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.

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

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 ;
Generm cu G 2 un indice aleator j {1,2,..., k } ;

Lum Y = T [ j ] ; Generm U cu G1 i lum T [ j ] = U


Generarea indicelui aleator j , care este un ntreg uniform cu valori n {1,2,..., k } se face
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

Weib(0,1, v ) , v > 0

f ( x) = vx v 1e x

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
f ( x) =

Cauchy
PearsonXI, R , v > 0
Arcsin

x = ln (u )

x = ( ln (u ))

1v

x = tan u
2

1
x = 1v
u
1

x = sin u
2

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.
Logistic

Folosind metoda invers se poate construi uor un algoritm pentru simularea variabilei
discrete

a2 am m
, pi = 1
(3.1.)
p 2 p m i =1
Pentru simularea variabilei aleatoare X calculm mai nti valorile funciei de repartiie a
a
X : 1
p1

acesteia. Avem

0
p
1
p1 + p 2

F ( x) =
p + p + ... + p
2
k
`

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 ] =

p
j =1

. Intrare a[1..m]

Genereaz U uniform 0 1 cu U := random ;


i := 1 ; while U > F [i ] do i := i + 1 ;

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

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 :
p1

2 m
,
p 2 p m

p
i =1

=1

(3.3.)

dac
m

F ( x) = pi Fi ( x)

(3.4.)

i =1

Funcia de repartiie F (x) este o amestecare continu a familiei de funcii de repartiie

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


F ( x) = G ( x, Y )dH ( y )

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

variabila

repartiie G (x, Y ) ;

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:
m

f ( x) = pi f i ( x)

(3.4'.)

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

(3.5'.)

i =1

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 ;
until P (S1 , S 2 ,..., S n ) = true ;

Ia X = (S1 , S 2 ,..., S n ) .

S observm c dac P (S1 , S 2 ,..., S n ) = false atunci mulimea de variabile aleatoare

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

se respinge, de unde provine i numele de metod de respingere. n aceeai

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

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:
x

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

(3.6.)

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

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
x

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

(3.8.)

iar predicatul devine Z (Y ) iar condiia (3.7.) se scrie n termen de densiti.

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
x

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)

2. Modul
Repartiia
3.
maximului
4.

5.

Repartiia
minimului
Repartiia

Erlang (k )

f ( x) =

x2
2

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

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

12

X = U i
i =1

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


n

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
j

2 = Z i2

(3.13.)

i =1

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

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 2f , ,


unde
f

2 = mi2 i2

(3.13'.)

i =1

1 f
.
2 2

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

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


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

tf =

Z
2f

(3.14.)

f
se numete variabila t a lui Student cu f grade de libertate. Dac n (3.14) n loc de 2f se
introduce 2f , 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
Dac variabilele 2f , 2f sunt independente atunci variabila
1

F f1 f 2 =

f 2 f1

(3.15.)

f1 f 2

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

1 , 1

atunci se obin variabilele F Snedecor simplu necentrate F f

1 , f 2 ;1 , 0

, f

, Ff

2 , 2

1 , f 2 ; 0 , 2

sau ambele,

, cu parametri

corespunztori de excentricitate, sau variabila F Snedecor dublu necentrat F f

1 , f 2 ;1 , 2

Variabilele F pot fi de asemenea simulate direct prin formule de tipul (3.15.).


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

dac variabila X = log(Y ) este normal N (, ) .

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 2 + 1
2 m

s
2 = log 2 + 1

m
deci simularea variabilei Y se realizeaz cu algoritmul simplu

(3.16.)

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 (, ) )

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.)

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

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

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

p a = 1 e 1 , performana algoritmului este

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

( )

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

f ( x) =
1 ( x )
() ( x ) e

dac x < 0
dac x 0

iar formulele

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
repartiie Erlang (k ) . Dac 0 < < 1 atunci simularea variabilei Gamma(0,1, ) se realizeaz

cu o metod de respingere bazat pe nfurarea cu o densitate Weibull (0,1, ) cu densitatea de


repartiie dat de

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) ;

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

{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

f ( x) = 1 1 x
() x e

dac x < 0
dac x 0

sub forma

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

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

1 x

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


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

Z 0 = U 01 , 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
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.

( )

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

1
pa

1 1 t
1 + t e dt , ultima

2
, deci numrul mediu de variabile Z i ,
p2

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 .

( )

( )

( )

( )

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

1
, adic

densitatea h( x) ~ Exp

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
.
()

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

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

e 2 2
1

. S-a folosit aproximarea lui Stirling pentru

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

adic

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)) ;
( T este Cauchy standard pe ( ,+ ) ;

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 ;
T2
Y
b log T + log 1+

b
c

until U 1 e
;
Ia X = Y .
Se observ c constanta k nu intervine n construcia algoritmului dar ea este necesar
1

1
. Referitor
pentru a calcula p a = . Un calcul simplu arat c k = + arctg

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

dac x [0,1]

(3.19.)

altfel

unde
1

(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 ) .

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

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) .

V
V +T

Teorema 12. Dac 0 < a < 1 , b > 1 i U 1 , U 2 sunt variabile uniforme 0 1


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;
1

Ia V = U 1 a , T = U 2 b ;
until V + T < 1 ;
Calculeaz X =

V
.
V +T

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

ab
B ( a, b ) .
a+b

Algoritmul de respingere construit pe baza teoremei 3.11 are probabilitatea de acceptare


p a = aB(a, b) .
III.6.5. Repartiia normal
Ne vom opri la simularea variabilei Z ~ N (0,1) cci dac tim s simulm aceast

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

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) ;

Y2
+Y 0.5
2

;
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 =

0,72 , adic, n medie, din


2e

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


Metoda polar

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

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.

variabilele

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 }1n 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
, E (Z ) = p , Var (Z ) = pq = p (1 p ) .
Z :
(3.22.)
q 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 =

1
, atunci suntem n cazul particular al aruncrii la
2

ntmplare cu banul.
Repartiia binomial
Se spune c variabila aleatoare discret X N este o variabil binomial Binom(n, p ) ,
+

n N , 0 < p < 1 dac X este numrul de succese n n probe Bernoulli independente, adic
n

X = Z i , unde Z i sunt variabile identic repartizate Bernoulli, independente. Simularea


i =1

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

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

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

X np

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

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).
S observm c P ( X = ) = C k +1k 1 p k q , = 0,1,2,... , care este termenul general al

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
k

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

C Aa C Bn a
albe este P ( X = a ) =
, 0 a n , n < N . De asemenea, avem E ( X ) = np ,
C Nn
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 ) ).

A
;
N

Repartiia Poisson
Variabila

aleatoare

X,

X N

are

repartiia

Poisson( ) ,

>0

dac


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

P( X = ) =

( )

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
t 0

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

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

j 1

i =1

i =1

i < i . innd acum seama de faptul c

i = log

Ui
, U i uniforme 0 1 , atunci rezult c

X = j 1 dac

j 1

i =1

e > U i

(3.24.)

i =1

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 =

fi
.
n

Repartiia empiric este

I1

r1

I2 Ik
.
r2 rk

(3.25.)

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

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 ) .

ipotezei

Calculm apoi =
2

( f i npi )2

j =1

npi

p1 = F (a1 ) ,

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

de libertate, ( 2k 1 este variabila corespunztoare). Fiind dat riscul de genul I, , (o probabilitate


mic, apropiat de zero) determinm 2k 1, (numit cuantil superioar) astfel nct

P 2k 1 > 2k 1, = . Ipoteza H se accept dac 2 < 2k 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:


n

X =

Xi
i =1

, s2 =

X
i =1

2
i

X2.

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.

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

xk

... f (u , u
1

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

(4.3.)

f (u )du

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 ) =

(4.4.)
(4.4'.)

x f (x )dx
i

+ +

x x f (x x )dx dx
i

ij

acestea se numesc momente de ordinul I, respectiv de ordimul II. Expresiile

+ +

] (x

ij = E ( X i mi )(X j m j ) =

mi )(x j m j )dxi dx j

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

covariana lui

Xi

cu

Xj

i se noteaz

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

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 .

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 ) =

Cov (X i , X j )

Var ( X i )Var (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.

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

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


(care este pozitiv definit,

0 ) i se noteaz = Cov( X , X ) .

Presupunem c

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

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.)

Cu

aceast

densitate

se

definesc,

cnd

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

exist,

Cov X (1) , X (1) X (2 ) = x (2 ) 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 ) ,

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

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 .

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

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 .

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
0
dac v I
Din (4.7') rezult c dac V este uniform pe I atunci Vi sunt variabile uniforme pe
[ai , bi ] i independente deoarece
k

f (v1 , v 2 ,..., v k ) =
i =1

De aici se deduce
V ~ uniform pe I .

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

urmtorul

algoritm

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

simplu

pentru

simularea

(4.7''.)
vectorului

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
k

(b

ai )

de unde se

i =1

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
k

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

z2
i
2

(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

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

cii = ii cir2 , 1 < i k


r =1

(4.10.)

j 1

cij =

ij cir c jr
r =1

c jj

, 1< j < i k

cij = 0 , 1 < i < j k .

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
Intrare , C ;

Genereaz Z ~ N (0, I ) cu algoritmul VECNORMSTD;


Calculeaz X = + CZ .

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
12
(1)

= (2 ) , = 11
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


*
unde
normal N *(1) , 11
*(1) = (1) + 12 221 x (2 ) (2 )
(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 ;
*
Calculeaz *(1) , 11
;

Genereaz Z (`1) ~ N 0, I r r ;

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

Calculeaz X *(1) = *(1) + C * Z (1) .

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

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
k +1
1
f ( x) = k +21
, x Rk .
(4.14'.)
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

( )

g ( x) =

k +1
2

( )
k +1
2

k +1
(4.15'.)

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

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 ,

1 i k ;

i =1

(Acesta este un pas pregtitor);

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

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

Testarea algoritmului se face n mod simplu astfel:

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 (i ) X i2
T =1
T i =1
Pentru validarea algoritmului, trebuie ca pentru un T mare s avem mi X i ,

[ ]

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