Documente Academic
Documente Profesional
Documente Cultură
Maria MIROIU
TEHNICI
DE
SIMULARE
2012
CUPRINS
Prefa
Capitolul I. SISTEME, MODELE, SIMULARE
2
4
4
4
5
6
9
12
13
16
18
18
20
23
23
25
3.1Metoda invers
3.2Metoda respingerii
3.3Metoda compunerii
3.4Alte metode de simulare
3.5Metode particulare
Capitolul IV. SIMULAREA VECTORILOR ALEATORI
25
29
31
34
38
47
47
48
53
56
57
59
59
66
67
73
77
88
Bibliografie
100
PREFA
Lucrarea
de
fa
a
fost
elaborat
n
cadrul
Proiectului
POSDRU/56/1.2/S/32768, coordonat de Ministerul Educaiei, Cercetrii, Tineretului
i Sportului, intitulat: Formarea cadrelor didactice universitare i a studenilor n
domeniul utilizrii unor instrumente moderne de predare-nvare-evaluare pentru
disciplinele matematice, n vederea crerii de competene performante i practice
pentru piaa muncii.
Finanat din Fondul Social European i implementat de ctre Ministerul
Educaiei, Cercetrii, Tineretului i Sportului, n colaborare cu The Red Point, Oameni
i Companii, Universitatea din Bucureti, Universitatea Tehnic de Construcii din
Bucureti, Universitatea Politehnica din Bucureti, Universitatea din Piteti,
Universitatea Tehnic Gheorghe Asachi din Iai, Universitatea de Vest din
Timioara, Universitatea Dunrea de Jos din Galai, Universitatea Tehnic din ClujNapoca, Universitatea 1 Decembrie 1918 din Alba-Iulia, proiectul contribuie n mod
direct la realizarea obiectivului general al Programului Operaional Sectorial de
Dezvoltare a Resurselor Umane POSDRU i se nscrie n domeniul major de
intervenie 1.2 Calitate n nvmntul superior.
Proiectul are ca obiectiv adaptarea programelor de studii ale disciplinelor
matematice la cerinele pieei muncii i crearea de mecanisme i instrumente de
extindere a oportunitilor de nvare.
Evaluarea nevoilor educaionale obiective ale cadrelor didactice i studenilor
legate de utilizarea matematicii n nvmntul superior, masterate i doctorate
precum i analizarea eficacitii i relevanei curriculelor actuale la nivel de
performan i eficien, n vederea dezvoltrii de cunotine i competene pentru
studenii care nva discipline matematice n universiti, reprezint obiective
specifice de interes n cadrul proiectului. Dezvoltarea i armonizarea curriculelor
universitare ale disciplinelor matematice, conform exigenelor de pe piaa muncii,
elaborarea i implementarea unui program de formare a cadrelor didactice i a
studenilor interesai din universitile partenere, bazat pe dezvoltarea i armonizarea
de curriculum, crearea unei baze de resurse inovative, moderne i funcionale pentru
predarea-nvarea-evaluarea n disciplinele matematice pentru nvmntul
universitar sunt obiectivele specifice care au ca raspuns materialul de fa.
Formarea de competene cheie de matematic i informatic presupune crearea
de abiliti de care fiecare individ are nevoie pentru dezvoltarea personal, incluziune
social i inserie pe piaa muncii. Se poate constata ns c programele disciplinelor
de matematic nu au ntotdeauna n vedere identificarea i sprijinirea elevilor i
studenilor potenial talentai la matematic. Totui, studiul matematicii a evoluat n
exigene pn a ajunge s accepte provocarea de a folosi noile tehnologii n procesul
de predare-nvare-evaluare pentru a face matematica mai atractiv.
2
CAPITOLUL I
SISTEME, MODELE, SIMULARE
Exemple:
Oamenii triesc n sisteme sociale.
Activitatea tehnologic a produs sisteme fizico-tehnice complexe.
Un automobil este un sistem format din componente care acioneaz mpreun
pentru a asigura transportul.
Familia este un sistem de convieuire i de cretere a copiilor.
O clasificare a sistemelor poate fi fcut astfel:
sisteme deschise
sisteme nchise
4
Intrri
Sistem
Aciune
Starea sistemului
Informaia
Bucla conexiunii inverse este o cale nchis care leag n aceeai secven o
decizie ce comand aciunea, starea sistemului i informaia despre starea sistemului,
n final ntorcndu-se la punctul de luare a deciziilor.
1.1.2 Modele
Modelarea este o metod de studiu a unor procese i fenomene care se
realizeaz prin substituirea obiectului real al cercetrii. Ca metod de cercetare este
destul de veche, modelele fizice prin similitudine, apoi cele construite prin analogie
nlocuind de multe ori obiectul real supus cercetrii.
Un model presupune, n general, reprezentarea sistemului ca o mulime de
pri n interaciune una cu alta.
Modelul poate fi:
un duplicat al sistemului;
o reprezentare simbolic (de exemplu matematic) a sistemului;
sistemul.
Modelele constituie reprezentri ale realitii. Dac ele ar fi tot att de greu de
manevrat ca realitatea, prin utilizarea lor nu s-ar obine niciun avantaj. De obicei, se
pot construi modele mult mai simple dect realitatea, pe baza crora putem s
prevedem i s explicm cu un nalt grad de acuratee, fenomene complexe. Explicaia
const n faptul c, dei pentru a descrie un fenomen este necesar un numr mare de
variabile, de obicei puine dintre acestea au rol esenial. Important este s descoperim
care sunt acele variabile i relaiile dintre ele.
Modelarea matematic ocup un loc important n ansamblul metodelor de
modelare, n special prin facilitile oferite de calculatoarele cu capacitate mare de
memorare i vitez mare de lucru.
Modelele matematice au aprut din necesitatea de a descrie i studia formal
comportarea unei categorii de sisteme reale, cu scopul de a controla i dirija
activitatea lor viitoare.
Elaborarea unei structuri matematice mpreun cu o list de corespondene
ntre simbolurile matematice i obiectele situaiei concrete considerate a condus la
ceea ce numim model matematic.
n general, un model M al unui sistem S este un alt sistem S care din anumite
puncte de vedere este echivalent cu S, dar care este mai uor de studiat dect S. Printrun sistem S nelegem urmtoarea structur de mulimi:
S = {T, X, U, V, Y, , }
unde
- T este timpul de baz utilizat pentru cronometrarea i ordonarea evenimentelor;
acesta este un numr real dac sistemul este cu timp continuu sau ntreg dac
sistemul este cu timp discret;
- X reprezint mulimea intrrilor n sistem;
- U este mulimea segmentelor de intrare n sistem, prin segment de intrare n sistem
asociat funciei u : T X nelegndu-se graficul funciei u pe un interval [t0, t1],
adic:
u([t0, t1]) = {(t, u(t)) | t0 t t1};
- V este mulimea strilor sistemului. Starea este un concept de modelare a structurii
interne a sistemului, ce conine istoria acestuia i care-i afecteaz prezentul i
viitorul i mpreun cu forma intrrilor determin n mod unic ieirile din sistem;
6
10
250
x2 120
x
3
80
x , x 2, 3 0
x
P p(r)[rc (n r)l]
r 0
p(r)nc
rn1
11
Pasul simulrii este prin definiie o etap n care toate variabilele de intrare iau
valori constante n timpul executrii programului.
-
Observaii:
variabilele de ieire depind de variabilele de intrare; dependena este determinat
de structura logic a modelului de simulare considerat;
o valoare a unei variabile de ieire este rezultatul executrii unui pas al
programului de calcul asociat modelului;
dac cel puin una din variabilele de intrare este stochastic, atunci cel puin una
din variabilele de ieire este stochastic.
13
14
15
16
e1
T1
e2
T2
e3
e4
T3
e1
T1
T2
e2e3e4
T3
T
T4
17
CAPITOLUL II
SIMULAREA NUMERELOR ALEATOARE
18
Un alt procedeu fizic este cel al intensitii unui curent msurat la momente
distincte astfel nct valorile voltajelor U(t1), U(t2),, U(tn), s poat fi
considerate ca independente. n cazul n care un astfel de dispozitiv se
folosete pentru generarea de numere aleatoare cu o anumit repartiie,
dispozitivul este conectat la calculator astfel nct el s poat produce numere
aleatoare la nevoie.
3. Procedee aritmetice
Pentru generarea numerelor aleatoare cu ajutorul calculatoarelor electronice
numerice se folosesc relaii de recuren de forma:
Xn+1 = f(Xn, Xn-1,, Xn-m),
n>m, m0, unde ( X n )nN , sunt numere naturale, presupunndu-se c
vectorul valorilor iniiale X0, X1,, Xm este dinainte fixat.
Un procedeu aritmetic de obinere a numerelor aleatoare bazat pe o relaie de
recuren de forma de mai sus se numete generator. innd seama de faptul c
numerele generate n acest mod ele nu sunt ntmpltoare, dar pentru anumite alegeri
ale lui f se pot obine numere cu proprieti statistice apropiate de cele ntmpltoare,
un asemenea generator va produce numere pseudo-aleatoare sau cvasi-aleatoare.
Pentru ca un procedeu aritmetic s poat fi numit generator de numere
pseudo-aleatoare, trebuie s ndeplineasc urmtoarele condiii:
1. Generatorul trebuie s fie simplu i rapid, ceea ce nseamn c el trebuie s fie
uor de programat, s ocupe memorie puin i s solicite timp de calcul redus.
2. Generatorul trebuie s produc iruri de numere de lungime orict de mare,
fr ca numerele irului s se repete. Aceasta ar nsemna s nu produc iruri
cu perioad finit. innd seama c mrimea cuvntului unui calculator este
limitat, ceea ce nseamn c orice calculator poate lucra numai cu numere
ntregi mai mici dect un numr dat, rezult c nu putem construi generatori cu
perioad infinit. De aceea, cerina ca un generator s produc iruri orict de
lungi de numere se reduce la faptul c generatorul trebuie s aib perioad ct
mai mare posibil.
3. Generatorul trebuie s produc numere independente stochastic unul fa de
altul. Practic acest lucru nu este realizabil cu calculatorul, dar un generator este
acceptat dac produce numere care sunt foarte puin dependente stochastic sau
foarte puin corelate. Gradul de independen stochastic se verific cu ajutorul
testelor statistice.
4. Generatorul trebuie s produc numere a cror repartiie s fie uniform, ceea
2
ce se poate verifica cu ajutorul testelor de concordan (testul , testul
Kolmogorov etc.).
Datorit simplitii lor, generatorii cel mai frecvent utilizai sunt aceia care
produc numere pseudo-aleatoare ntregi.
19
unde
F(x1, x2,, xn) = P(X1<x1, X2<x2,, Xn<xn).
Variabilele X1, X2, ..., Xn sunt identic repartizate dac toate au aceeai
repartiie Fi(x) = Fj(x), pentru i j.
A genera / simula o variabil aleatoare nseamn a produce o selecie.
De obicei, numerele aleatoare sunt valorile unei selecii referitoare la o
variabil aleatoare U care are repartiie uniform.
Dac U este o variabil aleatoare discret uniform, atunci toate valorile ei
sunt egal probabile. De exemplu:
0,
x0
0
1
x1
X:
, F x 1 2, 0
12
12
1,
x1
0
1 2 K
n
X:
1 n 1 n 1 n 1 n 1 n
k, x a,b
0, x a,b
2
0
xa
F x x ab a, a x b
1,
xb
n acest caz, se spune c variabila aleatoare U are repartiie uniform pe (a, b).
0,
0,
xa
xb
PV x Pa b aU x PU x ab a x ab a,
1,
xb
- funcia de repartiie: x
0,
x,
x 0, 1
x0
0 x 1
x 1
1,
x I , x = (x1, x2)
f x 1 b a b a,
0,
n rest
Dac X = (X1, X2) este vector aleator cu dou componente, f(x1, x2) este
densitatea de repartiie a vectorului X, F(x1, x2) este funcia de repartiie a vectorului
X, iar fi(xi), Fi(Xi) sunt densitile i respectiv funciile de repartiie marginale,
f1(x1), F1(x1) = F(x1,),
f2(x2), F2(x2) = F(x2,),
atunci independena stochastic revine la:
F(x1, x2) = F1(x1) F2(x2)
sau
f(x1, x2) = f1(x1) f2(x2)
21
x1 a, x2 c
2
2
F x , x x ax
cb ad c x , x 2 I
1
x1 b, x2 d
iar
Atunci:
22
n1
Fiind dat numrul aleator ntreg Xn, urmtorul numr pseudo-aleator Xn+1 se
definete dup von Neumann ca fiind format din cifrele prii din mijloc a ptratului
lui Xn. Astfel, ridicnd pe Xn la ptrat se obine un numr cu 4a cifre; lund cele 2a
2
cifre de la mijlocul irului de 4a cifre ale lui X n se obine numrul Xn+1. Acest
procedeu poate fi exprimat prin relaia de recuren:
n 1
2
Xn
X n2 2a
b3a
23
23
14
24
CAPITOLUL III
SIMULAREA VARIABILELOR ALEATOARE
Fie C o familie de variabile aleatoare pentru care se cunosc algoritmi de
generare. Se pune problema s determinm un algoritm T care s transforme o
mulime de variabile aleatoare CC ntr-o mulime de variabile aleatoare X, X = T
(C1, C2, ..., Cn).
Cu alte cuvinte, pornind de la o familie de variabile aleatoare pentru care
cunoatem algoritmi eficieni de generare din punct de vedere al calculabilitii, s
determinm algoritmul care genereaz variabile aleatoare mai dificil de generat.
Pentru generarea variabilelor aleatoare se utilizeaz urmtoarele metode:
1.
Metoda invers
2.
Metoda respingerii
3.
Metoda compunerii (amestecrii)
4.
Alte metode de generare a variabilelor aleatoare
5.
Metode particulare de generare a variabilelor aleatoare
3.1 Metoda invers
Lema lui Hincin-Smirnov: Dac X este o variabil aleatoare oarecare avnd
funcia de repartiie F(x), iar U este un numr aleator uniform pe (0,1), atunci
1
variabila aleatoare Y F U are funcia de repartiie F(x).
Demonstraie. Fie X o variabil aleatoare avnd funcia de repartiie F(x). Atunci:
1
F (x) PY x P F U x PU F x
1
F x, unde F
este inversa funciei de repartiie.
X n nN de variabile
aleatoare cu
25
2. Metoda invers poate induce multe erori de calcul datorit prezenei unor
funcii ca ln, exp etc. care se calculeaz dup valori aproximative.
3. n multe cazuri funcia de repartiie nu poate fi inversat i atunci se
apeleaz la metode numerice care de asemenea pot induce erori de calcul.
Metoda invers poate fi aplicat pentru simularea variabilelor aleatoare de tip
continu, discret i a vectorilor aleatori.
Presupunem c dispunem de un generator de numere aleatoare Random
Numbers Generation (RNG) pentru generarea de numere aleatoare uniforme pe (0,1)
i independente stocastic. n aceste condiii, algoritmul de simulare a unei valori de
selecie a unei variabile aleatoare pentru care se cunoate funcia de repartiie F(X), se
obine aplicnd lema Hincin-Smirnov pentru cazul discret i continuu.
Simularea variabilelor aleatoare de tip discret
x 2 K x
x
Fie X :
p 2 K p
, 0 pi
1 ()i 1,2,...,n,
pi 1
i 1
p2
Generm un numr aleator U care va cdea ntr-un interval acoperit cu probabiliti pi,
ceea ce nseamn c valoarea de selecie va fi X = Xi. Putem s generm un indice
aleator.
Se genereaz U, apoi se determin i = [LU] + 1 (se determin n al ctelea
interval se afl U).
0
1
L
0
1
2
1.
2.
3.
4.
Fi X p , 0 p
1 1
j0
Se genereaz cu RNG un numr aleator U uniform pe (0, 1).
jj+1
Dac U > Fj transfer la Pas 2.
Ieire X = X j.
26
unde X1, X2, ..., Xn sunt n valori obinute prin reiterarea algoritmului.
Se compar aceste valori cu media i dispersia teortetice i cu ct erorile sunt
mai mici, rezult c algoritmul este mai bun.
2
Algoritmul mai poate fi verificat aplicnd testul sau testul Kolmogorov.
Metoda invers pentru soluii numerice
Metoda invers poate fi aplicat i n cazul cnd nu putem calcula explicit
inversa funciei F. n aceste cazuri, trebuie rezolvat ecuaia F(X) = U numeric, ceea
ce cere un volum mult mai mare de timp cnd F este continu. Desigur c aceasta
conduce la un algoritm care are o precizie sczut.
n cele ce urmeaz X este necunoscut, fiind soluia exact a ecuaiei F(X) =
*
27
Cei mai cunoscui algoritmi numerici pentru calculul inversei F(X) = U sunt:
Metoda biseciei:
Intrare: un interval (a, b) care s conin soluia:
repet
X (a + b) / 2
dac F(X) U
atunci a X
altfel b X
pn cnd b a < 2.
Ieire: X.
Metoda secantei:
Intrare: un interval (a, b) care s conin soluia:
repet
X a (b a) U F (a)
dac F(X) U
atunci a X
altfel b X
pn cnd b a < .
Ieire: X.
F (b) F (a)
F ( X ) U
f(X)
pn cnd condiia de oprire este
satisfacut. Ieire: X.
Observaie. Pentru primele dou metode avem nevoie de un interval (a, b) care
s conin soluia. Metoda lui Newton Raphson converge dac F este convex sau
concav.
28
3.2
Metoda respingerii
Fie X o variabil aleatoare a crei generare dorim s o simulm, cu condiia si putem asocia urmtoarele elemente:
29
H * ( y) = P (Y y | 0 U f (y) / ( h(y))) , y R
Notm
A = {Y y}, B = { 0 U f (y) / ( h(y)) }
Atunci
f ( y)
h( y)
......
H * ( y ) .... (
y
...... ( d u )h( y )d y
0
f ( y ) / (h( y )) h( y )d y
y1
yk
f (v )
h(v)
d u )h( v )d v
0
...... f ( y )d y
y1
yk
yk
30
3.3
Metoda compunerii
unde
F (x) piGi
(x) , i 1
0 < pi < 1, ( ) 1 i m, cu m>1 m
i 1
pi 1
unde Gi(x) sunt funcii de repartiie. Se spune n acest caz c F(x) este amestecarea
familiei {G1 ,G2 ,.....,Gm } de funcii de repartiie dup variabila aleatoare discret N
pentru care P(N i) pi ,1 i m sunt cunoscute.
Se observ c funciile de repartiie {GN (x)},1 N m , depind de indicele
aleator N, iar F(x) este media n raport cu N a variabilelor aleatoare {GN (x)}.
Dac notm cu Z N variabila aleatoare care are funcia de repartiie {GN (x)} ,
atunci X Zi cu probabilitatea pi P(N i).
Observaie: Dac F(x) i Gi(x) au densitile de repartiie f(x) i respectiv gi(x),
atunci
m
f (x) pi gi (x)
i 1
Intrare Gi p ,1 i m
1
j0
1. Se genereaz un numr U uniform pe (0,1).
2. j j + 1
3. Dac U < Gj transfer la 2.
4. Ieire X = Zj.
sau
31
p
... p
iI:
p
2
2. Ieire X = Zi.
Exemplu:
La un service sosesc pentru verificare periodic automobile de k tipuri:
1
K:
2 ...
i ... k
p
... p
... p
2
i
1
k
reprezint procentul de
maini de tipul i. Durata Zi , 1 i k
unde pi , 1 i k
dintre dou sosiri de acelai tip este o variabil aleatoare exponenial negativ de
F (x) pi (1 ei x )
i1
Intrare Gi p ,1 i k
1
j0
1. Se genereaz U cu RNG.
2. j j + 1
3. Dac U < Gj transfer la pasul 2.
4. Se genereaz un nou U cu RNG.
3. Ieire X
lnU. j
32
Se observ c F(x) este valoarea medie a funciei de repartiie G(x,Y), unde Y este un
parametru aleator care are funcia de repartiie H(y).
n acest caz, algoritmul de generare a variabilei aleatoare X cnd se cunosc
algoritmi de generare pentru Y (avnd funcia de repartiie H(y)) i pentru Zy (cu
funcia de repartiie G(x,Y)) se prezint astfel:
Algoritm de generare prin amestecare continu:
0. Iniializare RNG.
Iniializarea algoritmului pentru generarea lui Y.
Iniializarea algoritmului pentru generarea lui Zy.
1. Se genereaz Y.
2. Se genereaz Zy.
3. Ieire X = Zy.
Exemplu: Fie G(x, ) 1 e
F (x)
(1 e
)e
d 1 x
2. Se calculeaz lnU .
3. Se genereaz un alt U cu RNG.
4. Ieire X lnU.
Acest algoritm poate fi utilizat pentru generarea unor valori de selecie urmnd
repartiia Pearson de tipul XI.
33
xm2
2
, xR
f x 2 e
2
2
cu m = M(X), = D (X), > 0.
Pentru m = 0 i = 1 se obine repartiia normal redus N(0,1) cu
densitatea
de repartiie
2
g x 1 e x
2 , xR
2
Legtura dintre variabila aleatoare Z avnd repartiie normal redus
Z ~ N(0,1) i variabila aleatoare X care are repartiie normal X ~ N(m, ) este dat de
transformarea X = m + Z .
Generarea variabilei aleatoare N(0,1) se poate face folosind teorema limit
central:
Teorem: Dac X 1 , X 2 ,...., X n este o selecie efectuat asupra unei variabile
2
n
are asimptotic (cnd n ) repartiia N(0,1).
Dac U1, U2, ..., Un este o selecie de numere aleatoare uniforme pe (0,1),
independente, atunci variabila Y = U1 + U2 + ...+ Un are asimptotic repartiie normal
cu media n / 2 i dispersia n / 12.
Teorema limit central poate fi folosit pentru generarea unei variabile
normale N(0,1).
34
S-a constatat c dac volumul de selecie n satisface condiia n > 10, atunci
variabila
Yn
2 poate aproxima o variabil N(0,1).
Z
n
12
Pentru n = 12 se obine Z = U1 + U2 + ...+ U12 - 6, care este o metod rapid de
generare, dar aproximativ.
Algoritm de generare a unei variabile aleatoare N(0,1) folosind teorema
limit central:
0. Iniializare RNG.
1. Se genereaz cu RNG 12 numere aleatoare U1, U2, ..., U12 uniforme i
independente pe (0,1).
2. Ieire Z = U1 + U2 + ...+ U12 - 6.
Metoda polar
Metoda polar se bazeaz pe teorema lui Box i Muler.
Teorem. Dac U1, U2 sunt dou variabile independente, uniforme pe (0,1),
atunci variabilele aleatoare
Z 1 V 2ln S i Z 2
V
1
S
cu V1 = 2U1 1, V2 = 2U2 1 i S V
2ln S
S
V , S < 1, sunt variabile aleatoare normale
2
2
N(0,1), independente.
Algoritm de generare a unei variabile aleatoare N(0,1) folosind metoda
polar:
0. Iniializare RNG.
1. Se genereaz cu RNG dou numere aleatoare U1, U2 independente,
uniforme pe (0, 1).
2
2
2. Se calculeaz V1 = 2U1 1, V2 = 2U2 1, S V1 V2 .
3. Dac S > 1 transfer la pasul 1.
4. Ieire X V 2ln S sau X V 2 2ln S
1
35
1 (x )
(x )
e
,x
f (x) ( )
0, x
unde R este parametru de locaie, > 0 este parametru de scal, > 0 este
parametru de form, iar
( ) y
0
1 y
dy
1 1 x
x e ,x 0
f ( y) ( )
0, x 0
1 1 x
x e ,x 0
f (x) ( )
, 0
0, x 0
1 x , x 0
x
e
, 0
h(x)
0, x 0
Vom genera variabila X tiind c Y este o variabil Weibull i se genereaz mai uor.
Pentru aceasta vom utiliza prima lem de respingere i vom determina pe astfel nct
f (x)
1
x x
h(x) ( ) e
Considerm cazul cnd 0 < < 1 i se obine:
1
1 1.
x
( 1)
( ) e
36
f (Y )
3. Dac U
h(Y )
4. Ieire X = Y.
transfer 2.
x e , x 0, k
f (x) (k)
0, x 0
f
1
1 f (x), x 0
(x) p
pentru Z+,
0, x 0
iar
k
p1 f (x)dx i p2 = 1 p1.
0
x)
,0
p1
x
f(x, y) = B( p, q)
unde
0, x (0,1)
1
B( p, q) x
0
p1
(1 x)
q1
dx
37
parametri p i q.
3.5
Metode particulare
2: Se calculeaz
2
1
1
v1 v2 v1 V
D transfer la 1.
4: Ieire X hU ,V .
3: Dac U ,V
38
Observaii:
1. Procedeul prezentat este un procedeu de respingere, deoarece la pasul 3
sunt respinse punctele care nu aparin domeniului D.
2. Performana algoritmului este
dat de probabilitatea de acceptare
aria D .
pa
aria I
3. Algoritmul este considerat performant dac pa este mare, adic 1
pa 1.
3
4. Probabilitatea de respingere este
pr 1 pa .
O problem dificil n aplicarea acestui algoritm const n determinarea
intervalului bidimensional I, cu 0 u1 < u2 < i - v1 < v2 < . Pentru determinea
intervalului I exist cel puin dou metode, pe care le vom prezenta n continuare.
1. Metoda multiplicatorilor lui Lagrange
Domeniul D se poate scrie sub
forma D = {(u,v) / (u,v) 0}
Aplicnd metoda multiplicatorilor lui Lagrange rezult c u1 i u2 se
determin din condiiile:
F1(u,v) = min
F1(u,v) = max
unde
F1(u,v) = u + (u,v)
cu condiia (u,v) = 0 ( este multiplicatorul lui
Lagrange). Determinm soluiile sistemului:
F
1 0
u
1 0
=> u ui , v vi , i 1, ui , vi 0 .
2 0
u
2 0
=> u ui , v vi , i 1, ui , vi 0 .
39
2. Metoda tangentelor
Se consider tangentele la domeniul D de forma u = const., respectiv v =
const. Se determin punctele
P u1, v , Q u2 , v
, R u , v1 , S u , v2
mu, v
u
du
v
Valorile u1 i u2 se determin din condiiile
u u1
vv
u2 : lim
mu, v , u2 , v
u u2
vv
v : lim mu, v 0, u , v
1
u u
vv1
v2 : lim
u u
1 0
mu, v 0, u , v2 0
vv2
v
D u, v;0 u g
12
40
Atunci, X V are funcia de repartiie F(x), unde F(x) este funcia de repartiie
U
corespunztoare densitii de repartiie f(x).
Demonstraie.
Vectorul (U, V) este uniform pe D atunci:
1 , u, v
gu, v
aria D
0, n rest
aria D dudv
D
dudv
0u g1 2
ut
v tx
1 0
u u
t x
t
x t
Dt , x v v
t x
Atunci
aria D
0t g
tdtdx
1/ 2 (x)
1/ 2
(x)
tdt
t 2 g1/ 2 (x)
dx
1
dx
K
g(x)dx
g
x t
2
V
P X x P
aria D
tdt d
f ()d F (x) .
41
2 0
g()d
1 x
f (x) = x
e
, x 0, 0
0, x 0
Aici K = , g(x) =
1e
i D
u,v;0 u
1 v
2 u
1
2
1 .
se obine:
u, v ln u 1 v 1 v 0
ln
2 u
2 u
D u, v; u, v 0
n plus,
v
d du udv vdu
2
u 2
u u
1 udv vdu
1
de unde
u
Notnd cu
u
2
u2
v
u
dv v du v 1 1 dv v du
du
u u
vu
q , avem
u du
dv qdu
2 u
Notnd cu u, v ln ue
v
u
1 v
D u, v; 0 ue 2
v 2
1 v
1 dv qdu
q
2 u
2
0 /u
q
du dv qduq 1 1 dv qdu 0 / : du
2
q
4
2
dv
1 dv q
d
1
u
1
0
2
q
1 1
d
dv
v
2
2
du
q
2 du
1 1
du
2
q
dv q
dv
2q
du
q q 1
q 1
q 1 du
dv
a) Valorile u1 i u2 se determin din condiiile du q sau q
q u => u 0 . Cum u 0 u 0 .
1 0
v1
1 1 . Cum u, v 0 =>
q 1 0 => q
u
ln u 1 1 1 1 1
1 1
ln
0 => ln
1 1
=> u2
1 2
b) Valorile
1 0
1 1
ln
1/
q v
v2 uq
u
1
1/
=> v2
1 2 2
1 2 2
u
0 ln
1/
Cum u, v 0 rezult c
ln u
q 0 sau q 1 0
q 0 v 0 v 0
u 1
q
e 2
1 1
2
1
u
43
Intrare >1, u1 = 0, u2
v1 = 0, v2
1 1
2 e 2
1 1
e 1
2
3: Dac ln U 1
ln V 0 transfer la pasul 1
1
2U
4: Ieire X V .
U
Lem.
D u, v: 0 u g
este f(x).
, xR.
f(x) = 2 e
1 x2
e
2.
2
Pentru aplicarea lemei avem
K
2
, g x e x
4
4
D u, v: 0 u e
v2
Notnd
u, v ln u 1 v
1v
u, v: 0
ue 3 u 1
2 .
3u
se obine D u, v: u, v 0.
n continuare,
F u, v u u, v u ln u 1 v2 .
1
3 u
2
2
2
F
1 v
3u 3u v
=>
Apoi,
3u
3u
2
2
F1 0 3u 3u v 0 1.
u
2 v 0 v 0 2
F1
3u
v
Din relaiile (1) i (2) se formeaz sistemul:
2 3u
2 0
v
3u
v0
v0
1
u
u
v0
1 0
v
1 2
u, v 0 ln u v
0
3u
3u
v .
2
u
3u
u
=> F
Din
2 0
u
n continuare,
3u v
3u
2v .
3u
2 1
00
3
2
4
5
0 1 2 v 0 1 2 3
0v
3
u
3
2
v
v
Completnd sistemul derivatelor pariale:
2
2
2
v
v
v
F2 0
3
u
u
u
u
F2 0 v
v
v
v
2
1
3
2
v 0
u
u, v 0
ln u 1
v
e
e
3u
Din
F2
v 3
1
v
2
3
e
*
*
Se calculeaz U U U u1 u2 u1 U ~ U 0,1
2: Se genereaz V '~ U (0,1)
*
Se genereaz *
V v1 v2 v1 V => V ~ U v1, v2
*
*2
*
3: Dac ln U 1/ 3V /U 0 transfer la 1.
=
aria I
v x
dudv
D
u2 u1 v2
v1
u
ut
... Pa 0,75
46
CAPITOLUL IV
i lim D
n
- se estimeaz I prin I n
f Vi .
n i 1
2
F2 x1, x2 P X 2 x2 | X1 x1
LLLLLLLLLLLLLL
Fk x1, x2 ,K, xk P X k xk | X1 x1,K, X k1 xk1
unde F1(x1) este funcia de repartiie marginal a variabilei aleatoare X1, F2(x1, x2)
este funcia de repartiie a variabilei aleatoare X2 condiionat de X1 < x1, etc.
Dac U1,..., Uk sunt numere aleatoare uniforme pe (0,1) i independente
k
stocastic, atunci vectorul aleator Y = (Y1,..., Yk) R cu:
47
Y1 F 1
U1
1
Y2 F2 Y1,U 2
LLLLLLLL
1
Yk Fk Y1,Y2 ,K,Yk1,U k
, dac x I
k
(x) bi ai
i 1
0, n rest
x i xi ,
i1
48
cu
k
g X 0, X R
i
H gX dX .
k
R
k+1
v
v
D v
, v ,...,v k
' Rk 1, 0 v
49
g1
k 1
,...,
v 0
aria D
0,
n rest
unde
aria D
0 g
k1
Kdv0dv1...dvk
vk
,...,
x v v
2
......
x
k
v tx
2
=>
......
vk v0
tv 0
tx0
v0 t
v
k
0
t
x1
x2
0
0
... 0
... 0
0
t ... 0
... ... ... ... ...
0 ... t
xk 0
Atunci
1
aria D
g k 1
...t k
0t g k 1 x ,...,x k
Acum se obine:
P X1 x1,..., X k
xk P
x1,...,
t dtdx1...dxk
H
k 1
vk
dtdx1...dxk K
123
R
1
K g x1,..., xk dx1...dxk
k 1 123
x ,...,x
v0
aria D v
Kdv0dv1 Kdvk
vk
x1
,...,
xk I D
v0
5
0
k 1 H
x k g k 1
tk
1 x1 xk gx Kx
K
H
x ,...,x k
dtdx ...dx k
1
dx ...dx
k
F X ,
k
k
unde F(X) este funcia de repartiie a lui f(X), XR i lema este demonstrat.
2. Dac
3.
Observaii:
*
*
*
1. Punctele (V0 , V1 , ..., Vk ) sunt uniform repartizate pe domeniul mrginit
D, algoritmul descris mai sus fiind un algoritm de respingere.
2. Performana algoritmului este caracterizat de probabilitatea de acceptare
(probabilitatea de trecere de la pasul 2 la pasul 3) dat de
aria D .
pa
vi2 vi1
i1
51
unde
Fi v0 , v1,...,vk vi v0 , v1,...,vk
cu restricia
v0 , v1,..., vk 0.
n continuare aplicm lema i algoritmul pentru generarea vectorilor
aleatori avnd repartiie Dirichlet i multinomial.
4.3 Generarea vectorilor aleatori avnd repartiie Dirichlet
Vectorul aleator X = (X1,..., Xk) este repartizat Dirichlet de parametri 1,...,
k1 dac densitatea sa de repartiie este:
1 ...xk 1 1 x ... x k k 11
x1
1 ... k
f x ,...,
x
1 ... k
sau
(4.1)
f x1,..., xk H h x1,..., xk
unde
H
...
1 ... k1
1 1
hx1,..., xk x1
Notm
k1
k 1
k1 1
...x k
1 x1 ... xk
(4.1')
d k 1, i i 1,1 i d ,
i1
D 0
sau
v1
v0
...vk
v d
0
5
2
i1
k 1
v i
(4.2)
d
d v 1 ...v k
D 0v
k 1
d 1
(4.2')
unde v vi .
i1
ln v0
i 1
ln vi
k1
lnv0 v
k1
IR
, aplicm
Lagrange funciilor: Fi vi ,0 i k
Cazul i=0.
n acest caz avem:
F
d 1
v0
d v0
vl
F0
dv
0,
k1
1
k1
d v0 v
k 1
v0 v
i1
l1
l1
Din i l k1 l
(4.4)
d v0 v
v ,...,v k
v v0 k 1
vl adic vl k1 v0 vl ,1 l k .
l
(4.5)
k 1
ll
de unde
l1
(4.6)
5
3
d
0
1
v0 0, v 0
l1
(4.6b)
Cazul i 1.
n acest caz avem:
d 1
F
i
v0
vi
vl
d v0
d vi
l 1
k1
v0 v
d v0 v
k1
v0 v
d
v0
k1
(4.7)
0, l i,1 l k
i
1
d v0 v
d vl
d
,
v
,...,v
F v
0
0
k1
adic
k1
v0 v
(4.8)
v0
d
A 2-a relaie (4.7) conduce la :
vi
i v0
(4.9)
dv0 d
(4.10)
vl l v0 d ,l i,1 l k
Din (4.8) se obine apoi
(4.11)
v v0 d k1
d
Din (4.9), (4.10), (4.11) se deduce c :
d
v0
, vi
d i
,li
vl l
d i
(4.12)
5
4
d i
ll d d i
d dd
adic:
0
d i d d i
1
0, vi
vi
l1
li
k1
l1
l l d
,1 i k
a i
i1
a1 d
a2 d d
bi i d ,1 i k 1
1
1
Se calculeaz v 0 conform cu (4.6b) i v i conform cu (4.13), 1 i k
1: Se genereaz U uniform pe (0,1) i ia v v1 U
0
0
2: Se genereaz U ,1 i k,U ~ 0,1 i independente i calculeaz
i
i
k
1
X i v iUi ,1 i k, v' X i
i'1
k
k1
4: Dac a0 ln v0 bi ln X i
lnv0 v 0 transfer la pasul 1.
d
i'1
5: Ieire X i
i
V0
Probabilitatea de acceptare este:
pa
H
k 1
1
k
v1i
i0
sau
(4.13)
5
5
pa
1 ... k 1
k 11 ... k 1
2 1
d d
n n
Se poate aplic formula n| n e
2n .
i d i
d d
i 1
d
i
xi 0, xi Z, xi n
k
i 1
0 pi 1, pi 1
i 1
Intrare n, p ,1 k, p 1
1
Se calculeaz Fi p ,1 i k
1
Iniializare j 0.
1: Genereaz un U cu RNG.
l 0, j j + 1.
2: l l + 1
56
0,1
e
exi 2
k2
2
i1 2
ceea ce nseamn c vectorul Z are k componente independente, avnd fiecare
repartiia normal N(0,1). Generarea vectorului Z se face genernd k variabile
normale N(0,1) independente. Pentru a genera un vector aleator N , se
folosete teorema:
Teorem. Dac Z este un vector aleator k-dim normal N O, I i X este un
57
Caz particular: k = 2.
Vectorul X X1, X 2 are repartiie normal bidimensional:
2
1
1 2Q x1,x2
f x , x
2 det
unde
Qx , x 2 11 x
1
11
12
2 12x x 2
, ,
21
22
`, M
2
i X
2 221 x2 2
, =
i
2
, D
i
1
1 2
2
Reamintim:
CovX ,Y M X M X Y M Y XY M X M Y .
CovX ,Y 0 dac X i Y sunt independente.
X Y
Funcia de densitate se mai poate scrie astfel
f x, y
2
1
2 1 2
xm
21 2
12
58
CAPITOLUL V
APLICAII ALE SIMULRII
Fie z = f (x1, x2, ..., xk) o funcie continu ntr-un domeniu mrginit D din
spaiul cu k dimensiuni. Problema care se pune este s calculm integrala multipl:
(5.1)
I ... f x1, x2 ,K, xk dx1dx2 Kdxk
123
D
59
2 ,K,
D1,2,K,k
x1
x2
x2
= 1
x1
k
x2
k
L L O L
xk xk
1 2
xk
k
b1 a1
b2 a2
L bk ak
i se obine:
=
j1
b j a j
6
0
(5.4)
I
unde
h1,2 ,K,k b1 a1Kbk ak f a1 b1 a1 1,K, bk ak k
Notnd
1,2 ,K,k
d d1d2 Kdk
integrala (5.4) se poate scrie sub forma prescurtat:
(5.5)
I ... Lh d
D
123
,2
,K,n
2 2
,2
(k)
,K,n
,K,n
KKKKKKKK 1
,K
,K
,2
,K
1 2
k
Punctele M i i ,i ,K,i
, i = 1, 2, ... pot fi considerate ca puncte
aleatoare repartizate uniform n cubul unitate k - dimensional.
Se alege un numr N suficient de mare de puncte M1, M2, ..., MN i se
verific punctele care aparin domeniului D.
61
vol D n
h M i
n
i 1
vol D N
hi .
i1
dxdy
unde
D x, y; 1 2 x 1, 0 y 2x 1.
Soluie: Considerm urmtorul tabel de numere aleatoare repartizate uniform pe
intervalul [0, 1] (tabelul 5.1) i lum pentru fiecare dou numere consecutive din acest
tabel ca fiind coordonate ale punctului aleator (x, y).
0,57705
0,71618
0,73710
0,70131
0,16961
0,53324
0,43166
0,26275
0,05926
0,66289
0,35483
0,09393
0,30304
0,55186
0,64003
0,20514
0,00188
0,55709
0,86977
0,31303
0,11578
0,93045
0,93011
0,42844
0,52906
0,09461
0,99602
0,69962
0,31311
0,27004
0,65339
0,93382
0,05758
0,00336
0,88222
0,98585
0,52103
0,91827
0,07069
0,13928
62
Dintre toate valorile lui x care variaz ntre x = 1/2 i x = 1. Pentru aceste
valori vom lua 1 = 1, iar pentru celelalte lum 1 = 1.
Dintre toate valorile lui y corespunztoare lui x le alegem pe acelea coninute
ntre y(x) = 0 i yx 2x 1.
Pentru aceste valori punem 2 = 1, iar pentru restul 2 = 0.
Calculm = 12. Numai pentru punctele pentru care = 1 aparin
domeniului de integrare.
n situaia de fa, dintre cele N = 20 de puncte, numai n = 4 aparin
domeniului de integrare.
4 1
vol D N 20 5 .
Atunci
0,557
0,737
0,170
0,432
0,059
0,355
0,303
0,640
0,002
0,870
0,116
0,930
0,529
0,996
0,313
0,653
0,058
0,882
0,521
0,071
0,500
0,500
0,500
0,500
0,500
1,000
1,000
1,000
1,000
1,000
yx
0
0
0
0,154
0,474
0
0
0
0
0,280
0,452
0,740
0,855
0
0
0
0,860
0,0580
0,992
1,048
1,1482
0,306
0
0
0,764
0,042
0
0
y x
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0,716
0,701
0,533
0,263
0,663
0,094
0,552
0,205
0,557
0,323
0,930
0,428
0,095
0,700
0,270
0,934
0,003
0,986
0,918
0,139
6
3
f x, y
A doua metod
Fie y h(1, 2 , ..., k ) 0 . Atunci integrala (5.1)
poate fi considerat ca
... d d Kd dy ,
(V)
(5.6)
B y
ne duce la
IB
... d d . . . d d
(V )
64
0 i 1,
i 1,K, k
0 1
Lum pe intervalul [0,1], k+1 iruri de variabile aleatoare repartizate
1 1
1
uniform: 1 ,2 ,K,n ,K
2 2
2
1 ,2 ,K,n ,K
KKKKKKKK
k k
k
1
,2
,K,n
,K
1,2 ,K,n ,K
1 2
M i i ,i
,K,i ,i , i
1, 2,K din spaiul k+1 dimensional O1 . . .k .
Dac din numrul total de N puncte aleatoare n aparin domeniului V, atunci
este adevrat urmtoarea formul aproximativ:
I B N .
1 2
fiind cub unitate, atunci este suficient s se verifice pentru fiecare punct i
k
,K,i
condiia
1 2
k
1
i B h i ,i ,K,i
.
,i
x 0,52 y 0,52
0,52 , z 0
I dxdydz
variabil: 2 ,5
care transform integrala (5.7) n integrala:
I 2,5dxdyd
V
65
x 0,5
y 0,5 0,5 .
I 2,5 N .
Aria cercului
Aria patratului
66
67
Eficiena unui stoc de-a lungul unei perioade de timp este o funcional de
forma:
E = E[a(t), b(t), r(t)]
Funciile a(t) i b(t) sunt n general cunoscute.
Dac E este o variabil aleatoare, atunci se determin funciile necunoscute din
condiia ca valoarea medie a lui E s fie optim.
n majoritatea modelelor de stocare, intrarea n stoc (reaprovizionarea) se face la
momente discrete de timp t0 < t1 < .... Intervalele de timp ti+1 ti = Ti , i = 0, 1, 2, ...
se numesc cicluri de reaprovizionare. ntr-un interval de timp [0, T] pot avea loc mai
multe reaprovizionri (mai multe cicluri de reaprovizionare).
Variaia stocului S(t) este determinat de intrri, ieiri i de rata cererii.
Ciclurile de reaprovizionare Ti , i = 0, 1, 2, ... pot fi egale sau nu.
n unele modele de reaprovizionare se pune problema determinrii lotului
optim de reaprovizionare i a ciclului optim de reaprovizionare.
Lotul de aprovizionare nu intr n stoc n momentul cnd a fost lansat, ci dup
un interval de timp L, numit timp de avans.
Comanda se lanseaz n momentul cnd stocul a atins un nivel P, numit nivel
de reaprovizionare i este strict legat de timpul de avans.
Momentul lansrii comenzii este momentul cnd nivelul stocului scade la
valoarea nivelului de reaprovizionare.
Totalitatea elementelor care definesc mecanismul de reaprovizionare constituie
ceea ce se numete politic de reaprovizionare. O astfel de politic poate s
urmreasc loturile de reaprovizionare, ciclurile de reaprovizionare, nivelul de
reaprovizionare, timpul de avans etc. Politica este optim dac elementele ce o
caracterizeaz conduc la eficin optim pe intervalul de timp dat.
Modelele de teoria stocurilor se pot clasifica astfel:
1. dup evoluia n timp (timpul intervine explicit sau nu ), modelele pot fi:
- dinamice,
- statice.
.
2. dup natura aleatoare a elementelor (care nu sunt elemente de decizie), modelele
pot fi:
- stochastice,
- deterministe.
3. dup domeniile de valori posibile ale unor variabile care intervin n aceste modele,
pot fi:
- cu cerere continu,
- cu cerere discret.
Cele mai interesante i mai apropiate de realitate sunt cele dinamice i
stochastice.
Modelele de teoria stocurilor sunt asemntoare cu cele de teoria ateptrii;
sosirile n firele de ateptare corespund intrrilor n stoc, iar serviciile corespund
ieirilor din stoc.
Deosebirea ntre cele dou tipuri de modele const n aceea c sosirile i
servirile sunt variabile aleatoare cunoscute, n timp ce n teoria stocurilor se cunoate
68
numai cererea (care poate fi variabil aleatoare sau nu) i se caut s se determine o
politic optim de reaprovizionare a stocului.
Model de simulare pentru stocarea unui produs
Se pune problema obinerii unor variante privind:
- momentul lansrii comenzilor
- momentul intrrii comenzilor
- cheltuielile aferente procesului de reaprovizionare i meninere a stocului
pentru un singur produs.
Se introduc notaiile:
CS - costul stocrii unei uniti de produs pe unitatea de timp;
CL - costul lipsei produsului din stoc;
CLC - costul lansrii unei comenzi de
reaprovizionare; TCS - costul total al stocrii;
TCL - costul total al lipsei de stoc; TCLC costul total al lansrii de comenzi;
TC - cheltuieli totale legate de procesul de reaprovizionare i meninerea
stocului;
T - momentul intrrii comenzii n stoc; R cererea din stoc pe unitatea de timp; NCS nivelul curent al stocului;
Qmrimea optim a comenzii;
P - mrimea nivelului de reaprovizionare, astfel nct stocul s fie suficient pe
perioada timpului de avans;
TA - timpul de avans al lansrii comenzii;
CEAS - ceasul simulrii;
NIS - nivelul initial al stocului;
TS - timpul de simulare.
Date de intrare:
- costul stocrii CS;
- costul lipsei de stoc CL;
- costul lansrii unei comenzi CLC;
- mrimea optim a comenzii Q;
- mrimea nivelului de reaprovizionare P;
- nivelul iniial al stocului NIS;
- durata simulrii DS;
Variabile aleatoare cu repartiii cunoscute (se introduc parametrii):
- cererea R;
- timpul de avans al lansrii comenzii TA.
Rezultatele simulrii:
- costul total al stocrii TCS;
69
Iniializri:
TCS = TCL = TCLC = TC = 0.
NCS = NIS, CEAS = 0.
Algoritm de simulare pentru un model cu pstrarea cererii neonorate:
0. Intrri. Iniializri.
1. Genereaz o cerere Q.
CEAS CEAS + 1.
2. Dac CEAS > TS transfer la Pas 9.
3. T = CEAS ;
NCS NCS + Q.
4. NCS NCS R.
5. Dac NCS < 0 atunci TCL TCL NCS * CL.
altfel TCS TCS + NCS * CS.
6. Dac P < NCS transfer la pasul 1.
7. Dac T CEAS transfer la pasul 1.
8. TCL TCL + CLC ;
Genereaz TA
T = CEAS + TA.
Transfer la pasul 1.
9. TC = TCS + TCL + TCLC
10. Calculeaz statistici. STOP.
Algoritm de simulare pentru un model care nu pstrez cerererea
neonorat:
0. Intrri. Iniializri.
1. Genereaz o cerere Q.
CEAS CEAS + 1
2. Dac CEAS > TS transfer la pasul 9.
3. T = CEAS ; NCS NCS + Q.
4. NCS NCS R
5. Dac NCS < 0 atunci TCL TCL NCS*CL;
NCS = 0.
6. TCS TCS + NCS*CS ;
7. Dac P < NCS transfer la pasul 1.
8. Dac T CEAS transfer la pasul 1.
9. TCL TCL + CLC;
Genereaz TA;
T = CEAS + TA.
Transfer la pasul 1.
10. TC = TCS + TCL + TCLC
11. Calculeaz statistici. STOP.
70
10%
20%
30%
20%
10%
3 zile
4 zile
27,5%
5 zile
50%
22.5%
Frecvena
1
2
3
4
5
10%
20%
40%
20%
10%
01-10
11-30
31-70
71-90
91100
955 cereri
222 cereri
925 cereri
473 cereri
995 cereri
021 cereri
313 cereri
333 cereri
744 cereri
Frecvena
27,5%
50%
22,5%
4324 zile
1673 zile
1003 zile
2413 zile
583 zile
Avnd asociate valorile variabilelor aleatoare cererea i ntrzierea n livrare,
se face studiul rupturii stocului.
Vom considera c stocul minimal este fixat la 10 uniti i c la
nceperea studiului stocul avea 20 uniti.
Ziua
1
2
3
4
5
6
7
8
9
10
11
12
Cererea
5
4
3
3
2
4
1
1
4
3
5
2
5
Nivelul stocului
20
16
13
10
8
4
3
2+15=17
13
10
5
3
-2 (ruptura de
stoc)
Valoarea comenzii
3+3+4+5=15 4 zile
3+4+1+1=9 3 zile
72
U
U
U
Cereri de servire
S
Staie
U
U
U
Uniti servite
(flux de ieire)
Cereri de servire
S1
S2
Staii
S3
SN
Flux de ieire
73
Paralel
S1
S2
SN
74
TTAC
NS
TTNS
NS
75
76
77
F(t) = P(T t)
Probabilitatea funcionrii fr defeciuni a unui sistem fiabilitatea lui este
dat de
R(t) = P(T > t)
Funciile R(t) i F(t) reprezint probabilitile unor evenimente
complementare n sensul teoriei probabilitilor.
Comportarea sistemului n jurul unui moment dat este descris de viteza
instantanee de defectare:
f(t) = dF(t) / dt = dR(t) / dt
care este de fapt densitatea de probabilitate a timpului de funcionare.
Pentru a descrie pericolul de defectare n jurul unui moment dat al unui sistem
aflat n bun stare la acel moment, se definete un alt indicator numit rat de
defectare, definit astfel:
r(t) lim [F (t t) F (t)] /[R(t)t] f (t) / R(t)
t0
sau
r(t) F (t) / R(t) F (t) /[1 F (t)] R(t) /
R(t) Integrnd, cu condiia iniial R(0) = 1, se obine:
R(t) = e
1 r(u)du
0
m = tf (t)dt = R(t)dt
0
0
D = (t m)2 f (t)dt
0
78
79
xi
80
i1
i 1
- pi. i1 i1
n
R 1 F 1 1 pi
i1
3.
81
Notm:
C0 X xi | xi 0 taietura
C1X xi | xi 1 drum
1) La sistemele serie avem tieturi:
C0 X x1,K,xn = n tieturi
2) La sistemele paralele avem tieturi:
C0 X x1,K, xn =1 tietur
3) La sistemele complexe avem tieturi:
F s x1,K, xn x1 x2 Kxn
F p x1,K, xn x1 x2 K xn
F c x1,K, x5 x1 x2 x3 x4 x1 x5 x4 x3 x5 x2
O evaluare numeric aproximativ a funciei de fiabilitate a sistemului poate fi
realizat n asemenea situaii printr-o metod experimental , care const n generarea
unor stri posibile ale sistemului (cunoscnd funciile de fiabilitate ale componentelor)
i evalund de fiecare dat performana sistemului.
Raportul dintre numrul situaiilor n care sistemul funcioneaz i numrul
total de simulri reprezint o estimaie a funciei de fiabilitate a sistemului.
Precizia estimrii depinde de numrul de simulri realizate.
Pe baza acestor consideraii, a noiunilor introduse mai sus i presupunnd
independena componentelor sistemului din punct de vedere al defectrii, algoritmul
de simulare se prezint astfel:
83
Algoritm de simulare:
0. Iniializare RNG.
Iniializare
algoritm
pentru
generarea
fiabilitii
componentelor. Intrare parametri.
1. Calcularea funciei de structur a sistemului cu algoritmul FIAB1.
2. Generarea fiabilitilor componentelor pi, i = 1, 2, ..., n cu algoritmul
FIAB2.
3. Calcularea fiabilitii sistemului cu algoritmul FIAB3.
Algoritmul pentru calculul funciei de structur a sistemului
Sistemele a cror structur nu poate fi, n general, redus la combinaii de tip
serie sau paralel (structuri elementare) le numim sisteme complexe.
n cazul sistemelor complexe, determinarea funciei de structur devine o
problem dificil. Un asemenea algoritm, pe care l-am numit FIAB1, pentru un sistem
cu n componente reprezentat sub forma unui graf cu k noduri, se prezint astfel :
Algoritm pentru calculul funciei de structur (FIAB1):
0: Intrare matrice asociat sistemului (matricea conexiunilor) [C]kk.
1: Se adun la matricea C matricea identitate de ordinul k.
2: Se nltur prima coloan i ultima linie a matricei obinute.
3: Calculeaz det Dk-1 asociat matricei rmase folosind operaiile de sum
i produs boolean.
= Dk-1
Algoritmul pentru calculul fiabilitii componentelor
Pe baza datelor obinute n urma ncercrilor de durat, pe componente,
privind variaia parametrilor acestora cu solicitarea i timpul, se determin densitile
de probabilitate asociate componentelor sistemului.
Cunoscnd funciile de fiabilitate ale componentelor, algoritmul de generare,
denumit FIAB2, se prezint astfel :
Algoritm pentru calculul fiabilitilor componentelor (FIAB2):
0: Iniializare RNG.
Iniializeaz algoritmii pentru generarea fiabilitii componentelor.
Intrare parametri corespunztori funciilor de fiabilitate ale
componentelor.
1: Genereaz numere aleatoare uniforme pe (0,1).
2: Genereaz o valoare de selecie pi (i = 1, 2, ..., n) corespunztoare
componentei i.
84
i 1
R N
unde N depinde de precizia cerut i reprezint numrul de simulri efectuate cu
algoritmul de mai sus.
De aici rezult c
P( Ai / A) P(Ai )P( A / Ai )
P( A)
Aplicnd formula probabilitii totale, se obine:
P( A) P( A / A1)P( A1) P( A / A2 )P( A2 ) ..... P( A / An )
P( An ) care nlocuit mai sus conduce la formula lui Bayes.
Observaie. Dac se cunosc probabilitile P(Ai) i P(A / Ai) unde A este un
eveniment oarecare, atunci probabilitatea evenimentului Ai , tiind c A s-a realizat
este dat de formula lui Bayes.
n locul evenimentelor Ai vom considera cauze (ipoteze) notate cu Hi,
constituind un model adecvat pentru o situaie practic.
Evenimentul A este interpretat ca realizarea unei situaii practice, iar
probabilitile P(Hi) sunt cunoscute i se numesc probabiliti apriori ale diferitelor
ipoteze.
Pe de alt parte, cauza Hi realizeaz evenimentul A cu probabilitatea P(A / Hi),
aceste probabiliti fiind i ele cunoscute.
tiind c evenimentul A s-a produs, formula lui Bayes permite calcularea lui
P(Hi / A), care se numesc probabiliti aposteriori.
Cu alte cuvinte, tiind c evenimentul A s-a produs, care este probabilitatea ca
acest fapt s se datoreze cauzei Hi.
Exemplu.
Defeciunile unor arbori de transmisie sunt datorate n 25% din cazuri
cuplurilor aplicate i n 75% aceste defectri se datoreaz montajului. Printre
defectrile datorate cuplurilor foarte puternice, 20% antreneaz ruperea arborilor, n
timp ce doar 5% dintre defectele de montaj au aceeai consecin. Constatnd o
ruptur de arbore, se poate determina probabilitatea ca ea s se datoreze unei
suprasolicitri ?
Soluie:
86
Cum
i se obine
P(H1) = 0,25
P(H2) = 0,75
P(A / H1) = 0,20
P(A / H2) = 0,05
P(H1 / A)
P(H1)P( A / H1)
0,571
87
ANEX
IMPLEMENTRI C/ C++
88
if (m<x[i])
m=x[i];
return m;
}
void gen1()
{int a=1,b=10;
float media=0,dispersia=0;
x[0]=69;
for (int i=0;i<n-1;i++)
x[i+1]=floor(x[i]*x[i]/pow(b,a))floor(x[i]*x[i]/pow(b,3*a))*pow(b,2*a);
for (i=0;i<n;i++){
x[i]/=pow(b,2*a);
media+=x[i];
}
media/=(float)n;
for (i=0;i<n;i++)
dispersia+=(x[i]-media)*(x[i]-media);
dispersia/=(float)n;
cout<<"Metoda patratului din mijloc:"<<endl;
//scrie(x,n);
cout<<"Media generarilor= "<<media<<endl;
cout<<"Dispersia generarilor= "<<dispersia<<endl;
getch();
testhi2();
}
void gen2() {
//metoda generatorului multiplicativ congruential
float media=0,dispersia=0,a=125,M=2796203;
x[0]=314159;
for (int i=0;i<n-1;i++)
x[i+1]=fabs(a*x[i]-M*floor(a*x[i]/M));
for (i=0;i<n;i++) {
x[i]/=(float)M;
media+=x[i];
}
media/=(float)n;
for (i=0;i<n;i++)
dispersia+=(x[i]-media)*(x[i]-media);
dispersia/=(float)n;
cout<<endl<<"Metoda generatorului multiplicativ
congruential:"<<endl;
//scrie(x,n);
cout<<"Media generarilor= "<<media<<endl;
cout<<"Dispersia generarilor= "<<dispersia<<endl;
getch();
testhi2();
}
void gen0() //generatorul sistemului
{float media=0,dispersia=0;
int m=100;
randomize();
for (int i=0;i<n;i++)
{
89
x[i]=random(m)/float(m);
media+=x[i];
}
media/=(float)n;
for (i=0;i<n;i++)
dispersia+=(x[i]-media)*(x[i]-media);
dispersia/=(float)n;
cout<<endl<<"Folosind generatorul
sistemului:"<<endl; //scrie(x,n);
cout<<"Media generarilor= "<<media<<endl;
cout<<"Dispersia generarilor= "<<dispersia<<endl;
getch();testhi2();
}
void main() {
clrscr();
cout<<"Numarul de generari: ";
cin>>n; cout<<endl;
gen1();
gen2();
gen0();
}
90
for(i=0;i<n;i++) disp+=(x[i]media)*(x[i]-media);
disp/=n;
cout<<endl<<"Media:"<<media;
cout<<endl<<"Dispersia:"<<disp;
getch();
}
<iostream.h>
<conio.h>
<math.h>
<stdlib.h>
/*algoritm
0.Initializare RNG();
Intrare v=2;
1. Genereaza U uniform pe (0,1);
2.X=pow(-ln(U),1/v);*/
float x[5000],media,disp;
int n;
float RNG() {
return (random(999)+1)/1000.1;
}
float Weibull(float v) {
float u=RNG();
return pow(-log(u),1/v);
}
void main() {
clrscr(); randomize();
cout<<"n=";cin>>n;
for(int i=0;i<n;i++)
x[i]=Weibull(2);
//calculez media si dispersia
for(i=0;i<n;i++)
media+=x[i];
media/=n;
for(i=0;i<n;i++) disp+=(x[i]media)*(x[i]-media);
disp/=n;
cout<<endl<<"Media:"<<media;
cout<<endl<<"Dispersia:"<<disp;
getch();
}
91
92
<iostream.h>
<conio.h>
<math.h>
<stdlib.h>
float x[5000],media,disp;
int n;
float RNG() {
return (random(999)+1)/1000.0;
}
float Norm(){
float U,Y;
do{
Y=-log(RNG());
U=RNG();
}
while (U>exp(-Y*Y/2+Y-0.5));
if (RNG()<0.5)
return Y;
else
return -Y;
}
void main(){
int i;
clrscr(); randomize();
cout<<"n=";cin>>n;
for(i=0;i<n;i++)
x[i]=Norm();
for(i=0;i<n;i++)
media+=x[i];
media/=n;
for(i=0;i<n;i++) disp+=(x[i]media)*(x[i]-media);
disp/=n;
cout<<endl<<"media="<<media;
cout<<endl<<"dispersia="<<disp;
getch();
}
93
<iostream.h>
<conio.h>
<math.h>
<stdlib.h>
float x[5000],media,disp;
int n;
float RNG() {
return (random(999)+1)/1000.1;
}
float normala() {
float v1,u1,v2,u2,Us,Vs,R;
u1=0;u2=1; v1=sqrt(3/M_E);v2=sqrt(3/M_E); do
{
Us=u1+(u2-u1)*RNG();
Vs=v1+(v2-v1)*RNG();
R=Vs/sqrt(Us); }
while(log(Us)+(R*R)/3>0);
return R;
}
void main() {
clrscr();
randomize();
cout<<"n=";
cin>>n;
for(int i=0;i<n;i++)
x[i]=normala();
//calculam media si dispersia
for(i=0;i<n;i++)
media+=x[i];
media/=n;
for(i=0;i<n;i++) disp+=(x[i]media)*(x[i]-media);
disp/=n;
cout<<endl<<"Media:"<<media;
cout<<endl<<"Dispersia:"<<disp;
}
94
include
include
include
include
<stdlib.h>
<math.h>
<iostream.h>
<conio.h>
float x[5000],y[5000],a,b;
int n;
float Rng();
void Vect(float a, float b, float &X, float &Y);
void main() {
clrscr(); randomize();
a=1; //cout<<"a=";cin>>a;
b=1; //cout<<"b=";cin>>b;
n=5000;
float media_x=0, media_y=0, dispersia_x=0,
dispersia_y=0, X,Y;
for (int i=0;i<n;i++){
Vect(a,b,X,Y);
x[i]=X;
media_x+=x[i];
y[i]=Y;
media_y+=y[i];
}
media_x/=n;
media_y/=n;
for (i=0;i<n;i++) { dispersia_x+=(x[i]media_x)*(x[i]-media_x);
dispersia_y+=(y[i]-media_y)*(y[i]-media_y);
}
dispersia_x/=n;
dispersia_y/=n;
cout<<"Media generarilor:
("<<media_x<<","<<media_y<<")"<<endl;
cout<<"Dispersia generarilor:
("<<dispersia_x<<","<<dispersia_y<<")"<<endl;
getch();
}
float Rng() {
float r;
do { r=random(100)/
(float)100;
} while (r==0);
return r;
}
void Vect(float a, float b, float &X, float &Y) {
float U;
U = Rng();
X = (-b+sqrt(b*b+4*U*a*(a+b)))/2/a;
95
U = Rng();
Y = (-a*X+sqrt(a*a*X*X+U*b*(2*a*X+b)))/b;
}
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
int N=5000;
float I;
float F(float x,float y){
return x*x+y*y;
}
float RNG() {
float r;
do
{ r=random(1000)/1000
.;
} while (r==0);
return r;
}
void main() {
clrscr(); randomize();
float x,y;
for (int i=1;i<=N;i++){
x = RNG();
y = RNG();
if ((x>=0.5)&&(x<=1)&&(y>=0)&&(y<=2*x-1))
I += F(x,y);
}
cout<<"Valoarea aproximativa a integralei este "<<I/N;
getch();
}
#include
#include
#include
#include
<iostream.h>
<stdlib.h>
<conio.h>
<math.h>
int N=5000;
float I,a=1,b=M_E;
float F(float x) {
return log(x);
}
96
include
include
include
include
<iostream.h>
<conio.h>
<stdlib.h>
<iomanip.h>
97
<iostream.h>
<conio.h>
<math.h>
<stdlib.h>
int n;
float x[5000],media,disp;
float RNG(){ return (random(999)+1)/1000.0; }
float Pearson(float miu)
{ float Lambda; Lambda=1/miu*log(RNG()); return
-1/Lambda*log(RNG());
}
void main() {
int i;
clrscr(); randomize();
cout<<"n=";
cin>>n;
for(i=0;i<n;i++) x[i]=Pearson(1);
for(i=0;i<n;i++) media+=x[i];
media/=n;
for(i=0;i<n;i++) disp+=(x[i]-media)*(x[i]-media);
disp/=n;
cout<<endl<<"media="<<media;
cout<<endl<<"dispersia="<<disp;
getch(); }
98
99
BIBLIOGRAFIE
100