Opsamling eksakte modeller Fordele Praktiske til initierende analyser/dimensionering Ofte nemme at regne på. Kan bruges til at løse optimeringsopgaver, som ellers ville kræve snedige simulationsdesigns. Ulemper Kræver generelt at diverse ventetider er eksponentialfordelte. Faste rammer for serverdiscipliner mv. Svært at modellere ikke-standard køsystemer. AGR/PSE (I17) VS7-9. minimodul 1 / 22
Klassisk outputanalyse Terminerende simulation Simulation i tidsrum T (fast eller stokastisk tidsrum). F.eks. et produktionssystem over et bestemt antal timer eller indtil en på forhånd specificeret hændelse indtræffer. Kan lave mange uafhængige simulationer. Performancestørrelser beregnes for hver simulation og kombineres (generelt let pga. uafhængighed). Ligevægtssimulation System kører konstant, dvs. (i princippet) simulationstid t. F.eks. kommunikationssystemer; visse produktionssystemer. Lav én lang simulation observationer ikke uafhængige. Performancestørrelser beregnes fra én/få simulationer. AGR/PSE (I17) VS7-9. minimodul 2 / 22
Generelt om outputanalyse Ønsker at studere opførsel af stokastisk proces {X (t) : t 0}, bestemt af køsystem, med diskret tilstandsrum {0, 1,...}. F.eks. kan X være antal kunder i systemet; 0-1 variabel, som beskriver om ekspedient optaget; 0-1 variabel, som beskriver om system blokeret osv. Terminerende simulation: ønsker at estimere µ(t ), hvor µ(t) = middelværdien af 1 t X (s) ds, (evt. givet starttilstand X (0) = j) t 0 Ligevægtsssimulation: antag at kønetværk har ligevægtsfordeling, sådan at lim t P(X (t) = i) = p i, i = 0, 1,... Ønsker at estimere µ = lim t µ(t). AGR/PSE (I17) VS7-9. minimodul 3 / 22
Terminerende simulation analyse Simulér R gentagelser X 1 (t),..., X R (t) af X. Beregn Estimat for µ(t ): ^µ i (T ) = 1 T T 0 ^µ(t ) = R 1 X i (s) ds, i = 1,..., R. R i=1 ^µ i (T ). (1 α) 100% konfidensinterval ^µ(t ) ± t α/2,r 1 S R, hvor S 2 = 1 R 1 R (^µ i (T ) ^µ(t )) 2. Bemærk konfidensintervallet forudsætter som udgangspunkt normalfordelte ^µ i (T ) er. i=1 AGR/PSE (I17) VS7-9. minimodul 4 / 22
Eksempel på terminerende simulation M/G(1, )-kø med ankomsintensitet λ = 0.1 per minut; normalfordelte ekspeditionstider med middelværdi 9 minutter, spredning 2 minutter. Estimat for opholdstid i løbet af de første 3 timer af dagen? Lav et antal kørsler af 3 timers simulation i Enterprise Dynamics. F.eks. V 1,..., V 12 givet ved 708, 1095, 764, 750, 739, 99, 114, 684, 1368, 279, 644, 1351. Estimat: ^µ(3) = 1 12 (V 1 + + V 12 ) 716. 95% konfidensinterval: (442; 990). AGR/PSE (I17) VS7-9. minimodul 5 / 22
Ligevægtssimulation Ønsker at estimere µ = lim t µ(t). I praksis benyttes approksimation µ µ(t ) for T stor (?). Bias af estimatorer Antag f.eks. at X (t) beskriver kølængde i et køsystem. Hvis vi starter fra et tomt system og simulerer i kort tid, vil ^µ(t ) typisk være mindre end µ, dvs. b T = E ^µ(t ) µ < 0. b T er estimatorens bias og er generelt forskellig fra 0 ifm. simulation af køsystemer. AGR/PSE (I17) VS7-9. minimodul 6 / 22
Ligevægtssimulation AGR/PSE (I17) VS7-9. minimodul 7 / 22
Reduktion af bias ved ligevægtssimulation Normalt vælges blandt følgende fremgangsmåder: 1 Vælg en typisk starttilstand (tilgængelig f.eks. hvis systemet kan observeres i virkeligheden). 2 Opstil en simplificeret model (f.eks. et Jacksonnetværk), beregn gnsnt. performancestørrelser og benyt dem til initialisering. 3 Lad systemet køre en vis tid (burn-in), før data opsamles. (mere præcist: t = T efter burn-in, dvs. når vi sætter t = 0 lige efter burn-in) AGR/PSE (I17) VS7-9. minimodul 8 / 22
Spredning på estimater Antag at E ^µ(t ) = µ (unbiased estimator). Spredning af ^µ(t )? Batch means Lad = T /n og sæt Y i = 1 i (i 1) X (t) dt, i = 1, 2,..., n. Y i er kaldes batch means er gnsntl. værdi af X (t) over tidsintervaller af længden. Bemærk at ^µ(t ) = n 1 n i=1 Y i. Hvis Y i er uafh. : (1 α) 100% konfidensinterval for µ er ^µ(t ) ± t α/2,n 1 S n, ( ^µ(t ) ± z α/2 S n for n stor) hvor S 2 = 1 n 1 n i=1 (Y i ^µ(t )) 2. Generelt er Y i er dog korrelerede. Hvad så? AGR/PSE (I17) VS7-9. minimodul 9 / 22
Spredning på estimater Betegn med ρ(k) den k te autokorrelation for {Y i : i = 1, 2,...}: ρ(k) = Cov(Y j, Y j+k ), k = 1, 2,... Var(Y j ) (Antager her at {Y i : i = 1, 2,...} er stationær, dvs. ρ(k) afhænger ikke af j.) Kan vise at ( S 2 ) E n = n/c 1 n 1 n 1 Var ^µ(t ), C = 1 + 2 Følgende mulige sammenhænge ml. Y i er: k=1 ( 1 k ) ρ(k). n 1 Uafhængighed/ingen korrelation: ρ(k) = 0, dvs. E(S 2 /n) = Var ^µ(t ). 2 Positiv korrelation: ρ(k) > 0, dvs. E(S 2 /n) < Var ^µ(t ). 3 Negativ korrelation: ρ(k) < 0, dvs. E(S 2 /n) > Var ^µ(t ). Man møder typisk positiv korrelation i simulation af køsystemer dvs. konfidensintervaller som antager uafh. bliver for smalle! AGR/PSE (I17) VS7-9. minimodul 10 / 22
Approksimativ beregning af spredning Vælges tilstrækkelig stor, er batch means uafhængige (afhængigheder udjævnes ). Dvs. konfidensinterval fra før gælder approksimativt. Hvad er tilstrækkelig stor? For et valg af, tjek om observationer (=batch means) kan antages uafhængige vha. autokorrelationer. Kan f.eks. undersøge autokorrelationsplot (k, ^ρ(k)), med 95% konfidensgrænser ^ρ(k) ± 1.96 n, k = 1, 2,... som forklaret ved 4. forelæsning. Kan også konstruere (konservativt!) formelt test for korrelation til at automatisere vurdering af uafhængighed af batch means. AGR/PSE (I17) VS7-9. minimodul 11 / 22
Formelt test for ρ(1) 0 Nøjes med at se på første autokorrelation ρ(1) = Cov(Y j,y j+1 ) Var(Y j ) Ej kritisk hvis ρ(1) 0, da vi så får et konservativt konfidensinterval for µ. Test derfor H 0 : ρ(1) 0 mod alternativet H 1 : ρ(1) > 0. Empirisk autokorrelation ^ρ(1) = n 1 i=1 (Y i ^µ(t ))(Y i+1 ^µ(t )) n i=1 (Y i ^µ(t )) 2 Ved test på 5% niveau accepteres H 0 hvis n c = 2 1 (^ρ(1) + (Y 1 ^µ(t )) 2 + (Y n ^µ(t )) 2 ) n 2 2 n i=1 (Y i ^µ(t )) 2 < 1.645 AGR/PSE (I17) VS7-9. minimodul 12 / 22
Kogebog til konservativ batchsimulation 1 Vælg burn-in-periode af lgd. d og opsamlingsperiode T 10d. 2 Vælg antal batches, så 100 n 400 og dermed = T /n. Beregn Y 1,..., Y n samt ^ρ(1). 3 Hvis ^ρ(1) > 0.2, forøg T med 50% til 100% og gå til 2. ^ρ(1) 0.2, ændr antal batches n, så 30 n 40. 4 Beregn ^ρ(1) for reviderede data og test om ρ(1) 0. Hvis ρ(1) 0 forkastes: forøg T 50% til 100% og gå til 2. Hvis ρ(1) 0 accepteres: beregn konfidensinterval for µ: ^µ(t ) ± t α/2,n 1 S n. AGR/PSE (I17) VS7-9. minimodul 13 / 22
Fastlæggelse af burn-in-periode Lav R uafhængige simulationer X 1 (t),..., X R (t) af X Betegn med Y rj det j te batch mean fra r te simulation. Bemærk at for hvert j er {Y rj : r = 1,..., R} uafhængige. Lad µ j = E Y rj. Så gælder µ j µ for j stor. Hvor stor? Estimat for µ j : Ȳ j = 1 R R r=1 Y rj (gsnt. over uafh. simulationer) Plot Ȳj mod j ligevægt når graf har stabilt forløb. Kan desuden angive 95% konfidensinterval for hver µ j : Ȳ j ± 1.96 S j R, S j = 1 R 1 R (Y rj Ȳj) 2. i=1 AGR/PSE (I17) VS7-9. minimodul 14 / 22
Fastlæggelse af burn-in (ED) 1 Vælg Experimentation Experimentation wizard. 2 Vælg Sub runs i Simulation method og specificér den ønskede periode for hvert batch mean under Observation period. 3 Specificér ønsket antal batch means i Number of observations. 4 Vælg Next og Add under Performance measures. Herunder vælges og navngives kombinationer at Atoms og Performance measures, som ønskes analyseret og derefter Next. AGR/PSE (I17) VS7-9. minimodul 15 / 22
Fastlæggelse af burn-in (ED) 5. Vælg Start experiment. 6. Efter endt kørsel, vælg Customized report og tilføj herefter Raw data og Graph. 7. Vælg Generate report. 8. Vælg enten at gemme de rå data som csv-fil og undersøg i f.eks. Excel; eller vælg Report preview og se tidsrækkeplot af batch means. AGR/PSE (I17) VS7-9. minimodul 16 / 22
Fastlæggelse af burn-in: eksempel 7. opgaveregning: M/M(1, 98) med a = b = A = 1. Det blev vist, at gennemsnitlig kølængde er L = 49 99 100 48.5. Setup ved simulation: Periodelængde på 2400 sekunder i 25 perioder, dvs. 25 successive batch means. Foretag simulation et passende antal gange og eksportér til f.eks. Excel for videre analyse. Plot for hver periode gennemsnit og 95% konfidensinterval. AGR/PSE (I17) VS7-9. minimodul 17 / 22
Fastlæggelse af burn-in: eksempel Ved 100 uafhængige simulationer fås nedenstående graf. Ca. 10 2400 = 24000 sekunders burn-in påkrævet. AGR/PSE (I17) VS7-9. minimodul 18 / 22
Fastlæggelse af periode (ED) 1 Vælg Experimentation Experiment wizard. 2 Angiv ved Warm-up period (sec) burn-in-perioden. 3 Vælg Sub runs i Simulation method og specificer den ønskede periode for hvert batch mean under Observation period. 4 Specificér ønsket antal batch means i Number of observations. 5 Vælg Next og Add under Performance measures. Herunder vælges og navngives kombinationer at Atoms og Performance measures, som ønskes analyseret og derefter Next. AGR/PSE (I17) VS7-9. minimodul 19 / 22
Fastlæggelse af periode (ED) 6. Vælg Start experiment. 7. Efter endt kørsel, vælg Customized report og tilføj herefter Raw data, Correlation (1. autokorrelation) og Correlation plot. 8. Vælg Generate report. 9. Gem rådata som csv-fil og analysér i Excel eller vælg Report preview for at se korrelationsplot samt beregnet korrelation af valgte batch means. AGR/PSE (I17) VS7-9. minimodul 20 / 22
Fastlæggelse af periode: eksempel M/M(1, 98) fra før. Burn-in på 60 timer, periodelængde på 1 time og 100 perioder. Korrelation for stor øg periodelængde. AGR/PSE (I17) VS7-9. minimodul 21 / 22
Rekapitulation Terminerende simulation Terminerende simulation er i princippet nemt; vi kan bruge teori for IID observationer. Ligevægtssimulation Vanskeligere end terminerende simulation: Skal tage højde for bias vha. burn-in. Svært at beregne spredning på estimatorer for lange runs. ED-manual fortæller, at uafhængige simulationer er at foretrække fremfor batch means med moderne computerkraft. Til dels korrekt men pas på med længde af burn-in!!! Spilder flere observationer, fordi burn-in skal droppes for hver simulation. AGR/PSE (I17) VS7-9. minimodul 22 / 22