Stokastiske processer og køteori 9. kursusgang Anders Gorst-Rasmussen Institut for Matematiske Fag Aalborg Universitet 1
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. OPSAMLING EKSAKTE MODELLER 2
Terminerende simulation: KLASSISK OUTPUTANALYSE Simulation i tidsrum T til en på forhånd specificeret hændelse. F.eks. et produktionssystem over et bestemt antal timer. 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. KLASSISK OUTPUTANALYSE 3
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: estimér µ(t), idet µ(t) = 1 t t 0 X(s) ds, givet starttilstand X(0) = j. Ligevægtsssimulation: antag at kønetværk har ligevægtsfordeling, sådan at lim P(X(t) = i) = p i, i = 0, 1,... t Ønsker at estimere µ = lim t µ(t). GENERELT OM OUTPUTANALYSE 4
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 X i (s) ds, i = 1,..., R. ^µ(t) = n 1 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. i=1 Bemærk konfidensintervallet forudsætter som udgangspunkt normalfordelte ^µ i (T) er. TERMINERENDE SIMULATION ANALYSE 5
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). EKSEMPEL PÅ TERMINERENDE SIMULATION 6
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. LIGEVÆGTSSIMULATION 7
LIGEVÆGTSSIMULATION 8
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 til initialisering. 3. Lad systemet køre en vis tid (burn-in), før data opsamles. Valgt starttilstand Ligevægts- starttilstand t = 0 Burn-in Dataopsamling t = T REDUKTION AF BIAS VED LIGEVÆGTSSIMULATION 9
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.) Generelt er Y i er dog korrelerede. Hvad så? SPREDNING PÅ ESTIMATER 10
Betegn med ρ(k) den k te autokorrelation for {Y i : i = 1, 2,...}: ρ(k) = Cov(X j, X j+k ) Var(X j ), k = 1, 2,... Antag at {Y i : i = 1, 2,...} er stationær. Kan vise at ( S 2 ) E n = n/c 1 n 1 Var ^µ(t), C n 1 = 1 + 2 k=1 ( 1 k ) ρ(k). n Følgende mulige sammenhænge ml. Y i er: 1. Uafhængighed: ρ(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! SPREDNING PÅ ESTIMATER 11
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 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. APPROKSIMATIV BEREGNING AF SPREDNING 12
FORMELT TEST FOR ρ(1) 0 Nøjes med at se på første autokorrelation ρ(1) = Cov(X j,x j+1 ) Var(X 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 < 1.645 i ^µ(t)) 2 FORMELT TEST FOR ρ(1) 0 13
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. KOGEBOG TIL KONSERVATIV BATCHSIMULATION 14
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 ). i=1 FASTLÆGGELSE AF BURN-IN-PERIODE 15
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. FASTLÆGGELSE AF BURN-IN (ED) 16
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. FASTLÆGGELSE AF BURN-IN (ED) 17
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 q = 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. FASTLÆGGELSE AF BURN-IN: EKSEMPEL 18
Ved 100 uafhængige simulationer fås nedenstående graf. Ca. 10 2400 = 24000 sekunders burn-in påkrævet. Gnsnt. batch mean 20 30 40 50 60 5 10 15 20 25 j FASTLÆGGELSE AF BURN-IN: EKSEMPEL 19
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. FASTLÆGGELSE AF PERIODE (ED) 20
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. FASTLÆGGELSE AF PERIODE (ED) 21
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. ACF 0.2 0.0 0.2 0.4 0.6 0.8 1.0 0 5 10 15 20 Lag FASTLÆGGELSE AF PERIODE: EKSEMPEL 22
Terminerende simulation: REKAPITULATION 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. REKAPITULATION 23