Documente Academic
Documente Profesional
Documente Cultură
Facultatea de Matematica si
Informatica
Modele de simulare
(Suport de curs pentru IDD)
Autor Prof. Dr. Ion Vaduva
BUCURESTI 2004
1
Prefata
Autorul
Bucuresti, iunie 2004.
3
Cuprins
Cap.1. Generalitati despre simulare . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
( Model matematic, p.8; Clasicari ale modelelor
matematice, p.10)
1.2 Constructia unui model de simulare. . . . . . . . . . . . . . . . . . . . . .11
1.2.1 Structura unui model de simulare . . . . . . . . . . . . . . . . . . . . . 12
( Ceasul simularii, p.12; Agenda simularii, p.13)
1.2.2 Concepte de baza in modelarea sistemelor . . . . . . . . . . . . 19
( Nivele de reprezentare a sistemelor, p.20;
Reprezentarea la nivel de comportare, p.20;
Reprezentarea la nivel de structura de stare, p.20;
Reprezentarea modulara, p.21)
1.2.3 Modelul sistemului cu evenimente externe discrete . . . . 22
1.2.4 Metodologia de realizare a experimentelor de simulare
(Metodologia simularii) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23;
( Utilitatea simularii, p.26)
1.3. Generalitati despre limbajul GPSS . . . . . . . . . . . . . . . . . . . . . . 27
( Entitatile limbajului GPSS, p.27;
Structura instructiunii GPSS, p.29)
1.3.1 Exemple de programe GPSS . . . . . . . . . . . . . . . . . . . . . . . . . . 33
( E1. Model de simulare pentru un sistem de asteptare
cu o statie, p.33; E2. Model de simulare pentru un sistem
de asteptare cu statii paralele, p.33; E3. Model cu statii
paralele si preferinte, p.34; E4. Un model cpmplex, p.35)
Bibliograe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189
Cap. 1
1.1 Introducere
Cuvantul simulare este de origine latina si inseamna capacitatea de
a reproduce ceva.In informatica, termenul de simulare a fost intro-
dus de John von Neumann la inceputul anilor 40, odata cu aparitia
primelor calculatoare electronice.J.von Neumann impreuna cu grupul
de savanti de la Scoala Los Alamos (Ulam, Metropolis, etc) au dez-
voltat primele aplicatii ale calculatoarelor. Tot ei au introdus cuvintele
Cercetari operationale (pentru a desemna aplicatiile legate de dirijarea
operatiilor militare pe arii geograce mari ale globului pamnantesc!)
precum si metoda Monte-Carlo (pentru a desemna aplicatii ale calcu-
latoarelor bazate pe utilizarea numerelor aleatoare). In acceptiunea
actuala a informaticii, simularea cuprinde o serie de aplicatii care real-
izeaza imitarea comportamentului unor parti ale lumii reale (simularea
stochastica), luand in considerare si comportamentul aleator al aces-
teia.Din domenul simularii face parte si metoda Monte Carlo.
Lucrarea de fata trateaza simularaea sub acest aspect general, pornind
de la urmatarea denitie mai putin formalizata [10].
Denitia 1.1 Simularea este o tehnica de realizare a experimentelor
cu calculatorul, care implica utilizarea unor modele matematice si logice
care descriu comportarea unui sistem real (sau a unor componente ale
sale) de-alungul unor perioade mari de timp.
7
8 CAP. 1. GENERALITATI DESPRE SIMULARE
Fi (V I, P I, V E, P E) = 0
(V, P )E = fj (VI , PI ).
E1 E2 E3 E4 T
x x x x -
0
T1 T2 T3 T4
(a)
E1 E2 E3 E4 T
x h x h h x h x-
0
c - c - c -
c 2c 3c
(b)
Fig. 1.1. Variatia ceasului.
a) Cazul ceasului cu crestere variabila. Ti = valorile ceasului.
b) Cazul ceasului cu crestere constanta c.
A ramas oarecum ne precizat ce se intelege prin prelucrarea unui
eveniment.Acest fapt se intelege usor daca precizam si conceptul de
agenda a simularii.
Agenda simularii. Agenda se compune din elementele memo-
rate de modelul de simulare. Variabilele modelului iau diverse valori pe
parcursul simularii; de aici rezulta ca pe parcursul simularii apar multe
evenimente. Memorarea in totalitate a acestor evenimente, impreuna
cu caracteristicile lor, nu este nici recomandata dar nici necesara daca
simularea se realizeaza pe perioade mari de timp. De aceea, se memo-
reaza (in agenda) numai ceea ce este strict necesar. Evenimentele sunt
de diverse tipuri; unele variabile descriu si stari ale sistemului (sau ale
unor componente ale acestuia). Evenimentele sunt creiate sau gener-
ate la momente de timp ulterioare valorii ceasului. De aceea agenda
se compune din doua parti: agenda evenimentelor curente AEC si
agenda evenimentelor viitoare.
Deci agenda A = AEC AEV , unde:
AEC = agenda evenimentelor curente (care au timpul de aparitie
egal cu valoarea ceasului); iar
AEV = agenda evenimentelor viitoare (care au timpul de aparitie
ulterior valorii curente a ceasului).
Algoritmul simularii prelucreaza deci numai evenimentele din AEC;
prelucrarea unui eveniment inseamna e determinarea aparitiei unui
nou eveniment (ce se memoreaza in AEV ) sau modicarea unei stari,
14 CAP. 1. GENERALITATI DESPRE SIMULARE
A = A AEgen AEelim
unde Agen sunt evenimentele generate pe parcursul unui ciclu, iar Aelim
sunt evenimentele eliminate cu ocazia prelucrarii AEC. (Semnele si
se autexplica).
Structura generala a unui MS este descrisa in schema logica
din Figura 1.2, pentru a carei intelegere este necesara si urmarirea
schemelor ajutatoare din Fig. 1.3, a)-g). Descrierea structurii MS este
prezentata structurat.
In Figura 1.3 a) se prezinta schema logica generala a rutinei prin-
cipale; MS este conceput ca un joc constituit din mutari. Se urmareste
ca jocul sa conduca la o performanta a sistemului prin efectuarea a
mai multe mutari, ecare mutare ind aleasa astfel incat sa conduca
in nal la satisfacerea jocului. In blocul central al Fig.1.3 a) (rutina
principala!) se executa ciclul de baza al simularii (interactiunea ceas-
agenda!).Rutina de comutatie alege evenimentul ce urmeaza a pre-
lucrat din AEC si transfera controlul la rutina eveniment care-l va
prelucra.
Rutina eveniment prelucreaza evenimente dupa schema:
A B, A........ > B
INCEPUT
-
6 ? 6
PRIMA
RUTINA DE RUTINA B
EVENIMENT B
INITIALIZARE
A JOCULUI B
B
B
- B
6 B
? B
B
RUTINA DE B
INITIALIZARE A DOUA B
A MUTARII B
RUTINA @
EVENIMENT B
@
?' $ @ B
? @ B
@B
- RUTINA DE @BN
R
RUTINA PRINCIPALA
COMUTATIE
MUTARE & %
B
? COMPLETA
B
A B
RUTINA
A B
REZUMAT
A B
MUTARE
A B
B
B
JOC COMPLET
? B
B
RUTINA A
A B
REZUMAT
B
JOC A
A B
B ULTIMA
TOATE JOCURILE BN
RUTINA
?
TERMINATE
EVENIMENT
SFARSIT
Fig. 1.2. Schema logica globala a unui program
' $ ' $
INTRARE DIN INTRARE DIN
RUTINA DE RUTINA DE
INITIALIZARE COMUTATIE
A MUTARII & %
& % ' $ ?
?
EXISTA O @ Nu INTRARE LA MODIFICA ELEMENTELE
AGENDA DE EVENI-@- RUTINA AFECTATE DE
@ MENTE VIITOARE REZUMAT ACEST EVENIMENT
@ MUTARE
? Da & % ?
ALEGE PRIMUL GENEREAZA
EVENIMENT NOILE
DIN AEV EVENIMENTE VIITOARE
SI LE MEMOREAZA
? IN AGENDA (AEV)
TRANSFORMA
?
EVENIMENTUL
URMATOR IN SCOATE DIN
EVENIMENT CURENT AGENDA
EVENIMENTELE ANULATE
? DE ACEST EVENIMENT
REACTUALIZEAZA ?
CEASUL CLOCK REACTUALIZEAZA
STATISTICILE
' $
? CARE AU LEGATURA
@ Nu TRANSFER CU ACEST EVENIMENT
CLOCK > TMAX@- LA RUTINA DE
@ COMUTATIE ?
@
& % SCRIE EFECTUL
Da
'? $ ACESTUI EVENIMENT
TRANSFER ' ? $
LA RUTINA TRANSFER
REZUMAT LA RUTINA
MUTARE
& % PRINCIPALA
& %
a) b)
c)
f) g)
Fig.1.3(continuare) Schemele logice ale rutinelor programului de
simulare.
e) Rutina de comutatie;
f) Rutina de initializare a mutarii;
g) Rutina de initializare a jocului.
1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 19
S = (T, X, , , Y, , )
unde:
T = timpul de baza al sistemului (ceasul sistemului);
X = multimea intrarilor;
= multimea segmentelor de intrare (forma intrarilor!)
segment= : (t0 , t1 ) X,=(t0 ,t1 ) = grac= {(t, (t)), t0 t
t1 }.
Se foloseste de regula notatia (t,t1 ) = {(, ( )), t < t1 } si
notatiile = (t0 ,t1 ) , t) = (t0 ,t) , (t = (t,t1 ) ; = t) (t ;
= multimea starilor interne ale sistemului = memoria sis-
temului;
Conceptul de stare este esential in modelarea sistemelor; el descrie
structura interna (intima!) a sistemului;
= functia de tranzitie a starilor denita ca
: .
Ea satisface relatia
(, ) = ((, t) ), (t ), t, = t) (t ,
OT RAJ, : (t0 , t1 ) Y.
Rs = {(, )| , = OT RAJ, , } .
Acest nivel de reprezentare este cel mai vag. El descrie numai relatiile
de intrare/iesire ce se pot observa dinafara sistemului (care deci se
comporta ca o cutie neagra).
-
(t) BLACK BOX (t) -
RS = {, }
a)
'$
(t) - (t)-
S(t)
6
&%
b)
'$ '$
1 (t)
- 1 S1 (t) 1 -
1 (t) 3 (t)
- 3 S3 (t) 3 -
3 (t)
6 6
&% &%
(t) - -
2
'$
2 (t)- 2 2 2 (t) -
-
S2 (t)
6
&%
c)
: X ;
Entitati de echipament:
3) Statii de serviciu sau facilitati; (ele corespund subsistemelor
cu o componenta care trateaza de regula o singura tranzactie!);
4) Multistatii de serviciu sau depozite; acestea trateaza de regula
mai multe tranzactii (de ex. liftul, autobuzul, pot transporta mai multi
clienti considerati ca tranzactii, etc!);
5) Comutatorii logici sunt variabile logice care permit utiliza-
torului sa realizeze ramicarea dupa dorinta a uxului de executie in
programul de simulare.
Entitati de calcul ce permit efectuarea (limitat!) a unor calcule:
6) Variabile aritmetice; permit evaluarea unor expresii aritme-
tice, iar rezultatul este memorat de o variabila aritmetica;
7) Variabile booleene; permit evaluarea unor expresii booleene,
iar rezultatul este memorat de o variabila booleeana;
8) Functii descrise prin tabele sau prin segmente de dreapta (liniare
pe portiuni);
9) Functii analitice descrise prin expresii mai complicate; (ele
exista numai in SIMUB si au rolul de a facilita simularea diverselor
variabile aleatoare prin metoda inversa);
Entitatile statistice, permit colectarea unor statistici sau estima-
tii privind VE sau PE; printre acestea se remarca :
10) Cozile care sunt entitati statistice ce memoreaza tranzactiile
intarziate in sistem;
11) Tabele de frecvente care descriu histograme ale VE;
12) Tabele de frecventa bidimensionale, sau tabele de contin-
genta; (acestea sunt disponibile numai in SIMUB);
Entitati de referinta care memoreaza anumite informatii pe care
le doreste utilizatorul si anume:
13)Cuvinte de salvare care memoreaza valori ce corespund cate
unui cuvant de memorie al calculatorului;
14) Matrice de cuvinte de salvare care memoreaza matrici;
Entitati de tip lant,care sunt de doua tipuri:
15) Lanturi ale utilizatorilor in care se pot depune sau scoate
tranzatii dupa dorinta utilizatorului; (Exista si lanturi ale sistemului,
manipulate intern de catre GPSS, care nu pot accesate de utilizator).
1.3. GENERALITATI DESPRE LIMBAJUL GPSS 29
Numere aleatoare
39
40 CAP. 2. NUMERE ALEATOARE
6 6
y y
y=1 y=1
- x - x
0 1 0 1
a) b)
6 6
y y
1
y= ba
y=1
- x
- x
0 b 0 a b
c) d)
(an 1)c
Xn = (mod m), b = a 1. (2.6 )
b
Daca in relatia precedenta luam a = b + 1 atunci (2.6) devine
unde s este cel mai mic numar natural care satisface relatia
m1
m1
x x2
E[X] = x=0
, V ar[X] = x=0
{E[X]}2
m m
m1 2
m1
m xs(x) x
x=0 x=0
1 = = m1 2 , s(x) = (ax + c)(mod m).
m1
m x2 x
x=0 x=0
Evaluarea lui se face cu dicultate. Se arata ca
2
1 c c a
16 +6 , . (2.9)
a m m m
O valoare
concilianta a lui a, care sa asigure o valoare mica a lui este
a m iar din conditia 0 se deduce ca c/m trebuie sa satisfaca
ecuatia
c 1 1
1 6x + 6x2 = 0 adica = 3 = 0.211324865. (2.10)
m 2 6
Ultima relatie da o conditie pentru alegerea lui c.
Notand k = Corr(Xi, Xi+k ), se arata ca k 1 , k > 1, ceea ce
asigura o dependenta slaba a numerelor departate din secventa X1 , X2 , ...
In concluzie pentru ca generatorul (2.6) sa e bun trebuie sa alegem
un modul m cat mai mare, sa selectam un a astfel incat sa satisfaca
teorema 3 impreuna
cu o potenta mai mare decat 5 si sa ia o valoare
apropiata de m, iar c sa satisfaca (2.10). Numarul de start X0 , care
se mai numeste si samanta generatorului poate orice numar natural
mai mic decat m.
Pentru a produce un numar aleator intreg X, generatorul (2.6) nece-
sita deci efectuarea unei inmultiri si a unei adunari si apoi calcularea
2.4. ALTI GENERATORI DE NUMERE UNIFORME 47
In acest caz X0 trebuie sa fie neaparat pozitiv caci altfel sirul produs
de (2.11) ar avea toate elementele egale cu zero deci nu ar un sir
de numere aleatoare uniforme intregi. Conditia de perioada maxima se
modica si ea si intr-un caz interesant din punct de vedere practic se
exprima prin teorema urmatoare.
Teorema 2. 4 Perioada maxima a generatorului (X0 , a, 0, m) se obtine
cand:
(i) X0 este un intreg pozitiv prim cu m;
(ii) a este radacina primitiva modulo m, si daca pi , 1 i t sunt
numere prime atunci perioada este
Exercitii.
Simularea variabilelor
neuniforme
53
54 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
a1 , a2 , ..., am
m
X: , pi = 1. (3.1)
p1 , p2 , ..., pm i=1
i
Intrare tabela T [1..m], T [i] := pj ; Intrare a[1..m];
j=1
Genereaza U uniform 0 1; (cu U := random;);
i := 1; while U > F [i] do i := i + 1;
Ia X := a[i].
daca
m
F (x) = pi Fi (x). (3.4)
i=1
Functia de repartitie F (x) este o amestecare continua a familiei de
functii de repartitie {G(x, Y )}Y R , cu functia de repartitie continua
H(y) a lui Y daca ea este de forma
F (x) = G(x, y)dH(y) (3.5)
R
ba (a + 1) a ba+1 a
= a+1
= a+1
= a+1
, = .
(a)(x + b) b (x + b) (x + 1) b
Deci in nal densitatea lui X este
0, daca x < 0
f (x) = a
,daca x 0, = . (3.7)
(x+1)a+1 b
deci
x f (v)/(h(v))
x x
f (v)
P (A|B) = du h(v)dv = h(v) = f (v)dv.
h(v)
0
e(1)
= , = 1 . (3.11)
( + 1)
Deci in nal algoritmul pentru simularea lui X este
Algoritmul GAMRESM1 [10] (algoritm de respingere pentru
variabila gamma standard cu parametru subunitar)
Intrare ; Calculeaza c := 1/, := 1 a := e(1) ;
repeat
Genereaza U uniform 0 1;
Calculeaza Z := ln(U), Y := Z c ; {se genereaza Y ; W eib(0, 1, ); }
Genereaza alt U uniform 0 1;
until U aeZY ;
Ia X := Y.
Primul pas al algoritmului este un pas pregatitor; in cazul cand se
simuleaza o selectie de volum n > 1 asupra lui X atunci acest pas se
executa o singura data si numai ceilalti pasi se executa de n ori.
62 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
In continuare avem
x
(t) x
P (A|B) = cP (AB) = c dQ(v) dR(t) = c Q((y))dR(y) = F (x).
0
[G(x)]k1 [G(x)]k
P (x Z1 Z2 ... Zk1 < Zk ) = . (3.15)
(k 1)! k!
(G(x))k1
P (A) = .
(k 1)!
3.3. METODA RESPINGERII 65
[G(x)]k1 [G(x)]k
P (A \ B) = P (A) P (B) =
(k 1)! k!
P (K = nr.impar) = P (K = 1) + P (K = 3) + ... =
Ia X := Z .
Sa analizam acum performanta algoritmului. Observam ca pa ne da
informatie asupra vitezei algoritmului: cu cat pa este mai mare, cu atat
mai repede ajungem sa acceptam un Z0 (cand K = nr.impar). Dar
pa (probabilitatea de acceptare) nu este de ajuns pentru a caracteriza
performanta algoritmului; ar trebui sa vedem si cate numere Zi , i 0
sunt necesare pentru a obtine un Z0 acceptat.Vom utiliza notatiile:
pr este probabilitatea de a respinge un Z0 (de a respinge un subsir!);
avem pr = 1 pa ;
Na = numarul de valori Zi , i 1 dintr-un subsir in care se accepta
un Z0 ;
Nr = numarul de valori Zi , i 1 dintr-un subsir in care se respinge
Z0 ;
N = Numarul total de valori de selectie Zi , i 0 necesare pana la
acceptarea unui Z0 .
Folosind aceste notatii putem calcula valorile medii ale numerelor
N. Avem
E(N ) = pa E(Na ) + pr [E(Nr ) + E(N )]
de unde
1
E(N ) = [E(Na )pa + E(Nr )pr ].
pa
Dar
1
E(Na )pa + E(Nr )pr = E(K + 1), deci E(N ) = E(K + 1).
pa
Se observa ca
+
!
(G(x))k1 (G(x))k
E(K + 1) = (k + 1) dG0 (x) =
k=1 (k 1)! k!
+
+
(G(x))k (G(x))k
= (k + 2) dG0 (x) (k + 1) dG0 (x) =
k=0 k! k=1 k!
+
+
(G(x))k
= 1+ dG0 (x) = 1 + eG(x) dG0 (x).
k=0 k!
3.4. ALTE METODE 67
In concluzie
+
1
E(N ) = 1+ eG(x) dG0 (x) . (3.17)
pa
n
notam Sn = Vi , atunci
i=1
x
S E(Sn ) 1 t2
lim P n < x = e 2 dt. (3.20)
n 2
V ar(Sn )
= 1 (1 x)n , x [0, 1]
si derivand ultima expresie se obtine densitatea de repartitie din tabel.
5. Repartitia Erlang(k), k N + , este un caz particular al repartitiei
Gamma(, , ), , , R+ care are densitatea de repartitie [3, 6, 7,
10]
0, daca x < ,
f (x) =
(x )1 e(x) , daca x . (3.22)
()
"
k
X (t) = e[eit j
Zj
]= Zj (t) = (Z (t))k .
j=1
Dar
1
Z (t) = E[e itZ
]= e(1it)x dx =
1 it
0
deci
k
1
X (t) = ,
1 it
adica aceeasi cu (t), ceea ce demonstreaza teorema.
Folosind aceeasi tehnica de demonstratie se poate demonstra si
urmatoarea teorema [10].
(Z = X + Y ) ; Gamma(0, 1, + ).
(t) = e
atunci X+Y it(m+p) 2 , ceea ce inseamna ca (X + Y ) ;
N(m + p, 2 + 2 ).
72 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
Y = eX + , - variabila lognormala;
$ %1
Y = 1 + eX + - variabila logit normala;
Y = sinh(X) + - Variabila Sinh1 normala,
x x
sinh(x) = e e 2
, unde > 0, 0, aceste constante aleganduse de
obicei astfel incat E{Y } = 0, V ar{Y } = 1.
Variabila logonormala a fost studiata mai sus,variabila logit normala
este de tip logistica, iar variabila Sinh1 normala este de tip sinus
hiperbolic.
ek u
z
k1
1 j 1
= (1 e )e + (1 e ) e du =
j=0 1 e1
0
= 1 ek + ek (1 ez ) = 1 e(k+z) = 1 ex , x > 0
si teorema este demonstrata.
De aici se deduce urmatorul algoritm pentru simularea lui Z.
Algoritmul EXRJ de simulare a exponentilalei prin metoda resp-
ingerii
Initializeaza N := 0;
repeat
genereaza U0 , U1 uniforme 0 1 si independente; Ia U := U0 , K :=
1;
while U0 U1 do begin
K := K + 1, U0 := U1 , genereaza U1 uniform 0 1;
end; (s-a simulat un subsir descendent);
if K mod 2 = 0 then N := N + 1; (se numara subsirurile respinse);
until K mod 2 = 1;
Ia Z := N + U .
Pe langa probabilitatea de acceptare pa = 1 e1 , performanta
algoritmului este caracterizata si de numarul N al variabilelor uniforme
76 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
1
1 1 e2
E(N ) = (1 + ez dz) = (1 + e 1) = 3.8, (3.17 )
pa 1 e1 e1
0
sub forma
f (x) = p1 f1 (x) + p2 f2 (x),
f (x) f (x)
f1 (x) = p1
daca x [0, 1], ,
, f2 (x) =daca x (1, +),
p2
,
0, altf el 0, altf el
(3.29)
(1; ) () (1; )
p1 = , p 2 = 1 p1 = ,
() ()
3.5. SIMULAREA UNOR VARIABILE PARTICULARE 77
1
() = x1 ex dx, (1; ) = x1 ex dx.
0
0
1 t 1 t 1
x x
1
pa = et t1 dt = (1; ),
0
ex x1
H (x) = h(x) = = f1 (x), x [0, 1]
(1; )
1 1 1
c= ; a= , b=
e(() (1; )) 1
algoritmul de simulare al variabilei X ; Gamma(0, 1, ), 0 < < 1,
este
Algoritmul GAMCOMNL1 pentru simularea variabilei gamma
de parametru subunitar prin compunere si respingere:
Intrare p1 , p2 ;
Genereaza U ; unif orm 0 1;
if U p1 then begin
Genereaza X1 ; f1 (x); Ia X := X1 ;
end
else begin
Genereaza X2 ; f2 (x); Ia X := X2 ;
end.
Variabilele X1 si X2 se genereaza cu algoritmii de respingere prezentati
in continuare.
Algoritmul GAMRESNL1 pentru simularea variabilei X1 :
repeat
Genereaza U := random; (U=uniform 0 1);
Ia Z0 := U a ; Genereaza Z1 := random; Ia K := 1; Z := Z0 ;
While Z0 Z1 do begin
Z0 := Z1 ; Genereaza Z1 := random; K := K + 1;
end;
until Kmod2 = 1;
Ia X1 := Z .
Pentru acest algoritm avem
1
1
pa = (1; ); E(N1 ) = (1 + t1 et dt)
pa 0
3.5. SIMULAREA UNOR VARIABILE PARTICULARE 79
ex x1
(x) = [x ( 1)][(x )2 + c (2 1)]
c
de unde rezulta ca ecuatia (x) = 0 are solutia x0 = 1 > 0 iar
daca c 2 1 atunci x0 este punct de maxim. Daca luam c = 2 1
atunci avem
1
= ( 1)1 e(1)
k()
ceeace demonstreaza teorema.
Pentru a descrie algoritmul dedus din teorema precedenta presupunem
calculate in prealabil constantele
b = 1, c = + b, s = 2 1.
unde
1
(a)(b)
B(a, b) = xa1 (1 x)b1 dx, B(a, b) = . (3.32 )
(a + b)
0
ab
pa = B(a, b). (3.34)
a+b
Algoritmul de respingere construit pe baza teoremei 3.14 are probabil-
itatea de acceptare
pa = aB(a, b). (3.34 )
Demonstratie. Observam ca
&
f1 (x) 2 x2 +x
r(x) = = e 2
h(x)
Y2
until u e 2 +Y 0.5 ;
Ia X1 := Y ;
Genereaza U uniform 0 1;
if U 0.5 then s := 1 else s := 1; (s este un semn aleator);
Ia Z := sX1 .
Se observa ca probabilitatea de acceptare este
#
pa = 0.72 (3.36 )
2e
adica, in medie, din patru perechi (U, Y ), trei sunt acceptate pentru a
produce un X1 .
Metoda polara. O alta metoda interesanta de simulare a vari-
abilei N(0, 1) este metoda polara data de urmatoarea teorema [10] da-
torata lui Box si Muller.
V1 = Rcos, V2 = Rsin, 0 R 1, 0 2.
P (X = ) = Cn p q n , q = 1 p,
it Zj
(t) = E[eitX ] = E[e j ] = (q + peit )n . (3.43)
n
n
V ar(X) = V ar( Zi ) = V ar(Zi ) = npq (3.43 )
i=1 i=1
X np
Wn = ; N(0, 1).
npq
x1
F (x) = P (X < x) = pq i = 1 q x , x = 0, 1, 2, ...
i=0
de unde deducem
O(t)
lim O(t) = 0, lim =0
t0 t0 t
(O(T ) este neglijabila in raport cu t) iar probabilitatea ca pe acelas
interval sa se produca mai mult de un eveniment (conditia de raritate)
este O(t) (adica este neglijabila). Numarul de evenimente rare ce
se produc pe unitatea de timp este o variabila aleatoare P oisson().
Numarul este intensitatea cu care se produc evenimentele rare.
Se arata ca intervalul de timp la care se produc doua evenimente
rare consecutive are o repartitie Exp(), fapt care spune ca X = j 1
j
i=1 i <
daca j1 i=1 i . Tinand acum seama de faptul ca i =
logUi /(), Ui uniforme 0 1, atunci rezulta ca
"
j1 "
j
X = j 1 daca , Ui e > Ui . (3.50)
i=1 i=1
6
y
f (x)
r3
r2 rk1
r1 rk
-
0 I1 I2 I3 Ik1 Ik x
a0 a1 a2 a3 ak2 ak1 ak
Fig.3.1. Histograma.
j := trunc( Xa[1]
h
) + 2, f [j] := f [j] + 1;
end
else if X a[1] then begin
a[0] := min{a[0], X}, f [1] := f [1] + 1;
end
else begin
a[k] := max{a[k], X}; f [k] := f [k] + 1
end;
end.
6 6
y y
(0, )
0<<1
>1
- -
0 x 0 x
a) b)
y 6 y 6
- -
0 m m m+ x 0 x
c) d)
Calculam apoi
k
(fi npi )2
2 = (3.53)
j=1 npi
care se stie ca are repartitia hi patrat cu k 1 grade de libertate,
(2k1 este variabila corespunzatoare). Fiind dat riscul de genul I, ,
( o probabilitate mica, apropiata de zero) determinam 2k1, (numita
-cuantila superioara) astfel incat
P (X = r, X + Y = n)
P (X = r|X + Y = n) = =
P (X + Y = n)
e r e r n! r nr
r
= = C , r = 0, 1, ..., n.
r!(n r)! e(+) ( + )n n
( + )n
E.3.6. Fie X ; f (x) unde
0, daca x < 0
f (x) = 1 x , > 0
exp{ e 1 + x} daca x 0
1 x21 +x22
f (x1 , x2 ) = e 2 .
2
Deci
x2 2
Z1 1 +x2
P (U < y) = P ( < tg(2y)) = e 2 dx1 dx2 = y.
Z2
x1 /x2 <tg(2y)
Facem transformarea
D(x, y)
t = x y, v = y, J= =1
D(v, t)
si calculam
h(t) = g(x(t, v), y(v, t))|J|dv.
0
Se obtine in nal
1 x
2
e daca x < 0,
h(t) = 1 x
2
e daca x 0.
4.1 Generalitati
Un vector X = (X1 , X2 , ..., Xk ) (vector coloana) ale carui componente
Xi sunt variabile aleatoare, se numeste vector aleator. Cazul in care
componentele sunt independente stochastic este desigur banal de aceea
cazul cel mai interesant este cand componentele Xi sunt dependente
sau corelate.
Functia de repartitie a vectorului X este
k F (x1 , x2 , ..., xk )
f (x) = f (x1 , x2 , ..., xk ) = (4.2)
x1 x2 ...xk
cand derivata partiala exista, se numeste densitate de repartitie multi-
dimensionala a lui X.
Functia de repartitie P (Xi < xi ) = F (+, ..., +, xi, +, ..., +) =
Fi (xi ) se numeste functie de repartitie marginala a lui Xi , iar fi (xi ) =
103
104 CAP. 4. SIMULAREA VECTORILOR ALEATORI
Cov(Xi , Xj )
ij = Corr(Xi, Xj ) = . (4.5)
V ar(Xi )V ar(Xj )
Demonstratie. Avem
= P (F21(Y1 , U2 ) < x2 |Y1 = x1 )F1 (x1 ) = P (U2 < F2 (x1 , x2 ))F1 (x1 ) =
= P (Y1 < x1 , ..., Yi1 < xi1 , Fi1 (Y1 , ..., Yi1 , Ui ) < xi ) = F1...i (x1 , ..., xi ).
Dar
F1...k (x1 , ..., xk ) = F (x1 , ..., xk )
ceeace trebuia demonstrat. De aici se deduce urmatorul algoritm pen-
tru simularea vectorului aleator X cand se cunosc inversele Fi1 ale
functiilor de repartitie conditionate Fi (x1 , ..., xi1 , xi ) in raport cu xi .
Algoritmul GUMBEL
Intrare ; (Acesta este un pas pregatitor);
Genereaza X ; Exp(1);
Genereaza U := random; Genereaza Y rezolvand ecuatia
mesD mesD
pa = = k
mesI
[bi ai ]
i=1
Se arata ca
E(X) = , Cov(X, X) = . (4.8 )
Formulele precedente se deduc usor cu ajutorul functiei caracteristice.
In cazul variabilei normale X ; N(m, ) conform teoremei 3.7 functia
caracteristica este
t2 2
(t) = eitm 2 .
Prin analogie, in cazul multidimensional functia caracteristica este
k
i tj xj
it X j=1
(t) = E[e ]= e f (x; , )dx
Rk
"
k
1 zi2
f (z) = fi (zi ), fi (zi ) = e 2 (4.9)
i=1 2
X = + CY ; N(, CC ).
E(X) = + CE(Y) = + 0 = ,
j1
ij cir cjr
cij = r=1
, 1<j<ik (4.11)
cjj
cij = 0, 1 < i < j < k.
Simularea vectorului X ; N(, ), dupa ce se calculeaza intr-un pas
pregatitor matricea C a lui Choleski se realizeaza cu urmatorul algoritm
(1)
=
(1)
+ 12 1
22 (x
(2)
(2) ), 11 = 11 12 1
22 21 . (4.13)
Y = SX + c. (4.16 )
i pi = 1.
Aceasta interpretare ne conduce la urmatorul algoritm pentru sim-
ularea lui X
Intrare n, k, p1 , p2 , ..., pk si calculeaza F [] = pi , 1 i k;
i=1
(Acesta este un pas pregatitor);
Initializeaza X[1] = 0, ..., X[k] = 0;
for i := 1 to n do begin
Simuleaza U := random; Ia i := 1;
while U F [i] do i := i + 1;
Insumeaza X[i] := X[i] + 1;
end.
Testarea algoritmului se face in mod simplu astfel
() ()
- Se genereaza selectia de volum T, X() = (X1 , ..., xk ) , 1
T;
- Se calculeaza mediile aritmetice si dispersiile empirice
1 T
() 1 T
() 2
Xi = Xi , s2i = [Xi ]2 Xi .
T =1 T i=1
Exercitii
E4.1 Sa se prezinte o metoda de simulare a unui vector V =
(V1 , V2 ) , uniform pe cercul C(O, r).
Solutie. Se simuleaza un vector W = (W1 , W2 ) uniform pe [r, r]
[r, r] si se pune conditia ca el sa apartina cercului. Algoritmul este:
repeat
Genereaza: U1 := random; U2 := random;
W1 := r + 2rU1 ; W2 := r + 2rU2 ;
until W12 + W22 r 2 ;
Ia V1 := W1 ; V2 := W2 .
E4.2 Sa se prezinte o metoda de simulare a unui vector W =
(W1 , W2 ) uniform pe elipsa de semiaxe a, b > 0.
Indicatie. Se simuleaza un vector V = (V1 , V2 ) uniform pe intervalul
[a, a] [b, b] si se pune conditia ca V12 /(a2 ) + V22 /(b2 ) 1.
E4.3 Se considera vectorul X = (X1 , X2 , ..., Xk ) unde Xi ; Exp(i )
sunt independente iar ; Gamma(0, b, a). Sa se determine densitatea
de repartitie a lui X si sa se indice un algoritm pentru simularea aces-
tuia.
Solutie.Sa notam
ba
(a)
a1 eb , daca > 0
g() =
0, 0.
Atunci densitatea de repartitie a lui X este
k
k a
xi i
f (x1 , x2 , ..., xk ) = ( i ) k+a1 b
0 (a)
e i=1 eb d, xi > 0 =
i=1
o, altf el
4.6. SIMULAREA REPARTITIEI DIRICHLET. 117
k
k ( xi i +b)
ba
= (a)
( i ) 0 a+b1 e i=1 d, daca xi > 0 =
i=1
0, altf el
ba
k
(a+k)
(a) ( i ) , xi > 0
k
= i=1 (b+ i xi )a+k =
i=1
0, altf el
k
( i=1 i )a(a+1)...(a+k1)
k , daca xi > 0 i
= (1+ i xi )a+k i = .
b
i=1
0, altf el,
Simularea lui X se poate face prin metoda compunerii.
Se poate arata (folosind (4.6)) ca pentru xi > 0
m1
m (a + m 1)(1 + i xi )a+m1
f (xm |x1 , ..., xm1 ) = i=1
m1
(1 + i xi + m xm )a+m
i=1
de unde
a+m1
k1
1 + i xi
F (xm |x1 , ..., xm1 ) = 1 i=1
.
m
1+ i xi
i=1
iar
Fx (x) = 1 (1 + x)e(+)x
de unde se pot calcula cu usurinta mediile si dispersiile.
Pentru simulare se aplica metoda inversa (teorema 4.1) unde X ;
Fx (x) iar f (y|x) este de forma
(+)
+(+)x
daca 0<y<x
f (y|x) = (+)e(+)(yx)
daca y > x.
+(+)x
Se observa ca
1 ( + )x
f (y|x) = p I(0,x) + (1 p)( + )e(+)(yx) I(x,) , p =
x + ( + )x
s1 = u1 ; s2 = u2 u1 , , ..., sn = un un1
u1 = s1 , u2 = s1 + s2 , , ..., un = s1 + s2 + ... + sn .
Y = b1 . . . br pi.
p.1 . . .p.r
Repartitia marginala a lui X este
Simularea proceselor
stochastice
5.1 Generalitati
O familie de variabile aleatoare, {Xt }tT , T R, deprinzand de parame-
trul real t (presupus a timpul) se numeste proces stochastic. Daca T
este o multime discreta (deobicei T = {0, 1, 2, ...}), atunci procesul se
numeste lant. Daca T este un interval I R atunci procesul este cu
timp continuu. Valorile lui Xt se numesc stari. Fie S multimea valo-
rilor unui proces stochastic. Daca multimea S este discreta spunem ca
procesul este cu stari discrete iar daca S este de puterea continuumului,
spunem ca procesul este cu stari continue. Multimea {(t, Xt )|t T } se
numeste traiectorie a procesului stochastic.
Procesul stochastic este cunoscut daca pentru n, t1 , t2 , ..., tn este
cunoscuta functia de repartitie
Ft1 ,t2 ,...tn (x1 , x2 , ..., xn ) = P (Xt1 < x1 , ..., Xtn < xn ).
Denitia 5. 1 Procesul stochastic {Xt }tT se numeste stationar tare
daca n, h R, t1 < t2 < ... < tn avem
Ft1 +h,t2 +h,...,tn+h (x1 , x2 , ..., xn ) = Ft1 ,t2 ,...,tn (x1 , x2 , ..., xn ). (5.1)
Procesul {Xt }tT se numeste stationar slab sau simplu stationar
daca are momente de ordinul doi, adica exista si sunt finite mt =
E[Xt ], st = Cov[Xs , Xt ], s < t si mt = m = const, st = (t s).
121
122 CAP. 5. SIMULAREA PROCESELOR STOCHASTICE
Daca T = {0, 1, 2, ..., n, } si S = {1, 2, ..., m}, atunci avem de-a face cu
un lant Markov cu un numar nit de stari. Acest lant este caracteri-
zat de vectorul = (1 , 2 , ..., n ) care reprezinta repartitia initiala a
starilor si de multimea probabilitatilor de tranzitie Pij (s, t) = P (Xt =
j|Xs = i), i, j S, s < t, s, t N.
Se arata ca probabilitatile de tranzitie satisfac relatia lui Chapman-
Kolmogorov, adica
Pij (s, t) = Pik (s, r)Pkj (r, t). (5.2 )
kS srt
(t)
(t) = = t , t = 1, 2, ... 0 < < 1 (5.8)
(0)
(k)
(k) = , V ar(Xt ) = 2 = (0)
(0)
si dorim sa simulam un proces gausian {Xt } cu aceasta functie de
autocorelatie si cu V ar(Xt ) = 2 .
Vom simula Xt utilizand teorema limita centrala. Pentru aceasta
sa consideram variabilele aleatoare Vi ,i 1, independente si uniform
distribuite pe [a, a], a > 0 cu adat. Avem deci
a2
E[V ] = 0, V ar[V ] = = 2 . (5.10)
3
Pentru a genera procesul gausian {Xt }tN de medie 0 si dispersie 2 ,
alegem mai intai N > 10 (impus de teorema limita centrala) si un
numar natural p, p > 0 a carui valoare va precizata mai jos. Simulam
valorile de selectie Xt , Xt+1 , t N, astfel
n
N +p
Xt = Vi , Xt+1 = Vi , (5.11)
i=1 i=p+1
(k) p
(k) = 2
= 1k
N N
128 CAP. 5. SIMULAREA PROCESELOR STOCHASTICE
(t)n t
Pn (t) = e (5.16 )
n!
iar daca depinde de t, ( = (t)) atunci solutia este
t
((t))n (t)
Pn (t) = e , (t) = (u)du. (5.16 )
n! 0
k
SN 1 < SN +1 , Sk = Zi , Zi ; Exp().
i=1
6.1 Generalitati
Sub denumirea de metode Monte Carlo sunt cuprinse o serie de tehnici
de rezolvare a diverse probleme utilizand numere aleatoare, variabile
aleatoare sau procese stochastice simulate cu calculatorul. Mai precis
se accepta urmatoarea denitie
Denitia 6. 1 Fie de rezolvat o problema numerica P care are solutia
. O metoda Monte Carlo pentru rezolvarea lui P consta in urmatoarele:
- se asociaza in mod adecvat un proces stochastic problemei
astfel incat cu ajutorul lui sa se poata estima ; (de exemplu =
E[ ()], sau E[ ()] , sau () converge intr-un sens probabilist
catre , unde este o functie data). Sa notam deci = () estimatorul
lui . ( () se numeste estimator primar.).
- se simuleaza o selectie 1 , 2 , ..., n asupra lui si se calculeaza un
estimator n al lui (); daca de exemplu E[ ()] = atunci estima-
torul lui () este
1 n
n = (i ) (6.1)
n i=1
si el se numeste estimator secundar.
- solutia problemei P se aproximeaza cu n .
Daca estimatorul primar () este nedeplasat, adica E[ ()] = , atunci
estimatorul secundar n satisface de regula legea numerelor mari si deci
n in probabilitate.
131
132 CAP. 6. METODA MONTE CARLO
aria(D)
p= 2
=
aria(I ) 4
se estimeaza cu
1 n
p= D (Vi ) = D,n
n i=1
unde V1 , V2 , ..., Vn este o selectie asupra lui V. Din ultima relatie rezulta
ca
4 n
4p = D (Vi ) = 4D,n (6.5 )
n i=1
6.2. METODA MONTE CARLO BRUTA. 135
Suntem deci in fata unui caz special si oarecum ciudat: pentru a calcula
ar trebui sa-l cunoastem mai intai pe si sa cunoastem si integrala
1 2 2
0 f (x)dx (presupunand deci ca f L [0, 1]). Dar nu putem abandona
ideea. Putem determina (estima) pe n cu (6.3) intr-unul din doua
moduri si anume:
(1) Presupunem ca f (x) M < , x [0, 1]. Atunci avem 2 <
M 2 si deci in (6.3) putem inlocui 2 = M 2 obtinand un n mai mare
dar care asigura cu atat mai mult precizia si riscul . In particular, in
cazul exemplului 6.1 putem determina n0 din (6.3) luand 2 = p(1 p).
(2) Alt mod de a estima un n consta in a estima mai intai pe 2
folosind o selectie de volum k, U1 , U2 , ..., Uk si anume
1 k
2 s2 = (f (Ui ) k )2
k i=1
unde g(x) este cotinua pe [0, 1]. Metoda Monte Carlo bruta conduce la
estimatorul secundar
1 n
g(Ui )
n = , Ui ; unif orm[0, 1].
n i=1 Ui
2
si sa observam ca V ar() = S I , unde
s
1
2
I= a2i fi2 (x)
i=1
de unde 2
s
1
2
S a2i fi2 (x) p(x)dx .
i=1
s
si acest minim se atinge pentru q0 (x) si el este I a2 2 .
i i
i=1
m j
= f (v)dv
i=1j1
m
dependente si uniforme 0 1 de volume kj , iar n = kj . Cu selectiile
i=1
de volume kj de numere aleatoare uniforme 0 1 se estimeaza inte-
gralele pe intervalele [j1 , j ). Cele m intervale se mai numesc (in
limbaj statistic) straturi iar selectia formata din cele m selectii ale stra-
turilor se numeste selectie stratificata. Facand schimbari de variabile
in integralele (6.13) se deduce ca
j j !2
m
(j j1)2 1
m
V ar( m ) = 2
f (u)du f (u)du .
j=1 kj j=1 kj j1
j1
(6.14)
Notand
j
j = f (u)du, 1 j m
j1
unde
kj
1
fij = f (j1 + (j j1 )Uij ), f j = fi . (6.16 )
kj i=1 j
dz
p1 (y) = p(y, z)dz, f(y) = f (y, z)p(y, z)
p1(y)
(Z) (Z)
6.4. REZOLVAREA UNOR ECUATII OPERATORIALE 143
p(y,z)
unde p1 (y)
este densitatea conditionata, iar p1 (y) este densitate marginala.
Sa notam Y vectorul aleator care are densitatea p1 (y) si cu X =
(Y, Z) , Y = Y vectorul aleator corespunzator densitatii p(x). Atunci
putem estima integrala in doua moduri si anume
1 n
1 n
n = f (Yi , Zi ), n = f(Yi ). (6.4 )
n i=1 n i=1
V ar(n ) V ar(n ).
V ar(n ) V ar(n ) =
2
1 2 p(y, z) p(y, z)
= f (y, z) dz f (y, z) dz p(y, z)dy 0.
n
p1 (y) p1 (y)
(Y ) (Z) (Z) (Z)
Ultima inegalitate rezulta din faptul ca expresia din acolade este dis-
persia lui Y (care este pozitiva) iar p(x, y) 0 ind densitate de
repartitie.
n
si e pi = 1 pij . Lantul Markov omogen si absorbant va avea
j=1
matricea probabilitatilor de trecere
p11 p12 ... p1n p1
p21 p22 ... p2n p2
P =
. . ... . ;
(6.18 )
pn1 pn2 ... pnn pn
0 0 ... 0 1
- in continuare denim ponderile
hij
daca pij > 0
vij = pij ; (6.19)
0 altf el
- pentru un i0 , 1 i0 n generam o traiectorie a lantului Markov
aim
= pii1 pi1 i2 ...pim1 im pim vii1 vi1 i2 ...vim1 im =
m=0 i1 i2 ...im pim
= hii1 hi1 i2 ...him1 im aim =
m=0 i1 i2 ...im
x = a + Ha + H 2 a + ... (6.21)
f = g + Kf (6.17 )
g(x0 ) K(xn1 , xn )
Q0 = , Qn = Qn1 . (6.24)
(x0 ) p(xn1 , xn )
r(x , x) = 0 K(x , x) = 0
si construim densitatea de tranzitie a lantului absorbant de forma
b
p(x , x) = r(x , x)[1 q(x )], p(x , x)dx = 1 q(x ) 1
a
N
(x) = g(x), p(x , x) = K(x , x), Qn = 1, = h(xn )
n=0
2V 2V 2V V V
11 2
+ 212 + 22 2
+ 21 + 22 = F (x, y) (6.25)
x xy y x y
cu conditia
V (x, y) = (x, y), (x, y) C, (6.25 )
unde V (x, y) este o functie necunoscuta pe domeniul marginit D R2 ,
coecientii ij , i , i, j = 1, 2 sunt functii reale cunoscute denite pe D,
functia (x, y) este de asemenea cunoscuta, iar C = D este frontiera
lui D. Problema rezolvarii ecuatiei (6.25) cu conditia pe contur (6.25)
este cunoscuta sub numele de problema Dirichlet.
Etapele rezolvarii prin metoda Monte Carlo a problemei Dirichlet
formulata anterior sunt urmatoarele:
1) Domeniul D este acoperit de o retea dreptunghiulara de puncte
(sau grila), puncte in care se vor calcula valorile funtiei V. Sa notam cu
(xi , yj ) nodurile retelei denite astfel
unde (x0 , y0) sunt xate iar h este o constanta sucient de mica (pasul
grilei). Orice punct (x, y) al retelei are partu puncte vecine
V (x + h, y) + V (x h, y) 2V (x, y)
xx = 2
, (6.26 )
h
V (x + h, y + h) V (x + h, y) V (x, y + h) + V (x, y)
xy =
h2
V (x, y + h) + V (x, y h) 2V (x, y)
yy = .
h2
Folosind aceste diferente in (6.25) deducem expresia lui V (x, y) = V (P )
astfel
5
h2 F (P )
V (P ) = pi (P )V (Pi) (6.27)
i=1 D(P )
unde
1 11
p1 (P ) = (11 212 ), p2 (P ) = ,
D D
1 22
p3 (P ) = (22 212 ), p4 (P ) = (6.27 )
D D
212
p5 (P ) = , D(P ) = 211 + 222 212 + 2h(1 + 2 ).
D
2
Se observa ca daca ecuatia (6.25) este de tip eliptic atunci 11 22 12 >
0 si deci pi (P ) din (6.27) sunt probabilitati (sunt pozitive) si
5
pi (P ) = 1 ij , i i = 1, 2.
i=1
150 CAP. 6. METODA MONTE CARLO
astfel
m
h2 F (P (j))
Zi = (j) )
+ (Qi ). (6.28)
j=1 D(P
m
h2 F (P (j))
Zmi = (j) )
+ m (Qi ), (6.28 )
j=1 D(P
unde
(Qi ), daca f rontiera Ch este atinsa in m pasi
m (Qi ) =
0, in rest
Exercitii
E6.1 Sa se calculeze mai intai direct, iar apoi utilizand metoda
Monte Carlo bruta integrala
1
I= 1 x2 dx.
0
6.5. REZOLVAREA ECUATIILOR CU DERIVATE PARTIALE153
de unde
1 1
V ar(I a,n ) = [ {V ar( 1 U 2 ) + V ar 1 (1 U 2 ))+
n 4
+2Cov(( 1 U 2 ), 1 (1 U 2 )}] =
/
1
= V ar( 1 U + Cov( 1 U , 1 (1 U )) =
2 2 2
2n
1 2 2 1 2
= + E[ (U + 1)U(U 1)(U 2) ],
2n 3 16 2n 16
Se poate arata prin calcule relativ simple ca media expresiei in U din
paranteza dreapta precedenta este EU 0.5806 de unde rezulta ca
0.0052
V ar(I a,n ) .
n
In mod direct se poate arata ca
1 1 2 2 1 2 2 0.498
V ar(I n ) = (1 x )dx =
n 0 16 n 3 16 n
x y2 x
e 2 1
L(x) = dx = (y)dy.
2 2
F (Y ) = U, U unif orm 0 1.
157
158 CAP. 7. CATEVA MODELE DE SIMULARE
Exp()/Exp()/1 : (; F IF O) (7.1)
Exp()/Exp()/N(paralele); (; F IF O) (7.2)
Zk = k pk + k+1 pk+1 .
Zn1 + Zn = 0
adica
Zn = Zn1 ,
iar deoarece din (7.5) avem Z0 = 0, avem si Zn = 0, de unde
n+1
pn+1 = pn , n 0.
n
Prin recurenta se deduce ca
"
pn = p0 . (7.8)
=0 +1
T W T = T T ID = 0; W T = T ID = 0; ICOUNT = 0 (7.11)
START
? (1)
Initializari si citirea
parametrilor de intrare
- (2)
?
Genereaza AT
(3)
?
AT = AT - WT
? (4)
Genereaza ST
ICOUNT ICOUNT + 1
?
DA ! !!aaa (5) NU
!
aa ST > AT!a !
aa?!!
(6) (7)
? ?
TID = 0 VT = 0
WT = ST - AT TID = AT - ST
TWT = TWT+WT TTID = TTID+TID
? ?
!? aa (8)
DA !!! aa
!
aaICOUNT < NS!a !
aa ! !
a! ?
(9)
?NU
Calculeaza parametrii
de iesire si livreaza
rezultatele utile
?
STOP
TWT T T ID
AW T = , AT ID = . (7.12)
NS NS
7.2. SIMULAREA UNUI SISTEM CU O STATIE 165
T W T = T T ID = T AT = T ST = 0, CLOCK = 0, I = 0. (7.11 )
START
? (1)
Initializari si citirea
parametrilor de intrare
? (2)
Genereaza AT
? (3)
TAT=TAT+AT
? (4)
CLOCK=CLOCK+C
-
! !? aa (5)
DA !! aa NU
aaTATTST ! ?
? (6) aa?!!! Q (10)
DA Q
QNU
I=I+1 QQI =? 0
WT=TSTTAT ? (11) Q
(12)
?
TWT=TWT+WT TID=TAT-TST
I= I1
! !?aa (7) TTID=TTID+TID
! aa TST=TAT
DA!! a
aa
CLOCK > TAT!! ? ?
aa !!
a!? ?
!aa (13)
?NU (8) ! !! aa
!
!
a
a a
a
!
!!
CLOCK>TST-TID
CLOCK=CLOCK+C DA aa ! NU
aa!!? ? (14)
? ?
(9) CLOCK=CLOCK+C
? ? ?
Genereaza AT ? (15)
TAT = TAT + AT Genereaza ST
TST = TST + ST
? ?
! !? aa (16)
DA !! aa
!
aaCLOCK < NT!a !
aa !
a?!!
(17)
?NU
Calculeaza parametrii de
iesire sau alte statistici si
livreaza rezultatele utile
?
STOP
n t + o(t) = t + o(t),
rezulta ca
n = , n 0. (7.15 )
168 CAP. 7. CATEVA MODELE DE SIMULARE
n = . (7.15 )
pn = n p0 , = , (7.16)
adica
pn = n (1 ).
Conform relatiei cunoscute dintre repartitia exponentiala negativa si
repartitia Poisson, rezulta ca este numarul mediu de sosiri pe uni-
tatea de timp, iar este numarul mediu de clienti serviti pe unitatea
de timp. De aceea reprezinta intensitatea de trafic a clientilor prin
sistem.Pentru a avea sens p0 trebuie ca 0 < < 1. (Deci un sistem de
asteptare cu > nu are sens!). Pentru validarea modelelor de simu-
lare cu o statie putem deci folosi modelul matematic anterior. Formulele
(7.9),(7.9),(7.10),(7.10) devin respectiv
E[W L] = (n 1)n (1 ) =
n=2
= 2 (1 ) (n 1)n2 = 2 (1 ) nn1 =
n=2 n=1
2
= ,
1
1 2
E[W T ] = E[ST ]E[W L] = E[W L] = . (7.17)
(1 )
1
E[NID] = (1 n)pn = p0 = 1 ,
n=0
7.2. SIMULAREA UNUI SISTEM CU O STATIE 169
1
E[T ID] = E[AT ]E[NID] = . (7.18)
Validarea modelelor de simulare se realizeaza cand
sau daca
|E(W T ) AW T | (7.19 )
cu > 0 dat, sucient te mic ( = eroare). Desigur in practica se poate
folosi pentru validare numai unul din parametri E[W T ] sau E[T ID].
Daca (7.19) are loc, atunci inseamna ca in loc de repartitii exponentiale
se pot folosi orice repartitii pentru AT si ST.
O caracteristica importanta a unui sistem de asteptare este factorul
de eficienta al sistemului care se deneste astfel
E(W ) 1
Ie = , E(W ) = E[N(t)] (7.20)
E(ST )
care spune de fapt in ce masura timpul petrecut de client in sistem a
fost folositor pentru el.(Clientul este interesat ca Ie sa e cat mai mic!).
Factorul de ecienta se estimeaza cu ajutorul simularii astfel
T W T + SST
Ie = (7.20 )
SST
si el poate utilizat si pentru validare.
Pentru un model de asteptare cu o statie, cu sosiri exponentiale si
servicii oarecare ( adica modelul Exp()/B/1 : (; F IF O), E(B) =
E(ST ) = 1 ,) s-a aratat ca
Ie = (1 + Cs2 ) (7.20 )
2(1 )
unde Cs este coecientul de variabilitate al timpului de serviciu denit
astfel
V ar(ST )
Cs = .
E(ST )
Formula (7.20), cunoscuta sub numele de Formula lui Pollaczek, spune
in fapt ca factorul de ecienta al sistemului de asteptare depinde numai
de = / si de Cs .
170 CAP. 7. CATEVA MODELE DE SIMULARE
././N : (, F IF O)
Exp()/Exp()/N : (; F IF O) (7.22)
n = , n 0. (7.23)
START
(1)
?
Citeste parametrii de intrare
si xeaza conditiile initiale
? (2)
DO J=2,N J
J ?
(3)
Genereaza AT
TAT=TAT+AT
? -?
(4)
ICOUNT=N
? (5)
DO J=1,N J
J ?
(6)
Genereaza ST(J)
TT(J)=TTID(J)=ST(J)
SST(J)=SST(J)+ST(J)
- A
? (7)
TTMIN=MIN(TT(J))
1JN
TTMIN=TT(L)
? (8)
ICOUNT=ICOUNT+1
?
!!!aaa (9)
> NS
!
aaICOUNT ?!a !
aa!! ? (16)
NS Calculeaza statisticile
?
Genereaza AT (10) si livreaza
TAT = TAT + AT rezultatele utile
DIF = TAT - TTMIN ?
!? aa (11)
! !! a STOP
aa DIF ? !a ! +
(12) aa!! (13)
? ?
WT=-DIF =0 TID = DIF
SWT(L)=SWTL(L)+WT TTID(L)=TTID(L)+TID
? ? ?
? (14)
Genereaza ST(L)
SST(L)=SST(L)+ST(L)
? (15)
TT(L)= TTMIN+ST(L)
?
Am
1
!1
N
n N N
p0 = + . (7.25 )
n=0 n! N! N
Notand
=
N
se deduce prin calcule ca
!
Nn d
n1 N N +1 N +1
E(W L) = p0 =
N! d n=N N! 1
N N N +1 N
= = . (7.26)
N! (1 )2 (N 1)(N )2
Marimea se numeste intensitatea de trafic a sistemului de asteptare.
Timpul mediu de asteptare este
N
E(W T ) = . (7.26 )
N(N 1)!(N )
174 CAP. 7. CATEVA MODELE DE SIMULARE
SW T (L)
AW T = L
, (7.26 )
NS
T T ID(L)
AT ID = L
. (7.27 )
NS
Ca si in cazul modelului cu o statie, conditiile de validare pentru acest
model sunt
KA
I0 AK A
A ]
J A
A J A
A J A
A J A
A q1 J q2 A
A J A
A J A
A J A
A J A
A J A
A J A - t
0 t1 T1 t2 T2
Fig. 7.4. Variatia stocului I(t)
I(t)
6
S
I
@
@ o
S
S B
@ S B
@ S B
@ S B
@ S B
@ S B
@ S B
@ S B
B
P @ S
@L1 S L
@ S 2 -
0 S t
T S t
2T
t S
S
Fig. 7.5. Mecanismul reaprovizionarii
In diverse modele de stocare se pot da costurile h, s si/sau d, se da
rata cererii r si timpul de avans L si se cer q, P optime. O multime de
elemente ce denesc un mecanism de aprovizionare se spune ca deter-
mina o politica de reaprovizionare. Cand r, L nu sunt aleatoare modelul
se numeste determinist; in cazul cand cel putin una din aceste variabile
este aleatoare modelul este stochastic. Daca timpul nu intervine in mod
explicit in model, spunem ca avem de-a face cu un model static, altfel,
modelul este dinamic.
In concluzie, modelele de teoria stocurilor isi propun sa determine
o politica de reaprovizionare optima.
CT = Ch,T + s (7.30)
CT hq 2 1 s hq sr
C(q) = = + = + = min. (7.31)
T 2r T T 2 q
Impunand conditia de mninim lui C(q) obtinem politica optima de
reaprovizionare (q0 , T0 ) data de
& &
2rs q0 2s
q0 = , T0 = = (7.32)
h r rh
iar costul optim (i.e. minim) este
C0 = 2rsh. (7.32 )
I
@
@ S
@ S
@ S
S @ S
@ S
q S
@
@ S
t S
@ - t
@ S
0
T S 2T
t @
@ SS
Genereaza R
CLOCK = CLOCK + 1
!?aa (3)
Nu !!! aa
aCLOCKTT
aa !!
? (13) a!
? !
TS = CH + CD + CS !?aDa
!!! aa (4) Da
a
? (14) aaT=CLOCK !!
aa?!! ? (5)
Scrie rezultatele VI = VI + Q
Nu
simularii ?
VI = VI - R (6)
? ?
! !!aa(7) aa < 0 6
STOP !
a VI !
aa !
a?!! ? (8)
CD = CD - VID
VI = 0
?
CH = CH + VI H (9)
? (7) ?
0
! !!aaa <0 !!aaa(10)
!
a VI a ! Da -
aa !! ! P < VI !
aaa !
a
a ?!! ? !
(9) ? ? (8) a!
?Nu
CH=CH+VIH CD=CD-VID
! !!aaa(11) Nu -
!T CLOCK
aa a
!
? ? aa!!!
? Da (12)
?
Fig. 7.8 CS = CS + S
-
Genereaza L
T = CLOCK + L
T C = CS = CD = CH = 0, V I = BI,
T = CLOCK = 0.
(7.36)
Marimea comenzii Q se determina pe parcursul simularii cu formula
& &
2RS H +D
Q= , R ; N(m, ), m >> 3 (7.37)
H D
R(L) ml P lm
P rob(R(L) > P ) = P rob( > ) = ,
l l
si deoarece
R(L) lm
Z= ; N(0, 1)
l
rezulta
z
P lm t2
= z , unde e 2 dt = 1 .
l
M
Ri
i=1 SUMR
AR = = (7.39)
M M
N
Lj
j=1 SUML
AL = = (7.40)
N N
)
* 2
*
M
M
&
* Ri2 Ri 2
* SSUMR SUMR
* i=1 i=1
SR = * = . (7.41)
+ M M M M
START
(1)
?
Citeste parametrii de intrare
si xeaza conditiile initiale
?
(2)
DO I=1,M J Am
J
Genereaza L ? (13)
!a
!! aa < 0
RR(I) = R
SUMR=SUMR+R !
aa VI !a !
SUMR=SUMR+RR aa!! ? (14)
-
? VI = 0
(3) 0
DO J=1,N J CD = CD-VID
J
?
?
Genereaza L
CH = CH+VIH (15)
LL(J) = L
?
SUML = SUML+L
m Da !!!aaa(16)
- Bm B !aaP < VI !! a
? aa?!!
Genereaza R (4)
?Nu
SSUMR=SSUMR+R-RR(1)
m Da !!!aaa(17)
SSUMR=SSUMR+RR- B ! aaT>CLOCK!a !
-RR(1)RR(1) aa?!!
?
(5)
DO I=1,M J ?Nu (18)
J
CS = CS + S
RR(I) = RR(I+1) (19)
?
- Genereaza L
? (6)
SUML=SUML+L-LL(1)
RR(M)=R
(7) ? (20)
?
CLOCK=CLOCK+1
DO J=1,N J
Calculeaza AR,AL,SR J
P = AL.AR + K AL.SR. (7.43)
Schema logica a acestui model de simulare este prezentata in Fig.
7. 9.
Conditiile initiale sunt (7.36) precum si cele ce rezulta din consi-
derarea noilor variabile adica
Exercitii.
E 7.1. Precizati cateva caracteristici ale modelului de asteptare
n = , n 0, n = , 1 n M + 1.
7.4. MODELE DE SIMULARE PENTRU STOCURI 187
(1 ) (1 )
pn = = , K = 1 M +1 .
1 M +1 K
De aici se deduce
nn (1 ) (1 + (M + 1)( M ) M +1 )
E[N(t)] = =
n=0 1
N +1 (1 + )(1 + M +1 )
M
(n 1)n (1 ) 2 [(M 1)m + 1 MM 1 ]
E[W L] = = .
n=1 1 M +1 (1 M +1 )(1 + )
E[W L] 1
E[W T ] = , E[NID] = p0 , E[T ID] = .
(1 M +1 )
Exp()/Exp()/N : (M, F IF O)
conform prioritatii celei mai mari ( adica 1), daca Q1 = sau pri-
oritatii mai mici daca Q1 = . Se pot calcula timpii de asteptare in
functie de prioritati.
E 7.4. La fel ca in exercitiul precedent, modicati schema logica
din Fig. 7.3 (a modelului 7.3) presupunand ca sosirile provin dintr-o
populatie cu doua prioritati.
Indicatie. Se vor folosi ideile din exercitiul precedent: timpul de in-
tersosire are o repatitie data de o amestecare discreta de doua repartitii.
E 7.5. Ce modicari ar trebui facute in modelul 7.3 daca duratele
de serviciu ale statiilor au repartitii diferite.
Indicatie. Se va folosi un vector ST (I), 1 I N iar in blocurile
unde se genereaza ST se va inlocui aceasta instructiune cu GENEREAZA
ST (I).
E 7.6. Ce precautii trebuie sa se ia in modelele 7.3 daca cererea R
este discreta P oisson() si L este Binom(n, p)?
Indicatie. Toate variabilele din model vor discrete, inclusiv CLOCK.
Nivelul de reaprovizionare se va calcula tinand seama ca R(l) ; P oisson(l).
E 7.7. Sa se determine nivelul de reaprovizionare P cand rata
cererii r are repartitia Exp().
Indicatie. Se foloseste conditia P rob(R(L) > P ) = , risc. Deci
P este solutia ecuatiei
l P l1 x
1 = x e dx
(l) 0
189
190 BIBLIOGRAPHY