facultatea de matematic˘a¸si informatic˘a modele de...

191
0 Universitatea din Bucure¸ sti Facultatea de Matematic˘ si Informatic˘ a Modele de simulare (Suport de curs pentru IDD) Autor Prof. Dr. Ion V˘ aduva BUCURES ¸TI 2004

Upload: others

Post on 30-Aug-2019

8 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

0

Universitatea din Bucuresti

Facultatea de Matematica siInformatica

Modele de simulare(Suport de curs pentru IDD)

Autor Prof. Dr. Ion Vaduva

BUCURESTI 2004

Page 2: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1

Prefata

Lucrarea constituie suportul de curs pentru disciplina Modele desimulare predata studentilor de la sectiile de Informatica si Mate-matica-Informatica din universitati, ca disciplina obligatorie.

Materialul cuprinde un volum de notiuni mai mare dacat s-ar cuvenipentru numarul de ore afectate disciplinei respective (un semestru), darel aste indestulator pentru un curs de un an. Lucrarea poate fi utilizatasi de catre studentii de la unele specializari de Master in informatica,precum si ca material documentar pentru lucrari de licenta. Ea poateservi si ca suport de curs optional, mai ales ca material de initiere, fiindcompletata la nevoie cu bibliografie suplimentara pentru capitolele deaplicatii, sau pentru unele perobleme noi ce nu au fost tratate aici.

Structurata pe sapte capitole, lucrarea prezinta mai intai problemelegenerale ale constructiei modelelor de simulare a sistemelor de orice fel,precum si o introducere in limbajul specializat de simulare GPSS (Gen-eral Purpose Simulation System), interesant mai ales pentru studentiide la specializarile de informatica. Se prezinta si o introducere formalain studiul sistemelor cu evenimente externe discrete, pe baza carora seconstruiesc modelele de simulare cu calculatorul, precum si alte aplicatiiinformatice.

Capitolele 2-4 se ocupa de simularea numerelor aleatoare, variabileloraleatoare si vectorilor aleatori, construind si analizand algoritmi pentrusimularea principalelor repartitii de probabilitate, unidimensionale saumultidimensionale, intalnite in practica.

Capitolul al cincilea prezinta proceduri de simulare a traiectoriilorlanturilor Markov sau a unor procese stochastice particulare.

Capitolul al saselea trateaza cateva probleme de calcul numericrezolvate cu ajutorul metodei Monte Carlo cum sunt: calculul inte-gralelor, rezolvarea sistemelor de ecuatii liniare si a ecuatiilor integrale,rezolvarea numerica a problemei Dirichlet.

Intrucat o problema importanta a aplicarii simularii este validareamodelului construit, ultimul capitol prezinta cateva modele de simularepentru sisteme de asteptare sau sisteme de stocuri, acestea prilejuindsi o scurta introducere matematica in teoria firelor de asteptare si inteoria stocurilor. Modelele matematice corespunzatoare se folosesc deregula la validarea modelelor de simulare.

Page 3: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

2

Toate capitolele contin si cateva exertitii menite sa antreneze citi-torul in intelegerea mai aprofundata a materialului tratat in lucrare.Pentru fiecare exercitiu se dau indicatii de rezolvare sau se prezintachiar solutia.

Cand este cazul, prezentarea notiunilor si rezultatelor este insotitade figuri sau grafice si este presarata cu exemple menite sa usurezeintelegerea unor tehnici sau metode teoretice. Pentru sintetizarea unorrezultate sunt alcatuite uneori tabele.

Bibliografia cuprinde de regula carti sau lucrari ce pot fi gasite decatre studenti sau alti cititori in biblioteci.

Consideram ca aceasta lucrare poate fi utila ca documentatie deinitiere si lucratorilor din informatica ce abordeaza teme de proiectareasistata de calculator sau de modelare.

Prin continutul sau, cartea de fata constituie numai un materialde initiere. Elaborarea modelelor de simulare pentru sistemele realeeste un demers dificil care implica colaborarea unor echipe specializate.Totusi, un curs de initiere ca cel de fata poate contribui la acumulareaunei experiente minimale pentru inceput.

AutorulBucuresti, iunie 2004.

Page 4: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3

Cuprins

Cap.1. Generalitati despre simulare . . . . . . . . . . . . . . . . . . . . . . . . 71.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7(• Model matematic, p.8; • Clasificari ale modelelormatematice, p.10)

1.2 Constructia unui model de simulare. . . . . . . . . . . . . . . . . . . . . .111.2.1 Structura unui model de simulare . . . . . . . . . . . . . . . . . . . . . 12(• Ceasul simularii, p.12; • Agenda simularii, p.13)1.2.2 Concepte de baza in modelarea sistemelor . . . . . . . . . . . . 19(• Nivele de reprezentare a sistemelor, p.20;• Reprezentarea la nivel de comportare, p.20;• Reprezentarea la nivel de structura de stare, p.20;• Reprezentarea modulara, p.21)1.2.3 Modelul sistemului cu evenimente externe discrete . . . . 221.2.4 Metodologia de realizare a experimentelor de simulare(Metodologia simularii) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23;(• Utilitatea simularii, p.26)

1.3. Generalitati despre limbajul GPSS. . . . . . . . . . . . . . . . . . . . . .27(• Entitatile limbajului GPSS, p.27;• Structura instructiunii GPSS, p.29)1.3.1 Exemple de programe GPSS . . . . . . . . . . . . . . . . . . . . . . . . . . 33(• E1. Model de simulare pentru un sistem de asteptarecu o statie, p.33; • E2. Model de simulare pentru un sistemde asteptare cu statii paralele, p.33; • E3. Model cu statiiparalele si preferinte, p.34; • E4. Un model cpmplex, p.35)

Cap 2. Numere aleatoare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.1 Notiuni introductive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39(• Repartitia uniforma, p.40)

2.2 Necesitatea simularii numerelor aleatoare . . . . . . . . . . . . . . . . 422.3 Metode congruentiale liniare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442.4 Alti generatori de numere aleatoare uniforme . . . . . . . . . . . . 47(• Generatorul aditiv congruential sau Fibonacci decalat, p.48;• Generatorul congruential inversiv, p.48;• Generatorul matricial congruential, p.49;• Generatori bazati pe registre de deplasare, p.49;

Page 5: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

4

• Amestecarea de generatori, p.49)Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Cap.3. Simularea variabilelor neuniforme . . . . . . . . . . . . . . . . .533.1 Metoda inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.2 Metoda compunerii sau amestecarii . . . . . . . . . . . . . . . . . . . . . . 553.3 Metoda respingerii. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .593.4 Alte metode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.4.1 Simularea repartitiilor inrudite cu repartitia normala . .72(• Familia de variabile de tip Johnson, p.74)

3.5 Simularea unor variabile aleatoare particulare . . . . . . . . . . . .743.5.1 Repartitia exponentiala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.5.2 Repartitia Gama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

(• O metoda de compunere-respingere pt. cazul 0 < ν < 1,p.76;• Metode pentru simularea variabilei Gamma(0, 1, ν), ν > 1, p.79)3.5.3 Repartitia Beta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.5.4 Repartitia normala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84(• O metoda de compunere-respingere, p.84)(• Metoda polara, p.86)

3.6 Simularea unor variabile discrete. . . . . . . . . . . . . . . . . . . . . . . . .883.6.1 Simularea unor repartitii bazate pe probe Bernoulli . . . 89(• Repartitia binomiala, p.89; Repartitia Pascal, p.91;• Repartitia geometrica, p.91)3.6.2 Repartitia hipergeometrica . . . . . . . . . . . . . . . . . . . . . . . . . . . 923.6.3 Repartitia Poisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3.7 Validarea generatorilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95(• Constructia histogramei, p.95; • Testul χ2,p.99;• Un test simplu, p.99)

Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Cap.4. Simularea vectorilor aleatori 1034.1 Generalitati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034.2 Simulartea vectorilor uniformi . . . . . . . . . . . . . . . . . . . . . . . . . . 1074.3 Simularea vectorilor normali . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109(• O metoda speciala, p. 112)

4.4 Simularea repartitiei Cauchy multidimensionale . . . . . . . . .1134.5 Simularea repartitiei multinomiale . . . . . . . . . . . . . . . . . . . . . . 114

Page 6: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

5

4.6 Simularea repartitiei Dirichlet . . . . . . . . . . . . . . . . . . . . . . . . . . 115Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Cap. 5. Simularea proceselor stochastice . . . . . . . . . . . . . . . . 1215.1 Generalitati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215.2 Lanturi si procese Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225.3 Simularea unui lant Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245.4 Simularea unor procese gaussiene particulare . . . . . . . . . . . 1255.4.1 Procesul gaussian cu functie de autocorelatie exponentiala1265.4.2 Procesul gausian cu functie de autocorelatie liniarap. 126(• Simularea procesului de zgomot alb pur, p.128)

5.5 Simularea procesului Poisson,. . . . . . . . . . . . . . . . . . . . . . . . . . .129

Cap. 6. Metoda Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.1 Generalitati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.1.1 Calculul integralelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

6.2 Metoda Monte Carlo bruta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1346.3 Metode de reducere a dispersiei. . . . . . . . . . . . . . . . . . . . . . . . .1366.3.1 Metoda Monte Carlo dupa importanta . . . . . . . . . . . . . . .136(•• Observatii, p.137)6.3.2 Metoda variabilei de control . . . . . . . . . . . . . . . . . . . . . . . . . 1396.3.3 Metoda variabilelor corelate . . . . . . . . . . . . . . . . . . . . . . . . . 1406.3.4 Metoda variabilelor antitetice . . . . . . . . . . . . . . . . . . . . . . . .1406.3.5 Metoda selectiei stratificate . . . . . . . . . . . . . . . . . . . . . . . . . .1416.3.6 Reducerea dimensiunii de integrare . . . . . . . . . . . . . . . . . . 142

6.4 Rezolvarea unor ecuatii operatoriale . . . . . . . . . . . . . . . . . . . . 1436.4.1 Rezolvarea sistemelor de ecuatii liniare . . . . . . . . . . . . . . 1436.4.2 Rezolvarea ecuatiilor integrale . . . . . . . . . . . . . . . . . . . . . . . 145

6.5 Rezolvarea ecuatiilor cu derivate partiale . . . . . . . . . . . . . . . 148Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152(G6.4 Problema lui Buffon, p.154)

Cap. 7. Cateva modele de simulare . . . . . . . . . . . . . . . . . . . . . . 1577.1 Generalitati despre modelele de asteptare . . . . . . . . . . . . . . . 1577.1.1 Procese de nastere si deces . . . . . . . . . . . . . . . . . . . . . . . . . . 159(• Teorema de baza, p.159)7.1.2 Calculul unor caracteristici ale modelului de asteptare162

7.2 Simularea unui sistem cu o statie . . . . . . . . . . . . . . . . . . . . . . . 162

Page 7: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6

7.2.1 Modelul cu ceas variabil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627.2.2 Modelul cu ceas constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1657.2.3 Validarea modelului cu o statie . . . . . . . . . . . . . . . . . . . . . . 167

7.3 Simularea unui sistem cu N statii paralele . . . . . . . . . . . . . . 170(• Validarea modelului cu N statii paralele, p. 171)

7.4 Modele de simulare pentru stocuri . . . . . . . . . . . . . . . . . . . . . . 1747.4.1 Introducere in teoria matematica a stocurilor . . . . . . . . 1747.4.2 Modele deterministe pentru stocarea unui produs . . . . 177(• Modelul clasic al lotului economic, p.177;• Modelul clasic al lipsei de stoc, p.179)7.4.3 Modele de simulare particulare . . . . . . . . . . . . . . . . . . . . . . 181(• Primul model, p.181;• Al doilea model, p.184)

Exercitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

Bibliografie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189

Page 8: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

Cap. 1

Generalitati despre simulare

1.1 Introducere

Cuvantul simulare este de origine latina si inseamna capacitatea dea reproduce ceva.In informatica, termenul de simulare a fost intro-dus de John von Neumann la inceputul anilor ‘40, odata cu aparitiaprimelor calculatoare electronice.J.von Neumann impreuna cu grupulde savanti de la Scoala Los Alamos (Ulam, Metropolis, etc) au dez-voltat primele aplicatii ale calculatoarelor. Tot ei au introdus cuvinteleCercetari operationale (pentru a desemna aplicatiile legate de dirijareaoperatiilor militare pe arii geografice mari ale globului pamnantesc!)precum si metoda Monte-Carlo (pentru a desemna aplicatii ale calcu-latoarelor bazate pe utilizarea numerelor aleatoare). In acceptiuneaactuala a informaticii, simularea cuprinde o serie de aplicatii care real-izeaza imitarea comportamentului unor parti ale lumii reale (simulareastochastica), luand in considerare si comportamentul aleator al aces-teia.Din domenul simularii face parte si metoda Monte Carlo.

Lucrarea de fata trateaza simularaea sub acest aspect general, pornindde la urmatarea definitie mai putin formalizata [10].

Definitia 1.1 Simularea este o tehnica de realizare a experimentelorcu calculatorul, care implica utilizarea unor modele matematice si logicecare descriu comportarea unui sistem real (sau a unor componente alesale) de-alungul unor perioade mari de timp.

Deci simularea se realizeaza pe baza unui model special, numit model

7

Page 9: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

8 CAP. 1. GENERALITATI DESPRE SIMULARE

de simulare, cu ajutorul caruia se realizeaza experimentele prin inter-mediul calculatorului. Modelul de simulare se construieste pe scheletulunui model matematic si se finalizeaza intr-un algoritm. De aceea incele ce urmeaza vom prezenta schema generala a unui model de sim-ulare, pornind de la descrierea principalelor elemente ale unui modelmatematic.

• Model matematic. Prin definitie, un model [10] este un ana-log ce reprezinta o parte a lumii inconjuratoare intr-un mod usor deperceput de catre noi. Modelul ne reprezinta uneori realitatea prinscheme, figuri geometrice sau alte obiecte ce ne sunt familiare si pecare le intelegem usor (i.e. la fel de bine cum le ”vedem” sau le”pipaim”). Modelul matematic ne reprezinta realitatea folosind ele-mente sau abstractiuni matematice.

Elementele constitutive ale unui model matematic sunt urmatoarele[10]:

a) Variabile (V ) si Parametri (P ) care pot fi de intrare (V I, P I),daca pot fi percepute (masurate sau intelese usor), sau de iesire(V E, PE), daca dimpotriva, masurarea sau perceperea lor este dificila.Variabilele si parametri pot lua valori numerice sau logice. Deosebireadintre variabile si parametri consta in aceea ca parametrii nu isi schimbavalorile pe perioade mari de timp, in timp ce variabilele isi schimba val-orile chiar pe intervale mici de timp. Scopul modelului este de a exprimavariabilele si parametri de iesire in functie de variabilele si parametri deintrare, cu eventuala satisfacere a unor conditii de performanta de catresistem (de ex. conditii de optim). Unele V I pot fi aleatoare, caz in caresi unele variabile sau parametri de iesire vor fi de asemenea aleatoare.

b) Relatiile functionale constituie o alta categorie de elemente aleunui model matematic. Ele sunt de forma

Fi(V I, P I, V E, PE) = 0

(adica implicite) si pot fi la randul lor de doua tipuri:- ecuatii, care sunt satisfacute numai de anumite valori ale vari-

abilelor sau parametrilor, si ;- identitati, care sunt satisfacute de orice valori ale variabilelor si

parametrilor; ele exprima conditii de echilibru sau legi de conservare.

Page 10: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.1. INTRODUCERE 9

Ecuatiile si identitatile pot fi relatii algebrice sau transcendente,diferentiale sau integrale, detrministe sau stochastice, etc.

c) Caracteristicile operative constituie o alta categorie de elementece compun un model matematic si ele pot fi:

- ipoteze de lucru (referitoare la relatiile functionale);- ipoteze statistice (referitoare la VI-aleatoare).

d) Tehnica de rezolvare este un alt element constitutiv al unui modelmatematic. Ea este o tehnica matematica ce realizeaza separarea ele-mentelor de iesire in functie de elementele de intrare, adica:

(V, P )E = fj(VI , PI).

Cu alte cuvinte, tehnica de rezolvare a modelului exprima sub formaexplicita variabilele si parametri de iesire in functie de variabilele siparametri de intrare.

Tehnicile matematice de rezolvare a modelelor sunt insa sarace atatca varietate cat si ca performanta. De exemplu, ecuatiile modelului sepot reazolva numai daca sunt liniare sau uneori patratice, iar daca suntde grad superior ele se pot rezolva numai daca au forme particulare.La fel, ecuatiile diferentiale sau cu derivate partiale se pot rezolva cumetode matematice deductive numai in anumite cazuri particulare. Deaceea in constructia modelelor matematice se fac de multe ori ipotezesimplificatoare care permit aplicarea tehnicilor de care dispune matem-atica. (Acesta este scopul utilizarii de catre model a caracteristiciloroperative!). Din aceste motive, modelarea matematica este aproxima-tiva si ea nu permite rezolvarea realista a problemelor practice. Uti-lizarea calculatorului permite imbunatatirea performantelor modelelormatematice prin utilizarea metodelor numerice. Dar si in aceste condi-tii modelele matematice nu pot descrie corect realitatea in toata com-plexitatea ei deoarece nu toate relatiile dintre obiectele lumii reale sepot exprima prin formule matematice. Intr-o atare situatie modelulmatematic trebuie completat cu descrieri care sa imite anumite com-portari ale lumii reale. Acestea se realizeaza prin descrieri algoritmicede tipul if-then-else- sau if-then- combinate cu alte structuri algo-ritmce (cicluri,secvente, etc.). In acest fel, modelul matematic se com-pleteaza si extinde sub forma de algoritm si devine model de simulare.Simularea mareste deci mult posibilitatea de tratare realista

Page 11: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

10 CAP. 1. GENERALITATI DESPRE SIMULARE

a problemelor aplicative. Constructia unui model de simulare, carein fapt este un algoritm complex, dezvoltat pe scheletul unui modelmatematic, este o sarcina nu prea usoara; o vom trata mai jos.

• Clasificari ale modelelor matematice. Mai intai sa vedeminsa cum pot fi clasificate modelele matematice?

(i). Clasificarea modelelor matematice dupa natura variabilelor uti-lizate de model: continue/discrete; statice/dinamice (daca timpulnu intervine sau daca apare explicit ca variabila a modelului); determin-iste/stochastice (dupa cum nu contine sau contine macar o variabilade intrare ca variabila aleatoare).

(ii). Clasificare topologica, dupa structura determinata de partile incare se descopune modelul (cand este cazul): cu o componenta/ cu maimulte componente in serie , in paralel, in retea. (Tipurile demodele scrise cu caractere ingrosate sunt importante caci sunt realistesi se construiesc cu dificultate. Modelele de simulare sunt de acestetipuri).

Un model, fie el matematic sau de simulare, constitue de fapt oclasa de modele.

Pentru a ilustra caracteristicile componente ale unui model matem-atic vom da un exemplu.

Exemplul 1.1 [10,11]. Sistemul de asteptare este o parte alumii reale in care se produc aglomerari. Un astfel de sistem constadin una sau mai multe statii de serviciu care servesc (dupa anumite reguli) clienti care sosesc in sistem. Daca sosesc multi clienti si statiile deservire nu pot sa-i serveasca repede, atunci se formeaza cozi de asteptarein sistem. Proprietarul sau administratorul sistemului trebuie sa diri-jeze sistemul astfel incat nici clientii sa nu astepte mult pana primescserviciul, dar nici statiile de serviciu sa nu leneveasca prea mult, cacilenevirea lor aduce pierderi administratorului sistemului.

Modelarea matematica a sistemelor de asteptare are deci ca scop re-alizarea unui echilibru intre pierderile cauzate clientilor prin asteptari sipierderile cauzate administratorului prin leneviri. Modelele matematicede acest tip sunt cunoscute sub numele de teoria matematica a cozilorsau teoria asteptarii. Ele sunt utilizate in diverse situatii practice: incomert, in managementul sistemelor de comunicatii si de transport,

Page 12: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 11

dar si in dirijarea si controlul functionarii in timp real a retelelor decalculatoare.

Un model de asteptare contine de regula urmatoarele elemente:

Variablele de intrare (cunoscute) VI: AT = timp de intersosire(al clientilor); ST = timp de serviciu al unui client ( caracteristicaa statiilor); aceste variabile sunt de regula aleatoare, fapt ce marestedificultatea modelarii. Sosirile se pot masura si prin NA = numar declienti sositi pe unitatea de timp iar serviciile se pot masura si prinNS =numar de clienti serviti pe unitatea de timp. Acestea sunt decivariable aleatoare discrete.

Variabilele de iesire (necunoscute) V E sunt: WT = timp de asteptare(sau WL= lungimea cozii, variabila discreta);

TID = timp de lenevire (sau NID= numarul de statii de servirecare lenevesc, variabila discreta);

Scopul modelului: cunoscand repartitiile de probabilitate ale lui ATsi ST sa se determine informatii despre WT (WL) sau TID (NID) sisa se stabileasca cum trebuie sa se realizeze ST astfel incat o anumefunctie de eficienta ( sau cost) sa fie optima sau convenabila pentruadministratorul sistemului.

Constructia modelelor de simulare se bazeaza pe studierea (in functiede ipotezele facute asupra variabilelor de intrare AT, ST ) a procesuluistochastic discret N(t) = numarul de clienti in sistemul de asteptarela momentul de timp t. Acest proces este proces de nastere si deces.Nu vom studia aceste procese deocamdata. (Acest lucru va fi facut inultimul capitol!). Vom prezenta mai intai constructia unui model desimulare.

1.2 Constructia unui model de simulare

Modelul de simulare (MS) presupune utilizarea calculatorului si else construieste pe baza/scheletul unui model matematic; mai precis elcompleteaza modelul matematic descriind unele relatii prin algoritmi,deci in final MS este un algoritm. Acest algoritm trebuie sa descriecorect evolutia sistemului si sa permita efectuarea de experiente (prinrulari pe calculator), care sa inlocuiasca experientele ce ar trebui real-izate asupra sistemului real.

Page 13: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

12 CAP. 1. GENERALITATI DESPRE SIMULARE

1.2.1 Structura unui model de simulare

Constructia unui MS utilizeaza doua concepte de baza: ceasul simu-larii si agenda simularii

• Ceasul simularii. Ceasul asigura esalonarea corecta in timp aevenimentelor create de model si uneori ajuta la implementarea conditieide terminare a simularii. El este de doua feluri:

a) ceas cu crestere constanta;

b) ceas cu crestere variabila;

Nota: Evenimentele corespund unor modificari in sistem adicamodificari ale valorilor unor variabile care se calculeaza sau se genereazaprin instructiuni ale modelului (chiar si daca sunt aleatoare!).

In Figura 1.1 sunt prezentate cele doua modalitati de crestere aceasului. Ceasul porneste cu valoarea zero la inceputul simularii. Dacamodelul se bazeaza pe ceasul cu crestere variabila, atunci ceasul estecrescut cu valoarea ce corespunde aparitiei primului eveniment urmator;apoi programul prelucreaza evenimentul , dupa care ceasul creste dinnou reluandu-se ciclul simularii, pana cand ceasul atinge o valoare datainitial, Tmax care corespunde perioadei pe care se realizeaza simularea.

Ceasul cu crestere constanta presupune ca de fiecare data cresterease realizeaza cu o cuanta de timp c constanta; apoi se prelucreaza toateevenimentele aparute pe intervalul de timp de lungime c, dupa carese reia ciclul simularii. Simularea se termina de asemenea cand ceasulatinge valoarea Tmax.

Terminarea simularii se poate realiza si impunand conditia ca mo-delul sa prelucreze un anumit numar dat de evenimente de un tip pre-cizat. (De exemplu, in cazul unui model de simulare a unui sistem deasteptare, se poate impune conditia ca simularea sa se termine cand s-asimulat servirea unui numar dat de clienti).

Page 14: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 13

T1 T2 T3 T4

c 2c 3c

E1 E2 E3 E4

E1 E2 E3 E4

c c c0

0

T

T

(a)

(b)

Fig. 1.1. Variatia ceasului.a) Cazul ceasului cu crestere variabila. Ti = valorile ceasului.b) Cazul ceasului cu crestere constanta c.

A ramas oarecum ne precizat ce se intelege prin prelucrarea unuieveniment.Acest fapt se intelege usor daca precizam si conceptul deagenda a simularii.

• Agenda simularii. Agenda se compune din elementele memo-rate de modelul de simulare. Variabilele modelului iau diverse valori peparcursul simularii; de aici rezulta ca pe parcursul simularii apar multeevenimente. Memorarea in totalitate a acestor evenimente, impreunacu caracteristicile lor, nu este nici recomandata dar nici necesara dacasimularea se realizeaza pe perioade mari de timp. De aceea, se memo-reaza (in agenda) numai ceea ce este strict necesar. Evenimentele suntde diverse tipuri; unele variabile descriu si stari ale sistemului (sau aleunor componente ale acestuia). Evenimentele sunt creiate sau gener-ate la momente de timp ulterioare valorii ceasului. De aceea agendase compune din doua parti: agenda evenimentelor curente AEC siagenda evenimentelor viitoare.

Deci agenda A = AEC ⊕AEV , unde:

AEC = agenda evenimentelor curente (care au timpul de aparitieegal cu valoarea ceasului); iar

AEV = agenda evenimentelor viitoare (care au timpul de aparitieulterior valorii curente a ceasului).

Algoritmul simularii prelucreaza deci numai evenimentele din AEC;prelucrarea unui eveniment inseamna fie determinarea aparitiei unuinou eveniment (ce se memoreaza in AEV ) sau modificarea unei stari,

Page 15: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

14 CAP. 1. GENERALITATI DESPRE SIMULARE

fie distrugerea unui eveniment (“stergerea”) lui din agenda. Prelucrarileevenimentelor tin seama si de starile sistemului la acel moment.

Algoritmul simularii gestioneaza/actualizeaza agenda prin interac-tiunea acesteia cu ceasul; intr-un ciclu al simularii ceasul este acualizat,dupa care se selecteaza din agenda A evenimentele care fac parte dinAEC si se prelucreaza aceste evenimente pana cand AEC devine vida.Atunci, ceasul este cresut din nou si se reia ciclul simularii. Deciagenda simularii se modifica pe parcursul simularii conform urmatoareirelatii de dinamica

A = A⊕ AEgen AEelim

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

sunt evenimentele eliminate cu ocazia prelucrarii AEC. (Semnele ⊕ si se autexplica).

Structura generala a unui MS este descrisa in schema logicadin Figura 1.2, pentru a carei intelegere este necesara si urmarireaschemelor ajutatoare din Fig. 1.3, a)-g). Descrierea structurii MS esteprezentata structurat.

In Figura 1.3 a) se prezinta schema logica generala a rutinei prin-cipale; MS este conceput ca un joc constituit din mutari. Se urmaresteca jocul sa conduca la o performanta a sistemului prin efectuarea amai multe mutari, fiecare mutare fiind aleasa astfel incat sa conducain final la satisfacerea jocului. In blocul central al Fig.1.3 a) (rutinaprincipala!) se executa ciclul de baza al simularii (interactiunea ceas-agenda!).Rutina de comutatie alege evenimentul ce urmeaza a fi pre-lucrat din AEC si transfera controlul la rutina eveniment care-l vaprelucra.

Rutina eveniment prelucreaza evenimente dupa schema:

A→ B, A........ > B

care inseamna ca A il detrmina sigur pe B, respectiv A il poate deter-mina pe B (cu o probabilitate); sau,

A→ /B, A..../...... > B

care inseamna ca A il distruge (elimina) pe B sigur, respectiv A ilpoate distruge pe B cu o probabilitate data. Prelucrarea evenimentului

Page 16: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 15

tine seama de regulile de prelucrare ale acelui tip de eveniment si destarea/starile sistemului.

SFARSIT

RUTINA PRINCIPALA

INCEPUT

COMUTATIE

RUTINA DE

TERMINATETOATE JOCURILE

JOC COMPLET

COMPLETAMUTARE

JOCREZUMATRUTINA

MUTAREREZUMATRUTINA

A MUTARIIINITIALIZARERUTINA DE

A JOCULUIINITIALIZARERUTINA DE

EVENIMENTRUTINAULTIMA

EVENIMENTRUTINAA DOUA

EVENIMENTRUTINAPRIMA

Fig. 1.2. Schema logica globala a unui program

de simulare bazat pe ceas cu crestere variabila.

Page 17: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

16 CAP. 1. GENERALITATI DESPRE SIMULARE

MUTAREREZUMAT

LA RUTINATRANSFER

a)

Da

Nu

COMUTATIE

LA RUTINA DETRANSFER

CLOCK > TMAX

CEASUL CLOCKREACTUALIZEAZA

EVENIMENT CURENTURMATOR IN

EVENIMENTULTRANSFORMA

DIN AEVEVENIMENT

ALEGE PRIMUL

Da

Nu

MENTE VIITOAREAGENDA DE EVENI-

EXISTA O

INTRARE LA

RUTINAREZUMATMUTARE

INTRARE DINRUTINA DE

INITIALIZAREA MUTARII

b)

PRINCIPALALA RUTINATRANSFER

SCRIE EFECTULACESTUI EVENIMENT

CU ACEST EVENIMENTCARE AU LEGATURA

STATISTICILEREACTUALIZEAZA

DE ACEST EVENIMENTEVENIMENTELE ANULATE

AGENDASCOATE DIN

IN AGENDA (AEV)SI LE MEMOREAZA

EVENIMENTE VIITOARENOILE

GENEREAZA

MODIFICA ELEMENTELEAFECTATE DE

ACEST EVENIMENT

COMUTATIERUTINA DE

INTRARE DIN

Fig. 1.3. Schemele logice ale rutinelor programului de simulare.

a) Rutina principala

b) Rutina eveniment

Page 18: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 17

JOCULUI

REZUMATULLA RUTINATRANSFER

c)

Da

PRINCIPALADIN RUTINA

INTRARE

REZUMATUL JOCULUISTATISTICILE PENTRU

REACTUALIZEAZA

Nu

A MUTARII

INITIALIZARELA RUTINA DE

TRANSFER

ESTE ULTIMAMUTARE ?

MUTARIIREZUMATELE

CALCULEAZA

SFARSIT

d)

Da

Nu

A JOCULUI

INITIALIZARELA RUTINA DE

TRANSFER

ESTEULTIMUL JOC ?

JOCULUIREZUMATELE

DETERMINA

MUTAREREZUMAT

DIN RUTINAINTRARE

Fig.1.3(continuare) Schemele logice ale rutinelor

programului de simulare.

c) Rutina rezumat mutare;

d) Rutina rezumat joc;

Page 19: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

18 CAP. 1. GENERALITATI DESPRE SIMULARE

ZATOARE

CORESPUN-EVENIMENTLA RUTINATRANSFER

e)

CURENTEVENIMENTULUI

DETERMINA TIPUL

PRINCIPALADIN RUTINA

INTRARE

PRINCIPAL

PROGRAMULLA

TRANSFER

f)

REZUMATUL MUTARIIINITIALIZEAZA

NECESARA MUTARIIINFORMATIA

JOCULUI INITIALIZEAZAFOLOSIND INFORMATIA

A JOCULUIINITIALIZARERUTINA DE

INTRARE DIN

A MUTARII

INITIALIZARELA RUTINA DE

TRANSFER

g)

REZUMATUL JOCULUIINITIALIZEAZA

NECESARA JOCULUIINFORMATIA

INTRARE

INCEPUT

Fig.1.3(continuare) Schemele logice ale rutinelor programului desimulare.

e) Rutina de comutatie;f) Rutina de initializare a mutarii;g) Rutina de initializare a jocului.

Page 20: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 19

1.2.2 Concepte de baza in modelarea sistemelor

Descrierea unui MS prezentata mai sus poate fi realizata intr-un cadruformal general folosind concepte din teoria matematica a sistemelor [8,12, 13].

Prin sistem [8] se intelege, sub forma cea mai vaga, o multime deobiecte O interconectate prin intermediul unei relatii R, adica Sis-tem= (O,R), unde

R ⊂ O ×O.Definitia formala generala a unui sistem este [8]:

Definitia 1.2 Un sistem este urmatoarea structura de multimi:

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

unde:T = timpul de baza al sistemului (ceasul sistemului);

X = multimea intrarilor;

Ω = multimea segmentelor de intrare (forma intrarilor!)segment= ω : (t0, t1) → X,=ω(t0,t1) = grafic= (t, ω(t)), t0 ≤ t ≤

t1.Se foloseste de regula notatia ω(t,t1) = (τ, ω(τ)), t < τ ≤ t1 si

notatiile ω = ω(t0,t1), ωt) = ω(t0,t), ω(t = ω(t,t1);ω = ωt)ω(t;

Σ = multimea starilor interne ale sistemului = memoria sis-temului;

Conceptul de stare este esential in modelarea sistemelor; el descriestructura interna (intima!) a sistemului;

δ = functia de tranzitie a starilor definita ca

δ : Σ× Ω → Σ.

Ea satisface relatia

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

care este axioma semigrupului sau proprietatea de separabilitate a starilor.Multimea (graficul) (ω, σ) se numeste traiectorie a starilor;

Page 21: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

20 CAP. 1. GENERALITATI DESPRE SIMULARE

Y =multimea iesirilor (Sistemul este presupus deschis, intrarilesi iesirile fiind exterioare sistemului).

Multimea Y contine raspunsul sistemului la intrarea de forma ωcand la momentul initial t0 sistemul sa afla in starea σ.

λ = functia de raspuns, de forma λ : Σ×X × T → Y ;λ(σ, x, t) conduce la un segment de iesire ce reprezinta forma raspun-

sului sistemului la intrarea x, la momentul t cand starea la momentulinitial t0, t0 < t, este σ.

Nota: din definitie rezulta ca pentru o stare initiala σ, (la momentult0) cand are loc intrarea de forma ω se realizeaza o traiectorie unica astarilor. Cu alte cuvinte, traiectoria starilor satisface relatiile:

STRAJσ,ω : (t0, t1) → Σ, a.i.STRAJσω(t0) = σ

STRAJσ,ω(t) = δ(σ, ωt)), ∀t ∈ (t0, t1).

Proiectia STRAJ obtinuta prin functia de tranzitie a starilor compusacu functia de raspuns, este traiectoria de iesire

OTRAJσ,ω : (t0, t1) → Y.

Daca λ = λ(σ) (iesirea depinde numai de σ) atunci rezulta relatiasimpla

OTRAJσ,ω(t) = λ(STRAJσ,ω(t)).

• Nivele de reprezentare a sistemelor. Exista mai multe nivelede reprezentare a sistemelor si anume [8]:• Reprezentarea la nivel de comportare. Sistemul este o cutie

neagra (black box), exprimat formal prin relatia

Rs = (ω, ρ)|ω ∈ Ω, ρ = OTRAJσ,ω, σ ∈ Σ .Acest nivel de reprezentare este cel mai vag. El descrie numai relatiilede intrare/iesire ce se pot observa dinafara sistemului (care deci secomporta ca o cutie neagra).

• Reprezentarea la nivel de structura de stare. La acest nivelse intra in structra interna (intima) a sistemului, adica se stabilescelementele acestuia : (T,X,Ω,Σ, Y, δ, λ) , definite ca mai sus.

Page 22: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 21

• Reprezentarea modulara (ca structura compusa). Daca sis-temul este complex, atunci se identifica subsisteme ale acestuia precumsi interconexiunile dintre ele in sensul ca iesirile unor subsisteme suntintari in alte subsisteme, intrarile unor subsisteme fiind intrari ale sis-temului si iesirile unor subsisteme fiind iesiri ale sistemului. Cele treinivele de reprezentare ale unui sistem sunt ilustrate grafic in Fig.1.4.

c)

b)

a)

BLACK BOX

ω2(t) δ2 λ2 ρ2(t)

ω1(t) δ1 λ1 ρ1(t) ω3(t) δ3 λ3 ρ3(t)S1(t) S3(t)

S(t)

S2(t)

ω(t) δ λ ρ(t)

ω(t) ρ(t)

RS = ω, ρ

ω(t) ρ2

Fig. 1.4. Descrierea sistemului

a) Sistem la nivel de comportare

b) Sistem la nivel de structura de stare

c) Sistem la nivel de structura compusa.

Nivelele de reprezentare a sistemelor, pornind de la forma cea maivaga si continuand pana la forma detaliata legitimeaza Metodologia

Page 23: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

22 CAP. 1. GENERALITATI DESPRE SIMULARE

”TOP DOWN” de proiectare a sistemelor de orice fel, in particu-lar, metodologia de proiectare a sistemelor informatice si in generalmetodologia de proiectare ierarhica, descendenta a programelor.

1.2.3 Modelul sistemului cu evenimente externe discreteModelul de simulare se incadreaza in categoria modelului de sistem

cu evenimente externe discrete (DEVS=Discrete EVent System), [8,12,13]. Acesta este un sistem particular de forma

SM = (XM , SM , YM , δM , λM , τM)

in care timpul T este considerat implicit iar elementele au urmatoareasemnificatie:

XM = multimea (discreta) de evenimente externe; (intelegem eveni-mentele ca niste entitati oarecari);

SM = multimea secventelor discrete de stari interne pe care le potparcurge evenimentele externe cand acestea intra in sistem;

YM = multimea iesirilor, sau raspunsurilor sistemului;δM = functia de quasi-tranzitie exprimata prin doua componente:δ∅M : SM → SM care spune ce stari parcurg evenimentele externe

cand nu gasesc alte evenimente intrate in sistem;δexM : XM × SM × T → SM -adica δex

M (x, s, e) care spune cum setransforma starea cand intra in sistem x, daca starea initiala era s sidaca e este timpul scurs de la aparitia ultimei tranzitii de stare;

λM = functia de iesire (de raspuns), λM : SM → YM , λM(s) ∈ YM ;τM = functia de intarziere (decalaj), τM : SM → R+, care spune cat

intarzie sistemul in starea s (intarzierea este τM (s));

Sa aratam acum de ce SM este un sistem in sensul general definitmai sus.

SM este un S = (T,X,Ω,Σ, Y, δ, λ) deoareceT = [t0,∞), t0 − initial si el este subinteles in mod implicit;X = XM

⋃ ∅; (∅ = nu este eveniment);Ω = multimea segmentelor; segmentele sunt secvente discrete, finite

de evenimente asociate cu momentele (ordonate) de timp cand acesteaintra in sistem;

Σ = multimea starilor,adica

Σ = (s, e)|s ∈ SM , 0 ≤ e ≤ τM (s) .

Page 24: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 23

δ se construieste din δM astfel

δ : Σ×X → Σ;

δ(s, e, ∅) = (s, e) ∈ Σ, daca e < τM(s)

δ(s, τM(s), ∅) = (δ∅M(s), τM(s))

δ(s, e, x) = (δexM (x, s, e), e);

Functia de iesire este λ = λM .

O formalizare a teoriei modelelor de simulare discreta se gaseste incartile lui ZEIGLER [12,13].

Ea poate servi ca metodologie de constructie a modelelor de simularesi conduce la constructia modelelor de simulare OO (=OrientateObiect), [13].

1.2.4 Metodologia de realizare a experimentelor de simu-lare (Metodologia simularii), [10, 11].

Etapele realizarii unui experiment de simulare sunt:

10 Formularea problemei, care consta in a preciza intrebarile lacare trebuie sa raspunda modelul si a preciza domeniul lumii reale cetrebuie analizat. Aici se precizeaza si forma raspunsului la intrebari(de ex. daca se vor produce grafice, tabele sau chiar texte scrise).

20 Realizarea unor experimente preliminare; in aceasta etapase stabilesc, pe baza observatiilor sau datelor culese din lumea reala,sau existente, referitoare la aceasta (istorice), variabilele si parametrisi care din acestea sunt de intrare sau de iesire.

30 Prelucrarea (interpretarea) primara a datelor prelim-inare; acum se disting variabilele aleatoare, se estimeaza parametri sise testeaza ipoteze statistice. (Statistica matematica joaca un rol im-portant in simulare).

40 Formularea unui model matematic preliminar, incom-plet; in aceasta etapa se precizeaza relatii functionale, ipoteze de lucru(care sa concorde cu datele existente, colectate) si se indentifica cerelatii nu pot fi exprimate matematic si care sunt dificultatile ce artrebui inlaturate pentru a raspunde la intrebarile formulate.

Page 25: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

24 CAP. 1. GENERALITATI DESPRE SIMULARE

50 Evaluarea modelului (etapa de decizie!); se urmareste sa seevalueze complexitatea modelului, daca el poate raspunde in timp realsi complet la intrebari; in aceasta etapa se pot eventual reizui unele dinetapele precedente facandu-se simplificari sau completari ale modeluluimatematic propus.

60 Constructia modelului de simulare (sub forma de algo-ritm detaliat); modelul se construieste conform celor precizate anteriorurmarindu-se ca el sa fie general. La constructia algoritmului simulariise va avea in vedere si cum se va realiza programarea: intr-un lim-baj evoluat sau int-un limbaj specializat de simulare. Exista unnumar mare de limbaje de simulare toate avand la baza, mai mult saumai putin, filozofia DEVS. Un astfel de limbaj (ce va fi prezentat insectiunea urmatoare) este GPSS= General Purpose Simulation System[1, 14]. O versiune romaneasca a acestui limbaj este SIMUB (limbajulde SIMulare al Universitatii din Bucuresti) si el a fost implementat lasfarsitul anilor ‘70 pe sistemele de calcul FELIX C-256 de cercetatoriai Centrului de calcul al Universitatii din Bucuresti (CCUB).

In anii ‘60-70 au fost construite [10] si implementate multe limbajede simulare pentru sistemele de calcul de generatia a III-a.

Printre limbajele de simulare introduse atunci mentionam limba-jul SIMULA, care introduce conceptul de clasa pentru a desemna omultime de obiecte ale unui program care au anumite proprietati sicare se supun unui tratament comun; acest concept a generat pe celde obiect si este deci premergator programarii orientata spere obiecte.Un alt limbaj, care se baza de fapt pe o subrutina complexa FOR-TRAN, ce putea fi combinata cu alte subprograme in acest limbaj sicare prezinta din aceasta cauza multa flexibilitate in scrierea de pro-grame de simulare este limbajul GASP IV; o versiune a acestui limbaj,numita GASP-SIMPATIC a fost implementata la inceputul anilor ‘80pe sistemele de calcul FELIX C-256 si pe minicalculatoarele CORALsi INDEPENDENT, de catre cercetatori ai CCUB.

Limbajele de simulare sunt atat limbaje de programere cat si instru-mente care faciliteaza constructia modelelor de simulare. Utilizand unastfel de limbaj, analistul-programator va fi scutit de grija constructieiinstrumentelor specifice simularii (organizarea agendei, manipularea sicontrolul ceasului al AEC sau AEV, etc.), el putandu-se astfel con-centra numai asupra definirii elementelor specifice sistemului pe care-l

Page 26: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 25

modeleaza (tipurile de evenimente, componentele si starile sistemului,definirea raspunsurilor la intrebari, etc).

Avantajele utilizarii limbajelor de simulare: modelele se con-struiesc rapid, experimentele de simulare se realizeaza repede (suntexperiente artificiale ce nu au nevoie de scurgerea timpului fizic pen-tru a fi observate). Dezavantajele constau in faptul ca modelele desimulare realizate in limbaj specializat sunt supuse unor restrictii de-terminate de posibilitatile limitate ale acestora.

De regula modelele de simulare genereaza valori ale variabilelor deintrare si produc selectii statistice de valori asupra variabilelor de iesire.Pentru formularea raspunsurilor la intrebari ar trebui prelucrate in modcat mai evoluat aceste selectii. Limbajele de simulare nu dispun deregula de astfel de facilitati, mai ales presupunand (ceea ce este un faptreal!), ca valorile de selectie produse de simulare nu sunt independentestochastic.

Avantajele modelelor dezvoltate in limbaje evoluate sunt:acuratetea rezulatelor, flexibilitatea modelelor (adica pot fi extinse cunoi tehnici numerice de calcul, pot fi mai generale, etc). Dezavan-tajele constau in faptul ca se constriuesc mult mai greu (utilizatorultrebuie sa implementeze tehnicile de manipulare a ceasului si de ges-tionare a agendei).

70 Validarea modelului este de asemenea o etapa importanta. Inafara de validarea formala (testare sintactica si logic-formala a pro-gramului), trebuie sa se decida daca modelul rezolva corect prob-lema formulata. Acest lucru se realizeaza prin compararea rezultatelorsimularii fie cu rezultate practice cunoscute, fie prin compararea cusolutia obtinuta cu ajutorul unui model matematic. (De ex.in teoriacozilor se cunoaste soultia matematica a modelului in anumite ipotezerestrictive; se va obtine solutia prin simulare pe baza unei selectii devolum mare a variabilelor de iesire. Daca solutia simulata se apropiede solutia matematica, atunci, in virtutea legii numerelor mari, rezultacorectitudinea modelului de simulare, acesta fiind deci valid si in ipotezediferite de cele cosiderate la validare).

80 Planificarea experientelor de simulare este urmatoarea etapanecesara. Asa cum am precizat, simularea este un experiment real-izat cu calculatorul pe baza unui model ce descrie sistemul real. Orice

Page 27: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

26 CAP. 1. GENERALITATI DESPRE SIMULARE

experiment (cu caracter statistic ca in cazul simularii) trebuie sa sedesfasoare pe baza unui plan experimental. Pentru planificarea exper-imentelor de simulare se folosesc metode ale statisticii matematice(asa zisele experimental design).

90 Prelucrarea si interpretarea experientelor de simulareeste o etapa la fel de importanta ca si cele precedente. Programul desimulare rulat pe calculator produce de regula valori de selectie asupravariabilelorde iesire, dar care nu definesc selectii statistice in sensulobisnuit (nu sunt selectii bernouliene deoarece valorile de selectie suntde regula dependente). De aceea prelucrarea experimentelor de simu-lare se face cu mijloace statistice din cele mai sofisticate (prelucrareaseriilor dinamice). Toate limbajele de simulare poseda un minim defacilitati pentru prelucrari statistice simple (calcule de medii, dispersii,coeficienti de corelatie, histograme, etc,).

• Utilitatea simularii. Orice sistem complex, se proiecteaza pebaza simularii. Alegerea parametrilor de proiectare se realizeaza (caintr-un joc!) pe baza unor experiente bazate pe modelul de simulare.Aceste experiente sunt mult mai putin costisitoare decat cele reale.

Cand experientele reale sunt costisitoare este intotdeauna recomand-abil ca experientele sa se realizeze prin simulare. (De exemplu, inaintede aconstrui un baraj, mai intai simulam comportarea lui pentru aalege cea mai buna varianta de proiectare si constructie).

In anumite situatii practice experientele dureaza mult si de aseme-nea este nevoie sa se recurga la simulare.(De exemplu simularea du-ratei de viata a unei comete se realizeaza cu modelul de simularein cel mult cateva minute sau zeci de minute). Experientele legatede fiabilitatea sistemelor se realizeaza de asemenea mai degraba prinsimulare.

Cand se construiesc sisteme mari noi, ne mai intalnite se efectueazamai intai simularea lor. (De exemplu zborurile interplanetare, sis-temele hidroenergetice mari cu implicatii ecologice, etc. se proiecteazape baza unor variante alese cu ajutorul simularii).

Cand se proiecteaza politici complexe de dezvoltare economico-socialade asemenea se utilizeaza simularea. (De exemplu sistemele de productiecomplexe, politicile de dezvoltare regionala, proiecte macroeconomice,evolutia mediului ambiant,etc).

Page 28: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.3. GENERALITATI DESPRE LIMBAJUL GPSS 27

Simularea joaca un rol important in dezvoltarea tehnologiei GRIDun domeniu nou al informaticii in plina dezvoltare, care se bazeaza atatpe simulare cat si pe pe calcul performant, pe inteligenta artificiala, peretele de comunicatie, etc.

1.3 Generalitati despre limbajul GPSS

Limbajele de simulare sunt in acelas timp limbaje de programaresi limbaje de modelare; ele implementeaza elementele esentiale alesimularii: manipularea ceasului si gestionarea memoriei. Utiliza-torul are numai grija descrierii evenimentelor si a prelucrarii lor.

Programele in limbaj de simulare sunt mai scurte dar si mai putinflexibile. Sunt limitate in privinta prelucrarii si interpretarii experi-mentelor de simulare.

Vom face o foarte scurta prezentare a limbajului GPSS (GeneralPurpose System Simulator), urmand ca cititorul interesat sa recurgala un manual detaliat sau sa foloseasca facilitatea help existenta inimplementarea GPSS/PC [1, 14]. Acest limbaj a fost dezvoltat pentruprima data de firma IBM la inceputul anilor ’60.

• Entitatile limbajului GPSS. Limbajul GPSS se compune din16 tipuri de entitati (elemente de abstractizare).

La fiecare entitate se asociaza un numar de proprietati sau atributein majoritatea lor adresabile intern (de catre GPSS), dar unele suntadresabile si de catre utilizator;

Atributele sunt:standard numerice (numere) sau standard lo-gice (valori logice);

Entitatile de baza sunt:1) Blocuri (entitati care descriu activitati);2) Tranzactii (elemente circulante);ele sunt creiate (printr-un bloc

special GENERATE) si circula prin model (sistem!), ca urmare a actiuniialtor blocuri. Blocurile au asociate caracteristici numerice sau logice siposeda argumente necesare descrierii activitatilor. Tranzactiile posedaun numar de parametri standard dar si psrametri introdusi de utiliza-tor. Prin programul de simulare utilizatorul poate accesa parametriitranzactiilor.

Page 29: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

28 CAP. 1. GENERALITATI DESPRE SIMULARE

Entitati de echipament:3) Statii de serviciu sau facilitati; (ele corespund subsistemelor

cu o componenta care trateaza de regula o singura tranzactie!);4) Multistatii de serviciu sau depozite; acestea trateaza de regula

mai multe tranzactii (de ex. liftul, autobuzul, pot transporta mai multiclienti considerati ca tranzactii, etc!);

5) Comutatorii logici sunt variabile logice care permit utiliza-torului sa realizeze ramificarea dupa dorinta a fluxului de executie inprogramul de simulare.

Entitati de calcul ce permit efectuarea (limitat!) a unor calcule:6) Variabile aritmetice; permit evaluarea unor expresii aritme-

tice, iar rezultatul este memorat de o variabila aritmetica;7) Variabile booleene; permit evaluarea unor expresii booleene,

iar rezultatul este memorat de o variabila booleeana;8) Functii descrise prin tabele sau prin segmente de dreapta (liniare

pe portiuni);

9) Functii analitice descrise prin expresii mai complicate; (eleexista numai in SIMUB si au rolul de a facilita simularea diverselorvariabile aleatoare prin metoda inversa);

Entitatile statistice, permit colectarea unor statistici sau estima-tii privind VE sau PE; printre acestea se remarca :

10) Cozile care sunt entitati statistice ce memoreaza tranzactiileintarziate in sistem;

11) Tabele de frecvente care descriu histograme ale VE;

12) Tabele de frecventa bidimensionale, sau tabele de contin-genta; (acestea sunt disponibile numai in SIMUB);

Entitati de referinta care memoreaza anumite informatii pe carele doreste utilizatorul si anume:

13)Cuvinte de salvare care memoreaza valori ce corespund cateunui cuvant de memorie al calculatorului;

14) Matrice de cuvinte de salvare care memoreaza matrici;

Entitati de tip lant,care sunt de doua tipuri:15) Lanturi ale utilizatorilor in care se pot depune sau scoate

tranzatii dupa dorinta utilizatorului; (Exista si lanturi ale sistemului,manipulate intern de catre GPSS, care nu pot fi accesate de utilizator).

Page 30: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.3. GENERALITATI DESPRE LIMBAJUL GPSS 29

16) Grupuri care separa tranzactii (cu anume scopuri de prelu-crare dorite de utilizator, sau cu anumite proprietati).

NOTA. Toate entitatile trebuie definite/identificate si declarate decatre utilizator la inceputul programului. Pentru fiecare entitate sealoca memorie; la instalarea limbajului se aloca si un numar maximde entitati care se pot utiliza intr-un program.

Entitatile se invoca prin instructiuni cu structura fixa. (Limbajuleste un interpreter).

Limbajul permite descrierea modulara a unui model de simularegeneral (vezi schema generala 1.1); cel mai important este modululprincipal (ciclul de baza). Iesirile sunt standard; se afiseaza/scriuvalori ale atributelor, statistici, tabele de frecventa, etc.

Limbajul GPSS este un interpreter, ceeace inseamna ca fiecareinstructiune scrisa corect (si recunoscuta ca atare de catre GPSS) seexecuta imediat.

• Structura instructiunii GPSS. Instructiunea GPSS are un for-mat fix (vezi Figura 1.5).

1) Blocurile descriu actiuni (sunt entitati active spre deosebire detranzactii care sunt entitati pasaive, in sensul ca ele sunt miscate prinmodel ca urmare a actiunii blocurilor.

Nume simbolic Numele blocului Argumente/parametri(Eticheta) (Cunant cheie) (separate prin virgula)

Optional Verb imperativ care A,B,C,...pt.referiri desemneaza actiunea blocului

Fig 1.5. Structura instructiunii GPSS.

Tipurile de blocuri sunt:

1a) Blocuri de actiune: SEIZE/RELEASE (tranzactia curenta ocupasau elibereaza o facilitate); PREEMPT (tranzactia intrata in acest blocpoate ocupa o statie de serviciu indicata de parametrul-argument sau opoate prelua daca este ocupata de alta tranzactie); ENTER/LEAVE(ocupa sau elibereaza o pozitie dintr-o multistatie); QUEUE/DEPART(intra in coada sau pleaca din coada); LINK/UNLINK (introduce sau

Page 31: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

30 CAP. 1. GENERALITATI DESPRE SIMULARE

scoate tranzactia dintr-un lant al utilizatorului); SPLIT (descompunetranzactia in mai multe tranzactii care formeaza o familie); ASSEM-BLE/GATHER (unifica tranzactiile dintr-o familie fara, sau cu pastrareaatributelor de baza din familie); MATCH (sunt 2 blocuri conjugate;ele sincronizeaza deplasarea tranzactiilor care intalnesc aceste blocuri);ADVANCE (intarzie tranzactiile; simuleaza de ex. durata de ser-viciu a tranzactiei); BUFFER (inseamna prelucrarea tranzactiilor inordinea prioritatilor); JOIN/REMOVE (introduc sau scot tranzactiaintr-un grup); SCAN (verifica daca exista o tranzactie in grup cu oanumita proprietate);

1b) Blocuri de creare si distrugere de tranzactii: GENERATE/TER-MINATE (generarea se face cu generatori specializati de numerealeatoare, tranzactia putand fi prevazuta cu prioritati);

1c) Blocuri de control logic al tranzactiilor: TEST (controleaza daca2 atribute ale tranzactiei satisfac o conditie); TRANSFER (asiguratransfer conditionat sau nu al fluxului de executie la blocul indicatprin argument); GATE (modifica drumul tranzactiilor in functie deconditii referitoare la atribute ale facilitatilor, multistatiilor, comutato-rilor logici sau tranzactiilor); EXAMINE (modifica fluxul in functie deapartenenta la un grup); LOOP (repeta executia de la blocul mentionatca argument pana la blocul LOOP);

ATENTIE: fluxul tranzactiei se modifica si prin blocurile:PREEMPT,LINK/UNLINK, REMOVE, ALTER, SCAN, SELECT.

1d) Blocuri de modificare a caracteristicilor tranzactiilor si a va-lorilor unor entitati de referinta: ASSIGN (atribuie valori numericeparametrilor tranzactiilor si/sau le modifica; cand se genereaza o tranzac-tie poate fi prevazuta cu ”locuri” pentru un numar de maximum 12parametri referibili de catre utilizator; numarul parametrilor poate fistandard sau precizat de utilizator la generare); INITIAL ( initializeazacuvintele sau matricile de cuvinte pastrate); PRIORITY (modifica pri-oritatile; lucreaza in legatura cu blocul BUFFER); LOGIC (pozitioneazape true sau false un comutator logic ce poate juca rol de semafor);MARK (utilizat pentru a marca intr-un cuvant special asociat fiecareitranzactii, valoarea ceasului);SAVEVALUE/MSAVEVALUE (memoreaza intr-un cuvant/matrice val-oarea unui atribut standard numeric precizat); COUNT (determinanumarul de entitati ce satisfac o anumita conditie si-l memoreaza intr-

Page 32: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.3. GENERALITATI DESPRE LIMBAJUL GPSS 31

un parametru al tranzactiei specificat ca argument al lui COUNT);SELECT (selecteaza prima entitate dintr-o gama de entitati ce satisfaco anumita conditie); ALTER (modifica conditionat sau nu, parametrisau prioritatea uneia sau mai multor tranzactii dintr-un grup putandmodifica optional si drumul tranzactiei); HELP (permite includereaunor proceduri de calcul ale utilizatorului; este un bloc pretentios cacinecesita interfata intre GPSS si limbajul in care este scrisa procedura;in SIMUB se foloseau subrutine FORTRAN!);

1e) Blocuri pentru obtinerea de statistici: TABULATE (pentru con-struirea histogramei);(In SIMUB se foloseste si BTABULATE pentruconstruirea tabelelor de contingenta, adica histograme bidimensionale).

1f) Blocuri pentru listari: PRINT (permite scrierea partiala a unorstatistici; cele mai multe statistici se scriu automat de GPSS la sfarsitulsimularii);

2a) Tranzactiile se genereaza cu GENERATE si se distrug cu TER-MINATE. La generare tranzatiile primesc automat niste parametri in-terni si un numar de parametri (limitat de ex la 100) declarati si care potfi accesati de utilizator; in functie de implementare, un program GPSSpoate utiliza un numar maxim de tranzactii (acesta este un dezavan-taj al limbajelor de simulare datorat faptului ca limbajul gestioneazaagenda, GPSS rezolvand astfel el insusi detaliile de programare pe careintr-un limbaj evoluat le rezolva utilizatorul).

3a) Statiile de serviciu pot fi ocupate de o singura tranzactie la unmoment dat.

4a) Depozitele sau multistatiilec au o capacitate declarata in prea-labil si in ele pot intra mai multe tranzactii (cat permite capacitatea).

5a) Comutatorii logici sunt de fapt variabile booleene, ce trebuieinitializate (precizeaza conditii satisfacute de ”echipoamente”).

Toate entitatile de echipament sunt identificate printr-un numar (in-treg). Ele poseda atribute standard numerice sau logice.

6a) Variabilele au cuvantul cheie VARIABLE, au un nume si o ex-presie aritmetica (de dimensiune limitata) care contine atribute stan-dard numerice, cuvinte de salvare, parametri, etc.

7a) Variabilele booleene BVARIABLE, sunt construite analog (decatre utilizator) folosind atribute standard logice, inclusiv comutatorilogici).

Page 33: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

32 CAP. 1. GENERALITATI DESPRE SIMULARE

8a) 9a) Functia (FUNCTION) desemneaza o functie de o variabiladata printr-o lista sau functie liniara precizandu-se argumentul princare aceasta este referita.

10a) Coada este o entitate statistica pentru care se retine automatlungimea medie si lungimea maxima care se listeaza la sfarsitul simularii.

11a) 12a) Tabela de frecventa se defineste la inceputul programuluicu TABLE si reprezinta o histograma a unei variabile de iesire dinmodel, de regula atribut numeric.La definire se precizeaza argumentultabelat si numarul de clase de frecxvente.

13a) 14a) Cuvintele sau matricile de cuvinte pastrate sunt invo-cate prin INITIAL, SAVEVALUE sau MSAVEVALUE si ele se folosescpentru a retine anumite valori pe parcursul simularii. Sunt referiteprintr-un numar de identificare.

15a) Lanturile sistemului sunt: lantul evenimentelor curente (LEC),lantul evenimentelor viitoare (LEV), lanturi ale tranzactiilor intrerupte,lanturi ale tranzactiilor in asteptare pentru sincronizari, lanturi deintarziere (asociate echipamentelor). Orice tranzactie activa la un mo-ment dat se gaseste intr-un lant. Tranzactiile care se deplaseaza insistem se gasesc in lantul evenimentelor curente. Mecanismul de ac-tualizare a lantului evenimentelor curente si al celor viitoare este celcunoscut (descris prin relatia dintre A,AEC si AEV din sectiunea 2.1).Tranzatiile terminate (prin blocul TERMINATE) sunt distruse; bloculSTART precizeaza printr-un argument al sau cate tranzactii se vor pre-lucra (termina).Prelucrarea tranzactiilor din LEC inseamna transferullor in alt lant sau distrugerea. Tranzactiile intarziate ( de ex prin AD-VANCE) sunt introduse in LEV.

Lanturile sistemului sunt controlate automat de catre sistemul GPSS.Lanturile utilizatorului (LU) sunt definite de acesta si ele (sau atribu-

te ale lor) pot fi referite in programul GPSS. Tranzactiile pot fi intro-duse sau scoase din LU prin LINK si UNLINK si ele se folosesc laimplementarea unor discipline de serviciu (in cazul prelucrarii tranzac-tiilor din cozi).

16a) Grupurile ofera utilizatorului un instrument de clasificare atranzactiilor care au anume proprietati. De ex. toate statiile care la unmoment dat depasesc un anumit grad de utilizare pot fi facute membreale unui grup.

Page 34: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.3. GENERALITATI DESPRE LIMBAJUL GPSS 33

Un program GPSS este o lista ordonata de BLOCURI alecaror argumente se refera la diverse entitati.

In cele ce urmeaza sunt prezentate patru programe GPSS care sebazeaza pe cateva din entitatile si instructiunile uzuale ale acestui lim-baj.

1.3.1 Exemple de programe GPSS.

• E1. Model de simulare pentru un sistem de asteptare cuo statie.

Programul GPSS pentru acest model este:

001 GENERATE 10,2 ;Sosiri aleatoare la 10± 2 minute003 SEIZE FRIZER ;Ocupa statia de serviciu ”FRIZER”005 ADVANCE 12,3 ; Durata servirii 12± 3 minute007 RELEASE FRIZER ; Elibereaza statia009 TERMINATE 1 ; Iesire din sistem un client

Comentariu. Cifrele din fata tabelului reprezinta etichetele instruc-tiunilor/blocurilor, iar textele de la terminarea liniilor reprezinta co-mentarii. Dupa denumirile blocurilor apar parametri acestora.

Modelul nu este complet deoarece in fata blocului SEIZE pot saapara asteptari de aceea inaintea acestui bloc trebuie introdus un blocQUEUE si dupa el un bloc DEPART ca mai jos (etichetele indica loculunde se introduc aceste blocuri respectand ordinea).

002 QUEUE COADA1 ; Tranzactia ocupa COADA1003 SEIZE .......004 DEPART COADA1 ;Tranzactia pleaca,se actualizeaza asteptarile;

Pentru a prelucra 200 tranzactii se va da la inceput comanda

000 START 200

La sfarsitul simularii apeland procedura GPSSREPT.EXE se vaafisa un raport final privind simularea care contine:

- durata totala a prelucrarii tranzactiilor(durata simularii);- gradul de ocupare a statiei de serviciu (media si maxima);- durata medie a asteptarilor, etc.

• E2. Model de simulare pentru un sistem de asteptare custatii paralele.

Page 35: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

34 CAP. 1. GENERALITATI DESPRE SIMULARE

Modelul de mai jos simuleaza un sistem de asteptare cu 3 statiiparalele (ghisee ale unei banci) in care serviciul se realizeaza cu disci-plina FIFO (First In First Out) adica serviciul se executa in ordineasosirii clientilor si nu se considera prioritati ale unor clienti. Clientulva trece pe la statia multipla de servire (depozit), dar el va ocupa osingura statie care-l serveste (STORAGE 3). In final el va trece si lastatia CASIER unde primeste un alt serviciu (primeste sau platestebanii pe baza formelor elaborate de ghiseul parcurs anterior!). De-sigur, pentru executarea modelului care urmeaza ar trebui adaugatacomanda START corespunzatoare si apelat in final modulul de iesireGPSSREPT.EXE. Modelul este dat de programul:

GHISEE STORAGE 3 ; Declararea dimensiunii multistatiei001 GENERATE 4,1 ;Sosesc clienti002 QUEUE COADA ;Clientul in coada caci dorim statistici003 ENTER GHISEE Ocupa un loc in GHISEE (daca esista!)004 DEPART COADA ;Clientul pleaca din coada (spre servire!)005 ADVANCE 15,3 ;Clientul este servit (durata de servire!)006 LEAVE GHISEE Se elibereaza un log (un ghiseu)007 SEIZE CASIER ; ocupa locul la casier;007 ADVANCE 2 ; Servirea clientului este 2 minute008 RELEASE CASIER ; Elibereaza casierul(clientul pleaca)009 TERMINATE 1 ;Plecare client.

• E3. Model cu statii paralele si preferinte. Se modeleaza ser-viciul la o frizerie unde lucreaza 3 frizeri (trei statii de serviciu!):Figaro,Gica si Tica. Clientii care sosesc sunt primiti in proportie de 60% deFigaro (care este preferat!) iar restul de 40% sunt serviti de ceilalti doi,dar din acestia 50% merg la Gica si 50% merg la Tica. Modelul nucontine comenzile de START si cele de iesire.

001 GENERATE 6,1 ;Sosesc clienti002 TRANSFER .4,,ALTII ;60% clienti merg la Figaro003 QUEUE COADAFIG ;Intra in coada lui Figaro004 SEIZE COADAFIG ; Clientul se duce la Figaro005 DEPART COADAFIG ;Se culeg date despre ac.coada006 ADVANCE 8,1 ;Clientul e servit007 RELEASE FIGARO ;Figaro devine liber008 TRANSFER ,CASA ; Clientul merge sa plateascaALTII TRANSFER ,LAGICA ;Tica si Gica sunt la fel010 SEIZE TICA ; 50% din clienti merg la Gica011 ADVANCE 12,2 ; Tica serveste mai incet ca Figaro012 RELEASE TICA ; Tica este eliberat

Page 36: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.3. GENERALITATI DESPRE LIMBAJUL GPSS 35

013 TRANSFER ,CASA ;Clientul platesteLAGICA SEIZE GICA ;50% din 40% clienti merg la Gica015 ADVANCE 12,2 ; Gica serveste ca si Tica016 RELEASE GICA ; Se elibereaza GicaCASA SEIZE CASIERA ; Se ocupa statia CASIERA018 ADVANCE 1 ;Plata intr-un minut019 RELEASE CASIERA ; Se elibereaza CASIERA020 TERMINATE 1 ;Tranzactia pleaca

Nota. Cele trei statii sunt folosite explicit, nu ca multistatie.Folosim coada numai la Figaro caci numai acolo (presupunem!) neintereseaza statistici finale.

In programele GPSS etichetele sunt optionale si ele pot fi mnemon-ice (care denumesc obiecte modelate ca de ex. LAGICA sau ALTII), saupot fi constante intregi care sugereaza ordinea instructiunilor; sunt obli-gatorii etichetarile blocurilor la care se refera alte blocuri (vezi TRANS-FER mai sus).

Parametri unor entitati pot desemna nume simbolice (de ex. statiaGICA sau coada COADAFIG).

• E4. Un Model complex. Acest model este de complexitateridicata si instructiunile ce descriu peogramul de simulare GPSS suntprezentate mai jos.. El simuleaza in GPSS/PC activitatile de reparatiea unui automobil intr-un service care are ateliere separate de reparatiimotor, caroserie si tinichigerie. Unitatea de timp este ora iar repartitiade probabilitate a duratelor de reparatie este exponentiala si functiade repartitie este derscrisa de functia continua numita XPDIS dataprin instructiunea ’50’ de mai jos care are ca argument generatorulde numere aleatoare RN2, este de tip continuu si este descrisa princoordonatele a 24 puncte, C24. Instructiunea 60 descrie o histogramaa timpului M1 petrecut de tranzactii (automobilele ce se repara) insistem. Blocul GENERATE 70 simuleaza sosiri exponentiale cu media48 folosind metoda inversa (vezi capitolul urmator) aplicata functiei derepartitie definita in preambulul programului. (Functia este descrisaprin coordonatele unor puncte prin care trece graficul ei si care punctesunt date prin perechile de coordomate, despartite prin slash /.

In continuare programul descrie activitatile ce au loc in sistem:blocul 80 include in coada automobilul sosit (prin GENERATE); blocul

Page 37: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

36 CAP. 1. GENERALITATI DESPRE SIMULARE

90 simuleaza ocuparea statiei SEFATELIER; blocul 100 simuleaza (prin100 ADV ANCE) activitatea de constatare a sefului de atelier careare repartitie uniforma de medie 2 ±1; apoi blocul 110 RELEASEsimuleaza eliberarea sefului de atelier, dupa care blocul 120 SEIZEocupa mecanicul MEC1 care realizeaza demontarea blocului motorde pe caroserie. In continuare blocul 150 SPLIT trimite motorulla mecanici denumiti in model ATELMEC (blocul SPLIT ramificatraseul tranzactiilor). In continuare comentariul 160 ∗ traseulcaroserieiindica faptul ca blocurile 170-400 descriu traseul caroseriei prin in-treprinderea de service,traseu care se termina la blocul410ATELMEC SEIZE MEC1 care prin eticheta ATELMEC in-dica faptul ca motorul (desprins de caroserie prin blocul 130) a fosttransferat in atelierul mecanic. In secventa de instructiuni 170 − 400( care simuleaza activitatile din sectia Caroserie, se remarca blocurile230 si 290 care sunt blocuri MATCH conjugate si care semnifica fap-tul ca trebuie sincronizate activitatile lui OM2 (ajutor de sudor caredemonteaza usile) cu cele ale lui OM1 (care realizeaza sudura propri-uzisa). In secventa de instructiuni referitoare la caroserie activitatiledescrise sunt explicate prin comentarii si prin etichetarile cu mnemo-nice ale blocurilor; majoritatea blocurilor au fost deja intalnite si incadrul celorlalte exemple de programe GPSS. Mentionam ca deosebiteblocurile 260 (transfer neconditionat la blocul 320ASSEMBLE careasambleaza usile de corpul caroseriei) si 400 (transfer neconditionatla blocul 450MONFINAL care realizeaza montajul final al motoru-lui si caroseriei). In instructiunile finale ale programului GPSS re-marcam secventa 410 − 440 care descrie traseul motorului si secventa450− 500 care descrie asamblarea finala a componentelor automobilu-lui. O instructiune noua aici este 490TABULATE care inregistreaza(pe parcursul simularii) frecventele in tabela TABCLASE definita lainceput.

Descriem in continuare programul sursa GPSS. La inceput sunt de-scrise instructiunile de definire a functiei, dupa care urmeaza blocurilece simuleaza activitatile in service-ul auto.

; GPSS/PC Program File E4.GPS. (V 2, #39399) 08-02-2003 04:13:2910 ∗ Modelul reparatiei unui automobil, in ateliere separate20 ∗ pentru motor si pentru tinichigerie(, urmata de vopsire).30 ∗ -Unitatea de timp a modelului este ora.-

Page 38: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

1.3. GENERALITATI DESPRE LIMBAJUL GPSS 37

40 ∗ Repartitia exponentiala standard50 XPDIS FUNCTION RN3, C240, 0/.1, .104/.2, .222/.3, .355/.4, .509/.5, .69/.6, .915/.7, 1.2/.75, 1.38.8, 1.6/.84, 1.83/.88, 2.12/.9, 2.3/.92, 2.52/.94, 2.81/.95, 2.99/.96, 3.2

.97, 3.5/.98, 3.9/.99, 4.6/.995, 5.3/.998, 6.2/.999, 7/.9998, 8

60 TABCLASE TABLE M1,40,20,20 ;Pt.histogr. timp in sistem.70 GENERATE 48,FN$XPDIS ;Sosiri expon., cu media 48 ore.80 QUEUE DURATA ;Incepe inregistrarea.90 SEIZE SEFATELIER ;Pt.diagnostic & eval.cost.100 ADVANCE 2,1 ;Durata constatarii.110 RELEASE SEFATELIER120 SEIZE MEC1 ;Demont.motor de pe caroserie.130 ADVANCE 3,1 ;Durata demont. de catre Mec1140 RELEASE MEC1150 SPLIT 1,ATELMEC ;Trimitere motor la mecanici160 *Tras.caroserie:170 SEIZE SUD2 ;Ajutorul de tinichigiu (sudor)180 ADVANCE 2,1 ;demonteaza usi, capote, aripi.190 RELEASE SUD2200 SPLIT 1,USI ;La ajutor (Sud2), pt.usi, etc.210 SEIZE SUD1220 ADVANCE 14,FN$XPDIS ;Durata suduri corp (cu Sud1)230 OM1 MATCH OM2 ;Verificare potriviri balamale240 ADVANCE 8,FN$XPDIS ;Alte suduri corp (Sud1)250 RELEASE SUD1260 TRANSFER ,MONCAROS270 USI SEIZE SUD2 ;Traseul usilor demontate:280 ADVANCE 12,FN$XPDIS ;Durata suduri usi+capote(Sud2)290 OM2 MATCH OM1 ;Verific la balamale cu corpul.300 ADVANCE 9,FN$XPDIS ;Alte suduri usi (Sud2).310 RELEASE SUD2 ;Ajutorul tinichigiu a terminat.320 MONCAROS ASSEMBLE 2 ;Usile cu corpul caroseriei.330 SEIZE SUD1340 ADVANCE 2 ;Mont.la loc caroserie + reglaj350 RELEASE SUD1 ;usi de catre tinich.principal360 SEIZE VOPSITOR ;Secventa de vopsire.370 ADVANCE 24,3380 RELEASE VOPSITOR390 ADVANCE 1 ;Transportul il face altcineva.400 TRANSFER ,MONFINAL ;Pt.asamblare cu motorul.410 * Traseu motor:420 ATELMEC SEIZE MEC1430 ADVANCE 20,FN$XPDIS ;Reparatii, facute de Mec1.

Page 39: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

38 CAP. 1. GENERALITATI DESPRE SIMULARE

440 RELEASE MEC1445 * Reasambl.finala450 MONFINAL ASSEMBLE 2 ;Motorul cu caroseria.460 SEIZE MEC1 ;El face asamblarea.470 ADVANCE 2480 RELEASE MEC1490 TABULATE TABCLASE ;Timp in sistem, pe clase500 DEPART DURATA ;Inchei inreg.timpului510 TERMINATE 1 ;Iesire din sistem.

Exemplele prezentate sunt simple, alese gradual, de la simplu lacomplex si au desigur un scop didactic. Ele ilustreaza utilizarea celormai importante blocuri si instructiuni ale imbajului GPSS. Pentru re-zolvarea unor probleme practice complexe este necesara consultareaunor decumetatii complete privind limbajul [14].

In ultimul capitol vor fi prezentate modele de simulare asemanatoareprimelor doua de mai sus, dar care sunt implementabile intr-un limbajevoluat; scopul tratarii acelor modele va fi acela de a se ilustra cum seface validarea unui model de simulare, ceea ce nu s-a facut aici, in cazulmodelelor implementate in GPSS.

Page 40: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

Cap. 2

Numere aleatoare

2.1 Notiuni introductive

Vom aminti mai intai cateva notiuni de baza. Presupunem ca X este ovariabila aleatoare si fie F (x) = P (X < x) functia sa de repartitie.Densitatea de repartitie, cand aceasta exista, este derivata functieide repartitie, adica f(x) = F ′(x). Functia F satisface proprietatile:F (−∞) = 0, F (+∞) = 1, F (a) ≤ F (b) daca a < b. Intre F (x) si f(x)are loc relatia

F (x) =

x∫−∞

f(u)du.

De obicei X reprezinta o caracteristica a unei multimi de obiecte carevariaza aleator de la un obiect la altul; acea multime se numeste populatiestatistica. Daca luam la intamplare un numar n de obiecte din populatiesi consideram valorile X1, X2, ..., Xn ale caracteristicii X ce corespundacestor obiecte spunem ca aceste valori determina o selectie de volumn asupra lui X. In statistica matematica selectia X1, X2, ..., Xn esteconsiderata ca fiind o multime de variabile aleatoare independente siidentic repartizate ca si X (aceasta numindu-se selectie bernouliana).Independenta a doua variabile aleatoare se defineste astfel: X este ovariabila aleatoare independenta de Y daca P (X < x, Y < y) = P (X <x)P (Y < y) sau, daca notam F (x, y) = P (X < x, Y < y) functia derepartitie comuna a variabilelor X si Y si notam F1(x) = P (X < x),F2(y) = P (Y < y) functiile de repartitie marginale, ale lui X respectiv

39

Page 41: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

40 CAP. 2. NUMERE ALEATOARE

Y, atunci conditia de independenta se scrie

F (x, y) = F1(x)F2(y). (2.1)

Sa observam ca se face distinctie intre variabila aleatoare X si ovaloare x a acesteia (care reprezinta un numar real fixat!).

Valorile efectiv obtinute prin procesul de selectie constituie o multimede n numere care se spune ca reprezinta o realizare a selectiei bernuliene.Deoarece fiecare din aceste numere pot sa reprezinte oricare valoare alui X se considera ca valorile de selectie (numite si variabile de selectie)sunt independente si identic repartizate ca si X.

Cand pentru o variabila aleatoare X se cunoaste F sau f spunem case cunoaste repartitia de probabilitate sau repartitia statistica a lui X.Exsista multe tipuri de repartitii de probabilitate. Cele mai importantevor fi introduse in acest capitol, dar si in capitolele urmatoare.

• Repartitia uniforma. Una din repartitiile de probabilitate im-portante, dar care este naturala, este repartitia uniforma pe un interval[a, b] (vezi [2, 3, 5, 6, 7, 10, 11]) care are densitatea de repartitie deforma

g(x) =k, daca x ∈ [a, b]0, in rest

,

∞∫−∞

g(x)dx = 1→ k =1

b− a. (2.2)

Variabila V avand densitatea de repartitie (2.2) se spune ca este reparti-zata uniform pe [a, b]. Deci toate valorile variabilei V sunt egal probabile.Functia de repartitie corespunzand densitatii (2.2) este

G(x) =

x∫−∞

g(u)du =

0, daca x < ax−ab−a

daca x ∈ [a, b]1, daca x > b.

(2.3)

O repartitie uniforma interesanta este repartitia uniforma pe [0, 1] asacum se va vedea in continuare.

Sa notam cu U variabila aleatoare uniforma pe [0, 1], pe care ovom numi pe scurt variabila uniforma 0− 1. Densitatea de repartitie sifunctia de repartitie a lui U sunt respectiv

f(x) =

1, daca x ∈ [0, 1]0, in rest,

F (x) =

0, daca x < 0,x, daca x ∈ [0, 1]1, daca x > 1.

(2.4)

Page 42: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

2.1. NOTIUNI INTRODUCTIVE 41

In Fig. 2.1 se prezinta graficele densitatilor si functiilor de repartitieuniforme f, F, g, G. Graficele densitatilor uniforme ilustreaza intuitivfaptul ca valorile variabilelor uniforme sunt egal probabile, adica auaceleasi sanse de aparitie intr-un experiment.

c) d)

a) b)

0 0

0 01 1

b ba

y = 1b−a

y y

y

y=1

y

x x

y=1

y=1

x x

Fig. 2.1. Repartitii uniformea) Densitatea uniforma 0− 1

b) Functia de repartitie uniforma 0− 1c) Densitatea uniforma pe [a, b]

d) Functia de repartitie uniforma pe [a, b]

Valorile de selectie asupra variabilelor aleatoare uniforme se numesc[2, 5, 6, 7, 10, 11] numere aleatoare. Asa cum se va vedea mai jos, nueste posibil sa se produca cu calculatorul, printr-un algoritm, secventede numere aleatoare care sa fie uniform repartizate pe intervalul [0, 1] sicare sa fie independente stochastic. De aceea numerele produse cu calcu-latorul, vor fi numite numere pseudoaleatoare si ele vor putea fi folosite

Page 43: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

42 CAP. 2. NUMERE ALEATOARE

drept numere aleatoare daca au un comportament cat mai aleator (vezi$2.3). Un algoritm care produce un numar aleator (pseudoaleator) senumeste generator de numere aleatoare (pseudoaleatoare). Iterand ungenerator se poate obtine o selectie (secventa) de numere aleatoare.Cand este nevoie de numere aleatoare cu cat mai bune calitati se potaplica metode care combina doi sau mai multi generatori, rezultandun alt generator care produce secvente de numere pseudoaleatoare maibune. In multe aplicatii sunt insa suficient de bune numerele produsede generatori simpli, asa cum se va vedea mai jos.

2.2 Necesitatea simularii numerelor alea-

toare

Urmatoarea teorema [2, 3, 5, 10] stabileste legatura intre repartitiauniforma 0− 1 si repartitia uniforma pe un interval [a, b] oarecare.

Teorema 2. 1 Daca U este o variabila uniforma 0 − 1 atunci V =a+ (b− a)U este o variabila uniforma pe [a, b] si reciproc, daca V esteo variabila aleatoare uniforma pe [a, b] atunci variabila

U =V − ab− a

este uniforma 0− 1.

Sa vedem acum dece sunt necesare numerele aleatoare in simulare.Fiind data o variabila aleatoare oarecare X, pentru care se cunoastefunctia de repartitie F, este adevarata urmatoarea propozitie [2, 3, 10]care evidentiaza importanta repartitiei uniforme 0−1, adica importantanumerelor aleatoare.

Teorema 2. 2 Variabila aleatoare F (X) este uniforma 0− 1 iar dacanotam cu F−1 inversa functiei F atunci F−1(U) are functia de repartitieF (sau cu alte cuvinte F−1(U) = X).

Demonstratie. Demonstram partea a doua a teoremei deoareceaceasta joaca un rol esential in simulare.

Functia de repartitie a lui F−1(U) se scrie

P (F−1(U) < x) = P (F (F−1(U)) < F (x)) = P (U < F (x)) = F (x).

Page 44: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

2.2. NECESITATEA SIMULARII NUMERELOR ALEATOARE 43

Ultima egalitate rezulta din (2.3) cu a = 0 si b = 1. Teorema estedemonstrata. Ea este cunoscuta sub numele de teorema lui Hincin.

Din teorema 2 rezulta urmatoarea consecinta practica: daca amputea produce valorile de selectie U1, U2, ..., Un asupra lui U si amcunoaste functia de repartitie F a lui X, atunci am putea produce valo-rile de selectieX1, X2, ..., Xn asupra luiX cu formulaXi = F−1(Ui), 1 ≤i ≤ n. Daca functia F−1 se poate calcula cu un algoritm atunci valorilede selectie Xi ar putea fi produse (generate) cu calculatorul folosindurmatorul algoritm

Metoda inversa. (Algoritm)

repeta de n ori urmatoarele instructiuni

genereaza o valoare de selectie U uniforma 0− 1;

calculeaza X = F−1(U);

Spunem ca acest algoritm simuleaza o selectie de volum n asupralui X. Dar pasii cei mai importanti ai algoritmului sunt ultimii doi pasicare produc o valoare de selectie X, caci daca putem genera numere Uuniforme 0 − 1 si independente atunci prin iterare, conform primuluipas, am produce valorile selectiei de volum n asupra lui X. Din aceastacauza, pentru simularea diverselor variabile ne vom concentra asupraproblemei simularii unei singure valori de selectie care sa foloseascaun algoritm astfel incat prin iterare sa poata produce selectia care neintereseaza.

Revenind la metoda inversa, daca am putea genera valori de selectieUi, 1 ≤ i ≤ n uniforme 0 − 1 independente, atunci si Xi = F−1(Ui) arfi independente.

Un algoritm pentru generarea (simularea) unei selectii Ui, 1 ≤ i ≤ nde variabile uniforme 0−1 va trebui deci sa produca in primul rand unnumar uniform 0− 1, iar prin iterari acelasi algoritm sa fie in masurasa produca selectia de volum n; deci selectia se va produce printr-orelatie iterativa de forma Ui+1 = g(Ui), iar algoritmul trebuie sa permitaproducerea de numere Ui independente stochastic. Valorile de selectieUi se numesc numere aleatoare uniforme sau simplu numere aleatoare.

Page 45: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

44 CAP. 2. NUMERE ALEATOARE

2.3 Metode congruentiale liniare

FieX o variabila aleatoare discreta repartizata uniform avand repartitia

X :

(1, 2, ..., m1m, 1

m, ..., 1

m

), m <∞, (2.5)

unde m ∈ N+. Conform teoremei 2.1, variabila U uniforma 0 − 1 sepoate obtine astfel

U =X

m∈ (0, 1) (2.5′)

unde in ultima relatie impartirea se executa in real.Valori de selectie asupra variabilei X se pot obtine prin relatia

congruentiala liniara [2, 5, 6, 7, 10]

Xi+1 ≡ (aXi + c)(modm), (2.6)

care spunem ca defineste generatorul mixt congruential liniar (X0, a, c,m)unde cele patru constante sunt numere naturale date.

Pentru ca generatorul (2.6) sa produca numere aleatoare, trebuiealese constantele (X0, a, c,m) astfel incat sa satisfaca conditiile:

10. Numerele Xi sa reprezinte o repartitie uniforma de forma (2.5);acest lucru se realizeaza daca sirul Xi are o perioada λ mare adicadaca cel mai mic numar λ pentru care Xi = Xi+λ are loc pentru un λcat mai mare.Acest lucru se intampla daca cele patru constante se alegastfel incat relatia (2.6) sa produca toate resturile modulo m, adicanumerele 0, 1, ..., m− 1, iar m este mare.

20. Numerele Xi sa fie independente stochastic; acest lucru nu estepractic posibil deoarece Xi+1 depinde de Xi conform relatiei (2.6);este insa posibil ca numerele Xi, Xi+1 sa fie slab dependente stochas-tic. Aceasta conditie inseamna ca numerele respective au un coeficientserial de corelatie ρ apropiat de 0, ρ definit astfel

ρ = ρ1 = Corr(Xi, Xi+1) =E[XiXi+1]− E[Xi]E[Xi+1]√

V ar[Xi]V ar[Xi+1](2.7)

V ar[Xi] = E[Xi −E[xi]]2 = E[X2

i ]− E[Xi]2unde cu E[Y ] se noteaza valoarea medie a variabilei aleatoare Y.

Page 46: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

2.3. METODE CONGRUENTIALE LINIARE 45

Din motive impuse de aritmetica sistemelor de calcul, modulul m seia de forma m = pe unde p este un numar prim [10]. Urmatoarea teo-rema [10] precizeaza conditii pentru alegerea constantei a care definestegeneratorul (2.6).

Teorema 2. 3 Perioada maxima a generatorului (2.6) este λ = pe

daca si numai daca

a ≡ 1(mod p) cand p > 2

a ≡ 1(mod 4) cand p = 2, 1 < a < p. (2.8)

O valoare a lui a poate fi a = pk + 1, 2 ≤ k ≤ e. Alegerea lui afolosind numai aceasta teorema poate insa sa produca un sir de in-tregi X0, X1, ..., Xλ−1 care sa nu fie aleator; acest sir care contine sigurnumarul 0, poate sa contina subsiruri de lungime mare care sa fie saucrescatoare, sau descrescatoare, sau sa prezinte o periodicitate mare.Presupunand ca X0 = 0 (ceea ce este desigur permis) se observa casirul Xn este de forma

Xn =(an − 1)c

b(modm), b = a− 1. (2.6′)

Daca in relatia precedenta luam a = b+ 1 atunci (2.6’) devine

Xn ≡ c(n+ C2nb+ ...+ Cs

nbs−1)(mod m) (2.6′′)

unde s este cel mai mic numar natural care satisface relatia

bs ≡ 0(modm). (2.6′′′)

Numarul s se numeste potenta generatorului mixt congruential. Dinrelatia (2.6”) rezulta ca Xn este de forma unui polinom in b modulo msi deci generatorul este cu atat mai bun cu cat potenta sa s este maimare. S-a constatat ca din punct de vedere practic, potenta trebuie safie cel putin 5.

Un caz interesant este acela cand m = 2e unde e este apropiatde cuvantul calculatorului pe care se implementeaza generatorul (2.6).In acest caz se arata ca o alegere buna a lui a este de forma a =2f1 + 2f2 + ... + 1, f1 > f2 > ... Deci un generator pentru care m si

Page 47: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

46 CAP. 2. NUMERE ALEATOARE

a satisfac conditiile teoremei 3 genereaza un sir de numere aleatoareintregi de perioada λ mare si care nu prezinta regularitati (nu continsubsiruri periodice de lungimi mari sau subsiruri cu monotonii peri-odice). Constanta c poate fi deocamdata arbitrar aleasa.

Sa vedem acum cum putem alege constantele generatorului (2.6)astfel incat ρ sa fie suficient de mic.

Numerele produse de (2.6) au o repartitie de forma (2.5) in carevalorile lui X sunt 0, 1, ..., m− 1. Deci in acest caz avem [10]

E[X] =

m−1∑x=0

x

m, V ar[X] =

m−1∑x=0

x2

m− E[X]2

ρ1 = ρ =m

m−1∑x=0

xs(x)−(

m−1∑x=0

x)2

mm−1∑x=0

x2 −(

m−1∑x=0

x)2 , s(x) = (ax+ c)(modm).

Evaluarea lui ρ se face cu dificultate. Se arata ca

ρ ≈ 1

a

(1− 6

(c

m

)+ 6

(c

m

)2)± ε, ε ≈ a

m. (2.9)

O valoare concilianta a lui a, care sa asigure o valoare mica a lui ρ estea ≈ √m iar din conditia ρ ≈ 0 se deduce ca c/m trebuie sa satisfacaecuatia

1− 6x+ 6x2 = 0 adicac

m=

1

2− 1

6

√3 = 0.211324865. (2.10)

Ultima relatie da o conditie pentru alegerea lui c.Notand ρk = Corr(Xi, Xi+k), se arata ca ρk ≤ ρ1, k > 1, ceea ce

asigura o dependenta slaba a numerelor departate din secventaX1, X2, ...In concluzie pentru ca generatorul (2.6) sa fie bun trebuie sa alegem

un modul m cat mai mare, sa selectam un a astfel incat sa satisfacateorema 3 impreuna cu o potenta mai mare decat 5 si sa ia o valoareapropiata de

√m, iar c sa satisfaca (2.10). Numarul de start X0, care

se mai numeste si samanta generatorului poate fi orice numar naturalmai mic decat m.

Pentru a produce un numar aleator intreg X, generatorul (2.6) nece-sita deci efectuarea unei inmultiri si a unei adunari si apoi calcularea

Page 48: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

2.4. ALTI GENERATORI DE NUMERE UNIFORME 47

restului modulo m. Daca am alege c = 0 atunci am obtine generatorulmultiplicativ congruential (X0, a, 0, m) care are avantajul ca necesitanumai operatia de inmultire el fiind deci de forma

Xn+1 ≡ (aXn)(modm). (2.11)

In acest caz X0 trebuie sa fie neaparat pozitiv caci altfel sirul produsde (2.11) ar avea toate elementele egale cu zero deci nu ar fi un sirde numere aleatoare uniforme intregi. Conditia de perioada maxima semodifica si ea si intr-un caz interesant din punct de vedere practic seexprima prin teorema urmatoare.

Teorema 2. 4 Perioada maxima a generatorului (X0, a, 0, m) se obtinecand:

(i) X0 este un intreg pozitiv prim cu m;(ii) a este radacina primitiva modulo m, si daca pi, 1 ≤ i ≤ t sunt

numere prime atunci perioada este

λ(2e) = 2e−2, daca e ≥ 3,

λ(pe) = pe−1(p− 1), daca p > 2,

λ(pe11 ...p

ett ) = cmmmc(λ(pe1

1 )...λ(pett )). (2.12)

Desigur, generatorul recomandabil este cel de forma (2.11) deoarecenecesita numai o operatie de inmultire. Exista insa si alti generatori denumere aleatoare intregi. Enumeram in continuare cativa.

2.4 Alti generatori de numere uniforme

Exista multe idei ce se folosesc pentru simularea de numere aleatoareuniforme 0 − 1. Uneori sunt necesari generatori cu calitati statisticefoarte bune; acesti generatori au de regula complexitate de calcul maresi necesita utilizarea de calculatoare cu putere de calcul mare mai alesprivind efectuarea calculelor aritmetice (calculatoare cu cuvant mare!).Alteori insa sunt necesari generatori mai putin performanti, care pro-duc numere pseudo-aleatoare cu proprietati statistice mai sarace; deexemplu, numere Ui care sunt aproximativ independente stochastic sirepartizate numai aproape uniform.

Page 49: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

48 CAP. 2. NUMERE ALEATOARE

Exista un adevarat arsenal de teste statistice [6, 10] cu carese verifica proprietatile statistice ale secventelor de numere aleatoare(uniformitatea repartitiei, independenta stochastica a numerelor suc-cesiv generate, non-periodicitatea secventelor, etc.). Printre acestea,un loc important il ocupa testele de concordanta care verifica ipotezaca numerele aleatoare U ∈ [0, 1], produse cu un generator, sunt uni-form repartizate pe acel interval;asemenea teste sunt testele de tipKolmogorov-Smirnov si testul general χ2 de concordanta. Exista, deasemenea, multe teste care se refera la caracterul aleator. Nu vomprezenta detalii privind aceste teste (Vezi de ex. $ 3.7). Cititorul in-teresat in aprofundarea acestei probleme poate consulta de exemplu[10]. Precizam numai faptul constatat experimental ca generatorii careproduc secvente de perioade λ mari, au de regula, proprietati statisticecorespunzatoare.

In cele ce urmeaza prezentam cativa generatori de numere aleatoarecare sunt, de regula, implementati in limbajele de programare evolu-ate. Aproape orice astfel de limbaj are o functie (sau procedura) care,prin apelari succesive, produce secvente de numere pseudoaleatoare debuna calitate. (De ex. in Pascal si C este functia random a careisamanta este initializata standard la implementare sau care poate fireinitializata prin randomize de catre utilizator). Fara sa insistamasupra detaliilor privind calitatea generatorilor si implementarea lorefectiva, in cele ce urmeaza vom trece in revista cateva metode ce seutilizeaza in constructia practica a unor astfel de generatori (problemacare constituie mai degraba o tema de cercetare stiintifica).• Generatorul aditiv congruential, sau Fibonacci decalat

notat (k;X0, X1, ..., Xk; j;m) si bazat pe relatia

Xn = (Xn−j −Xn−k)(modm) (2.13)

iar o alegere buna a constantelor este j = 24, k = 55, m = 2e, e ≥ 31care asigura o perioada λ ≥ 255 − 1.•Generatorul congruential inversiv notat (X0, a, c,m)−1 cu m-

prim, definit de relatia

Xn = (aX−1n−1 + c)(modm) (2.14)

unde X−1i este inversul (mod m) al lui Xi in raport cu operatia de

inmultire a claselor de resturi, cand acesta exista sau este zero altfel.(Daca m-prim si Xi = 0 atunci inversul exista!).

Page 50: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

2.4. ALTI GENERATORI DE NUMERE UNIFORME 49

• Generatorul matricial congruential care este de forma

Xn = (AXn−1 + C)(modm) (2.15)

unde Xn, C sunt vectori d−dimensionali iar A este matrice d × d.Inmultirea matriceala va produce vectori Xn cu componente corelate.Acest tip de generatori se utilizeaza pe calculatoare paralele.• Generatori bazati pe registre de deplasare care utilizeaza

reprezentarea binara a numerelor intregi in calculator. Daca notam cuai, 1 ≤ i ≤ p cifrele binare ale lui xn−1 si consideram cifrele ci nu toateegale cu zero, atunci generarea cifrelor ai ale lui lui Xn se realizeazaprin relatia

ai = (cpai−p + cp−1ai−p+1 + ... + c1ai−1)(mod 2). (2.16)

In practica se foloseste forma mai simpla

ai = (ai−p + ai−p+q)(mod 2), p > q > 0 (2.16′)

sau daca notam ⊕ operatia binara or-exclusiv ca suma de biti modulo2 atunci relatia precedenta devine

ai = ai−p ⊕ ai−p+q. (2.16′′)

Sa observam ca relatia de recurenta referitoare la bitii ai este aceeasi curelatia de recurenta a numerelor aleatoare Xi interpretate ca p−tupluride biti, adica

Xn = Xn−p ⊕Xn−p+q. (2.17)

Un generator bun este de exemplu generatorulXn = Xn−3p⊕Xn−3q, p =521, q = 32, care are o perioada λ = 2521−1. Formula (2.17) se poateextinde matricial sub forma

Xn = Xn−p ⊕Xn−p+q. (2.17′)

• Amestecarea de generatori se obtine astfel: Sa presupunem case dau doi generatori G1, G2 si folosim o tabela T [1..k], (de ex k = 64sau k = 128). Algoritmul de amestecare a celor doi generatori este

Initializam T [i] = Ui cu numere Ui produse cu G1;Generam cu G2 un indice aleator j ∈ 1, 2, ..., k;

Page 51: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

50 CAP. 2. NUMERE ALEATOARE

Luam Y := T [j]; Generam U cu G1 si luam T [j] := U.

Generarea indicelui aleator j, care este un intreg uniform repar-tizat cu valori in 1, 2, ..., k se face astfel

Genereaza U cu G2;Ia j = trunc(U × k) + 1.

GeneratorulG rezultat din amestecare este mai aleator decat parintiisai G1, G2, iar perioadele satisfac relatia:λ(G) = cmmmc(λ(G1), λ(G2).• In final, prezentam cateva exemple concrete de generatori:1. Generatorul (X0, 125, 0, 2796203);2. Generatorul(x0, 16807, 0, 231 − 1);3. Generatorul de numere uniforme Ui obtinute astfel:

Xi = 171Xi−1(mod 30269), Yi = 172Yi−1(mod 30307),

Zi = 170Zi−1(mod 30323), Ui =(

Xi

30269+

Yi

30307+

Zi

30323

)(mod 1).

Primii doi generatori sunt multiplicativ-congruentiali si satisfac condi-tiile precizate anterior. Pentru cel de-al treilea se presupun date semintele(X0, Y0, Z0) ce corespund la trei generatori multiplicativ-congruentialisi se arata ca Ui au perioada de ordinul 1012.

In cele ce urmeaza vom presupune ca dispunem de un generator denumere aleatoare uniforme 0−1, reprezentat generic de functia random.

Exercitii.

E2.1 Demonstrati (2.6’) si (2.6”) pentru generatorul mixt congruential.E2.2 Fie V = (V1, V2, ..., Vk)

′ un vector aleator uniform pe intervalulI = [a1, b1]× [a2, b2]× ...× [ak, bk], −∞ < ai < bi <∞, 1 ≤ i ≤ k. Sa searate ca Vi sunt variabile aleatoare uniforme pe [ai, bi] si independentestochastic. Reciproca este de asemenea adevarata.

Indicatie: Se considera densitatile de repartitie ale lui V si Vi, adica

f(v) =

1k∏

i=1

(bi−ai)

, dacav ∈ I

0, in rest

, fi(vi) =

1

bi−ai, daca vi ∈ [ai, bi]

0, in rest

si se observa ca f(v) =k∏

i=1fi(vi).

Page 52: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

2.4. ALTI GENERATORI DE NUMERE UNIFORME 51

E2.3 Aratati ca daca U este uniform 0−1 atunci V = a+(b−a)U ,cu −∞ < a < b < +∞ este uniform pe [a, b] si reciproc.

Indicatie: Folosind functia de repartitie F a lui U data de (2.4), searata ca functia de repartitie a lui V este G data de (2.3) si invers.

E2.4 Sa se arate ca daca U este o variabila uniforma 0 − 1 atuncisi 1− U este o variabila repartizata uniform pe [0, 1].

Indicatie: se arata ca P (1− U < x) = x, x ∈ [0, 1].

E2.5 Folosind metoda de simulare a indicelui aleator j descrisa inultima sectiune precizati in ce conditii metoda poate fi folosita la simu-larea aruncarii cu zarul, la simularea tragerii la sorti, sau la simulareaunui semn aleator?

Indicatie: La aruncarea cu zarul se ia k = 6, iar la tragerea la sortise ia k = 2.

Simularea semnului aleator se realizeaza cu instrutiunea:if U ≤ 0.5 then semn := 1 else semn := −1;Observatie: pentru o variabila aleatoare X continua (care are den-

sitate de repartitie), avem P (X = x) = 0, deci in particular P (U =u) = 0, ceea ce inseamna ca semnul ≤ poate fi inlocuit cu semnul ≥ incadrul instructiunii if precedente.

E2.6 Fie (U, V )′ un vector aleator uniform pe [0, 1]× [0, 1], unde Ueste independent de V. Sa se calculeze P (U + V < x), x ∈ R.

Indicatie. In general avem P (U+V < x) =∫D dudv, D = (u, v)|u+

v < x. Pornind de aici si calculand ariile unor triunghiuri obtinemP (U + V < x) = x2/2, daca 0 ≤ x ≤ 1; P (U + V < x) = 1 − (2 −x)2/2, daca 1 ≤ x ≤ 2; P (U + V < x) = 0, daca x < 0, P (U + V <x) = 1, daca x > 2.

E2.7 Precizati cum se genereaza un indice aleator i ∈ r, r+1, ..., sunde r, s ∈ N (adica r, s sunt numere naturale).

Indicatie.Simularea se realizeaza cu instructiunea:i = r+ trunc[(s−r)× U ] + 1, asemanator exercitiului 5.

E2.8 Construiti un generator de numere U uniforme pe [0, 1] uti-lizand amestecarea a trei generatori G1, G2, G3.

Solutie. Se va folosi o idee asemanatoare aceleia care a condus laamestecarea a doi generatori G1, G2, descrisa in ultimul algoritm de maisus. Sa consideram un vector L[1..m] in care se vor memora numereuniforme U generate cu G1. Sa consideram un alt vector cu valori intregiL1[1..k] ale carui valori sunt numere intregi L1[j] ∈ 1, 2, ..., m, 1 ≤

Page 53: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

52 CAP. 2. NUMERE ALEATOARE

j ≤ k. Algoritmul obtinut prin amestecarea celor trei generatori esteurmatorul:

Pasul 0. Incarca vectorul L cu secventa de numere aleatoare U1, U2, ..., Um, uniforme pe [0, 1], generate cu G1; incarca de asemenea vectorulL1 cu secventa de numere intregi j1, j2, ..., jk din 1, 2, ..., m, generatecu G2;

Pasul 1. Genereaza cuG3 un indice aleator j din multimea 1, 2, ..., k;ia i := L1[j]; genereaza cu G2 un indice aleator i1 in 1, 2, ..., m si iaL1[j] := i1;

Pasul 2. Ia U := L[i]; genereaza cu G1 un numar aleator U1 uniformpe [0, 1] si ia L[i] := U1.

Numarul aleator pe [0, 1] nou generat este numarul U si el esteobtinut prin amestecarea generatorilor G1, G2, G3. Este de asteptat canumerele U produse de acest algoritm sa aiba proprietati de aleatorismmai bune decat numerele ce s-ar produce cu fiecare generator in parte.Printre altele se arata ca daca λi este perioada generatorului Gi, i =1, 2, 3, atunci perioada generatorului dat de algoritmul precedent esteλ = cmmmc(λ1, λ2, λ3) care poate fi (daca alegem convenabil genera-torii Gi) mai mare decat cel mai mare din λi.

Daca este necesar sa se produca o secventa U1, U2, ..., Un atunci seexecuta o singura data pasul 0 si se repeta de n ori pasii 1 si 2 aialgoritmului.

Page 54: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

Cap. 3

Simularea variabilelorneuniforme

Teorema 2.2 din capitolul precedent ne spune ca cel putin teoretic,putem simula orice variabila aleatoare X daca cunoastem functia sade repartitie F si putem calcula usor si fara erori functia inversa F−1.Pornind de la acest fapt, precum si de la alte considerente ce vor fimentionate la locul potrivit, in literatura de specialitate s-au construitdiverse metode, atat generale cat si particulare, pentru simularea di-verselor tipuri de repartitii de probabilitate ne uniforme. Schema gen-erala a acestor metode este de tipul urmator: se presupun cunoscutemetode de simularea unor variabile aleatoare simple S1, S2, ..., Sn si secauta un algoritm (adica metoda!) care sa transforme aceste variabilein variabila X care trebuie generata. (In particular de exemplu, vari-abila simpla U se transforma in variabila X = F−1(U)).

In cele ce urmeaza vom prezenta mai intai cateva metode generale desimularea variabilelor aleatoare neuniforme. Toate aceste metode pre-supun simularea unor variabile aleatoare simple (cele mai simple suntcele uniforme), iar prin transformarea/combinarea acestora se obtinvariabilele dorite.

3.1 Metoda inversa

Aceasta metoda a fost deja introdusa ca o consecinta directa a teore-mei lui Hincin. Ea se aplica, asa cum s-a precizat, in cazul in care

53

Page 55: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

54 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

functia de repartitie se poate inversa usor. Daca functia de repartitienu se inverseaza usor, atunci ea se poate aproxima (pe intervale con-venabil alese) cu o functie liniara pe portiuni, cozile fiind aproximate cuexponentiale convenabil alese. In tabela urmatoare se prezinta catevarepartitii de probabilitate ce se pot simula usor cu metoda inversa (vezisi [10]).

Repartitia Densitatea f Inversa F−1

Exp(λ), λ > 0 f(x) = λe−λx, x > 0 x = −ln(u)Weib(0, 1, ν), ν > 0 f(x) = νxν−1e−xν

x = (−ln(u))1/ν

Cauchy f(x) = 1π

11+x2 , x ∈ R x = tanπ(u− 1

2)PearsonXI, α ∈ R, ν > 0 f(x) = να

(1+αx)ν+1 , x > 0 x = 1u1/ν

Arcsin f(x) = 1π

1√1−x2

, x ∈ [−1, 1] x = sinπ(u− 12)

Logistica f(x) = e−x

(1+e−x)2, x ∈ R x = log

(1−u

u

)

Tabelul 3.1. Metoda inversa

In formulele lui f din tabel se precizeaza numai valorile lui x pentrucare f(x) > 0, presupunandu-se ca f(x) = 0 in rest.

In ultima coloana se scrie direct formula cu care se simuleaza vari-abila aleatoare X, deoarece se tine cont de exercitiul 4 din capitolul 2(s-a inlocuit 1− u cu u [10], economisindu-se in acest fel o operatie descadere). Inlocuirea lui 1 − u cu u se va face ori de cate ori se va iviocazia, daca este posibil.

Folosind metoda inversa se poate construi usor un algoritm pentrusimularea variabilei discrete

X :

(a1, a2, ..., am

p1, p2, ..., pm

),

m∑i=1

pi = 1. (3.1)

Pentru simularea variabilei aleatoare X calculam mai intai valorile

Page 56: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.2. METODA COMPUNERII SAU AMESTECARII 55

functiei de repartitie a acesteia.Avem

F (x) =

0, daca x < a1

p1, daca a1 ≤ x < a2

p1 + p2, daca a2 ≤ x < a3

........p1 + p2 + ... + pk, daca ak ≤ x < ak+1

........1 daca am ≤ x.

(3.2)

Algoritmul pentru simularea lui X consta deci in gasirea lui ai a.ı.F (ai) = U si este urmatorul:

Algoritmul SIMDISCRV [10]

Intrare tabela T [1..m], T [i] :=i∑

j=1pj ; Intrare a[1..m];

Genereaza U uniform 0− 1; (cu U := random;);i := 1; while U > F [i] do i := i+ 1;Ia X := a[i].

3.2 Metoda compunerii sau amestecariiAceasta metoda se aplica variabilelor aleatoare X a caror repartitie deprobabilitate satisface urmatoarea definitie [2, 3, 10]:

Definitia 3. 1 Functia de repartitie F (x) este o amestecare (sau com-punere sau mixtura) discreta a multimii de functii de repartitieFi(x)1≤i≤m cu repartitia disreta

J :

(1, 2, ..., mp1, p2, ..., pm

),

m∑i=1

pi = 1, (3.3)

daca

F (x) =m∑

i=1

piFi(x). (3.4)

Functia de repartitie F (x) este o amestecare continua a familiei defunctii de repartitie G(x, Y )Y ∈R, cu functia de repartitie continuaH(y) a lui Y daca ea este de forma

F (x) =∫R

G(x, y)dH(y) (3.5)

ultima integrala fiind integrala Stieltjes.

Page 57: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

56 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Daca notam cu X variabila aleatoare care are functia de repartitie F (x)si cu Xi variabila aleatoare care are functia de repartitie Fi(x) atunciamestecarea discreta poate fi interpretata astfel

X = Xi cu probabilitatea pi

de unde rezulta urmatorul algoritm pentru simularea lui X

Algoritmul COMPDISCRGenereaza un indice j avand repartitia (3.3);Genereaza Xj avand functia de repartitie Fj(x);Ia X := Xj .

O interpretare analoga are si amestecarea continua, de unde se de-duce urmatorul algoritm de simulare a variabilei aleatoare X F (x)

Algoritmul COMPCONTGenereaza variabila Y care are functia de repartitie H(y);Genereaza variabila aleatoare ZY care are functia de repartitieG(x, Y );Ia X := ZY .

Desigur, in algoritmii precedenti se presupun cunoscute metode degenerare a variabilelor aleatoare J,Xi, Y, ZY . Daca in definitia com-punerii se considera in loc de functii de repartitie, densitati de repartitieatunci formulele (3.4) si (3.5) se scriu respectiv [10,11]

f(x) =m∑

i=1

pifi(x) (3.4′)

f(x) =∫R

g(x, y)h(y)dy. (3.5′)

Exemplul 3.1, [10]. Presupunem ca la o statie de benzina so-sesc m tipuri de autoturisme si se cunoaste pi = probabilitatea sasoseasca un autoturism de tipul i, 1 ≤ i ≤ m. Presupunem ca timpulXi de intersosire al autoturismelor de tip i are repartitia Exp(λi) adicaexponentiala negativa de parametru λi.Atunci timpul de intersosireX alautoturismelor oarecare (amestecate!) are o repartitie mixtexponentiala(sau amestecat exponentiala) adica este o amestecare discreta cu den-sitatea

f(x) =

0, daca x < 0m∑

i=1piλie

−λixi , daca x ≥ 0.

Page 58: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.2. METODA COMPUNERII SAU AMESTECARII 57

Deci simularea unui timp de intersosire a doua autoturisme oarecare seva face cu algoritmul COMPDISCR.

Exemplul 3.1’. Fie X variabila avand repartitia Laplace(λ) [5] acarei densitate este

f(x) =λ

2e−λ|x|, x ∈ R, λ > 0.

Se observa ca

f(x) = p1f1(x) + p2f2(x), p1 = p2 =1

2= 0.5

f1(x) =

λeλx, daca x ≤ 00, daca x > 0

, f2(x) =

0, dacax ≤ 0,λe−λx, daca, x > 0

.

Algoritmul de compunere pentru simularea lui X este

Algoritmul LAPCOMP pentru simularea variabilei LaplaceGenereaza U uniform 0− 1;if U ≤ 0.5 then s := −1 else s := 1; (s=semn aleator);Genereaza Y Exp(λ); ia X := sY.

Simularea variabilei Laplace(λ) se poate face usor si cu metodainversa.

Exemplul 3.2. Durata in functionare X,X > 0 a unui aparat (deex. computer) este exponentiala de parametru ηλ unde λ > 0 esteun parametru determinat de producator (in laborator!) iar η este unparametru aleator care indica influenta mediului in care este exploatatcalculatorul. Presupunand ca repartitia de probabilitate a lui η este detip Gamma(0, b, a) adica are densitatea

h(η) =

0, daca x < 0ba

Γ(a)ηa−1e−bη, (3.6)

sa se determine densitatea de repartitie a lui X.Se observa [5,7] ca este vorba de o amestecare continua a carei

densitate este de forma (3.5’) adica pentru x ≥ 0 avem

f(x) =

∞∫0

ηλe−ληx ba

Γ(a)ηa−1e−bηdη =

λba

Γ(a)

∞∫0

ηae−η(λx+b)dη =

Page 59: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

58 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

=λbaΓ(a+ 1)

Γ(a)(λx+ b)a+1=λa

b

ba+1

(λx+ b)a+1=

(θx+ 1)a+1, θ =

λ

b.

Deci in final densitatea lui X este

f(x) =

0, daca x < 0

aθ(θx+1)a+1 , daca x ≥ 0, θ =

λ

b. (3.7)

In calculele de mai sus s-a folosit urmatoarea formula

Γ(ν)

aν=

∞∫0

xν−1e−axdx. (3.8)

Repartitia a carei densitate este de forma (3.7) se numeste repartitieLomax si dandu-se parametrii pozitivi λ, a, b simularea ei se realizeazacu algoritmul COMPCONT cu conditia de a cunoaste un algoritm desimulare a variabilei Gamma(0, b, a).

Exemplele de mai sus ilustreaza doua cazuri particulare cand sepoate aplica metoda compunerii. Totusi urmatoarea teorema ne asiguraca metoda compunerii discrete se poate aplica in general.

Teorema 3. 1 FieX o variabila aleatoare care are densitatea f(x), x ∈∆, (∆ ⊆ R) si sa consideram o diviziune a lui ∆ adica ∆ = ∪m

i=1∆i,∆i∩∆j = ∅, ∀i = j. Presupunand ca pi = P (X ∈ ∆i) > 0, exista densitatilefi(x), nule pentru x /∈ ∆i astfel incat

f(x) =m∑

i=1

pifi(x). (3.9)

Demonstratie [10]. Deoarece pi =∫∆if(x)dx rezulta ca putem defini

densitatile de repartitie

fi(x) =

f(x)pi, daca x ∈ ∆i,

0, daca x /∈ ∆i.(3.9′)

Fie un x ∈ ∆, oarecare pentru care f(x) = 0. Atunci exista un i, 1 ≤i ≤ m astfel incat x ∈ ∆i. Prin verificare directa se deduce ca

f(x) = pifi(x) =f(x)

pipi =

m∑j=1

pjfj(x), (caci fj(x) = 0, ∀j = i)

Page 60: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.3. METODA RESPINGERII 59

si teorema este demonstrata.

Metoda compunerii poate fi aplicata in combinatie cu metoda in-versa (de ex. pentru simularea variabilelor Xi din exemplul 3.1) asacum se va vedea in multe cazuri ce vor fi tratate in continuare. Eapoate fi aplicata si in combinatie cu metoda respingerii ce va fi tratatain continuare.

3.3 Metoda respingerii

Aceasta metoda (denumita in mod pesimistic ca metoda a respingerii),ar putea fi denumita si metoda acceptarii-respingerii. Ea are formagenerala urmatoare daca ne referim la simularea unei variabile aleatoareX.

Presupunem ca se cunosc urmatoarele elemente [10]:- Se cunoaste un procedeu de simulare a unei variabile aleatoare N

care ia valori naturale pozitive;- Se cunosc metode pentru simularea unor variabile aleatoare Si ∈

S, i ≥ 1, unde S este o familie de variabile aleatoare data;- Se cunoaste un predicat P(S1, S2, ..., Sn) care se poate calcula

∀Si, n; (Acest predicat sau conditie trebuie sa poata fi evaluat faracalcule de mare complexitate!);

- Se cunoaste functia Ψ astfel incat X = Ψ(S1, S2, ..., Sn),P(S1, S2, ..., Sn) = true).

Cand pentru o variabila aleatoare X este posibil sa se constru-iasca cele patru elemente cu proprietatile precizate anterior, atunci sepoate construi un algoritm pentru simularea lui X sub forma generalaurmatoare:

ALGRES=Algoritm General de RespingererepeatSimuleaza o valoare n a lui N ;Simuleaza valorile de selectie S1, S2, ..., Sn din S;until P(S1, S2, ..., Sn) = true;Ia X = Ψ(S1, S2, ..., Sn).

Sa observam ca daca P(S1, S2, ..., Sn) = false atunci multimea devariabile aleatoare S1, S2, ..., Sn se respinge, de unde provine si nu-mele de metoda de respingere. In aceeasi ordine de idei, se observa

Page 61: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

60 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

ca daca pa = P (P(S1, S2, ..., Sn) = true)), numita probabilitate de ac-ceptare, este mare (apropiata de 1), atunci algoritmul este bun; in cazcontrar algoritmul este lent.

Vom prezenta in continuare cateva propozitii care fundamenteazaalgoritmi de respingere pentru simularea unor variabile aleatoare [2,10].

Teorema 3. 2 Fie data o variabila aleatoare X care are densitateade repartitie f(x), x ∈ R, pe care dorim sa o simulam. Fie Y o altavariabila aleatoare ce stim sa o simulam si a carei densitate de repartitieeste h(x) astfel incat densitatile f, h au acelasi suport S (adica iauvalori diferite de zero pe aceeasi multime S ⊂ R). Presupunem caexista o constanta α, 0 < α < ∞, astfel incat f(x) ≤ αh(x), ∀x ∈ S.In aceste conditii daca U este o variabila uniforma 0− 1 independentade Y, atunci densitatea de repartitie a variabilei Y , conditionata de0 ≤ U ≤ f(Y )/(αh(Y )) este f.

Demonstratie. Trebuie sa demonstram ca

P [(Y < x)|(0 ≤ U ≤ f(Y )/(αh(Y ))] = F (x) =∫ x

−∞f(v)dv.

Considerand evenimentele A = Y < x, B = 0 ≤ U ≤ f(Y )/(αh(Y )),ultima formula devine

P (A|B) =P (A ∩B)

P (B)

unde

P (B) =

∞∫−∞

f(v)/(αh(v))∫0

du

h(v)dv =

∞∫−∞

f(v)

αh(v)h(v)dv =

1

α, α > 1.

deci

P (A|B) = α

x∫−∞

f(v)/(αh(v))∫0

du

h(v)dv = α

x∫−∞

f(v)

αh(v)h(v) =

x∫−∞

f(v)dv.

Teorema este demonstrata. Aceasta teorema este cunoscuta sub numelede teorema infasuratoarei deoarece conditia referitoare la α inseamnaca graficul densitatii f(x) se poate infasura cu graficul lui αh(x).

Page 62: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.3. METODA RESPINGERII 61

Din demonstratie rezulta ca probabilitatea de acceptare este pa =1/α, de unde rezulta ca pentru o metoda a infasuratoarei ne banalatrebuie sa avem α > 1. Procedura de respingere este formata dinurmatoarele elemente: N = 2 (variabila aleatoare constanta); S =U, Y ; P(U, Y ) = true daca 0 ≤ U ≤ f(Y )/(αh(Y )); Ψ(U, Y ) = Y,(adica proiectia).

Exemplul 3.3 [10]. Sa consideram densitatea de repartitieGamma(0, 1, ν), 0 < ν < 1, numita repartitia gamma-standard cu νsubunitar. Sa aplicam metoda infasuratoarei pentru simularea vari-abilei gamma notataX, folosind ca infasuratoare densitateaWeib(0, 1, ν).

Solutie. Densitatile de repartitie sunt

f(x) =

0, daca x < 0

1Γ(ν)

xν−1e−x, daca x > 0 , h(x) =

0, daca x < 0νxν−1e−xν

, daca x > 0.

(3.10)In vederea determinarii constantei α a infasuratoarei analizam raportul

r(x) =f(x)

h(x)=

1

νΓ(ν)e−x+xν

.

Punctul de maxim al functiei r(x) este x0 = ν1/(1−ν) de unde rezulta

α =eζ(1−ν)

Γ(ν + 1), ζ = ν

ν1−ν . (3.11)

Deci in final algoritmul pentru simularea lui X este

Algoritmul GAMRESM1 [10] (algoritm de respingere pentruvariabila gamma standard cu parametru subunitar)

Intrare ν; Calculeaza c := 1/ν, ζ := νν

1−ν a := eζ(ν−1);repeat

Genereaza U uniform 0− 1;Calculeaza Z := −ln(U), Y := Zc; se genereaza Y Weib(0, 1, ν); Genereaza alt U uniform 0− 1;

until U ≤ aeZ−Y ;Ia X := Y.

Primul pas al algoritmului este un pas pregatitor; in cazul cand sesimuleaza o selectie de volum n > 1 asupra lui X atunci acest pas seexecuta o singura data si numai ceilalti pasi se executa de n ori.

Page 63: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

62 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

O alta metoda de respingere se poate obtine din teorema urmatoare[2,10].

Teorema 3. 3 FieX o variabila aleatoare care are functia de repartitiede forma

F (x) = c

x∫−∞

Q(φ(x))dR(x) (3.12)

unde Q(z) este functia de repartitie a unei variabile aleatoare Z,Z ∈[0,M ], φ(x) este o functie ce ia valori in [0,M ] (unde M poate lua sivaloarea∞) iar R(y) eate functia de repartitie a unei variabile aleatoareY, Y ∈ R, iar variabilele Z, Y sunt independente stochastic. In acesteconditii functia de repartitie a variabilei Y, conditionata de Z ≤ φ(Y )este F (x).

Demonstratie [10]. Notand ca in Teorema 3

A = Y < x, B = Z ≤ φ(Y ), P (A|B) =P (A ∩ B)

P (B), (3.12′)

ar trebui sa demonstram ca P (A|B) = F (x). Sa observam mai intai caconstanta c din (3.12) este o constanta de normare adica

c =

+∞∫−∞

Q(φ(x))dR(x)

−1

. (3.12′′)

Sa calculam acum numitorul din (3.12’). Avem

P (B) =

+∞∫−∞

φ(x)∫0

dQ(y)

dR(x) =

∞∫−∞

Q(φ(x))dR(x) =1

c.

In continuare avem

P (A|B) = cP (A∩B) = c

x∫−∞

φ(t)∫0

dQ(v)

dR(t) = c

x∫−∞

Q(φ(y))dR(y) = F (x).

Teorema este demonstrata. Se observa din nou ca probabilitatea de ac-ceptare a algoritmului este pa = P (B). Este evident ca teorema descrieun procedeu de respingere ale carui elemente sunt usor de precizat.

Page 64: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.3. METODA RESPINGERII 63

Teorema ramane valabila daca conditia (3.12) se scrie in termeni dedensitati si anume

f(x) = cQ(φ(x))r(x), r(x) = R′(x). (3.13)

O forma duala a teoremei se obtine daca F (x) este de forma [10]

F (x) = c

x∫−∞

(1−Q(φ(x))) dR(x); c =

+∞∫−∞

(1−Q(φ(y))dR(y)

−1

(3.14)cand predicatul devine Z ≥ φ(Y ) iar conditia (3.13) se scrie in ter-meni de densitati

f(x) = c(1−Q(φ(x))r(x). (3.13′)

Si in acest caz avem pa = P (Z ≥ φ(Y )) = 1/c.

Exemplul 3.4 [5,7]. Fie X variabila aleatoare a carei densitate derepartitie este

f(x) = c(1− e−λx)e−µx, x ≥ 0 (3.13′′)

adica de forma (3.13) si se cere sa se precizeze un algoritm de respingerepentru simularea lui X.

Solutie. Se observa ca φ(x) = x si Q(z) = 1− e−λz , z > 0, deci

c =

+∞∫

0

(1− e−λx)e−µxdx

−1

= [λ

λ+ µ]−1.

Algoritmul de respingere penru simularea lui X este

Algoritmul RESP34repeat

Genereaza Z Exp(λ);Genereaza Y Exp(µ);

until Z ≤ Y ;Ia X := Y.

Acest algoritm este rapid daca µ << λ.Daca se calculeaza in detalii functia de repartitie F (x) a densitatii

(3,13”) se poate constata ca rezolvarea ecuatiei F (X) = U necesita oabordare numerica si deci metoda inversa nu este recomandabila.

Page 65: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

64 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Urmatoarea teorema [2, 10], ce va fi numita teorema sirului descen-dent, datorata lui Forsythe, fundamenteaza un algoritm introdus deJohn von Neumann pentru simularea exponentialei Exp(1), algoritmce va fi prezentat intr-o sectiune urmatoare.

Teorema 3. 4 Presupunem date variabilele aleatoare Zi G(x), i ≥1 si Z0 G0(x), independente stochastic. Atunci, urmatoarele afirmatiisunt adevarate

(1) Daca x este fixat si numarul k este fixat, atunci

P (x ≥ Z1 ≥ Z2 ≥ ... ≥ Zk−1 < Zk) =[G(x)]k−1

(k − 1)!− [G(x)]k

k!. (3.15)

(2) Daca x este fixat si K este indicele aleator la care se ”rupe”subsirul descendent (ca la pct (1)), atunci

P (K = nr.impar) = P (K(mod2) = 1) = e−G(x). (3.15′)

(3) Daca subsirul descendent este Z0 ≥ Z1 ≥ ... ≥ ZK−1 < ZK

(adica se rupe la un K aleator si incepe cu Z0 G0(x)), atunci

P [Z0 < x|K(mod2) = 1] =1

pa

x∫−∞

e−G(t)dG0(t), (3.16)

unde pa este constanta de normare

pa =

+∞∫−∞

e−G(X)dG0(x)

−1

. (3.16′)

Demonstratie [10]. (1) Fie evenimentele A = x ≥ Z1 ≥ Z2 ≥ ... ≥Zk−1, B = x ≥ Z1 ≥ Z2 ≥ ... ≥ Zk. Se observa ca B ⊂ A siP (Zi ≤ x) = G(x). Deoarece subsirul care defineste A contine numaiuna din cele (k−1)! ordini relative in care se pot afla cele k−1 variabilealeatoare Zi, 1 ≤ i ≤ k − 1, rezulta ca

P (A) =(G(x))k−1

(k − 1)!.

Page 66: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.3. METODA RESPINGERII 65

Pentru a demonstra (3.15) sa observam ca probabilitatea din membrulstang se scrie P (A \B) si deoarece A ⊂ B avem

P (A \B) = P (A)− P (B) =[G(x)]k−1

(k − 1)!− [G(x)]k

k!

si afirmatia (1) este demonstrata.Afirmatia (2) rezulta din urmatoarele relatii:

P (K = nr.impar) = P (K = 1) + P (K = 3) + ... =

= 1− G(x)

1!+

[G(x)]2

2!− [G(x)]3

3!+ ... = e−G(x).

Pentru a demonstra (3) sa observam ca atunci cand Z0 este aleatoravem

P (K = nr.impar) = P (Kmod 2 = 1) =

∞∫−∞

e−G(x)dG0(x)

de unde folosind pa dat de (3.16’) obtinem

P (Z0 < x|K = nr.impar) =1

pa

x∫−∞

e−G(t)dG0(t)

si teorema este demonstrata.

Teorema reprezinta un prototip complex de metoda de respingere;se atribuie ca valoare a lui X valoarea Z0 din ultimul subsir descendentcare este acceptat.

Algoritmul de respingere rezultat din teorema este urmarorul

Algoritmul RESPSIRD bazat pe siruri descendente.repeat

Genereaza Z0 G0(x); Ia Z∗ = Z0, K := 1; genereaza Z1 G(x);while Z0 ≥ Z1 do begin

K := K + 1;Z0 := Z1;Genereaza Z1 G(x);end;

until Kmod2 = 1;

Page 67: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

66 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Ia X := Z∗.

Sa analizam acum performanta algoritmului. Observam ca pa ne dainformatie asupra vitezei algoritmului: cu cat pa este mai mare, cu atatmai repede ajungem sa acceptam un Z0 (cand K = nr.impar). Darpa (probabilitatea de acceptare) nu este de ajuns pentru a caracterizaperformanta algoritmului; ar trebui sa vedem si cate numere Zi, i ≥ 0sunt necesare pentru a obtine un Z0− acceptat.Vom utiliza notatiile:

pr este probabilitatea de a respinge un Z0 (de a respinge un subsir!);avem pr = 1− pa;

Na = numarul de valori Zi, i ≥ 1 dintr-un subsir in care se acceptaun Z0;

Nr = numarul de valori Zi, i ≥ 1 dintr-un subsir in care se respingeZ0;

N∗ = Numarul total de valori de selectie Zi, i ≥ 0 necesare pana laacceptarea unui Z0.

Folosind aceste notatii putem calcula valorile medii ale numerelorN . Avem

E(N∗) = paE(Na) + pr[E(Nr) + E(N∗)]

de unde

E(N∗) =1

pa

[E(Na)pa + E(Nr)pr].

Dar

E(Na)pa + E(Nr)pr = E(K + 1), deci E(N∗) =1

pa

E(K + 1).

Se observa ca

E(K + 1) =∞∑

k=1

(k + 1)

+∞∫−∞

[(G(x))k−1

(k − 1)!− (G(x))k

k!

]dG0(x) =

=∞∑

k=0

(k + 2)

+∞∫−∞

(G(x))k

k!dG0(x)−

∞∑k=1

(k + 1)

+∞∫−∞

(G(x))k

k!dG0(x) =

= 1 +

+∞∫−∞

∞∑k=0

(G(x))k

k!dG0(x) = 1 +

+∞∫−∞

eG(x)dG0(x).

Page 68: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.4. ALTE METODE 67

In concluzie

E(N∗) =1

pa

1 +

+∞∫−∞

eG(x)dG0(x)

. (3.17)

Exemplul 3.5 [10]. Presupunem ca in Teorema 3.4, variabileleZi, i ≥ 0 sunt toate uniforme 0−1 si independente, adica Zi = Ui, i ≥ 0.Atunci, conform teoremei avem

P (U0 ≤ x|K = nr.impar) =1

pa

x∫0

e−xdx, pa =

1∫0

e−xdx = 1− e−1.

Cu alte cuvinte U0−acceptat are functia de repartitie

F (x) =

0, daca x < 0,1−e−x

1−e−1 , daca 0 ≤ x ≤ 1,1, daca x > 1

(3.18)

care este repartitia exponentiala negativa de parametru 1, trunchiata peintervalul [0, 1]. Deci simularea variabilei care are functia de repartitieF (x) din (3.18) se poate face cu algoritmul RESPSIRD. De fapt,intr-un capitol urmator vom arata cum acest algoritm va fi completatastfel incat sa permita simularea unei variabile exponentiale negativanetrunchiata. Numarul mediu E(N∗) de variabile Zii≥0 ce trebuiegenerate este conform formulei (3.17)

E(N∗) =1

1− e−1(1 +

1∫0

exdx) =e

1− e−1=

e2

e− 1. (3.17′)

3.4 Alte metode

Asa cum am mentionat, metodele de simulare a variabilelor aleatoareneuniforme X, pot fi obtinute fie prin transformarea unor variabilealeatoare uniforme 0− 1, fie sub forma

X = T (Y1, Y2, ..., Yn) (3.19)

unde variabilele Yi pot fi simulate. De fapt, metodele prezentate inprimele trei subsectiuni ale acestui capitol sunt toate de acelas tip:

Page 69: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

68 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

simularea lui X se reduce la simularea unor variabile mai simple Yi, 1 ≤i ≤ n, unde si n poate fi aleator.

In aceasta sectiune vom prezenta metode de simulare a unor vari-abile aleatoare particulare care au tocmai astfel de proprietati: repartitiilelor deriva din alte repartitii mai simple.

In tabelul 3.2. (vezi [10]) se dau cateva repartitii de probabilitate acaror simulare se realizeaza prin transformari simple de variabile U uni-forme 0−1 dar nu prin metoda inversa. In ultima coloana se precizeazatransformarea T.

Nr. Numele Densitatea de Transformarea Tcrt. repartitiei repartitie

1 Normala f(x) = 1√2π

e−x2/2 X =∑12

i=1 Ui − 6N(0, 1) −∞ < x <∞

2 Modul f(x) =

1− |x|, x ∈ [−1, 1]0, altfel

X = U1 − U2

3 Repartitia f(x) =

nxn−1, x ∈ [0, 1]0, altfel

X = maxU1, U2, ..., Unmaximului

4 Repartitia f(x) =

n(1− x)n−1, x ∈ [0, 1]0, altfel

X = minU1, U2, ..., Unminimului

5 Repartitia f(x) =

o, daca x < 01

Γ(k) , daca x ≥ 0 X = −ln∏ki=1 Ui

Erlang(k) k ∈ N+

Tabelul 3.2. Repartitii simulate prin transformari de uniforme

Variabilele uniforme Ui care intervin in ultima coloana a tabelu-lui sunt presupuse independente. Sa vedem cum se justifica metodeleprezentate sintetic in tabel.

1. Aici se foloseste teorema limita centrala intr-o forma simplificatasi anume: daca Vnn∈N este un sir de variabile aleatoare independentesi identic distribuite care au momente de primele doua ordine si daca

Page 70: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.4. ALTE METODE 69

notam Sn =n∑

i=1Vi, atunci

limn→∞P

Sn − E(Sn)√

V ar(Sn)< x

=

1√2π

∫ x

−∞e−

t2

2 dt. (3.20)

In membrul al doilea este functia de repartitie normala N(0, 1). Dacaconsideram ca variabile Vi variabilele uniforme Ui avem

E(Ui) =1

2, V ar(Ui) =

1

12.

Viteza de convergenta in (3.20) depinde de viteza de generare a vari-abilelor Vi. In cazul cand Vi = Ui membrul stang din (3.20) se apropiesuficient de mult de functia de repartitie normala N(0, 1) din membruldrept daca n ≥ 10. Luand n = 12 se obtine expresia din ultima coloanaa tabelului (3.20) care are (aproximativ!) repartitia normala N(0, 1).

Densitatea de repartitie normala N(m, σ) este

g(x) =1√2πσ

e−(x−m)2

2σ2 . (3.21)

Notand Y variabila N(m, σ) avem

m = E(Y ), σ2 = V ar(Y ). (3.21′)

Daca notam Z N(0, 1) atunci se poate arata cu usurinta ca intre Ysi Z au loc relatiile

Y = m+ Zσ, Z =Y −mσ

(3.21′′)

de unde rezulta ca simularea lui Y se reduce la simularea lui Z, care larandul sau se simuleaza folosind teorema limita centrala ca in tabela.

2. Repartitia modul se obtine pe o cale analoga celei folosite inexercitiul E2.6, Cap.2.

3. Justificarea este urmatoarea

F (x) = P (maxU1, U2, ..., Un < x) =

= P (X1 < x, ..., Un < x) =

0, daca x < 0,xn, daca x ∈ [0, 1],1, daca x > 1

Page 71: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

70 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

si derivand F (x) se obtine densitatea din tabel.4. Observam ca

P (minUi, U2, ..., Un < x) = 1− P (maxU1, U2, ..., Un ≥ x) =

= 1− (1− x)n, ∀x ∈ [0, 1]

si derivand ultima expresie se obtine densitatea de repartitie din tabel.5. RepartitiaErlang(k), k ∈ N+, este un caz particular al repartitiei

Gamma(α, λ, ν), α, λ, ν ∈ R+ care are densitatea de repartitie [3, 6, 7,10]

f(x) =

0, daca x < α,λν

Γ(ν)(x− α)ν−1e−λ(x−α), daca x ≥ α. (3.22)

Sa notam cu Y variabila Gamma(α, λ, ν). Relatia dintre Y si variabilagama standard X Gamma(0, 1, ν) este

Y = α +X

λ, X = (Y − α)λ. (3.22′)

Pentru a arata ca variabila Erlang(k) (care este gamma standardGamma(0, 1, k), k ∈ N+) se simuleaza ca in tabela, vom demonstrateorema

Terema 3. 5 Daca Zi, 1 ≤ i ≤ k sunt variabile Exp(1) independente,atunci variabila

X =k∑

i=1

Zi (3.23)

este o variabila Erlang(k).

Demonstratie [10]. Vom folosi tehnica functiei caracteristice si vomarata ca functia caracteristica a variabilei X data de (3.23) este aceeasicu functia caracteristica a variabilei Erlang(k) de unde se deduce cacele doua repartitii coincid. Pentru variabila Erlang(k) functia carac-teristica este

ϕ(t) = E[eitX ] =

∞∫0

eitx 1

(k − 1)!xk−1e−xdx =

=1

(k − 1)!

∫ ∞

0xk−1e−x(1−it)dx ==

1

(k − 1)!

Γ(k)

(1− it)k=

1

(1− it)k.

Page 72: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.4. ALTE METODE 71

Pe de-alta parte functia caracteristica a variabilei X din (3.23) este

ϕX(t) = e[eit∑

jZj ] =

k∏j=1

ϕZj(t) = (ϕZ(t))k .

Dar

ϕZ(t) = E[eitZ ] =

∞∫0

e−(1−it)xdx =1

1− it

deci

ϕX(t) =(

1

1− it)k

,

adica aceeasi cu ϕ(t), ceea ce demonstreaza teorema.

Folosind aceeasi tehnica de demonstratie se poate demonstra siurmatoarea teorema [10].

Teorema 3. 6 Daca X Gamma(0, 1, ν), Y Gamma(0, 1, µ) siX si Y sunt independente stochastic, atunci

(Z = X + Y ) Gamma(0, 1, ν + µ).

Cand o familie de variabile aleatoare are proprietatea ca suma a douavariabile independente este tot o variabila din aceeasi familie spunem caaceasta este o familie stabila de variabile aleatoare. Teorema 3.6 spunedeci ca familia variabilelor aleatoare gamma standard este stabila.

Tot cu ajutorul functiei caracteristice se poate demonstra teorema

Teorema 3. 7 Familia variabilelor normale este stabila.

Demonstratie. Se foloseste faptul ca daca X N(m, σ) atunci functia

sa caracteristica este ϕX(t) = E[eitX ] = eitm− t2σ2

2 . Asemanator daca

Y N(p, λ) atunci ϕY (t) = eitp− t2λ2

2 , iar daca X, Y sunt independente

atunci ϕX+Y (t) = eit(m+p)− t2(σ2+λ2)2 , ceea ce inseamna ca (X + Y )

N(m+ p,√σ2 + λ2).

Page 73: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

72 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

3.4.1 Simularea repartitiilor inrudite cu repartitia

normala

Vom defini acum o serie de variabile aleatoare care deriva din altevariabile aleatoare si care au importanta in statistica matematica.

Exemple 3.6. Repartitii inrudite cu repartitia normala [5,7, 10].

Exemplul 3.6.1. Repartitia χ2. Daca Zi, 1 ≤ i ≤ f sunt vari-abile normale N(0, 1) independente atunci

χ2 =f∑

i=1

Z2i (3.24)

se numeste variabila hi patrat centrata cu f grade de libertate notataχ2

f .Daca Zi N(mi, 1) atunci variabila (3.24) se numeste variabila hi

patrat necentrata cu f grade de libertate si cu parametrul de excentrici-tate δ, notata χ2

f,δ, unde

δ2 =f∑

i=1

m2i . (3.24′)

Se arata ca variabila χ2f centrata este o variabila de tip Gamma(0, 1

2, f

2).

Formula (3.24) permite simularea directa, pornind de la definitie a vari-abilelor χ2

f , χ2f,δ.

Exemplul 3.6.2. Daca Z N(0, 1) este independenta de variabilahi patrat χ2

f atunci variabila

tf =Z√χ2

f

f

(3.25)

se numeste variabila t a lui Student cu f grade de libertate. Daca in(3.25) in loc de χ2

f se introduce χ2f,δ atunci se obtine variabila notata tf,δ

care se numeste variabila t Student ne centrata cu f grade de libertatesi cu parametrul de excentricitate δ. Variabilele de tip t Student sesimuleaza deci direct cu formule de tipul (3.25).

Exemplul 3.6.3. Daca variabilele χ2f1, χ2

f2sunt independente atunci

variabila

Ff1,f2 =f2χf1

f1χf2

(3.26)

Page 74: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.4. ALTE METODE 73

se numeste variabila F a lui Snedecor centrata cu f1, f2 grade de liber-tate (in notatia indicilor conteaza ordinea!). Daca in (3.26) se folosestecate una din χf1,δ1 , χf2,δ2 sau ambele, atunci se obtin variabilele FSnedecor simplu necentrate Ff1,f2;δ1,0, Ff1,f2;0,δ2 , cu parametri corespunza-tori de excentricitate, sau variabila F Snedecor dublu necentrata Ff1,f2;δ1,δ2 .Variabilele F pot fi de asemenea simulate direct prin formule de tipul(3.26).

In exemplele precedente mediile suntm = 0 saum = 0 iar dispersiilesunt σ = σ2 = 1.

Exemplul 3.7 [10]. Variabila aleatoare pozitiva Y se numeste log-normala LN(µ, σ) de parametri µ, σ daca variabila X = log(Y ) estenormala N(µ, σ). Avem deci densitatile

X f(x) =1√2πσ

e−(x−µ)2

2σ2 , x ∈ R;

Y g(y) =1√

2πyσe−

(log(y)−µ)2

2σ2 , y ∈ R + .

Calculand integralele corespunzatoare, in care se fac schimbari de vari-abile potrivite, se obtin urmatoarele relatii

m = E[Y ] = eµ+σ2/2, s2 = V ar[Y ] = m2(eσ2 − 1) (3.27)

de unde prin rezolvarea acestui sistem se obtin formulele

µ = log(m)− 1

2log

[s2

m2+ 1

], σ2 = log

[s2

m2+ 1

]. (3.27′)

Daca se dau media m si dispersia s2 pentru variabila lognormala Yatunci media µ si dispersia σ2 pentru X se calculeaza cu formulele(3.27’); deci simularea variabilei Y se realizeaza cu algoritmul simplu

Algoritmul LNORM pentru simularea lognormalei.Intrare m, s2; calculeaza µ, σ; (acesta este un pas pregatitor!);Genereaza Z N(0, 1); ( ca in tabelul 3.1);Calculeaza X = µ+ Zσ; (unde σ =

√σ2);

Ia Y = eX . (Y LN(µ, σ)).

• Familia de variabile de tip Johnson [5, 7]. Din aceasta familiefac parte o serie de variabile ce se obtin prin transformari de variabilenormale X N(m, σ). Aceste transformari sunt:

Page 75: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

74 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Y = λeX + ξ, - variabila lognormala;

Y = λ[1 + eX

]−1+ ξ - variabila logit normala;

Y = λsinh(X) + ξ - Variabila Sinh−1 normala,sinh(x) = ex−e−x

2, unde λ > 0, ξ ≥ 0, aceste constante aleganduse de

obicei astfel incat EY = 0, V arY = 1.

Variabila logonormala a fost studiata mai sus,variabila logit normalaeste de tip logistica, iar variabila Sinh−1 normala este de tip sinushiperbolic.

3.5 Simularea unor variabile particulare

In sectiunile precedente am prezentat diverse metode, unele generale,pentru simularea variabilelor aleatoare ne uniforme. In aceasta sectiunevom prezenta metode pentru simularea tipurilor de variabile aleatoareparticulare, bazate fie pe metodele generale, fie pe anumite particularitati,dar care conduc la algoritmi de regula mai buni decat cei ilustrati inexemplele prezentate pana acum. (A se vedea [2, 3, 5, 6, 7, 10, 11]).

3.5.1 Repartitia exponentiala

Este suficient sa ne ocupam de repartitia variabilei Z Exp(1) a careidensitate de repartitie este

f(x) =

0, daca x ≤ 0e−x, daca x > 0,

(3.28)

caci simularea variabilei X Exp(λ) se realizeaza cu X = Zλ. Metoda

inversa pentru simularea lui Z, adica Z = −log(U), nu este recomand-abila deoarece daca U este apropiat de zero atunci log(U) nu se poatecalcula. De aceea vom prezenta o metoda de respingere datorata luiJohn von Newmann care se bazeaza pe teorema urmatoare.

Teorema 3. 8 Sa luam in teorema subsirului descendent (Teorema3.4), Z0 = U0, Zi = Ui, i ≥ 1, unde U0, Ui sunt uniforme 0 − 1. Dacanotam cu N numarul aleator de subsiruri descendente respinse panacand se accepta un subsir, atunci X = N +Z0 Exp(1), unde Z0 estecel acceptat (din ultimul subsir descendent).

Page 76: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.5. SIMULAREA UNOR VARIABILE PARTICULARE 75

Demonstratie [10]. Din Exemplul 3.5 de mai sus, retinem ca pen-tru x ∈ [0, 1] avem

P (Z0 ≤ x|K = nr.impar) =1

pa

x∫0

e−xdx = F (x) =1− e−x

pa

, pa = 1−e−1,

unde F(x) este dat de (3.18). De aici rezulta ca probabilitatea de arespinge un sir descendent (de forma Z0 ≥ Z1 ≥ ... ≥ ZK−1 < ZK) estepr = 1− pa = e−1. Deci, P (N = n) = e−n(1− e−1). Ramane sa aratamca

P (N + Z0 ≤ x) =

0, daca x < 01− e−x, daca x ≥ 0.

(3.28′)

Intr-adevar, daca pentru un x > 0 dat notam x = k+z, k = [x], z ∈[0, 1) (k= partea intreaga) atunci avem

P (N+Z0 ≤ x) = P (N+Z0 ≤ k+z) = P (N < k)+P (N = k, Z0 ≤ z) =

=k−1∑j=0

(1− e−1)e−j + (1− e−1)e−k

1− e−1

z∫0

e−udu =

= 1− e−k + e−k(1− e−z) = 1− e−(k+z) = 1− e−x, x > 0

si teorema este demonstrata.De aici se deduce urmatorul algoritm pentru simularea lui Z.

Algoritmul EXRJ de simulare a exponentilalei prin metoda resp-ingerii

Initializeaza N := 0;repeat

genereaza U0, U1 uniforme 0− 1 si independente; Ia U∗ := U0, K :=1;

while U0 ≥ U1 do beginK := K+1, U0 := U1, genereaza U1 uniform 0−1;end; (s-a simulat un subsir descendent);

if Kmod 2 = 0 then N := N + 1; (se numara subsirurile respinse);until Kmod 2 = 1;

Ia Z := N + U∗.

Pe langa probabilitatea de acceptare pa = 1 − e−1, performantaalgoritmului este caracterizata si de numarulN∗ al variabilelor uniforme

Page 77: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

76 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Uii≥0 necesare a fi generate pana cand se obtine o valoare de selectieexponentiala Z. Conform (3.17) avem

E(N∗) =1

pa(1 +

1∫0

ezdz) =1

1− e−1(1 + e− 1) =

e2

e− 1≈ 3.8, (3.17′)

adica trebuie simulate in medie aproape 4 numere uniforme pentru aobtine o valoare de selectie exponentiala Z.

3.5.2 Repartitia Gama

Repartitia Gamma(α, λ, ν) are densitatea data de formula (3.22) iarformula (3.22’) spune ca este necesar si esential sa construim metodepentru simularea unei repartitii Gamma standard, adicaGamma(0, 1, ν),ν ∈ R+. Daca ν = k ∈ N+ atunci repartitia gama devine repartitieErlang si simularea acestei variabile (notata Ek) se face simplu prin in-sumare de exponentiale, conform Teoremei 3.5. Daca 0 < ν < 1 atuncitinand seama de Exemplul 3.3, simularea variabilei Ganna(0, 1, ν) serealizeaza cu o metoda de respingere bazata pe infasurarea cu o densi-tate Weibull(0, 1, ν).

In aceasta subsectiune vom prezenta si alte metode pentru simulareavariabilelor gamma [10].

• O metoda de compunere-respingere pentru cazul 0 < ν <1.

Vom scrie densitatea de repartitie Gamma(0, 1, ν), 0 < ν < 1 data deexpresia

f(x) =

0, daca x < 0,

1Γ(ν)

xν−1e−x, daca x ≥ 0,

sub forma

f(x) = p1f1(x) + p2f2(x),

f1(x) =

f(x)p1, daca x ∈ [0, 1],

0, altfel, f2(x) =

f(x)p2, daca x ∈ (1,+∞),

0, altfel(3.29)

p1 =Γ(1; ν)

Γ(ν), p2 = 1− p1 =

Γ(ν)− Γ(1; ν)

Γ(ν),

Page 78: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.5. SIMULAREA UNOR VARIABILE PARTICULARE 77

Γ(ν) =

∞∫0

xν−1e−xdx, Γ(1; ν) =∫ 1

0xν−1e−xdx.

Sa notam X1 f1(x), X2 f2(x). Atunci are loc urmatoarea teorema

Teorema 3. 9 VariabilaX1 se simuleaza folosind Teorema 3.4 a subsiru-lui descendent unde Z0 = U

1/ν0 , Zi = Ui, cu Uii≥0 uniforme 0−1, iar

X2 se simuleaza cu ajutorul Teoremei 3.3 duale unde densitatea f2(x)este de forma

f2(x) = c(1−Q(x))r(x), x > 0, c =1

e(Γ(ν)− Γ(1; ν)),

r(x) =

0, daca x < 1e−x+1, daca x ≥ 1

, Q(x) =

0, daca x < 1,1− xν−1, daca x ≥ 1.

Demonstratie [10]. Intr-adevar, din enuntul teoremei rezulta ca pentrux ∈ [0, 1], in Teorema 3.4 avem

G0(x) = P (U1/ν0 < x) = P (U0 < xν) = xν ,

H(x) = P (U0 < x|K = nr.impar) =1

pa

x∫0

e−tdG0(t) =1

pa

x∫0

e−tνtν−1dt

pa =

1∫0

e−tνtν−1dt = νΓ(1; ν),

de unde derivand H(x) avem

H ′(x) = h(x) =e−xxν−1

Γ(1; ν)= f1(x), x ∈ [0, 1]

si prima parte a teoremei este demonstrata.Cea de-a doua parte a teoremei se demonstreaza daca scriem forma

detaliata a lui f2(x) adica

f2(x) =

0, daca x < 1,

xν−1e−x

Γ(ν)−Γ(1;ν), x ≥ 1

care se observa ca se reprezinta sub forma din enuntul teoremei.

Page 79: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

78 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Demonstratia este completa.

Presupunand ca s-au calculat in prealabil

g = Γ(ν), g1 = Γ(1; ν), p1 =g1

g, p2 =

g − g1

g,

c =1

e(Γ(ν)− Γ(1; ν)); a =

1

ν, b = − 1

1− νalgoritmul de simulare al variabilei X Gamma(0, 1, ν), 0 < ν < 1,este

Algoritmul GAMCOMNL1 pentru simularea variabilei gammade parametru subunitar prin compunere si respingere:

Intrare p1, p2;Genereaza U uniform 0− 1;if U ≤ p1 then begin

Genereaza X1 f1(x); Ia X := X1;endelse begin

Genereaza X2 f2(x); Ia X := X2;end.

VariabileleX1 siX2 se genereaza cu algoritmii de respingere prezentatiin continuare.

Algoritmul GAMRESNL1 pentru simularea variabilei X1 :

repeatGenereaza U := random; (U=uniform 0− 1);Ia Z0 := Ua; Genereaza Z1 := random; Ia K := 1; Z∗ := Z0;While Z0 ≥ Z1 do begin

Z0 := Z1; Genereaza Z1 := random; K := K + 1;end;

until Kmod2 = 1;

Ia X1 := Z∗.

Pentru acest algoritm avem

pa = νΓ(1; ν); E(N∗1 ) =

1

pa

(1 +∫ 1

0νtν−1etdt)

Page 80: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.5. SIMULAREA UNOR VARIABILE PARTICULARE 79

ultima integrala putand fi calculata numeric (de ex si cu metoda MonteCarlo, cf. Cap.6).

Algoritmul GAMRESNL2 pentru simularea variabilei X2 :repeat

Genereaza U := random; Ia Z := U b;Genereaza X0 Exp(1); Ia Y := X0 + 1; (Y r(x));

until Y ≤ Z;Ia X2 := Y.

Pentru acest algoritm avem

p2 = 1− p1;E(N∗2 ) =

2

p2

deci numarul mediu de variabile Zi, i ≥ 0, Z, Y necesare pentru a generain final un X este

E(N∗) = p1E(N∗1 ) + p2E(N∗

2 ) = p1E(N∗1 ) + 2.

• Metode pentru simularea variabilei Gamma(0, 1, ν), ν > 1.Vom prezenta doi algoritmi de respingere bazati pe metoda infasuratoarei.

G1. Sa consideram X f(x) Gamma(0, 1, ν), ν > 1 si sa luamca infasuratoare densitatea h(x) Exp( 1

ν) adica

h(x) =

0, daca x < 0,1νe−

xν , daca x ≥ 0.

(3.30)

Analizand raportul

r(x) =f(x)

h(x)=νxν−1e−x

Γ(ν)e−xν, ν > 1

se constata ca acesta are ca punct de maxim x = ν, deci constanta αdin Teorema 3.2 (a infasuratoarei) este

α = r(ν) =ννe1−ν

Γ(ν).

Algoritmul de respingere in acest caz este simplu de construit si nu-lmai prezentam. Probabilitatea de acceptare este deci

pa =Γ(ν)

ννe1−ν≈

√e22π√ν − 1

Page 81: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

80 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

unde in ultima relatie s-a folosit aproximarea lui Stirling pentruν →∞ adica

Γ(ν) ≈ (ν − 1)ν−1e−(ν−1)√

2π(ν − 1),

deci aceasta probabilitate scade de ordinul√ν.

G2 Algoritmul precedent este lent pentru ν foarte mare. De aceeavom prezenta in acest caz o alta metoda de respingere, bazata peinfasurarea cu o densitate Cauchy nonstandard trunchiata pe [0,∞)de forma

h(x) =k

1 + (x−(ν−1))2

c

, x ≥ 0 (3.31)

unde k este o constanta de normare. Putem enunta teorema [10]

Teorema 3. 10 Daca infasuram densitatea Gamma(0, 1, ν), ν > 1, cudensitatea h(x) data de (3.31) atunci pentru c ≥ 2ν − 1 avem

r(x) =f(x)

h(x)≤ α =

1

kΓ(ν)(ν − 1)ν−1e−(ν−1). (3.31′)

Demonstratie. Avem

r(x) =1

kΓ(ν)ϕ(x), ϕ(x) = xν−1e−x

[1 +

(x− (ν − 1))2

c

]

ϕ′(x) = −e−xxν−1

c[x− (ν − 1)][(x− ν)2 + c− (2ν − 1)]

de unde rezulta ca ecuatia ϕ′(x) = 0 are solutia x0 = ν − 1 > 0 iardaca c ≥ 2ν − 1 atunci x0 este punct de maxim. Daca luam c = 2ν − 1atunci avem

α =1

kΓ(ν)(ν − 1)ν−1e−(ν−1)

ceeace demonstreaza teorema.Pentru a descrie algoritmul dedus din teorema precedenta presupunem

calculate in prealabil constantele

b = ν − 1, c = ν + b, s =√

2ν − 1.

Atunci algoritmul pentru generarea variabileiX Gamma(0, 1, ν), ν >1 este este

Page 82: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.5. SIMULAREA UNOR VARIABILE PARTICULARE 81

Algoritmul GAMCAUCHY (simularea variabilei Gamma(0, 1, ν),ν > 1 prin infasurarea cu o densitate Cauchy)repeat

repeatGenereaza U := random si ia T = s.tg[π(U − 0.5)]; (T este Cauchystandard pe (−∞,+∞));Ia Y = b+ T ; (Y este Cauchy non standard pe (−∞,+∞));until Y > 0; (Se aplica respingerea pentru a obtine Y -trunchiata);Genereaza U1 := random;

until U1 ≤ eb log(Y/b)−T+log(1+T 2/c);Ia X = Y.

Se observa ca constanta k nu intervine in constructia algoritmuluidar ea este necesara pentru a calcula pa = 1

α. Un calcul simplu arata ca

k =

2+ arctg(− ν − 1√

2ν − 1)

]−1

.

Referitor la repartitia Gamma(0, 1, ν), ν > 1 mai observam si faptulca daca descompunem ν sub forma ν = k + p, k = [ν] ∈ N+, p =ν − k ∈ [0, 1) si consideram variabilele X Gamma(0, 1, ν), Ek

Erlang(k), Y Gamma(0, 1, p), atunci simularea lui X se realizeazacu relatia X = Ek + Y, (Ek, Y )−independente.

3.5.3 Repartitia Beta

Variabila X are repartitia Beta(a, b), a > 0, b > 0 [5, 7, 10, 11] dacadensitatea sa de repartitie este

f(x) =

1

B(a,b)xa−1(1− x)b−1, daca x ∈ [0, 1]

0, altfel(3.32)

unde

B(a, b) =

1∫0

xa−1(1− x)b−1dx, B(a, b) =Γ(a)Γ(b)

Γ(a+ b). (3.32′)

Urmatoarea teorema [10] permite simularea variabilei Beta(a, b).

Page 83: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

82 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Teorema 3. 11 Daca X1 Gamma(0, 1, a), X2 Gamma(0, 1, b),X1 independent de X2 atunci variabila

X =X1

X1 +X2(3.33)

este o variabila Beta(a, b).

Demonstratie. Densitatea comuna de repartitie a lui (X1, X2) este

f(x1, x2) =1

Γ(a)Γ(b)xa−1

1 xb−12 e−(x1+x2).

Facand in ultima integrala transformarea

u =x1

x1 + x2

, v = x2, J =∂(x1, x2)

∂(u, v)=

v

1− u, 0 < u < 1,

avem

f(x1(u, v), x2(u, v)) = g(u, v) =1

Γ(a)Γ(b)

ua−1va+b−1

(1− u)ae−

v1−u , 0 < v <∞.

Densitatea de repartitie a variabilei X1/(X1 +X2) este

h(u) =∫ ∞

0g(u, v)dv =

1

Γ(a)Γ(b)

∫ ∞

0

ua−1va+b−1

(1− u)a+1e−

v1−u dv

adica dupa calcule deducem

h(u) =Γ(a+ b)

Γ(a)Γ(b)ua−1(1− u)b−1.

si teorema este demonstrata.Simularea variabilei Beta(a, b) poate fi deci facuta cu (3.33). Dar

deoarece aceasta formula presupune generarea prealabila a doua vari-abile gamma, rezulta ca aceasta metoda are o complexitate mare. Deaceea, in cazuri particulare se pot folosi urmatoarele teoreme [5, 10]:

Teorema 3. 12 Fie a, b ∈ N+ si n = a + b − 1 si sa consideramvariabilele U1, U2, ..., Un uniforme 0 − 1. Sa construim statisticile deordine U(1) < U(2) < ... < U(n) prin ordonarea valorilor Ui1≤i≤n.Atunci U(a) Beta(a, b).

Page 84: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.5. SIMULAREA UNOR VARIABILE PARTICULARE 83

Nu prezentam demonstratia acestei teoreme.

Teorema 3. 13 Daca 0 < a < 1, 0 < b < 1 si U1, U2 sunt variabile

aleatoare uniforme 0 − 1 si independente si daca V = U1a1 , T = U

1b2 ,

atunci repartitia variabilei X = VV +T

conditionata de V + T < 1 esteBeta(a, b).

Teorema 3. 14 Daca 0 < a < 1, b > 1 si U1, U2 sunt variabile uni-

forme 0 − 1 independente si consideram V = U1a1 , T = U

1b−1

2 , atuncirepartitia variabilei V conditionata de V + T < 1 este Beta(a, b).

Demonstratie. Intrucat demonstratiile ultimelor doua teoreme suntasemanatoare, vom prezenta numai demonstratia ultimei teoreme, folo-sind calea urmata cu ocazia demonstratiei teoremei 3.11.

Mai intai observam ca

F (x) = P (V < x) = P (U1a < x) = P (U < xa) = xa, x ∈ [0, 1]

de unde rezulta ca densitatea de repartitie a lui V este

f(x) = axa−1, x ∈ [0, 1].

In mod asemanator densitatea de repartitie a lui T este

h(y) = (b− 1)yb−2, y ∈ [0, 1].

Rezulta ca densitatea comuna de repartitie a variabilelor V, T -independen-te este

g(x, y) = a(b− 1)xa−1yb−2

iar

P (V + T < 1) = a(b− 1)∫ 1

0(∫ 1−x

0yb−2dy)xa−1dx = aB(a, b).

Deci densitatea comuna a variabilelor (V, T ) conditionata de V +T < 1este

p(x, y) =b− 1

B(a, b)xa−1yb−2, x ∈ [0, 1], y ∈ [0, 1].

Page 85: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

84 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

De aici rezulta ca densitatea lui V conditionata de V + T < 1 este

q(x) =∫ 1−x

0p(x, y)dy =

1

B(a, b)xa−1(1− x)b−1

si teorema este demonstrata.Algoritmii ce rezulta din aceste ultime teoreme sunt usor de con-

struit. Vom prezenta algoritmul ce rezulta din teorema 3.13.

Algoritmul BETA13 pentru simularea variabilei Beta(a, b), 0 <a, b < 1repeat

Genereaza U1, U2 uniforme 0− 1 si independente;

Ia V = U1a1 , T = U

1b2 ;

until V + T < 1;Calculeaza X = V

V +T.

Probabilitatea de acceptare a acestui algoritm de respingere este

pa =ab

a+ bB(a, b). (3.34)

Algoritmul de respingere construit pe baza teoremei 3.14 are probabil-itatea de acceptare

pa = aB(a, b). (3.34′)

3.5.4 Repartitia normala

Desigur, ne vom opri la simularea variabilei Z N(0, 1) caci dacastim sa simulam aceasta variabila atunci X N(m, σ) se simuleazacu formula X = m + Zσ. In tabelul 3.2 este prezentata metoda desimulare a variabilei N(0, 1), bazata pe teorema limita centrala, daraceasta metoda este aproximativa. De aceea in aceasta subsectiunevom prezenta alte metode, exacte.•O metoda de compunere-respingere. Sa consideram variabila

normala standard N(0, 1), notata cu X1, care are densitatea

f1(x) =

0, daca x < 0√

2πe−

x2

2 , daca x ≥ 0.(3.35)

Page 86: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.5. SIMULAREA UNOR VARIABILE PARTICULARE 85

De aici deducem ca densitatea lui X2 = −X1 este

f2(x) =

√2πe−

x2

2 , daca x < 00, daca x ≥ 0

. (3.35′)

Deci densitatea lui Z N(0, 1) se scrie

f(x) =1

2f1(x) +

1

2f2(x)

adica este o compunere discreta a densitatilor f1(x) si f2(x). Pentru aconstrui un algoritm de simulare a lui Z va trebui sa construim maiintai un algoritm de simulare a lui X1.

Vom infasura densitatea f1(x) cu h(x) Exp(1). Rezulta teorema

Teorema 3. 15 Daca infasuram f1(x) cu h(x) avem

f1(x)

h(x)≤ α =

√2e

π(3.36)

si deci putem aplica teorema de respingere a infasuratoarei pentru sim-ularea variabilei X1.

Demonstratie. Observam ca

r(x) =f1(x)

h(x)=

√2

πe−

x2

2+x

iar ecuatia r′(x) = 0, are solutia x0 = 1 care este un punct de maximpentru r(x), adica,

r(x) ≤ r(x0) =

√2e

π

ceea ce demonstreaza teorema.Algoritmul pemtru simularea lui Z N(0, 1) este

Algoritmul RJNORM de compunere respingere pentru simulareanormalei N(0, 1)repeat

Genereaza U uniform 0− 1;Genereaza Y Exp(1);

Page 87: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

86 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

until u ≤ e−Y 2

2+Y −0.5;

Ia X1 := Y ;Genereaza U uniform 0− 1;if U ≤ 0.5 then s := 1 else s := −1; (s este un semn aleator);Ia Z := sX1.

Se observa ca probabilitatea de acceptare este

pa =

√π

2e≈ 0.72 (3.36′)

adica, in medie, din patru perechi (U, Y ), trei sunt acceptate pentru aproduce un X1.

• Metoda polara. O alta metoda interesanta de simulare a vari-abilei N(0, 1) este metoda polara data de urmatoarea teorema [10] da-torata lui Box si Muller.

Teorema 3. 16 Daca variabilele U1, U2 sunt uniforme 0 − 1 si inde-pendente, atunci variabilele aleatoare

Z1 = V1

√−2logS

S, Z2 = V2

√−2logS

S(3.37)

unde

V1 = 2U1 − 1, V2 = 2U2 − 1, S = V 21 + V 2

2 , S < 1

sunt variabile normale N(0, 1) independente.

Demonstratie. Sa observam mai intai ca (V1, V2) este un vector aleatoruniform pe patratul I2 = [−1, 1] × [−1, 1] iar Vi, i = 1, 2 sunt uni-forme pe [−1, 1] si independente. Conditia S < 1 face ca vectorul(V1, V2)|S < 1 (conditionat de S < 1!) sa fie vector uniform pe cerculunitate. De aceea sa exprimam Vi in coordonate polare, adica

V1 = Rcosθ, V2 = Rsinθ, 0 ≤ R ≤ 1, 0 ≤ θ ≤ 2π.

Identificand ultimele relatii cu (3.37) rezulta ca

S = R2, Z1 =√−2logS cosθ, Z2 =

√−2logS sinθ. (3.37′)

Page 88: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.5. SIMULAREA UNOR VARIABILE PARTICULARE 87

Pe de alta parte, insasi Z1, Z2 se pot exprima direct in coordonatepolare si anume

Z1 = R′cosθ′, Z2 = R′sinθ′ (3.38)

de unde identificand (3.37’) cu (3.38) avem

θ′ = θ, R′ =√−2logS

si deoarece (V1, V2) independente pe I2, rezulta ca si (R, θ) sunt in-dependente, precum si (R′, θ′) sunt independente (dar nu pe cerculunitate!). Deoarece (V1, V2) are o repartitie uniforma pe cercul unitate,rezulta ca θ′ are o repartitie uniforma pe [0, 2π] adica are densitatea

ϕ(θ) =

12π, daca θ ∈ [0, 2π]

0, altfel.(3.39)

Sa determinam acum repartitia lui R′. Avem

F (r) = P (R′ ≤ r) = P (√−2logS ≤ r).

Dar deoarece S = R2 este uniforma pe [0, 1] rezulta ca

F (r) = P (S > e−r2

2 ) = 1− e− r2

2

deci densitatea de repartitie a lui R′ este

ψ(r) = re−r2

2 , r ∈ [0, 1]. (3.40)

Pentru a demonstra teorema trebuie sa aratam ca functia de repartitiea variabilelor Z1, Z2 date de (3.37) este produsul a doua functii derepartitie normale N(0, 1). Pentru aceasta sa consideram domeniile

D(r,θ) = (r, θ); rcosθ ≤ z1, rsinθ ≤ z2

D(x,y) = (x, y); x ≤ z1, y ≤ z2.Avem

F (z1, z2) = P (Z1 ≤ z1, Z2 ≤ z2) =∫ ∫

D(r,θ)

1

2πe−

r2

2 rdrdθ

Page 89: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

88 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

si dupa efectuarea schimbarilor de variabila

θ = arctg(x

y), r =

√x2 + y2

deducem

F (z1, z2) =1

∫ ∫D(x,y)

e−x2+y2

2 dxdy =1√2π

∫ z1

−∞e−

x2

2 dx1√2π

∫ z2

−∞e−

y2

2 dy

si teorema este demonstrata.Algoritmul corespunzator metodei polare se deduce cu usurinta si

el produce simultam doua valori de selectie N(0, 1), Z1 si Z2, indepen-dente.

Din demonstratia teoremei rezulta ca variabilele Z1, Z2 pot fi simu-late si cu formulele

Z1 =√−2logU1cos(2πU2), Z2 =

√−2logU1sin(2πU2). (3.41)

In varianta bazata pe (3.37) se resping valorile pentru care S ≥ 1 sideci probabilitatea de acceptare este

pa =π

4(3.41′)

in timp ce varianta bazata pe (3.41) nu presupune nicio respingere.Totusi complexitatea calculului expresiilor (3.41) poate sa mareascatimpul de calcul fata de cazul (3.37), ceea ce poate da castig de cauzavariantei (3.37) (din cauza functiilor sin, log,etc., consumatoare de timp).

3.6 Simularea unor variabile discrete

Pentru simularea unei variabile discrete ce ia un numar finit de val-ori se poate folosi algoritmul SIMDISCRV din sectiunea 3.1 bazatpe metoda inversa. Daca X este o variabila discreta care ia ca val-ori sirul an1≤n≤∞ si se cunoaste functia de fracventa f(i) = P (X =ai), f−calculabila, atunci folosind proprietatea limi→∞ f(i) = 0, (de-dusa din

∑∞i=1 f(i) = 1) se poate construi usor un algoritm bazat pe

metoda respingerii (macar aproximativ!) si in acest caz.In aceasta sectiune vom prezenta insa algoritmi pentru simularea

unor repartitii particulare.

Page 90: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.6. SIMULAREA UNOR VARIABILE DISCRETE 89

3.6.1 Simularea unor repartitii bazate pe probe

Bernoulli

Vom prezenta mai intai ce intelegem prin probe Bernoulli [10].Fie un eveniment aleator observabil A care are probabilitatea con-

stanta p = P (A) > 0. Intr-o experienta intamplatoare se poate pro-duce A cu probabilitatea p sau evenimentul contrar A cu probabilitateaq = 1 − p. O astfel de experienta se numeste proba Bernoulli. Candse produce A spunem ca avem de-a face cu un succes, iar cand a nuse produce spunem ca se realizeaza un esec. Sa asociem unei probeBernoulli variabila aleatoare Z astfel incat Z = 1 daca se produce A siZ = 0 daca se produce A, adica Z are repartitia

Z :

(0 1q p

), E(Z) = p, V ar(Z) = pq = p(1− p). (3.42)

Functia de repartitie a lui Z este

F (x) = P (Z < x) =

0, daca x < 0q, daca 0 ≤ x < 11 daca x ≥ 1.

(3.42′)

De aici rezulta ca algoritmul de simulare a lui Z prin metoda inversaeste

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

Sa observam din nou ca daca p = 12

atunci suntem in cazul particularal aruncarii la intamplare cu banul (tragerea la sorti).

• Repartitia binomiala. Se spune ca variabila aleatoare discretaX ∈ N este o variabila binomiala Binom(n, p), n ∈ N+, 0 < p < 1 dacaX =numarul de succese in n probe Bernoulli independente, adica

X =n∑

i=1

Zi

unde Zi sunt variabile identic repartizate Bernoulli, independente.Simularea variabilei X se face deci simplu, prin numararea de suc-

cese in n probe Bernoulli independente.

Page 91: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

90 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Se poate deduce cu usurinta ca

P (X = α) = Cαnp

αqn−α, q = 1− p,

adica P (X = α) este termenul general al dezvoltarii binomului (p+q)n,de unde deriva si denumirea de repartitie binomiala.

Functia caracteristica a variabilei binomiale este

ϕ(t) = E[eitX ] = E[eit∑

jZj ] = (q + peit)n. (3.43)

Cu ajutorul functiei caracteristice se calculeaza usor media si dispersialui X, adica

EX = E(n∑

i=1

Zi) =n∑

i=1

E(Zi) = np,

V ar(X) = V ar(n∑

i=1

Zi) =n∑

i=1

V ar(Zi) = npq (3.43′)

iar din teorema limita centrala se deduce ca pentru n suficient de mare(n→∞) variabila

Wn =X − np√npq

N(0, 1).

De aici rezulta urmatorul algoritm simplu de generare a lui X

Binom(n, p), n = mare [10].

Algoritmul BINNORMGenereaza W N(0, 1);Calculeaza X := np +W

√npq. (Notatia E inseamna ”cel mai

apropiat intreg de E”).

Observatie. Variabila Binom(n, p) are si o interpretare in termenide experiment cu o urna. Astfel, sa presupunem ca intr-o urna avemA bile albe si B bile negre, A + B = N. Presupunem ca se realizeazaextractii succesive din urna si dupa fiecare extractie se introduce bilaextrasa la loc in urna (experienta cu bila ”intoarsa”). Fie p = A/Nprobabilitatea de a extrage o bila alba intr-o extractie. De aici rezultaca X= numarul de bile albe in n extractii succesive cu intoarcere esteo variabila binomiala Binom(n, p).

Page 92: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.6. SIMULAREA UNOR VARIABILE DISCRETE 91

•Repartitia Pascal [10]. VariabilaX are repartitia Pascal(k, p), k ∈N+, 0 < p < 1, daca X = numarul de esecuri pana la aparitia a ksuccese intr-un sir oarecare de probe Bernoulli independente. De aicirezulta ca variabila X Pascal(k, p) se simuleaza cu urmatorul al-goritm care numara esecurile realizate pana la realizarea a k succeseintr-un sir de probe Bernoulli independente.

Algoritmul PASCAL

Intrare k ∈ N+, p, 0 < p < 1; X := 0; j := 0; (X numara esecurilesi j-succesele);

repeat

Genereaza U := random; if U < p then j := j+1 else X := X+1;

until j = k.(X este valoarea de selectie generata).

Sa observam ca

P (X = α) = Ck−1α+k−1p

kqα, α = 0, 1, 2, ...

care este termenul general al dezvoltarii in serie a expresiei pk(1− q)−k

din care cauza repartitia Pascal(k, p) se mai numeste si repartitia bi-nomiala cu exponent negativ. De aici se deduce si faptul ca dacaX1 Pascal(k1, p) siX2 Pascal(k2, p), sunt variabile independente,atunci (X = X1 + X2) Pascal(k1 + k2, p), adica repartitia Pascaleste stabila. (Demonstratia se poate face simplu utilizand functia car-acteristica).

Se arata ca

E(X) =kq

p, V ar(X) =

kq

p2, (3.44)

formule ce se folosesc la validarea algoritmului.

Observatie. Interpretarea cu urna din cazul repartitiei Binom(n, p)se poate adapta si in cazul repartitiei Pascal(k, p). Astfel, numarul Xde bile negre extrase cu intoarcere pana cand se obtin k bile albe, esteo variabila Pascal(k, p).

• Repartitia geometrica Geom(p) [10] este un caz particular derepartitie Pascal, cand k = 1. Simularea variabilei X Geom(p) sepoate realiza cu algoritmul PASCAL sau cu metoda inversa dupa cumurmeaza:

Page 93: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

92 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Fie P (X = x) = pqx, x = 0, 1, 2, ... si sa notam

F (x) = P (X < x) =x−1∑i=0

pqi = 1− qx, x = 0, 1, 2, ...

care este o functie de repartitie discreta. (P (X = x) este termenulunei progresii geometrice, de unde si numele de repartitie geometrica).Simularea variabilei geometrice se poate realiza prin metoda inversa cuformula

X =

[log(U)

log(q)

]. (3.45)

unde[a] este partea intreaga a lui a. Din (3.44) se deduce ca pentruvariabila geometrica X avem

E(X) =q

p, V ar(X) =

q

p2, (3.44′)

formule care de asemena se pot folosi la validarea algoritmului.

3.6.2 Repartitia hipergeometrica

Aceasta repartitie se introduce dupa cum urmeaza [10].Sa consideram experimentul cu urna descris in legatura cu repartitia

binomiala, cu deosebirea ca aici cele n bile se extrag la intamplare dinurna, fara intoarcere. In acest caz numarul X de bile albe extrase esteo variabila hipergeometrica. Sa notam cu u evenimentul care reprezintaextragerea unei bile albe si cu v evenimentul care consta in extragereaunei bile negre; atunci probabilitatile de a extrage in prima extragereo bila alba respectiv neagra, sunt respectiv p = P (u) = A/N, P (v) =B/N. Probabilitatile de extragere a unei bile albe sau negre in a douaextragere sunt conditionate de rezultatele primei extrageri adica

P (u|u) =A− 1

N − 1, P (u|v) =

A

N − 1, P (v|u) =

B

N − 1, P (v|v) =

B − 1

N − 1.

Se observa deci ca la fiecare extragere compozitia urnei se schimba siprobabilitatea de a extrage o bila alba sau neagra este variabila infunctie de extragerile anterioare. Variabila hipergeometrica se noteazaH(N, p, n), 0 < p < 1, n < N, de unde A = Np (x, x ∈ R este

Page 94: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.6. SIMULAREA UNOR VARIABILE DISCRETE 93

cel mai apropiat intreg de x), B = N − A. Se demonstreaza ca proba-bilitatea ca in n extractii succesive fara intoarcere, sa se extraga a bilealbe este

P (X = a) =Ca

ACn−aB

CnN

, 0 ≤ a ≤ n, n < N. (3.46)

De asemenea se arata ca

E(X) = np, E(X2) =np

N − 1[n(Np− 1) +N(1− p)],

V ar(X) = np(1− p)N − nN − 1

. (3.47)

Avand in vedere cele mentionate, algoritmul de simulare a variabileihipergeometrice X este

Algoritmul HIPERGEOMIntrare A,B,N, N = A+B, n;(Acesta este un pas pregaritor);Calculeaza p = A/N ; Initializeaza j := 0, X := 0;

repeatGenereaza U := random; Ia j := j + 1;if U < p then begin

X := X + 1; S := 1 (S-a estras o bila alba);end elseS := 0; (S-a extras o bila neagra);

Calculeaza N := N − 1, A := A− S, p := AN

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

Formulele (3.47) se pot folosi la validarea algoritmului.

3.6.3 Repartitia Poisson

Variabila aleatoare X, X ∈ N are repartitia Poisson(λ), λ > 0 daca

P (X = α) =λα

α!e−λ, λ > 0. (3.48)

Functia caracteristica a variabilei Poisson(λ) este

ϕ(t) = E(eitX) =∞∑

α=0

(eitλ)α

α!e−λ = eλeit

e−λ = eλ(eit−1) (3.49)

Page 95: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

94 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

de unde deducem

E(X) = λ, E(X2) = λ2 + λ V ar(X) = E(X2)− λ2 = λ. (3.49′)

Repartitia Poisson(λ) este repartitia evenimentelor rare in sensul urmator:evenimentele sunt independente si se produc la intervale aleatoare detimp astfel incat un eveniment se produce pe intervalul de timp [t, t+∆t]cu probalilitatea λ∆t+O(δt) unde

lim∆t→0

O(∆t) = 0, lim∆t→0

O(∆t)

∆t= 0

(O(∆T ) este neglijabila in raport cu ∆t) iar probabilitatea ca pe acelasinterval sa se produca mai mult de un eveniment (conditia de raritate)este O(∆t) (adica este neglijabila). Numarul de evenimente rare cese produc pe unitatea de timp este o variabila aleatoare Poisson(λ).Numarul λ este intensitatea cu care se produc evenimentele rare.

Se arata ca intervalul de timp θ la care se produc doua evenimenterare consecutive are o repartitie Exp(λ), fapt care spune ca X = j − 1daca

∑j−1i=1 θi ≤ λ <

∑ji=1 θi. Tinand acum seama de faptul ca θi =

−logUi/(λ), Ui uniforme 0− 1, atunci rezulta ca

X = j − 1 daca ,j−1∏i=1

Ui ≥ e−λ >j∏

i=1

Ui. (3.50)

Pe baza relatiei (3.50) se poate construi cu usurinta un algoritm pen-tru simularea lui X iar cu formulele (3.49’) se poate realiza validareaalgoritmului.

Repartritia Poisson poate fi dedusa din repartitia binomialaBin(n, p);sa notam λ = np si sa presupunem ca n → ∞ si p → 0, λ ramanandconstant. Tinand seama de (3.43) rezulta ca functia caracteristica avariabilei Binom(n, p) se scrie sub forma

ϕ(t) =

(1 +

λ(eit − 1)

n

)n

eλ(eit−1)

care conform (3.49) este functia caracteristica a variabilei Poisson.De aici rezulta ca simularea variabilei Poissonb(λ) se poate realiza

(aproximativ!) in felul urmator.

Page 96: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.7. VALIDAREA GENERATORILOR 95

0. Se alege o probabilitate p ≈ 0 (de ex p = 0.001);1. Se determina n = λ/p intreg (n este in acest caz mare);Se simuleaza X Binom(n, p).(Simularea variabilei binomiale se poate face utilizand ca mai sus

teorema limita centrala).

3.7 Validarea generatorilor

Vom prezenta in finalul acestui capitol cum se poate face validarea al-goritmilor cu care se simuleaza diversele tipuri de variabile aleatoare.Validare inseamna nu numai verificarea corectitudinii formale a pro-gramelor ci in special daca algoritmul implementat (programat) pro-duce valori de selecttie asupra variabilei aleatoare in cauza, adica dacape baza unei selectii X1, X2, ..., Xn, de volum n suficient de mare severifica ipoteza statistica H : X F (x), care se mai numeste si ipotezade concordanta.

Mai intai ar trebui sa verificam intuitiv daca repartitia empirica saurepartitia de selectie se aseamana cu cea teoretica. Mai precis trebuiesa construim grafic histograma si sa vedem daca ea se aseamana cudensitatea de repartictie.• Constructia histogramei se face astfel:- se determina mai intai m = min(X1, X2, ..., Xn),

M = max(X1, X2, ..., Xn) care reprezinta intervalul de variatie [m,M ];- se alege un intreg pozitiv k, (practica recomanda 15 ≤ k ≤ 40)

care reprezinta numarul de intervale ale histogramei;- se imparte intervalul [m,M ] in k intervale Ii = [ai−1, ai), 1 ≤ i ≤

k, a0 = m, ak = M ;- se determina fi = numarul valorilor de selectie ce cad in intervalul

[ai−1, ai), 1 ≤ i ≤ k; fi se numesc frecvente absolute;- se determina frecventele relative ri = fi

n.

Repartitia empirica este

(I1, I2, ..., Ikr1, r2, ..., rk

). (3.51)

Acum sa reprezentam grafic (3.51) astfel: luam pe abscisa intervalele Iisi construim dreptunghiuri care au ca baza aceste intervale si ca inaltimi

Page 97: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

96 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

ri. Graficul obtinut reprezinta histograma selectiei X1, X2, ..., Xn date.(Ea este histograma frecventelor relative; asemanator se obtine si his-tograma frecventelor absolute).

x

y

0a0 a1 a2 a3 ak−2 ak−1 ak

I1 I2 I3 Ik−1 Ik

r1

r2

r3

rk−1

rk

f(x)

Fig.3.1. Histograma.

In Fig. 3.1 se prezinta o histograma; ea sugereaza ca linia punc-tata reprezinta forma densitatii de repartitie. Din aceasta reprezentaregrafica putem formula ipoteza H cu privire la functia de repartitie F (x)a variabileiX asupra careia s-a efectuat selectia simulata X1, X2, ..., Xn.In Fig. 3.2 se prezinta forma graficelor unor densitati de repartitie con-siderate in acest capitol.

Cand construim histograma unei selectii obtinuta prin simulare nuputem determina mai intai m,M si apoi sa construim Ii si fi, 1 ≤ i ≤ kdecat daca memoram ad literam toata selectia (ceea ce impune folosireaunei selectii de volum n mic) sau daca repetam simularea selectieifolosind aceeasi samanta a generatorului (ceea ce impune consum detimp de calcul dublu).

De aceea vom folosi urmatoarele idei pentru constructia histogramei:- simulam mai intai un numar mic n1 de valori de selectieX1, X2, ..., Xn1,

n1 << n pe care le memoram;- cu ajutorul acestei selectii determinam urmatoarele limite ale inter-

valelor histogramei: a1 = minX1, X2, ..., Xn1, ak−1 = maxX1, X2, ..., Xn1

Page 98: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.7. VALIDAREA GENERATORILOR 97

si cu ajutorul lor determinam intervalele I2, ..., Ik−1 de lungimi egale cuh = (ak−1−a1)/(k−2), adica Ii = [ai−1, ai), 2 ≤ i ≤ k−1, ai = ai−1+hi;

- cu ajutorul selectiei de volum n1 determinam (partial!) frecventeleabsolute fi, 2 ≤ i ≤ k−1 (utilizand pentru numarare formula (3.52) demai jos ;deocamdata a0 si ak nu sunt cunoscute!); luam a0 = a1, ak =ak−1 care vor fi modificate ulterior; initializam f1 = 0, fk = 0;

- simulam pe rand celelalte n−n1 valori de selectie si pentru fiecareX astfel simulat efectuam urmatoarele operatii: daca X < a1 atunciluam a0 = min(a0, X) si f1 := f1 + 1; daca X > ak−1 atunci luamak = max(ak, X) si fk := fk + 1; altfel daca a1 ≤ X < ak−1 atuncicalculam

j :=[X − a1

h

]+ 2, fj := fj + 1; (3.52)

Cand s-au prelucrat toate cele n− n1 valori de selectie, s-au deter-minat toate elementele histogramei, care dupa reprezentarea si inter-pretarea grafica conduce la formularea ipotezei de concordanta.

Sa remarcam ca aceasta ultima constructie conduce la o histogramacu k − 2 intervale egale, iar intervalele I1, Ik sunt de lungimi oarecare.

Daca am fi ales arbitrar m,M si am fi construit apoi histograma cain constructia precedenta, atunci histograma obtinuta ar fi putut aveamulte frecvente fi = 0 si eventual frecventele f1 si/sau fk foarte mari,fapt care nu ne-ar fi putut conduce la o formulare corecta a ipotezei deconcordanta H. In concluzie, algoritmul cel mai bun, de constructie alhistogramei unei selectii simulate asupra unei variabile aleatoare X, cuscopul de a valida algoritmul de simulare, este urmatorul:

Algoritmul HISTOGRAMAIntrare n, n1, k; Consideram tabela f [1..k] si initializam:

for j := 1 to k do f [j] := 0;Consideram tabela xi[1..n1]; Consideram tabela a[0..k];for i := 1 to n1 do begin Genereaza X si ia xi[i] := X; end;Calculeaza a[1] := min(xi[1], xi[2], ..., xi[n1]),a[k− 1] = max(xi[1], xi[2], ..., xi[n1]), h := (a[k− 1]− a[1])/(k− 2);

for i := 1 to n1 do j := trunc(xi[i]−a[1]h

) + 2, f [j] := f [j] + 1;Ia a[0] := a[1], a[k] := a[k − 1];

for i := 1 to n− n1 do beginGenereaza un X;if a[1] < X < a[k − 1] then begin

Page 99: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

98 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

j := trunc(X−a[1]h

) + 2, f [j] := f [j] + 1;end

else if X ≤ a[1] then begina[0] := mina[0], X, f [1] := f [1] + 1;

endelse begina[k] := maxa[k], X; f [k] := f [k] + 1

end;end.

a) b)

c) d)

(0, λ)

0 0

0 0

x x

x x

y y

y y

m− σ m m + σ

0 < ν < 1ν > 1

Fig. 3.2. Graficele unor densitati de repartitie.a) Densitatea exponentiala Exp(λ).b) Densitati de tipul Gamma(0, 1, ν), Weibull(0, 1, ν).c) Densitatea normala N(m, σ).d) Densitatea de repartitie de tip Student.

Page 100: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.7. VALIDAREA GENERATORILOR 99

• Testul χ2. Odata construita histograma putem aplica testul deconcordanta χ2 pentru verificarea ipotezei H : X F (x).

Pentru aceasta calculam intai probabilitatile

p1 = F (a1), pi = F (ai)− F (ai−1), 2 ≤ i ≤ k − 2, pk = 1− F (ak−1).

Calculam apoi

χ2 =k∑

j=1

(fi − npi)2

npi(3.53)

care se stie ca are repartitia hi patrat cu k − 1 grade de libertate,(χ2

k−1 este variabila corespunzatoare). Fiind dat riscul de genul I, α,( o probabilitate mica, apropiata de zero) determinam χ2

k−1,α (numitaα-cuantila superioara) astfel incat

P (χ2k−1 > χ2

k−1,α) = α. (3.53′)

Ipoteza H se accepta daca

χ2 < χ2k−1,α (3.53′′)

si se respinge in caz contrar.•Un test simplu. Cel mai simplu mod de testare a unui generator

care simuleaza o variabila neuniforma X se poate realiza astfel:- Se determina cateva momente teoretice ale lui X ca de ex. m =

E[X] si σ2 = V ar[X];- Cu ajutorul selectiei simulate X1, X2, ..., Xn se calculeaza mo-

mentele empirice de selectie

X =

∑ni=1Xi

n, s2 =

∑ni=1X

2i

n−X2

;

Se considera ca generatorul este bun daca pentru n suficient de mare(n > 1000) valorile lui X si s2 sunt tot mai apropiate de m si σ2, ca oconsecinta a legii numerelor mari. Se presupune ca momentele teoreticem, σ2 sunt cunoscute.

ExercitiiE.3.1. Fie variabila X f(x) unde

f(x) = kg(x) g(x) =x(2− x), daca x ∈ [0, 2]0, altfel

.

Page 101: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

100 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Sa se determine constanta k si sa se precizeze o metoda de simulare alui X.

Solutie. Impunand conditia∫R f(x)dx = 1, se obtine k = 4/3 si

F (x) =

0, daca x < 0x2 − x3

3, 0 ≤ x ≤ 2

1 daca x > 1

iar simularea se poate face prin metoda inversa calculandu-se numericsolutia X ∈ [0, 2] a ecuatiei F (X) = U.

E.3.2. Variabila aleatoare Y are densitatea de repartitie

f(y) =

0 daca y < 02λye−λy2

, daca y ≥ 0.

Daca X Exp(λ) sa se arate ca Y =√X de unde se deduce metoda

de simulare a lui Y.Solutie Intr-adevar

P (Y < t) = P (√X < t) = P (X < t2) =

0, daca t < 01− e−λt2 daca t ≥ 0.

E.3.3. Fie X1 Binom(n1, p) X2 Binom(n2, p) X1, X2 inde-pendente. Aratati ca (X1 +X2) Binom(n1 + n2, p).

Solutie. Se foloseste functia caracteristica

ϕXj(t) = (q + peit)nj , j = 1, 2

si ϕX1+X2(t) = ϕX1(t)ϕX2(t). (Repartitia binomiala este stabila).E.3.4. Fie X F (x), Y G(x) independente. Sa se determine

functia de repartitie a variabilei Z = max(X, Y ). Sa se precizeze deaici cum se poate simula variabila Z H(x) unde

H(x) =

(1− e−λx)(1− 1

(1+θx)c ) daca x ≥ 00, daca x < 0.

Solutie. Se observa ca Z H(x) = F (x)G(x), X Exp(λ), Y

Lomax(θ, c) de unde Z = max(X, Y ).E.3.5. Fie X Poisson(λ), Y Poisson(µ) independente.Sa se

arate ca (X|X + Y = n) Binom(n, λλ+µ

).

Page 102: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

3.7. VALIDAREA GENERATORILOR 101

Solutie. Avem (X + Y ) Poisson(λ+ µ) si deci

P (X = r|X + Y = n) =P (X = r,X + Y = n)

P (X + Y = n)=

=e−λλre−µµr

r!(n− r)!n!

e−(λ+µ)(λ+ µ)n= Cr

n

λrµn−r

(λ+ µ)n, r = 0, 1, ..., n.

E.3.6. Fie X f(x) unde

f(x) =

0, daca x < 01λexp−ex−1

λ+ x daca x ≥ 0

, λ > 0

numita repartitia valorii extreme. Sa se descrie o metoda pentru simu-larea lui X.

Solutie. Se aplica metoda inversa.E.3.7. Fie Y Exp(1) siX = k exp (Y

a). Sa se determine repartitia

lui X.Solutie.Se deduce prin calcul direct ca

F (x) = P (X < x) =

0 daca x < 01−

(xk

)−adaca x ≥ 0.

Se aplica metoda inversa.E.3.8. Fie Z1, Z2 variabile normale N(0, 1), independente. Sa se

arate ca

U =2

πarctg

Z1

Z2 uniformaU(−1, 1).

Solutie. Densitatea de repartitie comuna a lui Z1, Z2 este

f(x1, x2) =1

2πe−

x21+x2

22 .

Deci

P (U < y) = P (Z1

Z2< tg(2πy)) =

∫ ∫x1/x2<tg(2πy)

e−x21+x2

22 dx1dx2 = y.

E.3.9. Fie X si Y doua variabile exponentiale de parametru 1,independente. Sa se determine repartitia variabilei T = X − Y.

Page 103: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

102 CAP. 3. SIMULAREA VARIABILELOR NEUNIFORME

Solutie. Densitatea comuna de repartitie este

g(x, y) = e−x−y, x > 0, y > 0.

Facem transformarea

t = x− y, v = y, J =D(x, y)

D(v, t)= 1

si calculam

h(t) =

∞∫0

g(x(t, v), y(v, t))|J |dv.

Se obtine in final

h(t) =

12ex daca x < 0,

12e−x daca x ≥ 0.

Deci densitatea lui T este de tip Laplace; variabila T se simuleaza decica diferenta de doua variabile Exp(1) independente.

E.3.10. Variabila aleatoare X are densitatea f(x) = 34(1−x2), x ∈

[−1, 1] si f(x) = 0, x /∈ [−1, 1]. Sa se simuleze X.Solutie. Se poate aplica metoda respingerii folosind infasuraroarea

h(x) = 12, x ∈ [−1, 1];h(x) = 0, x /∈ [−1, 1] (adica h(x)-uniforma pe

[−1, 1]). Se obtinef(x)

h(x)≤ α =

3

2, etc.

Se poate folosi si metida inversa. Avem

F (x) =

0, x < 0,3x−x3+2

4, x ∈ [−1, 1],

1, x > 1.

Se ia solutia x0 ∈ [−1, 1] a ecuatiei F (x) = U. (Ecuatia poate avea treisolutii!).

Page 104: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

Cap. 4

Simularea vectorilor aleatori

4.1 Generalitati

Un vector X = (X1, X2, ..., Xk)′ (vector coloana) ale carui componente

Xi sunt variabile aleatoare, se numeste vector aleator. Cazul in carecomponentele sunt independente stochastic este desigur banal de aceeacazul cel mai interesant este cand componentele Xi sunt dependentesau corelate.

Functia de repartitie a vectorului X este

F (x) = F (x1, x2, ..., xk) = P (X1 < x1, X2 < x2, ..., Xk < xk) (4.1)

si ea se mai numeste functia de repartitie comuna a lui X1, X2, ..., Xksau functia de repartitie multidimensionala. Desigur,

F (−∞, ...,−∞) = 0, F (+∞, ...,+∞) = 1, F (..., xi, ...) ≤ F (..., yi, ...), xi < yi

(adica F este monotona pe componente). Functia f(x1, x2, ..., xk)definita de relatia

f(x) = f(x1, x2, ..., xk) =∂kF (x1, x2, ..., xk)

∂x1∂x2...∂xk

(4.2)

cand derivata partiala exista, se numeste densitate de repartitie multi-dimensionala a lui X.

Functia de repartitie P (Xi < xi) = F (+∞, ...,+∞, xi,+∞, ...,+∞) =Fi(xi) se numeste functie de repartitie marginala a lui Xi, iar fi(xi) =

103

Page 105: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

104 CAP. 4. SIMULAREA VECTORILOR ALEATORI

F ′i (xi) ( cand derivata exista) se numeste densitate de repartitie marginala

a luiXi. Se pot defini functii de repartitie marginale pentru 2, 3, ..., k−1componente, etc. De exemplu functia de repartitie marginala Fij(xi, xj) =P (Xi < xi, Xj < xj) = F (+∞, ..., xi, ..., xj , ... +∞), 1 ≤ i, j ≤ k core-spunde componentelor Xi, Xj ale vectorului X. Au loc relatiile

F (x) = F (x1, ..., xk) =∫ x1

−∞...

∫ xk

−∞f(u1, ..., uk)du1...duk =

∫ x

−∞f(u)du.

(4.3)Daca variabilele Xi, 1 ≤ i ≤ k sunt independente atunci

F (x1, x2, ..., xk) = F1(x1)F2(x2)...Fk(xk) (4.4)

sau analog pentru densitati

f(x1, x2..., xk) = f1(x1)f(x2)...fk(xk). (4.4′).

Cand exista integralele

mi = E(Xi) =∫ +∞

−∞xifi(xi)dxi,

mij = E(XiXj) =∫ +∞

−∞

∫ +∞

−∞xixjfij(xixj)dxidxj

acestea se mumesc momente de ordinul I, respectiv de ordimul II. Ex-presiile

σij = E[(Xi−mi)(Xj−mj)] =∫ +∞

−∞

∫ +∞

−∞(xi−mi)(xj−mj)fij(xi, xj)dxidxj

cand integralele exista, se numesc momente centrate; in acest caz, σij

se numeste covarianta lui Xi cu Xj si se noteaza σij = Cov(Xi, Xj). Seobserva ca σii = Cov(Xi, Xi) = V ar(Xi) = σ2

i . Este usor de aratat cadaca Xi este independent de Xj, i = j, atunci

mij = E(XiXj) = mimj = E(Xi)E(Xj), σij = Cov(Xi, Xj) = 0.

Este satisfacuta inegalitatea lui Schwarz, adica

|Cov(Xi, xj)| ≤√V ar(Xi)V ar(Xj) sau |σij | ≤ σiσj .

Page 106: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

4.1. GENERALITATI 105

Se numeste coeficient de corelatie al variabilelor Xi si Xj marimea

ρij = Corr(Xi, Xj) =Cov(Xi, Xj)√V ar(Xi)V ar(Xj)

. (4.5)

Se observa ca ρ ∈ [−1, 1] si el are urmatoarea interpretare: ρij ≈0 ⇒ Xi depinde foarte putin deXj; daca ρij < 0, atunci Xi si Xj suntinvers corelate iar daca ρij > 0, atunci Xi si Xj sunt direct corelate;daca |ρij | ≈ 1 atunci Xi si Xj sunt puternic corelate.

Pentru un vector aleator mediilemi definesc un vector m = (m1, m2,..., mk)

′ numit vectorul valoare medie notat E(X) iar covariantele σij

definesc o matrice Σ = ||σij, || (care este pozitiv definita, Σ 0) si senoteaza Σ = Cov(X,X′).

Vom defini acum notiunea de repartitie conditionata. Presupunemca X are densitatea de repartitie f(x) si sa consideram descopmunerealui X in doi subvectori X = (X(1),X(2))′ unde X(1) este un vectorr−dimensional iar X(2) este un vector q−dimensional, r < k, r+q = k.Definim densitatea de repartitie conditionata f(x(1)|x(2)) a lui X(1) candX(2) = x(2) astfel

f(x(1)|x(2)) =f(x(1),x(2))∫+∞

−∞ f(y(1),x(2))dy(1), unde f(x) = f(x(1),x(2)). (4.6)

Cu aceasta densitate se definesc, cand exista, E[X(1)|X(2) = x(2)],Cov(X(1),X(1)′ |X(2) = x(2)) adica media conditionata, respectiv ma-tricea de covarianta conditionata. Uneori este necesar sa simulam(X(1)|X(2) = x(2)), cand se cunoaste repartitia conditionata.

Metoda inversa este valabila si in cazul simularii vectorilor aleatori.Fie F (x) = F (x1, x2, ..., xk) = P (X1 < x1, ..., Xk < xk), functia derepartitie a lui X si fie F1(x1) = P (X1 < x1) functia de repartitiemarginala a lui X1, si F1...i(x1, ..., xi) = P (X1 < x1, ..., Xi < xi) functiade repartitie marginala a lui (X1, ..., Xi)

′ . Fie de asemenea functiile derepartitie conditionate F2(x1, x2) = P (X2 < x2|X1 = x1) = F (x2|x1),F3(x1, x2, x3) = P (X3 < x3|X1 = x1, X2 = x2) = F (x3|x1, x2),Fi(x1, x2, ..., xi) = P (Xi < xi|X1 = x1, ...,Xi−1 = xi−1) = F (xi|x1, ..., xi−1),2 ≤ i ≤ k. Sa notam cu F−1

i inversa functiei Fi(x1, x2, ..., xi) in ra-port cu xi. Atunci are loc urmatoatea teorema (metoda inversa pentruvectori).

Page 107: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

106 CAP. 4. SIMULAREA VECTORILOR ALEATORI

Teorema 4. 1 Daca Ui, 1 ≤ i ≤ k sunt variabile aleatoare uniforme0−1 independente atunvi vectorul aleator Y = (Y1, Y2, ..., Yk)

′ ale caruicomponente sunt

Y1 = F−11 (U1), Y2 = F−1

2 (Y1, U2), Yi = F−1i (Yi, ..., Yi−1, Ui), 2 ≤ i ≤ k

(4.6′)are functia de repartitie F (x).

Demonstratie. Avem

P (Y1 < x1) = P (F−11 (U1) < x1) = P (U1 < F (x1)) = F1(x1),

P (Y1 < x1, Y2 < x2) = P (Y2 < x2|Y1 = x1)P (Y1 < x1) =

= P (F−12 (Y1, U2) < x2|Y1 = x1)F1(x1) = P (U2 < F2(x1, x2))F1(x1) =

= F2(x1, x2)F1(x1) = F12(x1, x2).

Repetand procedeul precedent obtinem pentru (Y1, ..., Yi)′

P (Y1 < x1, ..., Yi−1 < xi−1, Yi < xi) =

= P (Y1 < x1, ..., Yi−1 < xi−1, F−1i (Y1, ..., Yi−1, Ui) < xi) = F1...i(x1, ..., xi).

Dar

F1...k(x1, ..., xk) = F (x1, ..., xk)

ceeace trebuia demonstrat. De aici se deduce urmatorul algoritm pen-tru simularea vectorului aleator X cand se cunosc inversele F−1

i alefunctiilor de repartitie conditionate Fi(x1, ..., xi−1, xi) in raport cu xi.

Algoritmul AIMULT pentru metoda inversa multidimensionala.Genereaza U := random; Calculeaza Y1 = F−1

1 (U);for i := 2 to k do begin

Genereaza U := random;Calculeaza Yi := F−1

i (Y1, ..., Yi−1, U);end.

Vectorul Y = (Y1, Y2, ..., Yk)′ are functia de repartitie F (x) conform

teoremei 1.

Page 108: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

4.2. SIMULAREA VECTORILOR UNIFORMI. 107

Exemplul 4.1. Simularea repartitiei Gumbel bidimensionale. Pre-supunem ca vectorul aleator (X, Y )′ are functia de repartitie

F (x, y) =

1− e−x − e−y + e−(x+y+θxy, daca x > 0, y > 0,0, altfel

, 0 < θ < 1.

Se observa ca

F1(x) =

1− e−x, daca x > 0,0, altfel

adica repartitia marginala a lui X este Exp(1).Prin calcule simple (utilizand (4.6)) se deduce ca

f2(y|x) =

e−y(1+θx)(1 + θx)(1 + θy)− θ, daca y > 0,0, altfel

si deci functia de repartitie a lui Y conditionata de X = x este

F2(y|x) =

[1− e−y(1+θx)][1 + θ(1 + x)], daca y > 00, altfel

Putem deci aplica teorema 1 pentru simularea lui (X, Y )′ astfel

Algoritmul GUMBELIntrare θ; (Acesta este un pas pregatitor);Genereaza X Exp(1);Genereaza U := random; Genereaza Y rezolvand ecuatia

[1− e−Y (1+θX)][1 + θ(1 +X)] = U ;U ∈ (0,∞).

Teorema infasuratoarei se poate aplica si in cazul vectorilor aleatori.(Vezi exercitiul E4.5).

4.2 Simularea vectorilor uniformi.

Vectorul aleator k−dimensional V = (V1, V2, ..., Vk)′ are repartitie uni-

forma pe domeniul marginit D ⊂ Rk daca densitatea sa de repartitieeste

f(v) =k, dacav ∈ D,0, dacav /∈ D , k =

1

mesD, mesD =

∫Ddv. (4.7)

Page 109: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

108 CAP. 4. SIMULAREA VECTORILOR ALEATORI

Rezulta ca V are repartitie uniforma pe intervalul I = [a1, b1]×[a2, b2]×...× [ak, bk] −∞ < ai < bi < +∞, 1 ≤ i ≤ k daca

f(v) =

1k∏

i=1

(bi−ai)

, dacav ∈ I

0, dacav /∈ I.(4.7′)

Din (4.7’) rezulta ca daca V este uniform pe I atunci Vi sunt variabileuniforme pe [ai, bi] si independente deoarece

f(v1, v2, ..., vk) =k∏

i=1

fi(vi), fi(vi) =

1

bi−ai, daca vi ∈ [ai, bi]

0, daca vi /∈ [ai, bi].(4.7′′)

De aici se deduce urmatorul algoritm simplu pentru simularea vectoru-lui V uniformpe I.

Algoritmul VUNIFINT de simulare a vectorului uniform pe in-terval

Intrare ai, bi, 1 ≤ i ≤ k;

for i := 1 to k do begin

Genereaza U := random; Ia Vi := ai + (bi − ai)U ;

end.

Pentru a simula un vector aleator W uniform pe D ⊂ Rk (D fiindun domeniu oarecare), nu mai este adevarata (4.7”). Dar sa observamca daca D ⊆ I si V e uniform pe I atunci restrictia lui V la D ( vectorulnotat W), este un vector uniform pe D.

De aici rezulta urmatorul algoritm de respingere pentru simularealui W.

Algoritmul VECTUNIFD de simulare a vectorului uniform pedomeniu oarecare:

Construieste un interval minimal I = [a1, b1] × ... × [ak, bk] astfelincat D ⊆ I; (Acest interval exista deoarece D este marginit).

repeat

Genereaza V uniform pe I;

until V ∈ D;

Ia W := V.

Page 110: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

4.3. SIMULAREA VECTORILOR NORMALI 109

Probabilitatea de acceptare a acestui algoritm este

pa =mesD

mesI=

mesDk∏

i=1[bi − ai]

de unde se deduce ca pentru a obtine un interval I cat mai bun, acestatrebuie sa fie minimal astfel incat D ⊆ I.

4.3 Simularea vectorilor normali

Vectorul aleator k−dimensional X are repartitia normala N(µ,Σ) dacadensitatea sa este

f(x;µ,Σ) =1

(2π)k/2[det(Σ)]1/2e−

12(x−µ)′Σ−1(x−µ), x ∈ Rk. (4.8)

Se arata ca

E(X) = µ, Cov(X,X′) = Σ. (4.8′)

Formulele precedente se deduc usor cu ajutorul functiei caracteristice.In cazul variabilei normale X N(m, σ) conform teoremei 3.7 functiacaracteristica este

ϕ(t) = eitm− t2σ2

2 .

Prin analogie, in cazul multidimensional functia caracteristica este

ϕ(t) = E[eit′X] =∫

Rke

ik∑

j=1

tjxj

f(x;µ,Σ)dx

care dupa efectuarea unor calcule devine

ϕ(t) = eit′µ− t′Σt2 .

Facand deci analogie cu functia caracteristica a variabilei normaleN(m, σ)rezulta ca µ si Σ au semnificatia din formulele (4.8’). Sa notam cu Zvectorul normal N(0, I) unde I este matricea unitate k−dimensionala

Page 111: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

110 CAP. 4. SIMULAREA VECTORILOR ALEATORI

iar 0 este vectorul nul din Rk. Se constata cu usurinta ca densitateaf(z) a lui Z satisface proprietatea

f(z) =k∏

i=1

fi(zi), fi(zi) =1√2πe−

z2i2 (4.9)

adica componentele Zi ale lui Z sunt independente si normale N(0, 1).Deci, simularea lui Z N(0, I) se realizeaza simplu astfel

Algoritmul VECNORMSTD de generare a vectorului normalstandard.

for i := 1 to k do beginGenereaza T N(0, 1); Ia Zi := T ;end.

Pentru a simula X N(µ,Σ) vom folosi mai intai teorema

Teorema 4. 2 Daca Y N(0,Σ) si C este o matrice k × k iar µeste un vector k × 1 atunci

X = µ+ CY N(µ,CΣC′).

Demonstratie. Deoarece X este o combinatie liniara de variabile nor-male (componentele lui Y), el are tot o repartitie normala si deci avem

E(X) = µ+ CE(Y) = µ+ 0 = µ,

Cov(X,X′) = Cov[(CY), (CY)′] = CΣC′ (4.10)

si teorema este demonstrata.Fiind data matricea Σ 0 (pozitiv definita) se stie ca exista o

matrice C = ||cij||, C 0, inferior triunghiulara (adica cij = 0, i < j),astfel incat CC ′ = Σ. Matricea C este matricea Choleski. De aicideducem teorema

Teorema 4. 3 Daca Z N(0, I), µ este un vector k × 1 si C estematricea Choleski a lui Σ, atunci X = µ+ CZ N(µ,Σ).

Demonstratie. Din teorema 4.1 avem E(X) = µ si Cov(X,X′) =CIC ′ = CC ′ = Σ si teorema este demonstrata.

Page 112: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

4.3. SIMULAREA VECTORILOR NORMALI 111

Matricea C se determina cu ajutorul matricii Σ = ||σij|| cu formulelelui Choleski

ci1 =σi1

σ11, 1 ≤ i ≤ k

cii =

√√√√σii −i−1∑r=1

c2ir, 1 < i ≤ k

cij =σij −

j−1∑r=1

circjr

cjj, 1 < j < i ≤ k (4.11)

cij = 0, 1 < i < j < k.

Simularea vectorului X N(µ,Σ), dupa ce se calculeaza intr-un paspregatitor matricea C a lui Choleski se realizeaza cu urmatorul algoritm

Algoritmul NORMMULT de simulare a vectorului normalIntrare µ,C;Genereaza Z N(0, I) cu algoritmul VECNORMSTD;Calculeaza X = µ+ CZ.

Uneori este necesar sa simulam un subvector al unui vector normalcand se da celalalt subvector. Mai precis daca X = (X(1),X(2))′

N(µ,Σ), cu X(1) vector r−dimensional si X(2) vector q−dimensional,r + q = k, se cere sa se simuleze X(1) conditionat de X(2) = x(2).

Sa consideram scrierea celulara a lui µ si Σ, adica

µ =

(µ(1)

µ(2)

),

(Σ11 Σ12

Σ21 Σ22

). (4.12)

Daca µ si Σ sunt cunoscute atunci este adevarata urmatoarea teorema

Teorema 4. 4 Repartitia conditionata a lui X(1) cand se da X(2) =x(2) este normala N(µ

(1)∗ ,Σ∗

11) unde

µ(1)∗ = µ(1) + Σ12Σ

−122 (x(2) − µ(2)), Σ∗

11 = Σ11 − Σ12Σ−122 Σ21. (4.13)

Nu prezentam demonstratia acestei teoreme.De aici se deduce algoritmul de simulare a lui X(1) conditionat de

X(2) = x(2) si anume

Page 113: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

112 CAP. 4. SIMULAREA VECTORILOR ALEATORI

Algoritmul NORMCOND de simulare conditionata.

Intrare x(2), µ(i), Σij , i, j = 1, 2;

Calculeaza µ(1)∗ , Σ∗

11;

Genereaza Z(1) N(0, Ir×r);

Calculeaza C∗ astfel incat C∗C∗′ = Σ∗11;

Calculeaza X(1)∗ = µ

(1)∗ + C∗Z(1).

Rezultatul este X(1)∗ N(µ

(1)∗ ,Σ∗

11).

• O metoda speciala. Presupunem ca matricea de covarianta Σare elementele de forma

σij =

σ2

i daca i = j, σi > 0σiσjλiλj daca i = j, λi ∈ [−1, 1].

(4.13′)

Se arata simplu ca daca Z N(0, I) este un vector normal (k +1)−dimensiolal, Z = (Z0, Z1, Z2, ..., Zk)

′, atunci

Xi = µi + σi(√

1− λ2iZi + λiZ0), 1 ≤ i ≤ k (4.13′′)

este un vector normal N(µ,Σ), µ = (µ1, µ2, ..., µk)′.

Intr-adevar, deoarece Zi N(0, 1) rezulta ca Xi sunt normale sideci X = (X1, X2, ..., Xk)

′ are repartitie normala multidimensionala. Inplus avem

E(Xi) = µi, V ar(Xi) = σ2i (1− λ2 + λ2) = σ2

i , σij = Cov(Xi, Xj) =

E[(Xi−µi)(Xj−µj)] = E[σi(√

1− λ2iZi+λiZ0)σj(

√1− λ2

jZj+λjZ0)] =

= σiσjE[√

(1− λ2i )(1− λ2

j )ZiZj + λj

√1− λ2

iZ0Zj+

+λi

√1− λ2

jZ0Zi + λiλjZ20 ] = σiσjλiλj, i = j

adica σij este dat de (4.13’). Simularea vectorului normal in acest cazspecial se face determinand componentele sale cu formula (4.13”).

Page 114: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

4.4. SIMULAREA REPARTITIEI CAUCHY MULTIDIMENSIONALE113

4.4 Simularea repartitiei Cauchy multidi-

mensionale

In capitolul precedent s-a introdus repartitia Cauchy standard a careidensitate este

f(x) =1

π(1 + x2)(4.14)

si care se poate simula cu ajutorul metodei inverse (vezi tabelul 3.1). Sepoate arata ca daca Z1, Z2 sunt variabile normale N(0, 1) independente,atunci variabila

X =Z1

Z2

(4.15)

are repartictia Cauchy standard.Din aceasta proprietate rezulta deci o metoda simpla de simulare

a variabilei X-Cauchy standard unidimensionale ca raport de variabilenormale N(0, 1) independente.

O variabila Y are repartitia Cauchy(c, σ) daca densitatea sa este

g(x) =1

σ.

1

1 + (x−c)2

σ2

, c ∈ R, σ > 0. (4.16)

Simularea lui Y se va face cu formula Y = c+ σX.In mod asemanator se poate introduce repartitia Cauchy standard

multidimensionala. Vectorul aleator X are repartitia Cauchy standardmultidimensionala daca densitatea sa de repartitie este de forma

f(x) =Γ(

k+12

k+12

1

(1 + x′x)k+12

, x ∈ Rk. (4.15′)

Ca si in cazul unidimensional se arata ca daca Z este un vector k−dimensi-onal normal N(0, I) si η este o variabila normala N(0, 1) independentade Z, atunci X se poate simula cu formula

X =Z

η. (4.15′′)

Se poate considera si repartitia multidimensionala Cauchy(c,Σ) careare densitatea de forma

g(x) =Γ(k+1

2)

πk+12 (detΣ)

12

1

[1 + (x− c)′Σ−1(x− c)]k+12

. (4.16′)

Page 115: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

114 CAP. 4. SIMULAREA VECTORILOR ALEATORI

Relatia dintre vectorul Cauchy standard X si vectorul Y Cauchy(c,Σ)este asemanatoare relatiei dintre vectorul Z normal N(0, I) si vectorulY normal N(c,Σ), adica daca X are repartitie Cauchy standard siY Cauchy(c,Σ) si consideram matricea S inferior triunghiularaastfel ca Σ = SS′, atunci Y se poate genera cu formula

Y = SX + c. (4.16′′)

Combinand (4.15’) cu (4.16”) rezulta ca Y Cauchy(c,Σ) se simuleazacu formula

Y =Z∗

η(4.17)

unde Z N(0,Σ), independent de η N(0, 1).

4.5 Simularea repartitiei multinomiale

Aceasta repartitie este generalizarea multidimensionala a repartitieibinomiale. Vectorul aleator cu componente intregi nenegative X =(X1, X2, ..., Xk)

′, X1 + X2 + ... + Xk = n, are repartitia multinomialaMultinom(n, p1, p2, ..., pk) daca

P (X1 = n1, X2 = n2, ..., Xk = nk) =n!

n1!n2!...nk!pn1

1 pn21 ...p

nkk ,

n1 + ...+ nk = n, pi > 0, 1 ≤ i ≤ k, p1 + p2 + ...pk = 1. (4.18)

Se arata ca

mi = E[Xi] = npi, σ2i = V ar[Xi] = npi(1− pi) = Cov(Xi, Xi),

σij = Cov(Xi, Xj) = E[XiXj]− E[Xi]E[Xj ] = (4.18′)

= n(n− 1)pipj − n2pipj = −npipj , i = j.

Vectorul X are o interpretare asemanatoare variabilei binomiale incazul unui experiment cu urna dupa cum urmeaza: sa presupunem caintr-o urna se gasesc Ni bile de culoarea i, 1 ≤ i ≤ k,N = N1 + N2 +...Nk. Se presupune ca se extrag n bile din urna cu intoarcere, din careXi sunt bile de culoarea i, n = X1 +X2 + ...Xk. Atunci vectorul aleator

Page 116: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

4.6. SIMULAREA REPARTITIEI DIRICHLET. 115

X = (X1, X2, ..., Xk)′ are repartitiaMultinom(n, p1, ..., pk), pi = Ni/N ,∑

i pi = 1.Aceasta interpretare ne conduce la urmatorul algoritm pentru sim-

ularea lui X

Algoritmul MULTINOM de simulare a repartitiei multinomiale

Intrare n, k, p1, p2, ..., pk si calculeaza F [α] =α∑

i=1pi, 1 ≤ i ≤ k;

(Acesta este un pas pregatitor);Initializeaza X[1] = 0, ..., X[k] = 0;for i := 1 to n do begin

Simuleaza U := random; Ia i := 1;while U ≥ F [i] do i := i+ 1;Insumeaza X[i] := X[i] + 1;

end.

Testarea algoritmului se face in mod simplu astfel- Se genereaza selectia de volum T, X(α) = (X

(α)1 , ..., x

(α)k )′, 1 ≤ α ≤

T ;- Se calculeaza mediile aritmetice si dispersiile empirice

X i =1

T

T∑α=1

X(α)i , s2

i =1

T

T∑i=1

[X(α)i ]2 −Xi

2.

Pentru validarea algoritmului, trebuie, ca pentru un T mare sa avemmi ≈ X i, σ

2i ≈ s2

i , unde mi si σ2i sunt date de (4.18’).

4.6 Simularea repartitiei Dirichlet.

Un vector aleator X are repartitia Dirichlet(ν1, ν2, ..., νk+1) daca den-sitatea sa de repartitie este

f(x1, x2, ..., xk) =

Γ(ν1+...+νk+1)Γ(ν1)...Γ(νk+1)

xν11 ...x

νkk (1− x1 − ...− xk)

νk+1, x ∈ Sk

0, daca x /∈ Sk

x = (x1, ..., xk)′, Sk = (x1, ..., xk)

′ ∈ Rk, xi ≥ 0, 1 ≤ i ≤ k,∑

i

xi ≤ 1.(4.19)

Page 117: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

116 CAP. 4. SIMULAREA VECTORILOR ALEATORI

Se arata ca daca Yi Gamma(0, 1, νi), 1 ≤ i ≤ k + 1 sunt variabilegama independente, atunci vectorul X ale carui componente sunt deforma

Xi =Yi

Y1 + Y2 + ...+ Yk+1, 1 ≤ i ≤ k, (4.20)

are o repartitie Dirichlet(ν1, ν2, ..., νk+1). Se observa deci ca repartitiaDirichlet este o extensie la cazul multidimensional a repartitiei Beta.Formulele (4.16) simuleaza componentele unui vector Dirichlet, pre-supunandu-se desigur ca parametri νi, 1 ≤ i ≤ k + 1 sunt cunoscuti.

Exercitii

E4.1 Sa se prezinte o metoda de simulare a unui vector V =(V1, V2)

′, uniform pe cercul C(O, r).Solutie. Se simuleaza un vector W = (W1,W2)

′ uniform pe [−r, r]×[−r, r] si se pune conditia ca el sa apartina cercului. Algoritmul este:

repeatGenereaza: U1 := random;U2 := random;

W1 := −r + 2rU1;W2 := −r + 2rU2;until W 2

1 +W 22 ≤ r2;

Ia V1 := W1; V2 := W2.

E4.2 Sa se prezinte o metoda de simulare a unui vector W =(W1,W2)

′ uniform pe elipsa de semiaxe a, b > 0.Indicatie. Se simuleaza un vector V = (V1, V2)

′ uniform pe intervalul[−a, a]× [−b, b] si se pune conditia ca V 2

1 /(a2) + V 2

2 /(b2) ≤ 1.

E4.3 Se considera vectorul X = (X1, X2, ..., Xk)′ undeXi Exp(λiη)

sunt independente iar η Gamma(0, b, a). Sa se determine densitateade repartitie a lui X si sa se indice un algoritm pentru simularea aces-tuia.

Solutie.Sa notam

g(η) =

ba

Γ(a)ηa−1e−ηb, daca η > 0

0, η ≥ 0.

Atunci densitatea de repartitie a lui X este

f(x1, x2, ..., xk) =

(

k∏i=1

λi)∫∞0 ηk+a−1 ba

Γ(a)e−

k∑i=1

xiλiη

e−bηdη, xi > 0

o, altfel

=

Page 118: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

4.6. SIMULAREA REPARTITIEI DIRICHLET. 117

=

ba

Γ(a)(

k∏i=1

λi)∫∞0 ηa+b−1e

−η(k∑

i=1

xiλi+b)

dη, daca xi > 0

0, altfel

=

=

ba

Γ(a)(

k∏i=1

λi)Γ(a+k)

(b+k∑

i=1

λixi)a+k

, xi > 0

0, altfel

=

=

(∏k

i=1θi)a(a+1)...(a+k−1)

(1+k∑

i=1

θixi)a+k

, daca xi > 0

0, altfel,

θi =λi

b.

Simularea lui X se poate face prin metoda compunerii.Se poate arata (folosind (4.6)) ca pentru xi > 0

f(xm|x1, ..., xm−1) =θm(a+m− 1)(1 +

m−1∑i=1

θixi)a+m−1

(1 +m−1∑i=1

θixi + θmxm)a+m

de unde

F (xm|x1, ..., xm−1) = 1−

1 +k−1∑i=1

θixi

1 +m∑

i=1θixi

a+m−1

.

Ultima formula permite simularea lui X utilizand teorema 4.1.E4.4 Fie vectorul aleator (X, Y )′ cu componente pozitive avand

densitatea de repartitie

f(x, y) =

α(α + β)e−(α+β)y, daca 0 ≤ x < yβ(α + β)e−(α+β)x daca 0 ≤ y < x

(repartitia bidimensionala a lui Freund). Sa se determine E(X), E(Y ),V ar(X), V ar(Y ) si sa se gaseasca o metoda de simulare a vectorului(X, Y )′.

Indicatie. Densitatile marginale si sunt

fX(x) = [α+xβ(α+β)]e−(α+β)x, x > 0, fY (y) = (α+β)e−(α+β)y, y > 0

Page 119: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

118 CAP. 4. SIMULAREA VECTORILOR ALEATORI

iarFx(x) = 1− (1 + βx)e−(α+β)x

de unde se pot calcula cu usurinta mediile si dispersiile.Pentru simulare se aplica metoda inversa (teorema 4.1) unde X

Fx(x) iar f(y|x) este de forma

f(y|x) =

β(α+β)α+β(α+β)x

daca 0 < y < xα(α+β)e−(α+β)(y−x)

α+β(α+β)xdaca y > x.

Se observa ca

f(y|x) = p1

xI(0,x) +(1−p)(α+β)e−(α+β)(y−x)I(x,∞), p =

β(α+ β)x

α + β(α+ β)x

adica f(y|x) este amestecarea densitatii uniforme pe [0, x] cu densitateaExp(α + β)) trunchiata pe (x,∞). (IA(x) este functia indicator a luiA).

E4.5 Enuntati si demonstrati teorema de respingere a infasuratoareipentru vectori aleatori. Aplicati aceasta metoda pentru simularea vec-torului (X, Y )′ din exemplul 4.4.

Solutie. Teorema infasuratoarei in cazul multidimensional este

Teorema 4. 5 Fie vectorul aleator X f(x) pe care dorim sa-l simulam.Fie Y h(x) pe care stim sa-l simulam. Presupundem ca f(x) sih(x) au acelas suport S ⊆ Rk si ca exista α, 0 < α < ∞ astfel incatf(x) ≤ αh(x), ∀x ∈ Rk. Daca U este o variabila uniforma 0− 1 inde-pendenta de Y, atunci densitatea de repartitie a lui Y conditionata de0 < U ≤ f(Y)

αh(Y)este f(x).

Pentru a aplica aceasta teorema in cazul exemplului 4.4 sa observamca densitatea de repartitie este

f(x, y) =

e−(x+y+θxy)[(1 + θx)(1 + θy)− θ], daca x, y > 00, altfel.

Pentru a aplica teorema infasuratoarei vom lua

h(x, y) =

e−(x+y) dacax > 0, y > 00 altfel,

Page 120: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

4.6. SIMULAREA REPARTITIEI DIRICHLET. 119

adica vectorul corespunzand densitatii infasuratoare are componenteleexponentiale Exp(1) independente.

E4.6. Fie U1, U2, ..., Un numere aleatoare uniforme pe [0, 1] inde-pendente si sa consideram aceste numere ordonate (adica statistica deordine) U(1) ≤ U(2) ≤ ... ≤ U(n). Notam U(0) = 0. U(n+1) = 1. Sa se arateca vectorul aleator (S1, S2, ..., Sn), Si = U(i) −U(i−1), 1 ≤ i ≤ n+ 1, arerepartitie uniforma pe simplexul

An = (x1, x2, ..., xn); xi ≥ 0,n∑

i=1

xi ≤ 1.

Solutie. Numerele U(1), ..., U(n) sunt uniform repartizate pe dome-niul (simplexul)

Bn = (x1, ..., xn); 0 ≤ x1 ≤ ... ≤ xn ≤ 1.Sa facem acum transformarea

s1 = u1; s2 = u2 − u1, , ..., sn = un − un−1

a carei inversa este

u1 = s1, u2 = s1 + s2, , ..., un = s1 + s2 + ... + sn.

Jacobianul acestei transformari este J = 1. Deoarece repartitia lui(U(1), ..., U(n)) este uniforma adica are densitatea

f(u1, ..., un) =

1

mes Bn, (u1, ..., un) ∈ Bn

0, (u1, ..., un) /∈ Bn

rezulta ca (S1, ..., Sn) are tot densitate uniforma pe An (transformatullui Bn) adica

g(s1, ..., sn) =

1

mes An(s1, ..., sn) ∈ An

0 (s1, ..., sn) /∈ An,mesAn = mesBnJ.

Nota. De aici rezulta ca simularea unui vector uniform pe dome-niul An ∈ Rn se realizeaza simuland U1, ..., Un uniforme pe [0, 1] inde-pendente, si calculand apoi (S1, ..., Sn) cu ajutorul statisticii de ordineU(1) ≤ U(2) ≤ ... ≤ U(n).

Page 121: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

120 CAP. 4. SIMULAREA VECTORILOR ALEATORI

E4.7 Folosind teorema 4.1 construiti un algoritm pentru simulareavectoruluialeator discret (X, Y )′ cu X si Y luand multimi finite devalori.

Indicatie. Repartitia discreta a lui (X, Y )′ este data de tabela decontingenta

Y = b1 . . . br pi.

X = a1 p11. . . .p1r p1.

a2 p21 . . .p2r p2.

. . . .as ps1 . . .psr ps.

p.1 . . .p.r

Repartitia marginala a lui X este

p1. p2. ... ps.

si cu ajutorul ei se simuleaza X, iar repartitia lui Y conditionata deX = ai este

pi1

pi.

pi2

pi.

...pir

pi.

si din ea se simuleaza Y. (In tabela si in formulele de mai sus, indiciiinlocuiti cu punct (.) noteaza rezultatele insumarilor pe coloane sau pelinii).

Nota. Daca pentru un vector bidimensional (X, Y ) se da o selectie(X1, Y1), (X2, Y2), ..., (Xn, Yn), cu ajutorul ei se poate construi o tabelade frecventa bidimensionala asemanatoare histogramei. Ea va fi deforma tabelei de mai sus unde in loc de pij se vor scrie frecventele fij .Aceasta se numeste tabela de contingenta.

Page 122: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

Cap. 5

Simularea proceselorstochastice

5.1 Generalitati

O familie de variabile aleatoare, Xtt∈T , T ⊂ R, deprinzand de parame-trul real t (presupus a fi timpul) se numeste proces stochastic. Daca Teste o multime discreta (deobicei T = 0, 1, 2, ...), atunci procesul senumeste lant. Daca T este un interval I ⊆ R atunci procesul este cutimp continuu. Valorile lui Xt se numesc stari. Fie S multimea valo-rilor unui proces stochastic. Daca multimea S este discreta spunem caprocesul este cu stari discrete iar daca S este de puterea continuumului,spunem ca procesul este cu stari continue. Multimea (t, Xt)|t ∈ T senumeste traiectorie a procesului stochastic.

Procesul stochastic este cunoscut daca pentru ∀n, t1, t2, ..., tn estecunoscuta functia de repartitieFt1,t2,...tn(x1, x2, ..., xn) = P (Xt1 < x1, ..., Xtn < xn).

Definitia 5. 1 Procesul stochastic Xtt∈T se numeste stationar taredaca ∀n, h ∈ R, t1 < t2 < ... < tn avem

Ft1+h,t2+h,...,tn+h(x1, x2, ..., xn) = Ft1,t2,...,tn(x1, x2, ..., xn). (5.1)

Procesul Xtt∈T se numeste stationar slab sau simplu stationardaca are momente de ordinul doi, adica exista si sunt finite mt =E[Xt], σst = Cov[Xs, Xt], s < t si mt = m = const, σst = σ(t− s).

121

Page 123: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

122 CAP. 5. SIMULAREA PROCESELOR STOCHASTICE

Observam ca pentru un proces stationar tare, avem in particular Ft+h(x) =Ft(x), adica procesul are aceeasi functie de repartitie la orice momentde timp t, dar variabilele Xt pot sa nu fie independente pentru diversevalori ale lui t. Daca variabilele Xt sunt independente atunci suntem incazul banal clasic, al unei familii de variabile aleatoare independente.

Se poate observa cu usurinta ca daca Xtt∈T este stationar tare siare momente de ordinul doi, atunci el este stationar; reciproc nu esteinsa adevarat.

In ceeace priveste simularea proceselor stochastice, ne intereseazasa producem cu calculatorul puncte ale unor traiectorii finite. In cazulunui lant de exemplu este necesar sa producem un numar finit de puncteale traiectoriei lantului. In cazul unui proces cu timp continuu simulamdintr-o traiectorie numai un numar finit de puncte ale acesteia, deobiceicorespunzand valorilor discrete ale timpului t = 0, 1, 2, ..., n. De faptproblema construirii unui algoritm de simulare a unui proces revine laurmatoarele: dandu-se o valoare X0 a procesului (presupusa a se aflape o traiectorie a sa la momentul t = 0), se cere sa se simuleze valoareaX1 aflata pe aceeasi traiectorie la momentul t = 1.

Desigur, problema simularii unui proces stochastic este mult maicomplicata decat a variabilelor aleatoare. In cele ce urmeaza ne vomocupa de simularea lanturilor si proceselor Markov si de simularea unorprocese stationare care au repartitii de probabilitate cunoscute.

5.2 Lanturi si procese Markov

Procesele si lanturile Markov sunt acelea care satisfac proprietatea luiMarkov.

Definitia 5. 2 Procesul Xtt∈T discret, este un proces Markov dacasatisface proprietatea

P (Xtn = xn|Xtn−1 = xn−1, ..., Xt1 = x1) = P (Xtn = xn|Xtn−1 = xn−1)(5.2)

adica procesul nu are memorie. Probabilitatile P (Xtn = xn|Xtn−1 =xn−1) se numesc probabilitati de tranzitie sau probabilitati de trecere.

Page 124: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

5.2. LANTURI SI PROCESE MARKOV 123

Daca T = 0, 1, 2, ..., n, si S = 1, 2, ..., m, atunci avem de-a face cuun lant Markov cu un numar finit de stari. Acest lant este caracteri-zat de vectorul π = (π1, π2, ..., πn)′ care reprezinta repartitia initiala astarilor si de multimea probabilitatilor de tranzitie Pij(s, t) = P (Xt =j|Xs = i), i, j ∈ S, s < t, s, t ∈ N.

Se arata ca probabilitatile de tranzitie satisfac relatia lui Chapman-Kolmogorov, adica

Pij(s, t) =∑k∈S

∑s≤r≤t

Pik(s, r)Pkj(r, t). (5.2′)

Observam ca Pij(s, t) definesc niste matrici de probabilitati de tranzitiecare au proprietatea ∑

j∈S

Pij(s, t) = 1. (5.3)

Daca t − s = 1 atunci matricile ||Pij(s, s + 1)||, s ∈ N sunt matricide probabilitati de tranzitie intr-un pas si matricile ||Pij(s, t)||, s, t ∈ Nsunt matrici de tranzitie in t − s pasi. Daca Pij(s, s + 1) = pij (adicaaceste probabilitati nu depind de momentele s cand au loc tranzitiileintr-un pas) spunem ca lantul Markov este omogen sau stationar.

Sa notam cu P matricea probabilitatilor de tranzitie intr-un paspentru un lant Markov omogen si cu P (n) matricea probabilitatilor detrecere in n pasi pentru acelas lant. Atunci din (5.2’) se deduce cuusurinta ca

P (n+1) = P (n)P = PP (n) = P n+1. (5.2′′)

Daca repartitia initiala π = (π1, π2, ..., πm)′ este cunoscuta atunci folosindformula probabilitatii totale

P (Xn = s) =m∑

j=1

P(n)sj πj (5.3)

deducem, utilizand si (5.2”) repartitia lantului omogen la momentul n,π(n), astfel

π(n) = P nπ, P = ||pij||,m∑

j=1

pij = 1. (5.4)

Daca o stare i a unui lant omogen are proprietatea ca exista un j, j = iastfel incat pij > 0, atunci starea i este stare de tranzitie, iar dacapii = 1 atunci starea i este stare absorbanta. (Cand lantul intra intr-ostare absorbanta, el nu mai paraseste acea stare).

Page 125: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

124 CAP. 5. SIMULAREA PROCESELOR STOCHASTICE

5.3 Simularea unui lant Markov

Sa presupunem ca se cunoaste repartitia initiala π = (π1, π2, ..., πm)′ simatricea probabilitatilor de tranzitie P = ||pij||. Atunci starea initialaI = i se simuleaza ca variabila discreta

I :

(1, 2, ..., m

π1, π2, ..., πm

). (5.5)

Daca lantul se afla in starea i atunci starea aleatoare urmatoare in caretrece lantul se simuleaza ca variabila discreta

J :

(1, 2, ..., m

pi1, pi2, ..., pim

). (5, 5′)

Deci, algoritmul de simulare a unei traiectorii i1, i2, ..., in cand se dauπ, P este

Algoritmul MARKOVOMOG de simulare a lantului omogen

Citeste π, P = ||pij||; Citete n;calculeaza fi =

∑iα=1 πα, Fij =

∑jα=1 piα, 1 ≤ i ≤ m; (Acestea sunt

calcule pregatitoare);genereaza U := random; i := 1 : while U ≥ fi do i := i+ 1;

for k := 1 to n dobeginGenereaza U := random; Ia j := 1;while U ≥ Fij do j := j + 1;Ia i := j, ik = i; Scrie ik;end.

In mod asemanator se poate face si simularea lantului neomogen,daca se cunosc probabilitatile de tranzitie intr-un pas Pij(s, s+ 1), 1 ≤s ≤ n. In acest caz, probabilitatile Pij(s, s + 1) sunt citite in cadrulciclului for al algoritmului cand se calcululeaza pe rand si probabilitatilecumulate Fij .

Sa mai observam ca daca lantul Markov are o stare absorbantai0, celelalte fiind de tranzitie, atunci din orice stare initiala i ar porniprocesul, exista o traiectorie finita de lungime N(i) astfel incat X1 =i, ..., XN(i)

= i0, adica lantul se opreste in starea absorbanta i0.

Page 126: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

5.4. SIMULAREA UNOR PROCESE GAUSIENE STATIONARE125

Pentru un proces Markov cu o multime continua S de stari Xtt∈T

se presupune data densitatea de repartitie initiala p(x) > 0, x ∈ S sidensitatea de probabilitate de tranzitie q(x, y) > 0, x, y ∈ S, densitaticare satisfac conditiile

∫Sp(x)dx = 1,

∫Sq(x, y)dy = 1. (5.6)

Algoritmul in acest caz este

Algoritmul MARKOVCONT de simulare a unui proces Markovcontinuu

Intrare n; (n =numarul de puncte ale traiectoriei);

genereaza starea initiala X0 p(x);

for i := 1 to n− 1 do

begin

Genereaza Y q(X0, y);

Ia Xi := Y ;X0 := Y ; Scrie Xi;

end.

Punctele traiectoriei generate sunt X0, X1, ..., Xn−1.

5.4 Simularea unor procese gausiene sta-

tionare

Fie procesul stationar care are functia de autocovarianta

φ(t) = Cov(Xs, Xs+t), t = 0, 1, 2, ... φ(0) = V ar(Xt) = σ2 (4.7)

si fara a pierde generalitatea consideram mt = m = 0. Daca notamρ(Xs, Xt+s) = Corr(Xs, Xt+s) rezulta ca ρ(Xs, Xt+s) = ρ(t), t = 1, 2, ...Functia ρ(t) este functia de autocorelatie a procesului.

Daca pentru orice t, repartitia lui Xt este normala N(0, σ), atunciprocesul Xtt∈T este un proces gausian.

Page 127: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

126 CAP. 5. SIMULAREA PROCESELOR STOCHASTICE

5.4.1 Procesul gausian cu functie de autocorelatie

exponentiala

Acest proces are functia de autocorelatie

ρ(t) =φ(t)

φ(0)= θt, t = 1, 2, ... 0 < θ < 1 (5.8)

si sa consideram σ2 dispersia sa. Acest proces se simuleaza cu formulade recurenta

Z0 N(0, 1), Zt+1 = θZt +√

1− θ2εt, t = 1, 2, ..., Xt+1 = σZt+1

(5.8′)unde εt, t = 1, 2, ... sunt variabile N(0, 1) independente si independentede Zt. Intr-adevar, Zt+1 are repartitie normala si V ar(Xt) = σ2 si

Cov(Zt, Zt+1) = Cov(Zt, Zt+1) = E[Zt, Zt+1] = E[Zt(θZt+√

1− θ2εt)] =

= E[θZ2t ]E[√

1− θ2Ztεt] = θ +√

1− θ2E[Zt]E[εt] = θ.

Asemanator

Cov[Zt, Zt+2] = E[θZtZt+1] + E[Zt

√1− θ2εt] =

= θθ + E[Zt+1]E[εt]√

1− θ2 = θ2.

Prin inductie se deduce ca E[Z1Zt+1] = θt si formula (5.8’) este justifi-cata. Aceasta formula iterativa permite deci simularea unei traiectoriiX1, X2, ..., Xn. Se observa ca σ nu joaca un rol important si de aceeaputem considera σ = 1.

5.4.2 Procesul gausian cu functie de autocorelatieliniara

Sa presupunem ca pentru un intreg m dat functia de autocorelatie aprocesului gausian Xt este de forma

ρ(t) =

1− tm, daca 1 ≤ t ≤ m

o, altfel, Cov(Xt, Xt+k) = Φ(k), (5.9)

Page 128: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

5.4. SIMULAREA UNOR PROCESE GAUSIENE STATIONARE127

ρ(k) =Φ(k)

Φ(0), V ar(Xt) = σ2

∗ = Φ(0)

si dorim sa simulam un proces gausian Xt cu aceasta functie deautocorelatie si cu V ar(Xt) = σ2

∗.Vom simula Xt utilizand teorema limita centrala. Pentru aceasta

sa consideram variabilele aleatoare Vi,i ≥ 1, independente si uniformdistribuite pe [−a, a], a > 0 cu a−dat. Avem deci

E[V ] = 0, V ar[V ] =a2

3= σ2. (5.10)

Pentru a genera procesul gausian Xtt∈N de medie 0 si dispersie σ2∗ ,

alegem mai intai N > 10 (impus de teorema limita centrala) si unnumar natural p, p > 0 a carui valoare va fi precizata mai jos. Simulamvalorile de selectie Xt, Xt+1, t ∈ N, astfel

Xt =n∑

i=1

Vi, Xt+1 =N+p∑

i=p+1

Vi, (5.11)

si vom determina a, σ, p astfel incat

Corr(Xt, Xt+k) = ρ(k). (5.12)

Deoarece in expresiile lui Xt, Xt+1 apar N−p variabile Vi independente,avem

Cov[Xt, Xt+k] = E(Xt −Xt+k)2 = EX2

t − 2XtXt+k +X2t+k =

= E(Xt −Xt+k)2 = 2Nσ2 − 2Φ(k). (5.12)

Daca k < N/p atunci in expresia E[(Xt − Xt+k)2] exista numai 2kp

variabile de selectie Vi independente stochastic, de unde

E[(Xt −Xt+k)2] = 2kp2 = 2Nσ2 − 2Φ(k)→ kp2 = Nσ2 − Φ(k).

Din ultima relatie deducem ca

ρ(k) =Φ(k)

Nσ2= 1− k p

N

Page 129: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

128 CAP. 5. SIMULAREA PROCESELOR STOCHASTICE

si identificand cu prima relatie (5.9) trebuie sa luam

p =N

m

pentru a obtine expresia ceruta a lui ρ(k).Trebuie sa determinam acum valoarea lui a. Deoarece V ar(Xt) =

Nσ2 = σ2∗ si conform (5.10) a = σ

√3, rezulta ca trebuie sa avem

σ =σ∗√N

a =σ∗√N

√3.

In concluzie, dandu-se m, σ∗ si N (de ex. N = 12,) simularea procesu-lui gausian cu functia de autocorelatie data de prima formula (5.9) serealizeaza cu urmatorul algoritm

Algoritmul PRGAUSLIN de simulare a procesului gausian cufunctie de autocorelatie liniara

Intrare m, σ∗, N ; Calculeaza a := σ∗√N

√3; Determina p intreg astfel

incat p = Nm

; (Daca pentru m dat si N initial ales nu exista intregul pastfel incat N = mp atunci se alege alt N > 10 pentru care sa poata fideterminat p. Calculele precedente sunt calcule pregatitoare);

for i := 1 to N do beginX0 := 0; Genereaza U := random;Calculeaza W := −a+ 2aU ; Vi := W ; X0 := X0 + Vi;end:

Scrie X0; X1 := 0; (*)for i := 1 to N − p do begin Vi := Vi+p;X1 := X1 + Vi end;for i := N − p+ 1 to N do begin

Genereaza U := random; W := −a+ 2aU ; Vi := W ;X1 := X1 + Vi; Scrie X1;end.

Repetand de T ori instructiunile algoritmului precedent ce incep cucalculul sumei X1 (instructiunea *) se obtine traiectoria X1, X2, ..., XT

a procesului gausian.

• Simularea procesului de zgomot alb pur. Procesul zgomo-tului alb Xtt∈T este descris de urmatoarele relatii de recurenta

X0 =

√1− θ1 + θ

V0, Xt = θXt−1 + (1− θ)Vt, 0 < θ < 1, (5.13)

Page 130: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

5.5. SIMULAREA PROCESULUI POISSON 129

undeVt, t = 0, 1, 2, ... sunt variable aleatoare independente si identicreparrtizate avand proprietatile E(Vt) = 0, V ar(Vt) = σ2. Se observaca

E(Xt) = 0, V ar(Xt) = σ2∗ =

1− θ1 + θ

σ2. (5.14)

Se deduce apoi ca

Corr(Xt, Xt+k) = ρ(k) = θk. (5.15)

Intr-adevar, deoarece Xt−1 este independent de Vt rezulta ca

Φ(1) = Cov(Xt, Xt−1) = E[Xt, Xt−1)] = θE[X2t−1] = θσ2

∗ .

Prin inductie se arata ca

Φ(k) = Cov(Xt, Xt+k) = θkσ2∗

si (5.15) este demonnstrata.Algoritmul pentru simularea zgomotului alb este usor de construit.Daca Vt, t = 0, 1, ... sunt variabile unifirme pe [−a, a] cu a dat,

atunci procesul Xtt∈T se numeste zgomot alb pur. Desigur, asemanatorcelor de mai sus se deduce ca

E[Vt] = 0, V ar(Vt) = σ2 =a2

3, V ar(Xt) = σ2

∗ =1− θ1 + θ

σ2

de unde, dandu-se θ si σ∗ avem

σ = σ∗

√1 + θ

1− θ , a = σ√

3.

Cu aceste elemente se construieste usor algoritmul de simulare alzgomotului alb pur pe baza relatiei (5.13).

5.5 Simularea procesului Poisson

Procesul Poisson este un caz particular de proces de nastere si deces(vezi $ 7.1.1), mai precis este un proces de nastere pur cu intensitateaλn = λ, a carui repartitie satisface eceatiile diferentiale

P ′0(t) = −λP0(t), P ′

n(t) = −λPn(t) + λPn−1(t), n ≥ 1. (5.16)

Page 131: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

130 CAP. 5. SIMULAREA PROCESELOR STOCHASTICE

Daca se dau conditiile initiale naturale P0(0) = 1, Pi(0) = 0, i > 0atunci solutia sistemului (5.16) este

Pn(t) =(λt)n

n!e−λt (5.16′)

iar daca λ depinde de t, (λ = λ(t)) atunci solutia este

Pn(t) =(Λ(t))n

n!e−Λ(t), Λ(t) =

∫ t

0λ(u)du. (5.16′′)

Procesul avand repartitia (5.16’) se numeste proces Poisson omogen(PPO) iar procesul avand repartitia (5.16”) se numeste proces Poissonneomogen (PPNO).

Simularea unei valori de selectie a PPO sau PPNO se poate realizacu ajutorul metodei din $ 3.6.3. Pentru aceasta reamintim ca o valoarede selectie N Poisson(λ) satisface conditia

SN ≤ 1 < SN+1, Sk =k∑

i=1

Zi, Zi Exp(λ).

Conceptul de PPO poate fi generalizat astfel: se considera ca proce-sul are drept parametru tot t = timpul, si ia ca valori puncte X ∈ A ⊂Rk; procesul, numit PPOU uniform pe A de intensitate λ, ia ca valoriXi ∈ A, 1 ≤ i ≤ N daca N Poisson(λV ol(A)) si Xi sunt puncteuniform repartizate in A. Desigur, PPOU pe A se simuleaza astfel

Algoritm PPOUgenereaza N Poisson(λV ol(A));genereaza X1, X2, ..., Xk puncte uniform repartizate in A.

Punctele Xi reprezinta valori aleatoare ale PPOU.In mod analog se poate considera PPNOU pe A cand variabila

aleatoare N are repartitia N Poisson(Λ(t)V ol(A)).

Page 132: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

Cap. 6

Metoda Monte Carlo

6.1 Generalitati

Sub denumirea de metode Monte Carlo sunt cuprinse o serie de tehnicide rezolvare a diverse probleme utilizand numere aleatoare, variabilealeatoare sau procese stochastice simulate cu calculatorul. Mai precisse accepta urmatoarea definitie

Definitia 6. 1 Fie de rezolvat o problema numerica P care are solutiaθ. O metoda Monte Carlo pentru rezolvarea lui P consta in urmatoarele:

- se asociaza in mod adecvat un proces stochastic ξ problemeiastfel incat cu ajutorul lui ξ sa se poata estima θ; (de exemplu θ =E[τ(ξ)], sau E[τ(ξ)] → θ, sau τ(ξ) converge intr-un sens probabilistcatre θ, unde τ este o functie data). Sa notam deci τ = τ(ξ) estimatorullui θ. (τ(ξ) se numeste estimator primar.).

- se simuleaza o selectie ξ1, ξ2, ..., ξn asupra lui ξ si se calculeaza unestimator τn al lui τ(ξ); daca de exemplu E[τ(ξ)] = θ atunci estima-torul lui τ(ξ) este

τn =1

n

n∑i=1

τ(ξi) (6.1)

si el se numeste estimator secundar.- solutia problemei P se aproximeaza cu τn.

Daca estimatorul primar τ(ξ) este nedeplasat, adica E[τ(ξ)] = θ, atunciestimatorul secundar τn satisface de regula legea numerelor mari si deciτn → θ in probabilitate.

131

Page 133: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

132 CAP. 6. METODA MONTE CARLO

Desigur, nu exista o regula sau o tehnica matematica bine precizatapentru constructia unei metode Monte Carlo. Este mai degraba o artanecesara pentru constructia unei astfel de metode.

De cele mai multe ori, estimatorul primar este τ(ξ) astfel ca E[τ(ξ)] =θ. (Deocamdata consideram ca θ este un numar, dar el poate fi si vectorsau o functie). Estimatia Monte Carlo aproximeaza solutia θ, asa cums-a precizat. Sa presupunem ca exista σ2 = V arτ(ξ) <∞ si ca dorimsa aproximam θ cu o anumita eroare data ε. Dar θ este determinist siτn este aleator. De aceea eroarea ε trebuie considerata in probabilitate,adica

P (|τn − θ| < ε) = p = 1− δ (6.2)

unde δ este o probabilitate mica (un risc mic). Deci conform legiinumerelor mari, trebuie sa alegem n astfel incat pentru ε si δ suficientde mici dati sa fie satisfacuta relatia (6.2).

Teorema 6. 1 Volumul n al selectiei ξ1, ξ2, ..., ξn necesar pentru a es-tima θ prin τn cu eroarea ε data si cu riscul δ admis este

n ≥ n0, n0 =

[t2δσ

2

ε2

]+ 1, tδ =

1√δ

(6.3)

unde [x] este partea intreaga a lui x.

Demonstratie. Deoarece V ar(τ(ξ)) = σ2 rezulta ca

V ar(τn) = V ar1

n

n∑i=1

τ(ξi) =σ2

n.

Aplicand inegalitatea lui Cebasev variabilei τn avem

P (|τn − θ| < tσ√n

) ≥ 1− 1

t2= p.

Deoarece dorim ca P (|τn − θ| < ε) ≥ p = 1− δ, impunem conditiile

1− 1

t2= 1− δ, t

σ√n≤ ε

de unde deducem

t = tδ =1√δ, n ≥ t2δσ

2

ε2

Page 134: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.1. GENERALITATI 133

de unde rezulta (6.3) si teorema este demonstrata.Cu ajutorul metodei Monte Carlo se rezolva multe tipuri de prob-

leme cum sunt: calculul integralelor, rezolvarea sistemelor de ecuaiiliniare si a ecuatiilor integrale, rezolvarea problemei Dirichlet pentruecuatii cu derivate partiale de tip eliptic, rezolvarea problemelor deoprimizare cu restrictii, etc. O parte din astfel de probleme vor fitratate in continuare.

6.1.1 Calculul integralelor

Calculul numeric al integralelor, asa zisele formule de cuadratura, con-stituie un domeniu bine studiat in cadrul analizei numerice clasice, maiales in cazul unidimensional. In cazul multidimensional insa, calcululintegralelor prin discretizare, (aproximare prin sume integrale) este di-ficil de realizat practic. De aceea in cazul multidimensional mult maibune sunt procedurile Monte Carlo de calcul al integralelor. Totusi,pentru usurarea expunerii, aici vom prezenta unele metode Monte Carlode calcul al integralelor numai in cazul unidimensional, avand ca scopnumai simplificarea scrierii. Va trebui insa sa avem ca obiectiv uti-lizarea metodelor mai ales in cazul multidimensional. Desigur, metodeleMonte Carlo se aplica si la calculul integralelor unidimensionale candformulele de cuadratura sunt ne aplicabile (de ex. in cazul integralelorimproprii) sau se aplica cu dificultate.

Sa presupunem deci, fara a restrange generalitatea, ca avem de cal-culat integrala

θ =∫ 1

0f(x)dx. (6.4)

Daca am avea de calculat

I =∫ b

ag(t)dt, −∞ < a < b < +∞

atunci prin transformarea

x =t− ab− a, dt = (b− a)dx,

integrala capata forma

I = (b− a)∫ 1

0f(x)dx = (b− a)θ, f(x) = g(a+ (b− a)x),

Page 135: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

134 CAP. 6. METODA MONTE CARLO

si deci problema se reduce la calculul integralei de forma (6.4).

6.2 Metoda Monte Carlo bruta.

Daca considetam U variabila aleatoare uniforma 0−1, atunci θ se poatescrie

θ = E[f(U)] =∫ 1

0f(u)du

adica τ = f(U) este un estimator primar nedeplasat al lui θ de underezulta ca daca consideram selectia U1, U2, ..., Un atunci θ se estimeazacu media aritmetica, adica cu estimatorul secundar

θn =1

n

n∑i=1

f(Ui). (6.5)

Metoda aceasta bazata pe formula (6.5) se numeste metoda MonteCarlo bruta (denumirea derivand din faptul ca se foloseste repartitiauniforma).

Exemplul 6.1 Calculul lui π. Sa presupunem ca se da cercul de raza1 cu centrul in origine x2 +y2 = 1, fie D discul marginit de acest cerc sisa consideram χD(x, y) functia indicator a acestui domeniu D. Atunci

a = aria(D) =∫ ∫

Ddxdy = π =

∫ ∫χD(x, y)dxdy.

Sa consideram acum intervalul bidimensional (patratul) I2 = [−1, 1]×[−1, 1] si vectorul V = (V1, V2)

′ uniform pe I2. Atunci

p =aria(D)

aria(I2)=π

4

se estimeaza cu

p =1

n

n∑i=1

χD(Vi) = χD,n

unde V1, V2, ..., Vn este o selectie asupra lui V. Din ultima relatie rezultaca

π ≈ 4p =4

n

n∑i=1

χD(Vi) = 4χD,n (6.5′)

Page 136: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.2. METODA MONTE CARLO BRUTA. 135

formula care da aproximarea lui π. Daca notam σ2 = V ar(χD(V )) =p(1− p), rezulta ca

V ar(p) =1

np(1− p) ≤ 1

n4. (6.5′′)

Sa revenim acum la analiza estimatorului (6.5).Daca se cere estimarea (aproximarea) lui θ cu eroarea ε data si cu

coeficientul de risc δ dat, atunci volumul necesar al selectiei este dat de(6.3). Pentru a aplica formula (6.3) ar trebui sa cunoastem

σ2 = V ar[f(U)] =∫ 1

0(f(u)− θ)2du =

∫ 1

0f 2(u)du− θ2. (6.6)

Suntem deci in fata unui caz special si oarecum ciudat: pentru a calculaθ ar trebui sa-l cunoastem mai intai pe θ si sa cunoastem si integrala∫ 10 f

2(x)dx (presupunand deci ca f ∈ L2[0, 1]). Dar nu putem abandonaideea. Putem determina (estima) pe n cu (6.3) intr-unul din douamoduri si anume:

(1) Presupunem ca f(x) ≤ M < ∞, x ∈ [0, 1]. Atunci avem σ2 <M2 si deci in (6.3) putem inlocui σ2 = M2 obtinand un n mai maredar care asigura cu atat mai mult precizia ε si riscul δ. In particular, incazul exemplului 6.1 putem determina n0 din (6.3) luand σ2 = p(1−p).

(2) Alt mod de a estima un n consta in a estima mai intai pe σ2

folosind o selectie de volum k, U1, U2, ..., Uk si anume

σ2 ≈ s2 =1

k

k∑i=1

(f(Ui)− θk)2

iar din (6.3) (luand σ = s) determinam n.Din cele analizate, rezulta ca estimatia θn a lui θ are dispersia

V ar(θn) =1

nσ2, σ2 = V ar(f(U)). (6.7)

Deci precizia metodei depinde in mod esential de σ. Dar, din primaintegrala din (6.6) rezulta ca σ2 depinde direct de marimea variatieipe [0, 1] a lui f(x) − θ. Pentru a mari deci precizia metodei este nece-sar sa micsoram dispersia σ2 = V ar[f(U)]. De aceea vom prezenta incontinuare metode de reducere a dispersiei.

Page 137: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

136 CAP. 6. METODA MONTE CARLO

6.3 Metode de reducere a dispersiei

Vom prezenta cateva metode de reducere a dispersiei estimatorului pri-mar in calculul integralelor definite.

6.3.1 Metoda Monte Carlo dupa importanta.

Aceasta metoda deriva tocmai din cerinta de a micsora variatia luif(x) − θ pe [0, 1]. Pentru aceasta sa alegem o densitate de repartitiep(x), x ∈ [0, 1] astfel incat variatia functiei (f(x)/p(x)− θ)2p(x) sa fiemai mica decat variatia lui (f(x)− θ)2 pe [0, 1]. (Acest lucru se obtinedaca de exemplu se alege p(x) astfel incat graficele functiilor f(x) sip(x) sa fie aproape paralele!).

Cu aceasta alegere a lui p(x) integrala (6.4) se scrie

θ =∫ 1

0

f(x)

p(x)p(x)dx = E[

f(X)

p(X)] (6.8)

unde X p(x). Deci τ (i) = f(X)/p(X) este un estimator primarpentru θ. Simuland o selectie X1, X2, ..., Xn a lui X, din (6.8) rezultaca θ se estimeaza cu estimatorul secundar

θ(i)

n =1

n

n∑i=1

f(Xi)

p(Xi).

Datorita alegerii densitaatii p(x) ca mai sus rezulta ca

V ar[f(U)] > V ar

[f(X)

p(X)

], → V ar[θn] > V ar[θ

(i)

n ]

si deci se realizeaza reducerea dispersiei. Densitatea p(x) se numestefunctie de importanta, de unde si denumirea de metoda Monte Carlodupa importanta.

Sa observam ca metoda dupa importanta se poate aplica cu succes lacalculul unor integrale pe interval necompact , chiar integrale multiple.

Exemplul 6.2 Sa ne propunem sa calculam integrala

I =∫ ∞

0

∫ ∞

0e−x5/2−y3/2

√x2 + y2 + 1dxdy.

Page 138: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.3. METODE DE REDUCERE A DISPERSIEI 137

Sa alegem functia de importanta

p(x, y) =e−x−y, daca x > 0, y > 00, altfel.

Se observa ca vectorul aleator T = (X, Y )′ care are densitatea p(x, y),are componentele sale X si Y repartizate Exp(1) si independente, eleputandu-se simula cu usurinta. Se poate deci aplica metoda MonteCarlo dupa importanta pentru estimarea integralei I.

Exemplul 6.3. Sa consideram integrala

θ =

1∫0

g(x)√xdx

unde g(x) este cotinua pe [0, 1]. Metoda Monte Carlo bruta conduce laestimatorul secundar

θn =1

n

n∑i=1

g(Ui)√Ui

, Ui uniform[0, 1].

Deoarece V ar(g(U)√U

) =∞, rezulta ca metoda Monte Carlo bruta nu este

buna. Dar daca luam ca functie de importanta densitatea pe [0, 1]

p(x) =1

2√x, F (x) = P (X < x) =

0, x < 01−√x, x ∈ [0, 1]1, x > 1

atunci dispersia estimatorului dupa importanta este finita si deci aceastaultima metoda este mai buna.••Observatii. (1) Sa observam ca metoda selectiei dupa importanta

se poate aplica la calculul oricarei integrale, simpla sau multipla deforma

θ =∫D

f(x)p(x)dx =∫f(x)p(x)dx, D ⊆ Rk (6.8′)

unde p(x) este densitate.Valoarea integralei θ se aproximeaza cu esti-matorul secundar

θn =1

n

n∑i=1

f(Yi), Yi p(x).

Page 139: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

138 CAP. 6. METODA MONTE CARLO

Sa alegem acum o alta densitate q(x), x ∈ D si fie X q(x). Scriind

θ =∫f(x)p(x)

q(x)q(x)dz = E

[f(X)p(X)

q(X)

]

putem determina un estimator nedeplasat al lui θ astfel

θn =1

n

n∑i=1

f(Xi)p(Xi)

q(Xi), Xi q(x).

Se poate arata ca dispersia estimatorului θn se micsoreaza fata de ceaa lui θn daca alegem ca densitate q(x) = q0(x) ∼ |f(x)|p(x), adica sat-isface aceasta relatie de proportionalitate. Utilizarea celor doua den-sitati p(x), q0(x) pentru calculul unei integrale, (cu q0(x) ales ca maisus) poate deci conduce la micsorarea dispersiei fata de metoda bruta.

(2) Sa presupunem ca avem de calculat mai multe integrale multiplepe acelas domeniu de forma (6.8’), adica

θi =∫

Dfi(x)pi(x)dx =

∫fi(x)p(x)dx, 1 ≤ i ≤ s

si pentru fiecare alegem o aceeasi densitate de importanta q(x) ca laobservatia (1), precedenta. Obtinem atunci estimatorii secundari

θ(i)n =

1

n

n∑i=1

fi(Xi)p(Xi)

q(Xi), Xi q(x).

Presupunem ca se dau constantele ai, 1 ≤ i ≤ s, si dorim sa alegemq(x) astfel incat V ar(

∑i aiθ

(i)n ) sa fie minima. Avem

V ar(θn) = V ar(∑

i

aiθ(i)n ) =

∫ s∑i=1

a2i f

2i (x)

p2(x)

q(x)dx−

s∑i=1

a2i θ

2i

iar minimum acestei dispersii se obtine cand este minima expresia

S =∫ s∑

i=1

a2i f

2i (x)

p2(x)

q(x)dx.

Sa consideram variabila aleatoare

η =

(s∑

i=1

a2i f

2i (X)

) 12 p(X)

q(X), X q(x)

Page 140: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.3. METODE DE REDUCERE A DISPERSIEI 139

si sa observam ca V ar(η) = S − I2, unde

I =∫ (

s∑i=1

a2i f

2i (x)

) 12

de unde

S ≥∫ (

s∑i=1

a2i f

2i (x)

) 12

p(x)dx

2

.

In concluzie dispersia V ar(θn) devine minima cand

q(x) = q0(x) =1

I

(s∑

i=1

a2i f

2i (x)

) 12

p(x), S = I

si acest minim se atinge pentru q0(x) si el este I2 − s∑

i=1a2

i θ2i .

6.3.2 Metoda variabilei de control

Sa presupunem ca pentru a calcula integrala (6.6) cunoastem o functieϕ pentru care putem calcula usor integrala

µ =∫ 1

0ϕ(u)du

si presupunem ca ϕ este selectata astfel incat

V ar[f(U)− ϕ(U)] < V ar[f(U)]. (6.9)

Deoarece

θ = µ+∫ 1

0[f(u)− ϕ(u)]du = µ+ E[f(U)− ϕ(U)] (6.10)

rezulta ca putem estima θ cu

µ+ θ(c)

n = µ+1

n

n∑i=1

ψ(Ui), ψ(u) = f(u)− ϕ(u).

Dar din (6.9) avem

V ar[µ+ ψ(U)] = V ar[ψ(U)] < V ar[f(U)]

si deci dispersia estimatorului µ+θ(c)

n este mai mica decat cea a estima-torului brut θn. Functia ϕ se numeste functie de control de unde derivasi denumirea metodei.

Page 141: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

140 CAP. 6. METODA MONTE CARLO

6.3.3 Metoda variabilelor corelate

Sa presupunem ca alegem o functie ϕ (ca in cazul metodei variabilei decontrol) astfel incat

θ =∫ 1

0ϕ(u)du+

∫ 1

0[f(u)− ϕ(u)]du

unde integrala µ =∫ 10 ϕ(u)du se poate calcula exact si usor. Daca in

plus se alege ϕ astfel incat

V ar[ϕ(U)]− 2Cov[ϕ(U), f(U)] < 0, (6.11)

atunci, de asemenea se poate realiza reducerea dispersiei deoarece

V ar[ϕ∗(U)] = V ar[f(U)− ϕ(U)] =

= V ar[f(U)] + V ar[ϕ(U)]− 2Cov[f(U), ϕ(U)] < V ar[f(U)].

Variabila aleatoare ϕ(U) care satisface (6.11) se numeste variabila core-lata (cu f(U)), de unde si denumirea metodei.

6.3.4 Metoda variabilelor antitetice

Sa consideram integrala (6.4) care se scrie

θ = E[τ ] = E[f(U)],

sa alegem un alt estimator primar f ∗(U), θ = E[f ∗(U)] si sa consideramestimatorul primar

ϕ = f ∗(1− U), E[ϕ(U)] = E[f ∗(1− U)] = E[f ∗(U)] = θ.

Atunci, putem considera estimatorul primar

ψ =1

2(τ + ϕ)

pentru care avem

V ar(ψ) =1

4V ar(τ) + V ar(ϕ) + 2Cov(τ, ϕ) si Cov(τ, ϕ) < 0.

Daca se alege f ∗ astfel incat

V ar(ψ) < V ar(τ) (6.12)

atunci estimatorul ψ realizeaza reducerea dispersiei. Uneori puntemalege simplu ϕ = f(1− U) care satisface (6.12).

Page 142: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.3. METODE DE REDUCERE A DISPERSIEI 141

6.3.5 Metoda selectiei stratificate

Aceasta metoda deriva tot din ideea de a micsora dispersia estima-torului primar prin reducerea variatiei functiei ce se integreaza. Fie0 = α0 < α1 < ... < αm = 1 o diviziune a intervalului [0, 1]. Atunciintegrala (6.4) se scrie

θ =m∑

i=1

αj∫αj−1

f(v)dv

de unde se deduce ca fiecare din cele m integrale ale sumei precedentese poate estima prin metoda Monte Carlo bruta, obtinandu-se in finalestimatorul secundar

τ ∗m =m∑

j=1

kj∑i=1

(αj − αj−1)1

kjf(αj−1 + (αj − αj−1)Uij ) (6.13)

unde Uij , 1 ≤ j ≤ m, 1 ≤ i ≤ kj sunt selectii de numere aleatoare in-

dependente si uniforme 0− 1 de volume kj, iar n =m∑

i=1kj. Cu selectiile

de volume kj de numere aleatoare uniforme 0 − 1 se estimeaza inte-gralele pe intervalele [αj−1, αj). Cele m intervale se mai numesc (inlimbaj statistic) straturi iar selectia formata din cele m selectii ale stra-turilor se numeste selectie stratificata. Facand schimbari de variabilein integralele (6.13) se deduce ca

V ar(τ ∗m) =m∑

j=1

(αj − αj−1)2

kj

αj∫αj−1

f 2(u)du−m∑

j=1

1

kj

[∫ αj

αj−1

f(u)du

]2

.

(6.14)Notand

θj =

αj∫αj−1

f(u)du, 1 ≤ j ≤ m

dispersia lui τ ∗m se micsoreaza daca variatiile functiilor f(u) − θj peintervalele [αj−1, αj) sunt mult mai mici decat variatia functiei f(u)−θ, u ∈ [0, 1]. Din teoria statistica a sondajelor stratificate se stie ca dacase fixeaza volumul total al selectiei n, atunci volumele de selectie ale

Page 143: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

142 CAP. 6. METODA MONTE CARLO

straturilor kj se aleg proportionale cu valorile

(αj − αj−1)

αj∫αj−1

f 2(u)du−

αj∫αj−1

f(u)du

2

. (6.15)

Punctele diviziunii αj se pot alege astfel incat lungimile intervalelor safie egale cu 1

m(adica αj = j

m) sau se aleg astfel incat variatia funtiei sa

fie aceeasi pe fiecare interval.Dispersia V ar(τ ∗m) se calculeaza deobicei greu, dar ea se poate es-

tima astfel

V ar(τ ∗m) ≈ s2m =

m∑j=1

(αj − αj−1)2

kj(kj − 1)

kj∑i=1

(fij − f j)2 (6.16)

unde

fij = f(αj−1 + (αj − αj−1)Uij ), f j =1

kj

kj∑i=1

fij . (6.16′)

6.3.6 Reducerea dimensiunii de integrare

Sa presupunem ca avem de calculat integrala multipla

θ =∫D

f(x)p(x)dx, D ∈ Rk (6.4′)

unde p(x) este densitate de repartitie. (Oricand, o integrala multiplase poate scrie asa). Sa notam x = (y, z)′, y = (x1, x2, ..., xs)

′, s <k, z = (xs+1, ..., xk)

′. Atunci, integrala (6.4’) se scrie, folosind notatiiconvenabile

θ =∫

(Y )

∫(Z)

f(y, z)p(y, z)dydz =∫

(Y )

f(y)p1(y)dy

p1(y) =∫

(Z)

p(y, z)dz, f(y) =∫

(Z)

f(y, z)p(y, z)dz

p1(y)

Page 144: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.4. REZOLVAREA UNOR ECUATII OPERATORIALE 143

unde p(y,z)p1(y)

este densitatea conditionata, iar p1(y) este densitate marginala.

Sa notam Y vectorul aleator care are densitatea p1(y) si cu X =(Y,Z)′, Y = Y vectorul aleator corespunzator densitatii p(x). Atunciputem estima integrala θ in doua moduri si anume

θn =1

n

n∑i=1

f(Yi,Zi), θn =1

n

n∑i=1

f(Yi). (6.4′)

Se poate arata ca are loc relatia

V ar(θn) ≤ V ar(θn).

Intr-adevar, scriind in detaliu dispersiile avem

V ar(θn)− V ar(θn) =

=1n

∫(Y )

(Z)

f2(y, z)p(y, z)p1(y)

dz−∫

(Z)

f(y, z)p(y, z)p1(y)

dz

2

∫(Z)

p(y, z)dy ≥ 0.

Ultima inegalitate rezulta din faptul ca expresia din acolade este dis-persia lui Y (care este pozitiva) iar p(x,y) ≥ 0 fiind densitate derepartitie.

6.4 Rezolvarea unor ecuatii operatoriale

In aceasta sectiune ne vom ocupa de rezolvarea sistemelor de ecutiiliniare si de rezolvarea unor ecuatii integrale.

6.4.1 Rezolvarea sistemelor de ecuatii liniare

Sa presupunem ca sistemul de ecuatii liniare este scris sub forma ma-triciala

x = a +Hx, x ∈ Rn, a ∈ Rn, H = (hij), ||H|| = maxi

(∑j

|hij|) < 1.

(6.17)(Daca sistemul este dat sub forma Ax = a cu x, a ∈ Rn, atunci el sescrie sub forma (6.17) daca H = (I − A), I−matricea unitate n × n).

Page 145: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

144 CAP. 6. METODA MONTE CARLO

Pentru construirea metodei Monte Carlo de rezolvare a sistemului (6.17)asociem problemei un lant Markov finit, absorbant si omegen cu n+ 1stari astfel:

- la matricea Hn×n asociem matricea de probabilitati P n×n = (pij)cu conditia

pij ≥ 0,n∑

j=1

pij < 1; pij = 0⇔ hij = 0 (6.18)

si fie pi = 1 − n∑j=1

pij. Lantul Markov omogen si absorbant va avea

matricea probabilitatilor de trecere

P ∗ =

p11 p12 ... p1n p1

p21 p22 ... p2n p2

. . ... .pn1 pn2 ... pnn pn

0 0 ... 0 1

; (6.18′)

- in continuare definim ponderile

vij =

hij

pijdaca pij > 0

0 altfel; (6.19)

- pentru un i0, 1 ≤ i0 ≤ n generam o traiectorie a lantului Markov

γ = (i0, i1, ..., im, im+1), im+1 = n+ 1

adica im+1 este stare absorbanta; din constructia lantului rezulta catraiectoria este finita (m <∞ iar pim,im+1 = pim);

- sa consideram acum expresia

Vm(γ) = vi0i1vi1i2 ...vim−1im , X(γ) = VM(γ)aim

pim

. (6.20)

Pentru statistica X(γ) este adevarata teorema

Teorema 6. 2 Statistica X(γ) este un estimator primar pentru com-ponenta xi0 a solutiei x a sistemului liniar (6.17).

Demonstratie. Pentru traiectoria γ data avem

E[X(γ)|i0 = i] =∑γ

P (γ)X(γ) =

Page 146: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.4. REZOLVAREA UNOR ECUATII OPERATORIALE 145

=∞∑

m=0

∑i1i2...im

pii1pi1i2 ...pim−1impimvii1vi1i2 ...vim−1im

aim

pim

=

=∞∑

m=0

∑i1i2...im

hii1hi1i2 ...him−1imaim =

= ai + (Ha)i + (H2a)i + ... (6.20′)

Ultima formula reprezinta componenta xi0 = xi a dezvoltarii

x = a +Ha+H2a + ... (6.21)

adica a solutiei sistemului (6.17) si teorema este demonstrata. Deoarece||H|| < 1 rezulta ca (6.21) deci si (6.20’) converge.

Din cele de mai sus, rezulta ca daca consideram o selectie γ1, γ2, ..., γN

de traiectorii independente ale lantului Markov construit, pornind toatedin starea i0 = i obtinem estimatorul secundar al componentei xi a sis-temului de forma

xi =1

N

N∑i=1

X(γi)

care este estimator nedeplasat si consistent pentru xi. Observam cametoda Monte Carlo ne permite sa determinam o singura componentaa solutiei, (componenta xi, i = i0), ceea ce nu putem realiza cu niciometoda numerica clasica. Acest fapt poate sa prezinte un avantaj incazul unor probleme ingineresti, cand de exemplu xi0 reprezinta o com-ponenta importanta a unei structuri de rezistenta si numai aceastaeste necesar sa fie bine calculata, celelalte putand avea acelas ordin demarime.

6.4.2 Rezolvarea ecuatiilor integrale

Sa consideram ecuatia integrala de speta doua in functia necunoscutaf(x) de forma

f(x) = g(x) +

b∫a

K(x, y)f(y)dy (6.22)

Page 147: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

146 CAP. 6. METODA MONTE CARLO

unde nucleul K si functiile f, g satisfac conditii astfel incat solutia f(x)sa existe pentru orice x ∈ [a, b]. Considerand K drept un operator liniarecuatia (6.22) se poate scrie asemanator lui (6.17) adica

f = g +Kf (6.17′)

care este tot o ecuatie operatoriala. Considerand normele

||g|| =∫ b

a|g(u)|du, ||K|| = sup

x

∫ b

a|K(x′, x)|dx

si iterand nucleul K conform regulei

[K2f ](x) =∫ b

a

∫ b

af(x0)K(x0, x1)K(x1, x)dx0dx1

se arata ca daca ||K|| < 1 atunci exista un n0 finit astfel incat

f =n0∑i=1

Kif + g

adica in acest caz exista solutie a ecuatiei integrale.Un mod direct de rezolvare numerica a ecuatiei (6.22) consta in a

discretiza ecuatia. Adica, alegem o grila de puncte a = α0 < α1 <... < αn = b suficient de fina astfel incat ne intereseaza sa calculamvalorile fi = f(αi), 1 ≤ i ≤ n. Atunci, aproximand integralele prinsume corespunzand fiecarui punct αi ajungem la un sistem liniar deforma

f = g +Kf (6.22′)

unde f = (f1, f2, ..., fn)′, g = (g1, g2, ..., gn)′, gi = g(αi), K = (Kij),Kij = K(αi, αj), 1 ≤ i, j ≤ n. Acest sistem se rezolva ca un sistemliniar ca mai sus. Si aici remarcam avantajul metodei in a determinasolutia numai a unei componente fi0 a lui f .

Putem insa sa construim o metoda Monte Carlo asemanatoare celeiprivind rezolvarea sistemelor de ecuatii liniare, folosind un lant Markovcu o multime continua de stari si absorbant. Vom presupune ca dorimsa estimam o funtionala Ih (definita de produsul scalar) ce depinde desolutia f a ecuatiei integrale (6.22) sau (6.17’) data de relatia

Ih = (f, h) =∫

Rf(x)h(x)dx, f = Kf + g. (6.23)

Page 148: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.4. REZOLVAREA UNOR ECUATII OPERATORIALE 147

Lantul Marcov se presupune ca este determinat de o densitate de repartitieinitiala a starilor π(x) si de o densitate de tranzitie p(x′, x); vom nota cuN numarul aleator de stari finale ale lantului. (Lantul este absorbant!).Daca x0, x1, ..., xN este o traiectorie a lantului sa introducem ponderile

Q0 =g(x0)

π(x0), Qn = Qn−1

K(xn−1, xn)

p(xn−1, xn). (6.24)

Date fiind g,K, h, vrem sa alegem densitatile π(x), p(x′, x) astfel incatestimatorul

ξ =N∑

n=0

Qnh(xn) (6.24′)

sa fie un estimator primar pentru functionala (f, h). Procedam astfel:- alegem functiile π(x), r(x′, x) cu conditiile

π(x) = 0⇔ g(x) = 0,∫ b

aπ(x)dx = 1,

r(x′, x) = 0⇔ K(x′, x) = 0

si construim densitatea de tranzitie a lantului absorbant de forma

p(x′, x) = r(x′, x)[1− q(x′)],∫ b

ap(x′, x)dx = 1− q(x′) ≤ 1

unde q(x′) este probabilitatea ca traiectoria lantului sa se intrerupa(lantul absorbant!). Cu precizarile anterioare se poate demonstra teo-rema urmatoare, asemanatoare teoremei 6.2.

Teorema 6. 3 Daca nucleul K satisface conditia ca pentru un n0 finitdat are loc conditia ||Kn0|| < 1 unde K(x′, x) = |K(x′, x)| si dacadensitatile π si p sunt selectate ca mai sus, atunci

E[ξ] = E

[N∑

n=0

Qnh(xn)

]= Ih = (f, h).

In plus, lungimea traiectoriei este finita, E(N) <∞.Demonstratia teoremei, cu exceptia relatiei E(N) <∞ este intru totulasemanatoare teoremei precedente 6.2 si nu o prezentam aici.

Page 149: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

148 CAP. 6. METODA MONTE CARLO

Pentru a estima functia f(x) in punctul x este suficient sa observamca

f(x) = (f, hx) + g(x), hx(x′) = K(x′, x).

Daca g(x) ≥ 0 si

∫ b

ag(x)dx = 1, K(x′, x) ≥ 0,

∫ b

aK(x, x′)dx′ ≤ 1,

atunci putem lua

π(x) = g(x), p(x′, x) = K(x′, x), Qn = 1, ξ =N∑

n=0

h(xn)

unde N este lungimea traiectoriei pana la absorbtie.

6.5 Rezolvarea ecuatiilor cu derivate partiale

Sa consideram ecuatia cu derivate partiale de ordinul doi

β11∂2V

∂x2+ 2β12

∂2V

∂x∂y+ β22

∂2V

∂y2+ 2α1

∂V

∂x+ 2α2

∂V

∂y= F (x, y) (6.25)

cu conditia

V (x, y) = ϕ(x, y), (x, y) ∈ C, (6.25′)

unde V (x, y) este o functie necunoscuta pe domeniul marginit D ⊂ R2,coeficientii βij , αi, i, j = 1, 2 sunt functii reale cunoscute definite pe D,functia ϕ(x, y) este de asemenea cunoscuta, iar C = ∂D este frontieralui D. Problema rezolvarii ecuatiei (6.25) cu conditia pe contur (6.25’)este cunoscuta sub numele de problema Dirichlet.

Etapele rezolvarii prin metoda Monte Carlo a problemei Dirichletformulata anterior sunt urmatoarele:

1) Domeniul D este acoperit de o retea dreptunghiulara de puncte(sau grila), puncte in care se vor calcula valorile funtiei V. Sa notam cu(xi, yj) nodurile retelei definite astfel

xi = x0 + ih, yi = y0 + ih, i = 0,±1,±2,±3, ... (6, 26)

Page 150: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.5. REZOLVAREA ECUATIILOR CU DERIVATE PARTIALE149

unde (x0, y0) sunt fixate iar h este o constanta suficient de mica (pasulgrilei). Orice punct (x, y) al retelei are partu puncte vecine

P1 = (x+h, y), P2 = (x−h, y), P3 = (x, y+h), P4 = (x, y−h) (6.26′)

Consideram de asemenea punctul vecin suplimentar P5 = (x+h, y+h).Unele puncte ale retelei sunt pe curba C sau sunt cele mai apropiatede curba C; sa notam Ch multimea acestor puncte.

2) Discretizam ecuatia (6.26) in punctul P = (x, y) in care dorimsa estimam V (x, y). Discretizarea conduce la construirea unor diferentefinite ∆x,∆y,∆xx,∆xy,∆yy, definite astfel:

∆x =V (x + h, y)− V (x, y)

h, ∆y =

V (x, y + h)− V (x, y)h

,∆xx = ∆(∆x), etc.

∆xx =V (x+ h, y) + V (x− h, y)− 2V (x, y)

h2, (6.26′′)

∆xy =V (x+ h, y + h)− V (x+ h, y)− V (x, y + h) + V (x, y)

h2

∆yy =V (x, y + h) + V (x, y − h)− 2V (x, y)

h2.

Folosind aceste diferente in (6.25) deducem expresia lui V (x, y) = V (P )astfel

V (P ) =5∑

i=1

pi(P )V (Pi)− h2F (P )

D(P )(6.27)

unde

p1(P ) =1

D(β11 − 2β12), p2(P ) =

β11

D,

p3(P ) =1

D(β22 − 2β12), p4(P ) =

β22

D(6.27′)

p5(P ) =2β12

D, D(P ) = 2β11 + 2β22 − 2β12 + 2h(α1 + α2).

Se observa ca daca ecuatia (6.25) este de tip eliptic atunci β11β22−β212 >

0 si deci pi(P ) din (6.27”) sunt probabilitati (sunt pozitive) si

5∑i=1

pi(P ) = 1 ∀ βij , αi i = 1, 2.

Page 151: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

150 CAP. 6. METODA MONTE CARLO

Se arata ca daca in (6.27) luam h → 0 atunci aceasta expresie con-verge catre V (x, y) care este solutie a ecuatiei (6.25). Probabilitatilepi(P ), 1 ≤ i ≤ 5 definesc un lant Markov particular numit mers laintamplare in plan. Interpretarea acestui lant este urmatoarea: daca oparticola porneste din punctul P (x, y) atunci ea se deplaseaza pe grilain punctele vecine prin salturi, cu probabilitatile pi(P ). Daca β12 = 0atunci particola nu se poate deplasa in punctul P5 = (x + h, y + h).Mersul la intamplare construit este absorbant pe frontiera Ch; dacaparticola atinge un punct Q ∈ Ch atunci probabilitatea de a parasi acelpunct este zero.

3) Cu ajutorul mersului la intamplare construit definim estimatorulprimar asociat unei traiectorii

γ = (P, P (1), P (2), ..., P (m), P (m+1)), P (m+1) = Qi ∈ Ch

astfel

Zi = −m∑

j=1

h2F (P (j))

D(P (j))+ ϕ(Qi). (6.28)

Cu notatiile si constructiile de mai sus este adevarata teorema

Teorema 6. 4 Estimatorul primar (6.28) este un estimator asimptoticnedeplasat pentru solutia V (P ) = V (x, y) a ecuatiei (6.25).

Demonstratie. Fara a restrange generalitatea vom presupune ca F (P ) >0, ϕ(Qi) > 0. Sa notam Wm(P ) = E[Z∗

mi] cu

Z∗mi = −

m∑j=1

h2F (P (j))

D(P (j))+ ϕm(Qi), (6.28′)

unde

ϕm(Qi) =ϕ(Qi), daca frontieraCh este atinsa inmpasi0, in rest

Tinand seama de (6.28) atunci deducem ca Wm(P ) verifica relatia derecurenta

WM (P ) =5∑

i=1

pi(P )Wm−1(Pi)− h2

D(P )F (P ) (6.28′′)

Page 152: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.5. REZOLVAREA ECUATIILOR CU DERIVATE PARTIALE151

si de aici se deduce Wm+1 ≥ Wm adica Wm este monoton crescator simarginit (conform (6.28)) de

ϕmax +

[−h

2

Df

]max

km, cu ϕmax = maxQ∈Ch

ϕ(Q).

Numarul km este numarul mediu de pasi ai unei traiectorii, care oricumare cel mult un numar finit de pasi daca domeniul inconjurat de curba Ceste marginit. Deci, pentru un punct P fixat, sirul Wm este convergent,de unde rezulta ca estimatorul (6.28) este asimptotic nedeplasat, deciteorema este demonstrata.

4) Un estimator secundar al lui V (P ) se obtine daca se considera ntraiectorii γ1, γ2, ..., γn ce pornesc toate din punctul P = (x, y) astfel

V =1

n

n∑i=1

Zi. (6.28′′′)

Acest estimator este de asemenea asimptotic nedeplasat pentru V (x, y).

Un caz particular de ecuatie de tip eliptic este ecuatia Poisson, adica

V (P ) = F (P ), sau∂2V

∂x2+

∂v

∂y2= F (x, y)

cu conditia pe contur

V (P ) = ϕ(P ), P ∈ C, C = D ⊂ R2.

Aici constructia este asemanatoare, dar desigur mai simpla. Con-sideram ca si in cazul general o grila de puncte care acopera D dar capuncte vecine lui P = (x, y) consideram numai punctele P1, P2, P3, P4,(deoarece β12 = 0). In acest caz prin discretizare obtinem V (P ) deforma

V (P ) =1

4

4∑i=1

V (Pi)− 1

4h2F (P ), pi(P ) = pi =

1

4, D = 4. (6.27′)

Deci mersul la intamplare asociat are in acest caz probabilitati egalede tranzitie din P in punctele vecine Pi, 1 ≤ i ≤ 4. Teorema precedentaeste desigur valabila si in acest caz si anume estimatorul primar este

Zi = −m∑

j=1

1

4h2F (P (j)) + ϕ(Qi)

Page 153: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

152 CAP. 6. METODA MONTE CARLO

el fiind calculat cu ajutorul traiectoriei γ ca mai sus, iar estimatorulsecundar este tot de forma (6.28”’).

In final precizam un algoritm pentru simularea mersului la intamplarein cazul general al ecuatiei (6.25). De fapt este necesar sa precizamcum generam punctul P (j+1) al traiectoriei cand plecam din punctulP (j). Algoritmul pentru generarea acestui punct este

Algoritmul SALT pentru generarea unui salt de mers la intamplare.Intrare x(j), y(j) si h; (Acesta este un pas pregatitor);Calculeaza pi = pi(P

(j)), 1 ≤ i ≤ 5 cu formulele (6.27’);Calculeaza fi = p1 + ...+ pi, 1 ≤ i ≤ 5, f5 = 1;Genereazaa U := random; i := 1;while U > fi do i := i+ 1;Calculeaza coordonatele punctului Pi cu formulele (6.26’) in care

x = x(j), y = y(j);Ia P (j+1) := Pi calculat anterior;Daca P (j+1) ∈ Ch atunci ia P (j) := P (j+1), altfel traiectoria se ter-

mina.

Repetand algoritmul precedent de la pasul

Genereaza U := random;

pana cand pentru prima data P (j+1) ∈ Ch se obtine traiectoria mersuluipana la absorbtie. In final sa observam ca metodele numerice obisnuitepentru rezolvarea problemei Dirichlet se bazeaza tot pe discretizare.Valorile necunoscute ale funtiei V (P ) in puncte ale grilei sunt necunos-cute ale unui sistem de ecuatii liniare de dimensiune foarte mare. Prinrezolvarea acestui sistem liniar se obtin toate valorile necunoscute inpunctele grilei interioare lui D. Metoda Monte Carlo descrisa aici per-mite calculul separat al valorii functiei V in fiecare punct P al grilei,fara a mai fi necesar calculul acesteia in alte puncte. Acest fapt, deasemenea poate constitui un avantaj practic.

ExercitiiE6.1 Sa se calculeze mai intai direct, iar apoi utilizand metoda

Monte Carlo bruta integrala

I =∫ 1

0

√1− x2dx.

Page 154: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.5. REZOLVAREA ECUATIILOR CU DERIVATE PARTIALE153

Indicatie. Facand o schimbare potrivita de variabila se arata ca I = π4.

Acelas fapt se constata daca observam ca I este aria din primul cadrana discului cu centrul in origine si de raza 1. Cu ajutorul metodei MonteCarlo se obtine

π

4≈ In =

1

n

n∑i=1

√1− U2

i

unde Ui, 1 ≤ i ≤ n sunt numere aleatoare uniforme 0 − 1. Se observaca π ≈ 4In, ceea ce reprezinta un alt mod de a aproxima constanta π.

E6.2 Sa se aplice metoda variabilelor antitetice la calculul integraleiI din exercitiul precedent si daca Ia,n este estimatia lui I in acest cazsa se arate ca V ar(Ia,n) < V ar(In).Solutie. estimatorul Monte Carlo antitetic este

Ia,n =1

2n

n∑i=1

[√1− U2 +

√1− (1− U)2

]

de unde

V ar(Ia,n) =1

n[1

4V ar(

√1− U2) + V ar

√1− (1− U2))+

+2Cov((√

1− U2),√

1− (1− U2)] =

=1

2n

V ar(

√1− U2 + Cov(

√1− U2,

√1− (1− U2))

=

=1

2n

(2

3− π2

16

)+

1

2nE[

√(U + 1)U(U − 1)(U − 2)− π2

16],

Se poate arata prin calcule relativ simple ca media expresiei in U dinparanteza dreapta precedenta este EU ≈ 0.5806 de unde rezulta ca

V ar(Ia,n) ≈ 0.0052

n.

In mod direct se poate arata ca

V ar(In) =1

n

(∫ 1

0(1− x2)dx− π2

16

)=

1

n

(2

3− π2

16

)≈ 0.498

n

de unde rezulta inegalitatea ceruta.

Page 155: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

154 CAP. 6. METODA MONTE CARLO

E6.3 O problema interesanta in aplicatii este calculul functiei derepartitie normala N(0, 1) adica

L(x) =

x∫−∞

e−y2

2√2πdx =

1√2π

x∫−∞

φ(y)dy.

Sa se construiasca un estimator dupa importanta pentru L(x) utilizandca densitate de importanta o densitate logistica trunchiata.Solutie. Sa consideram densitatea logistica

f(y) =πe

− πy√3

√3(1 + e

− πy√3 )2

, y ∈ (−∞,+∞).

Trebuie insa sa consideram densitatea logistica (aici non-standard!)trunchiata pe (−∞, x). Va trebui deci sa o normam cu o constantak = k(x) in raport cu y (care insa depinde de x), adica sa luam cadensitate de importanta

f(y) = f(y)k−1 =πe

− πy√3 (1 + e

− πx√3 )√

3(1 + e− πy√

3 )2, y ∈ (−∞, x); f(y) = 0, y < x.

In acest caz avem estimatorul primar de importanta

L(x) =1

1 + e− πx√

3

E

[φ(Y )

f(Y )

], Y f(y).

Pentru a construi estimatorul secundar trebuie sa gasim un generatorpentru Y. Se poate aplica metoda inversa pentru functia de repartitie

F (z) =

z∫−∞

f(y)dy =1 + e

− πx√3

1 + e− πz√

3

, z < x

adica Y se obtine rezolvand ecuatia

F (Y ) = U, U uniform 0− 1.

E6.4 (Problema lui Buffon).Un ac de lungime l este aruncat peo dusumea de parchet care are latimea lamelelor edala cu d. Lamelele

Page 156: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

6.5. REZOLVAREA ECUATIILOR CU DERIVATE PARTIALE155

vecine determina deci linii paralele la distanta d. Sa se determine proba-bilitatea ca acul, dupa ce a cazut pe parchet sa atinga o linie despartitoarea lamelelor parchetului si de aici sa se deduca un procedeu de estimarea numarului π.Solutie. Fie l ≤ d. Pentru o pozitie data a acului sa notam cu θ unghiulformat de ac cu marginea lamelei. Distanta de la ac la linie este l cos θiar probabilitatea ca in pozitia data acul sa atinga marginea lameleieste 2l cos θ

2πd, iar cum θ poate varia intre (−π/2,+π/2) rezulta ca proba-

bilitatea P ca acul sa atinga marginea (indiferent de pozitia sa) este

P = 2

π2∫

−π2

l cos θ

2πddθ =

2l

πd.

Daca l > d atunci printr-un rationament asemanator avem

P =

π2∫

−π2

min(l cos θ, d)

2πddθ =

2

πd

d cos−1 d

l+ l(1−

√1− d2

l2)

.

Pentru estimarea lui π se foloseste formula lui P (cazul l ≤ d,) si seestimeaza P cu

P n =α

n

unde α este numarul de cazuri cand acul atinge o margine a lameleidin n aruncari independente.Simularea aruncarii aleatoare a unui acde lungine l (l < d), presupunand ca cele doua lamele vecine au camargine comuna axa ox, se realizeaza astfel: se simuleaza un punct Paleator intre 2 lamele (P ∈ [−d, d];) apoi se simuleaza un θ uniform in[0,+2π] si se determina segmentul cu centrul in P , de lungime l , ori-entat pe directia θ; se verifica apoi prin calcul daca segmentul construitintalneste una din dreptele y = 0, y = d, y = −d care reprezinta de-limitarile celor doua lamele vecine. Determinarea numarului de aruncariale acului care intersecteaza liniile ce delimiteaza cele 2 lamele vecine(din n aruncari ) este acum evidenta. Desigur, aceasta cale de deter-minare a lui π nu este recomandabil a se face cu calculatorul deoarecealgoritmul are o complexitate ridicata. Metoda acului lui Buffon areinsa importanta ei istorica. (Simularea lui θ se poate face si uniformpe [−π

2,+π

2]).

Page 157: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

156 CAP. 6. METODA MONTE CARLO

E6.5 Sa se precizeze o metoda Monte Carlo de estimare a numaruluiπ folosind simularea de puncte aleatoare intr-un domeniu inconjurat deo elipsa cu centrul in origine si de semiaxe a > 0, b > 0.

Indicatie. Se foloseste ideea de la Exemplul 6.1. Se simuleaza Npuncte (V1, V2) aleatoare in dreptunghiul [−a, a]× [−b, b] si se numara

cele ce satisfac relatiaV 21

a2 +V 22

b2≤ 1.

E6.6 Un lant Marcov cu stari continue are densitatea de repartitiea starilor initiale π(x) N(2,

√2) si densitatea de tranzitie p(x, y)

N(x, 2), unde x este starea de plecare. Sa se prezinte un algoritm desimulare a unei stari a lantului.Solutie. Avem deci

π(x) =1

2√πe−

(x−2)2

4 , p(x, y) =1

2√

2πe−

(x−y)2

8 .

Algoritmul este urmatorulAlgoritmul MARKOV de simulare a unui lant Marcov gaussianGenereaza X N(2,

√2); (X este starea initiala);

Genereaza Y N(X, 2); (Y este starea generata, in care se ajunge).

Acest lant se poate utiliza la rezolvarea ecuatiei integrale

f(x) =∫p(x, y)f(y)dy + g(x), x ∈ R.

Pentru simularea unei traiectorii de N puncte a lantului se continuaalgoritmul precedent cu instructiunile

X := Y ; genereaza Y N(X, 2).

Page 158: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

Cap. 7

Cateva modele de simulare

In acest capitol vom prezenta cateva modele de simulare din domeniulteoriei astepatarii si teoriei stocurilor, modele implementabile in limbajeevoluate (ca Pascal, C, C++, etc).

7.1 Generalitati despre modele de asteptare

Vom incepe cu cateva notiuni despre modele de asteptare. Pentru in-ceput vom introduce o notatie specifica unui model de asteptare sianume

A/S/c : (Lc; d)

unde:A este o informatie despre repartitia de probabilitate a timpului de

intersosire AT sau a sosirilor;S este o informatie despre repartitia de probabilitate a duratei ser-

viciului ST ;c precizeaza numarul de statii de serviciu si topologia lor, adica daca

sunt conectate in serie, in paralel, sau in retea;Lc este lungimea maxima a cozii, adica un numar natural pozitiv

daca coada este finita, sau ∞ daca coada poate avea lungime infinita;d este disciplina de serviciu care precizeaza reguli de efectuarea ser-

viciului. De exemplu daca clientii sunt serviti in ordinea sosirilor, atuncidisciplina este FIFO (adica First In First Out). Pot exista si regulide tipul LIFO (adica Last In First Out) sau disciplina de serviciu cu

157

Page 159: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

158 CAP. 7. CATEVA MODELE DE SIMULARE

prioritati in sensul ca unii clienti, care au prioritati pot fi serviti inain-tea altora. Insfarsit, pot exista modele cu clienti nedisciplinati; o astfelde siutuatie se prezinta in cazul cand clientii care asteapta mai mult dew0 unitati de timp parasesc sistemul fara sa mai beneficieze de serviciu.

Modelele matematice sunt construite si rezolvate de regula candrepartitiile lui AT si ST sunt exponentiale negative, cand sistemele auo singura statie sau statii paralele, cand disciplina este FIFO, si candclientii sunt disciplinati. Toate celelelte tipuri de modele sunt greu deconstruit in ipoteze generale privind repartitiile sosirilor si serviciilor side aceea se recurge la simulare. Noi am prezentat (in Cap.1) si catevamodele de simulare in GPSS, care de regula au condus la programescurte dar nu si flexibile. Modelele ce vor fi construite in acest capitolvor putea fi extinse la diverse repartitii ale lui AT si ST.

Exemple de modele matematice de asteptare sunt:

Exp(λ)/Exp(µ)/1 : (∞;FIFO) (7.1)

care este cel mai simplu model cu o statie de serviciu;

Exp(λ)/Exp(µ)/N(paralele); (∞;FIFO) (7.2)

care este un model cu N statii paralele presupuse identice (adica auaceeasi repartitie pentru ST -ul fiecareia), coada poate fi infinita, iardisciplina este standard (primul venit primul servit).

In cazul modelelor de simulare, pentru modelele anterioare, vomfolosi notatiile:

•/ • /1 : (∞;FIFO) (7.1′)

•/ • /N : (∞;FIFO) (7.2′)

semnul • insemnand ca putem folosi orice repartitii de probabilitatepentru AT si ST. De asemenea, in descrierea algoritmilor (sub formade scheme logice!) vom folosi in locul semnului de atribuire := semnul=. Modelele matematice ale teoriei cozilor se bazeaza pe utilizareaunor procese Markov particulare numite procese stochastice de nasteresi deces, procese ce vor fi studiate mai intai. Numarul de clienti N(t)in sistemul de asteptare la un moment dat de timp t este un astfelde proces stochastic. Aceste procese stau la baza modelarii si a altorsisteme naturale cum sunt populatiile biologice (de unde si denumirealor de procese de nastere si deces).

Page 160: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.1. GENERALITATI DESPRE MODELE DE ASTEPTARE 159

7.1.1 Procese de nastere si deces

Definitia 7.1.Procesul stochastic discret N(t), cu cresteri indepen-dente, se numeste proces de nastere si deces, daca satisface urmatoareleproprietati:

P ([N(t+ ∆t) = n+ 1]/[N(t) = n]) = λn∆t+ o(∆t);

P ([N(t+ ∆t) = n− 1]/[N(t) = n]) = µn∆t+ o(∆t); (7.3)

P ([N(t+ ∆t) = n± i]/[N(t) = n]) = o(∆t), i > 1,

unde P (A/B) inseamna probabilitatea lui A conditionata de B, con-stantele λn, n ≥ 0, µn, n ≥ 1, sunt siruri de numere pozitive date,iar o(∆t) este un element al unei clase de functii ce satisfac conditiile

lim∆t→0

o(∆t) = 0, lim∆t→0

o(∆t)

∆t= 0. (7.4)

Procesul este cu cresteri indepentente in sensul ca oricare ar fi t1 < t2 <t3 < t4, variabilele N(t2) − N(t1) si N(t4) − N(t3) sunt independentestochastic, iar N(t + h) − N(t) = N(h), ∀t, h > 0 (adica procesul estede numarare).

Constantele λn se numesc intensitati de natalitate iar constantele µn

se numesc intensitati de mortalitate. Aceste constante sunt caracteris-tice pentru procesul N(t). Functiile o(∆t) exprima cantitati neglijabilein raport cu ∆t, deci care tind la zero odata cu ∆t, dar mai repededecat acesta si multimea lor este inchisa fata de operatiile de adunaresi inmultire cu alte functii sau constante (adica sunt inchise la liniari-tate). Relatiile (7.3) spun ca nasterile si decesele evolueaza rar in timp.Intensitatile de natalitate si cele de mortalitate corespund in cazul sis-temelor de asteptare sosirilor, respectiv serviciilor (adica plecarilor) dinsistem.•Teorema de baza. Cu ajutorul proprietatilor (7.3) se pot de-

termina probabilitatile Pn(t) = P [N(t) = n], care reprezinta repartitiaprocesului de nastere si deces.

Teorema 7. 1 Probabilitatile Pn(t) satisfac ecuatiile diferentiale

P ′0(t) = −λ0P0(t) + µ1P1(t) (7.5)

P ′n(t) = −(λn + µn)Pn(t) + λn−1Pn−1(t) + µn+1Pn+1(t), n > 0. (7.6)

Page 161: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

160 CAP. 7. CATEVA MODELE DE SIMULARE

Demonstratie. Tinand seama de relatiile (7.3) si de regulile de calculcu probabilitati conditionate, pentru n = 0 avem

P0(t+∆t) = P0(t)[1−λ0∆t−o(∆t)]+P1(t)[µ1∆t+o(∆t)]+o(∆t) (7.5′)

unde ultimul termen reprezinta conform (7.3) probabilitatea ca pe in-tervalul de timp [t, t+ ∆t] sa se nasca sau sa decedeze mai mult de unindivid. Din (7.5’) rezulta

P0(t+ ∆t)− P0(t) = −λ0P0(t)∆t+ µ1P1(t)∆t+ o(∆t).

Daca in ultima relatie impartim cu ∆t si facem ∆t→ 0, atunci obtinemecuatia (7.5). Procedam in mod asemanator si pentru n > 0 si avem

Pn(t+ ∆t) = Pn(t)[1− λn∆t− o(∆t)][1− µn∆t− o(∆t)]+

+Pn−1(t)[λn−1∆t+ o(∆t)][1− µn−1∆t− o(∆t)]++Pn+1(t)[1− λn+1∆t− o(∆t)][µn+1∆t+ o(∆t)] + o(∆t),

unde ultimul termen reprezinta de asemenea probabilitatea ca pe inter-valul [t, t+ ∆t] sa se nasca sau sa decedeze mai mult de un individ.Dinultima relatie deducem

Pn(t+ ∆t)− Pn(t) = −(λn+ + µn)Pn(t)∆t) + λn−1Pn−1(t)∆t+

+µn+1Pn+1(t)∆t+ o(∆t).

Impartind ultima relatie cu ∆t si facand apoi ∆t → o obtinem relatia(7.6) si teorema este demonstrata.

Dandu-se conditii initiale pentru Pn(t) (de exemplu P0(0) = 1, Pi(0) =0, i > 0), sistemul (7.5),(7.6) are solutie unica. Pe noi ne intereseaza casolutia sa satisfaca si conditia

∞∑n=0

Pn(t) = 1, ∀t, (7.7)

adica sa reprezinte intr-adevar repartitia procesului.Teorema ce urmeazada o conditie suficienta in acest sens.

Page 162: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.1. GENERALITATI DESPRE MODELE DE ASTEPTARE 161

Teorema 7. 2 Daca este satisfacuta conditia

∞∑k=1

k∏i=1

µi

λi−1=∞. (7.7′)

atunci are loc relatia (7.7).

Nu prezentam aici demonstratia acestei teoreme.Procesul de nastere si deces este stationar daca Pn(t) = pn = const.

adica repartitia sa nu depinde de timp. (Procesul se numeste ergodicdaca limt→∞ Pn(t) = pn = const.). Sa vedem care este solutia sistemu-lui in acest caz (stationar sau ergodic). Desigur, sistemul (7.5),(7.6)devine sistemul liniar

−λ0p0 + µ1p1 = 0 (7.5′′)

−(λn + µn)pn1λn−1pn−1 + µn+1pn+1 = 0, n > 0. (7.6′′)

Pentru a rezolva sistemul sa notam

Zk = −λkpk + µk+1pk+1.

Atunci din (7.5”),(7.6”) rezulta

−Zn−1 + Zn = 0

adicaZn = Zn−1,

iar deoarece din (7.5”) avem Z0 = 0, avem si Zn = 0, de unde

pn+1 =µn+1

λn

pn, n ≥ 0.

Prin recurenta se deduce ca

pn =∞∏

α=0

λα

µα+1p0. (7.8)

Utilizand (7.7) se gaseste si constanta p0 si anume

p0 =

[1 +

∞∑n=1

n−1∏α=0

λα

µα+1

]−1

. (7.8′)

Page 163: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

162 CAP. 7. CATEVA MODELE DE SIMULARE

7.1.2 Calculul unor caracteristici ale modelului de

asteptare.

Cunoscand probabilitatile pn se pot calcula cu usurinta cateva carac-teristici (parametri de iesire) pentru sistemul de asteptare cu c statiide serviciu si anume:

Numarul mediu de clienti in sistem

E[N(t)] =∞∑

n=0

npn;

Lungimea medie a cozii

E[WL] =∞∑

n=c

(n− c)pn; (7.9)

Timpul mediu de asteptare

E[WT ] = E[WL]E[ST ]; (7.9′)

Numarul mediu de statii care lenevesc

E[NID] =c∑

n=0

(c− n)pn; (7.10)

Timpul mediu de lenevire al celor c statii

E[TID] = E[NID]E[AT ]. (7.10′)

7.2 Simularea unui sistem cu o statie

Vom studia pentru inceput modele de simulare pentru un sistem deasteptare cu o singura statie de serviciu de forma (7.1’).

7.2.1 Modelul cu ceas variabil

Prezentam mai intai un model de simulare bazat pe ceasul cu cresterevariabila.

Page 164: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.2. SIMULAREA UNUI SISTEM CU O STATIE 163

Variabilele si parametri modelului , in afara de cele deja cunoscute,adica, AT, ST,WT (timpul de asteptare curent al unui client), TID(timpul de lenevire curent al statiei), sunt:

TWT = timpul total de asteptare al clientilor;

TTID = timpul total de lenevire al statiei;

ICOUNT = contor, care numara clientii serviti;

NS = numarul de clienti ce trebuie serviti (parametru de intrare);

AWT = timpul mediu de asteptare (parametru de iesire);

ATID = timpul mediu de lenevire (parametru de iesire al modelu-lui).

Schema logica a modelului de simulare este prezentata in Fig.7.1.Inblocul (1) se fac initializarile:

TWT = TTID = 0;WT = TID = 0; ICOUNT = 0 (7.11)

care sunt nesesare pentru calculul mediilor empirice AWT,ATID; aicise citesc parametri de intrare: NS, si parametri repartitiilor variabilelorAT, ST necesari pentru simularea acestor variabile aleatoare. Tot aicise initializeaza contorul ICOUNT care numara serviciile si care princomparare cu NS impune conditia de terminare a simularii. In blocul(2) se simuleaza sosirea unui client. Pentru a intelege mai departe algo-ritmul mentionam faptul ca in acest model ceasul variabil al simulariinu apare explicit (el este implicit), in sensul ca de fapt pentru alegereaevenimentului ce trebuie prelucrat se foloseste regula primului eveni-ment urmator, care este o consecinta a tehnicii bazata pe ceasul cucrestere variabila. Blocul (3) realizeaza o ajustare a timpului de sosire,care permite alegerea evenimentului (urmator) ce trebuie prelucrat sicare poate conduce fie la calculul timpului de asteptare (in blocul (6)),fie la calculul timpului de lenevire a statiei (in blocul (7)). Este evi-dent ce face blocul (4) (care poate fi situat cu acelas efect si inaintede blocul (8)). Blocul (5) este blocul care alege evenimentul urmator,tinand seama si de disciplina FIFO, iar blocul (8) precizeaza conditiade terminare a simularii; el conduce la repetarea blocurilor (2)-(8) panacand se simuleaza NS servicii.

Page 165: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

164 CAP. 7. CATEVA MODELE DE SIMULARE

START

(1)Initializari si citirea

parametrilor de intrare

Genereaza AT

(2)

AT = AT - WT

(3)

Genereaza ST

ICOUNT ← ICOUNT + 1

(4)

ST > AT?

DA (5) NU

TWT = TWT+WTWT = ST - ATTID = 0

TTID = TTID+TIDTID = AT - STVT = 0

(6) (7)

ICOUNT < NS?

DA (8)

rezultatele utilede iesire si livreazaCalculeaza parametrii

NU (9)

STOP

Fig. 7.1. Schema logica a modelului ./1./1: (∞ FIFO),cu ceas variabil

Insfarsit, blocul (9) calculeaza parametri de iesire dupa formulele

AWT =TWT

NS, ATID =

TTID

NS. (7.12)

Page 166: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.2. SIMULAREA UNUI SISTEM CU O STATIE 165

7.2.2 Modelul cu ceas constant.

Acest model, fata de modelul precedent, foloseste in plus variabilele siparametri:

TAT = momentul ultimei sosiri (i.e. ceasul sosirilor);TST = momentul terminarii ultimului serviciu (i.e. ceasul servir-

ilor);CLOCK = ceasul simularii, cu crestere constanta;C = ora ceasului (i.e. o constanta cu care se incrementeaza ceasul);I = variabila intreaga care reprezinta lungimea curenta a cozii;NT = parametru de intrare care reprezinta durata impusa a simu-

larii (adica simularea se termina cand CLOCK ≥ NT ).Initializarile in acest model sunt:

TWT = TTID = TAT = TST = 0, CLOCK = 0, I = 0. (7.11′)

Schema logica a modelului este data in Fig.7.2. Blocurile (1)-(4)precizeaza conditiile initiale si determina inceperea simularii. In blocul(5) se constata daca statia este libera sau ocupata. Daca statia esteocupata cand soseste clientul (adica TAT ≤ TST ), atunci se continuacu blocul (6):se mareste coada cu o unitate, se calculeaza timpul curentde asteptare si se actualizeaza timpul total de asteptare; in continuareblocul (7) decide daca este necesara cresterea ceasului (in blocul (8),cand CLOCK < TAT ), sau daca se trece direct la blocul (9) cand segenereaza un nou timp de sosire. Daca in blocul (5) se decide ca statiaeste libera (adica TAT > TST ), atunci se continua cu blocul (10)care constata daca coada este vida sau nu; in caz afirmativ (I = 0,) inblocul (11) se determina timpul curent de lenevire TID, se actualizeazaTTID precum si ceasul serviciilor TST cu valoarea ceasului sosirilor;daca in blocul (10) se gaseste coada nevida, atunci se extrage un clientdin coada (conform disciplinei FIFO). Mai departe, blocul (13) decidedaca ceasul trebuie actualizat (fapt ce se produce in blocul (14)), dupacare se continua cu blocul (15) in care se serveste fie clientul sosit (dacain blocul (10) coada era vida), fie se serveste clientul extras din coada(in blocul (12)). Blocul (16) decide daca simularea continua (candCLOCK < NT ) sau daca simularea se opreste, caz in care se executablocul terminal (17) care calculeaza parametri de iesire ai modelului sialte statistici interesante.

Page 167: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

166 CAP. 7. CATEVA MODELE DE SIMULARE

START

(1)Initializari si citirea

parametrilor de intrare

Genereaza AT

(2)

TAT=TAT+AT

(3)

CLOCK=CLOCK+C

(4)

TAT≥TST?

DA (5) NU

?

I = 0

?

I= I−1

(10)NUDA

(11) (12)

(13)

NU (14)DA

(15)

CLOCK>TST-TID?

CLOCK=CLOCK+C

TWT=TWT+WTWT=TST−TAT

I = I + 1

CLOCK > TAT?

DA(7)

CLOCK=CLOCK+C

NU (8)

TST=TATTTID=TTID+TIDTID=TAT-TST

(6)

TAT = TAT + ATGenereaza AT

TST = TST + STGenereaza ST

(9)

CLOCK < NT?

DA (16)

livreaza rezultatele utileiesire sau alte statistici siCalculeaza parametrii de

NU (17)

STOP

Fig. 7.2. Schema logica a modelului ./1./1: (∞ FIFO);cu ceas constant.

Page 168: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.2. SIMULAREA UNUI SISTEM CU O STATIE 167

Printre altele se poate calcula durata totala a serviciilor efectuatede sistem

SST = TST − TTID (7.13)

precum si timpul total petrecut de clienti in sistem

TCST = SST + TWT. (7.14)

Pentru a calcula AWT,ATID este necesar sa introducem in modelun contor ICOUNT ce trebuie initializat cu zero si care se actual-izeaza (se incrementeaza cu o unitate) in blocul (15) cand se simuleazaservirea unui client. Calculul parametrilor AWT,ATID se va real-iza in acest caz tot cu formulele (7.10) (in cazul ultimului model se iaNS = ICOUNT ). Aceasta formula estimeaza de fapt valorile mediiteoretice E(WT ), E(TID) ale timpilor de asteptare si de lenevire. Pen-tru ca aceste estimari sa fie cat mai bune, trebuie ca volumele de selectieNS sau ICOUNT sa fie suficient de mari, fapt ce se realizeaza fie candNS este mare, in cazul ceasuliui cu crestere variabila, fie cand NT estemare, in cazul ceasului cu crestere constanta.

7.2.3 Validarea modelelor cu o statie

Cele doua modele simuleaza acelas sistem de asteptare, deci validarealor se face pe baza aceluias model matematic de asteptare si anumemodelul

Exp(λ)/Exp(µ)/1 : (∞, F IFO),

adica se considera ca repartitiile duratelor de sosire si de serviciu aurepartitii exponentiale negative.

Trebuie sa determinam mai intai intensitatile λn, n ≥ 0, si µn, n > 0.Intensitatea unei sosiri va satisface deci relatia

P (0 < AT < ∆t) = 1− e−λ∆t = 1− 1 + λ∆t+ o(∆t) = λ∆t+ o(∆t).(7.15)

Deoarece, conform definitiei 7.1 trebuie sa avem

λn∆t+ o(∆t) = λ∆t+ o(∆t),

rezulta caλn = λ, ∀n ≥ 0. (7.15′)

Page 169: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

168 CAP. 7. CATEVA MODELE DE SIMULARE

In mod asemanator deducem ca

µn = µ. (7.15′′)

Deci conform formulei (7.8) avem

pn = ρnp0, ρ =λ

µ, (7.16)

iar din (7.8’) rezulta

p0 = [1 +∞∑

n=1

ρn]−1 = 1− ρ, (7.16′)

adica

pn = ρn(1− ρ).Conform relatiei cunoscute dintre repartitia exponentiala negativa sirepartitia Poisson, rezulta ca λ este numarul mediu de sosiri pe uni-tatea de timp, iar µ este numarul mediu de clienti serviti pe unitateade timp. De aceea ρ reprezinta intensitatea de trafic a clientilor prinsistem.Pentru a avea sens p0 trebuie ca 0 < ρ < 1. (Deci un sistem deasteptare cu λ > µ nu are sens!). Pentru validarea modelelor de simu-lare cu o statie putem deci folosi modelul matematic anterior. Formulele(7.9),(7.9’),(7.10),(7.10’) devin respectiv

E[WL] =∞∑

n=2

(n− 1)ρn(1− ρ) =

= ρ2(1− ρ)∞∑

n=2

(n− 1)ρn−2 = ρ2(1− ρ)∞∑

n=1

nρn−1 =

=ρ2

1− ρ,

E[WT ] = E[ST ]E[WL] =1

µE[WL] =

ρ2

µ(1− ρ) . (7.17)

E[NID] =1∑

n=0

(1− n)pn = p0 = 1− ρ,

Page 170: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.2. SIMULAREA UNUI SISTEM CU O STATIE 169

E[TID] = E[AT ]E[NID] =1− ρλ

. (7.18)

Validarea modelelor de simulare se realizeaza cand

AWT ≈ E[WT ], ATID ≈ E[TID], (7.19)

sau daca|E(WT )− AWT | ≤ ε (7.19′)

cu ε > 0 dat, suficient te mic (ε = eroare). Desigur in practica se poatefolosi pentru validare numai unul din parametri E[WT ] sau E[TID].Daca (7.19) are loc, atunci inseamna ca in loc de repartitii exponentialese pot folosi orice repartitii pentru AT si ST.

O caracteristica importanta a unui sistem de asteptare este factorulde eficienta al sistemului care se defineste astfel

Ie =E(W )

E(ST ), E(W ) = E[N(t)]

1

µ(7.20)

care spune de fapt in ce masura timpul petrecut de client in sistem afost folositor pentru el.(Clientul este interesat ca Ie sa fie cat mai mic!).Factorul de eficienta se estimeaza cu ajutorul simularii astfel

Ie =TWT + SST

SST(7.20′)

si el poate fi utilizat si pentru validare.Pentru un model de asteptare cu o statie, cu sosiri exponentiale si

servicii oarecare ( adica modelul Exp(λ)/B/1 : (∞;FIFO), E(B) =E(ST ) = 1

µ,) s-a aratat ca

Ie =ρ

2(1− ρ)(1 + C2s ) (7.20′′)

unde Cs este coeficientul de variabilitate al timpului de serviciu definitastfel

Cs =

√V ar(ST )

E(ST ).

Formula (7.20”), cunoscuta sub numele de Formula lui Pollaczek, spunein fapt ca factorul de eficienta al sistemului de asteptare depinde numaide ρ = λ/µ si de Cs.

Page 171: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

170 CAP. 7. CATEVA MODELE DE SIMULARE

7.3 Simularea unui sistem cu N statii par-

alele

Vom prezenta aici modelul de simulare

././N : (∞, F IFO)

in care cele N statii sunt presupuse paralele. In practica un astfel demodel se intalneste la o statie de service auto, la o statie de benzinasau la o banca (ghiseele care servesc clientii), etc. Lista variabilelor siparametrilor modelului este

AT = intervalul de timp (aleator) dintre doua veniri consecutive;ST (J) = durata unui serviciu (aleator) la statia J, 1 ≤ J ≤ N,

(N este parametru de intrare; tot parametri de intrare sunt parametrirepartitiilor de probabilitate ale variabilelor aleatoare AT si ST (J));

WT = timpul de asteptare in coada al unui client oarecare;TID = timpul curent de lenevire al statiei care incepe un serviciu;TAT = momentul sosirii ultimului client (clientul curent);TT (J) = timpul statiei J la plecarea din ea a ultimului client (ceasul

statiei J);TTMIN = ceasul simularii, cu crestere variabila (definit ca cel mai

mic dintre ceasurile TT (J));L = statia cu cel mai mic ceas, adica TTMIN = TT (L);NS = numarul de clienti ce trebuie serviti pe parcursul simularii,

este parametru de intrare;ICOUNT = contur care numara serviciile;SST (J) = suma duratelor de serviciu ale statiei J ;SWT (J) = suma timpilor de asteptare ai clientilor serviti de statia

J ;TTID(J) = timpul total de lenevire al statiei J ;DIF = TAT − TTMIN = variabila de lucru.Schema logica a modelului de simulare este prezentata in Fig.7.3.

In blocul (1) sunt cititi parametri de intrare si sunt facute initializarile

TAT = 0, TT (J) = SST (J) = SWT (J) = TTID(J) = 0, 1 ≤ J ≤ N.(7.21)

In continuare, ciclul definit de blocurile (2) si (3) genereaza N − 1sosiri (se presupune ca la inceputul simularii un client se afla deja

Page 172: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.3. SIMULAREA UNUI SISTEM CU N STATII PARALELE 171

in sistem). Ciclul format din blocurile (5) si (6) simuleaza servireaprimilor N clienti (specificati in blocul (4)) si actualizeaza variabileleTT (J), TTID(J), ST (J), SST (J), 1 ≤ J ≤ N. Blocurile (7)-(15) re-alizeaza ciclul de simulare al servirii celor NS clienti. Astfel, blocul(7) determina ceasul (variabil) al simularii alegand statia L la care seva efectua urmatorul serviciu, numarat de blocul (8). Blocul (9) con-troleaza si decide terminarea simularii. Blocul (10) simuleaza o nouasosire, actualizeaza momentul ultimei sosiri TAT, si calculeaza vari-abila de lucru DIF, al carei semn este testat de blocul (11). Dacasemnul lui DIF este negativ atunci in blocul (12) se calculeaza timpulde asteptare al clientului ce urmeaza sa intre in serviciu si se actual-izeaza timpul de asteptare al clientilor serviti de statia L, altfel dacaDIF in blocul (11) este pozitiv, atunci in blocul (13) se calculeaza siactualizeaza timpul de lenevire al statiei L. In continuare blocul (14)simuleaza servirea clientului (sosit cel mai de demult conform blocului(12) sau deja sosit conform blocului (10)), conform disciplinei FIFO, decatre statia L. Blocul (15) actualizeaza ceasul statiei L care a terminatserviciul si se reia ciclul simularii din blocul (9). Cand simularea setermina, se executa blocul (16) care calculeaza ca deobicei statisticilefinale si alte elemente de interes.• Validarea modelului cu N statii paralele. Pentru validare

folosim modelul matematic de asteptare

Exp(λ)/Exp(µ)/N : (∞;FIFO) (7.22)

adica modelul cu N statii paralele identice, cu timp de intersosireexponential de parametru λ, cu timpul de servire al fiecarii statii repar-tizat exponential de parametru µ, si cu disciplina de serviciu FIFO.

Va trebui si in acest caz sa determinam intensitatile λn, n ≥ 0 siµn, n > 0. Ca si in cazul modelului cu o statie, avem

λn = λ, n ≥ 0. (7.23)

Deoarece intensitatea servirilor pentru fiecare statie este µ si serviciulse desfasoara in paralel, avem

µn =nµ, 1 ≤ n ≤ N − 1,Nµ, n ≥ N.

(7.24)

Page 173: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

172 CAP. 7. CATEVA MODELE DE SIMULARE

ATT(L)= TTMIN+ST(L)

(15)

SST(L)=SST(L)+ST(L)Genereaza ST(L)

(14)

SWT(L)=SWTL(L)+WTWT=-DIF

TTID(L)=TTID(L)+TIDTID = DIF

DIF ?(12) (13)

= 0

+(11)

DIF = TAT - TTMINTAT = TAT + ATGenereaza AT (10)

≤ NS

ICOUNT ?(9)

> NS

rezultatele utilesi livreaza

Calculeaza statisticile(16)

STOP

ICOUNT=ICOUNT+1 (8)

TTMIN=TT(L)1 ≤ J ≤ N

TTMIN=MIN(TT(J)) (7)

A

TTMIN=TT(L)1 ≤ J ≤ N

TTMIN=MIN(TT(J)) (7)

SST(J)=SST(J)+ST(J)TT(J)=TTID(J)=ST(J)

Genereaza ST(J) (6)

DO J=1,N(5)

ICOUNT=N (4)TAT=TAT+ATGenereaza AT

(3)

DO J=2,N(2)

si fixeaza conditiile initialeCiteste parametrii de intrare

(1) START

Fig. 7.3. Schema logica pentru simularea unui sistemcu N statii paralele.

Page 174: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.3. SIMULAREA UNUI SISTEM CU N STATII PARALELE 173

Notand ca si in cazul modelului cu o statie

ρ =λ

µ,

conform cu (7.8) deducem

pn =

ρn

n!po, 1 ≤ n ≤ N − 1,ρn

N !Nn−N p0, N ≤ n <∞, (7.25)

iar din (7.8’) rezulta

p0 =

[N−1∑n=0

ρn

n!+ρN

N !

N

N − ρ]−1

. (7.25′)

Lungimea medie a cozii este

E(WL) =∞∑

n=N

(n−N)pn = p0

[Nn

N !

∞∑n=N

nρn

Nn− NN+1

N !

∞∑n=N

ρn

Nn.

].

Notandρ∗ =

ρ

N

se deduce prin calcule ca

E(WL) = p0

[Nn

N !ρ∗d

( ∞∑n=N

ρ∗n−1

)− NN+1

N !

ρ∗N+1

1− ρ∗]

=

=NN

N !

ρ∗N+1

(1− ρ∗)2=

λµρN

(N − 1)(Nµ− λ)2. (7.26)

Marimea ρ∗ se numeste intensitatea de trafic a sistemului de asteptare.Timpul mediu de asteptare este

E(WT ) = E(WL)E(S), E(S) = E(ST )/N,

unde E(S) este timpul mediu de serviciu al sistemului. In final se obtine

E(WT ) =λρN

N(N − 1)!(Nµ− λ). (7.26′)

Page 175: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

174 CAP. 7. CATEVA MODELE DE SIMULARE

In mod asemanator se calculeaza numarul mediu de statii care lenevescsi timpul mediu de lenevire al statiilor, adica

E(NID) =N−1∑n=0

(N − n)pn =

[(N − ρ)

N−2∑n=0

ρn

n!+

NρN−1

(N − 1)!

]p0, (7.27)

E(TID) = E(NID)E(AT ) =1

λ

[(N − ρ)

N−2∑n=0

ρn

n!+

NρN−1

(N − 1)!

]p0.

(7.27′)Din modelul de simulare se obtin respectiv urmatoarele estimatii

pentru E(WT ) si E(TID)

AWT =

∑LSWT (L)

NS, (7.26′′)

ATID =

∑LTTID(L)

NS. (7.27′′)

Ca si in cazul modelului cu o statie, conditiile de validare pentru acestmodel sunt

|E(WT )− AWT | < ε, |E(TID)− ATID| < ε.

In caz de validare, inseamna ca modelul de simulare construit poate fiutilizat si daca repartitiile variabilelor aleatoare AT si ST sunt oarecare(diferite de exponentiale).

7.4 Modele de simulare pentru stocuri

7.4.1 Introducere in teoria matematica a stocurilor

Un stoc este o resursa de orice fel care are o valoare economica, car-acterizata prin intrari si iesiri. Iesirea din resursa este determinata deregula de cerere, desi nu intotdeauna. (Pot fi scoase din stoc si elementeexpirate sau deteriorate).

Stocuri (numite uneori si inventare), exista in aproape orice acti-vitate economico-sociala (de ex. unitate de productie, unitate comer-ciala, etc). Scopul unui model de stocare este sa defineasca regulile de

Page 176: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.4. MODELE DE SIMULARE PENTRU STOCURI 175

incarcare optima a stocului, astfel incat costul (sau profitul) legat deaprovizionarea si intretinerea stocului sa fie minim (maxim). Stocul sepoate masura in unitati fizice ( de ex. kilograme, metri, bucati, etc),sau in unitati valorice conventionale (de regula unitati monetare).

Variabilele si parametri unui model general de stocare sunt:t=timpul;I(t)= nivelul curent al stocului;a(t)= rata intrarii in stoc la momentul t;b(t)= rata iesirii sin stoc la momentul t;r(t)= rata cererii (cand aceasta nu coincide cu iesirea de alta natura).Rata cererii, ca si alte elemente ce caracterizeaza un stoc, pot fi

aleatoare.De regula, intrarea in stoc se realizeaza in cantitati mari (numite

comenzi) care se introduc in stoc la intervale de timp numite cicluri dereaprovizionare. Costurile sunt (parametri!) de tipul:

h= costul de stocare a unei unitati de stoc intr-o unitate de timp;d= costul lipsei unei unitati de stoc intr-o unitate de timp ;s= costul de lansare a unei comenzi (costul fortei de munca sau al

altor resurse folosite pentru a lansa comanda).Din cele de mai sus rezulta ca nivelul stocului la momentul t este

I(t) = I0 +

t∫0

[a(t)− b(t)]dt, (7.28)

unde I0 este nivelul initial al stocului.In functie de elementele de mai sus se defineste un obiectiv, sa-l

notamE[a(t), b(t), r(t)], care trebuie optimizat. Asa cum am mentionat,acest obiectiv poate fi un cost (sau un profit) determinat in funtiede cerere si de costurile h, d, s si de unele necunoscute (comanda sauallte elemente ce vor fi definite mai jos). Cand cererea este aleatoare,functia obiectiv este o medie (cost mediu sau beneficiu mediu). Deregula, scopul modelului de stocare este de a defini a(t) optim candse dau b(t), r(t). Uneori insa (de exemplu cand stocul este un lac deacumulare), scopul modelului este sa determine iesirea optima (adicab(t) si/sau r(t)) cand rata (debitul) intrarii a(t) este cunoscut. Pentrua face o alegere ne vom ocupa de primul caz (al stocurilor obisnuite,caz mai frecvent intalnit),

Page 177: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

176 CAP. 7. CATEVA MODELE DE SIMULARE

0

t1 t2T1 T2

I0

I(t)

q1 q2

t

Fig. 7.4. Variatia stocului I(t)

cand se cere intrarea optima. Am vazut ca in acest caz intrarea in stocse realizeaza prin comenzi. Reaprovizionarea stocului si variatia aces-tuia se prezinta grafic in Fig. 7.4. Comenzile q1, q2, ... intra in stoc lamomentele t1, t2, ... Intervalul Ti = ti+1−ti este ciclul de reaprovizionarecare paote fi constant sau variabil.

Reaprovizionarea stocului se realizeaza printr-un mecanism de reapro-vizionare descris de Fig. 7.5. Se presupune ca stocul nu depaseste unnivel maxin S. In timp stocul scade cu o rata data (care este constantain Fig. 7.5, deoarece variatia stocului este liniara); cand stocul scadepana la un nivel P , numit nivel reaprovizionare, atunci se lanseaza o co-manda q care va intra in stoc dupa timpul de avans L. Comenzile intrain stoc la intervale de timp de reaprovizionare de lungime T. Nivelul dereaprovizionare ar trebui sa poata satisface cererea pe perioada timpu-lui de avans L. Dar uneori acceptam ca stocul de rezerva P sa poatasatisface cererea pe o perioada de timp de lungime t′, t′ < T. In acestcaz exista o perioada t′′ = T − t′ cand are loc lipsa de stoc. Un astfel demodel se numeste cu lipsa de stoc si in el intervine costul d. ConformFig. 7.5 cererea ne satisfacuta se pastreaza in sensul ca atunci cand qintra in stoc se consuma o parte din comanda pentru a satisface cerereacare nu a fost satisfacuta pe perioada t′′.

In acest caz se admite ca nivelul stocului ia si valori negative, iarnivelul la care se ridica stocul va fi mai mic decat q. Daca cerereanesatisfacuta nu se pastreaza, nu se admite stoc negativ si la intrarealui q in stoc nivelul maxim al stocului devine S = q. Pentru un astfelde model cererea nestisfacuta se pierde.

Page 178: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.4. MODELE DE SIMULARE PENTRU STOCURI 177

0

I(t)

T 2T

t′t”

L1 L2

P

S

t

Fig. 7.5. Mecanismul reaprovizionarii

In diverse modele de stocare se pot da costurile h, s si/sau d, se darata cererii r si timpul de avans L si se cer q, P optime. O multime deelemente ce definesc un mecanism de aprovizionare se spune ca deter-mina o politica de reaprovizionare. Cand r, L nu sunt aleatoare modelulse numeste determinist; in cazul cand cel putin una din aceste variabileeste aleatoare modelul este stochastic. Daca timpul nu intervine in modexplicit in model, spunem ca avem de-a face cu un model static, altfel,modelul este dinamic.

In concluzie, modelele de teoria stocurilor isi propun sa determineo politica de reaprovizionare optima.

7.4.2 Modele simple deterministe de stoccare a unui

produs

Vom prezenta doua din cele mai simple modele statice deterministepentru stocarea unui produs.Aceste modele vor constitui scheletul pebaza carora se vor construi modelele de simulare.

•Modelul clasic al lotului economic. Acest model, cunoscut sisub numele de modelul lui Wilson, are la baza urmatoarele ipoteze:

- rata cererii r este constanta, cunoscuta si cererea este continua;

Page 179: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

178 CAP. 7. CATEVA MODELE DE SIMULARE

- ciclul de reaprovizionare T este constant si ne cunoscut;- comanda q este constanta si necunoscuta; intrarile cantitatilor q

in stoc au loc instantaneu la intervale de timp T ;- timpul de avans L este zero, adica neglijabil; (comenzile q intra in

stoc imediat dupa ce se lanseaza comanda);- nivelul de reaprovizionare P este zero (in concordanta cu ipoteza

anterioara);- costurile de stocare h si de lansare s sunt constante date;- nu se admite lipsa de stoc (adica d = 0).Se observa ca intre necunoscutele q, T are loc relatia

T =q

r. (7.29)

Variatia stocului in cazul acestui model este prezentata in Fig.7.6.

0

I(t)

T 2T

q

t

Fig. 7.6. Variatia stocului pentru modelul clasic al lotului economic

Costul total de intretinere a stocului pe perioada T este

CT = Ch,T + s (7.30)

unde Ch,T este costul de stocare si s este costul de lansare. Avem

Ch,T = h

T∫0

I(t)dt =hq

2T =

hq2

2r. (7.30′)

Functia obiectiv a modelului consta in a minimiza costul asociat mentineriistocului. Daca am considera acest cost asa cum este el definit de (7.30),

Page 180: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.4. MODELE DE SIMULARE PENTRU STOCURI 179

atunci s-ar deduce ca T = 0 ceea ce nu are sens. De aceea luam ca obiec-tiv minimizarea costului C(q) pe unitatea de timp, adica, tinandseama si de (7.29) trebuie sa impunem conditia

C(q) =CT

T=hq2

2r

1

T+s

T=hq

2+sr

q= min. (7.31)

Impunand conditia de mninim lui C(q) obtinem politica optima dereaprovizionare (q0, T0) data de

q0 =

√2rs

h, T0 =

q0r

=

√2s

rh(7.32)

iar costul optim (i.e. minim) este

C0 =√

2rsh. (7.32′)

Din formula (7.31) se deduce o regula simpla de calcul a costului destocare pe unitatea de timp, anume, el este produsul dintre h si stoculmediu pe perioada ciclului de reaprovizionare care este (0 + q)/2; deaici se deduce costul de stocare mediu pe o perioada de lungime t, adica

Ch,t = hq

2t. (7.31′)

• Modelul clasic al lipsei de stoc. In acest caz sunt satisfacuteipotezele modelului precedent cu exceptia faptului ca exista lipsa destoc (adica d > 0, d =constanta data) si stocul poate creste pana la ovaloare S necunoscuta. Variatia stocului in acest caz este ilustrata deFig. 7.7. Rationand asemanator modelului precedent se deduce functiaobiectiv de minimizat de forma

C(S, T ) =1

T[Ch,t′ + Cd,t′′ + s] (7.33)

unde Ch,t′ a fost definit mai sus in (7.31’) iar Cd,t′′ se defineste in modasemanator. Detaliind costurile rezulta ca

C(S, T ) =1

T(s + h

S

2t′ + d

q − S2

t′′), q = rT. (7.33′)

Page 181: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

180 CAP. 7. CATEVA MODELE DE SIMULARE

0

I(t)

T 2T

qS

t′

t′′t

Fig. 7.7. Variatia stocului pentru modelul lipsei de stoc

Din asemanarea unor triunghiuri din Fig.7.7 rezulta

t′ =S

r, t′′ = T − S

r=rT − S

r

de unde se obtine in final

C(S, T ) =s

T+hS2

2rT+d(rT − S)2

2rT. (7.34)

Impunand conditii de minim in (7.34), adica

∂C

∂S= 0,

∂S

∂T= 0,

deducem in final valorile S1, T1 care realizeaza costul minim C1,

T1 =

√2s

rh

√1

ρ, ρ =

d

h+ d,

S1 =

√2rs

h

√ρ, q1 = T1r =

√2rs

h

√1

ρ. (7.35)

Se observa ca 0 < ρ < 1, care conduce la

C1 =√ρC0 < C0,

de unde rezulta la prima vedere ca modelul clasic al lipsei de stoc estemai bun dacat modelul clasic al lotului economic. Coeficientul ρ satis-

face relatia ρ = S1

q1, de unde rezulta ca (1− ρ)% poate fi interpretat ca

indice de lipsa. Deci daca s-ar da indicele de lipsa α = 1− ρ atunci arrezulta ca d = 1−α

αh adica ar rezulta ca exista o dependenta stricta intre

costurile h si d, ceea ce nu este intocmai adevarat in practica. Acestfapt constituie deci o critica a modelului clasic al lotului economic.

Page 182: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.4. MODELE DE SIMULARE PENTRU STOCURI 181

7.4.3 Modele de simulare particulare

Vom prezenta aici doua modele de simulare simple pentru un produs,din care vor rezulta planuri de reaprovizionare si costuri optime. Mo-delele vor fi construite pe scheletul modelului clasic al lipsei de stoc.

• Primul model. In acest model vom folosi urmatoarele variabilesi parametri

H = costul de stochare;

D = costul lipsei de stoc;

S = costul de lansare;

CH = costul total de stocare pe perioada simulata;

CD = costul total al lipsei de stoc pe perioada simulata;

CS = costul total de lansare pe perioada simulata;

TC = costul total (TS = CH + CD + CS);

T = momentul de timp (curent) cand intra o comanda in stoc;

R = cerera pe unitatea de timp (rata cererii);

V I = nivelul curent al stocului;

Q = comanda optima;

P = nivelul de reaprovizionare;

L = timpul de avans;

CLOCK = ceasul simularii;

BI = nivelul initial al stocului;

TT = perioada de timp pe care se face simularea.

Parametrii de intrare sunt: H,D, S, P,BI, TT ; variabilele R,L suntvariabile aleatoare de intrare (avand repartitii date) iar parametri aces-tor repartitii sunt de asemenea parametri de intrare; toate celelaltevariabile listate anterior sunt variabile de iesire.

Page 183: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

182 CAP. 7. CATEVA MODELE DE SIMULARE

T = CLOCK + LGenereaza LCS = CS + S

(12)

T ≤ CLOCK

(11)

P < VI?

(10)

CH = CH + VI ∗ H (9)

≥VI = 0CD = CD - VI∗D

(8)

?

VI

(7)< 0

VI = VI - R (6)

VI = VI + Q(5)

Nu

Da

?

T=CLOCK(4)

?

CLOCK≤TT(3)

Da

Nu

simularii

Scrie rezultatele

(14)

TS = CH + CD + CS(13)

STOP

CLOCK = CLOCK + 1

Genereaza R

(2)

parametrii de intrareInitializeaza si citeste

(1) START

Da

Nu

Da

Nu

CH=CH+VI∗H CD=CD-VI∗D(9) (8)

≥0 <0

?

VI (7)

Fig. 7.8’

Fig. 7.8. Schema logica pentru primul model

Page 184: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.4. MODELE DE SIMULARE PENTRU STOCURI 183

Conditiile initiale (inclusiv valorile initiale ale variabilelor) sunt

TC = CS = CD = CH = 0, V I = BI, T = CLOCK = 0.(7.36)

Marimea comenzii Q se determina pe parcursul simularii cu formula

Q =

√2RS

H

√H +D

D, R N(m, σ), m >> 3σ (7.37)

unde R se simuleaza in prealabil; comanda Q este calculata in ipotezelemodelului clasic al lotului economic.

Nivelul de reaprovizionare, in ipoteza R N(m, σ) se calculeaza lainceputul executiei simularii folosind proprietatea Prob(R(L) > P ) = α,unde α este un risc mic dat (α ≈ 0.05), iar R(L) = R1 + ... + RL estecererea pe timpul aleator de avans L, (L-intreg) cu media l = E[L].Deoarece R(L) N(lm,

√lσ) rezulta ca

Prob(R(L) > P ) = Prob(R(L) −ml√

lσ>P − lm√

lσ) = α,

si deoarece

Z =R(L) − lm√

lσ N(0, 1)

rezultaP − lm√

lσ= zα, unde

zα∫−∞

e−t2

2 dt = 1− α.

Din ultima relatie rezulta nivelul de reaprovizionare de forma

P = lm+ zα

√lσ. (7.38)

Schema logica a modelului de simulare este data de Fig. 7.8 si ea seautoexplica. Modelul de simulare este construit in ipoteza ca cerereanesatisfacuta se pierde, fapt ilustrat de blocurile (7) si (8) din schema.Printr-o modificare minora se poate introduce in model ipoteza ca cer-erea nesatifacuta se pastreaza. Acest fapt este ilustrat prin blocurile(7),(8),(9) din figura incadrata 7.8’ care ar trebui sa inlocuiasca blocurile(7),(8) din Fig. 7.8. Introducand in Fig. 7.8 instructiuni corespunzatoare

Page 185: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

184 CAP. 7. CATEVA MODELE DE SIMULARE

de afisare (scriere), se poate obtine planul de reaprovizionare pe pe-rioada simulata TT , constand din momentele intrarii in stoc T si comen-zile optime Q.

• Al doilea model. Acest model este asemanator primului model,dar el foloseste unele ipoteze mai generale ce vor fi precizate in conti-nuare. Astfel, sunt folosite multe din variabilele si parametri primuluimodel, dar sunt incluse si urmatoarele:

AR=media mobila a cererii calculata pe M unitati de timp prece-dente;

RS= abaterea medie patratica a cererii ca medie mobila pe M pe-rioade de timp precedente;

AL= media mobila a timpului de avans calculat din datele pe Nperioade precedente;

K = zα= α− cuantila repartitiei normale N(0, 1) (folosita si inmodelul precedent).

Se presupune deci ca rata cererii R N(µ(t), σ(t)), are parametrivariabili in timp iar L are de asemenea media E[L] = l(t) variabila intimp. Se presupune ca aceste variabile aleatoare au parametri constantipe perioade mici de timp de lungimi M respectiv N, parametri ce suntestimati ca medii mobile de forma

AR =

M∑i=1

Ri

M=SUMR

M(7.39)

AL =

N∑j=1

Lj

N=SUML

N(7.40)

SR =

√√√√√√√√M∑i=1

R2i

M−

M∑i=1

Ri

M

2

=

√SSUMR

M−

(SUMR

M

)2

. (7.41)

In ipoteza parametrilor constanti putem deci aplica formulele de calculpentru comanda Q si nivelul de reaprovizionare L, adica

Q =

√2.AR.S

H

√H +D

D(7.42)

Page 186: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.4. MODELE DE SIMULARE PENTRU STOCURI 185

AVI = VI-R (11)VI = VI+Q

(10)

Nu

Da

?T=CLOCK

(9)Nu

?CLOCK>TT

(8)

tipareste-lede iesire sistatisticileCalc. TC si

(12)Da

STOP

Calculeaza Q,PCalculeaza AR,AL,SRCLOCK=CLOCK+1

(7)RR(M)=R

(6)

DO I=1,M

RR(I) = RR(I+1)

(5)

-RR(1)∗RR(1)SSUMR=SSUMR+R∗R-SSUMR=SSUMR+R-RR(1)Genereaza R

B(4)

DO J=1,N

SUML = SUML+LLL(J) = LGenereaza L

(3)

DO I=1,M

SUMR=SUMR+R∗RSUMR=SUMR+RRR(I) = RGenereaza L

(2)si fixeaza conditiile initialeCiteste parametrii de intrare

(1) START

B(22)

T = CLOCK + L

(21)LL(N) = L

(20)

LL(J)=LL(J+1)

DO J=1,N

SUML=SUML+L-LL(1)

Genereaza L

(19)CS = CS + S

(18)Nu

?T>CLOCK

(17)B

?P < VI

(16)B

NuDa

Da

CH = CH+VI∗H (15)

CD = CD-VI∗DVI = 0

(14)

< 0

≥ 0

VI

(13)

A

Fig. 7.9. Schema logica pentru al doilea model de stocare

Page 187: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

186 CAP. 7. CATEVA MODELE DE SIMULARE

P = AL.AR +K√AL.SR. (7.43)

Schema logica a acestui model de simulare este prezentata in Fig.7. 9.

Conditiile initiale sunt (7.36) precum si cele ce rezulta din consi-derarea noilor variabile adica

SUMR = SSUMR = SUML = 0. (7.44)

Algoritmul simularii foloseste doi vecroti RR(I), 1 ≤ I ≤ M (carememoreaza Ri din (7.39), (7.41)) si LL(J), 1 ≤ j ≤ N (care memoreazaLj din (7.40)). Blocurile schemei logice se autoexplica. Trebuie saprecizam insa ca printre parametri de intrare se dau si parametri cucare se calculeaza functiile µ(t), σ(t), l(t). Schema logica este construitain ipoteza ca cererea nesatisfacuta se pierde (vezi blocurile (13), (14),(15)), dar ca si in modelul precedent, prin modificari (reamplasari)corespunzatoare ale acestor blocuri, se poate introduce si ipoteza cacererea nesatisfacuta se pastreaza. Pentru a obtine din modelul de simu-lare un plan de reaprovizionare pe perioada TT va trebui sa includem inblocul (22) o instructiune care sa afiseze CLOCK,Q, P, T. Repartitiaratei cererii R poate fi normala N(µ(t), σ(t)), caz in care P se calculeazacu formula (7.43), sau poate fi Exp(λ(t)), caz in care P se calculeazape o cale asemanatoare, dar folosind faptul ca cererea pe timpul deavans R(L) are o repartitie Erlang(0, λ, l). Repartitia lui L poate fi deexemplu Poisson(λ(t)), l = E[L] = λ(t). (Vezi exercitiul E 7.7).

Acest ultim model simuleaza in mod mai realist decat primul, pro-cesul de reaprovizionare al stocului.

Exercitii.

E 7.1. Precizati cateva caracteristici ale modelului de asteptare

Exp(λ)/Exp(µ)/1 : (M,FIFO), 0 < M <∞

adica un model cu o statie si cu coada finita.Indicatie. Conform formulelor (7.15’),(7.15”) din $ 7.2.3 avem

λn = λ, n ≥ 0, µn = µ, 1 ≤ n ≤M + 1.

Page 188: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

7.4. MODELE DE SIMULARE PENTRU STOCURI 187

deci dupa calcule, folosind (7.8’) avem

pn =ρ(1− ρ)1− ρM+1

=ρ(1− ρ)

K, K = 1− ρM+1.

De aici se deduce

E[N(t)] =∞∑

n=0

nρn(1− ρ)1− ρN+1

=ρ(1 + (M + 1)(ρ− ρM)− ρM+1)

(1 + ρ)(1 + ρM+1)

E[WL] =M∑

n=1

(n− 1)ρn(1− ρ)1− ρM+1

=ρ2[(M − 1)ρm + 1−MρM−1]

(1− ρM+1)(1 + ρ).

E[WT ] =E[WL]

µ, E[NID] = p0, E[TID] =

1− ρλ(1− ρM+1)

.

E 7.2. Fie modelul de asteptare

Exp(λ)/Exp(µ)/N : (M,FIFO)

adica un model cu N statii paralele identice si cu coada finita M,M >N. Sa se determine repartitia numarului de clienti in sistem si catevacaracteristici ale modelului.

Indicatie. Asemanator exercitiului precedent avem

λn = λ, n ≥ 0, µn =n!µ, daca 1 ≤ n ≤MN !µNn−N , dacaN < n ≤ N +M

.

Mai departe se continua calculele ca in exercitiul precedent.

E 7.3. Modificati schema logica din modelul din Sectiunea 7.2 astfelincat clientii poseda doua prioritati; prioritatea 1 este mai puternicadecat prioritatea 2.

Indicatie. In blocul (2) se considera repartitia lui AT ca o ameste-care discreta de forma

fAT (x) = p1f1(x)+p2f2(x), p1, p2 > 0, p1+p2 = 1, fi−densitati, i = 1, 2.

La generarea lui AT clientul sosit se depune in coada Q1 sau Q2 core-spunzatoare prioritatii. In blocul (4) se va simula timpul de servire

Page 189: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

188 CAP. 7. CATEVA MODELE DE SIMULARE

conform prioritatii celei mai mari ( adica 1), daca Q1 = ∅ sau pri-oritatii mai mici daca Q1 = ∅. Se pot calcula timpii de asteptare infunctie de prioritati.

E 7.4. La fel ca in exercitiul precedent, modificati schema logicadin Fig. 7.3 (a modelului 7.3) presupunand ca sosirile provin dintr-opopulatie cu doua prioritati.

Indicatie. Se vor folosi ideile din exercitiul precedent: timpul de in-tersosire are o repatitie data de o amestecare discreta de doua repartitii.

E 7.5. Ce modificari ar trebui facute in modelul 7.3 daca duratelede serviciu ale statiilor au repartitii diferite.

Indicatie. Se va folosi un vector ST (I), 1 ≤ I ≤ N iar in blocurileunde se genereaza ST se va inlocui aceasta instructiune cuGENEREAZAST (I).

E 7.6. Ce precautii trebuie sa se ia in modelele 7.3 daca cererea Reste discreta Poisson(λ) si L este Binom(n, p)?

Indicatie. Toate variabilele din model vor fi discrete, inclusiv CLOCK.Nivelul de reaprovizionare se va calcula tinand seama caR(l) Poisson(lλ).

E 7.7. Sa se determine nivelul de reaprovizionare P cand ratacererii r are repartitia Exp(λ).

Indicatie. Se foloseste conditia Prob(R(L) > P ) = α, α− risc. DeciP este solutia ecuatiei

1− α =λl

Γ(l)

∫ P

0xl−1e−λxdx

deoarece R(L) = r1 + ... + rl Erlang(λ, l), l = E[L].

Page 190: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

Bibliography

[1] CHISMAN,J. (1989). Introduction to Simulation and Modeling us-ing GPSS/PC, Minuteman Software. (Contine si discheta cu ver-siunea studenteasca a GPSS/PC).

[2] ERMAKOV,E.S. (1974). Metoda Monte Carlo si probleme inru-dite. Editura Tehnica, Bucuresti. (Traducere din Limba Rusa).

[3] FISHMAN, G. S. (1978). Principles of Discrete Event Simulation.Wiley, New York.

[4] GORUNESCU, F., PRODAN, A. (2001). Modelare stochastica sisimulare. Editura Albastra, Cluj-Napoca.

[5] MORGAN,BYRON T. (1984). Elements of Simulation. Chapman& Hall, New York, London.

[6] ROBERT CHRISTIAN P., CASELLA, GEORGE. (1999). MonteCarlo Statistical Methods. Springer Verlag, New York, Berlin.

[7] ROSS, SHELDOM M. (1997) Simulation. Second Edition. Aca-demic Press, San Diego, New York, London.

[8] SPRIET, JAN, VANSTEENKISTE GHISLAIN, C. (1982). Com-puter ided Modeling and Simulation. Academic Press, New York.

[9] VADUVA, I. (1972). ”Metoda Monte Carlo”. Culegere tematica,Matematica-Mecanica, Vol. 1, Nr. 1, CIDI, p.131-188.

[10] VADUVA, I. (1977). Modele de Simulare cu Calculatorul. EdituraTehnica, Bucuresti.

189

Page 191: Facultatea de Matematic˘a¸si Informatic˘a Modele de simularefmi.unibuc.ro/ro/idd/cursuri/2005/id/simulare_an4/cap1.pdf · Capitolul al ¸saselea trateaz˘acˆateva probleme de

190 BIBLIOGRAPHY

[11] VADUVA,I., ODAGESCU,I., STOICA,M. (1983).Simularea Pro-ceselor Economice. Editura Tehnica, Bucuresti.

[12] ZEIGLER,B. P. (1976). Theory of Modeling and Simulation. (FirstEdition). John Wiley and Sons, New York.

[13] ZEIGLER, B. P., PRAEHOFER, H. (2000). Theory of Modelingand Simulation, (Second Edition). Academic Press, New York.

[14] *** (1977). Limbajul SIMUB. Manual de utilizare. Centrul de Cal-cul Al Universitatii din Bucuresti. (litografiat).