Softverska implementacija op š teg simulatora
description
Transcript of Softverska implementacija op š teg simulatora
Softverska Softverska implementacija implementacija
opopšštegtegsimulatorasimulatora
SimulacijeSimulacije Potreba za simulacijama i Potreba za simulacijama i
modeliranjemodeliranjemm Prilikom ispitivanja nekog sistema Prilikom ispitivanja nekog sistema
samo su neke njegove karakteristike samo su neke njegove karakteristike interesantneinteresantne
Ušteda prilikom kreiranja modela koji Ušteda prilikom kreiranja modela koji samo ima karaktersitike koje su namo od samo ima karaktersitike koje su namo od interesainteresa
Tipovi simulacijaTipovi simulacija FizičkeFizičke InteraktivneInteraktivne KompjuterskeKompjuterske
RaRačunarske simulaciječunarske simulacije Funkcije Funkcije
Ispitivanje karakteristika sistema koje nije Ispitivanje karakteristika sistema koje nije moguće učiniti drugim putemmoguće učiniti drugim putem
Razvoj novih hipoteza, modela i teorijaRazvoj novih hipoteza, modela i teorija Zamena za klasičan eksperiment, kojim se postiže Zamena za klasičan eksperiment, kojim se postiže
velika uštedavelika ušteda Pedagoški alatPedagoški alat
PodelaPodela Stohastičke i determinističkeStohastičke i determinističke Ravnotežnog stanja i dinamičkeRavnotežnog stanja i dinamičke Neprekidne i diskretneNeprekidne i diskretne Lokalne i distribuirane Lokalne i distribuirane
Provera tačnosti Provera tačnosti simulacijesimulacije
Rezultati simulacije treba da se poklapaju Rezultati simulacije treba da se poklapaju sa ponašanjem sistema kog simuliramosa ponašanjem sistema kog simuliramo
Uzroci greškeUzroci greške ProgramskeProgramske Numeričke Numeričke
Ograničenost računarskog prostoraOgraničenost računarskog prostora Zamena analitičkih izraza numeričkimZamena analitičkih izraza numeričkim
ModelarskeModelarske
Ideja Ideja opšteg simulatoraopšteg simulatora Zajedničke osobine simulacijaZajedničke osobine simulacija
Ulazni podaciUlazni podaci Izlazni podaciIzlazni podaci Potreba za grafičkim korisničkim interfejsom za unos Potreba za grafičkim korisničkim interfejsom za unos
podatakpodatak Potreba za grafičkim prikazom dobijenih rezultataPotreba za grafičkim prikazom dobijenih rezultata
Potreba za vršenjem niza eksperimenataPotreba za vršenjem niza eksperimenata Automatizacija pokretanja simulacijaAutomatizacija pokretanja simulacija Analiza rezultata niza eksperimenataAnaliza rezultata niza eksperimenata Potvrda zaključaka i olakšavanje ispravljanja greški Potvrda zaključaka i olakšavanje ispravljanja greški
Ideja kreiranja okruIdeja kreiranja okružženjaenja, odnosno programa koji , odnosno programa koji će moći da izvršava ove funkcije za niz različitih će moći da izvršava ove funkcije za niz različitih simulacija.simulacija.
Pojedinačne simulacije kao Pojedinačne simulacije kao proširenja proširenja opšteg opšteg
simulatorasimulatora Izolovanje opštih funkcija Izolovanje opštih funkcija
od konkretnih simulacijaod konkretnih simulacija Moduli koji implementiraju Moduli koji implementiraju
sve posebne karakteristike sve posebne karakteristike konkretne simulacije konkretne simulacije izračunavanjeizračunavanje kreiranje i čuvanje rezultatakreiranje i čuvanje rezultata praćenje stanja praćenje stanja
izračunavanjaizračunavanja Omogućavanje Omogućavanje
komunikacije izmedju komunikacije izmedju opšteg simulatora i opšteg simulatora i zasebnih modulazasebnih modula
ImplementacijaImplementacija
Opšti simulatorOpšti simulator je pisan u C++ je pisan u C++ Korišceno je razvojno okrženje Korišceno je razvojno okrženje
Microsoft Visual Studio .Net 2003, Microsoft Visual Studio .Net 2003, 20052005
Grafički korisnički interfejs je Grafički korisnički interfejs je pravljen MFC pravljen MFC – om (Microsoft – om (Microsoft Fundamental Classes)Fundamental Classes)
Komunikacija Komunikacija
ParametriParametri Parametri mogu biti raznih tipova, Parametri mogu biti raznih tipova, tako da se tako da se
njihova vrednost najlakše može predstaviti niskom njihova vrednost najlakše može predstaviti niskom znakovaznakova
Simulacije najčešće zavise od većeg broja Simulacije najčešće zavise od većeg broja parametara, pa je potrebna i pogodna klasa za parametara, pa je potrebna i pogodna klasa za manipulaciju njimamanipulaciju njima Pristup pojedinim paramerimaPristup pojedinim paramerima Listu svih parametaraListu svih parametara Učitavanje i snimanje u datotekuUčitavanje i snimanje u datoteku
Klase koja obezbeđuje Klase koja obezbeđuje komunikacijukomunikaciju
Radi standardizacije komunikacije potrebno je izvući Radi standardizacije komunikacije potrebno je izvući zajedničke osobine i potrebe simulacijazajedničke osobine i potrebe simulacija
Prepoznati osnovne tipove parametaraPrepoznati osnovne tipove parametara Parametri simulacijeParametri simulacije Parametri struktureParametri strukture Parametri rezultataParametri rezultata
Razdvojiti grafičko okruženje za pokretanje simulacije od Razdvojiti grafičko okruženje za pokretanje simulacije od same simulacije. Treba da postoji klasa koja je most za same simulacije. Treba da postoji klasa koja je most za ovakvu komunikacijuovakvu komunikaciju
Automatizacija pokretanje Automatizacija pokretanje niza simulacijaniza simulacija iz interval iz interval
1 2
1 2
1
2
2
1 2
1 1 2 20 1 0 2 0
1 1 2 20 0 0
1 1 1 10 1
2 2 2 20 2
0
1 2
: .. Re
( , ) , ( , ) ,.., ( , )
( , ) ( , ) .. ( , )
* , 1..
* , 1..
......
* , 1..
..
n
n
n
n nm m m n
n nm m m
i d iA
i d iA
n n n ni d i nA
d d d
S A A A z
a a A a a A a a A
I a a a a a a
a a i s A a i m
a a i s A a i m
a a i s A a i m
A A A
n
Parametar za Parametar za pokretanje niza pokretanje niza simulacija iz nekog simulacija iz nekog intervalaintervala
Samo pokretanje svih simulacija iz Samo pokretanje svih simulacija iz intervala se vrintervala se vrši rekurzivnom metodom ši rekurzivnom metodom koja pripada klasi SimulatorMultiPlayer koja pripada klasi SimulatorMultiPlayer
Traženje simulacije sa Traženje simulacije sa određenim određenim
karakteristikamakarakteristikama1 2 1 2
1 2 1 2
1 2
.. , ( )
, ( )
( )
{ }
n n
r r j
r
p
p
A A A A a a a A
Rez Rez Rez Rez r r r Rez
Div div div div
Rez Rez Div
S A Rez
Traženje odgovarajuće simulacije je zapravo Traženje odgovarajuće simulacije je zapravo
1 2( ) ( )ra A
S a r r r
Ali je ovo težak problem pa se rešava lakši problem Ali je ovo težak problem pa se rešava lakši problem na projekci funkcijena projekci funkcije
1 2 1 1
1 2 1 1
1 2 1 1
1 2 1 1
1 2 1 1
( )
{1 2 } { }
( ) ( )
k k r
k k r
k k r
k k
jj
j j
i i
j kv v v v v j
j jv v v v v k k k k r
k j
jv v v v v
v v v v v
S A Rez
S a r
a v i r k
S A Rez
S a S v v v a v v
A Rez R
S R R
S
‚
( )r
j jka r
Krajnji problem se rešava modifikovanom metodom polovljenja naKrajnji problem se rešava modifikovanom metodom polovljenja na odgovarajućem intervalu. Uspeh modifikovana metoda u velikoj meri zavisiodgovarajućem intervalu. Uspeh modifikovana metoda u velikoj meri zavisi korisnika aplikacije.korisnika aplikacije.
Problemi imenovanja, Problemi imenovanja, smeštanja i pregleda smeštanja i pregleda
rezultatarezultata Usled automatizacije dolazi do pojavljivanja velike količine Usled automatizacije dolazi do pojavljivanja velike količine
podataka kojima treba omogućiti pristuppodataka kojima treba omogućiti pristup Postoje dva tipa podataka koje želimo da vidimo one koji su Postoje dva tipa podataka koje želimo da vidimo one koji su
vezani za jedna eksperiment i za niz različitih eksperimenatavezani za jedna eksperiment i za niz različitih eksperimenata Usled postojanja većeg broja datoteka vezanih za svaki Usled postojanja većeg broja datoteka vezanih za svaki
eksperiment svi oni se smeštaju u zaseban direktorijumeksperiment svi oni se smeštaju u zaseban direktorijum
Rezultate je potrebno predstaviti Rezultate je potrebno predstaviti pogodno za korišćenje od strane čoveka i računarapogodno za korišćenje od strane čoveka i računara Ime PodatkaIme Podatka Vrednost PodatkaVrednost Podatka Grafičke rezultate po standardima koji koriste programi za prikaz Grafičke rezultate po standardima koji koriste programi za prikaz
rezultata poput SigmaPlota, PsiPlot, OriginProrezultata poput SigmaPlota, PsiPlot, OriginPro X Y Z VrednostPodatkaNaPoyicijiXYZX Y Z VrednostPodatkaNaPoyicijiXYZ
Grafički prikaz rezultataGrafički prikaz rezultata Prikazivanje vrednosti ulaznih i odgovarajućih izlaznih Prikazivanje vrednosti ulaznih i odgovarajućih izlaznih
podatakapodataka Postoje slučajevi kada postoji potreba za prikazom rezultata u Postoje slučajevi kada postoji potreba za prikazom rezultata u
obliku slikeobliku slike
{0 1 255},
( ),
( ) [( ) 255]
B V R
max Max V v V
Bojenje v round v max
Neki karakteristike rezultata se mogu videti samo korišćenjem Neki karakteristike rezultata se mogu videti samo korišćenjem pogodnih filtera. pogodnih filtera. Ovakvi filteri su zapravo pogodna Ovakvi filteri su zapravo pogodna preslikavanja, nad skupom vrednostipreslikavanja, nad skupom vrednosti.. OOpstpstii simulator simulator implementira linearni, eksponencijalni i logaritamski filter. implementira linearni, eksponencijalni i logaritamski filter.
Analiza zavisnosti između Analiza zavisnosti između parametaraparametara
Ovo se najlakše radi pomoću raznih grafika, tabela Ovo se najlakše radi pomoću raznih grafika, tabela i sl.i sl.
Opšti simulatorOpšti simulator ne pravi ovakve prikaze već kreira ne pravi ovakve prikaze već kreira fajlove koji se gledaju iz specijalizovanih programafajlove koji se gledaju iz specijalizovanih programa
Elem1Vrednost1 Elem1Vrednost2 ... Elem1Vrednost1 Elem1Vrednost2 ... Elem1VrednostNElem1VrednostN
Elem2Vrednost1 Elem2Vrednost2 ... Elem2Vrednost1 Elem2Vrednost2 ... Elem2VrednostNElem2VrednostN
...... ElemElemMMVrednost1 ElemMVrednost2 ... Vrednost1 ElemMVrednost2 ...
ElemMVrednostNElemMVrednostN Za kreiranje ovakvih fajlova isto je Za kreiranje ovakvih fajlova isto je zadužena klasa SimulatorMultiPlayer, zadužena klasa SimulatorMultiPlayer, koja prilikom ovakvih izračunavanje koja prilikom ovakvih izračunavanje koristi pomoćnu klasu RGraphicMakerkoristi pomoćnu klasu RGraphicMaker
Implementacija proširenja Implementacija proširenja za za opšti simulatoropšti simulator
Sistem proširenja za Sistem proširenja za opšti simulatoropšti simulator su su implementira putem plaginova odnosno implementira putem plaginova odnosno napredne metode korišćenja dllnapredne metode korišćenja dll--ovaova
Problemi prilikom kreiranja Problemi prilikom kreiranja i korišćcenja i korišćcenja ovakvovakvogog sistema sistema proprošširenja:irenja: SmeSmeštanje samih proširenjaštanje samih proširenja Manipulacija memorijomManipulacija memorijom
Kreiranje samih proširenja je olakšano Kreiranje samih proširenja je olakšano postojanjem korisničke biblioteke postojanjem korisničke biblioteke RCommon i šablon projekta za kreiranje RCommon i šablon projekta za kreiranje proširenjaproširenja
Kosi hKosi hiitac kao primer tac kao primer proširenjaproširenja
Nasledjivanje odgovarajuNasledjivanje odgovarajućih klasaćih klasa class SimulatorKosiHitac : public SimulatorAbstractclass SimulatorKosiHitac : public SimulatorAbstractclass PathGeneratorKosiHitac : public PathGeneratorAbstractclass PathGeneratorKosiHitac : public PathGeneratorAbstract
IdentifikacijaIdentifikacijavoid GetName (char *gName){strcpy_s (gName,1000, "KosiHitac");}void GetName (char *gName){strcpy_s (gName,1000, "KosiHitac");}mPathGenerator->SetRootString ("d:\\primeri\\KosiHitac\\");mPathGenerator->SetRootString ("d:\\primeri\\KosiHitac\\");
Definisanje ParametaraDefinisanje ParametaraAddParam ( (double)0.795,"Ugao");AddParam ( (double)0.795,"Ugao");AddParam ( (double)2,"Brzina");AddParam ( (double)2,"Brzina");AddParamStruct ( (double)9.81, "Gravitacija");AddParamStruct ( (double)9.81, "Gravitacija");AddParamStruct ( (int)256, "NXY");AddParamStruct ( (int)256, "NXY");AddParamStruct ( (double)100, "MaxGrafik");AddParamStruct ( (double)100, "MaxGrafik");
2
20
tan2 cos
g xy x
v
2 20 sin
2
vH
g
20 sin 2v
Dg
Preuzimanje vrednosti parametaraPreuzimanje vrednosti parametaramParams.GetValueDouble ("Brzina",V);mParams.GetValueDouble ("Brzina",V); mParams.GetValueDouble ("Ugao",Alfa);mParams.GetValueDouble ("Ugao",Alfa); mParamStruct.GetValueDouble ("Gravitacija",temp1);mParamStruct.GetValueDouble ("Gravitacija",temp1); mParamStruct.GetValueDouble ("MaxGrafik", MaxGrafik)mParamStruct.GetValueDouble ("MaxGrafik", MaxGrafik);; mParamStruct.GetValueDouble ("NXY", NXY);mParamStruct.GetValueDouble ("NXY", NXY);
ProraProračučunini vezani za simulaciju vezani za simulaciju MaxVisina = (pow (V,2) * pow (sin (2*Alfa),2))/ (2 *G);MaxVisina = (pow (V,2) * pow (sin (2*Alfa),2))/ (2 *G); MaxDaljina = (pow (V,2) * sin (2*Alfa))/G;MaxDaljina = (pow (V,2) * sin (2*Alfa))/G;
Čuvanje rezultataČuvanje rezultata fopen_s (&F, "Rezultat.txt","w");fopen_s (&F, "Rezultat.txt","w");
fprintf (F,"MaxVisina\n");fprintf (F,"MaxVisina\n"); fprintf (F,"%f\n", MaxVisina);fprintf (F,"%f\n", MaxVisina);
fprintf (F,"MaxDaljina\n");fprintf (F,"MaxDaljina\n"); fprintf (F,"%f",MaxDaljina);fprintf (F,"%f",MaxDaljina);
fclose (F);fclose (F);mResult.LoadFromFile ("Rezultat.txt");mResult.LoadFromFile ("Rezultat.txt");
GrafiGrafiččki korisniki korisniččki interfejs ki interfejs (Graphic User Interface, (Graphic User Interface,
GUIGUI))
Simulacija traženja Simulacija traženja solitonskih rešenja u solitonskih rešenja u fotoničnim rešetkamafotoničnim rešetkama
Solitoni su dinamiSolitoni su dinamičko i stuktralno stabilni talasi čko i stuktralno stabilni talasi za razliku od običnih talasa koji se za razliku od običnih talasa koji se raspršuju.Oni nastaju usled ravnoteže raspršuju.Oni nastaju usled ravnoteže disperzije ili difrakcije(širenja) i nelinearnih disperzije ili difrakcije(širenja) i nelinearnih efekata(skupljanja) u optičkoj srediniefekata(skupljanja) u optičkoj sredini
Fotorefraktivne sredine su one kod kojih Fotorefraktivne sredine su one kod kojih postoje fotorefraktivni efekti odnosno svetlošću postoje fotorefraktivni efekti odnosno svetlošću izazvane promene indeksa prelamanjaizazvane promene indeksa prelamanja
Fotonične rešetke su prostorno periodične Fotonične rešetke su prostorno periodične strukture pomoću kojih moguće kontrolisati strukture pomoću kojih moguće kontrolisati prostiranje svetlosti. Mogu se smatrati prostiranje svetlosti. Mogu se smatrati optičkim analogom poluprovodnika.optičkim analogom poluprovodnika.
Simulacija propagacije Simulacija propagacije solitonskih rešenjasolitonskih rešenja
Da bi se objasnilo Da bi se objasnilo ponašanje ponašanje kontrapropagirajućih kontrapropagirajućih solitona korisćen je solitona korisćen je vremenski nezavisan vremenski nezavisan model zasnovan na model zasnovan na teoriji fotorefraktivnih teoriji fotorefraktivnih efekataefekata
Usled rotacione Usled rotacione simetrije problema simetrije problema pretpostavlja se pretpostavlja se postojanja solitona postojanja solitona oblika oblika
( )u x y
( )u x y( ) cos exp( )
( )sin exp( )
F u x y i z
B u x y i z
2 2
1
1
gz
g
gz
g
I Ii F F F
I I
I Ii B B B
I I
I F B
FB
medium
Petviashvilijev za traženje Petviashvilijev za traženje solitonskih rešenja u solitonskih rešenja u fotoničnim rešetkamafotoničnim rešetkama
Sada se dve jednačine Sada se dve jednačine propagacije mogu propagacije mogu pretvoriti u jednu pretvoriti u jednu degenerisanudegenerisanu
Rešenja ove jednačine se Rešenja ove jednačine se dobijaju iteracionom dobijaju iteracionom formulom u Furijeovom formulom u Furijeovom inverznom prostoruinverznom prostoru
Pravolinijska ‘naivna’ Pravolinijska ‘naivna’ iteracija ne daje iteracija ne daje rešenja.Već tek rešenja.Već tek korišćenjem korišćenjem stabilizacionih faktora stabilizacionih faktora koje je dao Petviashvili je koje je dao Petviashvili je to mogućeto moguće
2
20
1g
g
u Iu u u
u I
2
2 2
2
1 1
1 ˆˆ [ ]
g
g g
I u uP Q
u I u I
u Pu Qk
312 2
2
1 2
ˆ[( ) ]
ˆ
1 ˆˆ m mm m m m
m m
k u Pu u dk
Qu dk
P uu Qk
��������������
��������������
Rešavanje problema Rešavanje problema simulacijomsimulacijom
Problem se rešava na Problem se rešava na na konačnom delu na konačnom delu prostorprostoruu ( (--xmax,xmax)xmax,xmax)**
((--ymax,ymax,yymax)max) Simulacije su vršene Simulacije su vršene
za nekoliko tipova za nekoliko tipova rešetkirešetki
Kao ulaz odnosno Kao ulaz odnosno početnu vrednost (u) početnu vrednost (u) funkcije korišćeno je funkcije korišćeno je više interesantnih više interesantnih oblikaoblika
2 20
( ) ( )( ) ( ( )) ( ( ))g
x y x yI x y I cos cos
d d
2 20
( ) ( )( ) ( ( )) ( ( ))g
x y x yI x y I cos cos
d d
2 2
0
( ) ( )( ) ( ( )) ( ( ))g
x y x yI x y I cos cos
d d
2 2
22
2
22
( )
( ) ( )
x y
r
ci T
u x y Ae
ru x y A e e
Softverska Softverska implemantacijaimplemantacija
Interesuju nas efekti Interesuju nas efekti promene nekih ulaznih promene nekih ulaznih parametaraparametara
Definisanje šta sta će se Definisanje šta sta će se smatrati konvergencijomsmatrati konvergencijom
Uvođenje niza kriterijuma Uvođenje niza kriterijuma za rano preoznavanje za rano preoznavanje divergencijedivergencije
Stabilizuje računanja nakon Stabilizuje računanja nakon odredjenog broja iteracijaodredjenog broja iteracija
Jako sporo konvergirajuće Jako sporo konvergirajuće simulacije simulacije
11( ) 1 ( ) ( )
2( ) 2 ( )
1 ( 2 )
xmax ymax
n nxmax ymax
xmax ymax
nxmax ymax
S n Sum u x y u x y dxdy
S n Sum u x y dxdy
Sum Sum
( 1 2 1) ( )Sum Sum BrojIt MaxNestIt
1
( ) 0
1( ) 2( )
1
i
i
i
mod BrojIt TestFrekvencija
TestTacnost S BrojIt S BrojIt
TestTacnostMinBrzinaKonv
TestTacnost
i i
Duži period nestabilnostiDuži period nestabilnostiif (Sum1/Sum2 > MaxStabilnosti) thenif (Sum1/Sum2 > MaxStabilnosti) then beginbegin IndikatorDiv = IndikatorDiv +1IndikatorDiv = IndikatorDiv +1 if (IndikatorDiv >MaxPeriodNestabilnosti)if (IndikatorDiv >MaxPeriodNestabilnosti) divergencija =truedivergencija =true endendelseelse IndikatorDiv = 0IndikatorDiv = 0 Kriterijum ‘klackalice’, odnosno česte promene monotonosti Kriterijum ‘klackalice’, odnosno česte promene monotonosti
funkcije tačnosti, odnosno udaljenosti vrednosti funkcije U izmedju funkcije tačnosti, odnosno udaljenosti vrednosti funkcije U izmedju iteracija u nekoj normiiteracija u nekoj normi
Potreba za metodom za Potreba za metodom za analizu rezultataanalizu rezultata
ČČesto je osim samog izraesto je osim samog izraččunavanje unavanje simulacija simulacija potrebna i neka analiza tih rezultatapotrebna i neka analiza tih rezultata
Primer je prepoznavanje oblika solitona. Primer je prepoznavanje oblika solitona. Definišimo neke karakteristike odnsno uslove Definišimo neke karakteristike odnsno uslove koje ti solitoni treba da ispunavajukoje ti solitoni treba da ispunavaju Suma intenziteta svih taSuma intenziteta svih taččaka solitona (u) je aka solitona (u) je
priblipribližžno jednaka sumi tano jednaka sumi taččaka solitona koje se aka solitona koje se poklapaju sa repoklapaju sa reššetkometkom
NajveNajvećći razmak izmei razmak izmeđđu tau taččaka sa intenzitetom aka sa intenzitetom iznad neke minimalne vrednosti, koja je definisana iznad neke minimalne vrednosti, koja je definisana u odnosu na maksimalnu vrednost funkcije u odnosu na maksimalnu vrednost funkcije ((uu)), je , je vevećći od neke granicei od neke granice
Suma intenziteta svih tačaka solitona približno je Suma intenziteta svih tačaka solitona približno je jednaka sumi tačaka solitona koje se nalaze na jednaka sumi tačaka solitona koje se nalaze na prstenu oko 0., 2. ili 4. krugaprstenu oko 0., 2. ili 4. kruga
Sama metoda za svaki rezultati ispituje Sama metoda za svaki rezultati ispituje ispunjenost uslova i na osnovu toga vraća ispunjenost uslova i na osnovu toga vraća nađeni oblik ili da je neodredjen.nađeni oblik ili da je neodredjen.
ZaključakZaključak Prilikom upotrebe na konkretnim problemima opšti Prilikom upotrebe na konkretnim problemima opšti
simulator je pokazao niz dobrih karakteristikasimulator je pokazao niz dobrih karakteristika Jednostavna i efikasna vizuelizacija rezultata, kako u samom Jednostavna i efikasna vizuelizacija rezultata, kako u samom
simulatoru tako i u pomoćnim programima, bez dodatnog simulatoru tako i u pomoćnim programima, bez dodatnog programiranja. programiranja.
Razvoj modula za simulaciju je ubrzan, jer se rezultati brzo Razvoj modula za simulaciju je ubrzan, jer se rezultati brzo analiziraju. analiziraju.
Lako se proširuje rezultat novim informacijama koje se Lako se proširuje rezultat novim informacijama koje se automatski vizuelizuju. automatski vizuelizuju.
Modul za simulaciju je izolovan od ostatka aplikacije tako da Modul za simulaciju je izolovan od ostatka aplikacije tako da se u njemu mogu primenjivati razni trikovi za povećavanje se u njemu mogu primenjivati razni trikovi za povećavanje performansi. performansi.
Neki procesi koji su ranije bili analizirani od strane čoveka Neki procesi koji su ranije bili analizirani od strane čoveka su efikasno automatizovani, tako da je upotreba ljudskog su efikasno automatizovani, tako da je upotreba ljudskog vremena postala daleko efikasnija. vremena postala daleko efikasnija.
Greške koje su prouzrokovane automatizacijom su lako Greške koje su prouzrokovane automatizacijom su lako prepoznate i otklonjene promenom parametara ili promenom prepoznate i otklonjene promenom parametara ili promenom delova koda modula za simulaciju. delova koda modula za simulaciju.