GPSS World

  • Upload
    dprokin

  • View
    118

  • Download
    2

Embed Size (px)

Citation preview

  • RAUNARSKA SIMULACIJA SA PRIMEROM UPOTREBE

    SIMULACIONOG OKRUENJA

    G P S S W o r l d

    Pripremio: Dr Radomir Jankovi

  • Sadraj

    1. Uvod 1.1 Jednostavan model

    1.2 Mo raunarske simulacije

    2. Pregled osnova teorije verovatnoe 3. Tipovi raunarske simulacije 3.1 Vremensko planiranje dogadjaja

    3.2 Skaniranje aktivnosti

    3.3 Modelovanje orijentisano na procese

    3.4 Izbor pristupa

    4. Izbor ulazne raspodele

    4.1 Izbor ulazne raspodele

    4.2 Uloga sluajnih brojeva

    5. Analiziranje izlaza

    5.1 Zavravajue simulacije

    5.2 Analiza stacionarnog stanja

    5.3 Smanjivanje varijanse

    5.4 Poredjenje dva sistema

    6. Projektovanje eksperimenata

    7. Primer upotrebe GPSS 7.1 Razvoj modela uvodjenja bankomata u jeziku GPSS 7.2 Instalacija razvojnog okruenja GPSS World 7.3 Implementacija modela i izvravanje simulacije pomou razvojnog okruenja GPSS

    World

    7.4 Analiza rezultata simulacije 8. Umesto zakljuka

  • 1. Uvod Teorija ekanja u redovima mona tehnika za analizu sloenih sistema, ali ipak nije primenlji-va u svim sluajevima koji se pojavljuju praksi. Za ovo postoji vie razloga:

    1. Sloene raspodele. Veina rezultata direktno dobijenih primenom teorije ekanja u re-dovima vai samo za ogranieni broj raspodela. Ako Va sistem ne ispunjava te zahte-ve, neete moi da koristite takve rezultate.

    2. Sloena dinamika. Mree redova ekanja imaju mnogo strogih zahteva da bi mogle

    biti primenjene. Na primer, popravljanje neispravnih proizvoda tipino zahteva manje vremena da se rei taj problem, nego da se proizvod pravi od poetka (mada je pone-kad i obrnuto!). Ili, moe se dogoditi da dalje usmeravanje objekata zavisi od toga gde su se do tada nalazili.

    3. Sloenija pravila ekanja u redovima. Postoje aspekti redova ekanja koje uobiajeni

    modeli te teorije ne opsluuju. Koje su prednosti zavravanja prvo onih poslova koji najkrae traju? ta ako klijenti odustaju posle, recimo, 10 minuta ekanja? Ovakve stvari doprinose poveavanju sloenosti ve ionako sloenih sistema.

    4. Prelazno ponaanje prema dugoronom ponaanju. Veina modela teoprije ekanja

    u redovima uglavnom se bavi dugoronim ponaanjem sistema. Kako se sistemi pona-aju u kratkom periodu? Da li treba mnogo vremena da bi sistem preao u stacionarno stanje ponaanja?

    Da bi mogli da izadjemo na kraj sa ovakvim i drugim pitanjima, treba nam drugaiji sistem za modelovanje ponaanja sistema. Jedan od moguih pristupa je tehnika raunarske simulacije. Pomou simulacije lako se reavaju navedena pitanja. Medjutim, u nekim situacijama, ni to nije uvek odgovarajue reenje. Simulacioni modeli se najvie koriste u operacionim istraivanjima. Evo nekoliko primera ta se sve podrazumeva pod terminom "simulacija":

    Modeli aviona i automobila koji se ispituju u aerotunelima, da bi se odredile njihove aerodinamike osobine;

    Raunarske igre;

    Ratne igre koje se simuliraju na vetakim bojnim poljima. Ta bojna polja mogu u ce-

    lini biti u oviru raunara, ili mogu da se proigravaju izmedju ljudi koji u njima uestvuju sedei za svojim raunarima

    i mnogo, mnogo drugih stvari. Neto to im je svima zajedniko je sledee: Simulacija pokuava da izgradi eksperimentalnu napravu koja se, u bitnim aspektima, ponaa kao realni sistem.

  • Treba zapaziti da su simulacioni modeli opisni, a ne propisni. Oni nam kau kako sistem radi pod datim uslovima, a ne kako da se podese uslovi da bi sistem najbolje radio. Simulacija ne optimizuje, ona samo opisuje. U mnogo sluajeva, opis je ba sve ono to je potrebno. U nekim drugim sluajevima, broj moguih izbora je dovoljno mali, tako da se svaki mogui izbor moe simulirati. Klasifikacija simulacionih modela se moe izvrtiti na vie naina. Prvi od njih je prema tome da li model ima ili nema stohastian (sluajan) aspekt. Deterministike simulacije su potpuno definisane pomou modela. Ponovno izvrenje simu-lacije nee promeniti njen ishod. Stohastike simulacije ukljuuju i sluajnost. Viestruka iz-vrenja istog modela mogu da generiu razliite izlazne vrednosti. Ovaj element sluajnosti nas prisiljava da generiemo vei broj izlaznih rezultata da bi sagledali opseg mogunosti. Pitanje da li treba generisati 10, 1000 ili 100000 rezultata je prvenstveno statistike prirode. Simulacije koje ukljuuju sluajne elemente zahtevaju dobru statistiku analizu. Drugi intgeresantan aspekt je razlika izmedju statikih i dinamikih modela. U statikom mo-delu, vreme nema neku vanu ulogu. Veina ovakvih modela se zovu Monte Karlo modeli. Mnogi od modela iz oblasti izbora finasijskih plasmana spadaju u tu kategoriju. Sa datim iz-borom plasmana, sa razliitim verovatnoama (i odgovarajuom dobiti), mogue je generisati izgledan prinos. Ovakav model e postati dinamiki ako obuhvati i promene u izboru plasma-na u toku vremena, ili ako se simulacija vri u toku vremena. Primer dinamikog modela je red ekanja klijenata ispred altera koji se razvija u toku vremena. Trei vaan aspekt su diskretni prema kontinualnim modelima. Zamislite da analiziramo tok saobraaja po autoputu. Moemo da izaberemo da simuliramo svako pojedinano vozilo, u kom sluaju imamo diskretan model. Sa druge strane, moemo da izaberemo da tretiramo ukupan saobraaj kao tok, ije se promene mogu opisati pomou diferencijalnih jednaina. To nam daje kontinualni model. U ovom tekstu emo se usredsrediti na stohastike, diskretne, dinamike modele, sa malo ubaenih komentara u metodama Monte Karlo.

    1.1 Jednostavan model Banka planira da instalira bankomat (automatsku blagajniku mainu) i moe da bira izmedju kupovine jednog bankomata marke "VIHOR" ili dva bankomata marke "POVETARAC". VIHOR je tano dva puta skuplji od POVETARCA, pa se tako cilj banke svodi samo na to da obezbedi to je mogue bolju uslugu svojim klijentima. Na osnovu raspoloivih podataka, klijenti dolaze u banku prema Poisson-ovom procesu, brzi-nom od 1 klijenta u minutu. Bankomat VIHOR obezbedjuje uslugu ije je trajanje eksponen-cijalno raspodeljeno, sa srednjom vrednou od 0,9 minuta. Svaki bankomat POVETARAC obezbedjuje uslugu ije je trajanje eksponencijalno raspodeljeno, sa srednjom vrednou od 1,8 minuta. Pretpostaviemo da se klijenti koji ekaju za usluge dva POVETARCA svrstavaju

  • u jedinstveni red ekanja. Mera performanse koju emo koristiti je srednje vreme ekanja u redu za prvih 100 klijenata (banka je zakljuila da je ono to najvie nervira dugo ekanje u redu i da se klijenti smire kada uvide da se dobro usluuju). Pitanje, dakle, glasi:

    DA LI DA BANKA KUPI JEDNOG VIHORA ILI DVA POVETARCA? Jedan od moguih metoda za reenje ovog problema bio bi da se prvo instalira jedan VIHOR na nekoliko nedelja i meri proseno vreme ekanja u redu, a zatim on ukloni i umesto njega instaliraju dva POVETARCA, pa se opet meri proseno vreme ekanja. Ukoliko se zakljui da je to potrebno (da je prvo reenje bilo bolje), onda bi POVETARCI mogli biti uklonjeni, a VIHOR ponovo instaliran. Simulacija, svakako, daje mnogo bolje reenje. Mi jednostavno moemo da napravimo rau-narsku simulaciju gore opisanog eksperimenta. Da bi to runo uradili, mi bi mogli da generi-emo seriju intervala izmedju uzastopnih dolazaka klijenata i seriju vremena usluga (na pri-mer pomou tablice sluajnih brojeva), a zatim da odredimo koliko je bilo ekanje na uslugu bankomata. Na primer, mi bi mogli da dodjemo do vremena nailazaka klijenata od 0,2; 0,7; 1,6; 2,3; 3,4; 5,6 minuta i tako dalje i do vremena usluga za VIHOR od 0,9; 0,7; 2,3; 1,6; 0,1; 0,6 minuta i tako dalje (odnosno, dvostruko veih svaki pojedinani POVETARAC). Simulacija za jednog VIHORA bi onda imala prvog klijenta u trenutku 0,2 minuta koji bi di-rektno preuzeo slobodnu mainu. U trenutku 0,7 minuta, drugi klijent dolazi i staje u red eka-nja. U trenutku 1,1 minut, prvi klijent odlazi, a drugi klijent koristi mainu (poto je ekao u redu 0,4 minuta). Trei klijent dolazi u trenutku 1,6 minuta, a drugi klijent odlazi u trenutku 1,8 minuta dozvoljavajui da trei klijent preuzme mainu (poto je ekao 0,2 minuta, to daje ukupno ekanje do sada od 0,6 minuta). I tako dalje. Slina analiza mogla bi se izvriti i za sistem sa dva POVETARCA. Na svu sreu, postoji raunar koji e umesto nas da obavi ceo ovaj dosadni posao.

    1.2 Mo raunarske simulacije Kombinacija mogunosti generisanja sluajnih brojeva sa programskim jezicima dovodi nas do veoma monih analitikog alata. Razmotrimo model reda ekanja u banci, gde klijenti dolaze, bivaju uslueni i odlaze. Znamo da matematiki reivi problemi zahtevaju vrlo precizne pretpostavke: vremena dolazaka i usluga moraju biti bez memorije (nezavisna jedna od drugih), red mora biti beskonanog kapaciteta, klijent ne sme da se preskoi ili da odustane i tako dalje. Pored toga, moemo da analiziramo samo dugorono ponaanje sistema, a ne bilo kakvo ponaanje u prelaznom reimu. U stvarnosti, ni jedna od ovih pretpostavki nije potpuno ispunjena. Vie ljudi dolazi u banku u vreme pauze za ruak, nego u druga vremena. Red ekanja je na poetku, u trenutku otvaranja banke, prazan, a isto tako mora i da se izprazni na kraju radnog vremena, klijenti se preskau ili odustaju sve vreme, esto bez nekog razloga koji bi se mogao identifikovati, a gotovo je nemogue imati servere koji ne pamte.

  • Simulacija moe sve ovo da modeluje, pa i mnogo vie. Ona je ograniena jedino u vremenu koje elite da potroite da biste doli do potrebnih podataka i da biste ih programirali u simu-latoru. Da li se Va slubenik na alteru zamori u jedan popodne? Simulirajte! Da li klijenti manje odustaju u podne (pre ruka) nego u pet do jedan (posle ruka) ? Simulirajte! Moete u Va model sveta ukljuiti sve to hoete. Vai trokovi prikupljanja podataka mogu da budu ogromni, ali zato moete lepo da spakujete u model sve toVam se dopada. Suoeni sa takvom moi, zato bi radili bilo ta drugo osim simulacije? Mnogi e rei: "I ne-mojte. Koristite simulaciju za sve." Medjutim, bolji odgovor je: "Nemojte koristiti simulaciju za sve." Problemi sa simulacijama, posebno sa onim velikim i sloenim, su sledei: Validacija: Kako moete utvrditi da je simulacija korektan model stvarnosti? Greke mogu da se uvuku na mnogo mesta. Napisani program moe da ne odraava model. Modeli za sluajne promenljive mogu da budu pogreni. Svaki statistiki test ima ugradjene pretpostavke koje mogu, ali ne moraju biti ispunjene. Rasplinutost izlaza: U analitikom modelu moemo da utvrdimo takve stvari kao to je da ako je brzina opsluivanja jednaka brzini dolazaka klijenata, tada je red ekanja nestabilan (i tei beskonanoj duini). Simulacija ne bi bila u stanju da utvrdi te rezultate sa takvom ta-nou. Statistika priroda izlaza ini tekim donoenje bilo kakvih vrstih zakljuaka. Specifinost rezultata: Simulacije obino vae za jedan sistem iz realnog sveta. Rezultati koji vae za jednu simulaciju esto ne vae za druge, sline probleme. Raunarsko vreme: Koliina raunarskog vremena koja je potrebna da bi se dobili statistiki pouzdani rezultati obino se veoma potcenjuje. Simulacija bez dobre statistike analize pred-stavlja isto rasipanje ciklusa centralne procesorske jedinice. Uopteno govorei, evo pravila za upotrebu simulacije: Simulaciju bi trebalo upotrebiti kad god preovladjuje jedan ili oba od sledeih uslova:

    realni sistem ne zadovoljava dovoljno dobro pretpostavke koje zahtevaju odgovarajui analitiki modeli ili

    odgovarajue formulisani model nema analitiko reenje. Ukoliko se zaposlite u oblasti operacionih istraivanja, velike su anse da e Vam ve u prvoj godini traiti da uradite neki simulacioni projekat, zato to je raunarska simulacija tehnika operacionih istraivanja koja se najee koristi u praksi. Tu do punog izraaja dolazi i neop-hodno znanje iz statistike. U sledeim odeljcima, pozabaviemo se uobiajenim problemima koji se javljaju u simulaciji. Oni obuhvataju izbor ulazne raspodele i analizu izlaza simulacije.

    2. Pregled osnova teorije verovatnoe Zbog sluajnosti koja se pojavljuje i u ulazu i u izlazu simulacije, neophodna je upotreba nekih tehnika statistike. Ovde emo se potruditi da ih svedemo na minimum, ali se one ipak ne mogu izbei u potpunosti.

  • Pretpostavlja se da italac poznaje osnovne koncepte kao to su sluajna promenljiva, neza-visnost, srednja vrednost, varijansa i slino. Neka su X1, X2, , Xn nezavisne i identino raspodeljene opservacije neke sluajne promen-ljive. Mi bismo eleli da procenimo pravu srednju vrednost i varijansu 2 odgovarajue po-pulacije. Srednja vrednost uzorka

    ( )n

    XnX

    n

    i i == 1 je nepolarizovani estimator (tako da je njegova oekivana vrednost jednaka ). Slino tome, varijansa uzorka

    ( ) ( )[ ]2121= =

    nnXX

    nSn

    i i

    je nepolarizovani estimator 2. Potsetimo se da, obzirom da je ( )nX sluajna promenljiva, mi bi isto tako eleli da dobijemo neki utisak o tome koliko je dobra naa procena . To moemo da uradimo procenjujui varijansu od ( )nX kao ( ) nnS /2

    Sve ovo podrazumeva da su opservacije Xi nezavisne i identino raspodeljene. Kako u izlaz-nim rezultatima simulacija to gotovo nikada nije sluaj, moramo biti veoma paljivi kada koristimo ove formule. Na osnovu ovih formula, moemo razviti intervale poverenja tane vrednosti . To moemo uraditi na dva naina. Prvi pretpostavlja da je n (broj opservacija) sasvim veliki (moda reda 40 za razumne raspodele, a daleko vei za one "nakrivljene"). U tom sluaju, moemo pretpostaviti da je ( )nX priblino normalno raspodeljeno i izjaviti da je interval poverenja od (recimo) 95% jednak

    ( ) ( ) nnSznX /2975,0 gde je z0,975 normalizovana vrednost raspodele koja ostavlja 0.025 u gornjem repu (koja je jednaka 1,96). Drugi metod pretpostavlja da su same opservacije Xi na sluaj izvuene iz normalne raspode-le. U tom sluaju, moemo da upotrebimo interval poverenja

    ( ) ( ) nnStnX n /2975,0,1

    gde je tn-1,0.975 kritina taka za t raspodelu sa n-1 stepenom slobode. Pored ovih koncepata, pretpostaviemo da su Vam poznate osnovne raspodele kao to su uni-formna, eksponencijalna i normalna (za kontinualne promeljive) i Bernulijeva i binomna ras-podela (za diskretne promeljive).

  • 3. Tipovi raunarske simulacije Postoje tri naina da se pristupi diskretnoj simulaciji. To su vremensko rasporedjivanje doga-djaja, skaniranje aktivnosti i orijetacija ka procesima. Svaki od ovih pristupa je usvojen u ne-kom od jezika za programiranje i, to je vanije, nudi razliit nain da se gleda na problem ko-ji se simulira. Svaki od njih, na svoj sopstveni nain, predlae mehanizme za modelovanje re-alnih situacija.

    3.1 Vremensko rasporedjivanje dogadjaja Vremensko rasporedjivanje dogadjaja je prvi od naina na koji su razvijane simulacije. Dogadjaj je bilo ta to menja stanje sistema, sem istog prolaska vremena. Osnovna ideja rasporedjivanja dogadjaja je da se pomeramo po vremenskoj skali dok se ne pojavi neki doga-djaj i tada, u zavisnosti od vrste dogadjaja, promenimo stanje sistema i moda vremenski ras-poredimo nove dogadjaje. U naem primeru sistema sa bankomatom marke VIHOR nasuprot sistemu sa bankomatima marke POVETARAC, dogadjaj moe da bude jednostavno dolazak ili odlazak klijenta. Evo pregleda radnji koje su pridruene tim dogadjajima: Dogadjaj dolaska klijenta 1. Proveri stanje bankomata (slobodan ili zauzet)

    (a) Ako postoji slobodan bankomat (i) Poni sa opsluivanjem klijenta, auriraj stanje bankomata (ii) Generii dogadjaj odlaska za tog klijenta

    (b) Ako su svi bankomati zauzeti, stavi klijenta u red ekanja 2. Generii novi dogadjaj dolaska za sledeeg klijenta. Dogadjaj odlaska klijenta 1. Proveri red ekanja (da li je prazan ili ne)

    (a) Ako je prazan, postavi stanje bankomata na "slobodan" (b) Ako nije prazan, tada

    (i) Izaberi klijenta koji eka, poni sa usluivanjem klijenta (ii) Generii dogadjaj odlaska za tog klijenta

    U jednom odeljku dalje u tekstu emo videti kako da generiemo sluajna vremena koja su potrebna da bi mogli da simuliramo takve stvari kao to su vremena usluga i dolazaka. Na osnovu svega ovoga, jednostavno se moe simulirati sistem. Dogadjaji se stavljaju u red dogadjaja, koji ih sve nabraja i to po redosledu. Prvi dogadjaj u redu je skinut sa ela reda kada mu dodje vreme, a ostali dogadjaji mogu da se dodaju u red (pod pretpostavkom da neki dogadjaj prouzrokuje druge dogadjaje u budunosti).

  • 3.2 Skaniranje aktivnosti U vezi sa prethodno prikazanim, ali ipak donekle razliit pristup se zove skaniranje aktivnosti. Prikazaemo to na naem primeru. U ovom modelu postoje tri aktivnosti: 1. Pojavljuje se dolazak klijenta 2. Usluga je zavrena 3. Usluga poinje Radnje koje su pridruene ovim aktivnostima su: 1. (Dolazak) Stavi klijenta u red ekanja, generii novi dolazak 2. (Zavretak) Proglasi bankomat slobodnim 3. (Poetak) Uini bankomat zauzetim, ukloni klijenta iz reda, generii zavretak. Ako izvrite poredjenje sa prethodnim odeljkom, videete da ima jedna nova aktivnost: poe-tak usluge. Ona nije pokrenuta nijednom drugom aktivnou. Umesto toga, ona se pojavljuje kada se ispune sledea dva uslova: 1. Ima klijenata u redu ekanja 2. Bankomat je slobodan Takvu aktivnost zovemo uslovnom aktivnou. Sistem mora da bude stalno skaniran za ispu-njenje uslova za aktivnosti. U emu je prednost ovakvog pristupa? Uglavnom u tome to je laki da se zamisli i formali-zuje. Kada im se prvi put zatrai da generiu dogadjaje simulacije, mnogi ljudi dodju do doga-djaja koji trae skaniranje aktivnosti. Najvea mana ovog pristupa je njegova neefikasnost. Teko je programirati raunar da stalno skanira uslove za takve aktivnosti, a da to ne uspori simulaciju. Do danas, mane ovog pristupa prevazilaze njegove prednosti. Medjutim, izgleda da e on ipak postati polularniji, zahvaljujui njegovom odnosu prema vetakoj inteligenciji i sistemima koji su zasnovani na pravilima.

    3.3 Modelovanje orijentisano na procese Pristup orijentisan na procese razlikuje se od prethodnih metoda zato to obezbedjuje alate pomou kojih korisnik moe da definie sistem, a ne detalje njegovog rada. U naem sluaju, moemo da posmatramo sistem kao da ima tri sutinska sastavna dela: 1. IZVOR koji generie dolazee klijente 2. RED u kome se dre klijenti koji ekaju na uslugu 3. UREDJAJ koji opsluuje klijente

  • Ako program obezbedjuje ove sastavne delove kao blokove za izgradnju, analitiar koji mo-deluje sistem treba samo da obezbedi parametre: vremena izmedju uzastopnih dolazaka, disci-plinu reda i vremena opsluivanja. Na ovom mestu, raunar mora da ceo sledei posao:

    IZVOR mora da generie klijente Kada klijent stigne, on mora ili da se postavi u RED ili da se uputi ka UREDJAJU Kada klijent stigne do UREDJAJA, mora da se generie vreme obrade Kada UREDJAJ postane slobodan, mora da se proveri da li u REDU ima jo klijenata.

    Sa take gledita analitiara koji modeluje, sistem izgleda savim drugaije: dogadjaji nemaju nikakvog znaenja. Medjutim, sa take gledita procesora, sistem je isti: dogadjaji moraju vremenski da se rasporede i sistem aurira. Uz dati skup osnovnih blokova za izgradnju, ovaj pristup moe da rezultuje veoma jednostav-nim, intuitivnim simulacijama kojima se moe verovati. Zato je veliki rad utroen na stvaranje dobrih procesora ove vrste. GPSS (General Purpose Simulating System - sistem za simulaciju opte namene) je svakako jedan od njih.

    3.4 Izbor pristupa Pa onda, koji pristup da se izabere? To dosta zavisi od programskog jezika u kome elite da implementirate Va simulator. U sutini postoje tri tipa jezika koje moete da upotrebite: jezi-ci opte namene, specifini simulacioni jezici i opti jezici za simulaciju. U prvoj klasi su jezici kao to je FORTRAN, C, Pascal itd. To su poznati jezici koji se koriste u mnogim primenama. Brojne su prednosti implementiranja simulkacija pomou jezika opte namene: tee da budu veoma brze, malo je ogranienja u tome ta sve moe da se uradi, lako se nalaze programeri, simulacije mogu da se urade na veem broju razliitih raunara (zahva-ljujui standardizaciji jezika). Mana ovog pristupa je cena. Simulacije zasnovane na optim jezicima trae znanje za implementaciju simulacije i obino predstavljaju veoma velike i za-mrene programe. Vreme koje je potrebno da se projektuje, kodira i verifikuje takav sistem moe da bude veoma veliko. Druga klasa jezika su oni za specifine simulacije, kao to su GPSS, SIMAN ili SLAM. Takvi jezici urade gotovo ceo posao sem samog kreiranja u simulaciji. Svi ovi sistemi mogu da oba-ve manipulacije redovima ekanja. Najvea mana ovih jezika je u njihovom ogranienom do-menu. Teko je, mada ne i nemogue, napraviti model izbora finansijskog ulaganja u GPSS-u, jer on jednostavno nije projektovan za takve namene. Sa druge strane, neki za takve poslove specijalizovan jezik moe to lako da obavi. Poslednja klasa obuhvata jezike kao to je na primer SIMSCRIPT. SIMSCRIPT je opti jezik u tom smislu da se u njemu mogu pisati stvari kao to su optimizacija mree i linearno progra-miranje. On je takodje i simulacioni jezik, jer ima instrukcije za stvaranje entiteta i manipuli-sanje redovima ekanja. U mnogo emu, on je obuhvatio najbolje od obe prethodno pomenute

  • klase jezika, pa donekle iznenadjuje njegova mala popularnost. To je moda zato to je, obuh-vatajui sve nabrojano, postao suvie komplikovan da bi bio opte prihvaen. U veini sluajeva, raunarska simulacija se danas radi pomou odgovarajueg specijalizova-nog programskog jezika, mada jo uvek ima dosta pristalica kole jezika opte namene. Ukoliko je izgradjena dovoljno dobra biblioteka potrebnih rutina, jezik opte namene moe imati prednosti nad specijalizovanim jezicima. Sa druge strane, protei e jo mnogo vode pre nego to doekamo da vidimo biblioteke rutina koje e uiniti upotrebu FORTRAN-a tako jednostavnom kao to je izrada simulatora u GPSS-u.

    4. Izbor ulazne raspodele Kada se simulacioni model jednom razvije, sledei korak je da se odredi ulazna raspodela. Za ovo postoje dva aspekta. Prvi je u upotrebi podataka da bi se odluilo o ulaznoj raspodeli; drugi je u nainu kako se generiu sluajne promenljive. Mada je drugi aspekt potpuno kon-trolisan pomou raunara, razumevanje ta se tu deava bolje objanjava ceo sistem.

    4.1 Izbor ulazne raspodele Prvo treba ukazati na to da je veoma teko modelovati ulaznu raspodelu bez podataka. Na nesreu, esto moramo ba tako da radimo. Na primer, ako pokuavate da simulirate neki sis-tem da biste odluili da li da ga gradite ili ne, ne moete od njega da dobijete nikakav poda-tak. U takvom sluaju najbolje to moete da uradite je da popriate sa ljudima koji imaju is-kustva sa slinim sistemima, da biste videli ta bi moglo da poslui kao odgovarajui model. U ovom odeljku prepostaviemo da imamo bar neke ulazne podatke. Pretpostavimo da imamo uzorak taaka podataka x1, x2, , xn i da elimo da ugradimo tu in-formaciju u simulacioni model. Na primer, xi bi moglo da bude vreme izmedju dolaska i-tog i i+1-og klijenta, a mi elimo da imamo proces dolazaka u simulaciji. Pretpostaviemo da su podaci nezavisni i identino raspodeljeni. U sutini postoje tri naina da se modeluju ovi podaci. Empirijska raspodela. Prvi metod je da se podaci tretiraju kao da oni i samo oni daju raspo-delu. To moemo uraditi formiranjem kumulativne raspodele ( ) { } nxxxxF ii /: = Na primer, ako su take 0, 0, 1.1, 3.6, 5.7, 5.8, 6.2, 7.1, 8.8, 9.1 tada je F(0) = .2, F(6) = .6, i F(12) = 1. Ovaj pristup ima mnogih prednosti: on idealno odgovara podacima, dok istovremeno pravi veoma malo pretpostavki o tome odakle oni dolaze. Jednostavan je i zahteva veoma malu ana-lizu. Sa druge strane, on ima i izvestan broj mana: ako raspolaemo sa malo podataka, nije ve-

  • rovatno da oni valjano predstavljaju celinu; ako, naprotiv, imamo mnogo podataka, onda je vrlo neefikasno smestiti u memoriju i manipulisati sa velikom kumulativnom raspodelom. Takodje, vrlo je teko izvravati analize tipa "TA AKO", kao to su: ta ako smanjimo sred-nju vrednost za 0,1? ta ako srednja vrednost ostane ista, ali se varijansa povea? To je teko uraditi sa empirijskom raspodelom. Idealizovana raspodela. Drugi pristup je da se potrai jednostavna raspodela koja "objanja-va" izvor sluajnosti u modelu. Na primer, neki sistemi su zaista bez memorije, i to sa dobrim razlogom. Kvarovi u automatskoj proizvodnji mogu da budu bez memorije (nezavisni jedan od drugog) i zato se dobro modeluju pomou eksponencijalne raspodele. Broj kvarova u grupi moe da se modeluje pomou binomne raspodele ako mislite da postoji dobar razlog da indi-vidualni kvarovi budu nezavisni i identino raspodeljeni. U ovom sluaju, treba da se odlui o raspodeli i da se odrede samo njeni parametri. Tako, ka-da jednom odluite da su vremena obrade uniformno raspodeljena zbog strukture sistema, vi sada imate problem da odredite parametre. Za procenu parametara postoje dobri statistiki metodi, kao to su na primer metod momenata i maksimalno verovatnih estimatora. Raspodele sa viestrukim parametrima. Poslednji od pristupa je da se pokua sa usaglaava-njem neke od teorijskih raspodela sa Vaim podacima. Mada mogu da se upotrebe jednostav-ne raspodele kao to su normalna i eksponencijalna, ei pristup je da se koristi familija koja moe da odgovara za mnogo razliitih tipova raspodela. Primer je Beta raspodela koja ima dva parametra. Dodavanjem dva ili vie parametara da bi se pomerala ili irila raspodela, mo-gue je imitirati mnogo razliitih raspodela. Ovde je opet potrebno proceniti parametre, po-mou momenata ili pomou maksimalno verovatnih estimatora. Za sloene raspodele to se moe uraditi upotrebom posebnog softvera. Niko, naravno, ne veruje da e rezultat biti "pra-va" raspodela podataka. Rezultat je samo linija povuena kroz podatke koja joj veoma dobro odgovara. Po ovom metodu, kada su dati neki podaci, verovatno prva stvar koja treba da se uradi je da se nacrta njihov grafik, da bi se videlo da li on podsea na bilo koju standardnu raspodelu. Ako, na primer, ima razloga da verujete da bi podaci trebalo da lie na eksponencijalnu funkciju i grafik zaista lii na eksponencijalnu funkciju, tada bi trebalo da procenite parametar za tu funkciju. Postoje testovi (kao na primer 2 test) pomou kojih moete da vidite da li ste napra-vili dobar izbor. Ako niste, sledei korak je da upotrebite optu raspodelu koja moe da poslu-i za mnogo razliitih mogunosti, kao to je beta-raspodela, i da procenite parametre za nju. Ako i to ne uspe, moda je dolo vreme da ipak razmotrite pristup preko empirijske raspodele.

    4.2 Uloga sluajnih brojeva Jedan od zbunjujuih aspekata raunarske simulacije je uloga sluajnih brojeva. Kako raunar moe da generie sluajnost? I kako to da "sluajne" simulacije mogu stalno da se ponavljaju? Na izvestan nain, zabuna je opravdana, jer raunar ne moe da generie pravu sluajnost. On moe da generie samo takozvanu pseudo-sluajnost. Pseudo-sluajni brojevi mogu da se generiu na vie naina. Najuobiajeniji od njih je da se to radi pomou linearne kongruentne metode, to je vrlo komplikovan izraz za u sutini jednos-tavan koncept. Pretpostavimo da elimo da generiemo sluajne brojeve izmedju 0 i 15 (samo

  • cele brojeve). Treba da ponemo sa jednim brojem, dobijenim na primer sluajnim obrtanjem tela koje ima 16 stranica. Pretpostavimo da je taj broj 7. Linearna kongruentna metoda sa pa-rametrima (5,3,16) bi pomnoila 7 sa 5 , dodala 3 i podelila sa 16, uzimajui ostatak kao kraj-nji rezultat: (7*5 + 3) mod 16 = 6. Dakle, na drugi "sluajni broj je 6. Moemo da ponavljamo ovaj proces: (6*5 + 3) mod 16 = 1 (1*5 + 3) mod 16 = 8 (8*5 + 3) mod 16 = 11 (11*5 + 3) mod 16 = 10 i tako dalje. Ovaj niz brojeva nije sluajan; postoji formula koja generie bilo koji od tih brojeva koji je zasnovan na bilo kom od prethodnih brojeva. Medjutim, niz prolazi mnogo sta-tistikih testova na sluajnost i zato moe da se upotrebi kao sluajan niz. U stvari, naravno, parametri (5,3,16) su suvie mali da bi obezbedili koristan pseudosluajan niz brojeva. Mnogo korisniji parametri bi imali mnogo vie cifara. Postoje drugi uslovi koji line dobar linearni kongruentni generator, ali jedino to je vano da uvidite je da oni postoje. Takodje treba zapa-ziti da, mada smo u gornjem primeru generisali brojeve izmedju 0 i 15, mogli smo da ih pode-limo sa 16 da bi dobili (gotovo) sluajne brojeve izmedju 0 i 1. Linearni kongruentni genera-tori obezbedjuju metod da se dobiju sluajne promenljive koje su uniformno raspodeljene iz-medju 0 i 1. Primetite, isto tako, da sluajne promenljive zavise samo od poetne vrednosti, koja se zove klica (poetna vrednost pseudosluajnog broja). Razliite klice daju razliite vrednosti, ak i u okviru istog linearnog kongruentnog generatora. Ono to iznenadjuje je da je, kada jednom imate sluajne promenljive uniformno raspodeljene izmedju 0 i 1, mogue generisati bilo koji drugi tip sluajne promenljive. Razmotrite jo jed-nom na prethodni primer empirijske raspodele. Ako generiemo sluajne promenljive izme-dju 0 i 1 ije su vrednosti 0,65; 0,23; 0,21; 0,98 i 0,47 tada to odgovara nizu 6,2; 1,1; 1,1; 9,1 i 5,7. To se dobija jednostavnom inverzijom kumulativne raspodele: ako je y = F (x) kumula-tivna raspodela, tada treba da postavimo x = F-1(y), gde je y uniformno raspodeljen broj izme-dju 0 i 1, da bi se dobila sluajna promenljiva x (ovo mora da se modifikuje za diskretne ras-podele). Ponekad F-1 moe lako da se izrauna. Na primer, za eksponencijalnu funkciju sa srednjom vrednou

    ( )yx = 1ln1 to se moe lako dokazati jednostavnim izvodjenjem. U nekim drugim sluajevima, kontinu-alne funkcije moraju da se diskretizuju i da se koriste tabele za pretraivanje vrednosti. U sva-kom sluaju, na osnovu uniformno raspodeljenih promenljivih izmedju 0 i 1, mogu da se ge-neriu sve druge raspodele.

  • 5. Analiziranje izlaza Kada se jednom napravi model sistema i odrede ulazne raspodele, mogue je izvriti simulaci-ju i dobiti podatke o razliitim aspektima sistema. Na primer, u naem modelu bankomata, bi-li smo zainteresovani za proseno vreme ekanja za prvih sto klijenata. Druge stvari koje bi mogli poeleti da analiziramo su srednja duina reda ekanja, maksimalna duina reda i ukup-no vreme koje klijent provede u sistemu. Izlaz simulacije nije jednostavan predmet za analizu. Statistiki testovi zahtevaju da su podaci nezavisni i identino raspodeljeni. Kao to emo videti, nezavisnost se esto teko postie. Postoje dva fundamentalno razliita tipa sistema koji bi mogli da se analiziraju. Prvi od njih se zove zavravajui sistem. U zavravajuem sistemu, postoji prirodni poetak i prirodni za-vretak. Tu se bavimo pitanjima kao to su "Koliko je proseno vreme ekanja za prvih 100 klijenata?" ili "Kolika je maksimalna duina reda ekanja u prvom satu rada?". Nasuprot tome, sistemi u stacionarnom stanju nemaju takve prirodne poetke i zavretke. Ovde se sreemo sa pitanjima tipa "Koliko klijenata ovaj sistem moe da opslui na sat?" ili "Dugorono posmatrano, kolika e biti prosena duina reda ekanja?" Razlog za ovu razliku je u efektu prelaznog perioda: vremena na poetku simulacije koje nije tipino za dugoroan rad sistema, a zavisi od poetne konfiguracije. Ako pogledate bilo koji statistiki podatak iz sistema, grafik njegove srednje vrednosti u funkciji od vremena bi mo-gao da izgleda kao to je prikazano na slici 1. Postoji jedan poetni prelazni period posle koga se sistem smiruje u svom ponaanju u stacionarnom stanju.

    STACIONARNO STANJEPRELAZNO STANJE

    VREME

    DUINA

    REDA

    Slika 1: Prelazno i stacionarno stanje Poeemo analiziranjem jednog sistema, a zatim emo prei na poredjenje vie sistema. Cilj analize jednog sistema je da se odredi interval poverenja za vrednost, kao to je [1.25,3.76] interval poverenja od 95% za srednje vreme koje klijent provodi u sistemu.

  • 5.1 Zavravajue simulacije Zavravajue simulacije su najlake za analizu. Pogledajmo najpre kako ne treba analizirati sistem. Pretpostavimo da elimo da analiziramo proseno vreme ekanja za prvih 100 klijenata, oznaeno sa . Jedan pristup bi bio da izvri-mo simulaciju za 100 klijenata, da bi dobili vremena ekanja y1, y2, , yn. Mogli bi onda da uzmemo srednju vrednost Y i varijansu tog uzorka. Kako je varijansa srednje vrednosti

    /100, mogli bi da dobijemo da je interval poverenja

    2YS

    2YS

    100/96,1 2YSY

    To je sigurno, definitivno i apsolutno pogreno! Dok je istina da Y ima oekivanu vrednost jednaku vrednosti koju elimo, interval poverenja je potpuno laan. Vrednosti yi nisu nezavis-ne i nisu identino raspodeljene. Vi definitivno ne moete da iskoristite varijaciju izmedju yi da biste dobili procenu . To izgleda isuvie oigledno da bi se naglaavalo, ali izgleda da se nesvesno, mnogo rezultata simulacije analizira na nain kako je gore prikazano. Jednom kada izvrimo simulaciju, mi imamo tano jedan podatak: Y , koji emo oznaiti sa x1. Mi sada moemo da ponovimo simulaciju za 100 klijenata da bismo dobili drugi podatak x2. Mi moramo to da uradimo tako da x1 i x2 budu sigurno identino raspodeljeni i nezavisni. Prvi deo nije teak. Ako ponovo izvrite simulaciju, svaki statistiki podatak e biti identino raspodeljen. Da bi se osigurala nezavisnost, potrebno je samo promeniti klicu sluajnih broje-va. To e dati sasvim razliit skup sluajnih ulaznih vrednosti i zato e podaci biti nezavisni. Ovo se sada moe ponoviti 10, 20, 50, 100, ili 1000 puta da bi se dobio dovoljno mali interval poverenja. Ako ponovimo simulaciju 50 puta da bi dobili x1, x2, , x50, moemo da izrauna-mo srednju vrednost X i varijansu uzorka, a to moe da se upotrebi za interval poverenja 2XS

    100/96,1 2XSX Ovo je ispravna analiza.

    5.2 Analiza stacionarnog stanja Tee je izvriti analizu stacionarnog stanja, ali ona ima mnogo primena. Pretpostavite, na pri-mer, da analizirate proizvodno postrojenje koje radi samo u jednoj smeni. Na kraju radnog da-na, radnici ostavljaju delimino izvrene zadatke tamo gde se nalaze da bi ih nastavli sledeeg dana. To je stvarno kontinualan sistem, za koji je vana analiza stacionarnog stanja. Analiza stacionarnog stanja je vana i u projektovanju gde je cilj visokog nivoa da se dostigne odre-djena propusna mo. Detaljnije planiranje moe da se upotrebi da bi se ispitale pojave nestaci-onarnog stanja.

  • Prvi cilj je da se identifikuje prelazni period, tako da bi mogli da ga odbacimo. Kako nema dobrog statistikog testa da bi se sigurno identifikovali prelazni periodi, ovo se stvarno svodi na procenu. Crtanje grafika podataka je dobar nain da se sagleda prelazni period, ali ljudi obino pogreno procene ekstremne, ali validne vrednosti za prelazni period. Period stacionar-nog stanja ne mora obavezno da bude onaj gde se sistem "smirio". U stvari, varijansa oitava-nja je tipino vea u stacionarnom stanju nego u prelaznom periodu! Stacionarno stanje se de-finie kao ono kada je srednja vrednost nezavisna od vremena. Ako nacrtamo linije koje ozna-avaju varijansu, videemo neto kao na slici 2.

    STACIONARNO STANJE PRELAZNO STANJE

    Srednja vrednost

    Donja granica intervala

    Gornja granica intervala

    VREME

    DUINA

    REDA

    Slika 2: Varijansa prelaznog i stacionarnog stanja Kada smo jednom odbacili prelazni period, ostaje nam da pokuamo da analiziramo stacionar-no stanje. Ranije razmatrani argument o korienju individualnih taaka podataka za analizu srednje vrednosti vai i dalje. Mi emo ak i vie voditi rauna o nezavisnosti u analizi stacio-narnog stanja. Jedan od pristupa je da ponavljamo eksperiment mnogo puta, svaki put odbacujui prelazni period i koristei ostatak simulacije da bi obezbedili jednu taku podataka. Prednost ovog me-toda je u njegovoj jednostavnosti i statistikoj validnosti. Ako korektno odbacite prelazni pe-riod, vrednosti e biti nezavisne i identino raspodeljene. Mana ovog pristupa je u tome to je mnogim sistemima potrebno dugo vreme da bi dostigli stacionarno stanje, pa ete na kraju od-baciti ogromne koliine podataka i izgubiti mnogo vremena. Drugi pristup se zove metod intervala. Ovde se izvri jedna veoma duga simulacija i odbaci se njen prelazni period. Zatim se ostatak podeli na intervale i uzme se po jedan podatak za svaki interval, raunajui srednju vrednost podataka u tom intervalu. Prednost ovoga je u sma-njenoj pouzdanosti korektnog identifikovanja prelaznog perioda i u maloj koliini vremena koje je izgubljeno na dobijanje odbaenih podataka. Mana je nedostatak nezavisnosti izmedju podataka. Kako je zavrno stanje jednog intervala poetno stanje sledeeg, oekuje se izvesna korelacija izmedju podataka koji se tako dobijaju. Efekat ove korelacije moe da se minimizu-je ili poveavanjem duine svakog intervala, ili poveavanjem broja intervala. I jedno i drugo, naravno, poveavaju vreme potrebno za izvrenje simulacije. Kao primer, pretpostavimo da su vremena ekanja u naem sistemu sa dva bankomata marke POVETARAC sledea:

  • 0.0 0.0 1.2 2.3 0.0 1.1 3.2 1.6 0.0 3.1 2.1 1.7 3.2 0.0 4.1 2.1 4.9 3.2 5.2 7.6 6.5 5.4 3.2 2.1 1.1 0.0 0.0 1.2 2.8 2.6 5.3 2.2 7.1 5.3 3.8 1.9 0.6 1.3 0.8 0.2 0.0 0.0 0.0 4.5 3.6 1.2 2.5 2.8 2.9 3.3 3.7 4.7 5.3 4.6 3.7 1.5 1.2 1.1 0.7 0.0

    Mogli bi da odbacimo prvih 10 opservacija kao prelazni period i onda da grupiemo ostatak u 5 grupa od po 10 opservacija (u pravim sistemima imali biste vie podataka po intervalu, moda 50 ili 100, kao i mnogo vie intervala, moda 30 ili vie). Nae take podataka bi onda bile 3,41; 2,49; 2,85; 2,08 i 2,65. Za srednju vrednost i varijansu uzorka dobijamo X = 2,696 i

    = 0,9479. Na interval poverenja bi onda bio 2XS

    2087,1696,25/9479,0776,2696,2 = (Vrednost 2,776 se nalazi u tablici t raspodele za 4 stepena slobode). Da smo primenili pogre-an metod tretiranja svake vrednosti podataka nezavisno, dobili bismo istu srednju vrednost, ali daleko manju varijansu. Postoje i druge metode izvrenja analize stacionarnog stanja. Neke od njih, poznate kao auto-korelacione metode, pokuavaju da koriguju korelaciju u metodi intervala. Druga popularna metoda je poznata kao metoda ciklusa i analizira sistem izmedju standardnih dogadjaja, kao to je pranjenje reda ekanja. Sve ove metode pokuavaju da analiziraju podatke kada pret-postavka o njihovoj mezavisnosti nije automatski ispunjena.

    5.3 Smanjivanje varijanse Kao to je ranije pomenuto, jedan od metoda za suavanje intervala poverenja je da se povea vreme koje emo utroiti na simulaciju. Medjutim, postoji jo nekoliko trikova kako da se smanji taj interval. Najlaki i najpoznatiji medju njima je upotreba antitetikih sluajnih brojeva. Podsetimo se da simulacija radi pomou generisanja sluajnog broja r izmedju 0 i 1. Ta vrednost r se onda transformie u koju god elimo sluajnu vrednost. Treba zapaziti da ako je r sluajan broj iz-medju 0 i 1, tada je to isto tako i broj s = 1 - r. Sada pretpostavimo da ste napravili dve si-mulacije. Jedna od njih je sa sluajnim promenljivim r1, r2, , rm a druga sa 1 - r1, 1 - r2, , 1 - rm. Ove simulacije nisu nezavisne. Kada jedna od njih ima veliki sluajni broj (kao na primer du-go vreme izmedju dva dolaska), druga ima mali sluajni broj (koji odgovara kratkom vremenu izmedju dva dolaska). Ako uzmemo da je x1 vrednost nekog statistikog podataka za prvu si-mulaciju a y1 njegova vrednost za drugu, tada su x1 i y1 negativno korelisane. Medjutim, i jed-na i druga imaju istu oekivanu vrednost . Zato moemo da procenimo pomou (x1 + y1)/2.

  • Pretpostavimo da smo to ponovili n puta. Ako uzmemo da je zi = (xi +yi)/2, onda je Z nepola-risani estimator . Ako onda uzmemo , moemo da izraunamo interval poverenja. 2ZS Podsetimo se da je Var(x + y) = Var (x) + Var(y) + 0,5Cov(x,y). Ako je kovarijansa izmedju xi i yi negativna, onda e z teiti da ima manju varijansu i od x i od y. Kako antitetike promenljive tee da imaju negativne kovarijanse, to emo kao rezultat imati bolje procenjene vrednosti. Zapazite da nije potrebno stvarno raunati kovarijanse; to je uinjeno implicitno prilikom pro-rauna . Kao primer, pretpostavimo da smo dobili sledee podatke: 2ZS

    i xi yi zi1 2,830 0,122 1,476 2 0,791 2,237 1,514 3 1,468 1,308 1,388 4 0,106 5,935 3,021 5 0,976 1,904 1,440

    Moete da izraunate Z = 1,7678 i = 0,4929, pa je interval poverenja jednak 2ZS

    1,7678 2,776 5/4929,0 = 1,7678 0.8716 to uopte nije loe ako se uzme u obzir da je bilo svega 10 izvrenja simulacije. Kako broj izvrenja simulacije raste (tako efekat stepena slobode u t statistici opada) efekat antitetikih promenljivih se pojaava. Veina "ozbiljnih" simulacija e koristiti antitetike promenljive, ako sistem koji se simulira to dozvoljava.

    5.4 Poredjenje dva sistema Pretpostavimo sada da imamo dva sistema i da elimo da odredimo koji od njih je bolji, na os-novu nekog statistikog podatka. Najjedostavniji nain da se analiziraju ovi sistemi je da se obezbedi (ili nametne) da broj opservacija bude isti za oba sistema. Pretpostavimo da dobije-mo x1, x2, , xn za sistem 1 i y1, y2, , yn za sistem 2. Tada, da bi videli da li je sistem 1 bolji od sistema 2, mi treba samo da utvrdimo da li je x - y > 0. Drugim reima, moemo da formi-ramo zi = xi - yi, izraunamo Z i i formiramo interval poverenja za Z. Ako je ceo interval poverenja meddju pozitivnim brojevima, onda je sistem 1 bolji. Ako je ceo medju negativnim brojevima, onda je sistem 2 bolji. Ako interval poverenja ukljuuje i 0, onda se ne moe rei koji je sistem bolji.

    2ZS

    Ova analiza vai sve dok su vrednosti zi nezavisne; nije neophodno da xi i yi budu nezavisne jedne od drugih. U stvari, ako je xi pozitivno korelisano sa yi tada se varijansa z smanjuje.

  • Jedna od standardnih tehnika koje se primenjuju u simulaciji je da se nametne pozitivna kore-lacija korienjem istih ulaznih sluajnih brojeva u izvravanju simulacije za oba sistema. Ako jedan od sistema ima vreme ekanja koje je vee od normalnog (kao posledica velikog broja dolazaka klijenata u kratkom vremenskom periodu), tada e njegova alternativa verovat-no takodje imati vee vreme ekanja od normalnog.

    6. Projektovanje eksperimenata Poslednji korak u analizi sistema pomou simulacije je da se podese sistemski parametri tako da bi se optimizovala performansa. Kao to je ranije reeno, simulacija je u sutini opisni, a ne propisni alat. Uz dunu panju i mnogo utroenog raunarskog vremena, ipak je mogue optimizovati sistem pomou simulacije. U mnogo emu, optimizacija pomou simulacije sli-na je nelinearnoj optimizaciji. Pretpostavimo, najpre, da imamo samo jednu veliinu po kojoj hoemo da izvrimo optimiza-ciju. To bi, na primer, mogao biti broj maina u fabrici. Neka ta veliina bude oznaena sa x. Pretpostavimo da imate simulaciju koja e utvrditi performansu za dato x, to se oznaava kao f(x). Ako je f(x) deterministiko, vi biste jednostavno optimizovali preko x pomou bilo koje od tehnika operacionih istraivanja koje poznajete (kao na primer, binarnog pretraivanja, tra-enja zlatnog preseka itd.). Jedina razlika u simulaciji je u tome to f(x) nije deterministike, nego je pre stohastike prirode. To znai da mora da se uradi dovoljan broj izvrenja simulaci-je da bi bilo sigurno da je izbor (da je f(x1) bolji od izbora f(x2)) korektno izveden. U sluaju kada se radi sa vie sistemskih parametara, nije ak jasno ni kako da se koriste neli-nearni algoritmi. Tada poinjete se jednom posebnom takom. Za svaki od parametara, gleda-te ta se deava kada ga poveate ili smanjite za jedan od moguih koraka. Ako ima n para-metara, postoji 2n mogunosti. Vi medju njima izaberete najbolju i to e biti sledea taka za ispitivanje. Proces se nastavlja sve dok ne dostignete taku u kojoj vie nema poboljanja u Vaem reenju. To moe donekle da se ubrza upotrebom analize faktora i faktorijalnim pro-jektovanjem eksperimenata, to smanjuje 2n razliitih mogunosti na neki manji broj.

  • 7. Primer upotrebe jezika GPSS GPSS (General Purpose Simulation System - sistem za simulaciju opte namene) je simulaci-oni jezik, odnosno razvojno okruenje, namenjeno za brzo i tano implementiranje jedne kla-se simulacija na raunaru. Prvobitno ga je razvio Geoffrey Gordon u firmi IBM jo negde 1960. godine. Od tih davnih vremena, GPSS se neprestano usavravao, doiveo je nebrojeno mnogo verzija kod razliitih proizvodjaa i izdrao je sve vremenske probe, tako da i danas predstavlja jedan od najrairenijih softverskih sistema za simulaciju diskretnih sistema. Koncepti jezika GPSS zahtevaju od korisnika da se na njih navikne, ali kada se jednom njima ovlada, obezbedjuju moan mehanizam za specificiranje simulacionih modela. Da bi se napravio GPSS program, definiu se blokovi, koji se dalje kombinuju na razliite na-ine. Kroz te blokove, u programu se kreu transakcije. Transakcije, pokretni entiteti GPSS programa-simulatora, mogu da predstavljaju razne stvari u modelu, kao to su poslovi, vozila, klijenti ili neto sasvim drugo. Svakoj transakciji pridruen je skup parametara P1, P2, Svaki od tih parametara je broj, ali se on u modelu moe interpretirati na razliite naine. Na primer, moemo da postavimo da je P1 vreme kada je transakcija ula u sistem, P2 moe da bude 0 ako transakcija predstavlja poslovnog klijenta i 1 ako predstavlja privatnog klijenta, P3 je vreme potrebno za izradu nekog proizvoda i slino. Ove transakcije prolaze kroz sistem blokova. Blokovi opisuju razliite akcije koje u sistemu mogu da se preduzmu u vezi sa transakcijama. Veina blokova u jeziku GPSS menja vrednos-ti parametara transakcija, postavlja transakcije u redove ekanja ili manipulie resursima za opsluivanje po jedne transakcije istovremeno (FACILITY) ili vie transakcija odjednom (STORAGE). Ti resursi mogu u modelu da predstavljaju maine, radnike i druge uredjaje ili radna mesta za opsluivanje transakcija. Da bi dobili izvesnu predstavu o mogunostima jezika GPSS, uradiemo ovde jedan jednosta-van, pokazni primer, a zatim emo ga implementirati, izvesti dva eksperimenta i dati kratku analizu dobijenih rezultata. Model e biti implementiran pomou programskog okruenja GPSS World, firme Minuteman Software. U naoj zemlji ima jo raspoloivih verzija jezika GPSS, kao to su na primer GPSS-FON koji je razvijen na Fakultetu organizacionih nauka Univerziteta u Beogradu, GPSS/H firme Wolverine Softvare itd. Okruenje GPSS World smo odabrali zato to je to moderna Windows verzija jezika GPSS, sa velikim mogunostima, ka-ko za lako implementiranje modela, njihov razvoj i oslobadjanje od greaka, tako i za rukova-nje gotovim simulatorima, u smislu organizacije eksperimenata, praenja odvijanja simulacije i prikazivanja dobijenih rezultata. Najzad, mada ne i od najmanjeg znaaja, na na izbor je uticala i injenica da se studentska verzija GPSS World, ograniena na 150 blokova (a sa time se, verujte mi na re, mogu praviti sasvim upotrebljivi modeli!), moe besplatno uzeti sa Interneta na sajtu

    http://www.minutemansoftware.com

  • 7.1 Razvoj modela uvodjenja bankomata u jeziku GPSS Primer koji emo ovde razmatrati je model uvodjenja bankomata, opisan u odeljku 1.1 na po-etku ovog teksta. Podsetimo se da su postojale dve alternative za uvodjenje bankomata:

    a) postavljanje jednog brzog bankomata marke VIHOR ili b) postavljanje dva sporija bankomata marke POVETARAC.

    Klijenti dolaze u banku brzinom od jednog klijenta u minutu (po eksponencijalnoj raspodeli) i staju u red ekanja ispred jednog bakomata VIHOR ili dva bankomata POVETARAC. VIHORU treba u proseku 0,9 minuta, a POVETARCU 1,8 minuta da bi opsluili jednog kli-jenta. Obzirom da bi dva POVETARCA kotala banku isto koliko i jedan VIHOR, kriterijum za odluku je srednje vreme ekanja koje bi prvih 100 klijenata provelo u obe razmatrane varijante sistema.

    G RED VIHOR T

    a) Sistem sa jednim bankomatom VIHOR

    POVETARAC-1 T-1

    T-2 POVETARAC-2

    RED G

    b) Sistem sa dva bankomata POVETARAC

    Slika 3: Struktura simulacionog modela

  • Na slici 3 prikazane su strukture simulacionih modela za obe varijante. Strukturu simulacio-nog modela ine:

    generator klijenata (G) red ekanja pred bankomatima (RED, jedinstven u obe varijante sistema) bankomati (VIHOR u prvoj ili POVETARAC-1 i POVETARAC-2 u drugoj

    varijanti) terminatori klijenata (za okonanje usluga bankomata, T u prvoj ili T-1 i T-2 u

    drugoj varijanti). Nae GPSS transakcije u ovom modelu predstavljaju klijente. Nai resursi su bankomati koji e biti predstavljeni GPSS resursima za opsluivanje po jedne transakcije istovremeno (FACILITY). U prvoj varijanti to je FACILITY VIHOR, a u drugoj varijanti to su FACILITY POVETARAC1 i FACILITY POVETARAC2. Da bi se reio ovaj problem, upotrebiemo nekoliko GPSS blokova. Poeemo (kao i u svim modelima) sa generisanjem transakcija, koje ovde predstavljaju kli-jente. To emo uraditi pomou GPSS bloka GENERATE, ija je uloga da stvarno generie nove transakcije i ubacuje ih u simulaciju. Format pisanja GPSS instrukcije za defifnisanje bloka GENERATE je:

    GENERATE A,B,C,D,E gde su operandi: A Srednje vreme izmedju dve uzastopno generisanje transakcije. B Opcija: polovina opsega uniformno raspodeljenih vremena izmedju dva generisanja, ili

    njegov funkcionalni modifikator. C Opcija: vreme kanjenja za pojavu prve transakcije. D Opcija: ukupan broj transakcija koje e biti generisane u modelu. E Opcija: nivo prioriteta generisanih transakcija. U naim modelima, upotrebiemo GENERATE blok na sledei nain:

    GENERATE (Exponential(1,0,1)),,,100 U polju A smo za vreme izmedju dva uzastopna dolaska klijenata iskoristili standardnu eks-ponencijalnu raspodelu, ugradjenu u razvojno simulaciono okruenje GPSS World. Koristi se generator sluajnih brojeva br.1, a srednja vrednost je postavljena na 1 minut. Polja B i C nis-mo koristili, a u polju D smo ograniili ukupan broj generisanih transakcija na 100, jer se os-novno pitanje nae simulacije odnosi na prvih 100 klijenata. Kad god se nova transakcija uputi u simulator, GPSS World memorie taj trenutak simulira-nog vremena, to kasnije slui kao osnova za izraunavanja mnogih parametara od interesa, kao to je na primer vreme ekanja u redu pred bankomatom.

  • Sledei blok slui za stavljanje transakcije (klijenta) u red ekanja. Za to u GPSS-u postoji blok QUEUE (red) koji se definie sledeom instrukcijom:

    QUEUE A,B gde su operandi: A Ime reda, ili njegov broj; B Opcija: broj jedinica za koji se poveava sadraj reda ulaskom transakcije u QUEUE

    blok. Pretpostavljena vrednost je 1. U naim modelima, upotrebiemo QUEUE blok na sledei, najjednostavniji mogui nain:

    QUEUE RED ime smo definisali jedinstveni red ekanja pred bankomatima i dali mu ime simboliko ime RED. Bakomat VIHOR emo simulirati pomou GPSS entiteta FACILITY za predstavljanje sistem-skog resursa koji moe da opsluuje samo jednu transakciju istovremeno. Za rad sa entitetima tipa FACILITY, u jeziku GPSS postoje dva bloka, SEIZE i RELEASE, od koji prvi slui za zauzimanje entiteta FACILITY od strane transakcije, a drugi za njegovo oslobadjanje po izvr-enoj usluzi. Blok SEIZE se definie pomou instrukcije:

    SEIZE A gde je operand: A ime entiteta FACILITY, ili njegov broj. Ulaskom u blok SEIZE, transakcija stie pravo vlasnitva nad entitetom FACILITY, ukoli-ko je on slobodan. U suprotnom, transakcija ne moe da udje u blok SEIZE, nego mora da e-ka, dok se FACILITY ne oslobodi od prethodne transakcije. U naem primeru, iskoristili smo SEIZE blok na sledei nain:

    SEIZE VIHOR ime smo istovremeno i definisali entitet FACILITY kojim emo simulirati bankomat marke VIHOR u prvoj od razmatranih varijanata sistema.

  • Kada transakcija koja je bila na elu reda ekanja RED uspe da udje u blok SEIZE i zauzme entitet FACILITY VIHOR, ona se sekvencijalno upuuje u blok DEPART, koji slui za napu-tanje simuliranog reda ekanja. Blok DEPART se definie na sledei nain:

    DEPART A,B gde su operandi: A Ime reda, ili njegov broj; B Opcija: broj jedinica za koji se smanjuje sadraj reda ulaskom transakcije u DEPART

    blok. Pretpostavljena vrednost je 1. U naem sluaju, to je:

    DEPART RED Sada treba simulirati uslugu bankomata. U jeziku GPSS takvi procesi se predstavljaju istim vremenskim kanjenjima, pomou bloka ADVANCE, koji se definie na sledei nain:

    ADVANCE A,B gde su operandi: A srednja vrednost simuliranog vremenskog intervala; B opcija: polovina opsega uniformno raspodeljenih vremena oko srednje vrednosti interva-

    la, ili njegov funkcionalni modfikator. U naem modeliu, upotrebiemo ADVANCE blok na sledei nain:

    ADVANCE (Exponential(1,0,0.9)) U polju A smo za vreme usluge bankomata VIHOR upotrebili standardnu eksponencijalnu raspodelu, ugradjenu u razvojno simulaciono okruenje GPSS World. Koristi se generator sluajnih brojeva br.1, a srednja vrednost je postavljena na 0,9 minuta. Polje B nismo koristili. Po zavretku rada bankomata, klijent ga oslobadja, to se predstavlja blokom RELEASE, koji se definie pomou instrukcije:

    RELEASE A gde je operand: A ime entiteta FACILITY, ili njegov broj.

  • Ulaskom u RELEASE blok, transakcija se odrie prava vlasnitva nad entitetom FACILITY i oslobadja ga za upotrebu narednim transakcijama. U naem primeru, iskoristili smo blok RELEASE na sledei nain:

    RELEASE VIHOR ime smo, posle izvrene usluge, oslobodili bankomat VIHOR i stavili ga na raspolaganje pr-vom sledeem klijentu. Time smo stigli gotovo do samog kraja implementacije naeg jednostavnog simulatora. Ostaje jo samo da se simulira odlazak klijenta iz banke (i iz naeg simulatora), to se postie pomo-u bloka TERMINATE, definisanog sledeom GPSS instrukcijom:

    TERMINATE A gde je operand: A - Opcija: iznos za koji se smanjuje trenutna vrednost brojaa zavrenih transakcija.

    Pretpostavljena vrednost je 0. U naem sluaju, iskoristili smo ovaj blok da bi uklanjali uvek po jednu transakciju iz simula-cije, ime smo simulirali odlazak po jednog klijenta iz banke:

    TERMINATE 1 Poetna vrednost brojaa zavrenih transakcija se, na poetku simulacionog eksperimenta, po-stavlja pomou GPSS komande:

    START A gde je A eljena ukupna vrednost zavretaka u toku eksperimenta, u naem sluaju 100 (za svakog klijenta koji obavi posao i napusti banku po 1). Kad god transakcija koja predstavlja klijenta udje u ovako definisan blok TERMINATE, bro-ja se smanji za 1, a ta transakcija, posle automatski prikupljenih statistikih podataka od stra-ne GPSS-a, ukloni iz simulacije. Blok TERMINATE nam, dakle, slui kao terminator klijena-ta iz strukture simulacionog modela. Ovim smo definisali i implementirali program-simulator naeg sistema sa jednim bankoma-tom marke VIHOR. Treba zapaziti da smo, sa svega 7 (sedam!) instrukcija jezika GPSS pot-puno implementirali ovaj simulator koji e nam, videemo to uskoro dalje u tekstu, dati vrlo upotrebljive rezultate i ponuditi odgovor na pitanja o perormansama modelovanog sistema. Primera radi, za implementaciju istog algoritma, u jeziku opte namene, bilo bi potrebno oko 100 instrukcija, uz znatno vei programerski napor.

  • Da rezimiramo. Ulazna datoteka GPSS, odnosno program kako ga formulie korisnik, u naem sluaju izgledae ovako: *************************************************************************** * SIMULACIJA SISTEMA SA JEDNIM BANKOMATOM VIHOR * * Vreme je u minutima * *************************************************************************** GENERATE (Exponential(1,0,1)),,,100 ;Klijenti dolaze u banku QUEUE RED ;Klijent staje u red SEIZE VIHOR ;Klijent zauzima VIHOR DEPART RED ;Klijent napusta red ADVANCE (Exponential(1,0,0.9)) ;VIHOR opsluzuje klijenta RELEASE VIHOR ;Klijent oslobadja VIHOR TERMINATE 1 ;Klijent odlazi iz banke

    Slika 4: Ulazna datoteka GPSS simulatora sistema sa jednim bankomatom VIHOR Zapazimo da interpreter GPSS ignorie redove koje poinju karakterom "*", pa to koristimo za naslove, komentare i redove za razdvajanje, u cilju poveanja itljivosti korisnikih ulaznih datoteka. Pored toga, u svakoj instrukciji GPSS, ignorie se sve to se pojavi iza karaktera ";" pa se i to koristi za upisivanje razliitih tekstova i komentara. Razmotrimo sada ulaznu korisniku datoteku za varijantu sistema sa dva bankomata marke POVETARAC. Ona izgleda ovako: *************************************************************************** * SIMULACIJA SISTEMA SA DVA BANKOMATA POVETARAC * * Vreme je u minutima * *************************************************************************** GENERATE (Exponential(1,0,1)),,,100 ;Klijenti dolaze u banku QUEUE RED ;Klijent staje u red TRANSFER BOTH,POV1,POV2 ;Klijent ce uzeti prvi * ;slobodan bankomat POV1 SEIZE POVETARAC1 ;Klijent zauzima POVETARAC1 DEPART RED ;Klijent napusta red ADVANCE (Exponential(1,0,1.8)) ;POVETARAC1 radi za klijenta RELEASE POVETARAC1 ;Klijent oslobadja POVETARAC1 TERMINATE 1 ;Klijent odlazi iz banke POV2 SEIZE POVETARAC2 ;Klijent zauzima POVETARAC2 DEPART RED ;Klijent napusta red ADVANCE (Exponential(1,0,1.8)) ;POVETARAC2 radi za klijenta RELEASE POVETARAC2 ;Klijent oslobadja POVETARAC2 TERMINATE 1 ;Klijent odlazi iz banke

    Slika 5: Ulazna datoteka GPSS simulatora sistema sa dva bankomata POVETARAC Vidi se da je u najveoj meri iskorien "minuli rad" na implementaciji prethodnog modela. Transakcije koje predstavljaju klijente generiu se identino. Delovi koji predstavljaju banko-mate POVETARAC su po strukturi isti kao i odgovarajui deo za bankomat VIHOR, s tim to je srednja vrednost eksponencijalno raspodeljenog vremena usluge u ADVANCE bloku sada 1,8 minuta, jer je POVETARAC dva puta sporiji od VIHORA. Vidi se takodje da, obzirom da postoje dva ovakva bankomata u sistemu, oni su simulirani poomou FACILITY entiteta POVETARAC1 i POVETARAC2, a odgovarajui delovi programa imaju simbolike adrese

  • (labele) POV1 i POV2 respektivno. Svaki od ovih delova programa ima i svoj terminator kli-jenata, realizovan pomou odgovarajueg bloka TERMINATE. Novi blok koji se pojavio u ovoj varijanti modelovanog sistema je TRANSFER ("blok za skok"), definisan pomou GPSS instrukcije:

    TRANSFER A,B,C,D gde su operandi: A - opcije: nain rada bloka TRANSFER (skoka). Moe biti BOTH, ALL, PICK, FN, P,

    SBR, SIM, frakcioni ili bezuslovni; B - opcija: broj ili simbolika adresa nekog od blokova dalje u programu; C - opcija: broj ili simbolika adresa nekog od blokova dalje u programu; D - opcija: inkrement broja bloka u nainu rada ALL. Blok TRANSFER moe da radi na jedan od 9 naina, od kojih svaki ima drugaije osobine, odnosno mogunosti primene u simulaciji. Kada transakcija udje u blok TRANSFER, ope-rand A se koristi da se odredi nain njegovog rada. Znaenja operanada B i C zavise od tog naina rada. Kada ne odredite operand koji odgovara lokaciji bloka dalje u programu, koristi se sledei sekvencijalni blok posle bloka TRANSFER. U naem simulatoru, iskoristili smo blok TRANSFER na sledei nain:

    TRANSFER BOTH, POV1,POV2 to znai da smo upotrebili nain rada BOTH. U ovom nainu rada, ispituje se blok ija je simbolika adresa odredjena pomou operanda B (POV1). To je deo kojim se simulira rad bankomata POVETARAC1. Ako je on slobodan, transakcija (klijent) se upuuje u taj deo programa, zauzima POVETARAC1 i nastavlja rad po opisanom algoritmu. Ako je bankomat POVETARAC1 ve zauzet od strane prethodne transakcije-klijenta, ispituje se blok ija je simbolika adresa odredjena pomou operanda C (POV2). To je deo kojim se simulira rad bankomata POVETARAC2. Ako je on slobodan, transakcija (klijent) se upuuje u taj deo programa, zauzima POVETARAC2 i nastavlja rad po opisanom algoritmu. Ako ni on nije slobodan, onda transakcija (klijent) ostaje u bloku TRANSFER, sve dok se jedan od entiteta FACILITY, kojima se simuliraju bankomati POVETARAC1 i POVETARAC2 ne oslobodi, a zatim se upuuje u odgovarajui deo programa i nastavlja sa simulacijom. Vidi se da smo, uz minimalan programerski napor, dodavanjem samo jednog sutinski novog GPSS bloka i prostim repliciranjem ve programiranog dela programa, implemetirali i pro-gram-simulator varijante sistema sa dva bankomata marke POVETARAC. Sada smo potpuno spremni da predjemo na sledeu fazu postupka, odnosno implemetiranje programa-simulatora u razvojnom simulacionom okruenju GPSS World, njihovo putanje u rad, izvravanje eksperimenata i analizu rezultata.

  • 7.2 Instalacija razvojnog okruenja GPSS World Kada biste kupili komercijalnu verziju razvojnog simulacionog okruenja GPSS World (to verujem da veina naih italaca ipak nee uraditi!), dobili biste odgovarajui CD sa svim pot-rebnim uputstvima. Mi emo se ovde pozabaviti samo onim to nam je svima dostupno i to BESPLATNO, a to je instalacija studentske verzije GPSS World koju moete uzeti sa Inteneta, sa ve pomenutog sajta

    http://www.minutemansoftware.com Odatle ete uzeti datoteku student.exe, a mi Vam toplo preporuujemo da uzmete i uputstvo za uenje (tutorial) i referentni prirunik (reference manual) koji su uradjeni vrlo profesio-nalno i sa puno primera. Iz iskustva nam je dobro poznato da se programiranje u GPSS-u naj-lake savlada ako na poetku analiziramo tudje, ve uradjene modele i prepravljamo ih prema vlastitim potrebama, pre nego to dodjemo na nivo da moemo sami da pravimo nove modele, poevi od nule. Jednom kada uzmete datoteku student.exe i aktivirate je, zapoee proces koji e Vas, na uo-biajen nain, dovesti do uspenog kraja instalacije studentske verzije simulacionog okruenja GPSS World. Instalacija e smestiti izvrne datoteke, datoteku za pomo korisniku i primere GPSS modela u odgovarajue direktorijume na Vaem raunaru. Neki od zahteva koje Va raunar treba da ispuni su: - IBM kompatibilna konfiguracija, pod 32-bitnim Windows operativnim sistemom; - centralna procesorska jedinica najmanje Pentijum, ili bolja; - preporuuje se matematiki koprocesor, mada nije neophodan; - najmanje 32 Mbajta operativne memorije; - preporuuje se gotovo obavezna upotreba mia jer, mada se modeli mogu napraviti i izvr-

    avati bez njega, neke opcione operacije zahtevaju njegovu upotrebu; - za instalaciju svih komponenata potrebno je najmanje 10 Mbajta slobodnog prostora na

    vrstom disku. 7.3 Implementacija modela i izvravanje simulacije

    pomou razvojnog okruenja GPSS World

    Simulaciono razvojno okruenje GPSS World se moe posmatrati kao skup akcija koje su Vam na raspolaganju kada otvorite sesiju, na primer izborom odgovarajue ikone. Sve se kon-trolie iz glavnog okvira za dijalog GPSS World, iji je jedan primer prikazan na slici 6. Upotrebom menija glavnog okvira za dijalog, moete da stvarate i manipuliete objektima razvojnog simulacionog okruenja GPSS World: modelom, simulacijom, izvetajem i teks-tom. Svaki od ovih objekata e imati jedan ili vie izgleda koji se mogu otvoriti kao odgova-rajui okviri, iz glavnog okvira za dijalog.

    Hajde da implementiramo nae simulacione modele koje smo razvili u odeljku 7.1. Poeemo sa modelom sistema sa jednim bankomatom marke VIHOR.

  • Slika 6: Glavni okvir za dijalog razvojnog simulacionog okruenja GPSS World Zapoeemo ovaj, kao i svaki drugi GPSS World projekat, stvaranjem i/ili modifikacijom objekta modela. Model ovde nije nita drugo nego ulazna datoteka, prikazana na slici 4 u odeljku 7.1. 1. Iz menija File glavnog okvira za dijalog, izaberite New, a zatim Model. Pritisnite OK.

    Pojavljuje se novi okvir Untitled model 1 za unoenje naeg modela. 2. Unesite celu datoteku, kako stoji na slici 4, na uobiajen nain. 3. Iz menija File glavnog okvira za dijalog, izaberite Save As dajte ime naem modelu, na

    primer VIHOR1 i zapamtite ga u nekom direktorijumu po sopstvenom izboru. 4. Iz menija Command glavnog okvira za dijalog, izaberite ili Create Simulation ili

    Retranslate, zavisno od toga da li prvi put prevodite model ili ste na njemu vrili neku modifikaciju. U oba sluaja GPSS World prevodi instrukcije modela u izvrivi objekt si-mulacije. Pojavljuje se novi okvir za "dnevnik" Vae simulacije VIHOR1.1sim - JOURNAL, sa svim informacijama o Vaim dosadanjim aktivnostima. Ako je prevodje-nje prolo bez greaka, u okviru VIHOR1.1sim - JOURNAL pojavljuje se poruka o spremnosti za izvrenje simulacije Ready.

    5. Ako ste napravili neku greku, sada je prilika da se ona ispravi. To postiete pomou vie

    uzastopnih izbora Search / Next Error, koji Vas vode od jednog do drugog pogrenog reda u modelu, dok ih sve ne ispravite. Na kraju izaberite Command / Retranslate. U okviru VIHOR1.1sim - JOURNAL se pojavljuje poruka o spremnosti za izvrenje simulacije Ready.

    6. Pre nego to pustimo nau simulaciju da se izvrava, izabraemo neki od okvira za

    praenje rada modela. U sluaju simulatora sistema sa bankomatima to e, na primer, biti okvir za iscrtavanje grafika koji ete izabrati iz menija Window glavnog okvira za dijalog, pomou Simulation Window / Plot Window. U njemu ete pustiti da se tokom simulacije iscrtava grafik duine reda ekanja klijenata pred bankomatima u zavisnosti od

  • simuliranog vremena. Pojavljuju se okvir za grafik i okvir za njegovo definisanje Edit Plot Window.

    7. Okvir za definisanje grafika Edit Plot Window popunite sledeim podacima:

    - u polju Label: Red cekanja - u polju Expression: Q$RED - u polju Title: Red pred 1 bankomatom VIHOR - u polju Time Range: 150 - u polju Max Value: 20

    Pritisnite miem redom Plot, Memorize i OK. Time je definisan okvir za iscrtavanje grafi-ka zavisnosti reda ekanja pred bankomatom VIHOR od simuliranog vremena. Sada smo spremni za putanje naeg simulatora u rad.

    8. Iz menija Command glavnog okvira za dijalog, izaberite START. Pojaljuje se okvir pod nazivom Start Command u kome pie START 1. Ispravite to u START 100, jer elite da pustite simulaciju za prvih 100 klijenata. Pritisnite OK. Simulacija poinje da se izvrava. U okviru za iscrtavanje grafika moete da posmatrate kako se u vremenu razvija na red ekanja pred bankomatima. Kada se rad simulatora VIHOR1 zavri, isti postupak ponovite i za model sistema sa dva bankomata POVETARAC, pri emu ete upotrebiti ulaznu dato-teku sa slike 5 u odeljku 7.1.

    9. Sada moete da predjete na analizu rezultata dobijenih u naa dva izvrena simulaciona

    eksperimenta. 7.4 Analiza rezultata eksperimenata GPSS World Simulation Report - Vihor.3.1 Friday, March 09, 2001 12:53:24 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 108.434 7 1 0 NAME VALUE RED 10000.000 VIHOR 10001.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 100 0 0 2 QUEUE 100 0 0 3 SEIZE 100 0 0 4 DEPART 100 0 0 5 ADVANCE 100 0 0 6 RELEASE 100 0 0 7 TERMINATE 100 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY VIHOR 100 0.871 0.945 1 0 0 0 0 0 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY RED 9 0 100 17 2.514 2.726 3.285 0

    Slika 7: Standardni izlazni izvetaj za sistem sa jednim bankomatom VIHOR

  • Na slici 7 dat je standardni izlazni izvetaj razvojnog simulacionog okruenja GPSS World, koji je dobijen u prvom od naa dva izvrena eksperimenta, onom u kome smo simulirali sis-tem sa jednim bankomatom marke VIHOR. Zadrimo se za trenutak na ovom izvetaju. Vidimo da se na simulator zove Vihor.3.1, da je eksperiment izvren u petak, 9. marta 2001. godine, tano u 12 sati, 53 minuta i 24 sekunde. Poetni trenutak bio je 0, a zavretak usluge 100-tom klijentu bio je u trenutku 108,434 minuta simuliranog vremena. Simulator se sastoji od ukupno 7 GPSS blokova, i ima 1 entitet tipa FACILITY za simuliranje jednog bankomata marke VIHOR. Od simbolikih imena, u programu postoje RED (za jedinstveni red ekanja klijenata) i VIHOR (za sam bankomat). Sledeih nekoliko redova predstavljaju deo izlaznog izvetaja koji se odnosi na GPSS blokove od kojih se sastoji simulator. To je u sutini tabela sa sledeim poljima: LABEL: u kome se nalazi simbolika adresa bloka u programu (ako smo je negde u pro-

    gramu definisali); LOC: u kome je apsolutni redni broj bloka koji mu je dodelio sam GPSS World; ENTRY COUNT: ukupan broj transakcija koje su u toku eksperimenta prole kroz blok

    (ovde 100, jer smo tako definisali eksperiment); CURRENT COUNT: trenutni broj transakcija koje se na kraju eksperimenta nalaze u

    bloku (ovde 0, jer su sve transakcije zavrene i napustile simulaciju); RETRY: broj transakcija koje su u toku eksperimenta ponovo pokuale da udju u blok

    (takvih sluajeva, po prirodi stvari, u naem eksperimentu nije bilo); Nastavak izvetaja odnosi se na GPSS entitete tipa FACILITY, za simuliranje radnih mesta za opsluivanje po jedne transakcije istovremeno. U naem eksperimenttu, to je bio bankomat VIHOR, a dobijeni su sledei rezultati: ENTRIES: broj ulazaka, ukupno 100 transakcija, za svakog klijenta po jedna; UTILIZATION: proseno iskorienje 0,871, to znai da je bankomat VIHOR za prvih

    100 klijenata bio aktivan 87,1% od ukupnog simuliranog vremena; AVERAGE TIME: proseno vreme davanja usluge klijentima od 0,945 minuta; AVAILABILITY: raspoloivost bankomata na kraju simulacije je 1 (bankomat VIHOR

    je slobodan). Najzad, u izvetaju se daju i podaci o redu ekanja (RED) klijenata pred bankomatom VIHOR: MAX CONTENT: maksimalna duina reda ekanja, u ovom sluaju 9 klijenata; ENTRY: broj ulazaka u red, ovde 100 klijenata; ENTRY (0): broj transakcija koje su prole kroz red bez ekanja (odmah naile na

    slobodan bankomat), ovde 17 klijenata; AVERAGE CONTENT: prosena duina reda ekanja, ovde 2,514 klijenata; AVERAGE TIME: proseno vreme ekanja u redu, ovde 2,726 minuta po klijentu; AVERAGE TIME (- 0): proseno vreme ekanja u redu kada se izuzmu klijenti koji nisu

    ekali u tom redu, ovde 3,825 minuta.

  • Pogledajmo sada odgovarajui standardni izlazni izvetaj koji smo dobili u drugom eksperi-mentu, onom u kome smo simulirali sistem sa dva bankomata marke POVETARAC. On je prikazan na slici 8. GPSS World Simulation Report - Povetarac.4.1 Friday, March 09, 2001 12:46:01 START TIME END TIME BLOCKS FACILITIES STORAGES 0.000 111.704 13 2 0 NAME VALUE POV1 4.000 POV2 9.000 POVETARAC1 10003.000 POVETARAC2 10004.000 RED 10000.000 LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY 1 GENERATE 100 0 0 2 QUEUE 100 0 0 3 TRANSFER 100 0 0 POV1 4 SEIZE 56 0 0 5 DEPART 56 0 0 6 ADVANCE 56 0 0 7 RELEASE 56 0 0 8 TERMINATE 56 0 0 POV2 9 SEIZE 44 0 0 10 DEPART 44 0 0 11 ADVANCE 44 0 0 12 RELEASE 44 0 0 13 TERMINATE 44 0 0 FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY POVETARAC1 56 0.902 1.800 1 0 0 0 0 0 POVETARAC2 44 0.865 2.196 1 0 0 0 0 0 QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY RED 18 0 100 12 7.602 8.492 9.650 0

    Slika 8: Standardni izlazni izvetaj za sistem sa dva bankomata POVETARAC Ukazaemo samo na bitne razlike. Sada imamo dva entiteta tipa FACILITY, POVETARAC1 i POVETARAC2, po jedan za svaki bankomat. U delu programa za pojedine bankomate, za poetne blokove, pojavljuju se i simbolike adrese POV1 i POV2, to se vidi u delu izvetaja o blokovima. Tu se takodje mo-e videti i da je, od ukupno 100 transakcija koje predstavljaju klijente, 56 dobilo uslugu od bankomata POVETARAC1, a 44 od bankomata POVETARAC2. Ovo se moe videti u u poljma ENTRY dela izvetaja koji se odnosi na entitete FACILITY. Pored toga, tu se moe videti i daje bankomat POVETARAC1 bio iskorien 90,2%, a POVETARAC2 86,5% od ukupnog simuliranog vremena i da je proseno vreme davanja us-luge za POVETARAC1 bilo 1,8 minuta, a za POVETARAC2 2,196 minuta. Najzad, red ekanja (RED) klijenata, u sluaju dva bankomata POVETARAC ima sledee karakteristike:

  • MAX CONTENT: maksimalna duina reda ekanja je 18 klijenata; ENTRY: broj ulazaka u red je 100 klijenata; ENTRY (0): broj transakcija koje su prole kroz red bez ekanja je 12 klijenata; AVERAGE CONTENT: prosena duina reda ekanja 7,602 klijenta; AVERAGE TIME: proseno vreme ekanja u redu je 8,492 minuta po klijentu; AVE.(- 0): proseno vreme ekanja u redu kada se izuzmu klijenti koji nisu ekali je

    9,650 minuta. Dakle, odgovor na pitanje zbog koga smo vrili eksperimente bi glasio: BOLJE JE DA BANKA KUPI JEDAN BANKOMAT VIHOR UMESTO DVA BANKOMATA POVETARAC, JER JE PROSENO VREME EKANJA KLIJENATA U REDU, UZ ISTE TROKOVE, TADA ZNATNO KRAE. Naravno, da bi se izvrila pouzdana procena poredjenja ova dva sistema, trebalo bi napraviti vei broj eksperimenata i odgovarajue analize, kao to je to opisano u prethodnim odeljcima. To emo prepustiti naim itaocima. Bolje da pogledamo jo jednu od korisnih karakteristika razvojnog simulacionog okruenja GPSS World, a to je upotreba okvira za dinamiko iscrtavanje grafika Plot Window. Na slikama 9 i 10 vide se krajnji izgledi okvira za dinamiko iscrtavanje grafika duine reda ekanja pred jednim bankomatom VIHOR, odnosno dva bankomata POVETARAC. U sluaju sistema sa jednim bankomatom marke VIHOR, formira se mnogo manji red ekanja, nego kada imamo dva duplo sporija bankomata POVETARAC. Ne samo da je maksimalna duina ovog reda tada, samo u jednom trenutku bila 9, prema 18 u drugoj varijanti sistema, ve je sa odgovarajuih grafika odmah vidljivo da se pred dva spora bankomata mnogo due eka u redu nego pred jednim brzim. Ali, ono to predstavlja pravu vrednost okvira za dinamiko iscrtavanje grafika Plot Window je upravo injenica da se to deava dinamiki, dakle u samom simuliranom vremenu: drugim reima, u toku simulacionom eksperimenta, grafik koji predstavlja veliinu od interesa, u ovom sluaju trenutnu duinu reda ekanja pred bankomatima, postepeno se formira, bukvalno pred Vaim oima. Za mene je to, u poredjenju sa ranijim verzijama GPSS-a koje su radile pod DOS-om, bez ovakvih ili slinih animacija, bio izvanredan doivljaj! Tu, naravno, ne mislim na estetsku stranu, nego na isto praktini aspekt: naime, Vi na taj nain pratite kako se razvija simulacioni eksperiment, sistem je doslovno "iv" pod Vaim rukama i Vi moete po potrebi, a putem inetraktivnihg komandi razvojnog simulacionog opkruenja GPSS World, da utiete na tok izvravanja simulacije, odnosno rad simuliranog sistema. Treba napomenuti jo i to da je Plot Window samo jedan od mnogobrojnih okvira za dina-miko praenje toka simulacije u razvojnom okruenju GPSS World. Sa ostalim mogunosti-ma za Va budui rad, upoznajte se u referentnom priruniku i uputstvu za uenje koje ete uzeti sa pomenutog sajta na Internetu.

  • Slika 9: Krajnji izgled okvira za iscrtavanje grafika duine reda ekanja pred jednim bankomatom VIHOR u zavisnosti od vremena

    Slika 10: Krajnji izgled okvira za iscrtavanje grafika duine jedinstvenog reda ekanja pred dva bankomata POVETARAC u zavisnosti od vremena

  • 8. Umesto zakljuka Nadam se da Vam se dopao ovaj tekst o simulaciji diskretnih sistema i razvojnom simulacio-nom okruenju GPSS World. On predstavlja pokuaj da se, na jednom mestu, daju minimalne teorijske osnove za izradu simulacionih modela i analizu rezultata izvrenih eksperimenata. Pored toga, predstavljen je i jedan od dostupnih alata, koji se moe besplatno uzeti sa Interneta i koristiti, ne samo kao sredstvo za prvo upoznavanje sa raunarskom simulacijom, ve i za izradu sasvim ozbiljnih programa-simulatora. Raunarska simulacija ima mnogo primena, kako u profesionalnom, tako i u svakodnevnom ivotu. Moda ete ba Vi reiti neko od pitanja unapredjivanja organizacije rada Vaeg preduzea ili radionice, ili neki sasvim drugi problem, pomou simulacionog modela koji ete uraditi koristei tehniku koju smo Vam prikazali. Voleo bih da nam piete o svojim iskustvima u radu sa razvojnim simulacionim okruenjem GPSS World. Tako ete u stvari Vi dati pravi zakljuak ovom naem malom prilogu o rau-narskoj simulaciji. elim Vam puno uspeha u radu!