Top Banner

of 187

56722760-Cap-1

Feb 09, 2018

Download

Documents

Alice Bot
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 7/22/2019 56722760-Cap-1

    1/187

    0

    Universitatea din Bucuresti

    Facultatea de Matematica siInformatica

    Modele de simulare

    AutorProf. Dr. Ion Vaduva

    BUCURESTI 2004

  • 7/22/2019 56722760-Cap-1

    2/187

    1

    Prefata

    Lucrarea constituie suportul de curs pentru disciplina Modele desimulare predata studentilor de la sectiile de Informatica si Mate-matica-Informaticadin 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 init iere, 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 deinformatica. Se prezinta si o introducere formalain studiulsistemelor 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 prilejuind

    si o scurta introducere matematica in teoria firelor de asteptare si inteoria stocurilor. Modelele matematice corespunzatoare se folosesc deregula la validarea modelelor de simulare.

  • 7/22/2019 56722760-Cap-1

    3/187

    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.

  • 7/22/2019 56722760-Cap-1

    4/187

    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 simula r i i ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 ;( Utilitatea simularii, p.26)

    1.3. Generalitati despre l imbajul 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;

  • 7/22/2019 56722760-Cap-1

    5/187

    4

    Amestecarea de generatori, p.49)Exercit i i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 0

    Cap.3. Simularea variabilelor neuniforme . . . . . . . . . . . . . . . . . 5 33.1 Metoda inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 33.2 Metoda compunerii sau amesteca r i i . . . . . . . . . . . . . . . . . . . . . . 5 53. 3 M e t oda r e spi nge r i i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.4 Alte metode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7

    3.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 43.5.2 Repartitia Gama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    (O metoda de compunere-respingere pt. cazul 0 < 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)

    Exercit i i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 9

    Cap.4. Simularea vectorilor aleatori1034.1 Generalitat i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 34.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

  • 7/22/2019 56722760-Cap-1

    6/187

    5

    4.6 Simularea repartitiei Dirichlet . . . . . . . . . . . . . . . . . . . . . . . . . . 115Exercit i i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 6

    Cap. 5. Simularea proceselor stochastice . . . . . . . . . . . . . . . . 1 2 15.1 Generalitat i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 15.2 Lanturi si procese Markov. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1225.3 Simularea unui lant Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245.4 Simularea unor procese gaussiene particulare ........... 125

    5.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 16.1 Generalitat i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 1

    6.1.1 Calculul integralelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1336.2 Metoda Monte Carlo bruta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 46.3 Metode de reducere a dispersiei. . . . . . . . . . . . . . . . . . . . . . . . .136

    6.3.1 Metoda Monte Carlo dupa importanta . . . . . . . . . . . . . . . 1 3 6(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 . . . . . . . . . . . . . . . . . . . . . . . . . . 141

    6.3.6 Reducerea dimensiunii de integrare .................. 1426.4 Rezolvarea unor ecuatii operatoriale . . . . . . . . . . . . . . . . . . . . 143

    6.4.1 Rezolvarea sistemelor de ecuatii liniare . . . . . . . . . . . . . . 1436.4.2 Rezolvarea ecuatiilor integrale . . . . . . . . . . . . . . . . . . . . . . . 145

    6.5 Rezolvarea ecuatiilor cu derivate partiale . . . . . . . . . . . . . . . 148Exercit i i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 5 2(G6.4 Problema lui Buffon, p.154)

    Cap. 7. Cateva modele de simulare . . . . . . . . . . . . . . . . . . . . . . 1577.1 Generalitati despre modelele de asteptare. . . . . . . . . . . . . . . 157

    7.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 stat i e . . . . . . . . . . . . . . . . . . . . . . . 1 6 2

  • 7/22/2019 56722760-Cap-1

    7/187

    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)

    Exercit i i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 6

    Bibliografie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 8 9

  • 7/22/2019 56722760-Cap-1

    8/187

    Cap. 1

    Generalitati despre simulare

    1.1 IntroducereCuvantul 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 imitareacomportamentului 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 ale

    sale) de-alungul unor perioade mari de timp.

    Deci simularea se realizeaza pe baza unui model special, numitmodel

    7

  • 7/22/2019 56722760-Cap-1

    9/187

    8 CAP. 1. GENERALIT ATI 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-logce 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 lepipaim). Modelul matematic ne reprezinta realitatea folosind ele-

    mente sau abstractiuni matematice.Elementele constitutiveale 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 , P E ), 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. Scopulmodelului 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). UneleV Ipot fialeatoare, caz in caresi unele variabile sau parametri de iesire vor fi de asemenea aleatoare.

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

    Fi(V I , P I , V E , P E ) = 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 echilibrusau legi de conservare.

  • 7/22/2019 56722760-Cap-1

    10/187

    1.1. INTRODUCERE 9

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

    c) Caracteristicile operativeconstituie 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 rezolvareeste 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 forma

    explicita variabilele si parametri de iesire in functie de variabilele siparametri de intrare.

    Tehnicile matematice de rezolvare a modelelor sunt insasaraceatatca 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 ipotezesimplificatoarecare 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 realistaa 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 toat a 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 imiteanumite 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

  • 7/22/2019 56722760-Cap-1

    11/187

    10 CAP. 1. GENERALIT ATI 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): cuo componenta/cu mai

    multe 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 a

    lumii reale in care se produc aglomerari. Un astfel de sistem constadin una sau mai multe statii de serviciu care servesc (dupa anumite reguli) clienti caresosescin sistem. Daca sosesc multi clienti si statiile deservire nu pot sa-i serveasca repede, atunci se formeazacozi de asteptarein sistem. Proprietarul sau administratorul sistemului trebuie sa diri-

    jeze sistemul astfel incat nici clientii sa nuasteptemult pana primescserviciul, dar nici statiile de serviciu sa nu leneveascaprea mult, cacilenevirea lor aduce pierderi administratorului sistemului.

    Modelarea matematica a sistemelor de asteptare are deci cascopre-alizarea unui echilibru intre pierderile cauzate clientilor prin asteptari sipierderile cauzate administratorului prin leneviri. Modelele matematice

    de 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,

  • 7/22/2019 56722760-Cap-1

    12/187

    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 aleatoarediscrete.

    Variabilele deiesire(necunoscute)V Esunt: W T= timp de asteptare(sauW L= lungimea cozii, variabila discreta);

    T ID = timp de lenevire (sau NID= numarul de statii de servire

    carelenevesc, variabila discreta);Scopul modelului: cunoscand repartitiile de probabilitate ale luiAT

    siST sa se determine informatii despre W T (W L) sauT ID (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 descrie

    corectevolutia sistemului si sa permita efectuarea de experiente (prinrulari pe calculator), care sa inlocuiasca experientele ce ar trebui real-izate asupra sistemului real.

  • 7/22/2019 56722760-Cap-1

    13/187

    12 CAP. 1. GENERALIT ATI DESPRE SIMULARE

    1.2.1 Structura unui model de simulare

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

    Ceasul simularii. Ceasul asigura esalonarea corecta in timp aevenimentelor create de model si uneori a juta 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 segenereazaprin 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 aparitieiprimului eveniment urmator;apoi programul prelucreazaevenimentul , dupa care ceasul creste dinnou reluandu-seciclul simularii, pana cand ceasul atinge o valoare data

    initial, Tmax care corespunde perioadei pe care se realizeaza simularea.

    Ceasul cu crestere constanta presupune ca de fiecare data cresterease realizeaza cu ocuantade timpc 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 de

    asteptare, se poate impune conditia ca simularea sa se termine cand s-asimulat servirea unui numar dat de clienti).

  • 7/22/2019 56722760-Cap-1

    14/187

    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 constantac.

    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-ratede 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 stariale 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 curenteAEC siagenda evenimentelor viitoare.

    Deciagenda A= AEC AEV,unde:AEC= agenda evenimentelor curente (care au timpul de aparitie

    egal cu valoarea ceasului); iarAEV= agenda evenimentelor viitoare (care au timpul de aparitie

    ulterior valorii curente a ceasului).

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

  • 7/22/2019 56722760-Cap-1

    15/187

    14 CAP. 1. GENERALIT ATI 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 AECdevine 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 AEelimundeAgen sunt evenimentele generate pe parcursul unui ciclu, iar Aelimsunt evenimentele eliminate cu ocazia prelucrarii AEC. (Semnele

    si

    se autexplica).Structura generala a unui MS este descrisa in schema logica

    din 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 jocconstituit dinmutari. 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) (rutina

    principala!) 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........ > Bcare inseamna ca A il detrmina sigurpe B , respectiv A il poate deter-minapeB (cu o probabilitate); sau,

    A

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

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

  • 7/22/2019 56722760-Cap-1

    16/187

    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

    JOCREZUMAT

    RUTINA

    MUTAREREZUMAT

    RUTINA

    A MUTARIIINITIALIZARE

    RUTINA DE

    A JOCULUIINITIALIZARE

    RUTINA DE

    EVENIMENTRUTINAULTIMA

    EVENIMENTRUTINAA DOUA

    EVENIMENTRUTINAPRIMA

    Fig. 1.2. Schema logica globala a unui program

    de simulare bazat pe ceas cu crestere variabila.

  • 7/22/2019 56722760-Cap-1

    17/187

  • 7/22/2019 56722760-Cap-1

    18/187

    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

    MUTARE

    REZUMATDIN RUTINA

    INTRARE

    Fig.1.3(continuare) Schemele logice ale rutinelor

    programului de simulare.

    c) Rutina rezumat mutare;

    d) Rutina rezumat joc;

  • 7/22/2019 56722760-Cap-1

    19/187

    18 CAP. 1. GENERALIT ATI DESPRE SIMULARE

    ZATOARE

    CORESPUN-EVENIMENTLA RUTINATRANSFER

    e)

    CURENTEVENIMENTULUI

    DETERMINA TIPUL

    PRINCIPALADIN RUTINA

    INTRARE

    PRINCIPAL

    PROGRAMULLA

    TRANSFER

    f)

    REZUMATUL MUTARII

    INITIALIZEAZA

    NECESARA MUTARIIINFORMATIA

    JOCULUI INITIALIZEAZAFOLOSIND INFORMATIA

    A JOCULUIINITIALIZARE

    RUTINA DEINTRARE DIN

    A MUTARII

    INITIALIZARELA RUTINA DE

    TRANSFER

    g)

    REZUMATUL JOCULUI

    INITIALIZEAZA

    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.

  • 7/22/2019 56722760-Cap-1

    20/187

    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 cadru

    formal general folosind concepte din teoria matematica a sistemelor[8,12, 13].

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

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

    Definitia 1.2Un 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 stareeste esential in modelarea sistemelor; el descrie

    structura interna (intima!) a sistemului;

    = functia de tranzitie a starilor definita ca

    : .

    Ea satisface relatia

    (, ) =((, t)), (t),

    t, = t)(t,

    care esteaxioma semigrupuluisau proprietatea deseparabilitate a starilor.Multimea (graficul) (, ) se numeste traiectorie a starilor;

  • 7/22/2019 56722760-Cap-1

    21/187

    20 CAP. 1. GENERALIT ATI 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 initialt0 sistemul sa afla in starea .

    = functia de raspuns, de forma : X T Y;(,x,t) conduce la unsegment de iesirece 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 STRAJobtinuta 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 multenivelede reprezentare a sistemelor si anume [8]:

    Reprezentarea la nivel de comportare. Sistemul este o cutieneagra (black box), exprimat formal prin relatia

    Rs= {(, )| , = OT RAJ,, } .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.

  • 7/22/2019 56722760-Cap-1

    22/187

    1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 21

    Reprezentarea modulara (ca structura compusa). Daca sis-temul este complex, atunci se identifica subsistemeale 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 mai

    vaga si continuand pana la forma detaliata legitimeaza Metodologia

  • 7/22/2019 56722760-Cap-1

    23/187

    22 CAP. 1. GENERALIT ATI 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, descendentaa 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 Teste considerat implicit iar elementele au urmatoareasemnificatie:

    XM= multimea (discreta) de evenimenteexterne; (intelegem eveni-

    mentele ca niste entitati oarecari);SM= multimea secventelor discrete de stari interne pe care le pot

    parcurge evenimentele externe cand acestea intra in sistem;YM= multimea iesirilor, sau raspunsurilor sistemului;M= functia de quasi-tranzitieexprimata prin doua componente:M : SM SM care spune ce stari parcurg evenimentele externe

    cand nu gasescalte evenimente intrate in sistem;exM : XM SM T SM-adica exM(x,s,e) care spune cum se

    transforma 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.

    SMeste unS= (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)} .

  • 7/22/2019 56722760-Cap-1

    24/187

    1.2. CONSTRUCTIA UNUI MODEL DE SIMULARE 23

    se construieste din Mastfel

    :

    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 construct ie a modelelor de simulare

    si 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.

  • 7/22/2019 56722760-Cap-1

    25/187

    24 CAP. 1. GENERALIT ATI DESPRE SIMULARE

    50 Evaluarea modelului(etapa de decizie!); se urmareste sa seevalueze complexitateamodelului, daca el poate raspunde in timp realsicompletla 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 cel

    de 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 construct iei

    instrumentelor 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

  • 7/22/2019 56722760-Cap-1

    26/187

    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 producselectii statisticede 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 fapt

    real!), 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 modeluluieste 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 teoriacozilorse 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 virtutealegii numerelor mari, rezultacorectitudinea modelului de simulare, acesta fiind deci validsi 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

  • 7/22/2019 56722760-Cap-1

    27/187

    26 CAP. 1. GENERALIT ATI 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 exempluzborurile 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-sociala

    de asemenea se utilizeaza simularea. (De exemplu sistemele de productiecomplexe, politicile de dezvoltare regionala, proiecte macroeconomice,evolutia mediului ambiant,etc).

  • 7/22/2019 56722760-Cap-1

    28/187

    1.3. GENERALIT ATI 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 simularesunt in acelas timp limbaje de programaresi limbaje de modelare; ele implementeaza elementele esentiale alesimularii: manipulareaceasului si gestionarea memoriei. Utiliza-torul are numai grija descrierii evenimentelor si a prelucrarii lor.

    Programele in limbaj de simulare sunt mai scurtedar si mai putin

    flexibile. 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 sauatribute

    in majoritatea loradresabile 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 (elementecirculante);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 poseda

    un numar de parametri standard dar si psrametri introdusi de utiliza-tor. Prin programul de simulare utilizatorul poate accesa parametriitranzactiilor.

  • 7/22/2019 56722760-Cap-1

    29/187

  • 7/22/2019 56722760-Cap-1

    30/187

    1.3. GENERALIT ATI 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 entitatiactive spre deosebire detranzactii care sunt entitati pasaive, in sensul ca ele sunt miscateprinmodel 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 o

    poate 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

  • 7/22/2019 56722760-Cap-1

    31/187

    30 CAP. 1. GENERALIT ATI 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 referint a: 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-

  • 7/22/2019 56722760-Cap-1

    32/187

    1.3. GENERALIT ATI 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 tranzact iei); HELP (permite includereaunor proceduri de calcul ale utilizatorului; este un bloc pretent ios 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, adicahistograme bidimensionale).

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

    simularii);2a)Tranzactiilese 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 limbajulgestioneazaagenda, GPSS rezolvand astfel el insusi detaliile de programare pe careintr-un limbaj evoluat le rezolva utilizatorul).

    3a) Statiilede serviciu pot fi ocupate de o singura tranzactie la un

    moment dat.4a) Depozitelesau 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) Variabileleau 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 booleeneBVARIABLE, sunt construite analog (decatre utilizator) folosind atribute standard logice, inclusiv comutatorilogici).

  • 7/22/2019 56722760-Cap-1

    33/187

    32 CAP. 1. GENERALIT ATI 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) Coadaeste o entitate statistica pentru care se retine automatlungimea mediesilungimea maximacare se listeaza la sfarsitul simularii.

    11a) 12a) Tabela de frecvent ase 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 referite

    printr-un numar de identificare.15a)Lanturile sistemuluisunt: lantul evenimentelor curente (LEC),

    lantul evenimentelor viitoare (LEV), lanturi ale tranzactiilor intrerupte,lanturi ale tranzactiilor in asteptare pentru sincronizari, lanturi deintarziere (asociate echipamentelor). Orice tranzactieactivala 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 dintreA,AEC siAEVdin 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. Tranzact iile pot fi intro-duse sau scoase din LU prin LINK si UNLINK si ele se folosesc laimplementarea unordiscipline de serviciu(in cazul prelucrarii tranzac-tiilor din cozi).

    16a) Grupurile ofera utilizatorului un instrument de clasificare a

    tranzactiilor care au anume proprietati. De ex. toate statiile care la unmoment dat depasesc un anumit grad de utilizare pot fi facute membreale unui grup.

  • 7/22/2019 56722760-Cap-1

    34/187

    1.3. GENERALIT ATI 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 cu

    o statie.

    Programul GPSS pentru acest model este:

    001 GENERATE 10,2 ;Sosiri aleatoare la 10 2 minute003 SEIZE FRIZER ;Ocupa statia de serviciu FRIZER005 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 COADA1

    003 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 finalprivind 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.

  • 7/22/2019 56722760-Cap-1

    35/187

    34 CAP. 1. GENERALIT ATI 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 clienti

    002 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 servit i 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 plateasca

    ALTII 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

  • 7/22/2019 56722760-Cap-1

    36/187

    1.3. GENERALIT ATI 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 Tica

    016 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/P Cactivitatile de reparatiea unui automobil intr-un servicecare are ateliere separate de reparatii

    motor, caroserie si tinichigerie. Unitatea de timp esteoraiar 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 puncte

    sunt date prin perechile de coordomate, despartite prinslash/.In continuare programul descrie activitatile ce au loc in sistem:

    blocul 80 include in coada automobilul sosit (prin GENERATE); blocul

  • 7/22/2019 56722760-Cap-1

    37/187

    36 CAP. 1. GENERALIT ATI DESPRE SIMULARE

    90 simuleaza ocuparea statieiSEFATELIER; blocul 100 simuleaza (prin100 ADV ANCE) activitatea de constatare a sefului de atelier careare repartitie uniforma de medie 2

    1; apoi blocul 110 RELEASE

    simuleaza 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 blocul410 AT ELMEC 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 sectiaCaroserie, se remarca blocurile230 si 290 care sunt blocuri MATCHconjugate 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 320 ASSEMBLE careasambleaza usile de corpul caroseriei) si 400 (transfer neconditionatla blocul 450 MONFINAL 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 490 TABULATEcare inregistreaza(pe parcursul simularii) frecventele in tabela TABCLASEdefinita lainceput.

    Descriem in continuare programul sursaGPSS.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. (V2, #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.-

  • 7/22/2019 56722760-Cap-1

    38/187

    1.3. GENERALIT ATI DESPRE LIMBAJUL GPSS 37

    40 Repartitia exponentiala standard50 XPDIS FUNCTION RN3, C24

    0, 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 4 8,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 MEC1

    150 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 M ONCAROS 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.

  • 7/22/2019 56722760-Cap-1

    39/187

    38 CAP. 1. GENERALIT ATI 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 instruct iuni ale imbajuluiGPSS.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.

  • 7/22/2019 56722760-Cap-1

    40/187

    Cap. 2

    Numere aleatoare

    2.1 Notiuni introductiveVom aminti mai intai cateva notiuni de baza. Presupunem caXeste 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 numestepopulatiestatistica. 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).Independentaa doua variabile aleatoare se defineste astfel: X este ovariabila aleatoareindependentadeY dacaP(X < x, Y < y) =P(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, inrest,

    F(x) =

    0, daca x 1.

    (2.4)

  • 7/22/2019 56722760-Cap-1

    42/187

    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 au

    aceleasi sanse de aparitie intr-un experiment.

    c) d)

    a) b)

    0 0

    0 01 1

    b ba

    y= 1ba

    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, nu este posibil sase produca cu calculatorul, printr-un algoritm, secvente de numere aleatoare

    care sa fie uniform repartizate pe intervalul [0, 1] si care sa fie independentestochastic. De aceea numerele produse cu calculatorul, vor fi numite numerepseudoaleatoare si ele vor putea fi folosite drept numere aleatoare daca au

  • 7/22/2019 56722760-Cap-1

    43/187

    42 CAP. 2. NUMERE ALEATOARE

    un comportament cat mai aleator (vezi $2.3). Un algoritm care produceun numar aleator (pseudoaleator) se numeste generatorde numere aleatoare(pseudoaleatoare). Iterand un generator se poate obtine o selectie (secventa)

    de numere aleatoare. Cand este nevoie de numere aleatoare cu cat mai bunecalitati se pot aplica metode care combina doi sau mai multi generatori,rezultand un alt generator care produce secvente de numere pseudoaleatoaremai bune. 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 repartitia uniforma

    0 1 si repartitia uniforma pe un interval [a, b] oarecare.Teorema 2. 1 DacaUeste o variabila uniforma0 1atunciV =a + (b a)U este o variabila uniforma pe [a, b] si reciproc, daca V este o variabilaaleatoare uniforma pe [a, b] atunci variabila

    U=V a

    b aeste uniforma0 1.

    Sa vedem acum dece sunt necesare numerele aleatoare in simulare. Fiinddata o variabila aleatoare oarecare X, pentru care se cunoaste functia derepartitieF, este adevarata urmatoarea propozitie [2, 3, 10] care evidentiazaimportanta repartitiei uniforme 01,adica importanta numerelor aleatoare.Teorema 2. 2 Variabila aleatoareF(X)este uniforma01iar daca notamcuF1 inversa functiei F atunci F1(U) are functia de repartitie F (saucu alte cuvinteF1(U) =X).

    Demonstratie. Demonstram partea a doua a teoremei deoarece aceastajoaca un rol esential in simulare.

    Functia de repartitie a lui F1(U) se scrie

    P(F1(U)< x) =P(F(F1(U))< F(x)) =P(U < F(x)) =F(x).

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

  • 7/22/2019 56722760-Cap-1

    44/187

    2.3. METODE CONGRUENTIALE LINIARE 43

    Din teorema 2 rezulta urmatoarea consecinta practica: daca am puteaproduce valorile de selectieU1, U2,...,Un asupra luiU si am cunoaste functiade repartitie Fa lui X, atunci am putea produce valorile de selectie X1, X2,...,Xn

    asupra luiXcu formulaXi=F1(Ui), 1 i n.Daca functiaF1 se poatecalcula cu un algoritm atunci valorile de selectieXi ar putea fi produse (gen-erate) cu calculatorul folosind urmatorul algoritm

    Metoda inversa. (Algoritm)

    repeta de n ori urmatoarele instructiuni

    genereaza o valoare de selectie U uniforma 0 1;calculeaza X=F1(U);

    Spunem ca acest algoritm simuleazaoselectie de volumn asupra lui X.Dar pasii cei mai importanti ai algoritmului sunt ultimii doi pasi care produc

    o valoare de selectieX, caci daca putem genera numere Uuniforme 0 1 siindependenteatunci prin iterare, conform primului pas, am produce valorileselectiei de volum n asupra lui X. Din aceasta cauza, pentru simularea di-verselor variabile ne vom concentra asupra problemei simularii unei singurevalori de selectie care sa foloseasca un algoritm astfel incat prin iterare sapoata produce selectia care ne intereseaza.

    Revenind la metoda inversa, daca am putea genera valori de selectieUi, 1 i n uniforme 0 1 independente, atunci si Xi = F1(Ui) ar fiindependente.

    Un algoritm pentru generarea (simularea) unei selectii Ui, 1in devariabile uniforme 0

    1 va trebui deci sa produca in primul rand un numar

    uniform 0 1, iar prin iterari acelasi algoritm sa fie in masura sa producaselectia de volum n; deci selectia se va produce printr-o relatie iterativade forma Ui+1 = g(Ui), iar algoritmul trebuie sa permita producerea denumereUiindependente stochastic. Valorile de selectieUise numescnumerealeatoare uniformesau simplu numere aleatoare.

    2.3 Metode congruentiale liniare

    Fie Xo variabila aleatoare discreta repartizata uniform avand repartitia

    X :

    1, 2, ..., m1m ,

    1m , ...,

    1m

    , m < , (2.5)

  • 7/22/2019 56722760-Cap-1

    45/187

  • 7/22/2019 56722760-Cap-1

    46/187

    2.3. METODE CONGRUENTIALE LINIARE 45

    O valoare a luia poate fia = pk+1, 2 k e.Alegerea luia folosind numaiaceasta teorema poate insa sa produca un sir de intregiX0, X1,...,X1 caresa nu fie aleator; acest sir care contine sigur numarul 0, poate sa contina

    subsiruri de lungime mare care sa fie sau crescatoare, sau descrescatoare,sau sa prezinte o periodicitate mare. Presupunand ca X0 = 0 (ceea ce estedesigur permis) se observa ca sirul{Xn}este de forma

    Xn =(an 1)c

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

    Daca in relatia precedenta luama= b + 1 atunci (2.6) devine

    Xn c(n+ C2nb + ...+ Csnbs1)(mod m) (2.6)unde s este cel mai mic numar natural care satisface relatia

    bs

    0(modm). (2.6)Numaruls se numeste potentageneratorului mixt congruential. Din relatia(2.6) rezulta ca Xn este de forma unui polinom in b modulo m si decigeneratorul este cu atat mai bun cu cat potenta sa s este mai mare. S-aconstatat ca din punct de vedere practic, potenta trebuie sa fie cel putin 5.

    Un caz interesant este acela candm = 2e unde eeste apropiat decuvantulcalculatorului pe care se implementeaza generatorul (2.6). In acest caz searata ca o alegere buna a lui a este de forma a= 2f1 + 2f2 + ...+ 1, f1 >f2 > ... Deci un generator pentru care m si a satisfac conditiile teoremei3 genereaza un sir de numere aleatoare intregi de perioada mare si carenu prezinta regularitati(nu contin subsiruri p eriodice de lungimi mari sau

    subsiruri cu monotonii periodice). Constantac poate fi deocamdata arbitraraleasa.

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

    Numerele produse de (2.6) au o repartit ie de forma (2.5) in care valorilelui Xsunt 0, 1,...,m 1. Deci in acest caz avem [10]

    E[X] =

    m1x=0

    x

    m , V ar[X] =

    m1x=0

    x2

    m {E[X]}2

    1= =

    mm1x=0

    xs(x)

    m1x=0

    x2

    mm1x=0

    x2 m1x=0

    x

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

  • 7/22/2019 56722760-Cap-1

    47/187

    46 CAP. 2. NUMERE ALEATOARE

    Evaluarea lui se face cu dificultate. Se arata ca

    1

    a1

    6c

    m + 6

    c

    m2

    ,

    a

    m

    . (2.9)

    O valoare concilianta a lui a, care sa asigure o valoare mica a lui estea miar din conditia 0 se deduce cac/m trebuie sa satisfaca ecuatia

    1 6x + 6x2 = 0 adica cm

    =1

    21

    6

    3 = 0.211324865. (2.10)

    Ultima relatie da oconditie pentru alegerea lui c.Notandk =Corr(Xi, Xi+k),se arata cak 1, k >1, ceea ce asigura

    o dependenta slaba a numerelor departatedin 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 satisfaca teorema3 impreuna cu o potenta mai mare decat 5 si sa ia o valoare apropiata de

    m, iar c sa satisfaca (2.10). Numarulde startX0, care se mai numeste sisamantageneratorului poate fi orice numar natural mai mic decat m.

    Pentru a produce un numar aleator intreg X, generatorul (2.6) necesitadeci efectuarea unei inmultiri si a unei adunari si apoi calcularea restuluimodulom. Daca am alege c= 0 atunci am obtine generatorul multiplicativcongruential (X0, a, 0, m) care are avantajul ca necesita numai operatia deinmultire el fiind deci de forma

    Xn+1 (aXn)(modm). (2.11)In acest caz X0 trebuie sa fie neaparat pozitiv caci altfel sirul produs de(2.11) ar avea toate elementele egale cu zero deci nu ar fi un sir de numere

    aleatoare uniforme intregi. Conditia deperioada maximase modifica si ea siintr-un caz interesant din punct de vedere practic se exprima prin teoremaurmatoare.

    Teorema 2. 4 Perioada maxima a generatorului(X0, a, 0, m)se obtine cand:(i) X0 este un intreg pozitiv prim cum;(ii) a este radacina primitiva modulo m, si dac a pi, 1 i t sunt

    numere prime atunci perioada este

    (2e) = 2e2, daca e 3,(pe) =pe1(p 1), daca p >2,

    (pe11 ...pett ) =cmmmc((p

    e11 )...(p

    ett )). (2.12)

    Desigur, generatorul recomandabil este cel de forma (2.11) deoarece necesitanumai o operatie de inmultire. Exista insa si alti generatori de numerealeatoare intregi. Enumeram in continuare cativa.

  • 7/22/2019 56722760-Cap-1

    48/187

    2.4. ALTI GENERATORI DE NUMERE UNIFORME 47

    2.4 Alti generatori de numere uniforme

    Exista multe idei ce se folosesc pentru simularea de numere aleatoare uni-

    forme 01.Uneori sunt necesari generatori cu calitatistatistice foarte bune;acesti generatori au de regula complexitate de calcul mare si necesita uti-lizarea de calculatoare cu putere de calcul mare mai ales privind efectu-area calculelor aritmetice (calculatoare cu cuvant mare!). Alteori insa suntnecesari generatori mai putin performanti, care produc numere pseudo-aleatoare cu proprietati statistice mai sarace; de exemplu, numere Ui caresunt aproximativ independente stochastic si repartizate numaiaproapeuni-form.

    Exista un adevarat arsenal deteste statistice[6, 10] cu care se verificaproprietatile statistice ale secventelor de numere aleatoare (uniformitatearepartitiei, independenta stochastica a numerelor succesiv generate, non-

    periodicitatea secventelor, etc.). Printre acestea, un loc important il ocupatestele de concordant acare verifica ipoteza ca numerele aleatoare U [0, 1],produse cu un generator, sunt uniform repartizate pe acel interval;asemeneateste sunttestele de tip Kolmogorov-Smirnovsitestul general2 de concordant a.Exista, de asemenea, multe teste care se refera la caracterul aleator. Nu vomprezenta detalii privind aceste teste (Vezi de ex. $ 3.7). Cititorul interesatin aprofundarea acestei probleme poate consulta de exemplu [10]. Precizamnumai faptul constatat experimental ca generatorii care produc secvente deperioade mari, au de regula, proprietati statistice corespunzatoare.

    In cele ce urmeaza prezentam cativa generatori de numere aleatoare caresunt, de regula, implementati in limbajele de programare evoluate. Aproape

    orice astfel de limbaj are o functie (sau procedura) care, prin apelari succe-sive, produce secvente de numere pseudoaleatoare de buna calitate. (De ex.in Pascal si C este functiarandoma carei samanta este initializata standardla implementare sau care poate fi reinit ializata prin randomizede catre uti-lizator). Fara sa insistam asupra detaliilor privind calitatea generatorilor siimplementarea lor efectiva, in cele ce urmeaza vom trece in revista catevametode ce se utilizeaza in constructia practica a unor astfel de generatori(problema care constituie mai degraba otema de cercetare stiintifica).

    Generatorul aditiv congruential, sau Fibonacci decalat notat(k; X0, X1,...,Xk;j; m) si bazat pe relatia

    Xn = (Xnj

    Xn

    k)(modm) (2.13)

    iar o alegere buna a constantelor este j = 24, k = 55, m = 2e, e31 careasigura o perioada 255 1.

  • 7/22/2019 56722760-Cap-1

    49/187

    48 CAP. 2. NUMERE ALEATOARE

    Generatorul congruential inversiv notat (X0,a ,c,m)1 cu m-prim, definit de relatia

    Xn = (aX1

    n1+ c)(modm) (2.14)undeX1i esteinversul(mod m) al luiXi in raport cu operatia de inmultirea claselor de resturi, cand acesta exista sau este zero altfel. (Daca m-primsiXi= 0 atunci inversul exista!).

    Generatorul matricial congruential care este de formaXn = (AXn1+ C)(modm) (2.15)

    undeXn, Csunt vectoriddimensionali iarA este matriced d.Inmultireamatriceala va produce vectori Xn cu componente corelate. Acest tip degeneratori se utilizeaza pe calculatoare paralele.

    Generatori bazati pe registre de deplasare care utilizeazareprezen-tarea binaraa numerelor intregi in calculator. Daca notam cu ai, 1 i pcifrele binare ale lui xn1 si consideram cifrele ci nu toate egale cu zero,atunci generarea cifrelor ai ale lui luiXn se realizeaza prin relatia

    ai= (cpaip+ cp1aip+1+ ...+ c1ai1)(mod 2). (2.16)

    In practica se foloseste forma mai simpla

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

    sau daca notam operatia binara or-exclusiv ca suma de bit i modulo 2atunci relatia precedenta devine

    ai= aip aip+q. (2.16)Sa observam ca relatia de recurenta referitoare la bitii ai este aceeasi curelatia de recurenta a numerelor aleatoare Xi interpretate ca ptupluri debiti, adica

    Xn= Xnp Xnp+q. (2.17)Un generator bun este de exemplu generatorul Xn = Xn3p Xn3q, p =521, q= 32,care are o perioada = 25211.Formula (2.17) se poate extindematricial sub forma

    Xn = Xnp Xnp+q. (2.17) Amestecarea de generatori se obtine astfel: Sa presupunem ca se

    dau doi generatori G1, G2 si folosim o tabela T[1..k], (de ex k = 64 sauk= 128). Algoritmul de amestecare a celor doi generatori este

  • 7/22/2019 56722760-Cap-1

    50/187

    2.4. ALTI GENERATORI DE NUMERE UNIFORME 49

    InitializamT[i] =Ui cu numereUi produse cuG1;Generam cuG2 un indice aleator j {1, 2,...,k};LuamY :=T[j]; GeneramU cuG1 si lu amT[j] :=U.

    Generarea indicelui aleator j , care este un intreg uniform repartizatcu valori in{1, 2,...,k} se face astfel

    GenereazaU cuG2;Iaj = trunc(U k) + 1.GeneratorulG rezultat din amestecare estemai aleatordecat parintii sai

    G1, G2, iar perioadele satisfac relatia:(G) =cmmmc((G1), (G2). In final, prezentam catevaexemple concrete de generatori:1. Generatorul (X0, 125, 0, 2796203);2. Generatorul(x0, 16807, 0, 2

    31 1);3. Generatorul de numere uniformeUi obtinute astfel:

    Xi = 171Xi1(mod 30269), Yi = 172Yi1(mod 30307),

    Zi= 170Zi1(mod 30323), Ui=

    Xi30269

    + Yi30307

    + Zi30323

    (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-congruentiali si searata ca Ui au perioada de ordinul 10

    12.In cele ce urmeaza vom presupune ca dispunem de un generator de nu-

    mere aleatoare uniforme 0 1, reprezentat generic de functiarandom.

    Exercitii.

    E2.1Demonstrati (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 se aratecaVi sunt variabile aleatoare uniforme pe [ai, bi] si independente stochastic.Reciproca este de asemenea adevarata.

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

    f(v) =

    1k

    i=1(biai)

    , daca v I

    0, in rest

    , fi(vi) =

    1biai ,dacavi [ai, bi]0, inrest

    si se observa ca f(v) =ki=1

    fi(vi).

  • 7/22/2019 56722760-Cap-1

    51/187

    50 CAP. 2. NUMERE ALEATOARE

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

    Indicatie: Folosind functia de repartitieFa lui Udata de (2.4), se arata

    ca functia de repartitie a luiV este G data de (2.3) si invers.E2.4Sa se arate ca dacaUeste o variabila uniforma 0 1 atunci si 1U

    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 in ul-

    tima sectiune precizati in ce conditii metoda poate fi folosita la simulareaaruncarii cu zarul, la simularea tragerii la sorti,sau la simularea unui semnaleator?

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

    Simularea semnului aleator se realizeaza cu instrutiunea:

    ifU 0.5 then semn:= 1 else semn:= 1;Observatie: pentru o variabila aleatoare X continua (care are densitate

    de repartitie), avemP(X=x) = 0,deci in particular P(U=u) = 0,ceea ceinseamna ca semnul poate fi inlocuit cu semnul in cadrul instructiuniiif precedente.

    E2.6Fie (U, V) un vector aleator uniform pe [0, 1] [0, 1],undeU esteindependent de V . Sa se calculeze P(U+ V < x), x R.

    Indicatie. In general a