MODELING AND SIMULATION


- Research, development, implementation and teaching at
  Electrotechnical faculty of University of Zagreb

For a period of almost two decades at Electrotechnical faculty of University of Zagreb (Elektrotehnicki fakultet Zagreb) an work coordinated by the author is going on in the field of Modeling and Simulation using digital computers. That work includes research, development and implementation of Simulation methods and computer simulation languages, as well as teaching. Approaches to modeling and simulation were developed, terminology accepted etc. Present article is a general review of the mentioned activities. More details could be found in other works coming from Elektrotehnical faculty or connected with it.

Keywords: Modeling, Simulation using digital computers

Manuscript written in 1991, last revised Feb-22-1995.


				        Prof. Dr. Gabro Smiljanic
				        Elektrotehnicki fakultet Zagreb
				        Unska ulica 3
© Copyright Gabro Smiljanic 1991-1996. All rights reserved.

UVOD

Modeliranje i simuliranje sistema kao eksperimentalnu istrazivacku tehniku, vezanu uz upotrebu digitalnih racunala, autor ovog rada predaje vec 18 godina na Elektrotehnickom fakultetu u Zagrebu. Vjerovatno nigdje u nasoj zemlji ne postoji nastava, razvoj i istrazivanja ovog podrucja tako dugo i u takvom opsegu kao na Elektrotehnickom fakultetu u Zagrebu. Na tom podrucju napravljen je veliki broj radova koji su objavljeni, te diplomskih, magistarskih i doktorskih radova. Istodobno gotovo sve stampane edicije iz podrucja modeliranja i simuliranja objavljene na nasem jeziku vezane su uz spomenuti rad. Iz svega toga razvio se tokom vremena jedan pristup k modeliranju i simuliranju, zatim definicije pojmova i terminologija. Sve se to zeli na jedan pregledan nacin prikazati u ovom clanku. Vise pojedinosti o svemu tome moze se dobiti iz radova koji su citirani na kraju, a vezani su uz spomenuti rad. Zbog svega toga moze se ocekivati da bi i ovaj clanak i s njim povezani radovi mogao biti zanimljiv svima onima koji su zainteresirani za modeliranje bilo uz upotrebu digitalnih racunala bilo na neki drugi nacin.

Kad je u pitanju sama nastava onda se kao cilj te nastave postavljaju dva osnovna zadatka. Jedan je da se dade opcenit pregled podrucja modeliranja i simuliranja sistema s racunalima ili bez njih, kako bi se dobio cjelovit pregled toga u svakom pogledu veoma sarolikog podrucja rada i istrazivanja. Drugi zadatak se sastoji u tome da se nesto podrobnije prikazu specificnosti upotrebe racunala u modeliranju i simuliranju i posebno kompjuterskih simulacijskih jezika, buduci da su upravo oni dali znacajan poticaj razvoju modeliranja i simuliranja.

Modeliranje i simuliranje je toliko saroliko u svakom pogledu, pa postoji mnostvo veoma razlicitih metoda i pristupa i oni se najcesce razmatraju parcijalno, odnosno kao specificni slucajevi ili, eventualno, kao uza ili nesto sira podrucja modeliranja i simuliranja. Nazivlje koje se pri tome upotrebljava i definicije pojmova su veoma saroliki i neujednaceni. U nastavi na Elektrotehnickom fakultetu u Zagrebu, a i u ovom radu nastoji se dati cjelovit prikaz podrucja, pristup i prihvacena terminologija, a zatim se nesto podrobnije prikazuje upotreba digitalnih racunala i posebno upotreba specijaliziranih simulacijskih jezika.


1. SISTEM I NJEGOV MODEL

1.1. Definicije sistema i njegova modela

Osnovni cilj modeliranja i simuliranja sastoji se u tome da se podaci o ponasanju nekog sistema dobiju ne proucavanjem samog sistema, nego se ponasanje sistema proucava tako da se napravi (kreira) model, pa se, zatim, eksperimentiranjem na takvom modelu dolazi do saznanja o ponasanju postojeceg ili nepostojeceg sistema. Prema tome situacija je onakva kako je prikazano na Sl.1.
slika 1.
Sl. 1 Sistem i njegov model koji se (eventualno) unosi u racunalo
Model moze biti takav da se on rjesava tj. da se dobiju odgovori na postavljena pitanja, tako da se on unese u digitalno racunalo, pa se zatim eksperimentira s modelom unesenim u digitalno racunalo. No modeli ne moraju biti takvi da se s njima eksperimentira bas u digitalnim racunalima. Postoji i niz drugih nacina da se eksperimentira s modelima bez upotrebe digitalnih racunala. Zbog toga je na slici veza izmedju modela i racunala oznacena crtkano. No, kako je receno, upravo je upotreba digitalnih racunala dala veliki poticaj razvoju modeliranja i simuliranja, pa je takav nacin danas dominantan.

Razmotrimo sada sto je to sistem, a sto njegov model. Od mnostva razlicitih definicija, ili, bolje bi bilo reci, opisa, izdvojimo ove:

"Sistem je zbir elemenata slozenih u odredjenom obliku i usmjerenih k nekom cilju ili svrsi."

"Model je prikaz bitnih aspekata nekog stvarnog sistema (ili sistema koji ce se sagraditi) koji reprezentira osobine toga sistema u upotrebivom obliku."
Kako je receno to su samo primjeri opisa onog sto se podrazumijeva pod "sistemom" odnosno njegovim "modelom". Naime sistemi mogu biti veoma razliciti, jer sistemi postoje u razlicitim podrucjima ljudske djelatnosti, a i unutar istog podrucja postoje razliciti sistemi, zatim razlicitost ciljeva koji se s njima zele postici itd. Ukratko postoje nebrojene mogucnosti varijacija. Slicno je i sa modelima. I oni mogu biti razliciti i za jedan postojeci sistem, jer postoje razlicitosti ciljeva koji se zele ostvariti eksperimentiranjem na modelu, razlicitost pristupa k modeliranju, razlicitost sredstava koja se mogu upotrebljavati za izvodjenje modeliranja i simuliranja, razlicitost znanja modelara itd. Dakako mogucnosti varijacija za razlicite sisteme su jos vece. Kako to izgleda pokazati ce jedan primjer. Jedna strucna organizacija koja se bavi modeliranjem i simuliranjem raspisala je natjecaj za najbolju definiciju sto je to "sistem" i sto je to "model". Za svaki od tih pojmova dobiveno je po nekoliko stotina odgovora koji dobro opisuju sto je to sistem i sto je to model, tako da se mogu upotrebljavati.

Ako se zeli istrazivati ponasanje nekog sistema na njegovu modelu, onda prvo sto treba uciniti jest definirati pitanja na koja se trazi odgovor simuliranjem na modelu. Buduci da pitanja mogu biti veoma razlicita, onda i modeli mogu biti razliciti iako se radi o istom sistemu. Pri tome je bitno da se u model ukljuce samo oni aspekti sistema koji su bitni za dobivanje trazenih odgovora na postavljena pitanja. Svi ostali aspekti se zanemaruju kolikogod je to moguce, kako bi model bio sto jednostavniji i sto lakse rjesiv. Naime, modeliranje i simuliranje se najcesce upotrebljava za proucavanje slozenih sistema, pa je bitno da se iskljuce svi oni elementi koji cine model slozenijim, a ne doprinose znacajnije kvaliteti dobivenih odgovora. Ako bi se napr. proucavao prolazak automobila kroz raskrsce, onda bi bitni elementi automobila kao sistema za dobivanje odgovora na postavljena pitanja bili ubrzanje, kocenje, brzina reakcije vozaca i slicno. Vibracije, potrosnja guma, vrsta motora, udobnost sjedista i slicni elementi igraju zanemarivu ulogu, pa se ne moraju ukljuciti u model. Ako bi se trazili odgovori na druga pitanja napr. ekonomicnost voznje ili komfor putnika morali bi se u model ukljuciti sasvim razliciti elementi. Sto ce to biti i u kojoj mjeri ovisi, dakako, o modelaru i njegovim procjenama.

1.2. Razlozi za pravljenje modela i simulacije

Ocito je da sisteme i njihovo ponasanje treba proucavati ako se zeli poboljsati njihovo funkcioniranje. U tu svrhu postoji jedna posebna strucna disciplina koja se naziva sistemskim inzenjerstvom (system engineering). No modeliranje i simuliranje nije niposto jedini nacin kako se mogu proucavati sistemi. Postoji vise razlicitih nacina za proucavanje sistema. Razmotriti ceme neke od njih, ali prije recimo nesto o realizmu (adekvatnosti) modela. Najvaznija stvar za svaki simulacioni eksperiment jest da se od njega dobiju rezultati sto slicniji onima koji bi se dobili od samog (realnog) sistema. Mogle bi se u krajnjem slucaju prihvatiti i pretpostavke koje nisu sasvim tocne. Vazno je da se dobiju rezultati onakvi kakvi bi se dobili od samog sistema ili barem priblizno takvi. Procjena kvalitete rezultata je najcesce subjektivna. Osnovni kriterij za tu procjenu bi mogao biti to da se pomocu modeliranja i simuliranja dobiju rezultati bolji nego uz druge nacine proucavanja sistema, dakako uz razumne troskove simulacije.

Za proucavanje sistema postoji vise mogucnosti. Navedimo neke od njih:

Jedan od nacina proucavanja sistema je eksperimentiranje na samom sistemu. I to se ponekad cini, ali treba odmah reci dosta rijetko, jer je takav nacin veoma neprikladan. Kao prvo ocekuje se da realni sistem vec postoji. Eksperimentiranje na postojecem realnom sistemu, dakako, remeti normalan rad samog sistema, pa je takvo eksperimentiranje veoma skupo. Najbolje to pokazuje eksperimentiranje s privrednim sistemom koje se je provodilo u nekim drzavama, ili eksperimentiranje s gradskim saobracajem, koje moze dovesti do kaosa. S druge strane, ako realni sistem jos ne postoji nego se tek kani sagraditi, onda se ne mogu razmatrati razlicite varijante rjesenja sistema koji se kani graditi.

Drugi nacin za proucavanje ponasanja sistema jest analiza sistema "na papiru". Nakon sto se sakupe svi moguci podaci o istim ili slicnim sistemima razmatraju se razlicite mogucnosti na razlicite nacine. Najprije se, dakako, formiraju odgovarajuce grupe strucnjaka, ovisno o karakteru posla (sistemskih inzenjera), a zatim oni pokusavaju naci ne samo rjesenje, nego i nacin kao ce se problem rjesavati. Metode za rjesavanje pojedinih sistema su najcesce specificne za svaki konkretni sistem, iako se mogu koristiti i raniji rezultati. Ovakav nacin proucavanja sistema je veoma cest i daje dosta dobre rezultate, te se i dosta upotrebljava.

Daljni nacin proucavanja sistema je matematicka analiza rada sistema. Takav nacin se takodjer cesto upotrebljava i daje dosta dobre rezultate, ako sistemi i njihov rad nisu suvise slozeni. Ponekad se i slozeni sistemi mogu analizirati na takav nacin, a rjesenja koja se dobiju mogu biti veoma korisna, jer su opcenita, a ne parcijalna kao ona sto se dobiju modeliranjem i simuliranjem. Zbog toga je dobro koristiti takvo matematicko modeliranje uvjek kad se sistem moze s dovoljno realizma prikazati matematickim metodama. Kod slozenih sistema to najcesce nije moguce. Naime, ako se slozeni sistem zeli prikazati s dovoljno realizma, a ne na idealizirani nacin, tada se pri rjesavanju zapadne u nepremostive matematicke teskoce, pa se ne moze doci do odgovarajucih rjesenja. Upravo ovaj razlog je dao znacajan poticaj razvoju simuliranja s racunalima. Postoji, dakako, i mogucnost da se sistem pretjerano idealizira, pa se onda mogu dobiti elegantna matematicka rjesenja, ali dosta beskorisna, jer ne predstavljaju dovoljno realno sistem koji se analizira. Dakako dobri znalci matematike su skloni ovakvom nacinu analize sistema.

Daljnja alternativa je, dakako, modeliranje i simuliranje rada sistema uz upotrebu digitalnih racunala ili bez njih. Tom eksperimentalnom tehnikom mogu se dobiti rezultati koji su za praksu veoma korisni, iako nisu opceniti, nego parcijalni. Osnovna prednost ove metode jest njezin realizam.

Treba naglasiti da sistemi mogu biti realni tj. oni koji vec postoje, pa se pokusavaju pronaci nacini za poboljsavanje njihova rada i hipotetski tj. oni koji se tek kane sagraditi, pa se modeliranjem i simuliranjem (ili na neki drugi nacin) razmatraju alternative za konstrukciju sistema (system design). U ovom slucaju se pretpostavlja da ce realni sistem, kad se sagradi, u osnovi biti upravo onakav kakva je najbolja varijanta dobivena modelom. Naprotiv kod postojecih sistema model reprezentira samo neke aspekte realnog sistema i to, dakako, one koji su bitni za dobivanje odgovora na postavljena pitanja.

2. SIMULIRANJE

Model najcesce prikazuje staticko stanje sistema, odnosno stanje u jednom momentu. Stanje sistema se prikazuje stanjem bitnih velicina sistema (parametara). Pod simuliranjem se pretpostavlja pracenje stanja sistema u vremenu. To znaci da treba napraviti vremenski slijed, odnosno kronologiju stanja sistema. Takva kronologija stanja sistema se moze napraviti na bilo koji nacin. Tako se napr. u ekonomiji cesto upotrebljavaju jednostavni modeli ekonomskih sistema, kojima se stanje u pojedinim momentima izracunava "rucno" na papiru ili pomocu kalkulatora, koristeci svega nekoliko osnovnih velicina. Dapace, ponekad, se mogu upotrebljavati i jednostavne graficke metode za pracenje ponasanja sistema u vremenu, pa se i to moze smatrati simuliranjem. No ocito je da su digitalna racunala, zahvaljujuci njihovoj moci i brzini obrade podataka, omogucila simuliranje na nacin, koji je bio neizvediv na bilo koji drugi nacin. Stoga su ona dala snazan poticaj razvoju modeliranja i simuliranja, pa su modeli koji se formuliraju i rjesavaju racunarskim metodama posebna moderna kategorija modeliranja i simuliranja. Potrebno je naglasiti da je modeliranje i simuliranje eksperimentalna tehnika s tim da se eksperimentiranje vrsi na modelu. Mi cemo poseban naglasak stavljati upravo na upotrebu digitalnih racunala u eksperimentiranje s modelima.
	 ^ stanje (parametara)
	 | sistema                 __
	 |____________            /  \
	 |           .\          /    \   
	 |           . \        /      \     _   _____________
	 |           .  \      /        \   / \_/
	 |           .   \    /          \_/
	 |           .    \__/
	 |           .
	 |           .
	 |           .                                vrijeme
	-+----------------------------------------------------->
	 |            __________________________________
	 |           |\
	 |___________| stres nametnut na sistem
	 |

Sl. 2 Ponasanje sistema prikazanog modelom nakon sto se na sistem
      nametne neki stres
Kako se najcesce izvodi simuliranje prikazano je na Sl.2. Na pocetku simuliranja obicno se pretpostavi da se sistem nalazi u nekom zeljenom i stabilnom stanju tj. onakvom u kakvom bi on trebao biti. U nekom momentu simuliranog vremena nametne se na sistem odnosno njegov model neki stres, pa se zatim promatra kako ce se sistem ponasati. Stres za ekonomski sistem moze biti napr. promjena cijena nafte ili kamatnih stopa, promjena porezne politike, povecanje potraznje na trzistu itd. Stres za sistem ovjesenja automobilskog kotaca moze biti nailazak na "udarnu rupu" na cesti, a za sistem letilica ili plovila promjena smjera kretanja i slicno. Takvi stresovi mogu dovesti do oscilacija i nestabilnog rada sistema ili do stabiliziranja na nezeljenom nivou. Obicno se zeli stabilan rad sistema, a kod ekonomskih sistema stabilan rad uz maksimalni porast dohotka i drugih pozitivnih elemenata. Eksperimentiranjem na modelu traze se takvi parametri sistema koji bi omogucili najbolji rad, odnosno najblizi zeljenom.

Navedimo sada kao ilustraciju jednu od mnogobrojnih definicija simulacije:

"Simulacija je tehnika rjesavanja problema. To je oblik imitacije u kojem je problem koji treba biti rjesen zamijenjen modelom. Model predstavlja drugi problem, ali takav da se on lakse rijesi."

3. RAZLICITE VRSTE MODELA

Iako danas kompjuterski modeli cine najvaznije podrucje u modeliranju i simuliranju, niposto se ne bi moglo reci da su oni jedina vrsta modela. Pravljenje modela pocelo je mnogo ranije od pojave digitalnih racunala. Neki kazu da je prvi model nastao jos u pretpovjesti kad je neka djevojcica napravila prvu lutkicu, koja je njoj kao modelaru reprezentirala neke aspekte sistema nazvanog pravo zivo dijete. Modeli bi se mogli podijeliti u dvije osnovne skupine: Ono osnovno sto se moze reci za fizicke modele je da se stvarni sistem proucava na nekom fizickom modelu za koji vrijede iste zakonitosti, kao i za stvarni sistem, bilo onaj koji vec postoji ili onaj koji se tek kani sagraditi. Tako se napr. grade modeli za mostove i zgrade koji se kane graditi. Veoma su poznati modeli aviona kojima se na smanjenom modelu u odgovarajucim tunelima proucavaju letalacka svojstva aviona. Slicno se proucavaju plovna svojstva brodova u posebnim bazenima, a grade se i drugi analogoni, nazvani tako zbog analognog nacina ponasanja, odnosno replika. Osim takvih smanjenih fizickih modela postoji i druga vrsta modela, kojom se na jednom mediju zbog analognog ponasanja ispituju sistemi iz drugog medija. Klasican primjer takvih medija je primjer vec spomenutog ovjesenja automobilskog kotaca. Umjesto da se izravno proucava ponasanje automobilskog kotaca na samom sistemu, sto bi bilo vrlo neprakticno, taj se sistem proucava pomocu odgovarajuceg elektricnog modela, koji se ponasa analogno. Da se ponasa analogno pokazuje se time da se ponasanje mehanickog sistema i njegovog elektricnog modela moze opisati istovjetnom diferencijalnom jednadzbom. Dakako, upotrebljavati analogije i analogone i onda kad ne vrijede iste zakonitosti je cista besmislica, premda se i to ponekad cini.

Drugu kategoriju cine modeli koji se mogu prikazati pomocu nekakvih simbola. Veoma cesto su to matematicki simboli, bez obzira na to da li ce se model rjesavati matematicki ili na neki drugi nacin. Zbog toga se ponekad poistovjecuju simbolicki modeli s matematickim. No to nije u redu, jer matematicki prikazani modeli cine samo dio simbolickih modela. Drugu veoma znacajnu kategoriju simbolickih modela cine modeli formulirani u obliku naredbi za digitalno racunalo, a koji ne moraju prije toga biti prikazani pomocu matematickih izraza. Dakako simbolicki modeli se mogu prikazivati i na druge nacine napr. pomocu dijagrama toka operacija, pomocu crteza itd. Za rjesavanje takvih simbolickih modela, odnosno za dobivanje dogovora na prethodno postavljena pitanja o sistemu, moze se upotrijebiti digitalno racunalo, ali ne mora, jer se simuliranje moze izvesti i na drugi nacin. Ranije prikazani ekonomski modeli pokazuju kako je to moguce. Prikazimo jos jedan primjer. Model pomocu kojeg se simulira spustanje sonde na mjesecevu povrsinu moze se rijesiti i pomocu kalkulatora, pa je taj model posluzio firmi koja proizvodi kalkulatore sa pokaze sto se sve moze napraviti s njihovim kalkulatorima.

Kao zakljucak ovog razmatranja, a i onog sto je receno ranije, moglo bi se reci da provedena razmatranja vrijede podjednako bez obzira na to da li ce se rjesavanje modela upotrijebiti digitalna racunala ili ne. Prijedjimo sada na razmatranje upotrebe bas digitalnih racunala u formuliranju modela i izvodjenju simulacije.

4. UPOTREBA DIGITALNIH RACUNALA U MODELIRANJU I SIMULIRANJU

Kao sto je vec receno digitalna racunala su, zahvaljujuci njihovoj velikoj moci obrade podataka i brzini rada, dala znacajan poticaj razvoju modeliranja i simuliranja. Pri tome bi se upotreba digitalnih racunala mogla podijeliti u dvije osnovne kategorije: Ako se za modeliranje i simuliranje uz racunala upotrebljavaju specijalizirani simulacijski jezici onda oni omogucavaju formulaciju modela uz upotrebu odgovarajucih simbola tih jezika (veoma razlicitih), zatim unos takvih modela u digitalno racunalo i, dakako, samo izvodjenje simulacije u racunalu. Ako se koriste simulacijski jezici onda se pomocu njihovih simbola moze na relativno jednostavan, moglo bi se reci "tehnicki" nacin formulirati model. To znaci da treba savladati upotrebu nekog takvog simulacijskog jezika, a zatim se pomocu njega moze napraviti i model odgovarajuceg sistema. Kad se kaze da se model moze napraviti na relativno jednostavan "tehnicki" nacin, onda se time misli da treba uloziti vecu ili manju kolicinu rada na savladavanje simulacijskog jezika i proucavanje sistema, ali postoji velika vjerojatnost da ce se na kraju napraviti odgovarajuci model koji ce davati dobre rezultate. To, dakako, uz uvjet da je karakter simulacijskog jezika prilagodjen karakteru sistema ciji se model pravi, odnosno da su blokovi, naredbe i ostali elementi simulacijskog jezika takvi da se pomocu njih mogu na manje-vise standardan nacin pretstaviti elementi sistema ciji se model pravi. Simulacijski jezici se zbog toga mogu ukljuciti u kategoriju problemski orjentiranih jezika visokog nivoa. Naredbama takvih simulacijskih jezika mogu se izraziti relativno slozene situacije i aktivnosti u sistemu na relativno jednostavan nacin, pa to pri formuliranju modela uveliko olaksava posao. No u sistemima ciji se modeli prave mogu postojati situacije koje se ne mogu bez daljnjeg prikazati takvim naredbama visokog nivoa, iako takve naredbe najcesce imaju odredjene mogucnosti za prilagodjavanje konkretnom sistemu. Zbog toga neki simulacijski jezici imaju jos i dodatne elemente nizeg ranga ( napr. naredbe tipa fortrana ili nekog drugog programskog jezika opce namjene). To daje mogucnost modelaru da neke specificnosti sistema koji modelira izrazi pomocu elasticnijeg nizeg programskog jezika.

Osim takvog lakseg formuliranja modela simulacijski jezici omogucavaju unosenje modela u digitalno racunalo na relativno jednostavan i standardan nacin. Isto tako simulacijski jezici omogucavaju da se jednostavno promijene parametri modela, te se sa svakom novom grupom parametara moze izvesti nova "runda" simuliranja. Na to se zapravo svodi eksperimentiranje na modelu, dok se ne dobiju zadovoljavajuci rezultati. Upotreba specijaliziranih simulacijskih jezika dominira u istrazivanjima, modificiranjima i nastavi na Elektrotehnickom fakultetu u Zagrebu.

Drugi nacin upotrebe digitalnih racunala u simuliranju je onaj kad se racunalo, odnosno neki programski jezik, upotrebljava samo za rjesavanje modela odnosno za izvodjenje simulacije, a ne upotrebljava se za formuliranje modela. Model se tada formulira na neki drugi nacin, a obicno se radi o specificnim modelima, koji nemaju siru primjenu. Formuliranje takvih modela je dakako neusporedivo teze i niposto se ne bi moglo svesti na normalan "tehnicki" posao, nego na kreativan rad. Zato bismo formuliranje takvih modela radije nazvali "kreiranjem" modela, koji se formuliraju na specifican nacin, pa cesto sadrze novosti. Pri tome postoji dosta velika vjerojatnost da se dobar model ni ne moze napraviti ili da se napravi ali nije dovoljno realistican. Dakako, pri ovakvom kreiranju modela, kao i u drugim slucajevima, prije pocetka rada na modelu treba najprije skupiti sve moguce podatke o sistemu ili o slicnim sistemima. Te podatke treba analizirati i na neki specifican nacin napraviti model. Pri takvom pravljenju modela najvaznija je kreativnost i znanje modelara, koji, najcesce, mora pronaci neki specifican nacin da napravi model. Za to je osim kreativnosti potrebno iskustvo, znanje, sposobnost dobrog procjenjivanja (heuristika) itd. Kad je model jednom formuliran digitalno racunalo se moze upotrijebiti za rjesenje modela, odnosno izvodjenje simulacije. Pri tome se najcesce upotrebljava neki od programskih jezika opce namjene. Taj postupak najcesce nema znacajnijih simulacijskih osobina i slican je upotrebi digitalnih racunala za rjesavanje drugih vrsta problema. Stoga se ovdje nece detaljnije razmatrati.

5. SIMULACIJSKI JEZICI I NACINI NJIHOVA RADA

Sistemi koji se proucavaju mogu se podijeliti u dvije osnovne grupe: Za kontinuirane sisteme je karakteristicno da kod njih do promjene stanja sistema kao cjeline ili samo nekih njegovih elemenata moze doci u bilo kojem momentu, a promjene do kojih dolazi su "glatke" (blage, neskokovite). Treba naglasiti da se govori o sistemu, a ne o njegovu modelu.

Diskretni sistemi su oni kod kojih do promjene stanja sistema moze doci samo u tocno odredjenim vremenskim (diskretnim) momentima ili se barem pretpostavlja da je tako. U vremenskom periodu izmedju tih diskretnih momenata pretpostavlja se da nema promjena. Cinjenica da kod kontinuiranih sistema moze doci do promjene u bilo kojem momentu, a kod diskretnih samo u tocno odredjenim diskretnim momentima odrazava se u prilicnoj mjeri na nacin kako se izvodi simulacija na digitalnom racunalu uz upotrebu simulacijskih jezika.

5.1. Simuliranje kontinuiranih sistema

Razmotrimo najprije kontinuirane sisteme. Situacija je prikazana na sl.3. No prije razmatranja sl.3 recimo jos i to da se za simuliranje kontinuiranih sistema upotrebljavaju i analogna racunala. Ranije su se upotrebljavala i vise, sve dok digitalna racunala nisu prevladala svojom rasprostranjenoscu i drugim osobinama. Vratimo se sada slici 3. Stanje kontinuiranog sistema se moze, kako je receno,
slika 3.
Sl. 3 Stanje kontinuiranog sistema ili pojedinih njegovih parametara
      i simuliranje toga stanja na analognom i digitalnom racunalu
promijeniti u svakom momentu, a vrijeme u realnom sistemu tece, dakako, stalno, odnosno kontinuirano. To je na slici prikazano najvisom krivuljom. Ako se kontinuirani sistem simulira analognim racunalom ili uopce analognim sklopovima, onda se i stanje sistema prikazano modelom prati kontinuirano, a i simulirano vrijeme tece kontinuirano. Naprotiv, ako se stanje sistema prati na digitalnom racunalu, onda se stanje sistema pomocu modela izracunava, a to treba naglasiti, u odredjenim diskretnim koracima, iako se promjene u sistemu mogu dogoditi bilo kada. Simulacijski programski jezici omogucavaju korisnicima da, u skladu sa sistemom koji se simulira, odabere taj korak, odnosno izracunavanja stanja sistema na vremenskoj skali simuliranog vremena dovoljno gusto, da ne bi na modelu promakla nikakva promjena u sistemu, koja bi se mogla dogoditi izmedju dvaju takvih koraka. Da se to ne bi dogodilo korisnici, ponekad, radi sigurnosti skracuju taj korak pretjerano napr. 10, 100 ili vise puta, pa se za pracenje stanja sistema pomocu modela trosi 10, 100 ili vise puta vremena racunala. Time se strahovito povecavaju troskovi simulacije, rezultati su manje pregledni, jer su zatrpani nekorisnim podacima ("informacijsko smece"), a ne dobiva se nikakva poboljsana informacija o sistemu.

Kao komentar na navedeno moglo bi se reci da su analogna racunala i uopce analogne metode prirodniji nacin za simuliranje kontinuiranih sistema i procesa koji se u njima odigravaju, jer kod njih i simulirano vrijeme tece kontinuirano kao i u realnom sistemu, dok se pri simuliranju s digitalnim racunalom simulirano vrijeme pomice u koracima. No, s druge strane analogna racunala imaju razlicitih nedostataka i ogranicenja. Tako je tocnost analognih racunala ogranicena kako zbog ogranicene tocnosti elektronickih komponenti, tako i zbog nacina realizacije matematickih operacija s analognim sklopovima. Digitalna racunala mogu povecati tocnost uz odredjenu cijenu, koja se placa povecanjem duzine upotrijebljene rijeci. Dalje analogna racunala nemaju memorije, ali rade paralelno, a ne sekvencijalno itd. Dakle postoje velike razlike, ali odlucujucu ulogu igra rasprostranjenost digitalnih racunala, koja se nalaze u svakom kutu, dok su analogna rijetkost, a i broj korisnika im je mnogo manji.

5.2. Simulacijski jezici za kontinuirane sisteme

Pogledajmo sada koji se simulacijski jezici za kontinuirane sisteme i uopce nacini simuliranja upotrebljavaju na Elektrotehnickom fakultetu u Zagrebu. Za simuliranje kontinuiranih sistema i procesa koji se u njima odigravaju u nastavi i istrazivanjima upotrebljavaju se:
a) analogna i hibridna racunala
b) od jezika za razlicita digitalna racunala koriste se:
- CSMP 1130 (IBM)
- CSMP 360 (IBM)
- ANSIR (Partner)
- MIMIC (SRCE)
O upotrebi analognih racunala za simuliranje kontinuiranih procesa vec je dosta receno. Ono sto se ovdje moze jos dodati je mozda samo to da se uz analogna racunala upotrebljavaju i hibridna tj. analogna racunala u zajednici sa digitalnim. To je inace dosta rijedak slucaj i pretstavlja donekle specificnost Elektrotehnickog fakulteta u Zagrebu, jer se u nekim organizacionim jedinicama podjednako poznaje upotreba analognih i digitalnih racunala, sto je danas dosta rijetko, jer, dakako, posvuda, pa i u spomenutim jedinicama prevladava upotreba digitalnih racunala. Ipak, upotreba analognih racunala se ne smije odbaciti, ukoliko ona postoje, a ujedno postoji i znanje o njihovoj upotrebi. Naime zajednicka upotreba analognih i digitalnih racunala za simuliranje omogucava da se dobiju prednosti i digitalnih racunala, ali i analognih. Koje su prednosti jednih i drugih vec je bilo receno.

Kontinuirani sistemi su se simulirali pomocu analognih racunala i uopce analogim metodama i onda kad jos nije ni bilo digitalnih racunala, a i nakon njihove pojave nastavilo se s upotrebom i razvojem simuliranja na analogni nacin. No digitalna racunala su postepeno preuzimala prevlast na svim podrucjima, pa tako i na podrucju simuliranja kontinuiranih procesa. Tako je razvijen i u upotrebi velik broj simulacijskih jezika za simulaciju kontinuiranih procesa. Velik, broj simulacijskih jezika se pokusalo uvesti u nastavu i istrazivanja i na Elektrotehnickom fakultetu u Zagrebu. Mozda bi bolje bilo reci prevelik broj, tako da je svaki istrazivac pokusao uvesti barem jedan jezik. A kad je tako onda se ni ljudi ni racunala i njihovi jezici medjusobno ne razumiju, pa su ti jezici bili od male koristi. Da bi se stanje donekle sredilo izabrani su za osnovnu upotrebu jezici navedeni gore pod b), kao karakteriticni pretstavnici odredjenih kategorija simulacijskih jezika. Svi drugi jezici su samo za neku specificnu upotrebu. Izbor jezika i racunala nije, dakako, iskljucivo rezultat zelje, nego i mogucnosti koje su postojale tokom vremena.

Prvi simulacijski jezici za kontinuirane sisteme ostvareni na digitalnim racunalima, najcesce su pokusali imitirati rad analognog racunala na digitalnom, pa su se i zvali analogno-digitalni simulatori. Tipican pretstavnik te kategorije jezika je CSMP 1130 (Continous System Modeling Program). Takav pristup tj. da se novim sredstvima pokusaju rijesiti stari problemi na isti nacin kao i sa starim sredstvima je dosta cest u zivotu. Tako su napr. prvi automobili nastali tako da su se iz kocija ispregli konji, a upregao motor. Sve ostalo je ostalo manje-vise isto. Danasnji automobili sasvim drugacije izgledaju. Slicno tome prvi integrirani sklopovi su izgledali kao da su funkcije realizirane s "diskretnim" elektronickim komponentama. Kao i automobili tako i integrirani sklopovi su danas sasvim razliciti, jer ne ostvaruju samo ono sto se moglo i prijasnjim tehnologijama, nego se iskoristavaju dodatne nove mogucnosti, koje omogucuju samo nove tehnologije. Ovo je trebalo naglasiti, jer se istrazivaci koji pokrecu razvoj neprekidno sudaraju s pokusajima da se s novim sredstvima radi samo ono sto se radilo i sa starima, a to nije nista drugo nego kocenje tehnoloskog razvoja, odnosno tehnoloski konzervativizam.

Dakle simulacijski jezik CSMP za racunalo IBM 1130 jest tipican pretstavnik simulacijskih jezika koji imitiraju rad analognog racunala. Dodatne mogucnosti koje taj jezik pruza su malene. Usprkos svemu taj se je jezik upotrebljavao vjerovatno najvise, zahvaljujuci dugogodisnjoj raspolozivosti skromnog racunala IBM 1130. Stovise kad je to racunalo otislo u Tehnicki muzej, zivot tog, ako ne bas simulacijskog jezika, a onda nacina simuliranja pokusalo se produziti implementacijom u osobno racunalo PARTNER, kad su takva racunala postala dostupna u velikom broju. Drugim rijecima simulacijski jezik ANSIR cini nasljednika CSMP 1130, a moze se izvoditi na skromnom domacem racunalu PARTNER. To je primjer da se znanju, kao svojevrsnom kapitalu, omoguci sto duza upotreba, koja donosi plodove.

Drugu kategoriju stvarnih simulacijskih jezika, a ne digitalno-analognih simulatora reprezentira IBM-ov simulacijski jezik CSMP 360. Taj jezik ima nove dodatne mogucnosti, ali zahtijeva i mocnije racunalo kao sto je IBM 360, a ne IBM 1130 ili PARTNER. Dodatne mogucnosti se sastoje u tome da postoje, osim onih simulacijskih funkcija koje imaju analogna racunala i digitalno-analogni simulatori, jos i dodatne naredbe tipa FORTRAN, kojima se simuliraju neke specificnosti u modelu koje se ne mogu pretstaviti osnovnim blokovima analognog racunala. Osim toga funkcije se pisu izravno kao simulacijske naredbe, a ne treba model prije toga prikazati pomocu funkcionalnih blokova, kao sto to treba za analogna racunala i digitalno-analogne simulatore.

Simulacijski jezik MIMIC se u pogledu nacina formuliranja modela nalazi negdje izmedju CSMP 1130 i CSMP 360. To znaci da se model moze formulirati pomocu blokova kao kod CSMP 1130, a zatim se pisu odgovarajuce naredbe. No model se moze formulirati i samo pomocu naredbi, a da se prethodno ne prikaze blokovima. Osim toga neke specificnosti u modelu korisnik moze izraziti u obliku naredbi tipa FORTRAN, pa time MIMIC slici na CSMP 360.

Nakon sto je prikazano stanje koje se je razvijalo desecima godina treba napraviti odredjeni komentar, koji, u nasem slucaju vrijedi za simulaciju kontinuiranih procesa, ali i za druge slicne upotrebe digitalnih racunala. Naime da bi se moglo simulirati kontinuirane sisteme potrebni su barem ovi elementi:

Ako je u pitanju duzi period vremena (ovdje 18 godina) onda promjene navedenih elemenata do kojih neizbjezno dolazi uveliko utjecu na mogucnost rada. Posebno se moze reci da je vijek trajanja racunala relativno kratak, ne toliko sto bi se racunalo istrosilo radi upotrebe, nego zbog njegova zastarjevanja, radi naglog razvoja tehnologije. Kao primjer moze se navesti spomenuto racunalo 1130, koje je odigralo pionirsku ulogu u uvodjenju simuliranja i drugih racunarskih aktivnosti kod nas, a imalo je memoriju od svega 16 k rijeci, a danas se memorije i osobnih racunala sastoje od Mega rijeci. Ovo je samo primjer, jer slicno i sa drugim elementima povezanim s racunalima. I nacini za formuliranje modela, odnosno jezici se donekle mijenjaju, odnosno poboljsavaju, ali tu promjene nisu tako radikalne, pa se nacini za formuliranje modela u osnovi trajniji, nego racunala na kojima se obavlja simuliranje. Dapace poznavanje odredjenog nacina za formuliranje modela pretstavlja odredjeni tehnicki kapital, koji se ne smije nepotrebno odbaciti, ukoliko poboljsanja nisu zaista drasticna. Zbog toga se nastoji produziti zivot jezika, odnosno nacina na koji se formuliraju modeli. Kako se to moze izvesti prikazano je na primjeru CSMP 1130, kojemu je u nekom obliku produzen zivot implementiranjem u racunalo PARTNER ( u medjuvremenu i to je racunalo zastarjelo!). Osnovni teret takvog prilagodjivanja metodologije simuliranja novim racunalima (hardveru) lezi, dakako, na prevodilackim programima. Kao sto cemo vidjeti situacija je veoma slicna i za simuliranje diskretnih sistema, a, dakako, i za druge slicne poslove.

5.3. Simuliranje diskretnih sistema kontinuiranim modelima

No prije toga razmotrimo mogucnost da se po prirodi diskretni sistemi simuliraju kao da su kontinuirani. Naime neki diskretni sistemi se mogu proucavati pomocu kontinuiranih modela ako se napravi tz. agregacija (zdruzivanje) pojedinih diskretnih dogadjaja. Tako je napr. svaka prodaja automobila ili njegova proizvodnja diskretan dogadjaj. Isto vrijedi i za stanove, kuce, televizore itd. No te se aktivnosti mogu prikazati tako da se dnevna ili tjedna proizvodnja prikazu kao zdruzena (agregirana) velicina (intenzitet prodaje ili proizvodnje). Nizom takvih podataka mogu se takve velicine prikazati kontinuiranom krivuljom napr. za 1 mjesec ili godinu, kao da je proces kontinuiran, te se kao takav i simulira. Odmah se, dakako, moze postaviti pitanje zasto se to tako radi i da li se to smije uciniti. Razloga zasto se to tako radi ima vise. Jedan, vrlo vazan, je da su tada modeli mnogo jednostavniji. Dalje za kontinuirane sisteme postoje razvijene i provjerene metode razvijene za druga podrucja, pa se one mogu koristiti. Posebno se primjenjuju metode analize sistema s povratnom vezom, koji mogu biti stabilni ili oscilirati. Takve metode najvise su razvijene i upotrebljavaju se u elektrotehnickim sistemima, a mogu se primjenjivati napr. u ekonomskim, bioloskim, medicinskim ili mehanickim. Odgovor na pitanje da li se diskretni sistemi smiju simulirati kao da su kontinuirani vec je dan ranije: u simuliranju se smije uciniti sve ono sto daje dobre rezultate tj. takve da se od modela dobiju isti ili slicni podaci kao sto se dobiju od samog sistema. Sve drugo je manje vazno. Drugacije receno sistem i njegov model moraju se jednako ponasati ako se gledaju "iz vana". Da li su mehanizmi ili logika koja dovodi do takvog ponasanja u sistemu i njegovu modelu isti manje je vazno.

5.4. Simuliranje diskretnih sistema

Pri simuliranju diskretnih sistema pretpostavlja se da se promjene u sistemu i u njegovu modelu (dogadjaji, engleski events) mogu dogoditi samo u tocno odredjenim momentima - (vremenskim tockama). Ako digitalno racunalo izracunava stanje sistema bas za te momente, onda su modelom obuhvacene sve promjene u sistemu, buduci da se izmedju tih momenata ne dogadjaju nikakve promjene. To je prikazano na sl. 4. Digitalno
	 ^  stanje parametara
	 |  sistema
	 |                                                  
	 |         o                                        
	 |         ^              o                         
	 |         |         o    ^                         
	 |         |    o    ^    |    o                    
	 |    o    |    ^    |    |    ^                    
	 |    ^    |    |    |    |    |    o               
	 |    |    |    |    |    |    |    ^    o          
	 |    |    |    |    |    |    |    |    ^    o     
	 |    |    |    |    |    |    |    |    |    ^    o
	 |    |    |    |    |    |    |    |    |    |    ^
	 |    |    |    |    |    |    |    |    |    |    |
	 |    |    |    |    |    |    |    |    |    |    |    vrijeme
	-+----+----+----+----+----+----+----+----+----+----+--------->
	 |      diskretni koraci u kojima se dogadjaju promjene u
	        sistemu i pomice sat simuliranog vremena u sistemu

Sl. 4 Kod diskretnog sistema promjene u sistemu se dogadjaju samo u
      diskretnim vremenskim tockama a u modelu se izracunava stanje
      sistema bas za te tocke
racunalo moze pri tome pomicati sat simuliranog vremena korak po korak izracunavajuci stanje sistema za svaki korak ili ne. U nekim simulacijskim modelima i jezicima pomice se sat simuliranog vremena, ali se ne izracunava stanje sistema za svaki takav korak, nego samo za onaj u kojem dolazi do promjene stanja sistema. Naime, simulacijski program nakon pomaka sata simuliranog vremena, najprije provjerava da li u tom casu dolazi do promjene stanja sistema, pa ako dolazi onda se izracunava to novo stanje sistema, a ako ne dolazi, onda se ne izracunava jer je ono ostalo nepromijenjeno. Na taj se nacin, dakako, postizu velike ustede u radu racunala, sto je posebno vazno, jer se za simuliranje diskretnih sistema najcesce upotrebljavaju mocna (i prema tome skupa) digitalna racunala. Onaj prvi nacin rada bi se mogao nazvati "korak po korak", a drugi "slijedeci dogadjaj". Ovi su nazivi, dakako, vezani za sat simuliranog vremena.

5.5. Simulacijski jezici upotrebljavani za diskretne sisteme

Ako je pri izboru simulacijskih jezika za kontinuirane sisteme postojala nedoumica koji od mnogobrojnih jezika odabrati, pri izboru simulacijskog jezika za diskretne sisteme toga uopce nije bilo. Izabran je simulacijski jezik GPSS (General Purpose Simulation System). Taj jezik toliko toga omogucava u simuliranju da se je, prema nekim autorima, u jednoj fazi razvoja upotrebljavao vise nego svi ostali simulacijski jezici zajedno, a takvih jezika, koliko je autoru poznato ima nekoliko stotina. Dakle oko izbora simulacijskog jezika, odnosno nacina kako se formuliraju modeli za diskretne sisteme nije bilo nikakvih dilema. Medjutim postojale su i jos uvijek postoje dileme na kojem realnom i dostupnom racunalu izvoditi simulacije. Originalna verzija GPSS napisana je za IBM racunala, a kasnije je samo za IBM racunala napisano barem 5 verzija, a mnogo drugih verzija napisano je za racunala drugih proizvodjaca. Te verzije su se donekle razlikovale u pojedinostima, posebno u pravopisu jezika, ali osnovni pristup je ostao manje-vise isti. Treba naglasiti da GPSS jezik pruza velike mogucnosti, ali i trazi mocna digitalna racunala. Najprije se je pokusalo raditi s IBM 360 verzijom, jer je ona u neku ruku originalna, a osim toga IBM je dominirao u racunarstvu, a i sada je jos uvijek dobrim dijelom tako. No na zalost racunalo IBM 360 je za veliki broj korisnika i na sirokom planu na ETF-u Zagreb bio nedostupan. ETF je prije nekoliko godina nabavio racunalo VAX 785, ali na njemu nije do sada uspjelo implementirati GPSS. Mala racunala PARTNER raspoloziva u vecem broju u odredjenoj fazi su omogucila veoma uspjesno simuliranje kontinuiranih sistema, ali su bila preslaba za GPSS. Pokusalo se implementirati reducirane verzije GPSS (tj. one sa smanjenim mogucnostima) na osobna IBM kompatibilna racunala. To je u nekoliko navrata uspjesno napravljeno, barem za skolsku primjenu, ali samo za mali broj pojedinacnih korisnika. Opce rjesenje za ETF zbog velikog broja korisnika jos za sada nije uspjelo naci (nakon 18 godina pokusavanja!). Na srecu Sveucilisni racunski centar SRCE usprkos svim problemima razlicite naravi omogucio je velikom broju korisnika da tokom niza godina koriste simulacijski jezik jezik GPSS u njegovoj UNIVAC verziji. Mozda ce ETF taj problem rijesiti nabavkom radnih stanica SPARC, koje su na putu. Sve ovo je navedeno zato da se jos jednom pokaze da postoji niz elemenata koji se moraju poklopiti da bi se moglo raditi u vecem opsegu na simuliranju (metoda formuliranja modela, odnosno jezik, raspolozivo racunalo, prevodilacki program, sto je vec bilo naglaseno, a osim toga odgovarajuce znanje ljudi, prirucnici za racunala i programe, knjige, skripta itd.). Sve to se s vremenom mijenja, pa se tesko postizu uvjeti u kojima je sve na svojem mjestu. To je vjerojatno razlog da se takvo slozenije simuliranje kod nas nije uspjelo rasplamsati na sirokoj osnovi kao drugdje u svijetu, iako postoje mnoga veoma dobra pojedinacna rjesenja. No pojedinacna rjesenja su kao iskra koja proleti i nestane. No na ETF-u se pokusalo ustaliti nacine za simuliranje za veliki broj korisnika, tokom dugog niza godina, postepeno uvodeci nove nacine. Sve to uz promjenu i ljudi i racunala i njihovih programa, knjiga, znanja itd. Zbog toga je dobrim dijelom i napisan ovaj clanak. Oni koji upotrebljavaju simuliranje za rjesenje jednog ili nekoliko specificnih problema, na jednom racunalu i s jednim simulacijskim jezikom itd. nemaju navedenih problema.

Pokazimo sada na najkraci moguci nacin kako radi simulacijski jezik GPSS. Osnovni elemenat tog jezika je tz. "transakcija", koja putuje od bloka do bloka. Blokovima se simuliraju odredjene aktivnosti kao sto je trosenje vremena (blok ADVANCE), stajanje u redu (blok QUEUE), preusmjeravanje transakcija na temelju nekog kriterija (blok TRANSFER). Transakcije se unose u model blokom GENERATE, a izvode iz modela blokom TERMINATE. Pomocu transakcija se u modelu prikazuju napr. klijenti koji dolaze u banke, kupac koji dolazi u samoposluzivanje, automobil koji dolazi na cestovno raskrsce, program koji trazi da bude izveden u procesoru ili zapisan u memoriju itd. Ulazak transakcija u model i zadrzavanje u pojedinim blokovima moze biti slucajno. Stajanje u redu i cekanje da transakcija udje u neki blok simulira se blokom QUEUE, a trosenje vremena za obavljanje posla na salteru u banci, benzinskoj crpki ili za obradu programa u procesoru, simulira se blokom ADVANCE. Pri tome i vrijeme generiranja novih transakcija moze biti slucajna velicina odredjena nekom raspodjelom, a isto tako trosenje vremena na salteru, crpki i slicno. Raspodjela se, dakako, izabire prema mjerenoj ili pretpostavljenoj raspodjeli u realnom sistemu. Vrijeme stajanja u redu kao i broj transakcija koje se nalaze u njemu ovise o situaciji. Nakon sto se veliki broj transakcija propusti da prodje kroz model o svemu se skuplja statistika, koja se nakon izvodjenja simulacije prezentira korisniku. Slucajne velicine su znacajno zastupljene u GPSS programima, pa generiranje slucajnih velicina na adekvatan nacin igra veliku ulogu. Pri tome slucajne velicine mogu imati jednoliku (uniformnu) raspodjelu ili neku drugu raspodjelu prikazanu matematickim izrazima (Gauss-ovu, Poissonovu i slicno) ili neku eksperimentalnu raspodjelu dobivenu mjerenjem, odnosno skupljanjem podataka iz realnog sistema. Veci broj generatora pseudoslucajnih brojeva ugradjen je u GPSS programe, a u nekim verzijama GPSS jezika ugradjene su najcesce sretane funkcije raspodjele. Eksperimentalno dobivene funkcije raspodjele unose se u program kao parovi tocaka. Ako uniformna raspodjela nije realna za prikaz nekog sistema, nego neka druga, onda se pomocu tz. Monte Carlo metode generiraju slucajni brojevi s zeljenom raspodjelom.

6. SIMULIRANJE SLUCAJNIH DOGADJAJA

6.1. Simuliranje i pseudoslucajni dogadjaji

Simuliranje slucajnih dogadjaja se najcesce svodi na simuliranje slucajnih brojeva. Slucajni brojevi se veoma cesto upotrebljavaju u razlicitim podrucjima istrazivanja, pa je razvijeno vise razlicitih metoda za generiranje slucajnih brojeva. Tako generirani slucajni brojevi se testiraju odredjenim matematickim postupcima da bi se provjerila njihova svojstva tj. koliko su stvarno slucajni i kakva su im druga svojstva koja doprinose kvaliteti slucajnih brojeva. Tako provjereni slucajni brojevi se stampaju u posebnim knjigama slucajnih brojeva. Buduci da se radi o statistickim velicinama takvih brojeva treba ogromna kolicina. No treba naglasiti da se takvi stvarno slucajni brojevi, zbog razlicitih razloga, ne upotrebljavaju u simulacijskim eksperimentima izvodjenim s racunalima, nego se takvi zaista slucajni brojevi simuliraju pomocu tz. pseudoslucajnih brojeva tj. brojeva koji se proizvode na deterministicki nacin, ali su im svojstva takva da se ponasaju kao da su slucajni.

Pomocu pseudoslucajnih brojeva se moze ponoviti eksperiment s istim nizom pseudoslucajnih brojeva, buduci da su oni generirani na deterministicki nacin. Moze se upotrijebiti drugi dio istog niza ili neki drugi generator pseudoslucajnih brojeva. S druge strane takvi, na deterministicki nacin generirani pseudoslucajni brojevi, zadovoljavaju testove slucajnosti, tj. ponasaju se kao da su stvarno slucajni. Ili, drugacije receno, simulira se slucajnost, a kod simuliranja je, kako je vec naglaseno, najvaznije da se od simulacije dobivaju isti rezultati kao od stvarnog sistema. Zakonitosti ili logika koji dovode do takvih rezultata su manje vazni. Postoje, dakle razlicite racunske i sklopovske metode za generiranje pseudoslucajnih brojeva. Prikazimo neke najcesce upotrebljavane.

6.2. Pseudoslucajni brojevi s jednolikom raspodjelom

Jedan od najcesce upotrebljavanih nacina za generiranje pseudoslucajnih brojeva je upotreba tz. Congruentne metode za generiranje pseudoslucajnih brojeva. Kod te metode se novi slucajni broj Ci+1 dobiva od prethodnog prema ovakvoj formuli:

     Ci+1 = (Ci * lambda + mi)(MODULO P)

To znaci da se novi slucajni broj dobiva tako da se prethodni broj Ci pomnozi s lambda i pri tome doda mi. Nakon toga se dobiveni rezultat (u zagradi) podijeli s P i uzme ostatak kao novi slucajni broj itd. To znaci da se dobije serija slucajnih brojeva koja izgleda ovako:

	------- Pocetni broj  ("Sjeme")
	 ^           |
	 |           v
	 |	Prvi izvedeni broj (iz pocetnog)
	 | (         |
	 S P         v
	 E E	Drugi izvedeni broj (iz prvog)
	 R R		itd.
	 I I
	 J O
	 A D            .
	 | )         |  .
	 |           |  .
	 |           |  .
	 v           v
	------- Pocetni broj
Jedno od najvaznijih svojstava neke serije pseudoslucajnih brojeva je zahtjev da ona bude sto je moguce duza. Daljnji su zahtjevi da se dobije "maksimalna serija" tj. da su zastupljeni svi moguci brojevi koji se mogu prikazati napr. na nekom registru (osim nule), da se sto bolje udovoljava testovima za provjeru slucajnosti itd. Zbog svega toga moglo bi se reci da nizovi pseudoslucajnih brojeva imaju svoju "kvalitetu" i da ona moze utjecati na rezulate dobivene simulacijskim eksperimentom. Zbog toga u nekim verzijama GPSS-a ima i po desetak razlicitih generatora pseudoslucajnih brojeva, kako bi se simulacijski eksperiment mogao napraviti s razlicitim nizovima pseudoslucajnih brojeva i tako uocili i eventualno eliminirali utjecaji nesavrsenosti pojedinih generatora pseudoslucajnih brojeva ili dijelova njihovih nizova.

Da bi se Congruentnom metodom mogao generirati niz pseudoslucajnih brojeva mora postojati odredjeni pocetni broj (sjemenski broj, engleski seed), zatim konstante lambda, mi i P. Te velicine uveliko utjecu na svojstva dobivenih serija i nije niposto svejedno kakve ce se konstante upotrijebiti, te one ne mogu biti odabrane "bez veze". Mnogi istrazivaci su pokusavali dobiti odgovarajuce konstante pomocu kojih bi se dobili kvalitetni nizovi pseudoslucajnih brojeva pa je osnovno pravilo da se pri simuliranju upotrijebljavaju samo takvi provjereni nacini za dobivanje kvalitetnog niza pseudoslucajnih brojeva.

Osim takve mjesovite Congruentne metode, cesto se upotrebljavaju i generatori kod kojih je mi = 0 . To je multiplikativna Congruentna metoda. Ona daje samo za nijansu losije nizove nego mjesovita Congruentna metoda, a izracunavanje pojedinog broja je znatno jednostavnije. To je, dakako, veoma vazno, buduci da u simulacijskim eksperimentima treba ogroman broj slucajnih velicina, pa se izracunavanja obavljaju mnostvo puta. Dakako, u digitanom racunalu se formula za generiranje pseudoslucajnih brojeva realiziraju pomocu odgovarajucih programa.

Osim takvog generiranja pseudoslucajnih brojeva programskom realizacijom matematickih formula (osim navedene postoje i druge), pseudoslucajni brojevi se mogu realizirati i sklopovima, odnosno hardverski. Za to se upotrebljavaju tz. "sift-registri" (pomacni registri). Osnovna prednost takvih generatora je velika brzina rada. Za svaki pseudoslucajni broj pomocu programa treba izvesti vise instrukcija, koje mogu trajati napr. oko 1 us ili vise od toga. Tako za generiranje jednog slucajnog broja treba desetak ili vise desetaka us, angazirajuci kroz to vrijeme procesor. Suprotno tome posmak podatka na sift-registru se moze uciniti za napr. 0,1 us, ako se upotrijebi generator takta od 10 MHz, a sa suvremenim elektronskim sklopovima mogu se upotrebljavati i mnogo brzi generatori takta od napr. 100 MHz, pa i vise.

Kako se generiraju pseudoslucajni brojevi pomocu sift-registra prikazano je na sl. 5. Na toj slici je pretpostavljeno da se za

	                    n
	    |<----------------------------->|
	    |                               |
	    +-------+-------+-------+-------+
	    |       |       |       |       |
	 +->|   1   |   2   |   3   |   4   |
	 |  |       |       |       |       |
	 |  +-------+-------+-------+-------+
	 |      |           m           |
	 |      |<--------------------->|
	 |      v                       |
	 |      _                       |
	 |     / \                      |
	 +----| + |<--------------------+
	       \_/

Sl. 5 "Sift-registar" kao sklopovski generator pseudoslucajnih
      brojeva
generiranje pseudoslucajnih brojeva upotrebljava sift-registar od samo 4 bita (n=4). To bi dakako bilo za stvarnu upotrebu premalo, jer bi se, eventualno, mogla dobiti "maksimalna" serija od svega 15 brojeva, ako se iskljuci nula. No to je dovoljno za prikaz principa rada takvih generatora pseudoslucajnih brojeva. Bistabili sift-registra su prikazani brojkama od 1 do 4. Prije pocetka rada na registar se zapise pocetni broj. Nakon toga se napravi logicka Ekskluzivno ILI operacija (EX ILI) izmedju prvog i cetvrtog bita. To je na slici oznaceno s (+). Rezultat EX ILI operacije se pri siftu unese na prvi bit s lijeve strane, a ostali se bitovi pomaknu po jedan korak udesno, pa se dobije novi broj. Pretpostavimo da je na registru bio zapisan pocetni binarni broj 1000, tada bi se opisanim postupkom dobio ovakav niz:
		1000  -  pocetni broj
		1100  -  prvi izvedeni broj
		1110  -  drugi izvedeni broj
		1111  -  treci izvedeni broj
		    itd.
Na ovom primjeru upotrijebljena je "povratna veza" izmedju cetvrtog i prvog bita (oznaceno s m). Dakako mogu se upotrebljavati i druge povratne veze, ali korisnik mora upotrebljavati provjerene i testirane nacine za dobivanje pseudoslucajnih nizova. To znaci da se, osim povratne veze, mora odabrati i odgovarajuci pocetni broj, kao i u slucaju softverskog generiranja pseudoslucajnih brojeva. Sve to, dakako, vazi onda kada korisnik zeli samo upotrebljavati nizove pseudoslucajnih brojeva, a ne istrazivati i traziti nove nizove kvalitetnih slucajnih brojeva.

6.3. Generiranje pseudoslucajnih brojeva s proizvoljnom neuniformnom raspodjelom

I dok, eto, postoji vise razlicitih nacina kako se mogu generirati pseudoslucajni nizovi brojeva s jednolikom raspodjelom, ne postoji neki opci nacin kako bi se izravno generirali slucajni brojevi s bilo kojom raspodjelom, prikazanom matematickim izrazom ili nekom eksperimentalno dobivenom krivuljom skupljanjem statistike iz realnog sistema. Zbog toga se u simuliranju upotrebljava tz. Monte Carlo metoda transformacije slucajnih brojeva s jednolikom raspodjelom u slucajne brojeve s nekom drugom raspodjelom. Nacin te transformacije je prikazan na sl. 6.
slika 6.
Sl. 6 Monte Carlo metoda za transformaciju slucajnih brojeva s
      jednolikom raspodjelom u slucajne brojeve odredjene kumulativ-
      nom funkcijom raspodjele
Kumulativna raspodjela F(X) po kojoj se zeli generirati slucajne brojeve prikaze se u podrucju od 0 do 1. Slucajni brojevi s jednolikom raspodjelom takodjer prikazani u podrucju od 0 do 1 sluze kao ulazne velicine u F(X), a na osi X ocita se slucajni broj sa zeljenom raspodjelom. Da se to moze raditi na takav nacin postoje odgovarajuci matematicki dokazi, koji se mogu pronaci u citiranoj literaturi. Nas cilj je samo upotrebljavati tu metodu u simuliranju.

Neke cesto upotrebljavane krivulje raspodjele raspodjele se nalaze vec ugradjene u odredjene verzije GPSS-a, a za transformaciju se moze upotrijebiti neki od desetak generatora pseudo-slucajnih brojeva ili se, alternativno, jedan simulacijski eksperiment moze izvesti s pocetnim dijelom niza pseudoslucajnih brojeva, drugi se izvodi s nastavkom tog istog niza. Tako se moze napr. pomocu bloka GENERATE generirati transakcije koje ulaze u model po bilo kojoj raspodjeli, one reprezentiraju kupce koji ulaze u samoposluzivanje, klijente koji ulaze u banku ili postu, automobile koji dolaze na parkiraliste itd. Na slican nacin se blokom ADVANCE moze simulirati utrosak vremena za posluzivanje koji je slucajan i po bilo kojoj raspodjeli.

Opsirnije o simuliranju slucajnih dogadjaja.


ZAKLJUCAK

Svrha ovog clanka je da u preglednom obliku prikaze rad na podrucju modeliranja i simuliranja koji se dugi niz godina u dosta sirokom opsegu odvijao na Elektrotehnickom fakultetu u Zagrebu pod rukovodstvom autora. U toku toga rada razvio se jedan dosta opcenit pristup u to, inace, veoma saroliko podrucje, prihvacene su definicije pojmova i donekle sistematizirano to zaista veoma saroliko podrucje rada. Uveden je veci broj simulacijskih programskih jezika u siroku upotrebu i to za razlicita racunala. Prikazani su problemi na koje se pri tome u nasim uvjetima nailazi.

U tome svjetlu treba gledati i na prilozeni popis literature. Obicno se pri citiranju literature navode izvori koji su koristeni kao osnova za provedena razmatranja. U ovom clanku je to samo djelomicno tako i odnosi se na literaturu pod naslovom Literatura I, a koja je cinila osnovu pri razvoju ovog podrucja. Naprotiv ono sto je navedeno kao Literatura II pretstavlja radove koji su proistekli iz rada na podrucju modeliranja i simuliranja na Elektrotehnickom fakultetu u Zagrebu ili su povezani s njim, a mogu posluziti kao detaljnija obrada onoga sto je revijalno prikazano u ovom clanku. Pri tome su pod a) navedeni radovi objavljeni u visokoj nakladi i to su, koliko je autoru poznato jedini takovi radovi objavljeni na nasem jeziku. Pod literatura II b) su javno objavljeni radovi, ali u manjem broju primjeraka. Dakako, osim tih javno objavljenih radova postoji jos i niz interno dokumentiranih radova, koji bi takodjer mogli posluziti kao detaljnija razrada onoga sto se razmatra u ovom clanku, no svi ti radovi ne mogu ovdje biti navedeni.

I na kraju treba reci jos i to da, s obzirom na sve izneseno, drugi radnici na ovom podrucju mogu imati drugacije pristupe, kao i drugacije definicije pojedinih pojmova i uopce drugaciji pogled na problematiku modeliranja i simuliranja. Ovdje je prikazano ono sto se je razvijalo dugi niz godina na Elektrotehnickom fakultetu u Zagrebu.


LITERATURA I

- G. Gordon		System Simulation,
			Prentice-Hall, Inc.
			Englewood Cliffs, New Jersey 1969

- G. Gordon		The Aplication of GPSS V to Discrete System
			Simulation,
			Prentice-Hall, Inc.
			Englewood Cliffs, New Jersey 1975

- G. S. Fishman		Concepts and Methods in Discrete Event Digital
			Simulation,
			John Wiley & Sons 1973

-			1130 Continous System Modeling Program-
			Application Description,
			IBM- International Business Machines Corporation,
			New York 10017

- G. W. Evans,II,	Simulation Using Digital Computers,
  G. F. Wallace,	Prentice-Hall, Inc.,
  G. L. Sutherland	Englewood Cliffs, N. J. 1967

- E. Kindler		Jazyki Modelirovanija,
			Moskva Energoatomizdat 1985,
			(Prijevod s ceskog na ruski jezik)

- B. Soucek		Minicomputers in Data Processing and
			Simulation,
			John Wiley & Sons, Inc.
			New York 1972

- J. Reitman		Computer Simulation Applications,
			John Wiley & Sons, Inc.
			New York 1971

- J. McLeod		Simulation, The Dynamic Modeling of Ideas and
		        Systems with Computers,
			McGraw-Hill Book Company 1968

- B. F. Green		Digital Computers in Research,
			McGraw-Hill Book Company


LITERATURA II

a) Knjige i skripta


- V. Ziljak		Modeliranje i simuliranje sa racunalima,
  G. Smiljanic		Liber, Zagreb, 1980 (Skripta Sveucilista u
			Zagrebu)

- V. Ziljak		Simulacija racunalom,
			Skolska knjiga, Zagreb, 1982 (Knjiga)

- A. Maricic		Modeliranje i simuliranje kontinuiranih
			sistema,
			Liber, Zagreb, 1988,
			(Skripta Sveucilista u Zagrebu)

b) Doktorski i magistarski radovi


- M. Vuskovic		Direktna simulacija zeleznicke vuce,
			Doktorska disertacija, ETF Zagreb, 1975

- V. Ziljak		Simulacija terminala jugoslovenskog naftovoda
		        kao stohasticki proces,
			Doktorska disertacija ETF Zagreb, 1981

- S. Pavlin		Simulacija prometa na aerodromskom  kompleksu,
			Magistarski rad, ETF Zagreb, 1984

- Z. Brankovic		Simulacija rada kapaciteta za odrzavanje,
			Magistarski rad, ETF Zagreb, 1988

- A. Dimitrovski	Simulacija pouzdanosti distributivnih mreza
			Metodom Monte Carlo,
			Magistarski rad, ETF Zagreb, 1992

- Milivoj Kuzmic	Modeliranje ispusta rashladnih voda, ETF Zagreb, 1978

- Branimir Cvetkovic	Modeli simuliranja lezista ugljikovodika, ETF Zagreb,
			1981

- Bosko Kovacic		Modeliranje procesora u viseprocesorskim sistemima,
			ETF Zagreb, 1982