Documente Academic
Documente Profesional
Documente Cultură
Cap 1
Cap 1
Modele de simulare
Autor Prof. Dr. Ion Văduva
BUCUREŞTI 2004
1
Prefaţă
Toate capitolele conţin şi câteva exerţiţii menite să antreneze citi-
torul in inţelegerea mai aprofundată a materialului tratat in lucrare.
Pentru fiecare exerciţiu se dau indicaţii de rezolvare sau se prezintă
chiar soluţia.
Când este cazul, prezentarea noţiunilor şi rezultatelor este insoţită
de figuri sau grafice şi este presărată cu exemple menite să uşureze
inţelegerea unor tehnici sau metode teoretice. Pentru sintetizarea unor
rezultate sunt alcătuite uneori tabele.
Bibliografia cuprinde de regulă cărţi sau lucrări ce pot fi găsite de
către studenţi sau alţi cititori in biblioteci.
Considerăm că această lucrare poate fi utilă ca documentaţie de
iniţiere şi lucrătorilor din informatică ce abordează teme de proiectare
asistată de calculator sau de modelare.
Prin conţinutul său, cartea de faţă constituie numai un material
de iniţiere. Elaborarea modelelor de simulare pentru sistemele reale
este un demers dificil care implică colaborarea unor echipe specializate.
Totuşi, un curs de iniţiere ca cel de faţă poate contribui la acumularea
unei experienţe minimale pentru inceput.
Autorul
Bucureşti, iunie 2004.
3
Cuprins
Cap.1. Generalităţi despre simulare . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
(• Model matematic, p.8; • Clasificări ale modelelor
matematice, p.10)
1.2 Construcţia unui model de simulare. . . . . . . . . . . . . . . . . . . . . .11
1.2.1 Structura unui model de simulare . . . . . . . . . . . . . . . . . . . . . 12
(• Ceasul simulării, p.12; • Agenda simulării, p.13)
1.2.2 Concepte de bază in modelarea sistemelor . . . . . . . . . . . . 19
(• Nivele de reprezentare a sistemelor, p.20;
• Reprezentarea la nivel de comportare, p.20;
• Reprezentarea la nivel de structură de stare, p.20;
• Reprezentarea modulară, p.21)
1.2.3 Modelul sistemului cu evenimente externe discrete . . . . 22
1.2.4 Metodologia de realizare a experimentelor de simulare
(Metodologia simulării) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23;
(• Utilitatea simulării, p.26)
1.3. Generalităţi despre limbajul GPSS . . . . . . . . . . . . . . . . . . . . . . 27
(• Entităţile limbajului GPSS, p.27;
• Structura instrucţiunii GPSS, p.29)
1.3.1 Exemple de programe GPSS . . . . . . . . . . . . . . . . . . . . . . . . . . 33
(• E1. Model de simulare pentru un sistem de aşteptare
cu o staţie, p.33; • E2. Model de simulare pentru un sistem
de aşteptare cu staţii paralele, p.33; • E3. Model cu staţii
paralele şi preferinţe, p.34; • E4. Un model cpmplex, p.35)
Bibliografie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .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 operaţionale (pentru a desemna aplicaţiile legate de dirijarea
operaţiilor militare pe arii geografice mari ale globului pamnantesc!)
precum şi metoda Monte-Carlo (pentru a desemna aplicaţii ale calcu-
latoarelor bazate pe utilizarea numerelor aleatoare). In accepţiunea
actuala a informaticii, simularea cuprinde o serie de aplicaţii care real-
izează imitarea comportamentului unor parţi ale lumii reale (simularea
stochastica), luand in considerare si comportamentul aleator al aces-
teia.Din domenul simularii face parte şi metoda Monte Carlo.
Lucrarea de faţa trateaza simularaea sub acest aspect general, pornind
de la următarea definiţie mai putin formalizată [10].
Definiţia 1.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-alungul unor perioade mari de timp.
7
8 CAP. 1. GENERALITĂŢI DESPRE SIMULARE
Fi (V I, P I, V E, P E) = 0
(V, P )E = fj (VI , PI ).
x x x x
E1 E2 E3 E4 T
-
0
T1 T2 T3 T4
(a)
x h x h h x h x-
E1 E2 E3 E4 T
0
c - c - c -
c 2c 3c
(b)
Fig. 1.1. Variaţia ceasului.
a) Cazul ceasului cu creştere variabilǎ. Ti = valorile ceasului.
b) Cazul ceasului cu creştere constantǎ c.
A rămas oarecum ne precizat ce se inţelege prin prelucrarea unui
eveniment.Acest fapt se inţelege uşor dacă precizăm şi conceptul de
agendă a simulării.
• Agenda simulării. Agenda se compune din elementele memo-
rate de modelul de simulare. Variabilele modelului iau diverse valori pe
parcursul simulării; de aici rezulta că pe parcursul simulării apar multe
evenimente. Memorarea in totalitate a acestor evenimente, impreună
cu caracteristicile lor, nu este nici recomandată dar nici necesară daca
simularea se realizează pe perioade mari de timp. De aceea, se memo-
rează (in agendă) numai ceea ce este strict necesar. Evenimentele sunt
de diverse tipuri; unele variabile descriu şi stări 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 două părţi: agenda evenimentelor curente AEC şi
agenda evenimentelor viitoare.
Deci agenda A = AEC ⊕ AEV , unde:
AEC = agenda evenimentelor curente (care au timpul de apariţie
egal cu valoarea ceasului); iar
AEV = agenda evenimentelor viitoare (care au timpul de apariţie
ulterior valorii curente a ceasului).
Algoritmul simularii prelucrează deci numai evenimentele din AEC;
prelucrarea unui eveniment inseamnă fie determinarea apariţiei unui
nou eveniment (ce se memorează in AEV ) sau modificarea unei stări,
14 CAP. 1. GENERALITĂŢI DESPRE SIMULARE
A = A ⊕ AEgen AEelim
unde Agen sunt evenimentele generate pe parcursul unui ciclu, iar Aelim
sunt evenimentele eliminate cu ocazia prelucrării AEC. (Semnele ⊕ şi
se autexplică).
Structura generală a unui MS este descrisă in schema logică
din Figura 1.2, pentru a cărei inţelegere este necesară şi urmărirea
schemelor ajutătoare din Fig. 1.3, a)-g). Descrierea structurii MS este
prezentată structurat.
In Figura 1.3 a) se prezintă schema logică generală a rutinei prin-
cipale; MS este conceput ca un joc constituit din mutări. Se urmăreşte
ca jocul să conducă la o performanţă a sistemului prin efectuarea a
mai multe mutări, fiecare mutare fiind aleasă astfel incât să conducă
in final la satisfacerea jocului. In blocul central al Fig.1.3 a) (rutina
principală!) se execută ciclul de bază al simulării (interacţiunea ceas-
agendă!).Rutina de comutaţie alege evenimentul ce urmează a fi pre-
lucrat din AEC si transferă controlul la rutina eveniment care-l va
prelucra.
Rutina eveniment prelucrează evenimente după 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 RBN
@
RUTINA PRINCIPALA
MUTARE & %
COMUTATIE
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 NB
?
RUTINA
TERMINATE
EVENIMENT
SFARSIT
' $ ' $
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
@ ?
& % SCRIE EFECTUL
COMUTATIE
@
'? $
Da
ACESTUI EVENIMENT
TRANSFER ' ? $
LA RUTINA TRANSFER
REZUMAT LA RUTINA
& %
& %
MUTARE PRINCIPALA
a) b)
' $
?
DETERMINA
REZUMATELE
INTRARE
' $
JOCULUI
DIN RUTINA
?
& %
PRINCIPALA TRANSFER
@ Nu LA RUTINA DE
ESTE @-
? @ ULTIMUL JOC ? INITIALIZARE
& %
REACTUALIZEAZA @ A JOCULUI
?
STATISTICILE PENTRU Da
REZUMATUL JOCULUI
SFARSIT
?
CALCULEAZA
d)
REZUMATELE
' $
MUTARII
? TRANSFER
@ LA RUTINA DE
ESTE ULTIMA @ Nu
-
@ INITIALIZARE
MUTARE ?
& %
@ A MUTARII
'? $
Da
TRANSFER
LA RUTINA
REZUMATUL
& %
JOCULUI
c)
& %
PRINCIPALA
?
DETERMINA TIPUL
EVENIMENTULUI
CURENT
'? $
TRANSFER
LA RUTINA
EVENIMENT
CORESPUN-
& %
ZATOARE
' $ e)
INTRARE DIN
RUTINA DE
INITIALIZARE
& %
A JOCULUI INCEPUT
?
?
FOLOSIND INFORMATIA
JOCULUI INITIALIZEAZA INTRARE
INFORMATIA INFORMATIA
NECESARA MUTARII NECESARA JOCULUI
? ?
INITIALIZEAZA INITIALIZEAZA
REZUMATUL MUTARII REZUMATUL JOCULUI
'? $ '? $
TRANSFER TRANSFER
LA LA RUTINA DE
PROGRAMUL INITIALIZARE
& % & %
PRINCIPAL A MUTARII
f) g)
Fig.1.3(continuare) Schemele logice ale rutinelor programului de
simulare.
e) Rutina de comutaţie;
f) Rutina de iniţializare a mutǎrii;
g) Rutina de iniţializare a jocului.
1.2. CONSTRUCŢIA UNUI MODEL DE SIMULARE 19
S = (T, X, Ω, Σ, Y, δ, λ)
unde:
T = timpul de bază al sistemului (ceasul sistemului);
X = mulţimea intrărilor;
Ω = mulţimea segmentelor de intrare (forma intrărilor!)
segment= ω : (t0 , t1 ) 7→ X,=ω(t0 ,t1 ) = grafic= {(t, ω(t)), t0 ≤ t ≤
t1 }.
Se foloseste de regulă notaţia ω(t,t1 ) = {(τ, ω(τ )), t < τ ≤ t1 } şi
notaţiile ω = ω(t0 ,t1 ) , ωt) = ω(t0 ,t) , ω(t = ω(t,t1 ) ; ω = ωt) ω(t ;
Σ = mulţimea stărilor interne ale sistemului = memoria sis-
temului;
Conceptul de stare este esenţial in modelarea sistemelor; el descrie
structura internă (intimă!) a sistemului;
δ = funcţia de tranziţie a stărilor definită ca
δ : Σ × Ω 7→ Σ.
Ea satisface relaţia
Nota: din definiţie rezultă că pentru o stare iniţială σ, (la momentul
t0 ) când are loc intrarea de forma ω se realizează o traiectorie unică a
stărilor. Cu alte cuvinte, traiectoria stărilor satisface relaţiile:
OT RAJσ,ω : (t0 , t1 ) 7→ Y.
Acest nivel de reprezentare este cel mai vag. El descrie numai relaţiile
de intrare/ieşire ce se pot observa dinafara sistemului (care deci se
comportă 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 7→ Σ;
Entităţi de echipament:
3) Staţii de serviciu sau facilităţi; (ele corespund subsistemelor
cu o componentă care tratează de regulă o singura tranzacţie!);
4) Multistaţii de serviciu sau depozite; acestea tratează de regulă
mai multe tranzacţii (de ex. liftul, autobuzul, pot transporta mai multi
clienti considerati ca tranzactii, etc!);
5) Comutatorii logici sunt variabile logice care permit utiliza-
torului să realizeze ramificarea după dorinţă a fluxului de execuţie in
programul de simulare.
Entităţi de calcul ce permit efectuarea (limitat!) a unor calcule:
6) Variabile aritmetice; permit evaluarea unor expresii aritme-
tice, iar rezultatul este memorat de o variabilă aritmetică;
7) Variabile booleene; permit evaluarea unor expresii booleene,
iar rezultatul este memorat de o variabilă booleeană;
8) Funcţii descrise prin tabele sau prin segmente de dreaptă (liniare
pe porţiuni);
9) Funcţii analitice descrise prin expresii mai complicate; (ele
există numai in SIMUB şi au rolul de a facilita simularea diverselor
variabile aleatoare prin metoda inversa);
Entităţile statistice, permit colectarea unor statistici sau estima-
ţii privind VE sau PE; printre acestea se remarcă :
10) Cozile care sunt entităti statistice ce memorează tranzacţiile
intârziate in sistem;
11) Tabele de frecvenţe care descriu histograme ale VE;
12) Tabele de frecventa bidimensionale, sau tabele de contin-
genţă; (acestea sunt disponibile numai in SIMUB);
Entităţi de referinţă care memorează anumite informaţii pe care
le doreşte utilizatorul şi anume:
13)Cuvinte de salvare care memorează valori ce corespund câte
unui cuvânt de memorie al calculatorului;
14) Matrice de cuvinte de salvare care memorează matrici;
Entităţi de tip lanţ,care sunt de două tipuri:
15) Lanţuri ale utilizatorilor in care se pot depune sau scoate
tranzaţii după dorinţa utilizatorului; (Există şi lanţuri ale sistemului,
manipulate intern de către GPSS, care nu pot fi accesate de utilizator).
1.3. GENERALITĂŢI 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= b−a
y=1
- x
- x
0 b 0 a b
c) d)
V −a
U=
b−a
este uniformă 0 − 1.
Să vedem acum dece sunt necesare numerele aleatoare in simulare. Fiind
dată o variabilă aleatoare oarecare X, pentru care se cunoaşte funcţia de
repartiţie F, este adevărată următoarea propoziţie [2, 3, 10] care evidenţiază
importanţa repartiţiei uniforme 0−1, adică importanţa numerelor aleatoare.
Teorema 2. 2 Variabila aleatoare F (X) este uniformă 0−1 iar dacă notăm
cu F −1 inversa funcţiei F atunci F −1 (U ) are funcţia de repartiţie F (sau
cu alte cuvinte F −1 (U ) = X).
unde s este cel mai mic număr natural care satisface relaţia
Exerciţii.
k
şi se observă că f (v) =
Q
fi (vi ).
i=1
50 CAP. 2. NUMERE ALEATOARE
Simularea variabilelor
neuniforme
Teorema 2.2 din capitolul precedent ne spune că cel puţin teoretic, putem
simula orice variabilă aleatoare X dacă cunoaştem funcţia sa de repartiţie
F şi putem calcula uşor şi fără erori funcţia inversă F −1 . Pornind de la
acest fapt, precum şi de la alte considerente ce vor fi menţionate la locul
potrivit, in literatura de specialitate s-au construit diverse metode, atât
generale cât şi particulare, pentru simularea diverselor tipuri de repartiţii
de probabilitate ne uniforme. Schema generală a acestor metode este de
tipul următor: se presupun cunoscute metode de simularea unor variabile
aleatoare simple S1 , S2 , ..., Sn şi se caută un algoritm (adică metoda!) care
să transforme aceste variabile in variabila X care trebuie generată. (In
particular de exemplu, variabila simplă U se transformă in variabila X =
F −1 (U )).
In cele ce urmează vom prezenta mai intâi câteva metode generale de sim-
ularea variabilelor aleatoare neuniforme. Toate aceste metode presupun sim-
ularea unor variabile aleatoare simple (cele mai simple sunt cele uniforme),
iar prin transformarea/combinarea acestora se obţin variabilele dorite.
53
54 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
i
P
Intrare tabela T [1..m], T [i] := pj ; Intrare a[1..m];
j=1
Generează U uniform 0 − 1; (cu U := random;);
i := 1; while U > F [i] do i := i + 1;
Ia X := a[i].
dacă
m
X
F (x) = pi Fi (x). (3.4)
i=1
Dacă notăm cu X variabila aleatoare care are funcţia de repartiţie F (x) şi cu
Xi variabila aleatoare care are funcţia de repartiţie Fi (x) atunci amestecarea
discretă poate fi interpretată astfel
X = Xi cu probabilitatea pi
deci
Zx f (v)/(αh(v)) Zx Zx
f (v)
Z
P (A|B) = α du h(v)dv = α h(v) = f (v)dv.
αh(v)
−∞ 0 −∞ −∞
eζ(1−ν) ν
α= , ζ = ν 1−ν . (3.11)
Γ(ν + 1)
Deci in final algoritmul pentru simularea lui X este
Algoritmul GAMRESM1 [10] (algoritm de respingere pentru vari-
abila 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 ; W eib(0, 1, ν); }
Generează alt U uniform 0 − 1;
3.3. METODA RESPINGERII 61
until U ≤ aeZ−Y ;
Ia X := Y.
Primul pas al algoritmului este un pas pregătitor; in cazul când se simulează
o selecţie de volum n > 1 asupra lui X atunci acest pas se execută o singură
dată şi numai ceilalţi paşi se execută de n ori.
O altă metodă de respingere se poate obţine din teorema următoare
[2,10].
P (A ∩ B)
A = {Y < x}, B = {Z ≤ φ(Y )}, P (A|B) = , (3.120 )
P (B)
ar trebui să demonstrăm că P (A|B) = F (x). Să observăm mai intâi că
constanta c din (3.12) este o constantă de normare adică
+∞ −1
Z
c= Q(φ(x))dR(x) . (3.1200 )
−∞
In continuare avem
Zx φ(t)
Z Zx
P (A|B) = cP (A∩B) = c dQ(v) dR(t) = c Q(φ(y))dR(y) = F (x).
−∞ 0 −∞
62 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
[G(x)]k−1 [G(x)]k
P (x ≥ Z1 ≥ Z2 ≥ ... ≥ Zk−1 < Zk ) = − . (3.15)
(k − 1)! k!
(2) Dacă x este fixat şi K este indicele aleator la care se ”rupe” subşirul
descendent (ca la pct (1)), atunci
[G(x)]k−1 [G(x)]k
P (A \ B) = P (A) − P (B) = −
(k − 1)! k!
64 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
P (K = nr.impar) = P (K = 1) + P (K = 3) + ... =
Se observă că
∞ +∞
Z " #
X (G(x))k−1 (G(x))k
E(K + 1) = (k + 1) − dG0 (x) =
k=1
(k − 1)! k!
−∞
∞ +∞ ∞ +∞
(G(x))k (G(x))k
X Z X Z
= (k + 2) dG0 (x) − (k + 1) dG0 (x) =
k=0
k! k=1
k!
−∞ −∞
+∞ ∞ +∞
(G(x))k
Z X Z
=1+ dG0 (x) = 1 + eG(x) dG0 (x).
k=0
k!
−∞ −∞
In concluzie
+∞
1
Z
E(N ∗ ) = 1+ eG(x) dG0 (x) . (3.17)
pa
−∞
0, daca x < 0,
1−e−x
F (x) = 1−e−1 , daca 0 ≤ x ≤ 1, (3.18)
1, daca x > 1
Z1
∗ 1 e e2
E(N ) = (1 + ex dx) = = . (3.170 )
1 − e−1 1−e −1 e−1
0
o, daca x < 0
Qk
5 Repartiţia f (x) = 1 X = −ln{ Ui }
Γ(k) , daca x ≥ 0
i=1
+
Erlang(k) k∈N
Tabelul 3.2. Repartiţii simulate prin transformări de uniforme
Variabilele uniforme Ui care intervin in ultima coloană a tabelului sunt
presupuse independente. Să vedem cum se justifică metodele prezentate
sintetic in tabel.
1. Aici se foloseşte teorema limită centrală intr-o forma simplificată şi
anume: dacă {Vn }n∈N este un şir de variabile aleatoare independente şi
identic distribuite care au momente de primele două ordine şi dacă notăm
n
Sn =
P
Vi , atunci
i=1
!
Sn − E(Sn ) 1
Z x t2
lim P p <x =√ e− 2 dt. (3.20)
n→∞ V ar(Sn ) 2π −∞
In membrul al doilea este funcţia de repartiţie normală N (0, 1). Dacă con-
siderăm ca variabile Vi variabilele uniforme Ui avem
1 1
E(Ui ) = , V ar(Ui ) = .
2 12
Viteza de convergenţă in (3.20) depinde de viteza de generare a variabilelor
Vi . In cazul când Vi = Ui membrul stâng din (3.20) se apropie suficient
de mult de funcţia de repartiţie normală N (0, 1) din membrul drept dacă
68 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
Dacă notăm Z ; N (0, 1) atunci se poate arăta cu uşurinţă că intre Y şi Z
au loc relaţiile
Y −m
Y = m + Zσ, Z = (3.2100 )
σ
de unde rezultă că simularea lui Y se reduce la simularea lui Z, care la rândul
său se simulează folosind teorema limită centrală ca in tabelă.
2. Repartiţia modul se obţine pe o cale analogă celei folosite in exerciţiul
E2.6, Cap.2.
3. Justificarea este următoarea
= 1 − (1 − x)n , ∀x ∈ [0, 1]
şi derivând ultima expresie se obţine densitatea de repartiţie din tabel.
5. Repartiţia Erlang(k), k ∈ N + , este un caz particular al repartiţiei
Gamma(α, λ, ν), α, λ, ν ∈ R+ care are densitatea de repartiţie [3, 6, 7, 10]
(
0, daca x < α,
f (x) = λν ν−1 e−λ(x−α) , daca x ≥ α. (3.22)
Γ(ν) (x − α)
Să notăm cu Y variabila Gamma(α, λ, ν). Relaţia dintre Y şi variabila gama
standard X ; Gamma(0, 1, ν) este
X
Y =α+ , X = (Y − α)λ. (3.220 )
λ
3.4. ALTE METODE 69
Demonstraţie [10]. Vom folosi tehnica funcţiei caracteristice şi vom arăta
că funcţia caracteristică a variabilei X dată de (3.23) este aceeaşi cu funcţia
caracteristică a variabilei Erlang(k) de unde se deduce că cele două repartiţii
coincid. Pentru variabila Erlang(k) funcţia caracteristică este
Z∞
1
ϕ(t) = E[e itX
]= eitx xk−1 e−x dx =
(k − 1)!
0
1
Z ∞ 1 Γ(k) 1
= xk−1 e−x(1−it) dx == k
= .
(k − 1)! 0 (k − 1)! (1 − it) (1 − it)k
Pe de-altă parte funcţia caracteristică a variabilei X din (3.23) este
P k
it Zj
ϕZj (t) = (ϕZ (t))k .
Y
ϕX (t) = e[e j ]=
j=1
Dar
Z∞
1
ϕZ (t) = E[e itZ
]= e−(1−it)x dx =
1 − it
0
deci k
1
ϕX (t) = ,
1 − it
adică aceeaşi cu ϕ(t), ceea ce demonstrează teorema.
Folosind aceeaşi tehnică de demonstraţie se poate demonstra şi următoarea
teoremă [10].
(Z = X + Y ) ; Gamma(0, 1, ν + µ).
70 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
Când o familie de variabile aleatoare are proprietatea că suma a două vari-
abile independente este tot o variabilă din aceeaşi familie spunem că aceasta
este o familie stabilă de variabile aleatoare. Teorema 3.6 spune deci că fa-
milia variabilelor aleatoare gamma standard este stabilă.
Tot cu ajutorul funcţiei caracteristice se poate demonstra teorema
f
χ2 = Zi2
X
(3.24)
i=1
Se arată că variabila χ2f centrată este o variabilă de tip Gamma(0, 21 , f2 ). For-
mula (3.24) permite simularea directă, pornind de la definiţie a variabilelor
χ2f , χ2f,δ .
3.4. ALTE METODE 71
1 (x−µ)2
X ; f (x) = √ e− 2σ2 , x ∈ R;
2πσ
1 (log(y)−µ)2
Y ; g(y) = √ e− 2σ2 , y ∈ R + .
2πyσ
Calculând integralele corespunzătoare, in care se fac schimbări de variabile
potrivite, se obţin următoarele relaţii
2 /2 2
m = E[Y ] = eµ+σ , s2 = V ar[Y ] = m2 (eσ − 1) (3.27)
0, daca x ≤ 0
f (x) = (3.28)
e−x , daca x > 0,
aceea vom prezenta o metodă de respingere datorată lui John von Newmann
care se bazează pe teorema următoare.
Demonstraţie [10]. Din Exemplul 3.5 de mai sus, reţinem că pentru
x ∈ [0, 1] avem
Zx
1 1 − e−x
P (Z0 ≤ x|K = nr.impar) = e−x dx = F (x) = , pa = 1 − e−1 ,
pa pa
0
unde F(x) este dat de (3.18). De aici rezultă că probabilitatea de a respinge
un şir descendent (de forma Z0 ≥ Z1 ≥ ... ≥ ZK−1 < ZK ) este pr = 1 − pa =
e−1 . Deci, P (N = n) = e−n (1 − e−1 ). Rămâne să arătăm că
0, daca x < 0
P (N + Z0 ≤ x) = (3.280 )
1 − e−x , daca x ≥ 0.
P (N + Z0 ≤ x) = P (N + Z0 ≤ k + z) = P (N < k) + P (N = k, Z0 ≤ z) =
k−1 Zz
−1 −j −1 e−k
e−u du =
X
= (1 − e )e + (1 − e )
j=0
1 − e−1
0
Z1
∗ 1 1 e2
E(N ) = (1 + ez dz) = (1 + e − 1) = ≈ 3.8, (3.170 )
pa 1 − e−1 e−1
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 = , p2 = 1 − p1 = ,
Γ(ν) Γ(ν)
3.5. SIMULAREA UNOR VARIABILE PARTICULARE 75
Z∞ Z 1
Γ(ν) = xν−1 e−x dx, Γ(1; ν) = xν−1 e−x dx.
0
0
Zx Zx
1 −t 1
H(x) = P (U0 < x|K = nr.impar) = e dG0 (t) = e−t νtν−1 dt
pa pa
0 0
Z1
pa = e−t νtν−1 dt = νΓ(1; ν),
0
e−x xν−1
H 0 (x) = h(x) = = f1 (x), x ∈ [0, 1]
Γ(1; ν)
0, daca x < 0,
h(x) = 1 −xν , daca x ≥ 0.
(3.30)
νe
Analizând raportul
ν ν e1−ν
α = r(ν) = .
Γ(ν)
Algoritmul de respingere in acest caz este simplu de construit şi nu-l mai
prezentăm. Probabilitatea de acceptare este deci
s
Γ(ν) e2 2π
pa = ν 1−ν ≈ √
ν e ν−1
k
h(x) = (x−(ν−1))2
, x≥0 (3.31)
1+ c
f (x) 1
r(x) = ≤α= (ν − 1)ν−1 e−(ν−1) . (3.310 )
h(x) kΓ(ν)
Demonstraţie. Avem
" #
1 (x − (ν − 1))2
r(x) = ϕ(x), ϕ(x) = xν−1 e−x 1+
kΓ(ν) c
e−x xν−1
ϕ0 (x) = − [x − (ν − 1)][(x − ν)2 + c − (2ν − 1)]
c
de unde rezultă că ecuaţia ϕ0 (x) = 0 are soluţia x0 = ν − 1 > 0 iar dacă
c ≥ 2ν − 1 atunci x0 este punct de maxim. Dacă luăm c = 2ν − 1 atunci
avem
1
α= (ν − 1)ν−1 e−(ν−1)
kΓ(ν)
ceeace demonstrează teorema.
Pentru a descrie algoritmul dedus din teorema precedentă presupunem
calculate in prealabil constantele
√
b = ν − 1, c = ν + b, s = 2ν − 1.
Referitor la repartiţia Gamma(0, 1, ν), ν > 1 mai observăm şi faptul că dacă
descompunem ν sub forma ν = k + p, k = [ν] ∈ N + , p = ν − k ∈ [0, 1)
şi considerăm variabilele X ; Gamma(0, 1, ν), Ek ; Erlang(k), Y ;
Gamma(0, 1, p), atunci simularea lui X se realizează cu relaţia X = Ek +
Y, (Ek , Y )−independente.
unde
Z1
Γ(a)Γ(b)
B(a, b) = xa−1 (1 − x)b−1 dx, B(a, b) = . (3.320 )
Γ(a + b)
0
X1
X= (3.33)
X1 + X2
Teorema 3. 13 Dacă 0 < a < 1, 0 < b < 1 şi U1 , U2 sunt variabile aleatoare
1 1
uniforme 0 − 1 şi independente şi dacă V = U1a , T = U2b , atunci repartiţia
variabilei X = V V+T condiţionată de V + T < 1 este Beta(a, b).
b − 1 a−1 b−2
p(x, y) = x y , x ∈ [0, 1], y ∈ [0, 1].
B(a, b)
V
Calculează X = V +T .
Probabilitatea de acceptare a acestui algoritm de respingere este
ab
pa = B(a, b). (3.34)
a+b
Algoritmul de respingere construit pe baza teoremei 3.14 are probabilitatea
de acceptare
pa = aB(a, b). (3.340 )
Demonstraţie. Să observăm mai intâi că (V1 , V2 ) este un vector aleator
uniform pe pătratul I 2 = [−1, 1] × [−1, 1] iar Vi , i = 1, 2 sunt uniforme pe
[−1, 1] şi independente. Condiţia S < 1 face ca vectorul (V1 , V2 )|{S < 1}
(condiţionat de S < 1!) să fie vector uniform pe cercul unitate. De aceea să
exprimăm Vi in coordonate polare, adică
S = R2 , (3.370 )
p p
Z1 = −2logS cosθ, Z2 = −2logS sinθ.
θ 0 = θ, R0 =
p
−2logS
şi deoarece (V1 , V2 ) independente pe I 2 , rezultă că şi (R, θ) sunt indepen-
dente, precum şi (R0 , θ 0 ) sunt independente (dar nu pe cercul unitate!).
Deoarece (V1 , V2 ) are o repartiţie uniformă pe cercul unitate, rezultă că θ 0
are o repartiţie uniformă pe [0, 2π] adică are densitatea
1
2π ,daca θ ∈ [0, 2π]
ϕ(θ) = (3.39)
0, altf el.
Să determinăm acum repartiţia lui R0 . Avem
0,
daca x < 0
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ă observăm din nou că dacă p = 21 atunci suntem in cazul particular al
aruncării la intâmplare cu banul (tragerea la sorţi).
• Repartiţia binomială. Se spune că variabila aleatoare discretă X ∈
N este o variabilă binomială Binom(n, p), n ∈ N + , 0 < p < 1 dacă X =numărul
de succese in n probe Bernoulli independente, adică
n
X
X= Zi
i=1
P (X = α) = Cnα pα q n−α , q = 1 − p,
3.6. SIMULAREA UNOR VARIABILE DISCRETE 87
iar din teorema limită centrală se deduce că pentru n suficient de mare (n →
∞) variabila
X − np
Wn = √ ; N (0, 1).
npq
De aici rezultă următorul algoritm simplu de generare a lui X ; Binom(n, p), n =
mare [10].
Algoritmul BINNORM
Generează W ; N (0, 1);
√
Calculează X := {np+W npq}. (Notaţia {E} inseamnă ”cel mai apropiat
intreg de E”).
Observaţie. Variabila Binom(n, p) are şi o interpretare in termeni de
experiment cu o urnă. Astfel, să presupunem că intr-o urnă avem A bile albe
şi B bile negre, A + B = N. Presupunem că se realizează extracţii succesive
din urnă şi după fiecare extracţie se introduce bila extrasă la loc in urnă
(experienţa cu bila ”intoarsă”). Fie p = A/N probabilitatea de a extrage o
bilă albă intr-o extracţie. De aici rezultă că X= numărul de bile albe in n
extracţii succesive cu intoarcere este o variabilă binomială Binom(n, p).
• Repartiţia Pascal [10]. Variabila X are repartiţia P ascal(k, p), k ∈
N + , 0 < p < 1, dacă X = numărul de eşecuri până la apariţia a k succese
intr-un şir oarecare de probe Bernoulli independente. De aici rezultă că
variabila X ; P ascal(k, p) se simulează cu următorul algoritm care numără
eşecurile realizate până la realizarea a k succese intr-un şir de probe Bernoulli
independente.
Algoritmul PASCAL
88 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
de unde deducem
Acum să reprezentăm grafic (3.51) astfel: luăm pe abscisă intervalele Ii şi
construim dreptunghiuri care au ca bază aceste intervale şi ca inălţimi ri .
Graficul obţinut reprezintă histograma selecţiei X1 , X2 , ..., Xn date. (Ea
este histograma frecvenţelor relative; asemănător se obţine şi histograma
frecvenţelor absolute).
6
y
f (x)
r3
r2 rk−1
r1 rk
-
0 I1 I2 I3 Ik−1 Ik x
a0 a1 a2 a3 ak−2 ak−1 ak
Fig.3.1. Histogramǎ.
volum n mic) sau dacă repetăm simularea selecţiei folosind aceeaşi sămânţă
a generatorului (ceea ce impune consum de timp de calcul dublu).
De aceea vom folosi următoarele idei pentru construcţia histogramei:
- simulăm mai intâi un număr mic n1 de valori de selecţie X1 , X2 , ..., Xn1 ,
n1 << n pe care le memorăm;
- cu ajutorul acestei selecţii determinăm următoarele limite ale inter-
valelor histogramei: a1 = min{X1 , X2 , ..., Xn1 }, ak−1 = max{X1 , X2 , ..., Xn1 }
şi cu ajutorul lor determinăm intervalele I2 , ..., Ik−1 de lungimi egale cu
h = (ak−1 − a1 )/(k − 2), adică Ii = [ai−1 , ai ), 2 ≤ i ≤ k − 1, ai = ai−1 + hi;
- cu ajutorul selecţiei de volum n1 determinăm (parţial!) frecvenţele
absolute fi , 2 ≤ i ≤ k − 1 (utilizând pentru numărare formula (3.52) de mai
jos ;deocamdată a0 şi ak nu sunt cunoscute!); luăm a0 = a1 , ak = ak−1 care
vor fi modificate ulterior; iniţializăm f1 = 0, fk = 0;
- simulăm pe rând celelalte n − n1 valori de selecţie şi pentru fiecare X
astfel simulat efectuăm următoarele operaţii: dacă X < a1 atunci luăm a0 =
min(a0 , X) şi f1 := f1 + 1; dacă X > ak−1 atunci luăm ak = max(ak , X) şi
fk := fk + 1; altfel dacă a1 ≤ X < ak−1 atunci calculăm
X − a1
j := + 2, fj := fj + 1; (3.52)
h
Când s-au prelucrat toate cele n − n1 valori de selecţie, s-au determinat
toate elementele histogramei, care după reprezentarea şi interpretarea grafică
conduce la formularea ipotezei de concordanţă.
Să remarcăm că această ultimă construcţie conduce la o histogramă cu
k − 2 intervale egale, iar intervalele I1 , Ik sunt de lungimi oarecare.
Dacă am fi ales arbitrar m, M şi am fi construit apoi histograma ca in
construcţia precedentă, atunci histograma obţinută ar fi putut avea multe
frecvenţe fi = 0 şi eventual frecvenţele f1 şi/sau fk foarte mari, fapt care nu
ne-ar fi putut conduce la o formulare corectă a ipotezei de concordanţă H. In
concluzie, algoritmul cel mai bun, de construcţie al histogramei unei selecţii
simulate asupra unei variabile aleatoare X, cu scopul de a valida algoritmul
de simulare, este următorul:
Algoritmul HISTOGRAMA
Intrare n, n1 , k; Considerăm tabela f [1..k] şi iniţializăm:
for j := 1 to k do f [j] := 0;
Considerăm tabela xi[1..n1 ]; Considerăm tabela a[0..k];
for i := 1 to n1 do begin Generează X şi ia xi[i] := X; end;
Calculează a[1] := min(xi[1], xi[2], ..., xi[n1 ]),
a[k − 1] = max(xi[1], xi[2], ..., xi[n1 ]), h := (a[k − 1] − a[1])/(k − 2);
94 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
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)
3.7. VALIDAREA GENERATORILOR 95
care se ştie că are repartiţia hi patrat cu k − 1 grade de libertate, (χ2k−1 este
variabila corespunzătoare). Fiind dat riscul de genul I, α, ( o probabilitate
mică, apropiată de zero) determinăm χ2k−1,α (numită α-cuantilă superioară)
astfel incât
P (χ2k−1 > χ2k−1,α ) = α. (3.530 )
Ipoteza H se acceptă dacă
χ2 < χ2k−1,α (3.5300 )
şi se respinge in 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ă câteva momente teoretice ale lui X ca de ex. m = E[X]
şi σ 2 = V ar[X];
- Cu ajutorul selecţiei simulate X1 , X2 , ..., Xn se calculează momentele
empirice de selecţie
Pn Pn 2
i=1 Xi 2 i=1 Xi 2
X= ,s = −X ;
n n
Se consideră că generatorul este bun dacă pentru n suficient de mare (n >
1000) valorile lui X şi s2 sunt tot mai apropiate de m şi σ 2 , ca o consecinţă
a legii numerelor mari. Se presupune că momentele teoretice m, σ 2 sunt
cunoscute.
Exerciţii
E.3.1. Fie variabila X ; f (x) unde
x(2 − x), daca x ∈ [0, 2]
f (x) = kg(x) g(x) = .
0, altf el
96 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
0 daca y < 0
f (y) = 2
2λye−λy , daca y ≥ 0.
√
Dacă X ; Exp(λ) să se arate că Y = X de unde se deduce metoda de
simulare a lui Y.
Soluţie Intr-adevăr
√
0, daca t < 0
P (Y < t) = P ( X < t) = P (X < t2 ) = 2
1 − e−λt daca t ≥ 0.
şi ϕX1 +X2 (t) = ϕX1 (t)ϕX2 (t). (Repartiţia binomială este stabilă).
E.3.4. Fie X ; F (x), Y ; G(x) independente. Să se determine funcţia
de repartiţie a variabilei Z = max(X, Y ). Să se precizeze de aici cum se
poate simula variabila Z ; H(x) unde
1
(1 − e−λx )(1 − (1+θx)
c) daca x≥0
H(x) =
0, daca x < 0.
P (X = r, X + Y = n)
P (X = r|X + Y = n) = =
P (X + Y = n)
3.7. VALIDAREA GENERATORILOR 97
0, daca x < 0
f (x) = 1 ex −1 ,λ > 0
λ exp{− λ + x} daca x≥0
0 daca x<0
F (x) = P (X < x) = −a
1 − xk daca x ≥ 0.
1 − x21 +x22
f (x1 , x2 ) = e 2 .
2π
Deci
Z1 x2 +x2
Z Z
1 2
P (U < y) = P ( < tg(2πy)) = e− 2 dx1 dx2 = y.
Z2
x1 /x2 <tg(2πy)
Facem transformarea
D(x, y)
t = x − y, v = y, J= =1
D(v, t)
98 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME
şi calculăm
Z∞
h(t) = g(x(t, v), y(v, t))|J|dv.
0
Se obţine in final (
1 x
h(t) = 2e daca x < 0,
1 −x
2e daca x ≥ 0.
Deci densitatea lui T este de tip Laplace; variabila T se simulează deci ca
diferenţa de două variabile Exp(1) independente.
E.3.10. Variabila aleatoare X are densitatea f (x) = 34 (1 − x2 ), x ∈
[−1, 1] şi f (x) = 0, x ∈
/ [−1, 1]. Să se simuleze X.
Soluţie. Se poate aplica metoda respingerii folosind infăşurăroarea h(x) =
1
2 , x ∈ [−1, 1]; h(x) = 0, x ∈ / [−1, 1] (adică h(x)-uniformă pe [−1, 1]). Se
obţine
f (x) 3
≤ α = , etc.
h(x) 2
Se poate folosi şi metida inversă. Avem
0, x < 0,
3x−x3 +2
F (x) = 4 , x ∈ [−1, 1], .
1, x>1
4.1 Generalităţi
Un vector X = (X1 , X2 , ..., Xk )0 (vector coloană) ale cărui componente Xi
sunt variabile aleatoare, se numeşte vector aleator. Cazul in care componen-
tele sunt independente stochastic este desigur banal de aceea cazul cel mai
interesant este când componentele Xi sunt dependente sau corelate.
Funcţia de repartiţie a vectorului X este
F (−∞, ..., −∞) = 0, F (+∞, ..., +∞) = 1, F (..., xi , ...) ≤ F (..., yi , ...), xi < yi
99
100 CAP. 4. SIMULAREA VECTORILOR ALEATORI
Cov(Xi , Xj )
ρij = Corr(Xi , Xj ) = q . (4.5)
V ar(Xi )V ar(Xj )
corelate iar dacă ρij > 0, atunci Xi şi Xj sunt direct corelate; dacă |ρij | ≈ 1
atunci Xi şi Xj sunt puternic corelate.
Pentru un vector aleator mediile mi definesc un vector m = (m1 , m2 ,
..., mk )0 numit vectorul valoare medie notat E(X) iar covarianţele σij definesc
o matrice Σ = ||σij , || (care este pozitiv definită, Σ 0) şi se notează Σ =
Cov(X, X0 ).
Vom defini acum noţiunea de repartiţie condiţionată. Presupunem că X
are densitatea de repartiţie f (x) şi să considerăm descopmunerea lui X in
doi subvectori X = (X(1) , X(2) )0 unde X(1) este un vector r−dimensional iar
X(2) este un vector q−dimensional, r < k, r + q = k. Definim densitatea de
repartiţie condiţionată f (x(1) |x(2) ) a lui X(1) când X(2) = x(2) astfel
f (x(1) , x(2) )
f (x(1) |x(2) ) = R +∞ , unde f (x) = f (x(1) , x(2) ). (4.6)
−∞ f (y(1) , x(2) )dy(1)
Demonstraţie. Avem
= P (F2−1 (Y1 , U2 ) < x2 |Y1 = x1 )F1 (x1 ) = P (U2 < F2 (x1 , x2 ))F1 (x1 ) =
= P (Y1 < x1 , ..., Yi−1 < xi−1 , Fi−1 (Y1 , ..., Yi−1 , Ui ) < xi ) = F1...i (x1 , ..., xi ).
Dar
F1...k (x1 , ..., xk ) = F (x1 , ..., xk )
ceeace trebuia demonstrat. De aici se deduce următorul algoritm pentru
simularea vectorului aleator X când se cunosc inversele Fi−1 ale funcţiilor de
repartiţie condiţionate Fi (x1 , ..., xi−1 , xi ) in raport cu xi .
Se observă că
1 − e−x , daca x > 0,
F1 (x) =
0, altf el
adică repartiţia marginală a lui X este Exp(1).
Prin calcule simple (utilizând (4.6)) se deduce că
Algoritmul GUMBEL
Intrare θ; (Acesta este un pas pregătitor);
Generează X ; Exp(1);
Generează U := random; Generează Y rezolvând ecuaţia
Din (4.7’) rezultă că dacă V este uniform pe I atunci Vi sunt variabile
uniforme pe [ai , bi ] şi independente deoarece
k 1
Y daca vi ∈ [ai , bi ]
bi −ai ,
f (v1 , v2 , ..., vk ) = fi (vi ), fi (vi ) = (4.700 )
i=1
0, daca vi ∈
/ [ai , bi ].
Intrare ai , bi , 1 ≤ i ≤ k;
for i := 1 to k do begin
Generează U := random; Ia Vi := ai + (bi − ai )U ;
end.
Pentru a simula un vector aleator W uniform pe D ⊂ Rk (D fiind un
domeniu oarecare), nu mai este adevărată (4.7”). Dar să observăm că dacă
D ⊆ I şi V e uniform pe I atunci restricţia lui V la D ( vectorul notat W),
este un vector uniform pe D.
De aici rezultă următorul algoritm de respingere pentru simularea lui W.
Algoritmul VECTUNIFD de simulare a vectorului uniform pe dome-
niu oarecare:
Construieşte un interval minimal I = [a1 , b1 ] × ... × [ak , bk ] astfel incât
D ⊆ I; (Acest interval există deoarece D este mărginit).
repeat
Generează V uniform pe I;
until V ∈ D;
Ia W := V.
Probabilitatea de acceptare a acestui algoritm este
mesD mesD
pa = = k
mesI
[bi − ai ]
Q
i=1
de unde se deduce că pentru a obţine un interval I cât mai bun, acesta
trebuie să fie minimal astfel incât D ⊆ I.
X = µ + CY ; N (µ, CΣC0 ).
E(X) = µ + CE(Y) = µ + 0 = µ,
j−1
σij −
P
cir cjr
r=1
cij = , 1<j<i≤k (4.11)
cjj
cij = 0, 1 < i < j < k.
Simularea vectorului X ; N (µ, Σ), după ce se calculează intr-un pas pregătitor
matricea C a lui Choleski se realizează cu următorul algoritm
Uneori este necesar să simulăm un subvector al unui vector normal când
se dă celălalt subvector. Mai precis dacă X = (X(1) , X(2) )0 ; N (µ, Σ), cu
X(1) vector r−dimensional şi X(2) vector q−dimensional, r + q = k, se cere
să se simuleze X(1) condiţionat de X(2) = x(2) .
Să considerăm scrierea celulară a lui µ şi Σ, adică
! !
µ(1) Σ11 Σ12
µ= , . (4.12)
µ(2) Σ21 Σ22
adică σij este dat de (4.13’). Simularea vectorului normal in acest caz special
se face determinând componentele sale cu formula (4.13”).
108 CAP. 4. SIMULAREA VECTORILOR ALEATORI
Y = SX + c. (4.1600 )
are o repartiţie Dirichlet(ν1 , ν2 , ..., νk+1 ). Se observă deci că repartiţia Dirich-
let este o extensie la cazul multidimensional a repartiţiei Beta. Formulele
(4.16) simulează componentele unui vector Dirichlet, presupunându-se de-
sigur că parametri νi , 1 ≤ i ≤ k + 1 sunt cunoscuţi.
Exerciţii
E4.1 Să se prezinte o metodă de simulare a unui vector V = (V1 , V2 )0 ,
uniform pe cercul C(O, r).
Soluţie. Se simulează un vector W = (W1 , W2 )0 uniform pe [−r, r] ×
[−r, r] şi se pune condiţia ca el să aparţină cercului. Algoritmul este:
repeat
Generează: U1 := random; U2 := random;
W1 := −r + 2rU1 ; W2 := −r + 2rU2 ;
until W1 + W2 ≤ r 2 ;
2 2
Ia V1 := W1 ; V2 := W2 .
E4.2 Să se prezinte o metodă de simulare a unui vector W = (W1 , W2 )0
uniform pe elipsa de semiaxe a, b > 0.
Indicaţie. Se simulează un vector V = (V1 , V2 )0 uniform pe intervalul
[−a, a] × [−b, b] şi se pune condiţia ca V12 /(a2 ) + V22 /(b2 ) ≤ 1.
E4.3 Se consideră vectorul X = (X1 , X2 , ..., Xk )0 unde Xi ; Exp(λi η)
sunt independente iar η ; Gamma(0, b, a). Să se determine densitatea de
repartiţie a lui X şi să se indice un algoritm pentru simularea acestuia.
Soluţie.Să notăm
ba a−1 −ηb
g(η) = Γ(a) η e , daca η>0
0, η ≥ 0.
Atunci densitatea de repartiţie a lui X este
k
P
k R ∞ k+a−1 ba − xi λi η −bη
Q
f (x1 , x2 , ..., xk ) = ( λi ) 0 η Γ(a) e
i=1 e dη, xi > 0 =
i=1
o, altf el
k
P
k −η( xi λi +b)
ba R∞
η a+b−1 e
Q
= Γ(a) ( λi ) dη, daca xi > 0 =
i=1
0
i=1
0, altf el
k
ba Γ(a+k)
(
Q
λi ) P , xi > 0
Γ(a) k
= i=1 (b+ λi xi )a+k =
i=1
0, altf el
112 CAP. 4. SIMULAREA VECTORILOR ALEATORI
Qk
( i=1 θi )a(a+1)...(a+k−1)
, daca xi > 0
λi
k
= θi = .
P
(1+ θi xi )a+k
i=1 b
0, altf el,
de unde a+m−1
k−1
1 +
P
θi xi
i=1
F (xm |x1 , ..., xm−1 ) = 1 − .
m
P
1+ θ i xi
i=1
Ultima formulă permite simularea lui X utilizând teorema 4.1.
E4.4 Fie vectorul aleator (X, Y )0 cu componente pozitive având densi-
tatea de repartiţie
α(α + β)e−(α+β)y , daca 0 ≤ x < y
f (x, y) =
β(α + β)e−(α+β)x daca 0 ≤ y < x
(repartiţia bidimensională a lui Freund). Să se determine E(X), E(Y ),
V ar(X), V ar(Y ) şi să se găsească o metodă de simulare a vectorului (X, Y )0 .
Indicaţie. Densităţile marginale şi sunt
fX (x) = [α + xβ(α + β)]e−(α+β)x , x > 0, fY (y) = (α + β)e−(α+β)y , y > 0
iar
Fx (x) = 1 − (1 + βx)e−(α+β)x
de unde se pot calcula cu uşurinţă mediile şi dispersiile.
Pentru simulare se aplică metoda inversă (teorema 4.1) unde X ; Fx (x)
iar f (y|x) este de forma
β(α+β)
α+β(α+β)x daca 0<y<x
f (y|x) = α(α+β)e −(α+β)(y−x)
α+β(α+β)x daca y > x.
Se observă că
1 β(α + β)x
f (y|x) = p I(0,x) + (1 − p)(α + β)e−(α+β)(y−x) I(x,∞) , p =
x α + β(α + β)x
4.6. SIMULAREA REPARTIŢIEI DIRICHLET. 113
Pentru a aplica această teoremă in cazul exemplului 4.4 să observăm că
densitatea de repartiţie este
s1 = u1 ; s2 = u2 − u1 , , ..., sn = un − un−1
114 CAP. 4. SIMULAREA VECTORILOR ALEATORI
u1 = s1 , u2 = s1 + s2 , , ..., un = s1 + s2 + ... + sn .
Jacobianul acestei transformări este J = 1. Deoarece repartiţia lui (U(1) , ..., U(n) )
este uniformă adică are densitatea
1
mes Bn , (u1 , ..., un ) ∈ Bn
f (u1 , ..., un ) =
0, (u1 , ..., un ) ∈/ Bn
rezultă că (S1 , ..., Sn ) are tot densitate uniformă pe An (transformatul lui
Bn ) adică
1
mes An (s1 , ..., sn ) ∈ An
g(s1 , ..., sn ) = mes An = mes Bn J.
0 (s1 , ..., sn ) ∈/ An ,
Notă. De aici rezultă că simularea unui vector uniform pe domeniul
An ∈ Rn se realizează simulând U1 , ..., Un uniforme pe [0, 1] independente,
şi calculând apoi (S1 , ..., Sn ) cu ajutorul statisticii de ordine U(1) ≤ U(2) ≤
... ≤ U(n) .
E4.7 Folosind teorema 4.1 construiţi un algoritm pentru simularea vec-
toruluialeator discret (X, Y )0 cu X şi Y luând mulţimi finite de valori.
Indicaţie. Repartiţia discretă a lui (X, Y )0 este dată de tabela de contingenţă
Y = b1 . . . br pi.
p.1 . . .p.r
Repartiţia marginală a lui X este
Simularea proceselor
stochastice
5.1 Generalităţi
O familie de variabile aleatoare, {Xt }t∈T , T ⊂ R, deprinzând de parame-
trul real t (presupus a fi timpul) se numeşte proces stochastic. Dacă T este o
mulţime discretă (deobicei T = {0, 1, 2, ...}), atunci procesul se numeşte lanţ.
Dacă T este un interval I ⊆ R atunci procesul este cu timp continuu. Valorile
lui Xt se numesc stări. Fie S mulţimea valorilor unui proces stochastic. Dacă
mulţimea S este discretă spunem că procesul este cu stări discrete iar dacă
S este de puterea continuumului, spunem că procesul este cu stări continue.
Mulţimea {(t, Xt )|t ∈ T } se numeşte traiectorie a procesului stochastic.
Procesul stochastic este cunoscut dacă pentru ∀n, t1 , t2 , ..., tn este cunos-
cută funcţia de repartiţie
Ft1 ,t2 ,...tn (x1 , x2 , ..., xn ) = P (Xt1 < x1 , ..., Xtn < xn ).
Ft1 +h,t2 +h,...,tn+h (x1 , x2 , ..., xn ) = Ft1 ,t2 ,...,tn (x1 , x2 , ..., xn ). (5.1)
Procesul {Xt }t∈T se numeşte staţionar slab sau simplu staţionar dacă
are momente de ordinul doi, adică există şi sunt finite mt = E[Xt ], σst =
Cov[Xs , Xt ], s < t şi mt = m = const, σst = σ(t − s).
117
118 CAP. 5. SIMULAREA PROCESELOR STOCHASTICE
Observăm că pentru un proces staţionar tare, avem in particular Ft+h (x) =
Ft (x), adică procesul are aceeaşi funcţie de repartiţie la orice moment de
timp t, dar variabilele Xt pot să nu fie independente pentru diverse valori
ale lui t. Dacă variabilele Xt sunt independente atunci suntem in cazul banal
clasic, al unei familii de variabile aleatoare independente.
Se poate observa cu uşurinţă că dacă {Xt }t∈T este staţionar tare şi
are momente de ordinul doi, atunci el este staţionar; reciproc nu este insă
adevărat.
In ceeace priveşte simularea proceselor stochastice, ne interesează să pro-
ducem cu calculatorul puncte ale unor traiectorii finite. In cazul unui lanţ de
exemplu este necesar să producem un număr finit de puncte ale traiectoriei
lanţului. In cazul unui proces cu timp continuu simulăm dintr-o traiectorie
numai un număr finit de puncte ale acesteia, deobicei corespunzând valorilor
discrete ale timpului t = 0, 1, 2, ..., n. De fapt problema construirii unui algo-
ritm de simulare a unui proces revine la următoarele: dându-se o valoare X0
a procesului (presupusă a se afla pe o traiectorie a sa la momentul t = 0),
se cere să se simuleze valoarea X1 aflată pe aceeaşi traiectorie la momentul
t = 1.
Desigur, problema simulării unui proces stochastic este mult mai com-
plicată decât a variabilelor aleatoare. In cele ce urmează ne vom ocupa
de simularea lanţurilor şi proceselor Markov şi de simularea unor procese
staţionare care au repartiţii de probabilitate cunoscute.
Observăm că Pij (s, t) definesc nişte matrici de probabilităţi de tranziţie care
au proprietatea X
Pij (s, t) = 1. (5.3)
j∈S
Dacă o stare i a unui lanţ omogen are proprietatea că există un j, j 6= i astfel
incât pij > 0, atunci starea i este stare de tranziţie, iar dacă pii = 1 atunci
starea i este stare absorbantă. (Când lanţul intră intr-o stare absorbantă, el
nu mai părăseşte acea stare).
Dacă lanţul se află in starea i atunci starea aleatoare următoare in care trece
lanţul se simulează ca variabila discretă
!
1, 2, ..., m
J: . (5, 50 )
pi1 , pi2 , ..., pim
calcule pregătitoare);
generează U := random; i := 1 : while U ≥ fi do i := i + 1;
for k := 1 to n do
begin
Generează U := random; Ia j := 1;
while U ≥ Fij do j := j + 1;
Ia i := j, ik = i; Scrie ik ;
end.
In mod asemănător se poate face şi simularea lanţului neomogen, dacă
se cunosc probabilităţile de tranziţie intr-un pas Pij (s, s + 1), 1 ≤ s ≤ n.
In acest caz, probabilităţile Pij (s, s + 1) sunt citite in cadrul ciclului for al
algoritmului când se calcululează pe rând şi probabilităţile cumulate Fij .
Să mai observăm că dacă lanţul Markov are o stare absorbantă i0 , cele-
lalte fiind de tranziţie, atunci din orice stare iniţială i ar porni procesul,
există o traiectorie finită de lungime N(i) astfel incât X1 = i, ..., XN(i) = i0 ,
adică lanţul se opreşte in starea absorbantă i0 .
Pentru un proces Markov cu o mulţime continuă S de stări {Xt }t∈T se
presupune dată densitatea de repartiţie iniţială p(x) > 0, x ∈ S şi densitatea
de probabilitate de tranziţie q(x, y) > 0, x, y ∈ S, densităţi care satisfac
condiţiile Z Z
p(x)dx = 1, q(x, y)dy = 1. (5.6)
S S
Algoritmul in acest caz este
5.4. SIMULAREA UNOR PROCESE GAUSIENE STAŢIONARE121
1 − mt , daca 1 ≤ t ≤ m
ρ(t) = , Cov(Xt , Xt+k ) = Φ(k), (5.9)
o, altf el
Φ(k)
ρ(k) = , V ar(Xt ) = σ∗2 = Φ(0)
Φ(0)
şi dorim să simulăm un proces gausian {Xt } cu această funcţie de autocorelaţie
şi cu V ar(Xt ) = σ∗2 .
Vom simula Xt utilizând teorema limită centrală. Pentru aceasta să
considerăm variabilele aleatoare Vi ,i ≥ 1, independente şi uniform distribuite
pe [−a, a], a > 0 cu a−dat. Avem deci
a2
E[V ] = 0, V ar[V ] = = σ2 . (5.10)
3
Pentru a genera procesul gausian {Xt }t∈N de medie 0 şi dispersie σ∗2 , alegem
mai intâi N > 10 (impus de teorema limită centrală) şi un număr natural
p, p > 0 a cărui valoare va fi precizată mai jos. Simulăm valorile de selecţie
Xt , Xt+1 , t ∈ N, astfel
n
X N
X +p
Xt = Vi , Xt+1 = Vi , (5.11)
i=1 i=p+1
5.4. SIMULAREA UNOR PROCESE GAUSIENE STAŢIONARE123
Φ(k) p
ρ(k) = 2
=1−k
Nσ N
şi identificând cu prima relaţie (5.9) trebuie să luăm
N
p=
m
pentru a obţine expresia cerută a lui ρ(k).
acum valoarea lui a. Deoarece V ar(Xt ) = N σ 2 =
Trebuie să determinăm √
2
σ∗ şi conform (5.10) a = σ 3, rezultă că trebuie să avem
σ∗ σ∗ √
σ=√ a= √ 3.
N N
In concluzie, dându-se m, σ∗ şi N (de ex. N = 12,) simularea procesului
gausian cu funcţia de autocorelaţie dată de prima formulă (5.9) se realizează
cu următorul algoritm
Algoritmul PRGAUSLIN de simulare a procesului gausian cu funcţie
de autocorelaţie liniară
√
Intrare m, σ∗ , N ; Calculează a := √σN
∗
3; Determină p intreg astfel incât
N
p= m ; (Dacă pentru m dat şi N iniţial ales nu există intregul p astfel incât
N = mp atunci se alege alt N > 10 pentru care să poată fi determinat p.
Calculele precedente sunt calcule pregătitoare);
for i := 1 to N do begin
124 CAP. 5. SIMULAREA PROCESELOR STOCHASTICE
X0 := 0; Generează U := random;
Calculează W := −a + 2aU ; Vi := W ; X0 := X0 + Vi ;
end:
Scrie X0 ; X1 := 0; (*)
for i := 1 to N − p do begin Vi := Vi+p ; X1 := X1 + Vi end;
for i := N − p + 1 to N do begin
Generează U := random; W := −a + 2aU ; Vi := W ;
X1 := X1 + Vi ; Scrie X1 ;
end.
Repetând de T ori instrucţiunile algoritmului precedent ce incep cu cal-
culul sumei X1 (instrucţiunea *) se obţine traiectoria X1 , X2 , ..., XT a pro-
cesului gausian.
P00 (t) = −λP0 (t), Pn0 (t) = −λPn (t) + λPn−1 (t), n ≥ 1. (5.16)
(λt)n −λt
Pn (t) = e (5.160 )
n!
iar dacă λ depinde de t, (λ = λ(t)) atunci soluţia este
(Λ(t))n −Λ(t) t
Z
Pn (t) = e , Λ(t) = λ(u)du. (5.1600 )
n! 0
Algoritm PPOU
generează N ; P oisson(λV ol(A));
generează X1 , X2 , ..., Xk puncte uniform repartizate in A.
Punctele Xi reprezintă valori aleatoare ale PPOU.
In mod analog se poate considera P P N OU pe A când variabila aleatoare
N are repartiţia N ; P oisson(Λ(t)V ol(A)).
Cap. 6
6.1 Generalităţi
Sub denumirea de metode Monte Carlo sunt cuprinse o serie de tehnici de re-
zolvare a diverse probleme utilizând numere aleatoare, variabile aleatoare sau
procese stochastice simulate cu calculatorul. Mai precis se acceptă următoarea
definiţie
Dacă estimatorul primar τ (ξ) este nedeplasat, adică E[τ (ξ)] = θ, atunci
estimatorul secundar τ n satisface de regulă legea numerelor mari şi deci
τ n → θ in probabilitate.
127
128 CAP. 6. METODA MONTE CARLO
unde δ este o probabilitate mică (un risc mic). Deci conform legii numerelor
mari, trebuie să alegem n astfel incât pentru şi δ suficient de mici daţi să
fie satisfăcută relaţia (6.2).
t−a
x= , dt = (b − a)dx,
b−a
aria(D) π
p= =
aria(I 2 ) 4
se estimează cu n
1X
p= χD (Vi ) = χD,n
n i=1
unde V1 , V2 , ..., Vn este o selecţie asupra lui V. Din ultima relaţie rezultă că
n
4X
π ≈ 4p = χD (Vi ) = 4χD,n (6.50 )
n i=1
Suntem deci in faţa unui caz special şi oarecum ciudat: pentru a calcula θ ar
trebui sa-l cunoaştem mai intâi pe θ şi să cunoaştem şi integrala 01 f 2 (x)dx
R
(presupunând deci că f ∈ L2 [0, 1]). Dar nu putem abandona ideea. Putem
determina (estima) pe n cu (6.3) intr-unul din două moduri şi anume:
(1) Presupunem că f (x) ≤ M < ∞, x ∈ [0, 1]. Atunci avem σ 2 < M 2 si
deci in (6.3) putem inlocui σ 2 = M 2 obţinând un n mai mare dar care asigură
cu atât mai mult precizia şi riscul δ. In particular, in cazul exemplului 6.1
putem determina n0 din (6.3) luând σ 2 = p(1 − p).
(2) Alt mod de a estima un n constă in a estima mai intâi pe σ 2 folosind
o selecţie de volum k, U1 , U2 , ..., Uk şi anume
k
1X
σ 2 ≈ s2 = (f (Ui ) − θ k )2
k i=1
incât variaţia funcţiei (f (x)/p(x) − θ)2 p(x) să fie mai mică decât variaţia lui
(f (x) − θ)2 pe [0, 1]. (Acest lucru se obţine dacă de exemplu se alege p(x)
astfel incât graficele funcţiilor f (x) şi p(x) să fie aproape paralele!).
Cu această alegere a lui p(x) integrala (6.4) se scrie
Z 1 f (x) f (X)
θ= p(x)dx = E[ ] (6.8)
0 p(x) p(X)
f (X)
(i)
V ar[f (U )] > V ar , → V ar[θn ] > V ar[θn ]
p(X)
e−x−y , daca
x > 0, y > 0
p(x, y) =
0, altf el.
Se observă că vectorul aleator T = (X, Y )0 care are densitatea p(x, y), are
componentele sale X şi Y repartizate Exp(1) şi independente, ele putându-
se simula cu uşurinţă. Se poate deci aplica metoda Monte Carlo după
importanţă pentru estimarea integralei I.
Exemplul 6.3. Să considerăm integrala
Z1
g(x)
θ= √ dx
x
0
6.3. METODE DE REDUCERE A DISPERSIEI 133
unde g(x) este cotinuă pe [0, 1]. Metoda Monte Carlo brută conduce la esti-
matorul secundar
n
1X g(Ui )
θn = √ , Ui ; unif orm[0, 1].
n i=1 Ui
0, x √
<0
1
p(x) = √ , F (x) = P (X < x) = 1 − x, x ∈ [0, 1]
2 x
1, x > 1
atunci dispersia estimatorului după importanţă este finită şi deci această
ultimă metodă este mai bună.
•• Observaţii. (1) Să observăm că metoda selecţiei după importanţă
se poate aplica la calculul oricărei integrale, simplă sau multiplă de forma
Z Z
θ= f (x)p(x)dx = f (x)p(x)dx, D ⊆ Rk (6.80 )
D
Să alegem acum o altă densitate q(x), x ∈ D şi fie X ; q(x). Scriind
f (x)p(x) f (X)p(X)
Z
θ= q(x)dz = E
q(x) q(X)
Se poate arăta că dispersia estimatorului θ̂n se micşorează faţă de cea a lui θn
dacă alegem ca densitate q(x) = q0 (x) ∼ |f (x)|p(x), adică satisface această
relaţie de proporţionalitate. Utilizarea celor două densităţi p(x), q0 (x) pen-
tru calculul unei integrale, (cu q0 (x) ales ca mai sus) poate deci conduce la
micşorarea dispersiei faţă de metoda brută.
134 CAP. 6. METODA MONTE CARLO
(2) Să presupunem că avem de calculat mai multe integrale multiple pe
acelaş domeniu de forma (6.8’), adică
Z Z
θi = fi (x)pi (x)dx = fi (x)p(x)dx, 1≤i≤s
D
s 2 (x) s
p
Z X
ai θ̂n(i) ) a2i fi2 (x) a2i θi2
X X
V ar(θ̂n ) = V ar( = dx −
i i=1
q(x) i=1
de unde 2
s
!1
Z 2
a2i fi2 (x)
X
S≥ p(x)dx .
i=1
2 s
şi acest minim se atinge pentru q0 (x) şi el este I − a2i θi2 .
P
i=1
6.3. METODE DE REDUCERE A DISPERSIEI 135
de unde se deduce că fiecare din cele m integrale ale sumei precedente se
poate estima prin metoda Monte Carlo brută, obţinându-se in final estima-
torul secundar
kj
m X
1
τ ∗m
X
= (αj − αj−1 ) f (αj−1 + (αj − αj−1 )Uij ) (6.13)
j=1 i=1
kj
6.3. METODE DE REDUCERE A DISPERSIEI 137
m Zαj m
"Z #2
(αj − αj−1 )2 1 αj
ar(τ ∗m ) 2
X X
V = f (u)du − f (u)du . (6.14)
j=1
kj j=1
kj αj−1
αj−1
Notând
Zαj
θj = f (u)du, 1 ≤ j ≤ m
αj−1
αj−1 αj−1
Punctele diviziunii αj se pot alege astfel incât lungimile intervalelor să fie
1 j
egale cu m (adică αj = m ) sau se aleg astfel incât variaţia funţiei să fie
aceeaşi pe fiecare interval.
Dispersia V ar(τ ∗m ) se calculează deobicei greu, dar ea se poate estima
astfel
m kj
(αj − αj−1 )2 X
V ar(τ ∗m ) ≈ s2m = (fij − f j )2
X
(6.16)
j=1
k (k
j j − 1) i=1
unde
kj
1 X
fij = f (αj−1 + (αj − αj−1 )Uij ), f j = fi . (6.160 )
kj i=1 j
138 CAP. 6. METODA MONTE CARLO
dz
Z Z
p1 (y) = p(y, z)dz, f˜(y) = f (y, z)p(y, z)
p1 (y)
(Z) (Z)
p(y,z)
unde p1 (y) este densitatea condiţionată, iar p1 (y) este densitate marginală.
Să notăm Ỹ vectorul aleator care are densitatea p1 (y) şi cu X = (Y, Z)0 , Ỹ =
Y vectorul aleator corespunzător densităţii p(x). Atunci putem estima inte-
grala θ in două moduri şi anume
n n
1X 1X
θn = f (Yi , Zi ), θ̃n = f˜(Yi ). (6.40 )
n i=1 n i=1
Se poate arăta că are loc relaţia
V ar(θ̃n ) ≤ V ar(θn ).
Intr-adevăr, scriind in detaliu dispersiile avem
V ar(θn ) − V ar(θ̃n ) =
2
1 p(y, z) p(y, z)
Z
Z Z Z
= f 2 (y, z) dz − f (y, z) dz p(y, z)dy ≥ 0.
n
p1 (y) p1 (y)
(Y ) (Z) (Z) (Z)
Ultima inegalitate rezultă din faptul că expresia din acolade este dispersia
lui Ỹ (care este pozitivă) iar p(x, y) ≥ 0 fiind densitate de repartiţie.
adică im+1 este stare absorbantă; din construcţia lanţului rezultă că traiec-
toria este finită (m < ∞ iar pim ,im+1 = pim );
- să considerăm acum expresia
aim
Vm (γ) = vi0 i1 vi1 i2 ...vim−1 im , X(γ) = VM (γ) . (6.20)
pim
unde nucleul K şi funcţiile f, g satisfac condiţii astfel incât soluţia f (x) să
existe pentru orice x ∈ [a, b]. Considerând K drept un operator liniar ecuaţia
(6.22) se poate scrie asemănător lui (6.17) adică
f = g + Kf (6.170 )
se arată că dacă ||K|| < 1 atunci există un n0 finit astfel incât
n0
K if + g
X
f=
i=1
f = g + Kf (6.220 )
Date fiind g, K, h, vrem să alegem densităţile π(x), p(x0 , x) astfel incât esti-
matorul
N
X
ξ= Qn h(xn ) (6.240 )
n=0
să fie un estimator primar pentru funcţionala (f, h). Procedăm astfel:
- alegem funcţiile π(x), r(x0 , x) cu condiţiile
Z b
π(x) 6= 0 ⇔ g(x) 6= 0, π(x)dx = 1,
a
r(x0 , x) 6= 0 ⇔ K(x0 , x) 6= 0
şi construim densitatea de tranziţie a lanţului absorbant de forma
Z b
0 0 0
p(x , x) = r(x , x)[1 − q(x )], p(x0 , x)dx = 1 − q(x0 ) ≤ 1
a
unde (x0 , y0 ) sunt fixate iar h este o constantă suficient de mică (pasul grilei).
Orice punct (x, y) al reţelei are partu puncte vecine
V (x + h, y) + V (x − h, y) − 2V (x, y)
∆xx = , (6.2600 )
h2
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 diferenţe in (6.25) deducem expresia lui V (x, y) = V (P )
astfel
5
X h2 F (P )
V (P ) = pi (P )V (Pi ) − (6.27)
i=1
D(P )
unde
1 β11
p1 (P ) = (β11 − 2β12 ), p2 (P ) = ,
D D
1 β22
p3 (P ) = (β22 − 2β12 ), p4 (P ) = (6.270 )
D D
2β12
p5 (P ) = , D(P ) = 2β11 + 2β22 − 2β12 + 2h(α1 + α2 ).
D
2 >0
Se observă că dacă ecuaţia (6.25) este de tip eliptic atunci β11 β22 − β12
şi deci pi (P ) din (6.27”) sunt probabilităţi (sunt pozitive) şi
5
X
pi (P ) = 1 ∀ βij , αi i = 1, 2.
i=1
Se arată că dacă in (6.27) luăm h → 0 atunci această expresie converge către
V (x, y) care este soluţie a ecuaţiei (6.25). Probabilităţile pi (P ), 1 ≤ i ≤ 5
definesc un lanţ Markov particular numit mers la intâmplare in plan. Inter-
pretarea acestui lanţ este următoarea: dacă o particolă porneşte din punctul
P (x, y) atunci ea se deplasează pe grilă in punctele vecine prin salturi, cu
probabilităţile pi (P ). Dacă β12 = 0 atunci particola nu se poate deplasa in
punctul P5 = (x + h, y + h). Mersul la intâmplare construit este absorbant pe
frontiera Ch ; dacă particola atinge un punct Q ∈ Ch atunci probabilitatea
de a părăsi acel punct este zero.
6.5. REZOLVAREA ECUAŢIILOR CU DERIVATE PARŢIALE145
astfel
m
X h2 F (P (j) )
Zi = − + ϕ(Qi ). (6.28)
j=1
D(P (j) )
unde
ϕ(Qi ), daca f rontiera Ch este atinsa in m pasi
ϕm (Qi ) =
0, in rest
5
X h2
WM (P ) = pi (P )Wm−1 (Pi ) − F (P ) (6.2800 )
i=1
D(P )
Numărul km este numărul mediu de paşi ai unei traiectorii, care oricum are
cel mult un număr finit de paşi dacă domeniul inconjurat de curba C este
mărginit. Deci, pentru un punct P fixat, şirul Wm este convergent, de unde
rezultă că estimatorul (6.28) este asimptotic nedeplasat, deci teorema este
demonstrată.
146 CAP. 6. METODA MONTE CARLO
∂2V ∂v
5V (P ) = F (P ), sau 2
+ 2 = F (x, y)
∂x ∂y
cu condiţia pe contur
V (P ) = ϕ(P ), P ∈ C, C = D ⊂ R2 .
Calculează fi = p1 + ... + pi , 1 ≤ i ≤ 5, f5 = 1;
Genereazaă U := random; i := 1;
while U > fi do i := i + 1;
Calculează coordonatele punctului Pi cu formulele (6.26’) in care x =
x(j) , y = y (j) ;
Ia P (j+1) := Pi calculat anterior;
Dacă P (j+1) 6∈ Ch atunci ia P (j) := P (j+1) , altfel traiectoria se termină.
Genereaza U := random;
Exerciţii
E6.1 Să se calculeze mai intâi direct, iar apoi utilizând metoda Monte
Carlo brută integrala
Z 1p
I= 1 − x2 dx.
0
de unde
1 1 p q
V ar(I a,n ) = [ {V ar( 1 − U 2 ) + V ar 1 − (1 − U 2 ))+
n 4
q q
+2Cov(( 1 − U 2 ), 1 − (1 − U 2 )}] =
1
p p q
= V ar( 1 − U 2 + Cov( 1 − U 2 , 1 − (1 − U 2 )) =
2n
!
1 2 π2 1 q π2
= − + E[ (U + 1)U (U − 1)(U − 2) − ],
2n 3 16 2n 16
Se poate arăta prin calcule relativ simple că media expresiei in U din paran-
teza dreaptă precedentă este EU ≈ 0.5806 de unde rezultă că
0.0052
V ar(I a,n ) ≈ .
n
In mod direct se poate arăta că
! !
1 1 π2 1 2 π2 0.498
Z
2
V ar(I n ) = (1 − x )dx − = − ≈
n 0 16 n 3 16 n
Zx y2 Zx
e− 2 1
L(x) = √ dx = √ φ(y)dy.
2π 2π
−∞ −∞
F̃ (Y ) = U, U unif orm 0 − 1.
Pentru estimarea lui π se foloseşte formula lui P (cazul l ≤ d,) şi se estimează
P cu
α
Pn =
n
unde α este numărul de cazuri când acul atinge o margine a lamelei din
n aruncări independente.Simularea aruncării aleatoare a unui ac de lungine
l (l < d), presupunând că cele două lamele vecine au ca margine comună
axa ox, se realizează astfel: se simulează un punct P aleator intre 2 lamele
(P ∈ [−d, d];) apoi se simulează un θ uniform in [0, +2π] şi se determină
segmentul cu centrul in P , de lungime l , orientat pe direcţia θ; se verifică
apoi prin calcul dacă segmentul construit intâlneşte una din dreptele y =
0, y = d, y = −d care reprezintă delimitările celor două lamele vecine. De-
terminarea numărului de aruncări ale acului care intersectează liniile ce de-
limitează cele 2 lamele vecine (din n aruncări ) este acum evidentă. Desigur,
această cale de determinare a lui π nu este recomandabil a se face cu cal-
culatorul deoarece algoritmul are o complexitate ridicată. Metoda acului
lui Buffon are insă importanţa ei istorică. (Simularea lui θ se poate face şi
uniform pe [− π2 , + π2 ]).
E6.5 Să se precizeze o metodă Monte Carlo de estimare a numărului
π folosind simularea de puncte aleatoare intr-un domeniu inconjurat de o
elipsă cu centrul in origine şi de semiaxe a > 0, b > 0.
Indicaţie. Se foloseşte ideea de la Exemplul 6.1. Se simulează N puncte
(V1 , V2 ) aleatoare in dreptunghiul [−a, a]×[−b, b] şi se numără cele ce satisfac
V2 V2
relaţia a12 + b22 ≤ 1.
E6.6 Un lanţ Marcov cu √ stări continue are densitatea de repartiţie a
stărilor iniţiale π(x) ; N (2, 2) şi densitatea de tranziţie p(x, y) ; N (x, 2),
unde x este starea de plecare. Să se prezinte un algoritm de simulare a unei
stări a lanţului.
Soluţie. Avem deci
1 (x−2)2 1 (x−y)2
π(x) = √ e− 4 , p(x, y) = √ e− 8 .
2 π 2 2π
Algoritmul este următorul
Algoritmul MARKOV √ de simulare a unui lanţ Marcov gaussian
Generează X ; N (2, 2); (X este starea iniţială);
Generează Y ; N (X, 2); (Y este starea generată, in care se ajunge).
Acest lanţ se poate utiliza la rezolvarea ecuaţiei integrale
Z
f (x) = p(x, y)f (y)dy + g(x), x ∈ R.
6.5. REZOLVAREA ECUAŢIILOR CU DERIVATE PARŢIALE151
In acest capitol vom prezenta cateva modele de simulare din domeniul teoriei
aştepatării şi teoriei stocurilor, modele implementabile in limbaje evoluate
(ca Pascal, C, C++, etc).
A/S/c : (Lc ; d)
unde:
A este o informaţie despre repartiţia de probabilitate a timpului de in-
tersosire AT sau a sosirilor;
S este o informaţie despre repartiţia de probabilitate a duratei serviciului
ST ;
c precizează numarul de staţii de serviciu şi topologia lor, adică dacă
sunt conectate in serie, in paralel, sau in reţea;
Lc este lungimea maximă a cozii, adică un număr natural pozitiv dacă
coada este finită, sau ∞ dacă coada poate avea lungime infinită;
d este disciplina de serviciu care precizează reguli de efectuarea serviciu-
lui. De exemplu daca clienţii sunt serviţi in ordinea sosirilor, atunci disciplina
este F IF O (adica First In First Out). Pot exista şi reguli de tipul LIF O
(adică Last In First Out) sau disciplina de serviciu cu prioritaţi in sensul
ca unii clienţi, care au prioritaţi pot fi serviţi inaintea altora. Insfarşit, pot
exista modele cu clienţi nedisciplinaţi; o astfel de siutuaţie se prezintă in
153
154 CAP. 7. CATEVA MODELE DE SIMULARE
cazul când clienţii care asteaptă mai mult de w0 unitaţi de timp părăsesc
sistemul fără să mai beneficieze de serviciu.
Modelele matematice sunt construite şi rezolvate de regula când repartiţiile
lui AT si ST sunt exponenţiale negative, când sistemele au o singură staţie
sau staţii paralele, când disciplina este F IF O, şi când clienţii sunt disciplinaţi.
Toate celelelte tipuri de modele sunt greu de construit in ipoteze generale
privind repartiţiile sosirilor şi serviciilor şi de aceea se recurge la simulare.
Noi am prezentat (in Cap.1) şi câteva modele de simulare in GPSS, care de
regulă au condus la programe scurte dar nu şi flexibile. Modelele ce vor fi
construite in acest capitol vor putea fi extinse la diverse repartiţii ale lui AT
şi ST.
Exemple de modele matematice de aşteptare sunt:
Exp(λ)/Exp(µ)/1 : (∞; F IF O) (7.1)
care este cel mai simplu model cu o staţie de serviciu;
Exp(λ)/Exp(µ)/N (paralele); (∞; F IF O) (7.2)
care este un model cu N staţii paralele presupuse identice (adica au aceeaşi
repartiţie pentru ST -ul fiecăreia), coada poate fi infinită, iar disciplina este
standard (primul venit primul servit).
In cazul modelelor de simulare, pentru modelele anterioare, vom folosi
notaţiile:
•/ • /1 : (∞; F IF O) (7.10 )
•/ • /N : (∞; F IF O) (7.20 )
semnul • insemnând ca putem folosi orice repartiţii de probabilitate pentru
AT şi ST. De asemenea, in descrierea algoritmilor (sub forma de scheme
logice!) vom folosi in locul semnului de atribuire := semnul =. Modelele
matematice ale teoriei cozilor se bazează pe utilizarea unor procese Markov
particulare numite procese stochastice de naştere şi deces, procese ce vor fi
studiate mai intâi. Numărul de clienţi N (t) in sistemul de aşteptare la un
moment dat de timp t este un astfel de proces stochastic. Aceste procese stau
la baza modelării şi a altor sisteme naturale cum sunt populaţiile biologice
(de unde şi denumirea lor de procese de naştere şi deces).
o(∆t)
lim o(∆t) = 0, lim = 0. (7.4)
∆t→0 ∆t→0 ∆t
Procesul este cu creşteri indepentente in sensul că oricare ar fi t1 < t2 < t3 <
t4 , variabilele N (t2 ) − N (t1 ) şi N (t4 ) − N (t3 ) sunt independente stochastic,
iar N (t + h) − N (t) = N (h), ∀t, h > 0 (adică procesul este de numărare).
Constantele λn se numesc intensităţi de natalitate iar constantele µn
se numesc intensităţi de mortalitate. Aceste constante sunt caracteristice
pentru procesul N (t). Funcţiile o(∆t) exprimă cantităţi neglijabile in raport
cu ∆t, deci care tind la zero odată cu ∆t, dar mai repede decât acesta şi
mulţimea lor este inchisă faţă de operaţiile de adunare şi inmulţire cu alte
funcţii sau constante (adică sunt inchise la liniaritate). Relaţiile (7.3) spun
că naşterile şi decesele evoluează rar in timp. Intensităţile de natalitate
şi cele de mortalitate corespund in cazul sistemelor de aşteptare sosirilor,
respectiv serviciilor (adică plecărilor) din sistem.
•Teorema de bază. Cu ajutorul proprietăţilor (7.3) se pot determina
probabilităţile Pn (t) = P [N (t) = n], care reprezintă repartiţia procesului de
naştere şi deces.
Pn0 (t) = −(λn + µn )Pn (t) + λn−1 Pn−1 (t) + µn+1 Pn+1 (t), n > 0. (7.6)
−Zn−1 + Zn = 0
adică
Zn = Zn−1 ,
iar deoarece din (7.5”) avem Z0 = 0, avem şi Zn = 0, de unde
µn+1
pn+1 = pn , n ≥ 0.
λn
Prin recurenţă se deduce că
∞
Y λα
pn = p0 . (7.8)
µ
α=0 α+1
T W T = T T ID = 0; W T = T ID = 0; ICOU N T = 0 (7.11)
unui client. Pentru a inţelege mai departe algoritmul mentionăm faptul că
in acest model ceasul variabil al simularii nu apare explicit (el este implicit),
in sensul că de fapt pentru alegerea evenimentului ce trebuie prelucrat se
foloseşte regula primului eveniment urmator, care este o consecinţă a tehnicii
bazată pe ceasul cu creştere variabilă. Blocul (3) realizează o ajustare a
timpului de sosire, care permite alegerea evenimentului (urmator) ce trebuie
prelucrat şi care poate conduce fie la calculul timpului de aşteptare (in blocul
(6)), fie la calculul timpului de lenevire a staţiei (in blocul (7)). Este evident
ce face blocul (4) (care poate fi situat cu acelaş efect şi inainte de blocul (8)).
Blocul (5) este blocul care alege evenimentul următor, ţinând seama şi de
disciplina F IF O, iar blocul (8) precizează condiţia de terminare a simulării;
el conduce la repetarea blocurilor (2)-(8) până când se simulează N S servicii.
160 CAP. 7. CATEVA MODELE DE SIMULARE
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
? ?
!a ?
DA !!! aa(8)
aa
!
aaICOUNT < NS!!
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 161
Acest model, faţă de modelul precedent, foloseşte in plus variabilele şi parametri:
T AT = momentul ultimei sosiri (i.e. ceasul sosirilor);
T ST = momentul terminării ultimului serviciu (i.e. ceasul servirilor);
CLOCK = ceasul simularii, cu creştere constantă;
C = ora ceasului (i.e. o constantă cu care se incrementează ceasul);
I = variabila intreagă care reprezintă lungimea curentă a cozii;
N T = parametru de intrare care reprezintă durata impusa a simularii
(adica simularea se termina când CLOCK ≥ N T ).
Iniţializările in acest model sunt:
T W T = T T ID = T AT = T ST = 0, CLOCK = 0, I = 0. (7.110 )
START
? (1)
Initializari si citirea
parametrilor de intrare
? (2)
Genereaza AT
? (3)
TAT=TAT+AT
? (4)
CLOCK=CLOCK+C
-
!a ?
DA !! ! aa(5) NU
a TAT≥TST a
aa !! ?
? (6) a! ? ! DA Q (10)
QQNU
I=I+1 QQ ? 0
I =
WT=TST−TAT ? (11) Q
(12)
?
TWT=TWT+WT TID=TAT-TST
I= I−1
!a? TTID=TTID+TID
! ! a (7)
aa TST=TAT
DA!!
CLOCK > TAT!a
aa ! ? ?
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
? ?
!a ?
DA !! ! a a (16)
! CLOCK < NTa!
a a
aa !!
aa! ? !
(17)
?NU
Calculeaza parametrii de
iesire sau alte statistici si
livreaza rezultatele utile
?
STOP
SST = T ST − T T ID (7.13)
rezultă că
λn = λ, ∀n ≥ 0. (7.150 )
In mod asemănător deducem că
µn = µ. (7.1500 )
164 CAP. 7. CATEVA MODELE DE SIMULARE
adică
pn = ρn (1 − ρ).
Conform relaţiei cunoscute dintre repartiţia exponenţială negativa şi repartiţia
Poisson, rezultă că λ este numărul mediu de sosiri pe unitatea de timp, iar
µ este numărul mediu de clienţi serviţi pe unitatea de timp. De aceea ρ
reprezintă intensitatea de trafic a clienţilor prin sistem.Pentru a avea sens p0
trebuie ca 0 < ρ < 1. (Deci un sistem de aşteptare cu λ > µ nu are sens!).
Pentru validarea modelelor de simulare cu o staţie putem deci folosi modelul
matematic anterior. Formulele (7.9),(7.9’),(7.10),(7.10’) devin respectiv
∞
(n − 1)ρn (1 − ρ) =
X
E[W L] =
n=2
∞ ∞
= ρ2 (1 − ρ) (n − 1)ρn−2 = ρ2 (1 − ρ) nρn−1 =
X X
n=2 n=1
ρ2
= ,
1−ρ
1 ρ2
E[W T ] = E[ST ]E[W L] = E[W L] = . (7.17)
µ µ(1 − ρ)
1
X
E[N ID] = (1 − n)pn = p0 = 1 − ρ,
n=0
1−ρ
E[T ID] = E[AT ]E[N ID] = . (7.18)
λ
Validarea modelelor de simulare se realizează când
sau dacă
|E(W T ) − AW T | ≤ (7.190 )
7.3. SIMULAREA UNUI SISTEM CU N STAŢII PARALELE 165
E(W ) 1
Ie = , E(W ) = E[N (t)] (7.20)
E(ST ) µ
T W T + SST
Ie = (7.200 )
SST
şi el poate fi utilizat şi pentru validare.
Pentru un model de aşteptare cu o staţie, cu sosiri exponenţiale şi servicii
oarecare ( adică modelul Exp(λ)/B/1 : (∞; F IF O), E(B) = E(ST ) = µ1 ,)
s-a arătat că
ρ
Ie = (1 + Cs2 ) (7.2000 )
2(1 − ρ)
unde Cs este coeficientul de variabilitate al timpului de serviciu definit astfel
p
V ar(ST )
Cs = .
E(ST )
././N : (∞, F IF O)
bancă (ghişeele care servesc clienţii), etc. Lista variabilelor şi parametrilor
modelului este
AT = intervalul de timp (aleator) dintre două veniri consecutive;
ST (J) = durata unui serviciu (aleator) la staţia J, 1 ≤ J ≤ N, (N este
parametru de intrare; tot parametri de intrare sunt parametri repartiţiilor
de probabilitate ale variabilelor aleatoare AT şi ST (J));
W T = timpul de aşteptare in coadă al unui client oarecare;
T ID = timpul curent de lenevire al staţiei care incepe un serviciu;
T AT = momentul sosirii ultimului client (clientul curent);
T T (J) = timpul staţiei J la plecarea din ea a ultimului client (ceasul
staţiei J);
T T M IN = ceasul simulării, cu creştere variabilă (definit ca cel mai mic
dintre ceasurile T T (J));
L = staţia cu cel mai mic ceas, adică T T M IN = T T (L);
N S = numărul de clienţi ce trebuie serviţi pe parcursul simulării, este
parametru de intrare;
ICOU N T = contur care număra serviciile;
SST (J) = suma duratelor de serviciu ale staţiei J;
SW T (J) = suma timpilor de aşteptare ai clienţilor serviţi de staţia J;
T T ID(J) = timpul total de lenevire al staţiei J;
DIF = T AT − T T M IN = variabilă de lucru.
Schema logică a modelului de simulare este prezentată in Fig.7.3. In
blocul (1) sunt citiţi parametri de intrare şi sunt făcute iniţializările
λn = λ, n ≥ 0. (7.23)
nµ, 1 ≤ n ≤ N − 1,
µn = (7.24)
N µ, n ≥ N.
168 CAP. 7. CATEVA MODELE DE SIMULARE
(1)
START
?
Citeste parametrii de intrare
si fixeaza 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))
1≤J≤N
TTMIN=TT(L)
? (8)
ICOUNT=ICOUNT+1
?
! !!aaa (9)
> NS
!
aa ICOUNT ?!a !
aa!! ? (16)
≤ NS Calculeaza statisticile
?
Genereaza AT (10) si livreaza
rezultatele utile
?
TAT = TAT + AT
DIF = TAT - TTMIN
?
STOP
!a
! !! aa(11) +
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
?
Notând
ρ
ρ∗ =
N
se deduce prin calcule că
∞
N N +1 ρ∗N +1
" ! #
Nn ∗ d X
∗n−1
E(W L) = p0 ρ ρ − =
N ! dρ n=N
N ! 1 − ρ∗
N N ρ∗N +1 λµρN
= ∗ 2
= . (7.26)
N ! (1 − ρ ) (N − 1)(N µ − λ)2
Mărimea ρ∗ se numeşte intensitatea de trafic a sistemului de aşteptare.
Timpul mediu de aşteptare este
E(W T ) = E(W L)E(S), E(S) = E(ST )/N,
unde E(S) este timpul mediu de serviciu al sistemului. In final se obţine
λρN
E(W T ) = . (7.260 )
N (N − 1)!(N µ − λ)
In mod asemănător se calculează numărul mediu de staţii care lenevesc şi
timpul mediu de lenevire al staţiilor, adică
N −1 N −2
" #
X X ρn N ρN −1
E(N ID) = (N − n)pn = (N − ρ) + p0 , (7.27)
n=0 n=0
n! (N − 1)!
170 CAP. 7. CATEVA MODELE DE SIMULARE
N −2 n
" #
1 X ρ N ρN −1
E(T ID) = E(N ID)E(AT ) = (N − ρ) + p0 . (7.270 )
λ n=0
n! (N − 1)!
Din modelul de simulare se obţin respectiv următoarele estimaţii pentru
E(W T ) şi E(T ID) P
SW T (L)
L
AW T = , (7.2600 )
NS
P
T T ID(L)
AT ID = L . (7.2700 )
NS
Ca şi in cazul modelului cu o staţie, condiţiile de validare pentru acest model
sunt
|E(W T ) − AW T | < , |E(T ID) − AT ID| < .
In caz de validare, inseamnă că modelul de simulare construit poate fi utilizat
şi dacă repartiţiile variabilelor aleatoare AT şi ST sunt oarecare (diferite de
exponenţiale).
când se cere intrarea optimă. Am văzut că in acest caz intrarea in stoc
se realizează prin comenzi. Reaprovizionarea stocului şi variaţia acestuia se
prezintă grafic in Fig. 7.4. Comenzile q1 , q2 , ... intră in stoc la momentele
t1 , t2 , ... Intervalul Ti = ti+1 − ti este ciclul de reaprovizionare care paote fi
constant sau variabil.
172 CAP. 7. CATEVA MODELE DE SIMULARE
q
T = . (7.29)
r
I(t)
6
q
@
I
@ I
@@
@ @
@ @
@ @
@ @
@ @
@ @
@ @
@ @
@ @
@ @ - t
0 T 2T
I(t)
6
@
I
@ S
@ S
@ S
S @ S
@ S
q S
@
@ 00 S
t S
@ - t
@ S
0 T S 2T
t 0 @
@ SS
s hS 2 d(rT − S)2
C(S, T ) = + + . (7.34)
T 2rT 2rT
Impunând condiţii de minim in (7.34), adică
∂C ∂S
= 0, = 0,
∂S ∂T
deducem in final valorile Sˆ1 , Tˆ1 care realizează costul minim Ĉ1 ,
r s
2s 1 d
Tˆ1 = , ρ= ,
rh ρ h+d
r r s
2rs √ 2rs 1
Sˆ1 = ρ, qˆ1 = Tˆ1 r = . (7.35)
h h ρ
Se observă că 0 < ρ < 1, care conduce la
√
Ĉ1 = ρCˆ0 < Ĉ0 ,
de unde rezultă la prima vedere că modelul clasic al lipsei de stoc este mai
bun dacât modelul clasic al lotului economic. Coeficientul ρ satisface relaţia
ˆ
ρ = Sqˆ11 , de unde rezultă că (1 − ρ)% poate fi interpretat ca indice de lipsă.
Deci dacă s-ar da indicele de lipsă α = 1 − ρ atunci ar rezulta că d = 1−α α h
adică ar rezulta că există o dependenţă strictă intre costurile h şi d, ceea ce
nu este intocmai adevărat in practică. Acest fapt constituie deci o critică a
modelului clasic al lotului economic.
Q = comanda optimă;
P = nivelul de reaprovizionare;
L = timpul de avans;
Genereaza R
CLOCK = CLOCK + 1
!a?
!! aa (3)
Nu ! a
aCLOCK≤TT
aa !!
? (13) a!
? !
TS = CH + CD + CS ! ?Da
a
!!! aa (4) Da
a
? (14) aaT=CLOCK !!
aa?!! ? (5)
Scrie rezultatele VI = VI + Q
Nu
simulǎrii ?
VI = VI - R (6)
? ?
!!aa(7) 6
!! VI aa < 0
STOP aaa !!
a?!! ? (8)
≥ CD = CD - VI∗D
VI = 0
?
CH = CH + VI ∗ H (9)
? (7) ?
!
≥0 !!aaa <0 !!aaa(10)
!
a VI a ! Da -
aa !! !
aaa
P < VI !
!
a
a ?!! ? !
(9) ? ? (8) a!
?Nu
CH=CH+VI∗H CD=CD-VI∗D
! !!aaa(11) Nu -
!T ≤ CLOCK!
a a
? ? aa ! !
a!
? Da (12)
?
Fig. 7.8’ CS = CS + S
-
Genereaza L
T = CLOCK + L
ææææææææææææææææææææææææææææææææææææææææææææææææææææææææææææ
7.4. MODELE DE SIMULARE PENTRU STOCURI 179
R(L) − ml P − lm
P rob(R(L) > P ) = P rob( √ > √ ) = α,
lσ lσ
şi deoarece
R(L) − lm
Z= √ ; N (0, 1)
lσ
rezultă
Zzα
P − lm t2
√ = zα , unde e− 2 dt = 1 − α.
lσ
−∞
Schema logică a modelului de simulare este dată de Fig. 7.8 şi ea se autoex-
plică. Modelul de simulare este construit in ipoteza că cererea nesatisfăcută
se pierde, fapt ilustrat de blocurile (7) şi (8) din schemă. Printr-o mod-
ificare minoră se poate introduce in model ipoteza că cererea nesatifăcută
se păstrează. Acest fapt este ilustrat prin blocurile (7),(8),(9) din figura
incadrată 7.8’ care ar trebui să inlocuiască blocurile (7),(8) din Fig. 7.8.
Introducând in Fig. 7.8 instrucţiuni corespunzătoare de afişare (scriere), se
poate obţine planul de reaprovizionare pe perioada simulată T T , constând
din momentele intrării in stoc T şi comenzile optime Q.
• Al doilea model. Acest model este asemănător primului model,
dar el foloseşte unele ipoteze mai generale ce vor fi precizate in continuare.
180 CAP. 7. CATEVA MODELE DE SIMULARE
Astfel, sunt folosite multe din variabilele şi parametri primului model, dar
sunt incluse şi următoarele:
AR=media mobilă a cererii calculată pe M unităţi de timp precedente;
RS= abaterea medie pătratică a cererii ca medie mobilă pe M perioade
de timp precedente;
AL= media mobilă a timpului de avans calculat din datele pe N perioade
precedente;
K = zα = α− cuantila repartiţiei normale N (0, 1) (folosită şi in modelul
precedent).
Se presupune deci că rata cererii R ; N (µ(t), σ(t)), are parametri vari-
abili in timp iar L are de asemenea media E[L] = l(t) variabilă in timp. Se
presupune că aceste variabile aleatoare au parametri constanţi pe perioade
mici de timp de lungimi M respectiv N, parametri ce sunt estimaţi ca medii
mobile de forma
M
P
Ri
i=1 SU M R
AR = = (7.39)
M M
N
P
Lj
j=1 SU M L
AL = = (7.40)
N N
v
2
M M
u
2
uP
Ri
P
Ri s
SU M R 2
u
SSU M R
u
u i=1 i=1
SR = u − = − . (7.41)
t M M M M
s s
2.AR.S H +D
Q= (7.42)
H D
7.4. MODELE DE SIMULARE PENTRU STOCURI 181
(1)
START
?
Citeste parametrii de intrare
si fixeaza conditiile initiale
?
Am
(2)
DO I=1,M J
J
Genereaza L ? (13)
!a
!! aa < 0
RR(I) = R
SUMR=SUMR+R !
aa VI !a !
SUMR=SUMR+R∗R aa!! ? (14)
-
? VI = 0
(3)
DO J=1,N J ≥0
CD = CD-VI∗D
J
?
?
Genereaza L
CH = CH+VI∗H (15)
LL(J) = L
?
m
Bm B a
!!aaa(16)
SUML = SUML+L
- Da !
! P < VI a
? aa !
a !
? !!
Genereazǎ R (4)
?Nu
m !!aaa(17)
SSUMR=SSUMR+R-RR(1)
Da !
SSUMR=SSUMR+R∗R- 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 logică a acestui model de simulare este prezentată in Fig. 7. 9.
Condiţiile iniţiale sunt (7.36) precum şi cele ce rezultă din considerarea
noilor variabile adică
SU M R = SSU M R = SU M L = 0. (7.44)
Exerciţii.
E 7.1. Precizaţi câteva caracteristici ale modelului de aşteptare
λn = λ, n ≥ 0, µn = µ, 1 ≤ n ≤ M + 1.
De aici se deduce
∞
X nρn (1 − ρ) ρ(1 + (M + 1)(ρ − ρM ) − ρM +1 )
E[N (t)] = =
n=0
1− ρN +1 (1 + ρ)(1 + ρM +1 )
M
X (n − 1)ρn (1 − ρ) ρ2 [(M − 1)ρm + 1 − M ρM −1 ]
E[W L] = = .
n=1
1 − ρM +1 (1 − ρM +1 )(1 + ρ)
E[W L] 1−ρ
E[W T ] = , E[N ID] = p0 , E[T ID] = .
µ λ(1 − ρM +1 )
Exp(λ)/Exp(µ)/N : (M, F IF O)
adică un model cu N staţii paralele identice şi cu coada finită M, M > N. Să
se determine repartiţia numărului de clienţi in sistem şi câteva caracteristici
ale modelului.
Indicaţie. Asemănător exerciţiului precedent avem
n!µ, daca 1 ≤ n ≤ M
λn = λ, n ≥ 0, µn = .
N !µN n−N , daca N < n ≤ N + M
λl P
Z
1−α = xl−1 e−λx dx
Γ(l) 0
[2] ERMAKOV,E.S. (1974). Metoda Monte Carlo şi probleme inrudite. Ed-
itura Tehnică, Bucureşti. (Traducere din Limba Rusă).
185
186 BIBLIOGRAPHY