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.
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.
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.Sl. 1 Sistem i njegov model koji se (eventualno) unosi u racunalo
Razmotrimo sada sto je to sistem, a sto njegov model. Od mnostva razlicitih definicija, ili, bolje bi bilo reci, opisa, izdvojimo ove:
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.
- "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."
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.
Za proucavanje sistema postoji vise mogucnosti. Navedimo neke od njih:
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.
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.Sl. 2 Ponasanje sistema prikazanog modelom nakon sto se na sistem nametne neki stres
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."
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.
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.
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.
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.Sl. 3 Stanje kontinuiranog sistema ili pojedinih njegovih parametara i simuliranje toga stanja na analognom i digitalnom racunalu
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.
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.
- a) analogna i hibridna racunala
- b) od jezika za razlicita digitalna racunala koriste se:
- - CSMP 1130 (IBM)
- - CSMP 360 (IBM)
- - ANSIR (Partner)
- - MIMIC (SRCE)
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:
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.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
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.
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.

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:
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
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:Sl. 5 "Sift-registar" kao sklopovski generator pseudoslucajnih brojeva
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.
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.Sl. 6 Monte Carlo metoda za transformaciju slucajnih brojeva s jednolikom raspodjelom u slucajne brojeve odredjene kumulativ- nom funkcijom raspodjele
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.
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.
- 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
- 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)
- 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