modelare_si_simulare

54
5/9/2018 modelare_si_simulare-slidepdf.com http://slidepdf.com/reader/full/modelaresisimulare 1/54 PREZENTAREA CURSULUI Cursul este structurat pe 4 capitole care acopera in intregime programa  prezentata. CAPITOLUL I Generalit ăţ i despre modelare si simulare  I.1. Introducere  I.2. Construc  ţ ia 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. Generalit ăţ i despre limbajul GPSS  I.5. Exemple de programe GPSS.  I.5.1. Model de simulare pentru un sistem de a  şteptare cu o sta  ţ ie  I.5.2. Model de simulare pentru un sistem de a  şteptare cu sta  ţ ii paralele  I.5.3. Model cu sta  ţ ii paralele  şi preferin  ţ e CAPITOLUL II  Numere aleatoare   II.1. No  ţ iuni introductive  II.2. Necesitatea simul ării numerelor aleatoare  II.3. Metode congruen  ţ iale liniare CAPITOLUL III  Simularea variabilelor aleatoare neuniforme  III.1.  Metoda invers ă  III.2.  Metoda compunerii sau amestec ării  III.3.  Metoda respingerii  III.4.  Alte metode  III.5.  Simularea reparti  ţ iilor înrudite cu reparti  ţ ia normal ă  III.6. Simularea unor variabile particulare  III.6.1.  Reparti  ţ ia exponen  ţ ial ă  III.6.2.  Reparti  ţ ia Gamma  III.6.3.  Metode pentru simularea variabilei ( ) υ , 1 , 0 Gamma  , 1 > υ   III.6.4. Reparti  ţ ia Beta  III.6.5.  Reparti  ţ ia normal ă  III.7.  Simularea unor variabile discrete  III.8. Validarea generatorilor 

Upload: bagzylove

Post on 08-Jul-2015

1.586 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 1/54

PREZENTAREA CURSULUI

Cursul este structurat pe 4 capitole care acopera in intregime programa prezentata.

CAPITOLUL IGeneralit ăţ i despre modelare si simulare

 I.1. Introducere

 I.2. Construc ţ ia 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. Generalit ăţ i despre limbajul GPSS  I.5. Exemple de programe GPSS.

 I.5.1. Model de simulare pentru un sistem de a şteptare cu o sta ţ ie I.5.2. Model de simulare pentru un sistem de a şteptare cu sta ţ ii paralele

 I.5.3. Model cu sta ţ ii paralele  şi preferin ţ e

CAPITOLUL II  Numere aleatoare 

 II.1. No ţ iuni introductive

 II.2. Necesitatea simul ării numerelor aleatoare

 II.3. Metode congruen ţ iale liniare

CAPITOLUL III Simularea variabilelor aleatoare neuniforme

 III.1. Metoda inversă 

 III.2. Metoda compunerii sau amestecării 

 III.3. Metoda respingerii 

 III.4. Alte metode

 III.5. Simularea reparti  ţ iilor înrudite cu reparti  ţ ia normal ă 

 III.6. Simularea unor variabile particulare

 III.6.1. Reparti  ţ ia exponen ţ ial ă 

 III.6.2. Reparti  ţ ia Gamma

 III.6.3. Metode pentru simularea variabilei  ( )υ,1,0Gamma  , 1>υ  

 III.6.4. Reparti  ţ ia Beta

 III.6.5. Reparti  ţ ia normal ă  III.7. Simularea unor variabile discrete

 III.8. Validarea generatorilor 

Page 2: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 2/54

CAPITOLUL IV  Simularea vectorilor aleatori  

 IV.1. Generalitati 

 IV.2. Simularea vectorilor uniformi 

 IV.3. Simularea vectorilor normali 

 IV.4. Simularea repartitiei Cauchy multidimensionaleVI.5. Simularea reparti  ţ iei multinomiale

 IV.6. Simularea repartitiei Dirichlet 

Page 3: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 3/54

CAPITOLUL IGENERALITĂŢI DESPRE MODELARE SI SIMULARE

1.1. Introducere

Cuvântul  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 apariţia primelor calculatoare electronice. J.von Neumannîmpreună cu grupul de savanţi de la Şcoala   Los Alamos (Ulam, Metropolis etc) au dezvoltat primele aplicaţii ale calculatoarelor. Tot ei au introdus denumirile Cercet ări opera ţ ionale (pentrua desemna aplicaţiile legate de dirijarea operaţiilor militare pe arii geografice mari ale globului pământesc!) precum şi metoda Monte - Carlo (pentru a desemna aplicaţii ale calculatoarelor   bazate pe utilizarea numerelor aleatoare). În accepţiunea actuală a informaticii, simulareacuprinde o serie de aplicaţii care realizează imitarea comportamentului unor păr ţi ale lumii reale(simularea stochastică), luând în considerare şi comportamentul aleator al acesteia. Din domeniulsimulării face parte şi metoda Monte Carlo.

Definiţia 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 aunor componente ale sale) de-a lungul unor perioade mari de timp.

Deci simularea se realizează pe baza unui model special, numit model de simulare, cuajutorul căruia se realizează experimentele prin intermediul calculatorului. Modelul de simularese construieşte pe scheletul unui model matematic şi se finalizează într-un algoritm. De aceea încele ce urmează vom prezenta schema generală a unui model de simulare, pornind de ladescrierea principalelor elemente ale unui model matematic.

Model matematic. Prin definiţie, un model este un analog ce reprezintă o parte a lumiiînconjur ătoare într-un mod uşor de perceput de către noi. Modelul ne reprezintă uneori realitatea prin scheme, figuri geometrice sau alte obiecte ce ne sunt familiare şi pe care le înţelegem uşor (i.e. la fel de bine cum le ''vedem'' sau le ''pipăim''). Modelul matematic ne reprezintă realitateafolosind elemente sau abstracţiuni matematice.

 Elementele constitutive ale unui model matematic sunt următoarele:a) Variabile (V ) şi  Parametri  ( P ) care pot fi de intrare (  PI VI , ), dacă pot fi percepute

(măsurate sau înţelese u şor ), sau de ie şire (  PE VE , ), dacă dimpotrivă, măsurarea 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 detimp.  Scopul  modelului este de a exprima variabilele şi parametrii de ieşire în funcţie devariabilele şi parametrii de intrare, cu eventuala satisfacere a unor condiţii de performanţă decătre sistem (de ex. condiţii de optim). Unele VI  pot fi aleatoare, caz în care şi unelevariabile sau parametri de ieşire vor fi de asemenea aleatoare.

 b)  Rela ţ iile func ţ ionale constituie o altă categorie de elemente ale unui model matematic. Ele

sunt de forma( ) 0,,, = PE VE  PI VI  F i  

(adică implicite) şi pot fi la rândul lor de două tipuri:- ecuaţii, care sunt satisf ăcute numai de anumite valori ale variabilelor sau parametrilor;- identităţi, care sunt satisf ăcute de orice valori ale variabilelor şi parametrilor; ele exprima

condi  ţ ii de echilibru sau legi de conservare.Ecuaţiile si identităţile pot fi relaţii algebrice sau transcendente, diferenţiale sau integrale,

detrministe sau stochastice, etc.c) Caracteristicile operative constituie o altă categorie de elemente ce compun un model

matematic şi ele pot fi:

Page 4: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 4/54

- ipoteze de lucru (referitoare la relaţiile funcţionale);- ipoteze statistice (referitoare la VI -aleatoare).

d) Tehnica de rezolvare este un alt element constitutiv al unui model matematic. Ea este otehnică matematică ce realizează separarea elementelor de ieşire în funcţie de elementele deintrare, adică:

( ) ( ) I  I i E 

 P V  f  P V  ,, = .

Cu alte cuvinte, tehnica de rezolvare a modelului exprimă sub formă explicit ă variabileleşi parametrii de ieşire în funcţie de variabilele şi parametrii de intrare.

Tehnicile matematice de rezolvare a modelelor sunt însă  sărace atât ca varietate, cât şi ca performanţă. De exemplu, ecuaţiile modelului se pot reazolva numai dacă sunt liniare sau uneori pătratice, iar dacă sunt de grad superior ele se pot rezolva numai dacă au forme particulare. La fel,ecuaţiile diferenţiale sau cu derivate par ţiale se pot rezolva cu metode matematice deductivenumai în anumite cazuri particulare. De aceea în construcţia modelelor matematice se fac demulte ori ipoteze simplificatoare care permit aplicarea tehnicilor de care dispune matematica.(Acesta este scopul utilizării de către model a caracteristicilor operative!). Din aceste motive,modelarea matematică este aproximativă  şi ea nu permite rezolvarea realist ă a problemelor  practice. Utilizarea calculatorului permite îmbunăt ăţ irea performan ţ elor modelelor matematice

 prin utilizarea metodelor numerice. Dar şi în aceste condiţii modelele matematice nu pot descriecorect realitatea în toată complexitatea ei deoarece nu toate relaţiile dintre obiectele lumii reale se pot exprima prin formule matematice. Într-o atare situaţie modelul matematic trebuie completat  cu descrieri care să imite anumite comportări ale lumii reale. Acestea se realizează prin descrierialgoritmice de tipul if-then-else- sau if-then- combinate cu alte structuri algoritmce (cicluri,secvenţe etc.). În acest fel, modelul matematic se completează, se extinde sub formă de algoritmşi devine model de simulare. Simularea măreşte deci mult posibilitatea de tratare realistă a

problemelor aplicative. Construcţia unui model de simulare, care în fapt este un algoritmcomplex, dezvoltat pe scheletul unui model matematic, este o sarcină nu prea uşoar ă; o vom tratamai jos.

Clasificări ale modelelor matematice. Mai întâi să vedem însă cum pot fi clasificatemodelele matematice:

(i) Clasificarea modelelor matematice după natura variabilelor utilizate de model:continue/discrete;  statice/dinamice (dacă timpul nu intervine sau dacă apare explicit cavariabilă a modelului); deterministe/stochastice (după cum nu conţin sau conţin măcar ovariabilă de intrare ca variabilă aleatoare).

(ii) Clasificare topologică, după structura determinată de păr ţile în care se descopune modelul(când este cazul): cu o component ă  /cu mai multe componente în serie , în paralel, în

re ţ ea.Un model, fie el matematic sau de simulare, constituie de fapt o clasă de modele.

I.2. Construcţia unui model de simulare

Modelul de simulare (MS) presupune utilizarea calculatorului şi el se construieşte pe baza/scheletul unui model matematic; mai precis, el completează modelul matematic descriindunele rela ţ ii prin algoritmi, deci în final MS este un algoritm. Acest algoritm trebuie să descriecorect evoluţia sistemului şi să permită efectuarea de experienţe (prin rulări pe calculator), care să înlocuiască experienţele ce ar trebui realizate asupra sistemului real.

Structura unui model de simulare

Construcţia unui MS utilizează două concepte de bază: ceasul simul ării   şi agenda

 simul ării .Ceasul simulării. Ceasul asigur ă eşalonarea corectă în timp a evenimentelor create de

Page 5: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 5/54

model şi uneori ajută la implementarea condiţiei de terminare a simulării. El este de două feluri:a) ceas cu creştere constantă; b) ceas cu creştere variabilă.

Notă: Evenimentele corespund unor  modificări în sistem adică modificari ale valorilor unor variabile care se calculează sau se  genereaz ă prin instrucţiuni ale modelului (chiar şi dacă sunt aleatoare!).

Ceasul porneşte cu valoarea zero la începutul simulării. Dacă modelul se bazează peceasul cu creştere variabilă, atunci ceasul este crescut cu valoarea ce corespunde apariţiei primului eveniment următor ; apoi programul  prelucreaz ă evenimentul, după care ceasul creştedin nou reluându-se ciclul simul ării , până când ceasul atinge o valoare dată iniţial, care

corespunde perioadei pe care se realizează simularea.maxT 

Ceasul cu creştere constantă presupune că de fiecare dată creşterea se realizează cu ocuant ă de timp constantă; apoi se prelucrează toate evenimentele apărute pe intervalul de timpde lungime , după care se reia ciclul simulării. Simularea se termină de asemenea când ceasulatinge valoarea .

c

T c

max

Terminarea simulării se poate realiza şi impunând condiţia ca modelul să prelucreze unanumit număr dat de evenimente de un tip precizat. (De exemplu, în cazul unui model de simulare

a unui sistem de aşteptare, se poate impune condiţia ca simularea să se termine când s-a simulatservirea unui număr dat de clienţi).

A r ămas oarecum neprecizat ce se înţelege prin prelucrarea unui eveniment. Acest fapt seînţelege uşor dacă precizăm şi conceptul de agend ă a simul ării .

Agenda simulării. Agenda se compune din elementele memorate de modelul desimulare. Variabilele modelului iau diverse valori pe parcursul simulării; de aici rezultă că pe  parcursul simulării apar multe evenimente. Memorarea în totalitate a acestor evenimente,împreună cu caracteristicile lor, nu este nici recomandată dar nici necesar ă dacă simularea serealizează pe perioade mari de timp. De aceea, se memorează (în agendă) numai ceea ce estestrict necesar. Evenimentele sunt de diverse tipuri ; unele variabile descriu şi  st ări 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ă păr ţi: agenda

evenimentelor curente  şi agenda evenimentelor viitoare . AEC AEV  Deci agenda , unde: AEV  AEC  A ⊕=

 AEC  = agenda evenimentelor curente (care au timpul de apariţie egal cu valoarea ceasului); iar  AEV  = agenda evenimentelor viitoare (care au timpul de apariţie ulterior ceasului).

Algoritmul simulării prelucrează deci numai evenimentele din ; prelucrarea unuieveniment înseamnă fie determinarea apariţiei unui nou eveniment (memorat în ) saumodificarea unei stări, fie distrugerea unui eveniment ("ştergerea'') lui din agendă. Prelucr ărileevenimentelor ţin seama şi de stările sistemului la acel moment.

 AEC  AEV 

Algoritmul simulării gestionează/actualizează agenda prin interac ţ iunea acesteia cu

ceasul ; într-un ciclu al simulării ceasul este acualizat, după care se selectează din agendaevenimentele care fac parte din şi se prelucrează aceste evenimente până când

devine vidă. Atunci, ceasul este crescut din nou şi se reia ciclul simulării. Deci agenda simulăriise modifică pe parcursul simulării conform următoarei relaţii de dinamică 

 A AEC  AEC 

elim gen  AE  AE  A A O⊕=  

unde sunt evenimentele generate pe parcursul unui ciclu, iar sunt evenimentele

eliminate cu ocazia prelucr ării . (Semnele gen A elim A

 AEC  ⊕  şi O se autexplică).

Page 6: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 6/54

  I.3. Concepte de bază în modelarea sistemelor

Prin sistem se înţelege, sub forma cea mai vagă, o mulţime de obiecte O interconectate prin intermediul unei relaţii R , adica Sistem = ( )RO , , unde

OOR ×⊂  

Definiţia formală generală a unui sistem este:Definiţia 2. Un sistem este urmă toarea structur ă de mul  ţ imi: ( )λδΣΩ= ,,,,,, Y  X T S   

unde:T  = timpul de baz ă al sistemului (ceasul sistemului); X  = mul  ţ imea intr ărilor ;

= mul  ţ imea   segmentelor de intrare (forma intr ă rilor!); segment = ,= =grafic=

Ω( )t 1  X t  0 ,:ω ( 1,0 t t ω ) ( )( ){ }10,, t t t t t  ≤≤ω . Se folose şte de regul ă  nota ţ ia

 şi nota ţ iile( ) ( )( )1, ,t t  τω=ω { }1, t t  ≤τ≤τ ( )1,0 t t ω=ω  , ) ( )t t  ,0t  ω=ω  , ( ( )1,t t t  ω=ω  , .) (t t  ωω=ω

= mul  ţ imea st ărilor interne ale sistemului = memoria sistemului ; Conceptul de stare este esen ţ ial în modelarea sistemelor; el descrie structura internă (intimă !) a sistemului;

Σ

= func ţ ia de tranzi  ţ ie a st ărilor definit ă caδ ΣΩ×Σδ : . Ea satisface rela ţ ia

( ) ) ) ( )t t  ωωσδδ=ωσδ ,,,  , ) (t t t  ωω=ω∀ , .

care este axioma semigrupului sau proprietatea de separabilitate a st ărilor . Mul  ţ imea (graficul) se nume şte traiectorie a st ărilor ;( σω, )

  Y  = mul  ţ imea ie şirilor  (Sistemul este presupus deschis  , intr ă rile  şi ie şirile fiind exterioare sistemului). Mul  ţ imea Y  con ţ ine r ă spunsul sistemului la intrarea de forma ω  , când la momentul ini  ţ ial  sistemul se afl ă în starea0t  σ .

=  func ţ ia de r ă spuns  , de formaλ Y T  X  ××Σλ : ; ( )t  x,,σλ conduce la un

 segment de ie şire ce reprezint ă forma r ă  spunsului sistemului la intrarea  x  , la momentul când   starea la momentul , , este t 0t t t  <0 σ ; 

Notă: din definiţie rezultă că pentru o stare iniţială  σ , (la momentul ) când are loc

intrarea de forma ω se realizează o traiectorie unică a st ărilor . Cu alte cuvinte, traiectoriastărilor satisface relaţiile:

0t 

( ) Σωσ 10, ,: t t STRAJ  , astfel încât ( ) σ=ωσ 0, t STRAJ   

( ) (( )t t STRAJ  ωσδ=ωσ ,, , ( )10 , t t t ∈∀  

Proiecţia obţinută prin funcţia de tranziţie a stărilor compusă cu funcţia der ăspuns, este traiectoria de ie şire 

STRAJ 

( ) Y t t OTRAJ  10, ,:ωσ  

Dacă (ie şirea depinde numai de( )σλ=λ σ ) atunci rezultă relaţia simplă:( ) ( )( )t STRAJ t OTRAJ  ωσωσ λ= ,, .

Nivele de reprezentare a sistemelor. Există mai multe nivele de reprezentare a

 sistemelor  şi anume:- Reprezentarea la nivel de comportare. Sistemul este o cutie neagr ă (black box),

exprimat formal prin relaţia:

( ){ }Σ∈σ=ρΩ∈ωρω= ωσ ,,, ,OTRAJ  R s  

Acest nivel de reprezentare este cel mai vag. El descrie numai relaţiile de intrare/ieşire ce

Page 7: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 7/54

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 : ( )λδΣΩ ,,,,,, Y  X T  , definite ca maisus.

- Reprezentarea modulară (ca structur ă compusă). Dacă sistemul este complex, atunci seidentific

ă  subsisteme ale acestuia precum

şi interconexiunile dintre ele în sensul c

ă 

ieşirile unor subsisteme sunt intări în alte subsisteme, intr ările unor subsisteme fiindintr ări ale sistemului şi ieşirile unor subsisteme fiind ieşiri ale sistemului. Nivelele de reprezentare a sistemelor, pornind de la forma cea mai vagă  şi continuând

 până la forma detaliată, legitimează Metodologia ''TOP DOWN'' de proiectare a sistemelor deorice fel, în particular, metodologia de proiectare a sistemelor informatice, şi în generalmetodologia de proiectare ierarhică , descendent ă a programelor.

1.3.1 Realizări iterative ale sistemelor

Consider ăm T o mulţime numită timp de bază, timp care poate fi discret când T  ⊆ Z sau de puterea continuului când T⊆ R. Numim interval de observaţie orice submulţime < t0, t1 > ⊂ T, unde < > ∈ { [ ], [ ), ( ], ( )}. Numim segment peste o mulţime arbitrar ă A, relativ la intervalul de observaţie < t0, t1 > oricefuncţie ω:< t0, t1 > → A. Notăm dom ω = < t0, t1 > şi uneori ω< t0, t1 > în loc de ω. De asemenea, notăm cu (T,A) mulţimeatuturor segmentelor peste A relativ la intervale de observaţie din T.Spunem că  ⊂ (T,A) este  închisă prin segmentare (IPS) ⇔  oricare ar fi ω ∈ asfel încâtdom ω = < t0, t1 > şi ∀  

Ω Ωτ   ∈ < t0, t1 > ⇒ ω<τ, ω>τ ∈ Ω , unde ω>τ = ω⏐< τ  , t1 > (numit segment

drept) şi ω<τ = ω⎮< t0,τ  > (numit segment stâng). Numim obiect abstract [ 40,54] o mulţime A de perechi ordonate (ω, ρ) cu condiţia închiderii prinsegmentare, în care ω şi ρ sunt legate prin relaţii şi/sau funcţii intrare/ieşire.Perechea (ω, ρ) se numeşte pereche intrare / ieşire; ω se numeşte intrarea lui A, iar ρ se numeşteieşirea lui A.

Un obiect abstract este dat prin una sau mai multe relaţii sau funcţii intrare / ieşire, adică  prin sisteme de ecuaţii diferenţiale sau cu derivate par ţiale sau sisteme de ecuaţii cu diferenţe saueste dat prin algoritmi capabili să genereze toate perechile intrare / ieşire ale sale.

 Numim sistem o mulţime de obiecte abstracte interconectate { A1, A2, … , An } în care o parte din intr ările sau ieşirile unor obiecte pot coincide cu ieşirile respectiv intr ările altor obiecte.Astfel un sistem se reduce tot la o mulţime de segmente legate prin relaţii şi/sau funcţiiintrare/ieşire.

Se numeşte maşină secvenţială structura M = (X, Σ, Y, δ, λ) în care:X=alfabet de intrareY=alfabet de ieşire

Σ=o mulţime de stăriλ : Σ → Y funcţia de ieşire a maşiniiδ : Σ × X → Σ funcţia de tranziţie a stărilor.

Page 8: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 8/54

 Se nume şte realizare iterativă a sistemului A = {( ω , ρ )} structura G(A) = (T, X, G  , Σ ,

δG  , λ ) în care:

Ω

T=timp de bază 

X=mulţimea valorilor de intrare

 Y=mulţimea valorilor de ieşire

Σ=mulţimea stărilor sistemuluiΩG=mulţimea generatoare a segmentelor de intrareλ : Σ → Y funcţia de ieşireδG : Σ ×  ΩG → Σ funcţia de tranziţie a stărilor ΩG ⊂ ( T, X )0 = {ω : <0,t> → X | t ∈ T }

δG este astfel încât extensia δ  G : Σ  ×  →  Σ să verifice proprietatea de separabilitate a

stărilor (proprietatea compunerii), unde este închiderea la compunere a lui G care se

demonstrează uşor că este : = ∪ , unde

+ΩG

+ΩG

iG

Ω+ΩG0>i

Ω

= { ω · ω · … ·ω   | ω  ∈ iGΩ

1k  2k  ik   jk Ω G , j ∈  i,1 }

iar 

δG (q,ω  ) , ω∈Ω G

δ  G (q,ω)=

δ  G (δG (q,x),ω ′ ), ω = x ·ω ′ ∈ , x∈+ΩG Ω G, ′ ∈ ,q∈Σ +ΩG

 

)'),,(()',( ω ω δ δ ω ω δ  qq GGG = (proprietatea compunerii)Se numeşte model iterativ [1,40] al sistemului A = {(ω, ρ)} cu realizarea iterativă G(A) = (T, X,

ΩG , Σ , Y, δG, λ), structura SG(A) = (T, X, , Σ, Y,+ΩG δ  G, λ), în care este închiderea la

compunere a lui ΩG, iar 

+ΩG

δ  G este extensia lui δG definită mai sus şi verifică proprietateacompunerii.

Exemplu

Fie maşina secvenţială M = (XM, ΣM, YM, δM, λM).Luăm realizarea iterativă GM = (T, X, ΩG , Σ , Y, δG, λ) în care:T = Z,X = XM,Y = YM,Σ = ΣM,λ = λM,< > = [ ) este interval de observaţie şi deci < t0, t0 + 1> = [t0, t0 + 1) = { t0 }δG : Σ × ΩG → Σ este dată prin relaţia: δG (q,ω) = δM(q,ω(0))

Page 9: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 9/54

ΩG = {ω|  ω : < 0,1>  → X} = {ω|  ω : {0}  → X} = {ωx| x ∈ X, ωx(0) = x}, mulţimeasegmentelor de lungime 1.

Observaţie

Evident, ΩG ∼ X şi dacă X+ =∪1≥k 

k  X 

unde X = { x1 x2 … xk  | xi ∈ X,i =k 

k ,1 }

avem ∼+ΩG

+.

Propoziţie 

Fie M o maşină secvenţială şi δ  M extensia funcţiei de tranziţie a stărilor la secvenţe de

simboluri, dată prin δ  M : ΣM ×  → ΣM,+M  X 

  ),( α δ  qM  , α∈  X M  

δ  M (q,α) =

δ  M ( δ M (q,x),α′ ), α = xα′∈   , x∈ X M  , α′  ∈  +M  X  +

M  X 

Atunci δ  M (q, αα′ ) = δ  M (δ  M (q, α), α′ ) pentru ∀ q ∈ ΣM, ∀ α, α′ ∈ .+M  X 

  Demonstra ţ ie:

Se face prin inducţie după lungimea secvenţei α, notată |α|.

PropoziţieFie M o maşină secvenţială definită ca în exemplul de mai sus şi GM o realizare iterativă a

sa. Atunci, dacă  ω  ∈  şi dom ω = < 0, n > avem+ΩG

))1( −nω )...1()0(,(),( = qq M G ω ω δ ω δ   

 Demonstra ţ ie

Se face prin inducţie după lungimea lui ω, notată l(ω).

Propoziţie Fie M o maşină secvenţială cu XM, ΣM, YM spaţii vectoriale de dimensiune finită peste uncorp K, λM : ΣM → YM dată prin λM(q) = Cq iar δM : ΣM × XM → ΣM , dată prin relaţiaδM(q,x) = Aq + Bx, unde A, B, C sunt transformări liniare peste spaţii vectoriale dedimensiune finită, A:ΣM → ΣM, B:XM → ΣM, C:ΣM → Y. Atunci modelul iterativ extins

)(M GS  este modelul unui sistem liniar numit sistem discret invariant în timp specificat de

A, B, C, K, în care G(M) este realizarea iterativă a lui M construită ca în exemplul de maisus.

 Demonstra ţ ie

Page 10: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 10/54

Se construieşte din aproape în aproape funcţia de tranziţie a stărilor modelului iterative. Se obţine:

∑−

=

−−+=1)(

0

1)()( ))((),(ω 

ω ω  ω ω δ l 

i

il l G i B Aq Aq  

relaţie care se demonstrează prin inducţie după lungimea lui ω.

1.3.2 Modelarea sistemelor cu evenimente discrete

În acest paragraf vom prezenta un exemplu de modelare a sistemelor cu evenimentediscrete cu scopul de a evidenţia o metodă de lucru şi de a reliefa dificultatea unei astfel demodelări.

Am văzut în introducere că modelul este o reprezentare izomorf ă a realităţii, reprezentarecare ofer ă o imagine intuitivă şi riguroasă a fenomenului studiat şi în plus facilitează descoperireaunor conexiuni şi legităţi care nu pot fi observate la o analiză sumar ă.

Reprezentarea unui model nu trebuie neapărat să fie perfectă, ci să contribuie laclarificarea gândirii, la culegerea şi înregistrarea de informaţii necesare elucidării consecinţelor  presupunerilor f ăcute asupra sistemului modelat.

Modelul unui sistem este o reprezentare simplificată a acestuia orientată spre

studiul anumitor tipuri de acţiuni ale sistemului real.

DefinitieSe numeşte sistem cu evenimente discrete (SED) structura

M = (XM, SM, YM,δ  M , λM, t  )în care:XM = mulţimea evenimentelor externeSM = mulţimea stărilor secvenţiale ale sistemuluiYM = mulţimea valorilor de ieşire

δ  M : ΣM × (XM ) → SM este funcţia de cvasitranziţie a stărilor, dată prin:{ }∪ Φ

δ  M((s,e),φ) = δφ(s), δφ : SM → SM fiind funcţie de tranziţie autonomă.

ΣM = {(s,e) | s ∈ SM , 0 ≤ e ≤  t  (s)} λM : ΣM → YM este funcţia de ieşire a sistemului.

t  : SM → [0, ∞) este funcţia de avans a timpului. Pentru s ∈ S, t  (s) reprezintă timpulmaxim cât sistemul r ămâne în starea s.

 Neapariţia evenimentelor externe a fost notată cu φ.În cele ce urmează modelăm iterativ un sistem cu evenimente discrete. Vom căuta mai

întâi o realizare iterativă G(M) = (T, X, ΩG, Σ, Y, δG,λ), în care vom lua T = Z , intervalul deobservaţie de forma [ ) şi X = XM  ∪  {φ} . Pentru aceasta vom lua ca mulţime generatoare asegmentelor de intrare mulţimea ΩG = Ωφ  ∪  ΩX unde Ωφ  = {φτ  |  τ > 0, φτ : [ 0,τ) →{φ}} estemulţimea segmentelor de lungime finită f ăr ă evenimente externe iar ΩX = {xτ  |  τ > 0, xτ : [ 0,τ) → XM  ∪  {φ}, xτ  (0) = x, xτ  (t) = φ, ∀ t ∈ (0,τ)} este mulţimeasegmentelor de lungime finită pentru care evenimente externe pot apare doar la momentul t = 0.Vom defini δG : Σ × ΩG →Σ dată prin

⎩⎨⎧

>+≤++

=−+ )(),),0),(((

)(),,()),,((

)(  st e s

 st ee se s

 st eGG τ φ δ δ 

τ τ φ δ 

τ φ 

τ   

)),0),),,(((()),,(( τ τ  φ δ δ δ   xe s xe s M GG =  

Page 11: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 11/54

Observa ţ ie:

 În cele ce urmează vom nota pentru u şurin ţă  δ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 aşteptare,

sistemele informatice, reţelele de calculatoare etc.

Propoziţie

Fie δ φ  : SM → SM funcţie de tranziţie autonomă într-un SED şi δ  φ  : SM× Ζ+ → SM oextensie a sa dată prin

δ  φ  (s,0) = s

δ  φ  (s,n+1) = δ φ ( δ  φ  (s,n)), n ≥ 0

δ  ∅ (s,n) reprezintă starea la care ajunge sistemul pornind din s după ce face n tranziţii.Atunci:

a) δ  φ  (s,n) = (s), ∀ n ∈N* , ∀ s ∈ SMnφ δ 

 b) δ  φ  (s,n+p) = δ  φ  (δ  φ  (s,n),p), ∀ p,n ∈ Ζ+, ∀ s ∈ SM  Demonstra ţ ie

a) Se face prin inducţie după n ≥ 1.  b) Se foloseşte a) sau se demonstrează prin inducţie după p ≥ 1, folosind următoarea

observaţie.

Observaţie Luând n = 0 în definiţia lui δ  φ  se obţine δ  φ  (s,1) = δ φ (δ  φ  (s,0)) = δ φ (s).

Definiţie Fie M un SED şi σ : SM × Z+ → [0,∞) dată prin: σ(s,0) = 0,

∑ ≥∀=−

=

1

01)),,((),(

n

ini st n s φ δ σ   

Funcţia σ(s,n) dă timpul total folosit de sistem pentru a face n tranziţii după ce a plecat din stareas, adică timpul în care sistemul stă în cele n stări atinse prin n tranziţii succesive, timp măsurat dinmomentul plecării din starea s (acest timp se poate măsura şi din momentul intr ării în starea s

luând ).1)),,((),(1

∑=

≥∀=n

i

ni st n s φ δ σ   

Propoziţie 

Fie M un SED şi σ definită ca mai sus. Atunci:a) Funcţia us : Z+ → [0,∞) dată prin us(n) = σ(s,n), n ≥ 0 este nedescrescătoare pentru ∀ s∈ SM.

 b) σ(s,n+m)= σ(s,n)+ σ( φ δ  (s,n),m), ∀ s ∈ SM, ∀ m,n ∈ Ζ+.

 Demonstra ţ ie

Pentru un SED M notăm ms,e,τ = max {n∈ N | σ(s,n) < e + τ} care reprezintă numărul maxim detranziţii f ăcute de sistem în intervalul de timp <0,e + τ> plecând din starea s, atunci când acestmaxim există.

Page 12: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 12/54

 

Observaţiea)Dacă pentru orice n∈ N, σ(s,n) < e + τ atunci {n∈ N | σ(s,n) < e + τ}= N şi deci nuexistă ms,e,τ. b)Dacă ∃ j∈ N astfel încât 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 cazexistă ms,e,τ.

Propoziţie Fie M un SED. Atunci:a)Dacă ∃ ms,e,τ avem σ(s, ms,e,τ) < e+τ ≤ σ (s, ms,e,τ+1) b)Dacă ∃ s ∈ SM pentru care  Ln s

n=

∞→),(limσ  , există şi este finită, atunci ∀ e,τ astfel încât

e + τ > L, nu există ms,e,τ.c)Pentru ∀ s ∈ SM, ∃ ms,e,τ, ∀ e,τ astfel încât e + τ > 0 ⇔  ∞=

∞→),(lim n s

nσ   

 Demonstra ţ ie

Propoziţia 2.2.6. [40]

Fie M un SED pentru care există ms,e,τ ∀ s ∈ SM, ∀ e,τ ∈ Ζ+.

Atunci σ σ τ δ  τ τ φ  ),,(),,( ,,,, e se s m sem sm −+ =

=max {n ∈ N | σ(s,n + ms,e,τ)< e + τ + σ}. Demonstra ţ ie

Propozitie Fie M un SED pentru care există ms,e,τ, ∀ s ∈ SM, ∀ e,τ ∈ Ζ+. Atunci

σ σ τ δ τ σ τ τ τ φ  ),,(),,(,,,,

,,,, e se s m sem se se s mmm−++ +=

 

 Demonstra ţ ie 

Propoziţie Într-un SED avem următoarele proprietăţi:

a) ms,e,τ = 0 ⇔ e + τ ≤  t  (s).

 b) τ +e >  t  (s) ⇒  1)(,0),(,, +=

−+  st e se s mmτ δ τ 

φ  

 Demonstra ţ ie

a)Implicaţia de la stânga la dreapta se obţine punând ms,e,τ = 0 în 2.2.5.a) şi folosind relaţia

σ (s,1) = t  (s) care rezultă luând  ∑−

=

=1

0

)).,((),(n

i

i st n s φ δ σ   

Aceasta reprezintă timpul total necesar sistemului pentru a face n tranzi ţii din momentul

intr ării în starea s.Implicaţia de la dreapta la stânga se demonstrează prin absurd folosind forma de mai sus alui σ.Propoziţie 

Fie M un SED pentru care există ms,e,τ, ∀ s ∈ SM, ∀ e,τ ∈ Ζ+.

 Atunci

)).,(),,((),,( ,,,, τ τ φ τ  σ τ δ φ δ  e se sG m sem se s −+=  

 Demonstra ţ ie

Page 13: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 13/54

Se face prin inducţie după ms,e,τ  ≥ 0.

Propoziţie

Fie M un SED pentru care există ms,e,τ, ∀ s ∈ SM, ∀ e,τ ∈ Ζ+.Atunci

)),,((),( σ τ σ τ  φ φ δ δ φ δ  qq GGG =+ , ∀ q = (s,e) ∈ Σ, ∀ τ,σ ∈ Ζ+

. Demonstra ţ ieSe evaluează cei doi membri ai relaţiei folosind 2.2.9. şi se obţine egalitatea cerută.

PropoziţieFie M un SED pentru care există ms,e,τ, ∀ s ∈ SM, ∀ e,τ ∈ Ζ+.Atunci

)),,((),( σ τ σ τ  φ δ δ δ   xq xq GGG =+ ,∀ q ∈ Σ, ∀ τ,σ ∈ Ζ+.

 Demonstra ţ ieDefiniţie

Un SED M se numeşte viabil ⇔ ∀ s ∈ SM, ∞=∞→

),(lim n sn

σ   

Teorema

 Fie M un SED viabil. Atunci structura G(M) = (T, X, Ω G , Σ , Y, δ G , λ  ) este o realizareiterativă a lui M, iar 

),,,,,,()( λ δ GGM G Y  X T S  ΣΩ= + 

este un model iterativ pentru sistemul cu evenimente discrete M în care:T = Z+, cu intervale de observaţie de forma : < > = [ ) .X = XM ∪ {φ}, φ∉XM

∑ = ∑M = {(s,e) | s ∈ SM, 0 ≤ e ≤  t  (s)} Y = Y  M  

λ = λM ΩG = Ωφ ∪ ΩX

δG : ∑ × ΩG → ∑ dată prin :

)),0),),,(((()),,((

)),(),,(()),,(( ,,,,

τ τ 

τ τ φ τ 

φ δ δ δ 

σ τ δ φ δ 

 xe s xe s

m sem se s

M GG

e se sG

=

−+= 

 Demonstra ţ ie

Din definiţia lui ΩG se observă că aceasta poate fi luată ca mulţime generatoare a segmentelor de

intrare. Folosind propoziţiile de mai sus se demonstrează că  δG verifică proprietatea deseparabilitate a stărilor.

I.3.3. Metodologia de realizare a experimentelor de simulare (Metodologia simul ării)

Etapele realizării unui experiment de simulare sunt:1. Formularea problemei; constă în a preciza întrebările la care trebuie să r ăspundă modelul şi

a preciza domeniul lumii reale ce trebuie analizat. Aici se precizează şi forma r ăspunsului laîntrebări (de ex. dacă se vor produce grafice, tabele sau chiar texte scrise).

Page 14: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 14/54

2. Realizarea unor experimente preliminare; în această etapă se stabilesc, pe bazaobservaţiilor sau datelor culese din lumea reală, sau existente, referitoare la aceasta (istorice),variabilele şi parametrii şi care din acestea sunt de intrare sau de ieşire.

3. Prelucrarea (interpretarea) primară a datelor preliminare; acum se disting variabilele

aleatoare, se estimează parametrii şi se testează ipoteze statistice. (Statistica matematică  joacă un rol important în simulare).

4. Formularea unui model matematic preliminar, incomplet; în această etapă se precizează relaţii funcţionale, ipoteze de lucru (care să concorde cu datele existente, colectate) şi seindentifică ce relaţii nu pot fi exprimate matematic şi care sunt dificultăţile ce ar trebuiînlăturate pentru a r ăspunde la întrebările formulate.

5. Evaluarea modelului  etapă de decizie; se urmăreşte să se evalueze complexitatea modelului, dacă el poate r ăspunde în timp real şi complet la întrebări; în această etapă se poteventual revizui unele din etapele precedente f ăcându-se simplificări sau completări alemodelului matematic propus.

6. Construcţia modelului de simulare (sub formă de algoritm detaliat); modelul se construieşteconform celor precizate anterior urmărindu-se ca el sa fie general . La construcţia algoritmuluisimulării se va avea în vedere şi cum se va realiza programarea: într-un limbaj evoluat sauînt-un limbaj specializat de simulare. Există un număr mare de limbaje de simulare toate

având la bază, mai mult sau mai puţin, filozofia DEVS. Un astfel de limbaj (ce va fi prezentatîn secţiunea următoare) este GPSS= General Purpose Simulation System. O versiuneromânească a acestui limbaj este SIMUB (limbajul de SIMulare al Universităţii dinBucureşti).

7. Validarea modelului este de asemenea o etapă importantă. În afar ă de validarea formală (testare sintactică şi formală a programului), trebuie să se decidă dacă modelul rezolvă corect   problema formulată. Acest lucru se realizează prin compararea rezultatelor simulării fie curezultate practice cunoscute, fie prin compararea cu soluţia obţinută cu ajutorul unui modelmatematic. (De ex. în teoria cozilor se cunoaşte soluţia matematică a modelului în anumiteipoteze restrictive; se va obţine soluţia prin simulare pe baza unei selecţii de volum mare avariabilelor de ieşire. Dacă soluţia simulată se apropie de soluţia matematică, atunci, învirtutea legii numerelor mari , rezultă corectitudinea modelului de simulare, acesta fiind deci

valid  şi în ipoteze diferite de cele cosiderate la validare).8. Planificarea experienţelor de simulare este următoarea etapă necesar ă. Aşa cum am

 precizat, simularea este un experiment realizat cu calculatorul pe baza unui model ce descriesistemul real. Orice experiment (cu caracter statistic ca în cazul simularii) trebuie să sedesf ăşoare pe baza unui plan experimental. Pentru planificarea experimentelor de simulare sefolosesc metode ale statisticii matematice (aşa-zisele experimental designs).

9. Prelucrarea şi interpretarea experienţelor de simulare este o etapă la fel de importantă caşi cele precedente. Programul de simulare rulat pe calculator produce de regulă valori deselecţie asupra variabilelor de ieşire, dar care nu definesc selecţii statistice în sensul obişnuit(nu sunt selecţii bernouliene deoarece valorile de selecţie sunt de regula dependente). Deaceea prelucrarea experimentelor de simulare se face cu mijloace statistice din cele maisofisticate (prelucrarea seriilor dinamice). Toate limbajele de simulare posedă un minim de

facilităţi pentru prelucr ări statistice simple (calcule de medii, dispersii, coeficienţi decorelaţie, histograme etc,).

I.4. Generalităţi despre limbajul GPSS

Limbajele de simulare sunt în acelaşi timp limbaje de programare şi limbaje de modelare; eleimplementează elementele esenţiale ale simulării: manipularea ceasului  şi gestionarea

memoriei. Utilizatorul are grija descrierii evenimentelor şi prelucrarea lor.Vom face o foarte scurtă prezentare a limbajului GPSS (General Purpose System

Simulator), urmând ca cititorul interesat să recurgă la un manual detaliat sau să folosească 

Page 15: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 15/54

facilitatea help existentă în implementarea GPSS/PC. Acest limbaj a fost dezvoltat pentru primadata de firma IBM la inceputul anilor '60.

Entităţile limbajului GPSS.

Limbajul GPSS se compune din 16 tipuri de entităţi (elemente de abstractizare). La

fiecare entitate se asociază un numar de proprietăţi sau atribute în majoritatea lor  adresabileintern (de către GPSS), dar unele sunt adresabile şi de către utilizator; atributele sunt:standard numerice (numere) sau standard logice (valori logice).

Entităţile de bază sunt:1) Blocuri (entităţi care descriu {activităţi);2) Tranzacţii (elemente circulante); ele sunt create (printr-un bloc special GENERATE) şi

circulă prin model (sistem!), ca urmare a acţiunii altor blocuri.Blocurile au asociate caracteristici numerice sau logice şi posedă argumente necesare

descrierii activităţilor. Tranzacţiile posedă un număr de parametri standard dar  şi parametriintroduşi de utilizator. Prin programul de simulare utilizatorul poate accesa parametriitranzacţiilor.

Entităţi de echipament:

3) Staţii de serviciu sau facilităţi (ele corespund subsistemelor cu o componentă care tratează de regulă o singura tranzacţie!);

4) Multistaţii de serviciu sau depozite; acestea tratează de regulă mai multe tranzacţii (de ex.liftul, autobuzul, pot transporta mai mulţi clienţi consideraţi ca tranzacţii etc.);

5) Comutatorii logici sunt variabile logice care permit utilizatorului să realizeze ramificareadupă dorinţă a fluxului de execuţie în programul de simulare.

Entităţi 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 por ţiuni);

9) Funcţii analitice descrise prin expresii mai complicate (ele există numai în SIMUB şi aurolul de a facilita simularea diverselor variabile aleatoare prin metoda inversă);

Entităţile statistice, permit colectarea unor statistici sau estimaţii privind VE  sau  PE ; printre acestea se remarcă:10) Cozile care sunt entităţi statistice ce memorează tranzacţiile întârziate în sistem;11) Tabele de frecvenţe care descriu histograme ale VE ;12) Tabele de frecvenţă bidimensionale sau tabele de contingenţă (acestea sunt disponibile

numai în SIMUB);Entităţi de referinţă care memorează anumite informaţii pe care le doreşte utilizatorul şi

anume:13) Cuvinte de salvare care memorează valori ce corespund câte unui cuvânt de memorie al

calculatorului;

14) Matrice de cuvinte de salvare care memorează matrici;Entităţi de tip lanţ, care sunt de două tipuri:

15) Lanţuri ale utilizatorilor în care se pot depune sau scoate tranzaţii după dorinţautilizatorului (Există şi lanţuri ale sistemului, manipulate intern de către GPSS, care nu pot fiaccesate de utilizator).

16) Grupuri care separă tranzacţii (cu anume scopuri de prelucrare dorite de utilizator).NOTĂ. Toate entităţile trebuie definite/identificate şi declarate de către utilizator la

începutul programului. Pentru fiecare entitate se alocă memorie, la instalarea limbajului se alocă şi un număr maxim de entităţi care se pot utiliza într-un program.

Entităţile se invocă prin instrucţiuni cu structura fixă. (Limbajul este un interpreter).

Page 16: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 16/54

Limbajul permite descrierea modular ă a unui model de simulare general; cel maiimportant este modulul principal (ciclul de bază). Ieşirile sunt standard; se afişează/scriu valoriale atributelor, statistici, tabele de frecvenţă etc.

Limbajul GPSS este un interpreter, ceea ce înseamnă că fiecare instrucţiune scrisă corect (şi recunoscută ca atare de către GPSS) se execută imediat.

Structura instrucţiunii GPSS.

Instrucţiunea GPSS are un format fix. Nume simbolic

(etichetă) Numele blocului

(cuvânt cheie)Argumente/parametrii(separate prin virgulă)

Opţional pentrureferiri

Verb imperativ caredesemnează acţiunea

 bloculuiA, B, C, …

1) Blocurile descriu acţiuni (sunt entităţi active spre deosebire de tranzacţii care sunt entităţi pasive, în sensul că ele sunt mi  şcate prin model ca urmare a acţiunii blocurilor).Tipurile de blocuri sunt:a)   Blocuri de ac ţ iune: SEIZE/RELEASE (tranzacţia curentă ocupă sau eliberează o

facilitate); PREEMPT (tranzacţia intrată în acest bloc poate ocupa o staţie de serviciuindicată de parametrul-argument sau o poate prelua dacă este ocupată de altă tranzacţie);ENTER/LEAVE (ocupă sau eliberează o poziţie dintr-o multistaţie); QUEUE/DEPART(intr ă în coadă sau pleacă din coadă); LINK/UNLINK (introduce sau scoate tranzacţiadintr-un lanţ al utilizatorului); SPLIT (descompune tranzacţia în mai multe tranzacţii careformează o familie); ASSEMBLE/GATHER (unifică tranzacţiile dintr-o familie f ăr ă, saucu păstrarea atributelor de bază din familie); MATCH (sunt 2 blocuri conjugate; elesincronizează deplasarea tranzacţiilor care întâlnesc aceste blocuri); ADVANCE (întârzietranzacţiile; simulează de ex. durata de serviciu a tranzacţiei); BUFFER (înseamnă   prelucrarea tranzacţiilor în ordinea priorităţilor); JOIN/REMOVE (introduc sau scottranzacţia într-un grup); SCAN (verifică dacă există o tranzacţie în grup cu o anumită  proprietate);

 b)  Blocuri de creare  şi distrugere de tranzac ţ ii : GENERATE/TERMINATE (generarea seface cu generatori specializaţi de numere aleatoare, tranzacţia putând fi prevăzută cu priorităţi);

c)   Blocuri de control logic al tranzac ţ iilor : TEST (controlează dacă 2 atribute aletranzacţiei satisfac o condiţie); TRANSFER (asigur ă transfer condiţionat sau nu alfluxului de execuţie la blocul indicat prin argument); GATE (modifică drumultranzacţiilor în funcţie de condiţii referitoare la atribute ale facilităţilor, multistaţiilor,comutatorilor logici sau tranzacţiilor); EXAMINE (modifică fluxul în funcţie deapartenenţa la un grup); LOOP (repetă execuţia de la blocul menţionat ca argument până la blocul LOOP);

d)   Blocuri de modificare a caracteristicilor tranzac ţ iilor  şi a valorilor unor entit ăţ i de

referin ţă: ASSIGN (atribuie valori numerice parametrilor tranzacţiilor şi/sau le modifică;

când se generează o tranzacţie poate fi prevăzută cu ''locuri'' pentru un număr demaximum 12 parametri referibili de către utilizator; numărul parametrilor poate fistandard sau precizat de utilizator la generare); INITIAL (iniţializează cuvintele saumatricile de cuvinte păstrate); PRIORITY (modifică priorităţile; lucrează în legătur ă cu blocul BUFFER); LOGIC (poziţionează pe true sau  false un comutator logic ce poate  juca rol de semafor ); MARK (utilizat pentru a marca într-un cuvânt special asociatfiecărei tranzacţii, valoarea ceasului); SAVEVALUE/MSAVEVALUE (memorează într-un cuvânt/matrice valoarea unui atribut standard numeric precizat); COUNT (determină numărul de entităţi ce satisfac o anumită condiţie şi-l memoreaza într-un parametru altranzacţiei specificat ca argument al lui COUNT); SELECT (selectează prima entitate

Page 17: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 17/54

dintr-o gamă de entităţi ce satisfac o anumită condiţie); ALTER (modifică condiţionatsau nu, parametri sau prioritatea uneia sau mai multor tranzacţii dintr-un grup  putând modifica opţional şi drumul tranzacţiei); HELP (permite includerea unor  proceduri de calcul ale utilizatorului; este un bloc pretenţios căci necesită interfaţa întreGPSS şi limbajul în care este scrisă procedura; în SIMUB se foloseau subrutineFORTRAN);

e)  Blocuri pentru ob ţ inerea de statistici : TABULATE (pentru construirea histogramei); (înSIMUB se foloseşte şi BTABULATE pentru construirea tabelelor de contingenţă).

f)  Blocuri pentru list ări : PRINT (permite scrierea par ţială a unor statistici; cele mai multestatistici se scriu automat de GPSS la sfâr şitul simulării).

2) Tranzac ţ iile se generează cu GENERATE şi se distrug cu TERMINATE. La generaretranzaţiile primesc automat nişte parametri interni şi un număr de parametri (limitat deexemplu la 100) declaraţi şi care pot fi accesaţi de utilizator; în funcţie de implementare, un  program GPSS poate utiliza un număr maxim de tranzacţii (acesta este un dezavantaj allimbajelor de simulare datorat faptului că limbajul gestionează agenda, facilitând astfeldetaliile de programare pe care într-un limbaj evoluat le rezolvă utilizatorul).

3)  Sta ţ iile de serviciu pot fi ocupate de o singur ă tranzacţie la un moment dat.

4)  Depozitele sau multistaţiile au o capacitate declarată în prealabil şi în ele pot intra mai multetranzacţii (cât permite capacitatea).

5) Comutatorii logici sunt de fapt variabile booleene, ce trebuie iniţializate (precizează condiţiisatisf ăcute de ''echipamente'').

Toate entit ăţ ile de echipament sunt identificate printr-un număr (întreg). Ele posedă atribute standard numerice sau logice.6) Variabilele au cuvântul cheie VARIABLE, au un nume şi o expresie aritmetică (de

dimensiune limitată) care conţine atribute standard numerice, cuvinte de salvare, parametrietc.

7) Variabilele booleene BVARIABLE, sunt construite analog (de către utilizator) folosindatribute standard logice, inclusiv comutatori logici).

8-9) Func ţ ia (FUNCTION) desemnează o funcţie de o variabilă dată printr-o listă sau o

funcţie liniar ă precizându-se argumentul prin care este referită.10) Coada este o entitate statistică pentru care se reţine automat lungimea medie  şi lungimea

maximă care se listează la sfâr şitul simulării.11-12) Tabela de frecven ţă se defineşte la începutul programului cu TABLE şi reprezintă o

histogramă a unei variabile de ieşire din model, de regulă atribut numeric. La definire se precizează argumentul tabelat şi numărul de clase de frecvenţe.

13-14) Cuvintele sau matricile de cuvinte păstrate sunt invocate prin INITIAL, SAVEVALUEsau MSAVEVALUE şi ele se folosesc pentru a reţine anumite valori pe parcursul simulării.Sunt referite printr-un număr de identificare.

15) Lan ţ urile sistemului sunt: lanţul evenimentelor curente (LEC), lanţul evenimentelor viitoare(LEV), lanţuri ale tranzacţiilor întrerupte, lanţuri ale tranzacţiilor în aşteptare pentrusincronizări, lanţuri de întârziere (asociate echipamentelor). Orice tranzacţie activă la un

moment dat se găseşte într-un lanţ. Tranzacţiile care se deplasează în sistem se găsesc înlanţul evenimentelor curente. Mecanismul de actualizare a lanţului evenimentelor curente şial celor viitoare este cel cunoscut (descris prin relaţia dintre  AEC  A,  şi  AEV ). Tranzacţiileterminate (prin blocul TERMINATE) sunt distruse; blocul START precizează printr-unargument al său câte tranzacţii se vor prelucra (termina). Prelucrarea tranzacţiilor din LECînseamnă transferul lor în alt lanţ sau distrugerea. Tranzacţiile întârziate ( de ex. prinADVANCE) sunt introduse în LEV.

Lanţurile sistemului sunt controlate automat de către sistemul GPSS. Lan ţ urile utilizatorului (LU) sunt definite de acesta şi ele (sau atribute ale lor) pot fi

referite în programul GPSS. Tranzacţiile pot fi introduse sau scoase din LU prin LINK  şi

Page 18: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 18/54

UNLINK şi ele se folosesc la implementarea unor discipline de serviciu (în cazul prelucr ăriitranzacţiilor din cozi).

16) Grupurile ofer ă utilizatorului un instrument de clasificare a tranzacţiilor care au anume proprietăţi. De ex. toate staţiile care la un moment dat depăşesc un anumit grad de utilizare aunei staţii pot fi f ăcute membre ale unui grup.

Un program GPSS este o listă ordonată de BLOCURI ale căror argumente se refer ă ladiverse entităţi.

I.5. Exemple de programe GPSS.

I.5.1. Model de simulare pentru un sistem de a şteptare cu o sta ţ ie 

Programul GPSS pentru acest model este:001 GENERATE 10,2 ;Sosiri aleatoare la 210 ± minute003 SEIZE FRIZER ;Ocupă staţia de serviciu "FRIZER"005 ADVANCE 12,3 ;Durata servirii 312 ± minute007 RELEASE FRIZER ;Eliberează staţia009 TERMINATE 1 ;Ieşire din sistem un client

Comentariu. Cifrele din faţa tabelului reprezintă etichetele instrucţiunilor/blocurilor, iar textele de la terminarea liniilor reprezintă comentarii. După denumirile blocurilor apar parametriacestora.

Modelul nu este complet deoarece în faţa blocului SEIZE pot să apar ă aşteptări de aceeaînaintea acestui bloc trebuie introdus un bloc QUEUE şi după el un bloc DEPART ca mai jos(etichetele indică locul unde se introduc aceste blocuri respectând ordinea).

002 QUEUE COADA1 ;Tranzacţia ocupă COADA1003 SEIZE ………004 DEPART COADA1 ;Tranzacţia pleacă, se actualizează 

aşteptările

Pentru a prelucra 200 tranzacţii se va da la început comanda:000 START 200La sfâr şitul simulării apelând procedura GPSSREPT.EXE se va afişa un raport final  

 privind simularea care conţine:- durata totală a prelucr ării tranzacţiilor (durata simulării);- gradul de ocupare a staţiei de serviciu (media şi maxima);- durata medie a aşteptărilor etc.

I.5.2. Model de simulare pentru un sistem de a şteptare cu

 sta ţ ii paralele 

Modelul de mai jos simulează un sistem de aşteptare cu 3 staţii paralele (ghişee ale unei

 bănci) în care serviciul se realizează cu disciplina FIFO (First In First Out) adică serviciul seexecută în ordinea sosirii clienţilor şi nu se consider ă priorităţi ale unor clienţi. Clientul va trece  pe la staţia multiplă de servire (depozit), dar el va ocupa o singur ă staţie care-l serveşte(STORAGE 3). În final el va trece şi la staţia CASIER unde primeşte un alt serviciu (primeşte sau plăteşte banii pe baza formelor elaborate de ghişeul parcurs anterior!). Desigur, pentru executareamodelului care urmează ar trebui adăugată comanda START corespunzătoare şi apelat în finalmodulul de ieşire GPSSREPT.EXE. Modelul este dat de programul:

GHISEE STORAGE 3 ;Declararea dimensiunii multistaţiei001 GENERATE 4,1 ;Sosesc clienţii002 QUEUE COADA ;Clientul în COADA căci dorim statistici

Page 19: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 19/54

003 ENTER GHISEE ;Ocupă un loc în GHISEE (dacă există!)004 DEPART COADA ;Clentu pleacă din COADA (spre servire!)005 ADVANCE 15,3 ;Clientul este servit (durata de servire!)006 LEAVE GHISEE ;Se eliberează un loc (un ghişeu)007 SEIZE CASIER ;Ocupă loc la CASIER 008 ADVANCE 2 ;Servirea clientului este 2 minute009 RELEASE CASIER ;Eliberează casierul (clientul pleacă)010 TERMINATE 1 ;Plecare client

I.5.3. Model cu sta ţ ii paralele  şi preferin ţ e 

Se modelează serviciul la o frizerie unde lucrează 3 frizeri (trei staţii de serviciu!):Figaro, Gică şi Tică. Clienţii care sosesc sunt primiţi în propor ţie de 60 % de Figaro (care este preferat!) iar restul de 40 % sunt serviţi de ceilalţi doi, dar din aceştia 50 % merg la Gică şi 50 %merg la Tică. Modelul nu conţine comenzile de START şi cele de ieşire.

001 GENERATE 6,1 ;Sosesc clienţii002 TRANSFER 4,,ALTII ;60 % clienţi merg la Figaro

003 QUEUE COADAFIG ;Intr ă în coada lui Figaro004 SEIZE COADAFIG ;Clientul se duce la Figaro;005 DEPART COADAFIG ;Se culeg date despre această coadă 006 ADVANCE 8,1 ;Clientul este servit007 RELEASE FIGARO ;Figaro devine liber 008 TRANSFER ,CASA ;Clientul merge să plătească ALTII TRANSFER ,LAGICA ;Tică şi Gică sunt la fel010 SEIZE TICA ;50 % din clienţi merg la Gică 011 ADVANCE 12,2 ;Tică serveşte mai încet ca Figaro012 RELEASE TICA ;Tică este eliberat013 TRANSFER ,CASA ;Clientu plăteşteLAGICA SEIZE GICA ;50 % şi 40 % clienţi merg la Gică 

015 ADVANCE 12,2 ;Gică serveşte ca şi Tică 016 RELEASE GICA ;Se eliberează Gică CASA SEIZE CASIERA ;Se ocupă staţia casiera018 ADVANCE 1 ;Plata într-un minut019 RELEASE CASIERA ;Se eliberează casiera020 TERMINATE 1 ;Tranzacţia pleacă 

Notă. Cele trei staţii sunt folosite explicit, nu ca multistaţie. Folosim coada numai laFigaro căci numai acolo (presupunem!) ne interesează statistici finale.

În programele GPSS etichetele sunt opţionale şi ele pot fi mnemonice (care denumescobiecte modelate ca de ex. LAGICA sau ALTII), sau pot fi constante întregi care sugereaz ă ordinea instrucţiunilor; sunt obligatorii etichetările blocurilor la care se refer ă alte blocuri (veziTRANSFER mai sus).

Parametri unor entităţi pot desemna nume simbolice (de ex. staţia GICA sau coadaCOADAFIG).

Page 20: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 20/54

CAPITOLUL II. NUMERE ALEATOARE

II.1. Noţiuni introductive

Vom aminti mai întâi câteva noţiuni de bază. Presupunem că   X  este o variabil ă 

aleatoare şi fie  func ţ ia sa de reparti  ţ ie. Densitatea de repartiţie, când aceasta

există, este derivata funcţiei de repartiţie, adică 

( ) ( ) x X  P  x F  <=( ) ( ) x F  x f  ′= . Funcţia satisface proprietăţile:

, ,

 F 

( ) 0=∞− F  ( ) 1=∞+ ( ) F  ( )b F a F  ≤ dacă  ba < . Între ( ) x F   şi ( ) x f  are loc relaţia:

( ) ( )∫ ∞−

= x

dx x f  x F   

De obicei  X  reprezintă o caracteristică a unei mulţimi de obiecte care variază aleator de la unobiect la altul; acea mulţime se numeşte popula ţ ie statistică. Dacă luăm la întâmplare un număr 

de obiecte din populaţie şi consider ăm valorile ale caracteristiciin n X  X  X  ,...,, 21  X  ce

corespund acestor obiecte, spunem că aceste valori determină o  selec ţ ie de volum asupra luin X  . În statistica matematică selecţia este considerată ca fiind o mulţime de

variabile aleatoare independente şi identic repartizate ca şi

n X  X  X  ,...,, 21

 X  (aceasta numindu-se  selec ţ iebernouliană). Independenţa a două variabile aleatoare se defineşte astfel:  X  este o variabilă aleatoare independentă de Y  dacă  ( ) ( ) ( ) yY  P  x X  P  yY  x X  P  <<=<< , sau, dacă notăm

funcţia de repartiţie comună a variabilelor ( ) (  yY  x X  y x <<= ,, ) P  F X    şi Y   şi notăm

,( ) ) x X  <= ( ) y F ( X  P  F 1 (Y  ) y P  <−2 funcţiile de repartiţie marginale, ale lui  X  respectiv Y ,atunci condiţia de independenţă se scrie

( ) ( ) ( ) y F  x F  y x F  21, =   (2.1.)

Să observăm că se face distincţie între variabila aleatoare  X  şi o valoare a acesteia(care reprezintă un număr real fixat!).

Valorile efectiv obţinute prin procesul de selecţie constituie o mulţime de numere care

se spune că reprezintă o realizare a selecţiei bernouliene. Deoarece fiecare din aceste numere potsă reprezinte oricare valoare a lui

n

 X  , se consider ă că valorile de selecţie (numite şi variabile deselecţie) sunt independente şi identic repartizate ca şi  X  .

Când pentru o variabilă aleatoare  X  se cunoaşte sau spunem că se cunoaşte

reparti  ţ ia de probabilitate sau reparti  ţ ia statistică a lui

 F f  X . Există multe tipuri de repartiţii de

 probabilitate. Cele mai importante vor fi introduse în acest capitol, dar şi în capitolele următoare.

Repartiţia uniformă 

Una dintre repartiţiile de probabilitate importante, dar care este natural ă, este reparti  ţ ia

uniformă pe un interval  [ care are densitatea de repartiţie de forma]ba,

( ) [ ]⎩⎨⎧ ∈= restîn ,xdacã0 bak  x g  ,

abk  −= 1   (2.2.)

Variabila având densitatea de repartiţie (2.2) se spune că este repartizată uniform pe. Deci toate valorile variabilei V  sunt egal probabile. Funcţia de repartiţie corespunzând

densităţii (2.2) este

V [ ba, ]

 

Page 21: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 21/54

( ) ( ) [ ]∫ ∞−

⎪⎪⎩

⎪⎪⎨

>

<

−−

== x

ab

a xduu g  xG

 bxdacã

 ba,xdacã

axdacã

1

0

  (2.3.)

Să notăm cu U  variabila aleatoare uniformă pe [ ]1,0 , pe care o vom numi pe scurtvariabilă uniformă  0 1− . Densitatea de repartiţie şi funcţia de repartiţie a lui U  sunt respectiv

( )[ ]

⎩⎨⎧ ∈

=restîn

0,1xdacã

0

1 x f  , ( ) [ ]

⎪⎩

⎪⎨

>∈<

=1xdacã

0,1xdacã

0xdacã

1

0

 x x F  (2.4.)

Valorile de selecţie asupra variabilelor aleatoare uniforme se numesc numere aleatoare. Nu este posibil să se producă cu calculatorul, printr-un algoritm, secvenţe de numere aleatoarecare să fie uniform repartizate pe intervalul [ ]1,0  şi care să fie independente stochastic. De aceeanumerele produse cu calculatorul vor fi numite numere pseudoaleatoare  şi ele vor putea fifolosite drept numere aleatoare dacă au un comportament cât mai aleator. Un algoritm care

  produce un număr aleator (pseudoaleator) se numeşte  generator  de numere aleatoare(pseudoaleatoare). Iterând un generator se poate obţine o selecţie (secvenţă) de numere aleatoare.Când este nevoie de numere aleatoare cu cât mai bune calităţi se pot aplica metode care combină doi sau mai mulţi generatori, rezultând un alt generator care produce secvenţe de numere  pseudoaleatoare mai bune. În multe aplicaţii sunt însă suficient de bune numerele produse degeneratori simpli, aşa cum se va vedea mai jos.

II.2. Necesitatea simulării numerelor aleatoare

Următoarea teoremă stabileşte legătura între repartiţia uniformă  şi repartiţiauniformă pe un interval [ oarecare.

10 −] B A,

Teorema 1.  Dacă  este o variabil ă  uniformă  U  10 − atunci ( )U abaV  −+= este o

variabil ă uniformă pe [   şi reciproc, dacă   V  este o variabil ă aleatoare uniformă pe]ba, [ ]ba,  

atunci variabila

ab

aV U 

−−

=  

este uniformă  . 10 −Fiind dată o variabilă aleatoare oarecare  X  , pentru care se cunoaşte funcţia de repartiţie

, este adevărată următoarea teoremă care evidenţiază importanţa repartiţiei uniforme F  10 − ,adică importanţa numerelor aleatoare.

Teorema 2 (Teorema lui Hincin). Variabila aleatoare ( ) X  F  este uniformă  iar 

dacă not ă m cu inversa func ţ iei atunci

10 −1− F F  ( )U  F  1− are func ţ ia de reparti ţ ie (sau cu alte

cuvinte ).

 F ( )  X =U  F −1

  Consecinţă practică. Dacă am putea produce valorile de selecţie asupra

lui şi am cunoaşte funcţia de repartiţie a luinU U U  ,...,, 21

U F X  , atunci am putea produce valorile de

selecţie asupra luin X  X  X  ,...,, 21  X  cu formula ( )ii U  X  1− F = , ni ≤≤1 . Dacă funcţia

se poate calcula cu un algoritm atunci valorile de selec ţie ar putea fi produse ( generate) cu

calculatorul folosind următorul algoritm:

1− F 

i X 

 

Page 22: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 22/54

 Metoda inversă. (Algoritm)

repetă de ori urm ătoarele instrucţiuningenerează o valoare de selecţie U  uniform ă ;10 −calculează  ( )U  F  X  1−= ;

Spunem că acest algoritm simuleaz ă o selecţie de volum asupra luin X  . Dar paşii ceimai importanţi ai algoritmului sunt ultimii doi paşi care produc o valoare de selecţie  X  , căcidacă putem genera numere U  uniforme 10 −  şi independente, atunci prin iterarea primului pasam produce valorile selecţiei de volum asupra luin  X .

În metoda inversă, dacă am putea genera valori de selecţie ,iU  ni ≤≤1 uniforme 10 −  

independente, atunci şi ar fi independente.( )ii U  F  X  1−=Un algoritm pentru generarea (simularea) unei selecţii ,iU ni ≤≤1

10 −de variabile

uniforme va trebui deci să producă în primul rând un număr uniform , iar prin iter ăriacelaşi algoritm să fie în măsur ă să producă selecţia de volum ; deci selecţia se va produce printr-o relaţie iterativa de forma

10 −n

( )ii U  g U  =+1 , iar algoritmul trebuie să permită producerea de

numere independente stochastic. Valorile de selecţie se numesc numere aleatoare

uniforme sau simplu numere aleatoare.iU  iU 

 II.3. Metode congruenţiale liniare

Fie  X  o variabilă aleatoare discretă repartizată uniform având repartiţia

⎟⎟

 ⎠

 ⎞

⎜⎜

⎝ 

⎛ 

mmm

m X  111

21:

…  (2.5.)

unde . Conform teoremei 1, variabila U  uniformă +∈ N m 10 − se poate obţine astfel

( )1,0∈= m

 X U    (2.5'.)

unde în ultima relaţie împăr ţirea se execută în real .Valori de selecţie asupra variabilei  X  se pot obţine prin relaţia congruen ţ ial ă liniar ă 

( )( )mcaX  X  ii mod1 +=+   (2.6.)

care spunem că defineşte generatorul mixt congruen ţ ial   ( )mca X  ,,,0 unde cele patru constante

sunt numere naturale date.Pentru ca generatorul (2.6) să producă numere aleatoare, trebuie alese constantele ,

, , astfel încât să satisfacă condiţiile:0 X 

a c m1. Numerele i X  să reprezinte o repartiţie uniformă de forma (2.5); acest lucru se realizează 

dacă  şirul { }i X  are o  perioad ă  λ mare adică dacă cel mai mic număr  λ pentru careλ+= ii  X  are loc pentru un X  λ cât mai mare.Acest lucru se întâmplă dacă cele patru

constante se aleg astfel încât relaţia (2.6) să producă toate resturile modulo m , adică numerele 1,..., −m , iar  m este mare.1,0

2. Numerele i X  să fie independente stochastic; acest lucru nu este practic posibil deoarece

1+i X  depinde de i X  conform relaţiei (2.6); este însă posibil ca numerele i X  , 1+i X  să fie

  slab dependente stochastic. Această condiţie înseamnă că numerele respective au uncoeficient serial de corela ţ ie ρ apropiat de 0 , ρ definit astfel:

Page 23: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 23/54

( )[ ] [ ] [ ]

[ ] [ ]1

11111 ,

+

+++

−==ρ=ρ

ii

iiiii

 X Var  X Var 

 X  E  X  E  X  X  E  X  X Corr    (2.7.)

[ ] [ ][ ] [ ] [ ]{ }222iiiii  X  E  X  E  X  E  X  E  X Var  −=−=  

unde cu se notează valoarea medie a variabilei aleatoare[ ]Y  E Y .Din motive impuse de aritmetica sistemelor de calcul, modulul  se ia de forma

unde

me pm =  p este un număr prim. Următoarea teoremă precizează condiţii pentru alegerea

constantei care defineşte generatorul (2.6).aTeorema 3. Perioada maximă a generatorului (2.6) este dacă   şi numai dacă  e p=λ

( ) pa mod1≡ când  2> p

( )4mod1≡a când  2= p  ,  pa <<1  (2.8.)

O valoare a lui poate fi ,a 1+= k  pa ek ≤≤2

10 ,...,, X  X 

. Alegerea lui folosind numai această 

teoremă poate însă să producă un şir de întregi care să nu fie aleator; acest şir 

care conţine sigur num

ărul , poate s

ăcon

ţină

subşiruri de lungime mare care s

ăfie sau

crescătoare, sau descrescătoare, sau să prezinte o periodicitate mare.

a

1−λ X 

0Presupunând că (ceea ce este desigur permis) se observă că şirul { este de

forma

00 = X  }n X 

( )( )m

b

ca X 

n

n mod1−

= , 1−= ab   (2.6'.)

Dacă în relaţia precedentă luăm 1+= ba atunci (2.6') devine

( )( )mbC bC nc X   s snnn mod... 12 −+++=   (2.6''.)

unde este cel mai mic număr natural care satisface relaţia s( )mb s mod0≡   (2.6'''.)

 Numărul se numeşte poten ţ a generatorului mixt congruenţial. Din relaţia (2.6'') rezultă că este de forma unui polinom în modulo şi deci generatorul este cu atât mai bun cu cât potenţa sa este mai mare. S-a constatat că din punct de vedere practic, potenţa trebuie să fie cel puţin 5.

 s

 s

n X b m

Un caz interesant este acela când unde este apropiat de cuvântul calculatorului pe care se implementează generatorul (2.6). În acest caz se arată că o alegere bună a lui este de

forma , . Deci un generator pentru care şi satisfac

condiţiile teoremei 3 generează un şir de numere aleatoare întregi de perioada mare şi care nu prezintă  regularit ăţ i  (nu conţin subşiruri periodice de lungimi mari sau subşiruri cu monotonii  periodice). Constanta poate fi deocamdată arbitrar aleasă.

em 2=

...>

ea

a1...22 21 +++=  f  f a

c

21 >  f  f mλ

Să vedem cum putem alege constantele generatorului (2.6) astfel încât ρ să fie suficient

de mic.  Numerele produse de (2.6) au o repartiţie de forma (2.5) în care valorile lui  X  sunt

. Deci în acest caz avem1,...,1,0 −m

[ ]m

 x X  E 

m

 x∑

==

1

0 , [ ] [ ]{ }2

1

0

2

 X  E m

 x X Var 

m

 x −=∑

=  

Page 24: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 24/54

( )

21

0

1

0

2

21

0

1

01

⎟ ⎠

 ⎞⎜⎝ 

⎛ −

⎟ ⎠

 ⎞⎜⎝ 

⎛ −

=ρ=ρ

∑∑

∑∑−

=

=

=

=

m

 x

m

 x

m

 x

m

 x

 x xm

 x x xsm

, ( )( )mcax x s mod)( += .

Evaluarea lui se face cu dificultate. Se arată că ρ

c±⎟⎟

 ⎠

 ⎞⎜⎜⎝ 

⎛ ⎟

 ⎠ ⎞

⎜⎝ ⎛ +⎟

 ⎠ ⎞

⎜⎝ ⎛ −≈ρ

2

6611

m

c

m

c

a,

m

a≈c   (2.9.)

O valoare conciliantă a lui , care să asigure o valoare mică a luia ρ este ma ≈ iar din

condiţia se deduce că 0≈ρm

ctrebuie să satisfacă ecuaţia

0661 2 =+−  x x adică  211324865.036

1

2

1=−=

m

c  (2.10.)

Ultima relaţie dă o condiţie pentru alegerea lui .c

Notând , se arată că ( k iik   X  X Corr  +=ρ , ) 1ρ≤ρk 

,..., , ceea ce asigur ă o dependenţă 

slabă a numerelor depărtate din secvenţa .1>k 

, 21  X  X În concluzie, pentru ca generatorul (2.6) să fie bun trebuie să alegem un modul cât

mai mare, să selectăm un astfel încât să satisfacă teorema 3 împreună cu o potenţă mai mare

decât 5 şi să ia o valoare apropiată de

ma

m , iar să satisfacă (2.10). Numărul de start  , care

se mai numeşte şi sămân ţ a generatorului poate fi orice număr natural mai mic decât m .

c 0 X 

Pentru a produce un număr aleator întreg  X , generatorul (2.6) necesită deci efectuareaunei înmulţiri şi a unei adunări şi apoi calcularea restului modulo . Dacă am alegem 0=c  atunci am obţine   generatorul multiplicativ congruen ţ ial   ( )m,a X  0,,0 care are avantajul că 

necesită numai operaţia de înmulţire el fiind deci de forma

( )( )maX  X  nn mod1 ≡+   (2.11.)

În acest caz trebuie să fie neapărat pozitiv căci altfel şirul produs de (2.11) ar avea toate

elementele egale cu zero deci nu ar fi un şir de numere aleatoare uniforme întregi. Condiţia de perioad ă maximă se modifică  şi ea şi într-un caz interesant din punct de vedere practic seexprimă prin teorema următoare.

0 X 

  Teorema 4. Perioada maximă a generatorului ( )ma X  ,0,,0 se obţine când:

(i) 0 X  este un întreg pozitiv prim cu m ;

(ii) a este r ădăcină primitivă modulo m   şi dacă  i p , t i ≤≤1 sunt numere prime atunci

 perioada este

( )

22 −=λ eee dacă  3≥e

( ) ( )11 −=λ −  p p p ee , dacă  2> p

( ) ( ) ( )( )t et 

et et 

e  p pcmmmc p p λλ=λ ,...,........ 11

11  

(2.12.)

Alţi generatori de numere uniforme sunt:1. Generatorul aditiv congruenţial, sau Fibonacci decalat notat ( )m j X  X  X k  k  ;;,...,,; 10  

şi bazat pe relaţia)( )m X  X  X  k n jnn mod−− −=   (2.13.)

iar o alegere bună a constantelor este 24= j , 55= K  , , care asigur ă oem 2= 31≥e

 

Page 25: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 25/54

 perioadă .1255 −≥λ2. Generatorul congruenţial inversiv notat ( ) 1

cu  prim0 ,,, −mca X  −m , definit de relaţia

( )( )mcaX  X  nn mod11 += −

−   (2.14.)

unde este inversul  al lui în raport cu operaţia de înmulţire a claselor de

resturi, când acesta există sau este zero altfel. (Dacă 

1−i X  ( )mmod i X 

 prim−m  şi atunci inversulexistă!).

0≠i X 

3. Generatorul matricial congruenţial care este de forma( )( )mC  A nn mod1 += − X  X    (2.15.)

unde este un vector n X  l dimensionad − iar , sunt matrici . Înmulţirea

matriceală va produce vectori cu componente corelate. Acest tip de generatori se

utilizează pe calculatoare paralele.

 A C d d ×

n X 

4. Generatori bazaţi pe registre de deplasare care utilizează  reprezentarea binar ă anumerelor întregi în calculator. Dacă notăm cu ia ,  pi ≤≤1 cifrele binare ale lui 1−n x  şi

consider ăm cifrele iC  nu toate egale cu zero, atunci generarea cifrelor  ia ale lui lui n X  se

realizează prin relaţia)( )2mod... 1111 −+−−− +++ i pi p pi acaca=  pi ca   (2.16.)

În practică se foloseşte forma mai simplă ( )( )2modq pi pi aa +−= +ia =

⊕, 0>> q p (2.16'.)

sau dacă notăm operaţia binar ă  or -exclusiv ca suma de biţi modulo atunci relaţia precedentă devine

2

q pi pii aaa +−− ⊕=   (2.16''.)

Să observăm că relaţia de recurenţă referitoare la biţii este aceeaşi cu relaţia de

recurenţă a numerelor aleatoare interpretate ca

ia

i X tupluri p − de biţi, adică q pn pnn  X  X  X  +−− ⊕=   (2.17.)

Un generator bun este de exemplu generatorul qn pnn  X  X  X  33 −− ⊕= , ,521= p 32=q ,

care are o perioadă . Formula (2.17) se poate extinde matricial sub forma15212 −=λq pn pnn +−− ⊕=  X  X  X    (2.17'.)

5. Amestecarea de generatori se obţine astfel: Să presupunem că se dau doi generatori 1G ,

2G  şi folosim o tabelă  [ ]k T  ,...,1 (de ex 64−k  sau 128=k  ). Algoritmul de amestecare acelor doi generatori este Ini ţ ializă m cu numere produse cu ;

[ ]U iT  =

2Gi i

U 1

G

Gener ă m cu un indice aleator  { }k  j ,...,2,1∈ ;

 Luă m ; Gener ă m U  cu  şi lu Ă m[ ] jT Y = 1G [ ] U  jT  =  

Generarea indicelui aleator   j , care este un întreg uniform cu valori în { se faceastfel

}k ,...,2,1

Generează  U  cu 2G

( ) 1+= j × k U trunc  Ia .

Page 26: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 26/54

Generatorul rezultat din amestecare este mai aleator  decât părinţii săi , , iar 

 perioadele satisfac relaţia

G 1G 2G

( ) ( ) ( )( )21 ,..... GGcmmmcG λλ=λ .

CAPITOLUL III. SIMULAREA VARIABILELOR ALEATOARE NEUNIFORME

III.1. Metoda inversă 

Această metodă a fost deja introdusă ca o consecinţă directă a teoremei lui Hincin. Ea seaplică în cazul în care funcţia de repartiţie se poate inversa uşor. În tabela următoare se prezintă câteva repartiţii de probabilitate ce se pot simula cu metoda inversă.

Repartiţia Densitatea  f  Inversa 1− F ( )λ Exp , 0>λ  xe x f  λ−λ=)( , 0> x ( )u x ln−=

( )vWeib ,1,0 , 0>v 21)(  xv evx x f  −−=   ( )( ) vu x 1ln−=

Cauchy 21 11)(  x x f  +⋅= ,  R x ∈   ⎟ ⎠ ⎞⎜⎝ ⎛  −π= 21tan u x

PearsonXI, , R∈α 0>v( ) 11

)(+α+

=v x

vx x f  , 0> x

vu x

1

1=

Arcsin21

11)(

 x x x f 

−⋅= , [ ]1,1−∈ x   ⎟

 ⎠ ⎞

⎜⎝ ⎛  −π=

2

1sin u x

Logistică ( )21

)( x

 x

e

e x f 

−= ,  R x ∈   ⎟

 ⎠ ⎞

⎜⎝ ⎛  −

−=u

u x

1log

În formulele lui din tabel se precizează numai valorile lui f  pentru care ,

 presupunându-se că în rest.

0)( > x f 

0( x f  ) =În ultima coloană se scrie direct formula cu care se simulează variabila aleatoare  X ,

deoarece s-a înlocuit cu u , economisindu-se în acest fel o operaţie de scăadere. Înlocuirealui cu u se va face ori de câte ori se va ivi ocazia.

u−1u−1Folosind metoda inversă se poate construi uşor un algoritm pentru simularea variabilei

discrete

⎟⎟ ⎠

 ⎞⎜⎜⎝ 

⎛ 

m

m

 p p p

aaa X 

21

21: , 11

=∑=

m

ii p (3.1.)

Pentru simularea variabilei aleatoare  X  calculăm mai întâi valorile funcţiei de repartiţie aacesteia. Avem

⎪⎪⎪⎪

⎪⎪⎪⎪

<≤

<≤<≤<

+++

+=

+

 x

a x

a x

a x

 p p p

 p p

 p

 x F 

k k 

m

1k 

32

21

1

2`

21

1

adacã

adacã

adacã

adacãaxdacã

1

...

0

)(

  (3.2.)

Page 27: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 27/54

Algoritmul pentru simularea lui  X  este

Algoritmul SIMDISCRV

Intrare tabela  [ ]mT  ..1 , . Intrare [ ] ∑=

=i

 j j piT 

1

[ ]ma ..1

Generează U  uniform  10 −  cu  randomU  =: ;

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

Ia . [ ]ia X  =III.2. Metoda compunerii sau amestecării

Această metodă se aplică variabilelor aleatoare  X  a căror repartiţie de probabilitatesatisface următoarea definiţie.

Definiţie 1. Func ţ ia de reparti ţ ie este o amestecare (sau compunere sau mixtur ă  )

discret ă a mul  ţ imii de func ţ ii de reparti ţ ie

)( x F 

{ } mi≤≤1i  x F  )( cu reparti ţ ia disret ă  

⎟⎟

 ⎠

 ⎞

⎜⎜⎝ 

⎛ 

m p p p

m J 

21

21:  , 1

1

=

∑=

m

i i p (3.3.)

dacă  

∑=

=m

iii  x F  p x F 

1

)()(   (3.4.)

 Func ţ ia de reparti ţ ie este o amestecare continuă a familiei de func ţ ii de reparti ţ ie

 , cu func ţ ia de reparti ţ ie continuă  

)( x F 

( ){ }  RY Y  xG ∈, ( ) y H  a lui Y  dacă ea este de forma

( )∫ = R

 ydH Y  xG x F  )(,)(   (3.5.)

ultima integral ă fiind integral ă Stieltjes.Dacă notăm cu  X  variabila aleatoare care are funcţia de repartiţie şi cu

variabila aleatoare care are funcţia de repartiţie atunci amestecarea discretă poate fi

interpretată astfel:

)( x F  i X 

)( x F i

i X  X  = cu probabilitata ,i p

de unde rezultă următorul algoritm pentru simularea lui  X :

Algoritmul COMPDISCR 

Generează un indice  j având repartiţia (3.3);

Generează având funcţia de repartiţie ; j x )( x F  jIa . j X  X  =:

O interpretare analogă are şi amestecarea continuă, de unde se deduce următorul algoritm desimulare a variabilei aleatoare )(~  x F  X  → Algoritmul COMPCONT

Generează variabila Y  care are funcţia de repartiţie ;( ) y H 

Generează variabila aleatoare care are funcţia de

repartiţie ;

Y  Z 

( )Y  xG ,

Ia .Y  Z  X  =:Desigur, în algoritmii precedenţi se presupun cunoscute metode de generare a variabilelor 

Page 28: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 28/54

aleatoare , , J  i X Y , . Dacă în definiţia compunerii consider ăm în loc de funcţii de repartiţie,

densităţi de repartiţie atunci formulele (3.4) şi (3.5) se scriu respectiv:Y  Z 

∑=

=m

iii  x f  p x f 

1

)()(   (3.4'.)

∫ =  R dy yh y x g  x f  )(),()(   (3.5'.)

III.3. Metoda respingerii

Această metodă (denumită în mod  pesimistic ca metodă a respingerii), ar putea fidenumită  şi metoda accept ării-respingerii . Ea are forma generală următoare dacă ne referim lasimularea unei variabile aleatoare  X  .

Presupunem că se cunosc următoarele elemente:- Se cunoaşte un procedeu de simulare a unei variabile aleatoare  N  care ia valori naturale

 pozitive;- Se cunosc metode pemtru simularea unor variabile aleatoare S S i ∈ , 1≥i , unde S  este o

familie de variabile aleatoare dată;- Se cunoaşte un predicat )nS  care se poate calcula iS ( S S  ,...,, 21P ∀ , ni ≤≤1 ; (Acest

 predicat sau condiţie trebuie să poată fi evaluat f ăr ă calcule de mare complexitate!);- Se cunoaşte funcţia ψ astfel încât { }( )nS S S  X  ,...,, 21ψ= , ( ) trueS S S  n =,...,, 21P .

Când pentru o variabilă aleatoare  X  este posibil să se construiască elementele precizateanterior, atunci se poate construi un algoritm pentru simularea lui  X  sub forma generală următoare:

ALGRES=Algoritm General de Respingererepeat 

Simulează o valoare n a lui ; N Simulează valorile de selecţie din S;nS S S  ,...,, 21

until  ( ) trueS S S  n =,...,, 21P ;

Ia .( )nS S S  X  ,...,, 21ψ=Să observăm că dacă  ( )  falseS S S  n =,...,, 21P atunci mulţimea de variabile aleatoare

  se respinge, de unde provine şi numele de metod ă de respingere. În aceeaşi

ordine de idei, se observă că dacă 

{ nS S S  ,...,, 21 }( )( )trueS nS S  P  pa == ,...,, 21P , numită   probabilitate de

acceptare, este apropiată de 1, atunci algoritmul este bun; în caz contrar algoritmul este lent .Teorema 1 (înf ăşurătoarei).  Fie dat ă o variabil ă aleatoare  X  care are densitatea de

reparti ţ ie , , pe care dorim să o simul ă m. Fie)( x f R x ∈ Y  o alt ă variabil ă aleatoare a că rei

densitate de reparti ţ ie este astfel încât densit ăţ ile , au acela şi suport (adică  iauvalori diferite de zero pe aceea şi mul  ţ ime ). Presupunem că  exist ă  o constant ă  

)( xh f h S   RS ⊂ α ,

  , astfel încât ,∞<α<0 )( xh f  α)( x ≤ S  x ∈∀ . În aceste condi ţ ii dacă  este o variabil ă  

uniformă  independent ă de

U 10 − Y  , atunci densitatea de reparti ţ ie a variabilei Y  , condic ţ ionat ă  

de ))(() Y hα(Y  f ≤0 este .U ≤  f 

Probabilitatea de acceptare este α= 1a p , de unde rezultă că pentu o metodă a

inf ăşur ătoarei ne banală trebuie să avem 1>α . Procedura de respingere este formată dinurmătoarele elemente: (variabila aleatoare constantă);2= N  { }Y U ,=S ; dacă ( ) trueY U  =,P

 

Page 29: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 29/54

))(()(0 Y hY  f U  α≤≤ ; ( ) Y Y U  =ψ , , (adică  proiec ţ ia).

 X Teorema 2.  Fie o variabil ă aleatoare care are fun ţ ia de reparti ţ ie de forma:

∫ ∞−

= x

Qc x F  )( ( )φ t dRt  )()(   (3.6.)

unde este func ţ ia de reparti ţ ie a unei variabile aleatoare)( zQ Z  , [ ]M  Z  ,0∈   , este o func ţ ie ce ia valori în (unde )( xφ[ ]M ,0 poate lua  şi valoarea ∞  ) iar este func ţ ia de

reparti ţ ie a unei variabile aleatoare

)( y RY  ,  RY ∈   , iar variabilele  Z  , Y  sunt independente

 stochastic. În aceste condi ţ ii func ţ ia de reparti ţ ie a variabilei Y  , condi ţ ionat ă de este

.

)(Y φ≤ Z )( x F 

Se observă din nou că probabilitatea de acceptare a algoritmului este . Este

evident că teorema descrie un procedeu de respingere ale cărui elemente sunt uşor de precizat.

)( B P  pa =

Teorema r ămâne valabilă dacă condiţia (3.6.) se scrie în termeni de densităţi şi anume:( ))() r  xcQ φ= )((  x x f  , )()(  x R xr  ′=   (3.7.)

O formă dual ă a teoremei se obţine dacă este de forma)( x F 

( )( )( )φ t dRt Q )(∫ ∞−

−=  xc x F  1)(

)(Y φ

  (3.8.)

iar predicatul devine iar condiţia (3.7.) se scrie în termen de densităţi. Z ≥( ( )) )()(  xr  xQ1)( c x f  −=

)(~ 00  xG Z  →

φ   (3.7'.)Teorema 3 (a şirului descendent).    Presupunem date variabilele aleatoare

.  şi , independente stochastic. Atunci, urmă toarele afirma ţ ii

 sunt adevă rate

)(~  xG Z i → 1≥i

(1) Dacă  este fixat  şi numă rul  k  este fixat, atunci

( )[ ] [ ]

!

)(

)!1(

)(...2  Z  Z  k ≥≥≥

1

11 k 

 xG

n

 xG Z  Z  x P 

k k 

k  −−

=<≥−

−   (3.9.)

(2) Dacă   x este fixat  şi  K  este indicele aleator la care se ''rupe'' sub şirul descendent (ca la pct (1)), atunci

( ) ( ) )(1)2(mod  xGe K  P  K  P  −==== impar numãr 

 Z 

  (3.9'.)

(3) Dacă sub şirul descendent este k k   Z  Z  Z  <≥≥1 ...≥0 −1 (adică se rupe la un  K  aleator  şi

începe cu )(G  ), atunci~ 00 Z  →  x

( ) ∫ ∞−

−==< x

t Ga t dGe p K  x Z  P  )(1)2(mod 0

)(0   (3.10.)

unde este constanta de normarea p1

0)( )(

−∞

∞−

− ⎥⎦⎤⎢

⎣⎡= ∫   xdGe p  xG

a   (3.10'.)

Algoritmul de respingere rezultat din teoremă este urmărorul

Algoritmul RESPSIRD bazat pe şiruri descendente.repeat 

Generează ; Ia ,)(~ 00  xG Z  → 0*  Z  Z  = 1:= K  ; generează ;)(~1  xG Z  →

  while  do begin 10  Z  Z  ≥

 

Page 30: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 30/54

  1+= K  K  ; 10 :  Z  Z  = ;

Generează ;)(~1  xG Z  →  end;

until ;12mod = K 

Ia .*:  Z  X  =Să analizăm acum performanţa algoritmului. Observăm că ne dă informaţie asupra

vitezei algoritmului: cu cât este mai mare, cu atât mai repede ajungem să acceptăm un

(când ). Dar nu este de ajuns pentru a caracteriza performanţa

algoritmului; ar trebui să vedem şi câte numere , sunt necesare pentru a obţine un

. Dacă este numărul total de valori de selecţie , necesare până la

acceptarea unui , atunci avem:

a p

i Z 

a p 0 Z 

impar numãr = K 

acceptat * N 

0 Z 

a p

i Z  0≥i

0 − Z  0≥i

( ) ⎟⎟ ⎠

 ⎞⎜⎜⎝ 

⎛ += ∫ 

∞−

)(11

0)(*  xdGe

 p N  E   xG

a

  (3.11.)

III.4. Alte metode

Metodele de simulare a variabilelor aleatoare neuniforme  X  pot fi obţinute fie printransformarea unor variabile aleatoare uniforme 10 − , fie sub forma

( )nY Y Y T  X  ,...,, 21=   (3.12.)

unde variabilele pot fi simulate. De fapt, metodele prezentate în primele subsecţiuni ale acestui

capitol sunt toate de acelaşi tip: simularea luiiY 

 X  se reduce la simularea unor variabile mai simple, , unde şi n   poate fi aleator .iY ni ≤≤1

În tabelul următor se dau câteva repartiţii de probabilitate a căror simulare se realizează  prin transformări simple de variabile U  uniforme 10 − dar nu prin metoda inversă. În ultimacoloană se precizează transformarea T .

r.crt.

 Numelerepartiţiei

Densitatea de repartiţie Transformarea T  

1. Normală 

( )1,0( N 2

2

2

1)(

 x

e x f −

π= , ∞<<∞−   ∑

=

=12

1iiU  X   

2. Modul[ ]

⎩⎨⎧ ∈−

=altfel

1,1-xdacã

0

1)(

 x x f    21 U U  X  −=  

3. Repartiţiamaximului

[ ]

⎩⎨⎧ ∈

=

altfel

0,1xdacã

0)(

1nnx x f    { }U U U  ,...,,max n21  

4.Repartiţiaminimului

( ) [ ]

⎩⎨⎧ ∈−

=−

altfel

0,1xdacã

0

1)(

1n xn x f    { }U U U  ,...,,min n21  

5.Repartiţia

)(k  Erlang  ⎪⎩

⎪⎨

<

Γ=

0xdacã

0xdacã

(k)

1

0

)( x f  , +∈ N k  ⎟⎟ ⎠

 ⎞⎜⎜⎝ 

⎛ −= ∏

=

iiU  X 

1

ln  

Page 31: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 31/54

  Definiţia 2.  Dacă  ,i Z  k i ≤≤1

)(k  Erlang 

sunt variabile independente, atunci variabila

este o variabil ă  .

)1( Exp

∑=

=n

ii Z  X 

1

Când o familie de variabile aleatoare are proprietatea că suma a două variabileindependente este tot o variabilă din aceeaşi familie spunem că aceasta este o  familie stabil ă devariabile aleatoare.

Pentru stabilitatea unor familii de variabile aleatoare putem da următoarele enunţuri.Teorema 4.  Dacă   ),1,0(~ υ→ Gamma X   , ),1,0(~ μ→ GammaY    şi  X    şi Y  sunt 

independente stochastic, atunci ),1,0(~ μ+υ→+= GammaY  X  Z  (   familia variabilelor 

aleatoare Gamma standard este stabil ă ). Teorema 5.  Dacă   ( )σ→ ,~ m N  X     şi , atunci( λ→ ,~  p N Y  )

( 22,~ λ+σ+→+=  pm N Y  X  Z  (  familia variabilelor normale este stabil ă ). 

III.5. Simularea repartiţiilor înrudite cu repartiţia normală 

Repartiţia2

χ 

Dacă , sunt variabile normale independente atunci1 Z f i ≤≤1 )1,0( N 

∑=

=χ j

ii Z 

1

22   (3.13.)

se numeşte variabil ă hi pătrat centrat ă cu grade de libertate notată . f  2 f χ

Dacă , atunci variabila dată prin relaţia (3.11.) se numeşte variabil ă hi 

 pătrat necentrat ă cu grade de libertate  şi cu parametrul de excentricitate , notată ,

unde

( 1,~ ii m N  Z  →

 f 

)

δ 2,δχ f 

∑=

δ=δ  f 

iiim

1

222   (3.13'.)

Observaţie. Variabila centrată este o variabilă de tip2 f χ ⎟

 ⎠ ⎞

⎜⎝ ⎛ 

2,

2

1,0

 f Gamma .

Formula (3.24) permite simularea direct ă, pornind de la definiţie a variabilelor , .2 f χ 2

,δχ f 

 Repartiţia Student

Dacă este independentă de variabila hi pătrat atunci variabila)1,0(~  N  Z  → 2 f χ

 f 

 Z t  f 

 f  2χ=  (3.14.)

se numeşte variabila a lui Student cu grade de libertate. Dacă în (3.14) în loc de se

introduce atunci se obţine variabila notată care se numeşte variabila t  Student 

necentrat ă cu grade de libertate  şi cu parametrul de excentricitate

t f  2 f χ

2,δχ f  δ, f t 

 f  δ . Variabilele de tip t  Student se simulează direct cu formule de tipul (3.14).

Page 32: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 32/54

Repartiţia Snedecor

Dacă variabilele , sunt independente atunci variabila2

1 f χ 2

2 f χ

21

12

21

 f 

 f 

 f  f 

 f 

 f  F 

χ

χ=   (3.15.)

se numeşte variabila a lui Snedecor centrat ă cu , grade de libertate (în notaţia

indicilor contează ordinea!). Dacă în (3.15) se foloseşte câte una din

 F  1 f  2 f 

1,1 δχ  f 

0, ,1 f  F 

, sau ambele,

atunci se obţin variabilele Snedecor  simplu necentrate , , cu parametri

corespunzători de excentricitate, sau variabila Snedecor  dublu necentrat ă .

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

2,2 δχ f 

2,0;2 δ f  F 1;2 δ f ,1 f  F 

 F 2,1;2,1 δδ f  f  F 

 F  

Repartiţia lognormală 

Variabila aleatoare pozitivă  Y  se numeşte lognormal ă  ( )σμ, LN  de parametri μ , σ  

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

Dacă se dau media şi dispersia pentru variabila lognormală m 2 s Y  atunci media μ  şi

dispersia pentru2σ  X  se calculează cu formulele:

( ) ⎟⎟ ⎠

 ⎞⎜⎜⎝ 

⎛ +−=μ 1log

2

1log

2

2

m

 sm  

⎟⎟ ⎠

 ⎞⎜⎜⎝ 

⎛ +=σ 1log

2

22

m

 s 

(3.16.)

deci simularea variabilei Y  se realizează cu algoritmul simplu

Algoritmul LNORM pentru simularea lognormalei

Intrare , ; calculează m 2 s μ, σ ; (acesta este un pas pregatitor!);

Generează  ( )1,0~  N  Z  → ;

Calculează  σ+μ=  Z  X  ; (unde2σ=σ );

Ia . ( X eY = ( )σμ→ ,~  LN Y  )

Familia de variabile de tip Johnson

Din aceasta familie fac parte o serie de variabile ce se ob ţin prin transformări de variabile

normale . Aceste transformări sunt:( σ→ ,~ m N  X  )- ξ++λ=  xeY  1 = variabila logit normal ă;

- ξ+λ = variabila lognormal ă; =  X eY 

- ( ) ξ+ = variabila1sinh −

normal ă,λ=  X Y  sinh2

)sinh( x x ee

 x−−

= , unde 0>λ , 0≥ξ ,

aceste constante alegându-se de obicei astfel încât [ ] 0=Y  E  , [ ] 1=Y Var  .

Page 33: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 33/54

 

III..6. Simularea unor variabile particulare

III.6.1.  Reparti  ţ ia exponen ţ ial ă 

Este suficient să ne ocupăm de repartiţia variabilei a cărei densitate derepartiţie este

)1(~  Exp Z  →

⎩⎨⎧

>≤

=0xdacã

0xdacã

e

0)(

x- x f  , (3.17.)

căci simularea variabilei ( )λ→ Exp X  ~ se realizează cuλ

= Z 

 X  . Metoda inversă pentru

simularea lui  Z , adică , nu este recomandabilă deoarece dacă este apropiat de

zero atunci nu se poate calcula. De aceea vom prezenta o metodă de respingere datorată 

lui John von Newmann care se bazează pe teorema următoare.

( )U log−= Z U 

(log )U 

  Teorema 6.  În teorema 3. (a şirului descendent) se consider ă   00 U  Z  =  , ,

unde , sunt uniforme . Dacă not ă m cu numă rul aleator de sub şiruri descendente

respinse până  când se accept ă  un sub şir, atunci

ii U  Z  = 1≥i

0U  iU  10 −  N 

( )1 Exp~0 Z  N  → X  +=   , unde este cel 

acceptat (din ultimul sub şir descendent). 0 Z 

De aici se deduce următorul algoritm pentru simularea lui  Z .Algoritmul EXRJ de simulare a exponenţialei prin metoda respingerii

Iniţializează  0:= N  ;

repeat

generează , uniforme0U  1U  10 −  şi independente;

Ia ;0

*

: U U  = 1:= K  ;while  do  begin 10 U U  ≥

  1: += K  K  ; 10 : U U  = ;

generează uniform1U  10 − ;

end; (s-a simulat un subşir descendent);if  02mod = K    then  1: += N  N  ; (se număr ă subşirurile

respinse);until  12mod = K  ;

Ia .*: U  N  Z  +=

Pe lângă probabilitatea de acceptare , performanţa algoritmului este

caracterizată şi de numărul al variabilelor uniforme

11 −−= e pa

* N  { } 0≥iiU  necesare a fi generate până când

se obţine o valoare de selecţie exponenţială  Z . Conform (3.11.) avem

( ) ( ) 8,31

111

11

1 2

1

1

0

* ≈−

=−+−

=⎟⎟ ⎠

 ⎞⎜⎜⎝ 

⎛ +=

−∫  e

ee

edze

 p N  E   x

a

  (3.11'.)

adică trebuie simulate în medie aproape 4 numere uniforme pentru a obţine o valoare de selecţieexponenţială  Z .

Page 34: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 34/54

 

III.6.2. Reparti  ţ ia Gamma

Repartiţia are densitatea dată de formula( υλα ,,Gamma )

( )( ) ( )

⎪⎩

⎪⎨

<

α−υΓ

λ= α−λ−−υυ

0xdacã

0xdacã0

)( 1  xe x x f   

iar formulele

λ+α=

 X Y  , ( )λα−= Y  X   

spun că este necesar  şi esenţial să construim metode pentru simularea unei repartiţii Gamma

 standard , adică , . Dacă , atunci repartiţia gamma devine

repartiţie . Dacă 

( )υ,1,0Gamma

)(k  0

+∈υ  R

1

+∈=υ  N k 

 Erlang  <υ< atunci simularea variabilei se realizează 

cu o metodă de respingere bazată pe înf ăşurarea cu o densitate

( υ,1,0Gamma )

( )υ,1,0Weibull  cu densitatea derepartiţie dată de

( )⎪⎩

⎪⎨⎧

≥<

υ= υ−υ 0xdacã

0xdacã

x

01-  xe

 xh  

Algoritmul pentru simularea lui  X  este:Algoritmul GAMRESM1 (algoritm de respingere pentru variabila gamma standard cu parametru

subunitar)

Intrare ; Calculează υυ

=1

:c ; υ−υ

υ=ζ 1: ; ;( )1: −υζ= ea

repeat

Generează U  uniform 10 − ;

Calculează  ( )U  Z  ln−= ;c Z Y = ;

{se generează  ( )υ→ ,1,0~ Weibull Y  }

Generează alt U  uniform 10 − ;

until ;Y  Z aeU  −≤

Ia .Y  X  =:O metodă de compunere-respingere pentru cazul 10 <υ< .

Vom scrie densitatea de repartiţie ( )υ,1,0Gamma , 10 <υ< dată de expresia

( )⎪⎩

⎪⎨

<

υΓ= −−υ 0xdacã

0xdacã

1

0

)( 1  xe x x f   

sub forma)()()( 2211  x f  p x f  p x f  +=  

unde

Page 35: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 35/54

[ ]

⎪⎩

⎪⎨

⎧∈

=altfel

0,1xdacã

0

)(

)( 11  p

 x f 

 x f  ,( )

⎪⎩

⎪⎨

⎧∞∈

=altfel

1,xdacã

0

)(

)( 22  p

 x f 

 x f   

( )

( )υΓ

υΓ=

:11 p ,

( ) ( )

( )υΓ

υΓ−υΓ=−=

;11 12  p p  

( ) ∫ ∞

−−υ=υΓ0

1 dxe x  x , ( ) ∫  −−υ=υΓ1

0

1;1 dxe x  x

Să notăm ,)(~ 11  x f  X  → ( ) x f  X  22 ~→ . Atunci are loc următoarea teoremă:

Teorema 7. Variabila se simulează folosind teorema 3. a sub şirului descendent unde1 X υ= 1

00 U  Z    , cu{ } uniformeii U  Z  = 0≥iiU  10 −   , iar se simulează cu ajutorul teoremei 3.2.

duale unde densitatea este de forma2 X 

)(2  x f 

( ) )()(1)(2  xr  xQc x f  ==  , ,0> x

( ) ( )( )vec :1

1

Γ−υΓ=  ,

⎩⎨⎧

≥<

=+ 1xdacã

1xdacã

e

0)(

1x- xr   ,

⎩⎨⎧

≥<

=υ 1xdacã

1xdacã

x-1

0)(

1- xQ .

Presupunând că s-au calculat în prealabil ( )υΓ= g  ; ( )υΓ= ;11 g  ; g 

 g  p 1

1 = ,

 g 

 g  g  p 1

2

−= ,

υ

=1

a ,

v

b

−=

1

1,

( )1

1

 g  g e

c

= , algoritmul de simulare al variabilei

, este( )υ→ ,1,0~ Gamma X  10 <υ<Algoritmul GAMCOMNL1 pentru simularea variabilei gamma de parametru subunitar princompunere şi respingere:

Intrare , ;1 p 2 pGenerează ;1-0uniform~→U if  then  begin 1 pU ≤

Generează ; Ia)(~ 11  x f  X  → 1 X  X  = ;

end 

else  begin 

Generează ; Ia)(~22

 x f  X  →2

 X  X  =  

end.

Variabilele şi se generează cu algoritmii de respingere prezentaţi în continuare.1 X  2 X 

Algoritmul GAMRESNL1 pentru simularea variabilei .1 X repeat 

Generează  randomU  = ; ( 1-0uniform=U  );a

Ia ; Generează U  Z  =0 random1 = Z  ; Ia 1= K  ; ;0*  Z  Z  =

while  do  begin 10  Z  Z  ≥

 

Page 36: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 36/54

10  Z  Z  = ; Generează  random1 = Z  ; 1+= K  K  ;

end;

until ;12mod = K 

Ia . *1  Z  X  =

Pentru acest algoritm avem ( )υΓυ= :1a p , ( ) ⎟⎟ ⎠ ⎞⎜⎜

⎝ ⎛  υ+= ∫  −υ

1

0

1*1 11 dt et  p N  E  t 

a

, ultima

integrală putând fi calculată numeric.

Pentru acest algoritm avem 12 1  p p −= , ( )2

*2

2

 p N  E  = , deci numărul mediu de variabile ,

,

i Z 

0≥i Z , Y  necesare pentru a genera în final un  X  este

( ) ( ) ( ) ( ) 2*11

*22

*11

* +=+=  N  E  p N  E  p N  E  p N  E  .

III.6.3. Metode pentru simularea variabilei  ( )υ,1,0Gamma  , 1>υ 

Vom prezenta doi algoritmi de respingere bazaţi pe metoda înf ăşur ătoarei.

G1

Să consider ăm ( )υ→→ ,1,0~)(~ Gamma x f  X  , 1>υ   şi să luăm ca înf ăşur ătoare

densitatea ⎟ ⎠ ⎞

⎜⎝ ⎛ 

υ→

1~)(  Exp xh , adică 

⎪⎩

⎪⎨

<

υ

−0xdacã

0xdacã

1

0

)(  x

e xh  

Analizând raportul

( ) υ−

−−υ

υΓ

υ== x

 x

e

e x xh x f  xr 

1

)()()( , 1>υ , se constată că acesta are ca punct de

maxim υ= , deci constanta din teorema 3.1. (a înf ăşur ătoarei) esteα ( )( )υΓ

υ=υ=α

υ−υ 1er  .

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

( )1

22

1υυΓ

υ−υe

( )

−υπ

≈=e

 pa

)

. S-a folosit aproximarea lui Stirling pentru adică ∞→υ

( ) ( ) ( 1−211 υπ≈υΓ −υ−−υ e1−υ , deci această probabilitate scade de ordinul υ .

G2

Algoritmul precedent este lent pentru υ foarte mare. De aceea vom prezenta în acest cazo altă metodă de respingere, bazată pe înf ăşurarea cu o densitate Cauchy nonstandard trunchiată  pe [ de forma)∞,0

( )( )c

 x

k  xh

211

)(−υ−

+= , 0≥ x

(3.18)

Page 37: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 37/54

unde k  este o constantă de normare. Putem enunţa teorema:Teorema 8. Dacă înf ăşur ă m densitatea ( )υ,1,0Gamma  , 1>υ   , cu densitatea dat ă  

de (3.18) atunci pentru avem

)( xh12 −υ≥c

( )( ) ( )111

1

)(

)()( −υ−−υ−υ

υΓ=α≤= e

k  xh

 x f  xr    (3.18'.)

Pentru a descrie algoritmul dedus din teorema precedentă presupunem calculate în  prealabil constantele ,1−υ=b bc +υ= , 12 −υ=S  . Atunci algoritmul pentru generarea

variabilei ,( ) 1>υ,1,0Gamma→~ X  υ este

Algoritmul GAMCAUCHY (simularea variabilei ( )υ,1,0Gamma , 1>υ prin înf ăşurarea cu odensitate Cauchy)

repeat repeat 

Genereaz random:=U   şi ia ( )( )5.0: −π⋅= U tg  sT  ;

(T este Cauchy standard pe ( )+∞∞− , ;

Ia T bY  += ; (Y este Cauchy non standard pe ( )+∞∞− , ;

until ; (Se aplica respingerea pentru a obţine ;0>Y  trunchiatã−Y Generează  random:1 =U  ;

until ⎟⎟

 ⎠

 ⎞

⎜⎜

⎝ 

⎛ ++−⎟

 ⎠ ⎞

⎜⎝ ⎛ 

≤c

T T 

b

Y b

eU 

21loglog

1 ;

Ia Y  X  = .Se observă că constanta nu intervine în construcţia algoritmului dar ea este necesar ă 

 pentru a calcula

α=

1a p . Un calcul simplu arată că 

1

12

1

2

⎥⎦

⎤⎢⎣

⎡⎟⎟

 ⎠

 ⎞⎜⎜⎝ 

⎛ −υ

−υ−+

π= arctg k  . Referitor 

la repartiţia , mai observăm şi faptul că dacă descompunem sub forma

, ,

( )υ,1,0Gamma

[ ] +∈υ=  N k 

1>υ υ

 pk +=υ [ )1,0∈−υ= p k   şi consider ăm variabilele ( )υ→ ,1,0~ X Gamma ,

,)(k  Erlang ~ E k  → ( ) p,1,0GammaY ~→ , atunci simularea lui  X  se realizează cu relaţia

, ,Y  k  E  E  X  k  += Y  independente.

III.6.4. Reparti  ţ ia Beta

Variabila  X  are repartiţia , , dacă densitatea sa de repartiţie este),( ba Beta 0>a 0>b

( ) [ ]

⎪⎩

⎪⎨

⎧∈−

=−−

altfel

1,0xdacã

0

1),(

1

)(11 ba  x x

ba B x f  , (3.19.)

unde

∫  −− −=1

0

11 )1(),( dx x xba B ba ,)(

)()(),(

ba

baba B

+ΓΓΓ

= . (3.19'.)

Următoarea teoremă permite simularea variabilei .),( ba Beta

  Teorema 9.  Dacă   ( )aGamma X  ,1,0~1 →   , , indep

de , atunci variabila

),1,0(~2 bGamma X  → 1 X 

2 X 

 

Page 38: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 38/54

21

1

 X  X 

 X  X 

+=   (3.20.)

este o variabil ă  .),( ba BettaSimularea variabilei poate fi deci f ăcută cu (3.20). Dar deoarece această 

formulă presupune generarea prealabilă a două variabile gamma, rezultă că această metodă are ocomplexitate mare. De aceea, în cazuri particulare se pot folosi următoarele teoreme:

),( ba Beta

Teorema 10. Fie  şi+∈ N ba, 1−+= ban   şi să consider ă m variabilele

uniforme . S ă  construim statisticile de ordinenU U U  ,...,, 21

10 − )()2()1( ... nU U U  <<< prin ordonarea

valorilor { } . Atuncin≤iiU  ≤1 ( )ba, BU  a ~)( → .

Teorema 11.  Dacă   10 << a  , 10 << b   şi , sunt variabile aleatoare uniforme

 şi independente,  şi dacă  

1U  2U 

10 − aU V  =1

1  , b

1

U T  2=   , atunci reparti ţ ia variabileiT V 

V  X 

+=  

condi ţ ionat ă de este .1<+ T V  ),b(a Beat 

Teorema 12.   Dacă   10 << a  ,  şi , sunt variabile uniforme1>b 1U  2U  10 −  

independente şi consider ă m aU V   ,1

1= 11

2 −= bU T   , atunci reparti ţ ia variabilei V  condi ţ ionat ă de

este .1<+ T V  ),( ba BetaAlgoritmii ce rezultă din aceste ultime teoreme sunt uşor de construit. Vom prezenta

algoritmul ce rezultă din teorema 11.

Algoritmul BETA14 pentru simularea variabilei ,),( ba Beta 1,0 << ba  repeat 

Generează , uniforme1U  2U  10 −  şi independente;

Ia aU V 1

1= , bU T 1

2= ;

until ;1<+ T V Calculează 

T V 

V  X 

+= .

Probabilitatea de acceptare a acestui algoritm de respingere este ),( ba Bba

ab pa +

= .

Algoritmul de respingere construit pe baza teoremei 3.11 are probabilitatea de acceptare.),( baaB pa =

 III.6.5. Reparti  ţ ia normal ă 

  Ne vom opri la simularea variabilei( )

1,0~ N  Z  →

căci dacă  ştim să simulăm această 

variabilă atunci se simulează cu formula( σ→ ,~ m N  X  ) σ+=  Z m X  .

O metodă de compunere-respingere.

Să consider ăm variabila normală standard ( )1,0 N  , notată cu , care are densitatea1 X 

 

Page 39: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 39/54

⎪⎩

⎪⎨

≥<

π

= −0xdacã

0xdacã2

0

)(2

21

 x

e x f    (3.21.)

Consider ăm şi variabila 12  X  X  −= cu densitatea . Densitatea se

scrie

)(2  x f  )1,0(~  N  X  →

)(21)(

21)( 21  x f  x f  x f  += , adică este o compunere discretă a densităţilor  şi .

Pentru a construi un algoritm de simulare a lui

)(1  x f  (2  x f  )

 X  va trebui să construim mai întâi un algoritm desimulare a lui . Vom înf ăşura densitatea cu . Rezultă teorema:1 X  )( x1 f  )1()( xh ~  Exp→

  Teorema 13.  Dacă  înf ăşur ă m cu avem)(1  x f  )( xhπ

=α≤ e

 xh

 x f  2

)(

)(  şi deci putem

aplica teorema de respingere a înf ăşur ă toarei pentru simularea variabilei .1 X 

Algoritmul pemtru simularea lui ( )1,0~  N  X  → este:

Algoritmul RJNORM de compunere-respingere pentru simularea normalei )1,0( N 

repeat Generează U  uniform 10 − ;

Generează ;)1(~  ExpY  →

until 5.0

2

2−+−

≤Y 

eU  ;

Ia ;Y  X  =:1

Generează U  uniform 10 − ;

if  then 5.0≤U  1:= s  else  1: −= s ; ( este un semn aleator); sIa .1 sX  X  =

Se observă că probabilitatea de acceptare este 72,0

2

≈π

=

e

 pa , adică, în medie, din

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

Metoda polară 

O altă metodă interesantă de simulare a variabilei ( )1,0 N  este metoda polar ă dată deurmătoarea teoremă, datorată lui Box şi Muller.

Teorema 14.  Dacă  variabilele , sunt uniforme1U  2U  10 −   şi independente, atunci

variabilele aleatoareS 

S log(V  Z 

)211

−=  ,

S )log(V  Z 

222

−=   , unde 12 11 −= U V   ,

  , , , sunt variabile normale independente. 12 22 −= U V 2

22

1 V V S  += 1<S  )1,0( N Algoritmul corespunzător metodei polare se deduce cu uşurinţă  şi el produce simultam

două valori de selecţie , şi , independente.)1,0( N  1 Z  2 Z  

III.7. Simularea unor variabile discrete

Dacă  X  este o variabilă discretă care ia ca valori şirul { } ∞≤≤nna 1  şi se cunoaşte funcţia

de frecvenţă ,ia X  P i ∈= () f ( − f  calculabilă, atunci folosind proprietatea 0)(lim =∞→

i f i

,

Page 40: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 40/54

(dedusă din ) se poate construi uşor un algoritm bazat pe metoda respingerii (măcar 

aproximativ!).

1)(1

=∑∞

=i

i f 

În această secţiune vom prezenta algoritmi pentru simularea unor repartiţii particulare.

Simularea unor repartiţii bazate pe probe Bernoulli

Fie un eveniment aleator observabil care are probabilitatea constantă .

Într-o experienţă întâmplătoare se poate produce cu probabilitatea

 A 0)( >=  A P  p A p sau evenimentul contrar 

 A cu probabilitatea . O astfel de experienţă se numeşte probă Bernoulli. Când se

  produce spunem că avem de-a face cu un succes, iar când nu se produce spunem că serealizează un eşec. Să asociem unei probe Bernoulli variabila aleatoare

 p−1q = A A

 Z  astfel încât 1= Z  dacă 

se produce şi dacă se produce A 0= Z A , adică  Z  are repartiţia

⎜⎜

⎝ 

⎛ 

 pq

 Z 10

: ⎟⎟

 ⎠

 ⎞, ,( )  p Z  E  = ( ) ( ) p p pq Z Var  −== 1 . (3.22.)

Funcţia de repartiţie a lui  Z  este

⎪⎩

⎪⎨

≥<≤

<=<=

1xdacã

1x0dacã

0xdacã

1

q

0

)(  x Z  P )( x F  . (3.22'.)

De aici rezultă că algoritmul de simulare a lui  Z  prin metoda inversă este

Algoritmul BERN de simulare a unei variabile (probe) BernoulliGenerează ;random:=U if  then  0:= Z   else  1:= Z  .  pU  >

 Să observăm din nou că dacă 

2

1= p , atunci suntem în cazul particular al aruncării la

întâmplare cu banul.

Repartiţia binomială 

Se spune că variabila aleatoare discretă   N  X ∈ este o variabilă binomială ,

, dacă 

),(  pn Binom+∈ N n 1<<  p0  X  este numărul de succese în n probe Bernoulli independente, adică 

, unde sunt variabile identic repartizate Bernoulli, independente. Simularea

variabilei

∑=

=n

i

 X 

1

i Z  i Z 

 X  se face deci simplu, prin numărarea de succese în probe Bernoulli independente.

Avem ,

n( ) α=α= n  pC  α−α nq X  P pq −= 1 , adică  ( )α= X  P  este termenul general al dezvoltării

  binomului , de unde derivă şi denumirea de repartiţie binomială.( )nq p +Media şi dispersia lui  X  sunt np X  E  =)(   şi npq X Var  =)( , iar din teorema limită 

centrală se deduce că pentru suficient de mare (n ∞→n ) variabila )1,0(~  N npq

np X W n

~  Binom X  →

→−

= .

De aici rezultă următorul algoritm simplu de generare a lui pentru mare.),(  pn n

 

Page 41: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 41/54

Algoritmul BINNORM

Generează ;)1,0(~  N W  →

Calculează  npqW np X  +=: . (Notaţia { } E  înseamnă ''cel mai apropiat

întreg de  E .

Repartiţia Pascal

Variabila  X  are repartiţia , ,),(  pk  Pascal  +∈ N k  10 <<  p , dacă  X  este numărul de

eşecuri până la apariţia a succese într-un şir oarecare de probe Bernoulli independente. De aicirezultă că variabila se simulează cu următorul algoritm care număr ă 

eşecurile realizate până la realizarea a succese într-un şir de probe Bernoulli independente.

k ~→ ),(  pk 

k  Pascal  X 

Algoritmul PASCAL

Intrare ,+∈ N k p , 10 <<  p ; 0= X  ; 0:= j ; ( X  numără 

eşecurile şi  j succesele);

repeat Generează  random:=U  ;

if  then  pU < 1: +=  j j  else  1: +=  X  X  ;

until . (k  j =  X este valoarea de selecţie generată).

Să observăm că ,α−−+α=α= q pC  X  P  k k 

k 1

1)( ,...2,1,0=α , care este termenul general al

dezvoltării în serie a expresiei ( ) k k  q p −−1 din care cauză repartiţia se mainumeşte şi repartiţia binomială cu exponent negativ. Avem şi următorul rezultat.

),(  pk  Pascal 

  Teorema 15.  Dacă   ( ) pk  Pascal  X  ,~ 11 →   şi ( ) pk  Pascal  X  ,~ 22 →   , sunt variabile

independente, atunci ( ) p,2k  X  X k  Pascal  X  ~ 121 +→+= (reparti ţ ia Pascal este stabil ă  ).

Avem şi că:

 p

kq X  E  =)( ,

2)(

 p

kq X Var  =   (3.23.)

formule ce se folosesc la validarea algoritmului.

Repartiţia geometrică  )( pGeom 

Este un caz particular de repartiţie Pascal, când 1=k  . Simularea variabileise poate realiza cu algoritmul PASCAL sau cu metoda inversă cu formula)(~  pGeom X  →

⎥⎦

⎤⎢⎣

⎡=

)log(

)log(

q

U  X  de unde se deduce şi

 p

q X  E  =)( ,

2)(

 p

q X  =Var  , formule care se folosesc la

testarea algoritmului de simulare.

Repartiţia hipergeometrică 

Această repartiţie se introduce după cum urmează:Să consider ăm experimentul cu urnă în care bile se extrag la întâmplare din urnă, f ăr ă 

întoarcere. În acest caz număruln

 X  de bile albe extrase este o variabil ă hipergeometrică. Să notăm cu U  evenimentul care reprezintă extragerea unei bile albe şi cu V  evenimentul careconstă în extragerea unei bile negre; atunci probabilităţile de a extrage în prima extragere o bilă 

Page 42: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 42/54

albă respectiv neagr ă, sunt respectiv N 

 AU  P  p == )( ,

 N 

 BV  P  =)( . Probabilităţile de extragere a

unei bile albe sau negre în a doua extragere sunt condiţionate de rezultatele primei extrageri adică 

( )1

1

−−

= N 

 AU U  P  , ( )

1−=

 N 

 AV U  P  , ( )

1−=

 N 

 BU V  P  , ( )

1

1

−−

= N 

 BV V  P  . Se observă că la

fiecare extragere compoziţia urnei se schimbă şi probabilitatea de a extrage o bilă albă sau neagr ă este variabilă în funcţie de extragerile anterioare. Variabila hipergeometrică se notează 

, , de unde),,( n p N  H  10 <<  p N n < { } Np A = ({ } x ,  R x ∈ este cel mai apropiat întreg de

 x ), . Probabilitatea ca în extracţii succesive f ăr ă întoarcere, să se extragă bile

albe este

 A− N  B = n a

n N 

an B

a A

C C  −

a X  P  == )( , na ≤≤0 ,  N n < . De asemenea, avem np X  E  =)( ,

( ) ( )  N + 11 ( − )[ ] p Npnnp

−−1 N 

 X  E  =2  şi1

)1()(−−

− N 

 N  p= X Var 

nnp .

 X  esteAlgoritmul de simulare a variabilei hipergeometriceAlgoritmul HIPERGEOM

Intrare , A B , ,n B A N  += ; (Acesta este un pas pregăritor);

 N 

 A p =Calculează ; IniţializeazAă  0:= j , 0:= X  ;

repeat 1: +=  j jrandom:=U  ; Ia ;Generează 

if U   then  begin  p<:=  X  X  1 1:=S 

0:+ ; ; (S-a estras o bilă albă);

end else ; (S-a extras o bilă neagr ă);=S 

: , N 

 A p =: ;1−= N A N S  A ==:,Calculează 

( )n p N  ,, H  X until  n j = ~→; ( ).

Repartiţia Poisson

are repartiţia , dacă ( )λ PoissonVariabila aleatoare  X ,  N  X ∈ 0>λ

( ) λ−α

αλ

=α= X  P  ( ) +λ= 22 X  E λ=)( X  E  λ =)( X Var e!

, . Avem şi0> , .λλ ,

Repartiţia este repartiţia evenimentelor rare în sensul următor: evenimentelesunt independente şi se produc la intervale aleatoare de timp astfel încât un eveniment se produce  pe intervalul de timp [ cu probalilitatea

( )λ

t t  Δ+,

 Poisson

]t  ( )t Ot  Δ+Δλ unde şi( )Δt O 0=lim0→Δt 

( ) 00

=ΔΔt t O ( este neglijabilă în raport cu( t O Δ ) t Δlim

→Δt ) iar probabilitatea ca pe acelaşi interval

să se producă mai mult de un eveniment (condiţia de raritate) este ( )t O Δ (adică este neglijabilă). Numărul de evenimente rare ce se produc pe unitatea de timp este o variabil ă aleatoare

. Numărul λ este intensitatea cu care se produc evenimentele rare.( )λ PoissonIntervalul de timp la care se produc două evenimente rare consecutive are o repartiţie

fapt care spune că 

θ

( )λ Exp 1−= X j dacă . Ţinând acum seama de faptul că ∑θ j

i∑−

≤θ j

i

1

<λ== ii 11

 

Page 43: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 43/54

λ−=θ i

i

U log , uniforme , atunci rezultă că iU  10 −

1−=  j X  dacă  ∏∏=

λ−−

=

>≥ j

ii

 j

ii U eU 

1

1

1

(3.24.)

Pe baza relaţiei (3.24.) se poate construi cu u

şurin

ţăun algoritm pentru simularea lui

 X  .III.8. Validarea generatorilor

Validare înseamnă nu numai verificarea corectitudinii formale a programelor, ci înspecial dacă algoritmul implementat (programat) produce valori de selecţie asupra variabileialeatoare în cauză, adică dacă pe baza unei selecţii , de volum suficient de mare

se verifică ipoteza statistică , care se mai numeşte şi ipoteză de concordanţă.n X  X  X  ,...,, 21 n

)( x F  H  →~: X Mai întâi ar trebui să verificăm intuitiv dacă repartiţia empirică sau repartiţia de selecţie

se aseamănă cu cea teoretică. Mai precis trebuie să construim grafic histograma şi să vedem dacă ea se aseamănă cu densitatea de repartiţie.

Construcţia histogramei se face astfel:

- se determină mai întâi ( )n X  X  X m ,...,,1min= 2 , ( )n X  X  X M  ,...,,max 21= care reprezintă 

intervalul de varia ţ ie  [ ]M m, ;

- se alege un întreg pozitiv k , (practica recomandă  4015 ≤≤ k  ) care reprezintă numărul deintervale ale histogramei;

- se împarte intervalul [ ]M m, în k  intervale [ ]iii aa I  ,1−= , k i ≤≤1 , ma =0 , M ak  = ;

- se determină  i f  = numărul valorilor de selecţie ce cad în intervalul [ )ii aa ,1− , k i ≤≤1 ;

se numesc frecven ţ e absolute;i f 

- se determină  frecven ţ ele relative n

 f r  i

i = .

Repartiţia empirică este

⎜⎜⎝ 

⎛ r 

 I 

1

1

⎟⎟ ⎠

 ⎞

r r 

 I  I 

2

2 . (3.25.)

Pentru reprezentarea grafică a valorilor din (3.25.) procedăm astfel: luăm pe abscisă intervalele şi construim dreptunghiuri care au ca bază aceste intervale şi ca înălţimi .

Graficul obţinut reprezintă histograma selecţiei date. (Ea este histograma

frecvenţelor relative; asemănător se obţine şi histograma frecvenţelor absolute).

i I  ir 

n X  X  X  ,...,, 21

 

Testul2χ

 

Odată construită histograma putem aplica testul de concordanţă pentru verificareaipotezei . Pentru aceasta calculăm întâi probabilităţile

2

χ)(:  x F  H  →~ X  ( )11 a F  p = ,

, ,( ) )1−i  F  2 ≤ i( −ia ( )11 −−= k k  a F  p .=i a F  p 2−≤ k 

Calculăm apoi( )∑

=

 j

i f 

1

−=

i

i

np

np 22χ care se ştie că are repartiţia hi pătrat cu grade

de libertate, ( este variabila corespunzătoare). Fiind dat riscul de genul I, , (o probabilitate

mică, apropiată de zero) determinăm (numită 

1−k 

21−k χ α

2,1 α−χ k  −α cuantilă superioar ă) astfel încât

Page 44: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 44/54

( ) α=χ>χ α−−2

,12

1 k k  P  . Ipoteza  H  se acceptă dacă  şi se respinge în caz contrar.2,1

2α−χ<χ k 

 Un test simplu

Cel mai simplu mod de testare a unui generator care simulează o variabilă neuniformă  X   

se poate realiza astfel:- Se determină câteva momente teoretice ale lui  X  ca de exemplu )( X  E    şi

)( ;

m =2  X Var =σ

- Cu ajutorul selecţiei simulate n X  se calculează momentele empirice de selecţie: X  X  ,...,, 21

n

 X  X 

n

ii∑

== 1 , 21

2

2  X n

 X  s

n

ii

−=∑

= .

Se consider ă că generatorul este bun dacă pentru suficient de mare ( )

valorile lui

n 1000>n X   şi sunt tot mai apropiate de m  şi , ca o consecinţă a legii numerelor mari.

Se presupune că momentele teoretice m , sunt cunoscute.

2 s 2σ2σ

 

CAPITOLUL IV. SIMULAREA VECTORILOR ALEATORI

IV.1. Generalităţi

( )′= k  X  X  X  ,...,,1  X 2Un vector (vector coloană) ale cărui componente sunt

variabile aleatoare, se numeşte vector aleator . Cazul în care componentele suntindependente stochastic este desigur banal, de aceea cazul cel mai interesant este cândcomponentele sunt dependente sau corelate.

i X 

i X 

  Func ţ ia de reparti  ţ ie a vectorului  X  este( ) ( )k k   x X  x X  x X  P  x x F  x F  k  x <<<== ,...,,,...,,)( 221121   (4.1.)

şi ea se mai numeşte funcţia de repartiţie comună a lui sau funcţia de

repartiţie multidimensională. Desigur,k  X  X  X  ,...,, 21

( ) 0,..., =−∞∞− F  , ( ),..., = 1+∞∞+ F  , dacă  ii  y x <  

atunci (adică este monotonă pe componente). Funcţia

definită de relaţia

( ) (...,,......, i  y F  x F  ≤( )k  x,...,2

),...i  F 

 x x f  ,1

( ) ( )k k 

k   x x x x x x

 F  x x x f  x f  ,...,,

...,...,,)( 21

2121 ∂∂∂

∂==   (4.2.)

când derivata par ţială există, se numeşte densitate de reparti  ţ ie multidimensional ă a lui

 X  .Funcţia de repartiţie ( ) ( ) ( iiiii  x F  x F  x X  P  ==+∞ )+∞+∞∞+=< ,...,,,,...,

i X 

se

numeşte  func ţ ie de reparti  ţ ie marginal ă a lui  , iar  ( ) ( )iiii  x F  x f  ′= ( când derivata

există) se numeşte densitate de reparti  ţ ie marginal ă a lui  . Se pot defini funcţii de

repartiţie marginale pentrui X 

1,...,3,2 −k  componente etc. De exemplu, funcţia de repartiţie

marginală  ( ) ( ) ( )∞+∞+=<<=,  jiij  x x F  ,...,...,,...,,  ji j ji  x x F  x X  x jii X  P  , k ≤≤ ,

 j

1

corespunde componentelor , ale vectoruluii X X X  .$ Au loc relaţiile

Page 45: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 45/54

( ) ( )

( )

( )∫ 

∫ ∫ ∫ 

∞−

∞− ∞− ∞−

=

==

==

 x

 x x k  x

k k 

duu f 

dududuuuu f 

 x x x F  x F 

1 2

2121

21

...,...,,...

,...,,

 (4.3.)

Dacă variabilele , sunt independente atuncii X k i ≤≤1

( ) ( ) ( ) ( )k k k   x F  x F  x F  x x x F  ...,...,, 221121 =   (4.4.)sau analog pentru densităţi

( ) ( ) ( ) ( )k k k   x f  x f  x f  x x x f  ...,...,, 221121 =   (4.4'.)Când există integralele

( ) ( )∫ +∞

∞−

== iiiii dx x f  x X  E m 1 ,

( ) ( )∫ ∫ +∞

∞−

+∞

∞−==  ji jiij ji jiij dxdx x x f  x x X  X  E m  

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

( )( )[ ] ( )( )∫ ∫ +∞

∞−

+∞

∞−

−−=−−=σ  ji j jii j jiiij dxdxm xm xm X m X  E   

când integralele există, se numesc momente centrate; în acest caz, se numeşte

covarian ţ a lui cu şi se notează ijσ

i X   j X  ) jiij  X  X Cov ,=σ . Se observă că 

. Este uşor de ar ătat că dacă este independent de

,

( ) = ( ) σ= 2, iiiiii  X Var  X  X Cov=σ

 j X i X 

 ji ≠ , atunci

) ( ) ) ji ji jiij  X  E  X  E mm X  X  E m === ,) 0, ==σ  jiij  X  X Cov .

Este satisf ăcută inegalitatea lui Schwarz , adică ( ) ( ) ( ) ji ji  X Var  X Var  X  X Cov ≤, sau  jiij σσ≤σ .

Se numeşte coeficient de corela ţ ie al variabilelor   şi mărimeai X   j X 

( ))

( ) ( ) ji

 ji jiij

 X Var  X Var 

 X  X Cov X  X Corr 

,, ==ρ . (4.5.)

Se observă că  şi el are următoarea interpretare:[ 1,1−∈ρ ] 0≈ρij atunci depinde

 foarte pu ţ in de ; dacă 0 , atunci şi sunt invers corelate iar dacă ,atunci şi sunt direct  corelate; dacă 1

i X 

 j X 

 j X <ρij i X   j X  0>ρij

i X  ≈ρij atunci şi sunt  puternic

corelate.i X   j X 

Pentru un vector aleator mediile definesc un vector numit

vectorul valoare medie notat

im ( )′= k mmmm ,...,, 21

( ) X  E  iar covarianţele ijσ definesc o matrice ijσ=Σ  

(care este pozitiv definită, ) şi se notează 0Σ ( ) X Cov X   ′=Σ , .

Page 46: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 46/54

Presupunem că   X  are densitatea de repartiţie şi să consider ăm

descopmunerea lui

)( x f 

 X  în doi subvectori ( ) ( )( )′= 21 , X  X  X  unde ( )1 X  este un vector 

iar l dimensionar − (2) X  este un vector  l dimensionaq − , k r < , . Definim

densitatea de reparti  ţ ie condi  ţ ionat ă 

k q =r +( ) ( ) )2 x1 x f  a lui ( )1 X  când ( )  x= ( )22 X  astfel

( ) ( )( ) ( )

( ) ( )( ) ( )∫ ∞+

∞−

=121

2121

,

,

dy x y f 

 x x f  x x f  , unde ( ) ( ) ( )( )21 , x x f  x f  = .

(4.6.)

Cu această densitate se definesc, când există, ( ) ( ) ( )221  x X  X  E  = ,

( ) ( ) ( ) ( ) ⎟ ⎠ ⎞

⎜⎝ ⎛  =

′ 2211 ,  x X  X  X Cov adică media condi  ţ ionat ă, respectiv matricea de covarian ţă 

condi  ţ ionat ă. Uneori este necesar să simulăm ( ) ( ) ( )( )221  x X  X  = , când se cunoaşte

repartiţia condiţionată.

Metoda inversă este valabilă  şi în cazul simulării vectorilor aleatori. Fie( ) ( k k k   x X  x X  x X  P  x x x F  x F  )<<<== ,...,,,...,,)( 221121 , funcţia de repartiţie a lui  X   şi

fie funcţia de repartiţie marginală a lui , şi( ) ( )1111  x X  P  x F  <=

( ) ( )iiii  x X  x X  P  x x F 

1 X 

<<= ,...,,..., 111...1 funcţia de repartiţie marginală a lui ( )′i X  X  ,...,1 .

Fie de asemenea funcţiile de repartiţie condiţionate( ) ( ) ( )121112212 ,  x x F  x X  x X  P  x x F  ==<= ,

( ) ( ) ( ) x x x F  x X  x X  x X  P  x x x F  ,,,, 132211333213 ===<= ,

( ) ( ) ( )121111121 ,...,,,...,,...,, −−− ===<= iiiiiiii  x x x x F  x X  x X  x X  P  x x x F  , .k i ≤≤2

Să notăm cu inversa funcţiei

1−

i F  ( )ii  x x x F  ,...,, 21 în raport cu . Atunci are locurmătoatea teoremă.i x

  Teorema 1.   Dacă   iU , k i ≤≤1 sunt variabile aleatoare uniforme 10 −  

independente atunci vectorul aleator  ( )′= Y Y  1 k Y Y  ,...,, 2 ale că rui componente sunt 

( )11

11 U  F Y  −=   , , …,( )211

22 ,U Y  F Y  −= ( )iiiii U Y Y Y  F Y  ,,...,, 121

−−=  ,

k i ≤≤2  (4.6'.)

are func ţ ia de reparti ţ ie .( ) x F De aici se deduce următorul algoritm pentru simularea vectorului aleator  X  când

se cunosc inversele ale funcţiilor de repartiţie condiţionate1−i F  ( )ii  x x x F  ,...,, 21 i x,1− în

raport cu .i x 

Algoritmul AIMULT pentru metoda inversă multidimensională.

Generează ; Calculează random:U = ( )U  F Y  111−= ;

for  to  do begin 2:=i k 

 

Page 47: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 47/54

Generează  random:=U  ;

Calculează  ( )U Y Y Y  F Y  iii ,,...,,: 1211

−−= ;

end.

IV.2. Simularea vectorilor uniformi

Vectorul aleator  l dimensionak − ( )′= k V V V V  ,...,, 21 are repartiţie uniformă pe

domeniul mărginit k  R D ⊂ dacă densitatea sa de repartiţie este

⎩⎨⎧

∉∈

=Dvdacã

Dvdacã

0)(

k v f  ,

mesDk 

1= , ∫ =

 D

dvmesD (4.7.)

Rezultă că are repartiţie uniformă pe intervalulV  [ ] [ ] [ k k  bababa I  ,...,, 2211 ×× ]×=  

, dacă +∞<<∞− i ba <i k i ≤≤1

( ) ( )⎪⎪⎩

⎪⎪

−= ∏=

Ivdacã

vdacã

0

1

1

 I 

abv f 

iii   (4.7'.)

Din (4.7') rezultă că dacă este uniform peV I  atunci sunt variabile uniforme pe

i independente deoareceiV 

[ ii ba , ]

( ) ∏=

=k 

iiik  v f vvv f 

121 ,...,, ,( ) ( )

[ ]

[ ]⎪⎩

⎪⎨

∈−=

ii

iiiiii

ba

baabv f 

,vdacã

,vdacã

0

1

i

i   (4.7''.)

De aici se deduce următorul algoritm simplu pentru simularea vectorului

 I  peuniformV  →~ . Algoritmul VUNIFINT de simulare a vectorului uniform pe interval

Intrare , ,ia ib k i ≤≤1 .

for  to  do begin 1:=i k Generează  random:=U  ; Ia ;

end. 

Pentru a simula un vector aleator  W  uniform pe k  R D ⊂ D

( D fiind un domeniuoarecare), nu mai este adevărată (4.7''.). Dar să observăm că dacă  şi V  e uniform

 pe

 I ⊆ I , atunci restricţia lui V  la ( vectorul notat W ), este un vector uniform pe . De

aici rezultă următorul algoritm de respingere pentru simularea lui W . D D

 

Algoritmul VECTUNIFD de simulare a vectorului uniform pe domeniuoarecare:

Page 48: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 48/54

Construieşte un interval minimal [ ] [ ] [ k k  bababa I  ,...,, 2211 ×× ]×=  

astfel încât ; (Acest interval există deoarece estemărginit).

 I  D ⊆  D

repeat Generează V  uniform pe  I ;

until ; DV ∈Ia V W  =: .

Probabilitatea de acceptare a acestui algoritm este

( )∏=

−==

iii

a

ab

mesD

mesI 

mesD p

1

de unde se

deduce că pentru a obţine un interval  I  cât mai bun, acesta trebuie să fie minimal astfelîncât . I  D ⊆ 

IV.3. Simularea vectorilor normali

Vectorul aleator  l dimensionak −  X  are repartiţia normală dacă densitatea sa este

( Σμ, N  )

( )( ) [ ]

( ) ( )μ−−Σ′μ−−

Σπ=Σμ

 x x

k e x f 

12

1

2

1

2 det2

1,, , .k  R x ∈ (4.8.)

şi avem( ) μ= X  E  , ( ) Σ=′ X  X Cov , . (4.8'.)

Să notăm cu  Z  vectorul normal ( ) I  N  ,0 unde  I  este matricea unitate

dimensională iar 0 este vectorul nul din−k 

 R . Atunci densitatea a lui( ) z f Z  satisface proprietatea

( ) ( )∏=

=k 

iii  z f  z f 

1

, ( ) 2

2

2

1 i z

ii e z f −

π=   (4.9.)

adică componentele ale luii Z Z  sunt independente şi normale ( )1,0 N  . Deci, simularea

lui se realizează simplu astfel(  I  N  Z  ,0~→ ) 

Algoritmul VECNORMSTD de generare a vectorului normal standard.

for to do begin 1:=i k Generează  ( )1,0~  N T  → ; Ia T  Z i =: ;

end.

Pentru a simula ( )Σμ→ ,~  N  X  vom folosi mai întâi teorema:

Teorema 2.  Dacă   ( )Σ→ ,0~  N Y   şi este o matriceC k k × iar este un vector,

atunci

μ1×k  ( )C C  N CY  X  ′Σμ→+μ= ,~  ,

Page 49: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 49/54

Fiind dată matricea (pozitiv definită) se ştie că există o matrice0Σ0ijcC =  inferior triunghiular ă (adică  =ijc ,  ji < ), astfel încât $ . Matricea

este matricea Choleski . De aici deducem teorema:

Σ=′C C 

C   Teorema 3.  Dacă   ( )Σ→ ,0~  N  Z , μ este un vector  1×k   şi este matricea

Choleski a lui , atunci

Σ ( )Σμ→+μ= ~CZ  , N  X . Matricea C  se determină cu ajutorul matricii ijσ=Σ cu formulele lui Choleski:

11

11 σ

σ= i

ic , k i ≤≤1

∑−

=

−σ=1

1

2i

r ir iiii cc , k i ≤<1

 jj

 j

r  jr ir ij

ij c

ccc

∑−

=−σ

=

1

1 , k i j ≤<<1

0=ijc , k  ji ≤<<1 .

(4.10.)

Simularea vectorului ( )Σμ→ ,~  N  X  , după ce se calculează într-un pas pregătitor matricea C  a lui Choleski, se realizează cu următorul algoritm:

Algoritmul NORMMULT de simulare a vectorului normal

Intrare μ, ;C 

Generează  ( ) I  N  Z  ,0~→ cu algoritmul VECNORMSTD;Calculează  CZ  X  +μ= .

Uneori este necesar să simulăm un subvector al unui vector normal când se dă 

celălalt subvector. Mai precis dacă  ( ) ( )( ) ( Σμ→ )′

= ,~, 21  N  X  X  X  , cu ( )1 X  vector 

şil dimensionar − ( )2 X  vector  l dimensionaq − , k qr  =+ , se cere să se simuleze ( )1 X   

condiţionat de .( ) )2 (2 x= X Să consider ăm scrierea celular ă a lui μ  şi Σ , adică 

( )

( ) ⎟⎟ ⎠

 ⎞

⎜⎜⎝ 

⎛ 

μ

μ

=μ 2

1

, ⎟⎟ ⎠

 ⎞

⎜⎜⎝ 

⎛ 

ΣΣ

ΣΣ

=Σ 2221

1211

(4.11.)Dacă μ  şi sunt cunoscute atunci este adevărată următoarea teoremă.Σ  Teorema 4.  Reparti ţ ia condi ţ ionat ă  a lui ( )1  X când se d  ă  estenormal ă  

( ) ( )22  x X  =( )( )*

111

* ,Σμ N unde  ( ) ( ) ( ) ( )( )221

221211

* μ−ΣΣ+μ=μ −  x  

211

221211*11 ΣΣΣ−Σ=Σ −  

(4.12.)

Page 50: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 50/54

De aici se deduce algoritmul de simulare a lui ( )1 X  condiţionat de ( ) ( )22  x X  =  şianume:

Algoritmul NORMCOND de simulare condiţionată.

Intrare , ,( )2 x iμ ijΣ , 2,1, = ji ;

Calculează , ;( )1*μ *

11ΣGenerează 

( ) ( )r r  I  N  Z  ×→ ,0~1̀;

Calculează astfel încât*C  +Σ=

′11

**C C  ;

Calculează  ( ) ( ) ( )1*1*

1*  Z C  X  +μ= .

Rezultatul este ( ) ( )( )*11

1*

1* ,~ Σμ→ N  X  .

IV.4. Simularea repartiţiei Cauchy multidimensionale

Repartiţia Cauchy standard care are densitatea:

( )21

1)(

 x x f 

+π=   (4.13.)

se poate simula cu ajutorul metodei inverse. Dacă , sunt variabile normaleindependente, atunci variabila

1 Z  2 Z  )1,0( N 

2

1

 Z 

 Z  X  =   (4.14.)

are repartiţia Cauchy standard. Din această proprietate rezultă deci o metodă simplă desimulare a variabilei Cauchy standard unidimensionale ca raport de variabile normale

independente.)1,0( N O variabilă Y  are repartiţia ( )σ,cCauchy dacă densitatea sa este

( )2

2

1

11)(

σ−

+⋅

σ=

c x x g  ,  Rc ∈ , 0<σ ,

(4.15.)

Simularea lui Y  se va face cu formula  X cY  σ+= .În mod asemănător se poate introduce repartiţia Cauchy standard

multidimensională. Vectorul aleator  X  are repartiţia Cauchy standard multidimensională dacă densitatea sa de repartiăie e te de formas

( ) 2

1

2

12

1

11)( ++

+

′+⋅

π

Γ= k k 

 x x x f  , .k  R x ∈ (4.14'.)

Dacă   Z  este un vector  l dimensionak − normal şi este o variabilă normală ) independentă de

),0(  I  N  η1,0( N Z , atunci  X  se poate simula cu formula

η=  Z 

 X  . (4.14''.)

Se poate considera şi repartiţia multidimensională care aredensitatea de forma

( Σ,cCauchy )

 

Page 51: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 51/54

( )

( ) ( ) 2

1

12

12

1

1

1

det

)(+

+

+

⎥⎦⎤

⎢⎣⎡ −Σ′−+

⋅Σπ

Γ=

k k 

c xc x

 x g   (4.15'.)

Relaţia dintre vectorul Cauchy standard  X   şi vectorul este

asemănătoare relaţiei dintre vectorul

( Σ→ ,~ cCauchyY  )

 Z  normal şi vectorul),0  I ( N Y  normal ( )Σ,c N  ,adică dacă   X  are repartiţie Cauchy standard şi ( )Σ,cCauchy→~Y    şi consider ămmatricea inferior triunghiular ă astfel caS S S  ′=Σ , atunci Y  se poate genera cu formula

cSX Y  +=   (4.15''.)Combinând (4.14') cu (4.15'') rezultă că  ( )Σ→ ,~ cCauchyY  se simulează cu formula

η=

* Z Y    (4.16.)

unde , independent de( Σ→ ,0~  N  Z  ) )1,0(~  N →η .

IV.5. Simularea repartiţiei multinomiale

Această repartiţie este generalizarea multidimensională a repartiţiei binomiale.

Vectorul aleator cu componente întregi nenegative ( )′= k  X  X  X  X  ,...,, 21 ,

are repartiţia multinomial ă n X  X  X  k  =+++ ...21 ( )k  p p ,...,2 pnMultinom ,, 1 dacă 

( ) k nk 

nn

k k k   p p p

nnn

nn X n X n X  P  ...

!!...!

!,...,, 2

21

121

2211 ==== ,

, ,nnnn k  =+++ ..21 0>i p k i ≤≤1 , 1..21 =+++ k  p p p  (4.17.)

Avem:[ ] iii np X  E m == ,

[ ] ( ) ( )iiiiii  X  X Cov pnp X Var  ,12 =−==σ ,

( ) [ ]

 ji ji ji

 ji ji jiij

 pnp p pn p pnn

 X  E  X  E  X  X  E  X  X Cov

−=−−=

=−==σ2)1(

(4.17'.)

Vectorul  X  are o interpretare asemănătoare variabilei binomiale în cazul unuiexperiment cu urnă după cum urmează: să presupunem că într-o urnă se găsesc bile

de culoarea i , ,i N 

k ≤1 i≤ k  N  N  N  N  +++= ...21

i X 

. Se presupune că se extrag bile din

urnă cu întoarcere, din care sunt bile de culoarea i ,

n

k  X  X  X n +++= ...21 . Atunci

vectorul aleator  ( )′=  X  k  X  X  ,...,, 21 X  are repartiţia ( )k  p pnMultinom ,...,, 1 , i N i p = ,

. Această interpretare ne conduce la următorul algoritm pentru simularea lui1=∑i i p

 X  .

Algoritmul MULTINOM de simulare a repartiţiei multinomiale

Page 52: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 52/54

Intrare şi calculează ,k  p p pk n ,...,,,, 21 [ ] ∑α

=

=α1i

i p F k i ≤≤1 ; 

(Acesta este un pas pregătitor);Iniţializează  [ ] 0:1 = X  , …, [ ] 0=k  X  ;

for  to  do begin 1:=i nSimulează  randomU   := ; Ia 1: += ii ;

while  [ ]i F U ≥  do 1+= ii ;

Insumează  [ ] [ ] 1: += i X i X  ;end.

Testarea algoritmului se face în mod simplu astfel:

- se generează selecţia de volum T , ( ) ( ) ( )( )′= αααk  X  X  X  ,...,1 , T ≤α≤1 ;

- se calculează mediile aritmetice şi dispersiile empirice

( )( )[ ] 2

1

2

1

11i

ii

ii  X  X T 

 X T 

 X  −==

∑∑ =

α

α  

Pentru validarea algoritmului, trebuie ca pentru un T  mare să avem ii  X m ≈ ,

, unde şi sunt date de (4.17’.).22ii  s≈σ im 2

iσ 

IV.6. Simularea repartiţiei Dirichlet.

Un vector aleator  X  are repartiţia ( )121 ,...,, +υυυ k  Dirichlet  dacă densitatea sa de

repartiţie este

( )

( )

( ) ( )

( )

⎪⎩

∈−−−

υΓυΓ

υ++υΓ

=

+υυυ

+

+

k 1

11

1

11

11

1

Sxdacã

Sxdacã

0

...1...

...

...

,...,

k k 

k k 

 x x x x

 x x f    (4.18.)

dac ,( )ii GammaY  υ→ ,1,0~ 11 +≤≤ k i sunt variabile gama independente, atunci

vectorul  X  ale cărui componente sunt de forma

121 ... ++++=

ii Y Y Y 

Y  X  , k i ≤≤1 (4.19.)

are o repartiţie ( 121 ,...,,Dirichlet + )υυυ k  . Se observă deci că repartiţia Dirichlet este o

extensie la cazul multidimensional a repartiţiei Beta. Formulele (4.15) simulează componentele unui vector Dirichlet, presupunându-se desigur că parametrii ,1υ k i ≤≤1

sunt cunoscuţi.

Page 53: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 53/54

LISTA DE SUBIECTE

1. Modelul matematic al unui model de simulare2. Clasificari ale modelelor matematice3. Sistem de asteptare- model mathematic4. Structura unui model de simulare

5. Agenda simularii6. Realizari iterative ale sistemului7. Proprietati ale unei masini secventiale8. Sistem cu evenimente discrete (SED)9. Proprietati ale extensiei unei functii de tranzitie autonoma a unui SED10. Proprietati ale functiei ce da timpul total necesar unui SED pentru a face n tranzitii11. Proprietati ale numarului maxim de tranzitii facute intr-un SED intr-un interval de

timp dat12. Proprietati ale unui SED viabil13. Etapele realizarii unui experiment de simulare14. Generalitati despre limbajul GPSS15. Instructiuni GPSS16. Program GPSS pentru simularea unui sistem de asteptare cu o statie

17. Program GPSS pentru simularea unui sistem de asteptare cu statii paralele18. Model de simulate cu statii paralele si preferinte19. Model de simulare a activitatilor de reparatie a unui automobil intr-un atelier service20. Repartitia uniforma21. Necesitatea simularii numerelor aleatoare22. Metod congruentiale liniare23. Teorema ce da perioada maxima a unui generator congruential liniar 24. Generatori de numere uniforme25. Amestecarea de generatori si generarea unui indice aleator 26. Metoda inversa pentru simularea variabilelor neuniforme27. Metoda compunerii pentru simularea variabilelor neuniforme28. Metoda respingerii pentru simularea variabilelor neuniforme

29. Teoreme ce fundamenteaza algoritmii de respingere pentru simularea variabilelor neuniforme30. Teorema lui Forsythe (a sirului descendent)31. Algoritmii Compdiscr si Compcont32. Algoritmii Lapcomp si Algres33. Algoritmii Gamresm1, Resp34 si Respsird34. Metode de simulare care se obtin prin transformarea unor variabile uniforme 0-135. Stabilitatea familiilor de variabile aleatoare gamma standard si normale36. Simularea repartitiilor  χ 2 si Student37. Simularea repartitiilor Snedecor si lognormala38. Simularea repartitiei exponentiale39. Algoritmul Exrj40. Simularea repartitiei gamma

41. Algoritmul Gamcomnl1, Gamresnl1 si Gamresnl242. Metode pentru simularea variabilei gamma cu parametru supraunitar 43. Algoritmul Gamcauchy44. Metode pentru simularea repartitiei beta45. Algoritmul Beta1346. O metoda de compunere-respingere pentru simularea repartitiei normale47. Algoritmul Rjnorm48. Metoda polara pentru simularea repartitiei normale49. Simularea unor repartitii bazate pe probe Bernoulli50. Simularea repartitiei binomiale51. Algoritmii Bern si Binnorm

Page 54: modelare_si_simulare

5/9/2018 modelare_si_simulare - slidepdf.com

http://slidepdf.com/reader/full/modelaresisimulare 54/54

 

52. Simularea repartitiei Pascal si algoritmul Pascal53. Simularea repartitiei geometrice54. Simularea repartitiei hipergeometrice55. Algoritmul Hipergeom56. Simularea repartitiei Poisson57. Validarea generatorilor 

58. Constructia histogramei59. Algoritmul Histogramei60. Testul de concordanta χ 2 61. Testarea unui generator care simuleaza o variabila neuniforma62. Vectori aleatori (generalitati)63. Teorema ce reprezinta metoda inversa pentru vectori aleatori64. Simularea repartitiei Gumbel bidimensionale65. Algoritmul Gumbel si Aimult66. Simularea vectorilor uniformi67. Algoritmii Vunifint si Vectunifd68. Simularea vectorilor normali69. Algoritmii Vectnormst si Normmult70. Algoritmul Normcond de simulare conditionata

71. Simularea repartitiei Cauchy multidimensionale72. Simularea repartitiei multinomiale73. Algoritmul Multinorm74. Simularea repartitiei Dirichlet