Documente Academic
Documente Profesional
Documente Cultură
Modelare Si Simulare
Modelare Si Simulare
CAPITOLUL I
Generaliti despre modelare si simulare
I.1. Introducere
I.2. Construcia unui model de simulare
I.3. Concepte de baz n modelarea sistemelor
I.3.1. Realizari iterative ale sistemelor
I.3.2. Modelarea sistemelori cu evenimente discrete
I.3.3. Metodologia de realizare a experimentelor de simulare
I.4. Generaliti despre limbajul GPSS
I.5. Exemple de programe GPSS.
I.5.1. Model de simulare pentru un sistem de ateptare cu o staie
I.5.2. Model de simulare pentru un sistem de ateptare cu staii paralele
I.5.3. Model cu staii paralele i preferine
CAPITOLUL II
Numere aleatoare
CAPITOLUL III
Simularea variabilelor aleatoare neuniforme
III.1. Metoda invers
III.2. Metoda compunerii sau amestecrii
III.3. Metoda respingerii
III.4. Alte metode
III.5. Simularea repartiiilor nrudite cu repartiia normal
III.6. Simularea unor variabile particulare
III.6.1. Repartiia exponenial
III.6.2. Repartiia Gamma
III.6.3. Metode pentru simularea variabilei Gamma(0,1, ) , > 1
III.6.4. Repartiia Beta
III.6.5. Repartiia normal
III.7. Simularea unor variabile discrete
III.8. Validarea generatorilor
CAPITOLUL I
GENERALITI DESPRE MODELARE SI SIMULARE
1.1. Introducere
Cuvntul simulare este de origine latin (simulatio) i nseamn capacitatea de a
reproduce ceva. n informatic, termenul de simulare a fost introdus de John von Neumann la
nceputul anilor `40, o dat cu apariia primelor calculatoare electronice. J.von Neumann
mpreun cu grupul de savani de la coala Los Alamos (Ulam, Metropolis etc) au dezvoltat
primele aplicaii ale calculatoarelor. Tot ei au introdus denumirile Cercetri operaionale (pentru
a desemna aplicaiile legate de dirijarea operaiilor militare pe arii geografice mari ale globului
pmntesc!) precum i metoda Monte - Carlo (pentru a desemna aplicaii ale calculatoarelor
bazate pe utilizarea numerelor aleatoare). n accepiunea actual a informaticii, simularea
cuprinde o serie de aplicaii care realizeaz imitarea comportamentului unor pri ale lumii reale
(simularea stochastic), lund n considerare i comportamentul aleator al acesteia. Din domeniul
simulrii face parte i metoda Monte Carlo.
Definiia 1. Simularea este o tehnic de realizare a experimentelor cu calculatorul, care implic
utilizarea unor modele matematice i logice care descriu comportarea unui sistem real (sau a
unor componente ale sale) de-a lungul unor perioade mari de timp.
Deci simularea se realizeaz pe baza unui model special, numit model de simulare, cu
ajutorul cruia se realizeaz experimentele prin intermediul calculatorului. Modelul de simulare
se construiete pe scheletul unui model matematic i se finalizeaz ntr-un algoritm. De aceea n
cele ce urmeaz vom prezenta schema general a unui model de simulare, pornind de la
descrierea principalelor elemente ale unui model matematic.
Model matematic. Prin definiie, un model este un analog ce reprezint o parte a lumii
nconjurtoare ntr-un mod uor de perceput de ctre noi. Modelul ne reprezint uneori realitatea
prin scheme, figuri geometrice sau alte obiecte ce ne sunt familiare i pe care le nelegem uor
(i.e. la fel de bine cum le ''vedem'' sau le ''pipim''). Modelul matematic ne reprezint realitatea
folosind elemente sau abstraciuni matematice.
Elementele constitutive ale unui model matematic sunt urmtoarele:
a) Variabile ( V ) i Parametri ( P ) care pot fi de intrare ( VI , PI ), dac pot fi percepute
(msurate sau nelese uor), sau de ieire ( VE, PE ), dac dimpotriv, msurarea sau
perceperea lor este dificil. Variabilele i parametrii pot lua valori numerice sau logice.
Deosebirea dintre variabile i parametri const n aceea c parametrii nu i schimb valorile
pe perioade mari de timp, n timp ce variabilele i schimb valorile chiar pe intervale mici de
timp. Scopul modelului este de a exprima variabilele i parametrii de ieire n funcie de
variabilele i parametrii de intrare, cu eventuala satisfacere a unor condiii de performan de
ctre sistem (de ex. condiii de optim). Unele VI pot fi aleatoare, caz n care i unele
variabile sau parametri de ieire vor fi de asemenea aleatoare.
b) Relaiile funcionale constituie o alt categorie de elemente ale unui model matematic. Ele
sunt de forma
Fi (VI , PI ,VE , PE ) = 0
model i uneori ajut la implementarea condiiei de terminare a simulrii. El este de dou feluri:
a) ceas cu cretere constant;
b) ceas cu cretere variabil.
Not: Evenimentele corespund unor modificri n sistem adic modificari ale valorilor
unor variabile care se calculeaz sau se genereaz prin instruciuni ale modelului (chiar i dac
sunt aleatoare!).
Ceasul pornete cu valoarea zero la nceputul simulrii. Dac modelul se bazeaz pe
ceasul cu cretere variabil, atunci ceasul este crescut cu valoarea ce corespunde apariiei
primului eveniment urmtor; apoi programul prelucreaz evenimentul, dup care ceasul crete
din nou relundu-se ciclul simulrii, pn cnd ceasul atinge o valoare dat iniial, Tmax care
corespunde perioadei pe care se realizeaz simularea.
Ceasul cu cretere constant presupune c de fiecare dat creterea se realizeaz cu o
cuant de timp c constant; apoi se prelucreaz toate evenimentele aprute pe intervalul de timp
de lungime c , dup care se reia ciclul simulrii. Simularea se termin de asemenea cnd ceasul
atinge valoarea Tmax .
Terminarea simulrii se poate realiza i impunnd condiia ca modelul s prelucreze un
anumit numr dat de evenimente de un tip precizat. (De exemplu, n cazul unui model de simulare
a unui sistem de ateptare, se poate impune condiia ca simularea s se termine cnd s-a simulat
servirea unui numr dat de clieni).
A rmas oarecum neprecizat ce se nelege prin prelucrarea unui eveniment. Acest fapt se
nelege uor dac precizm i conceptul de agend a simulrii.
Agenda simulrii. Agenda se compune din elementele memorate de modelul de
simulare. Variabilele modelului iau diverse valori pe parcursul simulrii; de aici rezult c pe
parcursul simulrii apar multe evenimente. Memorarea n totalitate a acestor evenimente,
mpreun cu caracteristicile lor, nu este nici recomandat dar nici necesar dac simularea se
realizeaz pe perioade mari de timp. De aceea, se memoreaz (n agend) numai ceea ce este
strict necesar. Evenimentele sunt de diverse tipuri; unele variabile descriu i stri ale sistemului
(sau ale unor componente ale acestuia). Evenimentele sunt create sau generate la momente de
timp ulterioare valorii ceasului. De aceea agenda se compune din dou pri: agenda
evenimentelor curente AEC i agenda evenimentelor viitoare AEV .
Deci agenda A = AEC AEV , unde:
AEC = agenda evenimentelor curente (care au timpul de apariie egal cu valoarea ceasului); iar
AEV = agenda evenimentelor viitoare (care au timpul de apariie ulterior ceasului).
Algoritmul simulrii prelucreaz deci numai evenimentele din AEC ; prelucrarea unui
eveniment nseamn fie determinarea apariiei unui nou eveniment (memorat n AEV ) sau
modificarea unei stri, fie distrugerea unui eveniment ("tergerea'') lui din agend. Prelucrrile
evenimentelor in seama i de strile sistemului la acel moment.
Algoritmul simulrii gestioneaz/actualizeaz agenda prin interaciunea acesteia cu
ceasul; ntr-un ciclu al simulrii ceasul este acualizat, dup care se selecteaz din agenda A
evenimentele care fac parte din AEC i se prelucreaz aceste evenimente pn cnd AEC
devine vid. Atunci, ceasul este crescut din nou i se reia ciclul simulrii. Deci agenda simulrii
se modific pe parcursul simulrii conform urmtoarei relaii de dinamic
A = A AE gen O AE elim
unde Agen sunt evenimentele generate pe parcursul unui ciclu, iar Aelim sunt evenimentele
eliminate cu ocazia prelucrrii AEC . (Semnele i O se autexplic).
R O O
Definiia formal general a unui sistem este:
Definiia 2. Un sistem este urmtoarea structur de mulimi: S = (T , X , , , Y , , )
unde:
T = timpul de baz al sistemului (ceasul sistemului);
X = mulimea intrrilor;
= mulimea segmentelor de intrare (forma intrrilor!); segment =
: (t 0 , t1 )
X ,= (t ,t ) =grafic= {(t , (t )), t0 t t1} . Se folosete de regul notaia
0 1
((
) )
care este axioma semigrupului sau proprietatea de separabilitate a strilor. Mulimea (graficul)
(, ) se numete traiectorie a strilor;
Y = mulimea ieirilor (Sistemul este presupus deschis, intrrile i ieirile fiind
exterioare sistemului). Mulimea Y conine rspunsul sistemului la intrarea de forma , cnd
la momentul iniial t 0 sistemul se afl n starea .
Y ; (, x, t ) conduce la un
segment de ieire ce reprezint forma rspunsului sistemului la intrarea x , la momentul t cnd
starea la momentul t 0 , t 0 < t , este ;
= funcia de rspuns, de forma : X T
Not: din definiie rezult c pentru o stare iniial , (la momentul t 0 ) cnd are loc
intrarea de forma se realizeaz o traiectorie unic a strilor. Cu alte cuvinte, traiectoria
strilor satisface relaiile:
STRAJ , : (t 0 , t1 ) , astfel nct STRAJ , (t 0 ) =
STRAJ , (t ) = (, (t ) , t (t 0 ,t1 )
OTRAJ , : (t 0 , t1 )
OTRAJ , (t ) = (STRAJ , (t )) .
Rs = (, ) , = OTRAJ , ,
Acest nivel de reprezentare este cel mai vag. El descrie numai relaiile de intrare/ieire ce
se pot observa din afara sistemului (care deci se comport ca o cutie neagr).
Reprezentarea la nivel de structur de stare. La acest nivel se intr n structra intern
a sistemului, adic se stabilesc elementele acestuia : (T , X , , , Y , , ) , definite ca mai
sus.
- Reprezentarea modular (ca structur compus). Dac sistemul este complex, atunci se
identific subsisteme ale acestuia precum i interconexiunile dintre ele n sensul c
ieirile unor subsisteme sunt intri n alte subsisteme, intrrile unor subsisteme fiind
intrri ale sistemului i ieirile unor subsisteme fiind ieiri ale sistemului.
Nivelele de reprezentare a sistemelor, pornind de la forma cea mai vag i continund
pn la forma detaliat, legitimeaz Metodologia ''TOP DOWN'' de proiectare a sistemelor de
orice fel, n particular, metodologia de proiectare a sistemelor informatice, i n general
metodologia de proiectare ierarhic, descendent a programelor.
-
G+
iG = { k
G+
k 2 k i
| kj
), = x
G (q,)
G
i
G
care se
, unde
i >0
iar
G+
,j
1, i
(q,)=
(G (q,x),
G+ , x G, G ,q
G ( q, ' ) = G ( G ( q, ), ' )
(proprietatea compunerii)
Se numete model iterativ [1,40] al sistemului A = {(, )} cu realizarea iterativ G(A) = (T, X,
G , , Y, G, ), structura SG(A) = (T, X,
compunere a lui G, iar
compunerii.
G+ , , Y,
G,
), n care
G+
este nchiderea la
Exemplu
Fie maina secvenial M = (XM, M, YM, M, M).
Lum realizarea iterativ GM = (T, X, G , , Y, G, ) n care:
T = Z,
X = XM,
Y = YM,
= M,
= M,
< > = [ ) este interval de observaie i deci < t0, t0 + 1> = [t0, t0 + 1) = { t0 }
G : G este dat prin relaia: G (q,) = M(q,(0))
k 1
= { x1 x2 xk | xi X,i = 1 , k }
G+ X + .
Propoziie
: M
M ( q , ) ,
X M+
M,
XM
(q,) =
Atunci
(M (q,x), ), = x
(q, ) =
X M+
, x XM, X M+
(q, ), ) pentru q M, ,
X M+
Demonstraie:
Se face prin inducie dup lungimea secvenei , notat ||.
Propoziie
Fie M o main secvenial definit ca n exemplul de mai sus i GM o realizare iterativ a
sa.
Atunci,
dac
G+
dom
<
0,
>
avem
Se construiete din aproape n aproape funcia de tranziie a strilor modelului iterative. Se obine:
G ( q , ) = A l ( ) q +
l ( ) 1
l ( ) 1 i
B ( ( i ))
i=0
M((s,e),)
: M (XM
{}) S
M = {(s,e) | s SM , 0 e t (s)}
M : M YM este funcia de ieire a sistemului.
Observaie:
n cele ce urmeaz vom nota pentru uurin G (s,e, r ) n loc de G ((s,e), r ) i
analog G (s,e, xr) n loc de G ((s,e), xr).
Acest model general de sisteme cu evenimente discrete nglobeaz sistemele de ateptare,
sistemele informatice, reelele de calculatoare etc.
Propoziie
Fie : SM SM funcie de tranziie autonom ntr-un SED i
extensie a sa dat prin
(s,0) = s
(s,n+1) = (
: SM + SM o
(s,n)), n 0
(s,n) reprezint starea la care ajunge sistemul pornind din s dup ce face n tranziii.
Atunci:
a)
n (s), n N* , s SM
(s,n) =
+
b)
(s,n+p) =
(
(s,n),p), p,n , s SM
Demonstraie
a) Se face prin inducie dup n 1.
b) Se folosete a) sau se demonstreaz prin inducie dup p 1, folosind urmtoarea
observaie.
Observaie
Lund n = 0 n definiia lui
Definiie
Fie M un SED i : SM Z+ [0,) dat prin: (s,0) = 0,
n1
Funcia (s,n) d timpul total folosit de sistem pentru a face n tranziii dup ce a plecat din starea
s, adic timpul n care sistemul st n cele n stri atinse prin n tranziii succesive, timp msurat din
momentul plecrii din starea s (acest timp se poate msura i din momentul intrrii n starea s
n
lund
Propoziie
Fie M un SED i definit ca mai sus. Atunci:
a) Funcia us : Z+ [0,) dat prin us(n) = (s,n), n 0 este nedescresctoare pentru s
SM.
b) (s,n+m)= (s,n)+ (
Demonstraie
Pentru un SED M notm ms,e, = max {n N | (s,n) < e + } care reprezint numrul maxim de
tranziii fcute de sistem n intervalul de timp <0,e + > plecnd din starea s, atunci cnd acest
maxim exist.
Observaie
a)Dac pentru orice n N, (s,n) < e + atunci {n N | (s,n) < e + }= N i deci nu
exist ms,e,.
b)Dac j N astfel nct j {n N | (s,n) < e + } atunci pentru orice m j, m {n N
| (s,n) < e + } i astfel {n N | (s,n) < e + } este finit, de unde rezult c n acest caz
exist ms,e,.
Propoziie Fie M un SED. Atunci:
a)Dac ms,e, avem (s, ms,e,) < e+ (s, ms,e,+1)
b)Dac s SM pentru care lim ( s, n) = L , exist i este finit, atunci e, astfel nct
n
Demonstraie
Propoziia 2.2.6. [40]
Fie M un SED pentru care exist ms,e, s SM, e, +.
Atunci
Demonstraie
m ( s ,ms ,e , ), +e ( s ,ms ,e , ), =
=max {n N | (s,n + ms,e,)< e + + }.
ms , e , + = ms , e , + m
( s , m s , e , ), + e ( s , m s , e , ),
Demonstraie
Propoziie
ntr-un SED avem urmtoarele proprieti:
a) ms,e, = 0 e +
b) +e >
(s)
(s).
m s ,e , = m
( s ), 0 , e + t ( s )
+1
Demonstraie
a)Implicaia de la stnga la dreapta se obine punnd ms,e, = 0 n 2.2.5.a) i folosind relaia
(s,1) =
( s, n) =
n 1
t ( ( s , i )).
i=0
Aceasta reprezint timpul total necesar sistemului pentru a face n tranziii din momentul
intrrii n starea s.
Implicaia de la dreapta la stnga se demonstreaz prin absurd folosind forma de mai sus a
lui .
Propoziie
Fie M un SED pentru care exist ms,e,, s SM, e, +.
Atunci
G ( s, e, ) = ( ( s, ms , e, ), + e ( s, ms , e, )).
Demonstraie
Demonstraie
Se evalueaz cei doi membri ai relaiei folosind 2.2.9. i se obine egalitatea cerut.
Propoziie
Fie M un SED pentru care exist ms,e,, s SM, e, +.
Atunci
G (q, x + ) = G ( G (q, x ), ) , q , , +.
Demonstraie
Definiie
Un SED M se numete viabil s SM, lim
(s, n) =
Teorema
Fie M un SED viabil. Atunci structura G(M) = (T, X, G , , Y, G, ) este o realizare
iterativ a lui M, iar
SG(M) = (T, X, G+ , , Y, G, )
este un model iterativ pentru sistemul cu evenimente discrete M n care:
T = Z+, cu intervale de observaie de forma : < > = [ ) .
X = XM {}, XM
= M = {(s,e) | s SM, 0 e
(s)}
Y = YM
= M
G = X
G : G dat prin :
G (( s, e), ) = ( ( s, m s ,e , ), + e ( s, ms ,e , ))
G (( s, e), x ) = G (( M (( s, e), x),0), )
Demonstraie
Din definiia lui G se observ c aceasta poate fi luat ca mulime generatoare a segmentelor de
intrare. Folosind propoziiile de mai sus se demonstreaz c G verific proprietatea de
separabilitate a strilor.
I.3.3. Metodologia de realizare a experimentelor de simulare (Metodologia simulrii)
Etapele realizrii unui experiment de simulare sunt:
1. Formularea problemei; const n a preciza ntrebrile la care trebuie s rspund modelul i
a preciza domeniul lumii reale ce trebuie analizat. Aici se precizeaz i forma rspunsului la
ntrebri (de ex. dac se vor produce grafice, tabele sau chiar texte scrise).
facilitatea help existent n implementarea GPSS/PC. Acest limbaj a fost dezvoltat pentru prima
data de firma IBM la inceputul anilor '60.
Entitile limbajului GPSS.
Limbajul GPSS se compune din 16 tipuri de entiti (elemente de abstractizare). La
fiecare entitate se asociaz un numar de proprieti sau atribute n majoritatea lor adresabile
intern (de ctre GPSS), dar unele sunt adresabile i de ctre utilizator; atributele sunt:
standard numerice (numere) sau standard logice (valori logice).
Entitile de baz sunt:
1) Blocuri (entiti care descriu {activiti);
2) Tranzacii (elemente circulante); ele sunt create (printr-un bloc special GENERATE) i
circul prin model (sistem!), ca urmare a aciunii altor blocuri.
Blocurile au asociate caracteristici numerice sau logice i posed argumente necesare
descrierii activitilor. Tranzaciile posed un numr de parametri standard dar i parametri
introdui de utilizator. Prin programul de simulare utilizatorul poate accesa parametrii
tranzaciilor.
Entiti de echipament:
3) Staii de serviciu sau faciliti (ele corespund subsistemelor cu o component care trateaz
de regul o singura tranzacie!);
4) Multistaii de serviciu sau depozite; acestea trateaz de regul mai multe tranzacii (de ex.
liftul, autobuzul, pot transporta mai muli clieni considerai ca tranzacii etc.);
5) Comutatorii logici sunt variabile logice care permit utilizatorului s realizeze ramificarea
dup dorin a fluxului de execuie n programul de simulare.
Entiti de calcul ce permit efectuarea (limitat!) a unor calcule:
6) Variabile aritmetice; permit evaluarea unor expresii aritmetice, iar rezultatul este memorat
de o variabil aritmetic;
7) Variabile booleene; permit evaluarea unor expresii booleene, iar rezultatul este memorat de
o variabil boolean;
8) Funcii descrise prin tabele sau prin segmente de dreapt (liniare pe poriuni);
9) Funcii analitice descrise prin expresii mai complicate (ele exist numai n SIMUB i au
rolul de a facilita simularea diverselor variabile aleatoare prin metoda invers);
Entitile statistice, permit colectarea unor statistici sau estimaii privind VE sau PE ;
printre acestea se remarc:
10) Cozile care sunt entiti statistice ce memoreaz tranzaciile ntrziate n sistem;
11) Tabele de frecvene care descriu histograme ale VE ;
12) Tabele de frecven bidimensionale sau tabele de contingen (acestea sunt disponibile
numai n SIMUB);
Entiti de referin care memoreaz anumite informaii pe care le dorete utilizatorul i
anume:
13) Cuvinte de salvare care memoreaz valori ce corespund cte unui cuvnt de memorie al
calculatorului;
14) Matrice de cuvinte de salvare care memoreaz matrici;
Entiti de tip lan, care sunt de dou tipuri:
15) Lanuri ale utilizatorilor n care se pot depune sau scoate tranzaii dup dorina
utilizatorului (Exist i lanuri ale sistemului, manipulate intern de ctre GPSS, care nu pot fi
accesate de utilizator).
16) Grupuri care separ tranzacii (cu anume scopuri de prelucrare dorite de utilizator).
NOT. Toate entitile trebuie definite/identificate i declarate de ctre utilizator la
nceputul programului. Pentru fiecare entitate se aloc memorie, la instalarea limbajului se aloc
i un numr maxim de entiti care se pot utiliza ntr-un program.
Entitile se invoc prin instruciuni cu structura fix. (Limbajul este un interpreter).
Limbajul permite descrierea modular a unui model de simulare general; cel mai
important este modulul principal (ciclul de baz). Ieirile sunt standard; se afieaz/scriu valori
ale atributelor, statistici, tabele de frecven etc.
Limbajul GPSS este un interpreter, ceea ce nseamn c fiecare instruciune scris
corect (i recunoscut ca atare de ctre GPSS) se execut imediat.
Structura instruciunii GPSS.
Instruciunea GPSS are un format fix.
Nume simbolic
Numele blocului
Argumente/parametrii
(etichet)
(cuvnt cheie)
(separate prin virgul)
Verb imperativ care
Opional pentru
desemneaz aciunea
A, B, C,
referiri
blocului
1) Blocurile descriu aciuni (sunt entiti active spre deosebire de tranzacii care sunt entiti
pasive, n sensul c ele sunt micate prin model ca urmare a aciunii blocurilor).
Tipurile de blocuri sunt:
a) Blocuri de aciune: SEIZE/RELEASE (tranzacia curent ocup sau elibereaz o
facilitate); PREEMPT (tranzacia intrat n acest bloc poate ocupa o staie de serviciu
indicat de parametrul-argument sau o poate prelua dac este ocupat de alt tranzacie);
ENTER/LEAVE (ocup sau elibereaz o poziie dintr-o multistaie); QUEUE/DEPART
(intr n coad sau pleac din coad); LINK/UNLINK (introduce sau scoate tranzacia
dintr-un lan al utilizatorului); SPLIT (descompune tranzacia n mai multe tranzacii care
formeaz o familie); ASSEMBLE/GATHER (unific tranzaciile dintr-o familie fr, sau
cu pstrarea atributelor de baz din familie); MATCH (sunt 2 blocuri conjugate; ele
sincronizeaz deplasarea tranzaciilor care ntlnesc aceste blocuri); ADVANCE (ntrzie
tranzaciile; simuleaz de ex. durata de serviciu a tranzaciei); BUFFER (nseamn
prelucrarea tranzaciilor n ordinea prioritilor); JOIN/REMOVE (introduc sau scot
tranzacia ntr-un grup); SCAN (verific dac exist o tranzacie n grup cu o anumit
proprietate);
b) Blocuri de creare i distrugere de tranzacii: GENERATE/TERMINATE (generarea se
face cu generatori specializai de numere aleatoare, tranzacia putnd fi prevzut cu
prioriti);
c) Blocuri de control logic al tranzaciilor: TEST (controleaz dac 2 atribute ale
tranzaciei satisfac o condiie); TRANSFER (asigur transfer condiionat sau nu al
fluxului de execuie la blocul indicat prin argument); GATE (modific drumul
tranzaciilor n funcie de condiii referitoare la atribute ale facilitilor, multistaiilor,
comutatorilor logici sau tranzaciilor); EXAMINE (modific fluxul n funcie de
apartenena la un grup); LOOP (repet execuia de la blocul menionat ca argument pn
la blocul LOOP);
d) Blocuri de modificare a caracteristicilor tranzaciilor i a valorilor unor entiti de
referin: ASSIGN (atribuie valori numerice parametrilor tranzaciilor i/sau le modific;
cnd se genereaz o tranzacie poate fi prevzut cu ''locuri'' pentru un numr de
maximum 12 parametri referibili de ctre utilizator; numrul parametrilor poate fi
standard sau precizat de utilizator la generare); INITIAL (iniializeaz cuvintele sau
matricile de cuvinte pstrate); PRIORITY (modific prioritile; lucreaz n legtur cu
blocul BUFFER); LOGIC (poziioneaz pe true sau false un comutator logic ce poate
juca rol de semafor); MARK (utilizat pentru a marca ntr-un cuvnt special asociat
fiecrei tranzacii, valoarea ceasului); SAVEVALUE/MSAVEVALUE (memoreaz ntrun cuvnt/matrice valoarea unui atribut standard numeric precizat); COUNT (determin
numrul de entiti ce satisfac o anumit condiie i-l memoreaza ntr-un parametru al
tranzaciei specificat ca argument al lui COUNT); SELECT (selecteaz prima entitate
004
DEPART
COADA1
;Tranzacia pleac, se actualizeaz
ateptrile
Pentru a prelucra 200 tranzacii se va da la nceput comanda:
000
START
200
La sfritul simulrii apelnd procedura GPSSREPT.EXE se va afia un raport final
privind simularea care conine:
- durata total a prelucrrii tranzaciilor (durata simulrii);
- gradul de ocupare a staiei de serviciu (media i maxima);
- durata medie a ateptrilor etc.
001
003
005
007
009
003
004
005
006
007
008
009
010
ENTER
DEPART
ADVANCE
LEAVE
SEIZE
ADVANCE
RELEASE
TERMINATE
GHISEE
COADA
15,3
GHISEE
CASIER
2
CASIER
1
F (x ) =
f (x )dx
F ( x, y ) = F1 ( x )F2 ( y )
(2.1.)
S observm c se face distincie ntre variabila aleatoare X i o valoare x a acesteia
(care reprezint un numr real fixat!).
Valorile efectiv obinute prin procesul de selecie constituie o mulime de n numere care
se spune c reprezint o realizare a seleciei bernouliene. Deoarece fiecare din aceste numere pot
s reprezinte oricare valoare a lui X , se consider c valorile de selecie (numite i variabile de
selecie) sunt independente i identic repartizate ca i X .
Cnd pentru o variabil aleatoare X se cunoate F sau f spunem c se cunoate
repartiia de probabilitate sau repartiia statistic a lui X . Exist multe tipuri de repartiii de
probabilitate. Cele mai importante vor fi introduse n acest capitol, dar i n capitolele urmtoare.
Repartiia uniform
Una dintre repartiiile de probabilitate importante, dar care este natural, este repartiia
uniform pe un interval [a, b] care are densitatea de repartiie de forma
k dac x [a, b]
1
, k=
g (x ) =
ba
0 n rest
(2.2.)
dac x < a
0
x a
G (x ) = g (u )du =
dac x [a, b]
(2.3.)
b
a
1
dac x > b
S notm cu U variabila aleatoare uniform pe [0,1] , pe care o vom numi pe scurt
variabil uniform 0 1 . Densitatea de repartiie i funcia de repartiie a lui U sunt respectiv
0 dac x < 0
1 dac x [0,1]
f (x ) =
, F ( x ) = x dac x [0,1]
(2.4.)
0 n rest
1 dac x > 1
variabil uniform pe [a, b] i reciproc, dac V este o variabil aleatoare uniform pe [a, b]
atunci variabila
U=
V a
ba
este uniform 0 1 .
Fiind dat o variabil aleatoare oarecare X , pentru care se cunoate funcia de repartiie
, F este adevrat urmtoarea teorem care evideniaz importana repartiiei uniforme 0 1 ,
adic importana numerelor aleatoare.
Teorema 2 (Teorema lui Hincin). Variabila aleatoare F ( X ) este uniform 0 1 iar
dac notm cu F 1 inversa funciei F atunci F 1 (U ) are funcia de repartiie F (sau cu alte
cuvinte F 1 (U ) = X ).
2 m
1
1
(2.5.)
m
m
+
unde m N . Conform teoremei 1, variabila U uniform 0 1 se poate obine astfel
X
U = (0,1)
(2.5'.)
m
1
X : 1
care spunem c definete generatorul mixt congruenial ( X 0 , a, c, m ) unde cele patru constante
sunt numere naturale date.
Pentru ca generatorul (2.6) s produc numere aleatoare, trebuie alese constantele X 0 ,
a , c , m astfel nct s satisfac condiiile:
1. Numerele X i s reprezinte o repartiie uniform de forma (2.5); acest lucru se realizeaz
dac irul
{X i }
are o perioad mare adic dac cel mai mic numr pentru care
X i = X i + are loc pentru un ct mai mare.Acest lucru se ntmpl dac cele patru
constante se aleg astfel nct relaia (2.6) s produc toate resturile modulo m , adic
numerele 0,1,..., m 1 , iar m este mare.
2. Numerele X i s fie independente stochastic; acest lucru nu este practic posibil deoarece
X i +1 depinde de X i conform relaiei (2.6); este ns posibil ca numerele X i , X i +1 s fie
slab dependente stochastic. Aceast condiie nseamn c numerele respective au un
coeficient serial de corelaie apropiat de 0 , definit astfel:
= 1 = Corr ( X 1 , X i +1 ) =
E [X i X i +1 ] E [X i ]E [X i +1 ]
(2.7.)
Var [ X i ]Var [X i +1 ]
[ ]
Var [X i ] = E [X i E [ X i ]] = E X i2 {E [ X i ]}
2
(2.8.)
1)c
(2.6'.)
(mod m ) , b = a 1
b
Dac n relaia precedent lum a = b + 1 atunci (2.6') devine
X n = c n + C n2 b + ... + C ns b s 1 (mod m )
(2.6''.)
unde s este cel mai mic numr natural care satisface relaia
(2.6'''.)
b s 0(mod m )
Numrul s se numete potena generatorului mixt congruenial. Din relaia (2.6'') rezult c X n
este de forma unui polinom n b modulo m i deci generatorul este cu att mai bun cu ct
potena sa s este mai mare. S-a constatat c din punct de vedere practic, potena trebuie s fie cel
Xn =
(a
puin 5.
Un caz interesant este acela cnd m = 2 e unde e este apropiat de cuvntul calculatorului
pe care se implementeaz generatorul (2.6). n acest caz se arat c o alegere bun a lui a este de
f
forma a = 2 1 + 2 2 + ... + 1 , f1 > f 2 > ... . Deci un generator pentru care m i a satisfac
condiiile teoremei 3 genereaz un ir de numere aleatoare ntregi de perioada mare i care nu
prezint regulariti (nu conin subiruri periodice de lungimi mari sau subiruri cu monotonii
periodice). Constanta c poate fi deocamdat arbitrar aleas.
S vedem cum putem alege constantele generatorului (2.6) astfel nct s fie suficient
de mic.
Numerele produse de (2.6) au o repartiie de forma (2.5) n care valorile lui X sunt
0,1,..., m 1 . Deci n acest caz avem
m 1
E[X ] =
x
x =0
m 1
, Var [X ] =
x
x =0
{E [ X ]}
m 1
m xs( x ) x
x =0
x =0 , s ( x) = (ax + c )(mod m ) .
1 = =
2
m 1
m 1
2
m x x
x =0
x =0
m 1
1
c c
1 6 + 6
a
m m
c , c a
(2.9.)
m iar din
c
trebuie s satisfac ecuaia
m
c 1 1
1 6 x + 6 x 2 = 0 adic
=
3 = 0.211324865
(2.10.)
m 2 6
Ultima relaie d o condiie pentru alegerea lui c .
Notnd k = Corr ( X i , X i + k ) , se arat c k 1 , k > 1 , ceea ce asigur o dependen
slab a numerelor deprtate din secvena X 1 , X 2 ,... .
n concluzie, pentru ca generatorul (2.6) s fie bun trebuie s alegem un modul m ct
mai mare, s selectm un a astfel nct s satisfac teorema 3 mpreun cu o poten mai mare
dect 5 i s ia o valoare apropiat de m , iar c s satisfac (2.10). Numrul de start X 0 , care
se mai numete i smna generatorului poate fi orice numr natural mai mic dect m .
Pentru a produce un numr aleator ntreg X , generatorul (2.6) necesit deci efectuarea
unei nmuliri i a unei adunri i apoi calcularea restului modulo m . Dac am alege c = 0
atunci am obine generatorul multiplicativ congruenial ( X 0 , a,0, m ) care are avantajul c
condiia 0 se deduce c
X n +1 (aX n )(mod m )
(2.11.)
n acest caz X 0 trebuie s fie neaprat pozitiv cci altfel irul produs de (2.11) ar avea toate
elementele egale cu zero deci nu ar fi un ir de numere aleatoare uniforme ntregi. Condiia de
perioad maxim se modific i ea i ntr-un caz interesant din punct de vedere practic se
exprim prin teorema urmtoare.
Teorema 4. Perioada maxim a generatorului ( X 0 , a,0, m ) se obine cnd:
(i)
(ii)
( )
( )
e e = 2 e 2 dac e 3
p e = p e 1 ( p 1) , dac p > 2
e1
1
p ... p
1.
et
t
) = c.m.m.m.c.((p ),..., ( p ))
e1
1
(2.12.)
et
t
perioad 2 55 1 .
2.
X n = aX
unde X
3.
1
i
1
n 1
+ c (mod m )
(2.14.)
resturi, cnd acesta exist sau este zero altfel. (Dac m prim i X i 0 atunci inversul
exist!).
Generatorul matricial congruenial care este de forma
X n = ( AX n 1 + C )(mod m )
(2.15.)
unde X n este un vector d dimensional iar A , C sunt matrici d d . nmulirea
4.
ai = ai p ai p + q
(2.16''.)
X n = X n p X n p+q
(2.17.)
Generatorul G rezultat din amestecare este mai aleator dect prinii si G1 , G 2 , iar
perioadele satisfac relaia (G ) = c.m.m.m.c.((G1 ), (G 2 )) .
Exp( ) , > 0
f ( x ) = e x , x > 0
Weib(0,1, v ) , v > 0
f ( x) = vx v 1e x
1
1
, xR
x 1+ x2
vx
, x>0
f ( x) =
(1 + x )v+1
1
1
, x [ 1,1]
f ( x) =
x 1 x2
ex
f ( x) =
, xR
(1 e x )2
f ( x) =
Cauchy
PearsonXI, R , v > 0
Arcsin
x = ln (u )
x = ( ln (u ))
1v
x = tan u
2
1
x = 1v
u
1
x = sin u
2
1 u
x = log
u
n formulele lui f din tabel se precizeaz numai valorile lui x pentru care f ( x) > 0 ,
presupunndu-se c f (x) = 0 n rest.
n ultima coloan se scrie direct formula cu care se simuleaz variabila aleatoare X ,
deoarece s-a nlocuit 1 u cu u , economisindu-se n acest fel o operaie de scadere. nlocuirea
lui 1 u cu u se va face ori de cte ori se va ivi ocazia.
Logistic
Folosind metoda invers se poate construi uor un algoritm pentru simularea variabilei
discrete
a2 am m
, pi = 1
(3.1.)
p 2 p m i =1
Pentru simularea variabilei aleatoare X calculm mai nti valorile funciei de repartiie a
a
X : 1
p1
acesteia. Avem
0
p
1
p1 + p 2
F ( x) =
p + p + ... + p
2
k
`
dac x < a 1
dac a 1 x < a 2
dac a 2 x < a3
dac a k x < a k +1
dac a m x
(3.2.)
p
j =1
. Intrare a[1..m]
Ia X = a[i ].
III.2. Metoda compunerii sau amestecrii
1
J :
p1
2 m
,
p 2 p m
p
i =1
=1
(3.3.)
dac
m
F ( x) = pi Fi ( x)
(3.4.)
i =1
variabila
repartiie G (x, Y ) ;
aleatoare
ZY
care
are
funcia
de
Ia X := Z Y .
Desigur, n algoritmii precedeni se presupun cunoscute metode de generare a variabilelor
f ( x) = pi f i ( x)
(3.4'.)
f ( x) = g ( x, y )h( y )dy
(3.5'.)
i =1
Ia X = (S1 , S 2 ,..., S n ) .
{S1 , S 2 ,..., S n }
F ( x) = c Q((t ) )dR(t )
(3.6.)
unde Q(z ) este funcia de repartiie a unei variabile aleatoare Z , Z [0, M ] , (x) este o
funcie ce ia valori n [0, M ] (unde M poate lua i valoarea ) iar R ( y ) este funcia de
repartiie a unei variabile aleatoare Y , Y R , iar variabilele Z , Y sunt independente
stochastic. n aceste condiii funcia de repartiie a variabilei Y , condiionat de Z (Y ) este
F (x) .
Se observ din nou c probabilitatea de acceptare a algoritmului este p a = P (B ) . Este
evident c teorema descrie un procedeu de respingere ale crui elemente sunt uor de precizat.
Teorema rmne valabil dac condiia (3.6.) se scrie n termeni de densiti i anume:
f ( x) = cQ(( x) )r ( x) , r ( x) = R ( x)
(3.7.)
O form dual a teoremei se obine dac F (x) este de forma
x
F ( x) = c (1 Q((t )))dR(t )
(3.8.)
P( x Z 1 Z 2 ... Z k 1 < Z k
k 1
k
[
[
G ( x )]
G ( x)]
)=
(n 1)!
k!
(3.9.)
(2) Dac x este fixat i K este indicele aleator la care se ''rupe'' subirul descendent (ca la pct
(1)), atunci
(3.9'.)
P(K = numr impar ) = P(K (mod 2) = 1) = e G ( x )
(3) Dac subirul descendent este Z 0 Z 1 ... Z k 1 < Z k (adic se rupe la un K aleator i
ncepe cu Z 0 ~ G0 ( x) ), atunci
x
(3.10.)
p a = e G ( x ) dG0 ( x)
(3.10'.)
K = K + 1 ; Z 0 := Z 1 ;
Genereaz Z 1 ~ G ( x) ;
end;
until K mod 2 = 1 ;
Ia X := Z * .
S analizm acum performana algoritmului. Observm c p a ne d informaie asupra
vitezei algoritmului: cu ct p a este mai mare, cu att mai repede ajungem s acceptm un Z 0
(cnd K = numr impar ). Dar
( )
E N* =
1
pa
1 + e G ( x ) dG0 ( x)
(3.11.)
Normal
N ((0,1)
2. Modul
Repartiia
3.
maximului
4.
5.
Repartiia
minimului
Repartiia
Erlang (k )
f ( x) =
x2
2
e , < x <
2
1 x dac x [- 1,1]
f ( x) =
altfel
0
nx n 1 dac x [0,1]
f ( x) =
altfel
0
n(1 x )n 1 dac x [0,1]
f ( x) =
altfel
0
dac x < 0
0
, kN+
f (x) = 1
(k) dac x 0
12
X = U i
i =1
X = U1 U 2
max{U 1 ,U 2 ,...,U n }
min{U 1 ,U 2 ,...,U n }
k
X = ln U i
i =1
2 = Z i2
(3.13.)
i =1
Dac Z i ~ N (mi ,1) , atunci variabila dat prin relaia (3.11.) se numete variabil hi
2 = mi2 i2
(3.13'.)
i =1
1 f
.
2 2
tf =
Z
2f
(3.14.)
f
se numete variabila t a lui Student cu f grade de libertate. Dac n (3.14) n loc de 2f se
introduce 2f , atunci se obine variabila notat t f , care se numete variabila t Student
necentrat cu f grade de libertate i cu parametrul de excentricitate . Variabilele de tip t
Student se simuleaz direct cu formule de tipul (3.14).
Repartiia Snedecor
Dac variabilele 2f , 2f sunt independente atunci variabila
1
F f1 f 2 =
f 2 f1
(3.15.)
f1 f 2
1 , 1
1 , f 2 ;1 , 0
, f
, Ff
2 , 2
1 , f 2 ; 0 , 2
sau ambele,
, cu parametri
1 , f 2 ;1 , 2
1 s2
= log(m ) log 2 + 1
2 m
s
2 = log 2 + 1
m
deci simularea variabilei Y se realizeaz cu algoritmul simplu
(3.16.)
2 );
0
f ( x) = -x
e
dac x 0
dac x > 0
(3.17.)
Z
. Metoda invers pentru
simularea lui Z , adic Z = log(U ) , nu este recomandabil deoarece dac U este apropiat de
zero atunci log(U ) nu se poate calcula. De aceea vom prezenta o metod de respingere datorat
K := K + 1 ; U 0 := U 1 ;
genereaz U 1 uniform 0 1 ;
end; (s-a simulat un subir descendent);
if K mod 2 = 0 then N := N + 1 ; (se numr subirurile
respinse);
until K mod 2 = 1 ;
Ia Z := N + U * .
Pe lng probabilitatea de acceptare
( )
E N* =
1
pa
1 x
e2
1
1 + e dz =
(
)
1
+
1
=
3,8
e
1 e 1
e
1
0
(3.11'.)
adic trebuie simulate n medie aproape 4 numere uniforme pentru a obine o valoare de selecie
exponenial Z .
f ( x) =
1 ( x )
() ( x ) e
dac x < 0
dac x 0
iar formulele
Y =+
X
, X = (Y )
spun c este necesar i esenial s construim metode pentru simularea unei repartiii Gamma
standard, adic Gamma(0,1, ) , R + . Dac = k N + , atunci repartiia gamma devine
repartiie Erlang (k ) . Dac 0 < < 1 atunci simularea variabilei Gamma(0,1, ) se realizeaz
0
h( x ) = -1 x
x e
Algoritmul pentru simularea lui X este:
dac x < 0
dac x 0
Intrare ; Calculeaz c :=
1
; := 1 ; a := e ( 1) ;
repeat
Genereaz U uniform 0 1 ;
Calculeaz Z = ln (U ) ; Y = Z c ;
f ( x) = 1 1 x
() x e
dac x < 0
dac x 0
sub forma
f ( x) = p1 f 1 ( x) + p 2 f 2 ( x)
unde
f ( x)
f1 ( x) = p1
0
f ( x)
dac x (1, )
, f 2 ( x) = p 2
0
altfel
altfel
(1 : )
() (1; )
p1 =
, p 2 = 1 p1 =
()
()
dac x [0,1]
() = x
0
e dx , (1; ) = x 1e x dx
1 x
dac x < 1
dac x 1
g = () ;
g1 = (1; ) ;
p1 =
g1
,
g
g g1
1
1
1
, a= , b=
, c=
, algoritmul de simulare al variabilei
e( g g 1 )
g
1 v
X ~ Gamma(0,1, ) , 0 < < 1 este
p2 =
Z 0 = Z1 ; Genereaz Z 1 = random ; K = K + 1 ;
end;
until K mod 2 = 1 ;
Ia X 1 = Z * .
( )
( )
1
pa
1 1 t
1 + t e dt , ultima
2
, deci numrul mediu de variabile Z i ,
p2
( )
( )
( )
( )
1
, adic
densitatea h( x) ~ Exp
dac x < 0
0
h( x ) = 1 x
dac x 0
e
f ( x) x 1e x
=
Analiznd raportul r ( x) =
, > 1 , se constat c acesta are ca punct de
x
h( x )
()e
maxim x = , deci constanta din teorema 3.1. (a nfurtoarei) este = r () =
e1
.
()
Probabilitatea de acceptare a algoritmului de simulare (care este simplu de construit) este deci
()
p a = 1
e
() ( 1)
e 2 2
1
adic
G2
Algoritmul precedent este lent pentru foarte mare. De aceea vom prezenta n acest caz
o alt metod de respingere, bazat pe nfurarea cu o densitate Cauchy nonstandard trunchiat
pe [0, ) de forma
h( x ) =
2
(
x ( 1))
1+
, x0
(3.18)
r ( x) =
1
f ( x)
( 1)1 e (1)
=
h( x )
k()
(3.18'.)
b
c
until U 1 e
;
Ia X = Y .
Se observ c constanta k nu intervine n construcia algoritmului dar ea este necesar
1
1
. Referitor
pentru a calcula p a = . Un calcul simplu arat c k = + arctg
2 1
2
la repartiia Gamma(0,1, ) , > 1 mai observm i faptul c dac descompunem sub forma
1
b 1
x a 1 (1 x )
f ( x ) = B ( a, b)
0
dac x [0,1]
(3.19.)
altfel
unde
1
(a)(b)
.
(3.19'.)
( a + b)
0
Urmtoarea teorem permite simularea variabilei Beta(a, b) .
Teorema 9. Dac X 1 ~ Gamma(0,1, a ) , X 2 ~ Gamma(0,1, b) , X 1 independent
B (a, b) = x a 1 (1 x) b 1 dx , B (a, b) =
de X 2 , atunci variabila
X =
X1
X1 + X 2
(3.20.)
Teorema 11. Dac 0 < a < 1 , 0 < b < 1 i U 1 , U 2 sunt variabile aleatoare uniforme
1
V
V +T
Ia V = U 1 a , T = U 2 b ;
until V + T < 1 ;
Calculeaz X =
V
.
V +T
ab
B ( a, b ) .
a+b
0
dac x < 0
f 1 ( x) = 2 x 2
(3.21.)
e 2 dac x 0
Considerm i variabila X 2 = X 1 cu densitatea f 2 ( x) . Densitatea X ~ N (0,1) se
1
1
scrie f ( x ) = f 1 ( x) + f 2 ( x) , adic este o compunere discret a densitilor f 1 ( x) i f 2 ( x) .
2
2
Pentru a construi un algoritm de simulare a lui X va trebui s construim mai nti un algoritm de
simulare a lui X 1 . Vom nfura densitatea f1 (x) cu h(x) ~ Exp(1) . Rezult teorema:
f ( x)
2e
=
i deci putem
h( x )
repeat
Genereaz U uniform 0 1 ;
Genereaz Y ~ Exp(1) ;
Y2
+Y 0.5
2
;
until U e
Ia X 1 := Y ;
Genereaz U uniform 0 1 ;
if U 0.5 then s := 1 else s := 1 ; ( s este un semn aleator);
Ia X = sX 1 .
Se observ c probabilitatea de acceptare este p a =
O alt metod interesant de simulare a variabilei N (0,1) este metoda polar dat de
urmtoarea teorem, datorat lui Box i Muller.
Teorema 14. Dac variabilele U 1 , U 2 sunt uniforme 0 1 i independente, atunci
2 log( S )
2 log( S)
, Z 2 = V2
, unde V1 = 2U 1 1 ,
S
S
V2 = 2U 2 1 , S = V12 + V22 , S < 1 , sunt variabile normale N (0,1) independente.
variabilele
aleatoare
Z 1 = V1
(dedus din
aproximativ!).
n aceast seciune vom prezenta algoritmi pentru simularea unor repartiii particulare.
Simularea unor repartiii bazate pe probe Bernoulli
Fie un eveniment aleator observabil A care are probabilitatea constant p = P ( A) > 0 .
ntr-o experien ntmpltoare se poate produce A cu probabilitatea p sau evenimentul contrar
1
, atunci suntem n cazul particular al aruncrii la
2
ntmplare cu banul.
Repartiia binomial
Se spune c variabila aleatoare discret X N este o variabil binomial Binom(n, p ) ,
+
n N , 0 < p < 1 dac X este numrul de succese n n probe Bernoulli independente, adic
n
variabilei X se face deci simplu, prin numrarea de succese n n probe Bernoulli independente.
Avem P ( X = ) = C n p q n , q = 1 p , adic P ( X = ) este termenul general al dezvoltrii
X np
~ N (0,1) .
npq
De aici rezult urmtorul algoritm simplu de generare a lui X ~ Binom(n, p ) pentru n mare.
Algoritmul BINNORM
Genereaz W ~ N (0,1) ;
Calculeaz
E( X ) =
kq
kq
, Var ( X ) = 2
p
p
(3.23.)
log(U )
q
q
de unde se deduce i E ( X ) = , Var ( X ) = 2 , formule care se folosesc la
X =
p
p
log(q)
testarea algoritmului de simulare.
Repartiia hipergeometric
Aceast repartiie se introduce dup cum urmeaz:
S considerm experimentul cu urn n care n bile se extrag la ntmplare din urn, fr
ntoarcere. n acest caz numrul X de bile albe extrase este o variabil hipergeometric. S
notm cu U evenimentul care reprezint extragerea unei bile albe i cu V evenimentul care
const n extragerea unei bile negre; atunci probabilitile de a extrage n prima extragere o bil
A
B
, P (V ) =
. Probabilitile de extragere a
N
N
unei bile albe sau negre n a doua extragere sunt condiionate de rezultatele primei extrageri adic
P (U U ) =
B 1
A
B
A 1
, P (U V ) =
, P (V U ) =
, P (V V ) =
. Se observ c la
N 1
N 1
N 1
N 1
fiecare extragere compoziia urnei se schimb i probabilitatea de a extrage o bil alb sau neagr
este variabil n funcie de extragerile anterioare. Variabila hipergeometric se noteaz
H ( N , p, n) , 0 < p < 1 , n < N de unde A = {Np} ( {x}, x R este cel mai apropiat ntreg de
x ), B = N A . Probabilitatea ca n n extracii succesive fr ntoarcere, s se extrag a bile
C Aa C Bn a
albe este P ( X = a ) =
, 0 a n , n < N . De asemenea, avem E ( X ) = np ,
C Nn
np
[n(Np 1) + N (1 p )] i Var ( X ) = np(1 p) N n .
E X2 =
N 1
N 1
Algoritmul de simulare a variabilei hipergeometrice X este
( )
Algoritmul HIPERGEOM
Intrare A , B , n , N = A + B ; (Acesta este un pas pregritor);
Calculeaz p =
A
; IniializeazA j := 0 , X := 0 ;
N
repeat
Genereaz U := random ; Ia j := j + 1 ;
if U < p then begin
X := X + 1 ; S := 1 ; (S-a estras o bil alb);
end else S := 0 ; (S-a extras o bil neagr);
Calculeaz N := N 1 , A := A = S , p :=
until j = n ; ( X ~ H ( N , p, n ) ).
A
;
N
Repartiia Poisson
Variabila
aleatoare
X,
X N
are
repartiia
Poisson( ) ,
>0
dac
e , > 0 . Avem i E ( X ) = , E X 2 = 2 + , Var ( X ) = .
!
Repartiia Poisson( ) este repartiia evenimentelor rare n sensul urmtor: evenimentele
P( X = ) =
( )
sunt independente i se produc la intervale aleatoare de timp astfel nct un eveniment se produce
pe intervalul de timp [t , t + t ] cu probalilitatea t + O(t ) unde lim O(t ) = 0 i
t 0
O(t )
= 0 ( O(t ) este neglijabil n raport cu t ) iar probabilitatea ca pe acelai interval
t 0
t
s se produc mai mult de un eveniment (condiia de raritate) este O (t ) (adic este neglijabil).
lim
j 1
i =1
i =1
i = log
Ui
, U i uniforme 0 1 , atunci rezult c
X = j 1 dac
j 1
i =1
e > U i
(3.24.)
i =1
Pe baza relaiei (3.24.) se poate construi cu uurin un algoritm pentru simularea lui X .
III.8. Validarea generatorilor
Validare nseamn nu numai verificarea corectitudinii formale a programelor, ci n
special dac algoritmul implementat (programat) produce valori de selecie asupra variabilei
aleatoare n cauz, adic dac pe baza unei selecii X 1 , X 2 ,..., X n , de volum n suficient de mare
se verific ipoteza statistic H : X ~ F (x) , care se mai numete i ipotez de concordan.
Mai nti ar trebui s verificm intuitiv dac repartiia empiric sau repartiia de selecie
se aseamn cu cea teoretic. Mai precis trebuie s construim grafic histograma i s vedem dac
ea se aseamn cu densitatea de repartiie.
Construcia histogramei se face astfel:
- se determin mai nti m = min ( X 1 , X 2 ,..., X n ) , M = max( X 1 , X 2 ,..., X n ) care reprezint
-
fi
.
n
I1
r1
I2 Ik
.
r2 rk
(3.25.)
Pentru reprezentarea grafic a valorilor din (3.25.) procedm astfel: lum pe abscis
intervalele I i i construim dreptunghiuri care au ca baz aceste intervale i ca nlimi ri .
Graficul obinut reprezint histograma seleciei X 1 , X 2 ,..., X n date. (Ea este histograma
frecvenelor relative; asemntor se obine i histograma frecvenelor absolute).
Testul 2
Odat construit histograma putem aplica testul de concordan 2 pentru verificarea
ipotezei
Calculm apoi =
2
( f i npi )2
j =1
npi
p1 = F (a1 ) ,
2 = Var ( X ) ;
-
X =
Xi
i =1
, s2 =
X
i =1
2
i
X2.
Se consider c generatorul este bun dac pentru n suficient de mare ( n > 1000 )
valorile lui X i s 2 sunt tot mai apropiate de m i 2 , ca o consecin a legii numerelor mari.
Se presupune c momentele teoretice m , 2 sunt cunoscute.
IV.1. Generaliti
k F
(x1 , x 2 ,..., xk )
(4.2.)
x1x 2 ...x k
cnd derivata parial exist, se numete densitate de repartiie multidimensional a lui
X.
Funcia de repartiie P( X i < xi ) = F (+ ,...,+, xi ,+,...,+ ) == Fi ( xi ) se
numete funcie de repartiie marginal a lui X i , iar f i ( xi ) = Fi( xi ) ( cnd derivata
exist) se numete densitate de repartiie marginal a lui X i . Se pot defini funcii de
repartiie marginale pentru 2,3,..., k 1 componente etc. De exemplu, funcia de repartiie
Fij (xi , x j ) = P(X i < xi , X j < x j ) = F (+ ,..., xi ,..., x j ,... + ) ,
1 i, j k
marginal
f ( x) = f ( x1 , x 2 ,..., x k ) =
F ( x ) = F ( x1 , x 2 ,..., x k ) =
=
x1 x2
xk
... f (u , u
1
(4.3.)
f (u )du
(4.4.)
(4.4'.)
x f (x )dx
i
+ +
x x f (x x )dx dx
i
ij
+ +
] (x
ij = E ( X i mi )(X j m j ) =
mi )(x j m j )dxi dx j
covariana lui
Xi
cu
Xj
i se noteaz
ij = Cov(X i , X j ). Se observ c
Cov (X i , X j )
Var ( X i )Var (X j )
(4.5.)
corelate.
0 ) i se noteaz = Cov( X , X ) .
Presupunem c
f x (1) x (2 ) =
f ( x1 , x 2 )
+
f (y
(1)
, x (2 ) dy (1)
, unde f ( x ) = f (x (1) , x (2 ) ).
(4.6.)
Cu
aceast
densitate
se
definesc,
cnd
E X (1) X (2 ) = x (2 ) ,
exist,
repartiia condiionat.
Metoda invers este valabil i n cazul simulrii vectorilor aleatori. Fie
F ( x) = F ( x1 , x 2 ,..., x k ) = P( X 1 < x1 , X 2 < x 2 ,..., X k < x k ) , funcia de repartiie a lui X i
X 1 , i
fie F1 (x1 ) = P( X 1 < x1 ) funcia de repartiie marginal a lui
F1...i ( x1 ,..., xi ) = P( X 1 < x1 ,..., X i < xi ) funcia de repartiie marginal a lui ( X 1 ,..., X i ) .
Fie de asemenea funciile de repartiie condiionate
F2 (x1 , x 2 ) = P (X 2 < x1 X 1 = x1 ) = F (x 2 x1 ) ,
F3 ( x1 , x 2 , x3 ) = P ( X 3 < x3 X 1 = x1 , X 2 = x 2 ) = F x3 x1 , x ,
independente atunci vectorul aleator Y = (Y1 , Y2 ,..., Yk ) ale crui componente sunt
Genereaz U := random ;
Calculeaz Yi := Fi 1 (Y1 , Y2 ,..., Yi 1 , U ) ;
end.
dac v I
k
(b a )
f (v ) = i
(4.7'.)
i
i =1
0
dac v I
Din (4.7') rezult c dac V este uniform pe I atunci Vi sunt variabile uniforme pe
[ai , bi ] i independente deoarece
k
f (v1 , v 2 ,..., v k ) =
i =1
De aici se deduce
V ~ uniform pe I .
f i (vi ) , f i (vi ) = bi ai
0
urmtorul
algoritm
dac v i [ai , bi ]
dac v i [ai , bi ]
simplu
pentru
simularea
(4.7''.)
vectorului
mrginit).
repeat
Genereaz V uniform pe I ;
until V D ;
Ia W := V .
mesD
=
mesI
mesD
k
(b
ai )
de unde se
i =1
deduce c pentru a obine un interval I ct mai bun, acesta trebuie s fie minimal astfel
nct D I .
IV.3. Simularea vectorilor normali
Vectorul aleator k dimensional X are repartiia normal N (, ) dac
densitatea sa este
1
( x ) 1 ( x )
1
2
f ( x, , ) =
e
, x Rk .
(4.8.)
1
k
(2) 2 [det ]2
i avem
E ( X ) = , Cov ( X , X ) = .
(4.8'.)
S notm cu Z vectorul normal N (0, I ) unde I este matricea unitate
k dimensional iar 0 este vectorul nul din R k . Atunci densitatea f ( z ) a lui Z
satisface proprietatea
k
f (z ) = f i (z i ) , f i (z i ) =
z2
i
2
(4.9.)
e
2
adic componentele Z i ale lui Z sunt independente i normale N (0,1) . Deci, simularea
lui Z ~ N (0, I ) se realizeaz simplu astfel
i =1
ci1 =
i1
, 1 i k
11
i 1
(4.10.)
j 1
cij =
ij cir c jr
r =1
c jj
, 1< j < i k
= (2 ) , = 11
21 22
Dac i sunt cunoscute atunci este adevrat urmtoarea teorem.
(4.11.)
Genereaz Z (`1) ~ N 0, I r r ;
+
;
Calculeaz C * astfel nct C *C * = 11
*
.
Rezultatul este X *(1) ~ N *(1) , 11
(4.15.)
(
x c)
1+
2
2
2
(
)
+
1
x
x
( )
g ( x) =
k +1
2
( )
k +1
2
k +1
(4.15'.)
det 1 + ( x c ) ( x c ) 2
Z*
(4.16.)
X = ( X 1 , X 2 ,..., X k ) ,
Vectorul aleator cu componente ntregi nenegative
X 1 + X 2 + ... + X k = n are repartiia multinomial Multinom(n, p1 , p 2 ,..., p k ) dac
n!
n
n
n
P( X 1 = n1 , X 2 = n 2 ,..., X k = n k ) =
p1 1 p 2 2 ... p k k ,
n1!n 2 !...n k !
(4.17.)
n1 + n2 + .. + nk = n , pi > 0 , 1 i k , p1 + p 2 + .. + p k = 1
Avem:
mi = E [ X i ] = npi ,
i2 = Var [X i ] = npi (1 pi ) = Cov( X i , X i ) ,
ij = Cov(X i , X j ) = E X i X j E [ X i ]E X j =
[ ]
(4.17'.)
= n(n 1) pi p j n 2 pi p j = npi p j
Vectorul X are o interpretare asemntoare variabilei binomiale n cazul unui
experiment cu urn dup cum urmeaz: s presupunem c ntr-o urn se gsesc N i bile
de culoarea i , 1 i k , N = N 1 + N 2 + ... + N k . Se presupune c se extrag n bile din
urn cu ntoarcere, din care X i sunt bile de culoarea i , n = X 1 + X 2 + ... + X k . Atunci
p
i
X.
Intrare
n, k , p1 , p 2 ,..., p k
i calculeaz
F [ ] = pi ,
1 i k ;
i =1
Iniializeaz X [1] := 0 , , X [k ] = 0 ;
for i := 1 to n do begin
Simuleaz U := random ; Ia i := i + 1 ;
while U F [i ] do i = i + 1 ;
Insumeaz X [i ] := X [i ] + 1 ;
end.
[ ]
f ( x1 ,..., x k ) = (1 )...( k +1 )
(4.18.)
0
dac x S k
LISTA DE SUBIECTE
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.