Professional Documents
Culture Documents
SDD Teorija
SDD Teorija
Prednosti simulacije
1. Novi reimi rada se mogu ispitati bez remeenja tekueg funkcionisanja procesa
2. Dizajn sistema koji bi zahtevao novi hardver, fiziku rasporeenost sistema, moe se
testirati bez ulaganja u nove komponente.
3. Mogu se analizirati i predvideti sluajevi deavanja nekih vanrednih situacija u
sistemu.
4. Simulacijom se spori sistemi mogu bre izvriti, dok se brzi po potrebi mogu sporije
izvravati.
5. Moe se dobiti uvid o meuzavisnosti pojedinih promenljivih.
6. Moe se dobiti uticaj pojedinih promenljivih na performanse sistema.
7. Moe se izvriti analiza uskih grla u sistemu (odlaganje pojedinih procesa ili zastoji)
8. Sama simulacija dodatno moe pomoi u razumevanju kako sistem radi
9. Mogu se analizirati situacije ta bi bilo kad bi bilo
Nedostaci simulacije
1.
2.
3.
4.
Komponente sistema
Entiteti objekti od interesa
Atributi osobine entiteta
Aktivnost vremenski interval odreene duine
Stanje sistema definie se skupom promenljivih preko kojih se moe opisati sistem u bilo
kom trenutku (zavisi od postavljenih ciljeva)
Dogaaj trenutne pojave koje utie na stanje sistema
Endogeni termin koji opisuje aktivnosti i dogaaje koji se deavaju unutar sistema
Egzogeni - termin koji opisuje aktivnosti i dogaaje u okruenju koji utiu na sistem
Sistem Entiteti Atributi Aktivnosti Dogaaji Promenljive stanja
Klasifikacija modela
Fiziki ili matematiki
Simulacioni model je vrsta matematikog modela
Simulacioni model moe biti:
Statiki ili dinamiki
Deterministiki ili stohastiki
Diskretni ili kontinualni
5. Koraci simulacije
etiri faze:
1. Pripremna (koraci 1,2)
2. Izgradnja modela (3-7)
3. Izvravanje simulacija (8-10)
4. Implementacija (11,12)
Elementarne strukture:
Stek (Stack)
Red (Queue)
Povezana lista (List)
Stablo (Tree)
Stek i red su dinamiki skupovi gde se elementi uklanjaju unapred odreenim
redosledom
Kod steka Delete brie poslednji (najmlai) dodat elemenat. Nazivamo ga LIFO
procesiranje (last-in, first-out)
Kod reda Delete brie prvi (najstariji) dodat elemenat. Nazivamo ga FIFO
procesiranje (first-in, first-out)
Stek
Operacije:
Push dodavanje elementa (insert)
Pop preuzimanje (brisanje) elementa (delete)
Provera: da li ima elemenata?
Podaci: niz S[1..S.top] sadri elemente
S[1] je elemenat na dnu, a S[S.top] je na vrhu steka.
Ako je S.top == 0, onda je stek prazan
Greka je kada se pozove Pop na praznom steku (greka tipa underflow)
Greka je kada se pozove Push na steku sa n elemanata (overflow)
Red (Queue)
Operacije:
Enqueue dodavanje elementa (insert)
Dequeue preuzimanje (i brisanje) elementa (delete)
Provera: da li ima elemenata?
Podaci:
glava (head) pokazuje na prvi elemenat reda. Preuzima se (dequeue)
element sa poetka glave reda.
rep (tail) pokazuje na poslednji elemenat reda. Dodavanje elementa ga
smeta na kraj rep reda.
Implementacija (jedan nain):
niz Q[1..n] je prostor za najvie n-1 elemenata reda
Q se koristi kao kruni bafer
1
2
3
4
5
BUILD-MAX-HEAP(A)
for i = A.length downto 2
A[1] A[i]
A.heap-size = A.heap-size - 1
MAX-HEAPIFY(A, 1)
Primeri simulacija
10. Primer simulacije, generisanje sluajnih brojeva sluajne
decimale
Osnovni principi
12. Koncepti simulacije diskretnih dogaaja. Vreme.
Sistem skup entiteta (ljudi, maina) koji meusobno komuniciraju u cilju postizanja
odreenog cilja
Model apstraktna reprezentacija sistema. Odlikuje se strukturnom, logikom ili
matematikom povezanou izmeu stanja, entiteta i njihovih atributa, skupova,
procesa dogaaja
Stanje sistema skup promenljivih koje u svakom trenutku u potpunosti opisuju
ponaanje sistema.
Entitet objekat ili komponenta u sistemu koja se predstavlja u modelu (npr. server,
klijent, maina i sl.)
Atributi osobine entiteta (npr. prioritet klijenta, i sl.)
Lista Skup logiki povezanih entiteta
Dogaaj trenutna pojava koja menja stanje sistema (npr. dolazak novog klijenta
u sistem)
17. Korienje
liste ili nizova
za simulaciju.
Prednosti i
nedostaci.
Liste su skup
ureenih podataka
zapis (record).
U simulaciji svaki zapis predstavlja jedan entitet ili beleku za jedan entitet.
One imaju vrh ili head (prvi element) i rep ili tail.
Neohodno je pretraivanje liste (potraga za 2., 3. itd. elementom).
Identifikator entiteta i njegovi atributi su polja fields u zapisu entiteta.
Svaki zapis u listu sadri i polje koje uva pokaziva na sledei zapis u listi.
Osnovne operacije sa listom su:
Uklanjanje elementa (zapisa) sa vrha liste
Uklanjanje elementa (zapisa) sa bilo kog mesta u listi
Dodavanje elementa (zapisa) za entitet na vrh ili rep liste
Dodavanje elementa (zapisa) za entitet na specificiranu (proizvoljnu) poziciju u
listi.
U pristupu planiranja dogaaja, gde e se u odreenom vremenskom trenutku
predstojei dogaaj izvriti:
Prvo, odvija se operacija uklanjanja
Ako se odreeni dogaaj uklanja ili se neki entitet uklanja iz liste jer se na
osnovu nekog svog atributa (npr. prioriteta ili vremena dolaska) aktivira, tada
poinje druga operacija uklanjanja
Ako se red sortira na osnovu najranijeg dolaska entiteta u sistem, tada se po
dolasku u red entitet svrstava po vremenu dolaska u sistem.
Za simulaciju na raunaru:
Svi elementi (zapisi) se smetaju u niz: elementi se uvaju u nizovima u
susednim lokacijama memorije raunara, referencirani indeksom u nizu.
Svi entiteti i beleke o dogaajima se predstavljaju strukturom u (C-u) ili
klasama (u Javi ili C#), alociraju se u RAM memoriji i pristupa im se preko
pokazivaa na odreeni zapis ili strukturu
Dinamika alokacija i uvezane liste
Zapisi entiteta se dinamiki kreiraju kada je i entitet kreiran.
Zapisi dogaaja se dinamiki kreiraju kad god se dogaaj unosi u listu buduih
dogaaja.
Jezici odravaju povezanu listu slobodnih paria memorije raunara i alociraju pare
eljene veliine na osnovu zahteva iz programa koji se izvrava.
Kada neki entitet postoji u simuliranom sistemu, i ako nakon nekog dogaaja,
beleka o tom dogaaju nije vie potrebna, odgovarajui zapis se oslobaa.
Zapis je referenciran pokazivaen umesto indeksom niza.
Pokaziva na zapis se moe tretirati kao fizika ili logika adresa zapisa u
memoriji.
Ako je potreban 3. element u listi, potrebno je proi kroz listu dok se ne doe
do 3. zapisa.
Korienje nizova
Nizovi se tipino koriste za smetanje listi podataka u FORTRAN-u.
Veina dananjih simulacionih paketa ne koristi nizove za uvanje listi, ve koristi
dinamiki alocirane zapise (nastaju kada se doda prvi, a nestaju kada se brie
poslednji).
Prednosti nizova:
Specifian zapis (npr. i-ti zapis) moe biti vraen brzo, bez pretraivanja
korienjem referenciranja
Nedostaci nizova:
Lista se preureuje kada se element dodaje na sredinu liste.
Ima fiksnu veliinu koja se utvruje u trenutku kompajliranja (problem je to je
teko unapred predvideti potrebe za simulaciju).
Dve osnovne metode za rangiranje (sortiranje) zapisa u listi:
Metod 1: Smetanje 1. zapisa u R(1), drugog u R(2), , i poslednjeg u
R(tailptr).
Jednostavan, ali izuzetno neefikasan metod.
Brzina izvravanja
Skup parova [xi, p(xi)], i = 1,2,, se zove raspodela verovatnoa za X, i p(xi) se zove
funkcija raspodele verovatnoa sluajne promenljive X.
Kontinualna sluajna promenljiva
X je kontinualna sluajna promenljiva ako je njen prostor moguih vrednosti Rx interval
ili vie intervala.
Verovatnoa da promenljiva X upada u interval [a,b] je data sa:
Osobine
E(X) = = V(X)
Primer: Serviser se obavetava svaki put kada se pojavi zahtev za servisiranjem. Broj
zahteva po satu se deava po Poasonovoj raspodeli (a = 2 po satu).
Verovatnoa pojave tri zahteva u sledeem satu se rauna kao:
p(3) = e-223/3! = 0.18
takoe,
p(3)= F(3) F(2) = 0.857-0.677=0.18
Verovatnoa da se desi 2 ili vie zahteva u periodu od jednog sata, se odreuje kao:
p(x 2) = 1 p(0) p(1)
= 1 F(1)
= 0.594
Eksponencijalna
Normalna
Weibull-ova
Lognormalna
Uniformna raspodela
Sluajna promenljiva X ima uniformnu raspodelu na intervalu (a,b), U(a,b), ako vai:
Osobine
P(x1 < X < x2) je proporcionalna duini intervala :
[F(x2) F(x1) = (x2-x1)/(b-a)]
E(X) = (a+b)/2
V(X) = (b-a)2/12
U(0,1) predstavlja sredstvo za generisanje sluajnih brojeva, od kojih se mogu
generisati sluajne promenljive.
Eksponencijalna raspodela
Sluajna promenljiva X ima eksponencijalnu raspodelu sa parametrom l > 0 ako vai:
E(X) = 1/
V(X) = 1/2
Odsustvo pamenja
P(X > s+t | X > s) = P(X > t), za svako s, t 0
Primer: Lampa radi po eksponencijalnoj raspodeli = 1/3 po satu proseno 1 otkaz
na 3 sata.
Verovatnoa da lampa traje due od srednje vrednosti za ivotni vek:
P(X > 3) = 1-(1-e-3/3) = e-1 = 0.368
Verovatnoa da lampa radi izmeu 2 i 3 sata je:
P(2 <= X <= 3) = F(3) F(2) = 0.145
Verovatnoa da traje u narednom satu ako je radila 2.5 sata:
P(X > 3.5 | X > 2.5) = P(X > 1) = e-1/3 = 0.717
Normalna raspodela
Sluajna promenljiva X ima normalnu raspodelu ako joj je gustina raspodele:
Weibull raspodela
Sluajna promenljiva X ima Weibull raspodelu ako je funkcija:
3 parametra:
Lokacija: v,
skaliranje: , ( > 0)
oblik. , (> 0)
Ako je v= 0 tada je
Lognormalna raspodela
Sluajna promenljiva X ima lognormalnu raspodelu ako je:
Prvi dolazak se deava posle vremena t, akko nema dolazaka u intervalu [0,t],
pa je:
Prema tome, raspodela verovatnoe broja dolazaka u periodu izmeu 11h i 14h, se
dobija kao:
P[N(6) N(3) = k] = P[N((6)) N((3)) = k]
= P[N(9) N(6) = k]
= e(9-6)(9-6)k/k!
= e3(3)k/k!
gde je N(t) stacionarni Poasonov proces sa uestalou 1.
Prebacivanje ukoliko u sistemu ima vie redova ekanja, klijent koji je stao u
sporiji red moe se prebaciti u bri red.
Vai za gotovo sve sisteme i podsisteme sa redovima ekanja (bez obzira na broj
servera, disciplinu reda, i druge karakteristike sistema).
G/G/1/FIFO/N/K primer (nastavak): Ako se u proseku desi dolazak svaka 4 min i svaki
klijent provede proseno 4.6min u sistemu, tada je u proizvoljnom trenutku prisutno
proseno (1/4)(4.6) = 1.15 klijenata u sistemu.
Ako red j ima cj < paralelnih servera, svaki radi brzinom j, tada je iskorienost
svakog servera u duem periodu j=j/(c j) (gde je j < 1 za stabilan red).
Ako spoljanji dolasci imaju Poasonovu raspodelu sa konstantom aj za svaki red j, i
ako postoji cj identinih servera sa eksponencijalnom raspodelom vremena servisiranja
sa srednjom vrednou 1/ j, tada se, u ustaljenom stanju, red j ponaa kao M/M/cj red
sa frekvencijom dolazaka
Primer- prodavnica :
Neka klijenti dolaze sa frekvencijom 80 po satu i 40% bira samoposluivanje.
Tada:
Frekvencija dolaska u servisni centar 1 je 1 = 80(0.4) = 32 po satu
Frekvencija dolaska u servisni centar 2 je 2 = 80(0.6) = 48 po satu
c2 = 3 prodavca i 2 = 20 klijenta po satu.
Dugorona iskorienost prodavca se rauna kao:
2 = 48/(3*20) = 0.8
Svi klijenti moraju doi na kasu na servisnom centru 3, ukupna frekvencija na
servisnom centru 3 je 3 = 1 + 2 = 80 po satu.
Ako je 3 = 90 po satu, tada je iskorienost kase:
3 = 80/90 = 0.89
Primer: LCM
Ako je X0 = 27, a = 17, c = 43, i m = 100.
Vrednosti Xi i Ri su:
X0 = 27
X1 = (17*27+43) mod 100 = 502 mod 100 = 2,
R1 = 2/100 = 0.02;
X2 = (17*2+43) mod 100 = 77,
R2 = 77/100 = 0.77;
X3 = (17*77+43) mod 100 = 52,
R3 = 52/100 = 0.52;
Maksimalna gustina
Preuzete vrednosti Ri, i = 1,2,, iz intervala [0,1] ne ostavljaju velike praznine
na intervalu
Umesto kontinualne, svaka Ri je diskretna
Reenje: veoma veliki ceo broj za modul m
Maksimalna perioda P
Za postizanje maksimalne gustine
Izbegavanje ponavljanja iste sekvence generisanih brojeva
Postie se dobrim izborom parametara: a, c, m, i X0.
Veina raunara koristi binarnu reprezentaciju brojeva
Npr. k=2
Maksimalan mogui period je:
Dve kategorije:
Testovi za uniformnost:
H0: Ri ~ U[0,1]
H1: Ri ~ U[0,1]
Odbacivanje nulte hipoteze H0, znai da neuniformnost nije utvrena.
Testovi za nezavisnost:
H0: Ri ~ nezavisno
Na osnovu statistike:
D = max| F(x) - SN(x)|
Procedura- Kolmogorov-Smirnov Test
Korak 1. Sortirati podatke
R(1) R(2)... R(N)
Korak 2. Izraunati
Korak 3. Izraunati
Korak 4. Pronau se iz tabele kritine vrednosti D (za -tanost i N)
Korak 5. Ako je D D prihvata se hipoteza, u suprotnom odbacuje se H 0
(uniformna raspodela)
Primer:
brojevi 0.44,
Korak 1:
Korak 2:
Pretpostavimo da su generisani
0.81, 0.14, 0.05, 0.93
Step 3:
Step 4:
Odrediti x: x = F-1(r)
=0.05
Metod odbacivanja
Korisan naroito kada inverzna funkcija raspodele ne postoji u zatvorenom obliku,
tzv.proreivanje
Primer: Za generisanje sluajne promenljive, X ~ U(1/4, 1)
dogaaja
Modelovanje ulaza
49. Koraci pri modelovanju ulaza.
Ulazni modeli predstavljaju pokretaku snagu za simulacioni model.
Kvalitet izlaza ne moe biti bolji od kvaliteta ulaza.
Analizirae se 4 koraka razvoja ulaza modela:
1. Prikupljanje podataka iz realnog sistema
2. Identifikovanje raspodelu verovatnoe koja predstavlja ulazni proces
3. Odreivanje parametara raspodele
4. Procena odabrane raspodele
Histogrami
Izbor familija raspodela
Parametarska estimacija
Testovi fitovanja (Goodness-of-fit)
Fitovanje nestacionarnog procesa
Primer: Broj klijenata koji dolaze u prodavnicu u toku jednog sata, broj
defekata koji se pronau na 30m2 lima metala
Normalna: raspodela procesa je zbir broja komponenti procesa
Primer: vreme potrebno za sklapanju proizvoda je jednako zbiru
vremena potrebnog za svaku operaciju pri sklapanju
Napomena: dozvoljava negativne vrednosti (nije mogue za vreme)
Eksponencijalna: vreme izmeu nezavisnih dogaaja ili vreme procesa bez
pamenja
Primer: Vremena meudolazaka velike populacije potencijalnih klijenata
Veoma varijabilna, previe upotrebljavana zbog prilagodljivog modela
Ako je vreme meudolazaka eks, broj dogaaja u odr. vremenskom
periodu je Poas.
Weibull: vreme do otkaza komponente
Primer: vreme do otkaza hard diska
Eksponencijalna je specijalan sluaj Weibull raspodele
Diskretna ili kontinualna uniformna: modeli potpune neizvesnosti (kada
nema podataka)
Svi ishodi su podjednako verovatni
Trouglasta: Proces kod koga je poznata minimalna, najverovatnija i
maksimalna vrednost
Primer: minimalna, najverovatnije i maksimalno vreme potrebno za
testiranje proizvoda
Empirijska: ponovno uzorkovanje prikupljenih podataka
esto se koristi kada se ne moe teorijski odrediti odgovarajua
raspodela
Zapamtiti fizike karakteristike procesa
Da li je priroda procesa diskretna ili kontinualna? Da li je ogranien?
Opseg
vrednosti:
Cilj: dobiti dobru aproksimaciju rezultati simulacije
gde je:
n = broj razmatranih perioda,
t = duina vremenskog intervala
Cij = broj dolazaka u toku i-tog intervala na j-tom periodu (npr. danu)
Primer: Podeliti 10-asovni radni dan [8,18] u jednake intervale k = 20 sa duinom t
= 1/2, i za posmatrana n =3 dana
Priroda procesa.
Kao model ulaza obino se koriste uniformna, trouglasta i beta raspodela.
Primer: Planiranje proizvodnje
Ulaz je obim prodaje razliitog proizvoda koji se zahteva, prodavac proizvoda
XYZ tvrdi da:
Prodavae se ne manje od 1000 jedinica i ne vie od 5000 jedinica.
S obzirom na iskustvo, prodavac veruje da su 90% anse da se proda
vie od 2000 jedinica, a 25% anse da se proda vie od 3000 jedinica, i
samo 1% anse za prodaju vie od 4000 jedinica.
Prevoenjem datih informacija u kumulativne verovatnoe dobija se:
Analiza izlaza
61. Interval pouzdanosti.
Takasti estimator.
Posebne mere performansi: kvantil ili percentil opisuju nivo performansi koje mogu biti
isporuen sa datom
verovatnoom
p
Estimacija kvantila: inverzni problem procene proporcije ili verovatnoe.
Npr. Za 0.85 kvantil od Y je p=0.85
Posmatra se histogram sluajne promenljive Y:
Nai tako da 100p% histograma bude levo od (manje od) .
esto se koristi medijana koja je 0.5 kvantil ili 50-ti percentil
Primer: ako se posmatra 250 ekanja klijenata {Y1, ... Y250}, estimacija 85-tog
percentila ekanja je vrednost takvo da se je 0.85250213 od posmatranih
vrednosti manja ili jednaka
koji zadovoljava R R0 i
grupa uzoraka.
pouzdanosti za :
Primer Call Center: proceniti iskorienost agenta tokom prva 2 sata radnog dana.
Poetna vrednost uzorka veliine R0 = 4 je usvojena i inicijalna procena
varijanse uzorka je
S02 = (0.072)2 = 0.00518.
Dozvoljena greka je = 0.04, a interval poverenja je 1- = 0.95, tada,
konana veliina uzorka mora biti bar:
Za konanu veliinu uzorka:
Pri emu je
Procena greke
a) Stacionarna vremenska serija Yi ima pozitivnu
autokorelaciju.
k > 0 za skoro svako k
b) Stacionarna vremenska serija Yi ima negativnu autokorelaciju.
k < 0 za skoro svako k
c) Nestacionarna vremenska serija sa trendom rasta
Oekivana vrednost procene varijanse je:
vrednosti za d i n:
nepristrasan (unbiased) estimator sa .
Ako c.i. Potpuno sadri 0, nema jakih statistikih dokaza da je jedan sistem bolji
od drugog