Operasjonsanalytiske emner Del 19 Simulering Modeller med stokastiske variabler BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 1 Introduksjon til simulering I mange regneark kan verdien i en eller flere celler som representerer uavhengige variabler (X1, X2, …, Xk) være ukjent eller usikker. Som resultat blir også verdien til den avhengige variabelen usikker: Y = f(X1, X2, …, Xk) Simulering kan benyttes til å analysere slike modeller. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 2 Stokastiske variabler & Risiko En stokastisk variabel (random variable) er en hvilken som helst variabel der verdien ikke kan predikeres eller fastslås med sikkerhet. Mange “input cells” i regnearkmodeller er egentlig stokastiske variabler. Framtidige råmaterialkostnader Framtidige rentesatser Framtidig antall ansatte i et firma Framtidig forventet etterspørsel etter et produkt Beslutninger basert på usikker informasjon medfører som regel risiko. “Risiko” impliserer også en viss mulighet for tap. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 3 Hvorfor analysere risiko ? Å sette inn forventede verdier for usikre celler sier oss ingen ting om variasjonen i resultatmålet vi baserer beslutningene på. Anta at en investering på $1,000 vil gi en forventet avkastning på $10,000 om to år. Vil du investere hvis... Resultatet kan variere fra $9,000 til $11,000? Resultatet kan variere fra -$30,000 til $50,000? Alternativer med samme forventet verdi kan ha forskjellig grad av risiko. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 4 Metoder for risiko-analyse Best-Case/Worst-Case Analyse What-if Analyse Simulering Hvorfor simulering: http://web.stanford.edu/~savage/faculty/savage/FOA%20Index.htm BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 5 Best-Case/Worst-Case Analyse Best case – sett inn de mest gunstige verdiene for hver av de usikre input-cellene. Worst case - sett inn de mest ugunstige verdiene for hver av de usikre input-cellene. Dette er lett å gjøre, men sier oss ingen ting om fordelingen av mulige utfall mellom best-case og worst-case grensene. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 6 Mulige resultatfordelinger worst case best case worst case best case worst case best case worst case best case BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 7 What-If Analyse Sett inn forskjellige mulige verdier for de usikre input-cellene og se hva som skjer. Dette er enkelt å gjøre i regneark. Problemer: Verdier kan bli valgt på en ”skjev” måte. Flere hundre eller tusener av scenarios kan være nødvendige for å gjengi en representativ fordeling. Gir ikke håndfaste bevis (facts and figures) som er nødvendige for å forsvare beslutninger overfor ledelsen. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 8 Simulering Minner om automatiserte What-If analyser. Verdier for usikre input-celler velges på en ”nøytral” (ikke ”skjev”) måte. Datamaskinen genererer flere hundre (eller tusener) av scenarier. Vi kan analysere resultatene fra disse scenariene for bedre å forstå usikkerheten i resultatmålet, og foreta beslutninger basert på solide empiriske beregninger. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 9 Eksempel: Hungry Dawg Restaurants Hungry Dawg er en voksende restaurantkjede med en selvforsikret sykelønnsordning. Inkluderte ansatte betaler $125 pr. måned til ordningen, Hungry Dawg betaler resten. Antall ansatte inkludert i ordningen endres fra måned til måned. Antall ansatte var 18,533 forrige måned og dette forventes å øke med 2% pr. måned. Gjennomsnittlig kostnad pr. ansatt var $250 forrige måned og forventes å øke med 1% pr. måned. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 10 Implementere modellen BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 11 Spørsmål vedrørende modellen Vil antall ansatte faktisk øke med nøyaktig 2% hver måned ? Vil gjennomsnittlig sykelønnskostnad pr. ansatt faktisk øke med nøyaktig 1% hver måned ? Hvor sannsynlig er det at de totale kostnadene for selskapet vil bli nøyaktig $36.125.850 neste år ? Hva er sannsynligheten for at selskapets totale sykelønnskostnader vil overstige f.eks. $38.000.000 ? BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 12 Simulering For å kunne ta forsvarlig hensyn til risikoen innebygd i modellen, må vi benytte simulering. Simulering er en 4 trinns prosess: 1. 2. 3. 4. Identifiser de usikre input-cellene i modellen. Benytt dekkende sannsynlighetsfordelinger for hver usikker celle. Kjør modellen n ganger, og registrer verdien til resultatmålet hver gang. Analyser det utvalget av mulige verdier for resultatmålet som simuleringen har skapt. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 13 Random Number Generators (RNG) En RNG (slumptall generator) er en matematisk funksjon som på slump skaper (genererer) en verdi fra en bestemt sannsynlighetsfordeling. Vi kan benytte RNGs for usikre celler (stokastiske variabler), slik at vi trekker (simulerer) verdier fra sannsynlighetsfordelingene for de forskjellige usikre inputcellene. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 14 Random Number Generators BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 15 Eksempler på Diskrete sannsynlighetsfordelinger BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 16 Eksempler Kontinuerlige sannsynlighetsfordelinger BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 17 Diskrete kontra kontinuerlige stokastiske variabler En diskret stokastisk variabel kan anta verdier fra en gitt, tellbar mengde mulige verdier (vanligvis heltall). Eksempel: Antall defekte dekk på en ny bil kan være: 0, 1, 2, 3, eller 4 (5 hvis den har reservehjul). En kontinuerlig stokastisk variabel kan anta verdier fra en uendelig mengde innenfor et gitt intervall. Eksempel: Mengden av drivstoff i en ny bil kan være en hvilken som helst verdi mellom 0 og maksimal kapasitet på drivstofftanken. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 18 Klargjøre modellen for simulering Anta at vi har analysert historiske data, og funnet at: Endringen i antall ansatte (som dekkes av sykelønnsordningen) hver måned er fordelt likt fra 3% reduksjon til 7% økning. Gjennomsnittlig kostnad (ved sykelønnsordningen) pr. ansatt er normalfordelt med en gjennomsnittlig økning på 1% pr. måned og et standardavvik på $3. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 19 Revidering og simulering Skriv inn formelen direkte Eller velg fra menyene i Distributions BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 20 Definere RNG BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 21 Definere output Eller legg til: + PsiOutput() i cellen 2. Velg Results – Output – In Cell 1. Aktiver cellen du vil analysere BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 22 Risk Solver Pæren lyser = Interactive Simulation On BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 23 Simuleringsresultat Dobbeltklikk på cellen du vil ha resultat for BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 24 Mange ulike plot og tabeller BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 25 Mangler ved begrensede utvalg Gjennomkjøringene av vår modell representerer et utvalg fra (den uendelige) populasjonen av alle mulige gjennomkjøringer. Anta at vi repeterte en simulering med samme antall gjennomkjøringer. Q: Ville vi få de samme statistiske resultatene ? A: NEI (Bare hvis vi benytter SEED-funksjonen) Etter hvert som utvalgsstørrelsen (antall gjennomkjøringer) øker, vil de statistiske egenskapene konvergere mot de sanne verdiene til hele populasjonen. Vi kan også lage konfidensintervall for en rekke statistiske egenskaper for utvalget ... BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 26 Konfidensintervall for populasjonens sanne gjennomsnitt s n s 95% øvre konfidensg rense = y 1.96 n der: 95% nedre konfidensg rense = y -1.96 y utvalgets gjennomsni tt s = utvalgets standardav vik n = utvalgets størrelse (og n 30) Merk at etter hvert som n øker, innsnevres konfidensintervallet. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 27 Konfidensintervall for populasjonens virkelige andel 95% nedre konfidensg rense = p-1.96 p (1 p ) n 95% øvre konfidensg rense = p 1.96 p (1 p ) n der: p andelen av utvalget som er mindre enn en verdi Y p n = utvalgsstø rrelsen (og n 30) Merk at etter hvert som n øker, innsnevres konfidensintervallet. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 28 Konfidensintervall i Excel Verdiene fra standard normalfordelingen kan finnes direkte i Excel med funksjonen =NORMSINV(1-α/2) Et 95% konfidensnivå tilsvarer 5% signifikansnivå. Normalfordelingen er symmetrisk, og 5% tilsvarer 2,5% i hver hale. NORMSINV(1-5%/2) ≈ 1,96 BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 29 Annen bruk av simulering Simulering brukes for å beskrive utviklingen, fordelingen og andre karakteristika for et resultatmål, når verdier til en eller flere inputvariabler er usikre. Ofte er enkelte inputvariabler kontrollert av beslutningstakeren. Vi kan benytte simulering til å finne verdier på kontrollerbare variabler som medfører at ”systemet” opereres optimalt. Følgende eksempel illustrerer prosessen. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 30 Eksempel på et reservasjonproblem: Piedmont Commuter Airlines PCA Flight 343 flyr mellom en liten regional flyplass og en stamruteplass. Flyet har 19 seter, mange er ofte tomme. Flybilletten koster $150 per sete. Det er 10% sannsynlighet for at et solgt sete står tomt. Hvis PCA overbook’er, så må de i gjennomsnitt betale $325 for hver passasjer som blir stående igjen. Etterspørselen etter seter er stokastisk, som følger: Etterspørsel 14 15 16 17 18 19 20 21 22 23 24 25 Sannsynlighet .03 .05 .07 .09 .11 .15 .18 .14 .08 .05 .03 .02 Hva er det optimale antall seter som bør selges? BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 31 Implementere & Simulere modellen Multiple simuleringer: Alternative mengder billetter for salg: Celle C7 =PsiSimParam(E9:E15) BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 32 Resultat fra alle simuleringene Lag en tabell for alle 7 simuleringer: Kolonne med standradavvik: =PsiStdDev($C$15;G9) Kolonne med gjennomsnitt:=PsiMean($C$15;G9) Kolonne med max:=PsiMax($C$15;G9) Kolonne med min:=PsiMin($C$15;G9) Lag et plott for forventning og risiko: 1. Velg kolonnene for standardavvik og gjennomsnitt 2. Sett inn et plott/scatterdiagram. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 33 Valg av mengde overbooking Valget vil avhenge av graden av risikoaversjon BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 34 Eksempel med lagerkontroll: Millennium Computer Corporation (MCC) MCC er en forhandler av datamaskiner – i hard konkurranse. Stock Out (utsolgt) forekommer på en populær skjerm. Dagens etterbestillingspunkt er 28. Nåværende ordrestørrelse er 50. Daglig etterspørsel og leveringstid varierer som følger: Etterspørsel: Sannsynlighet: 0 1 2 3 4 5 6 7 8 9 10 0.01 0.02 0.04 0.06 0.09 0.14 0.18 0.22 0.16 0.06 0.02 Leveringstid: Sannsynlighet: 3 4 5 0.2 0.6 0.2 MCC’s eiere ønsker å bestemme etterbestillingspunktet og ordrestørrelsen som gir 98% service grad, og samtidig holde gjennomsnittslageret så lite som mulig. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 35 Implementere& Simulere Modellen BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 36 Simulerings -resultater BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 37 Stokastisk optimering Målsetting: Minimere gjennomsnittslager. Variabler: bestillingspunkt og bestillingskvantum. Restriksjon: Gjennomsnittlig servicenivå minst 98%. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 38 Optimering & Simulering BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 39 Husk Seed opsjonen BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 40 God løsning BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 41 Lagerbeholdning opprinnelig strategi BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 42 Lagerbeholdning ny strategi Mer stabilt lagernivå. Volatiliteten er redusert. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 43 Stor variasjon i Servicenivå Det er 39,3% av utfallene som har et servicenivå mindre enn 98%, noen ganger så lavt som 89%. Med et bestillingspunkt på 36 og ordrekvantum på 7, er det nesten 40% sjanse for at servicenivået blir mindre enn 98%. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 44 Nye typer restriksjoner Value at risk constraint (VaR): Kan spesifisere hvor stor andel av utfallene i en simulering som må tilfredstille en restriksjon. For eksempel 90% av utfallene må ha en gjennomsnittlig servicegrad på 98%. Conditional Value at risk constraint (CVaR) Legger restriksjon på gjennomsnittlig størrelse på avviket fra restriksjonen for de ulike utfallene i en simulering. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 45 Max 10% av utfallene mindre enn 98% servicenivå BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 46 Et prosjektvalgsproblem: TRC Technologies TRC har $2 million til investering i følgende nye R&D prosjekter. Prosjekt 1 2 3 4 5 6 7 8 Investering ($1000) 250 650 250 500 700 30 350 70 Sannsynlighet Suksess 0,9 0,7 0,6 0,4 0,8 0,6 0,7 0,9 Inntektspotensiale ($1000) Min Forventet 600 750 1250 1500 500 600 1600 1800 1150 1200 150 180 750 900 220 250 Max 900 1600 750 1900 1400 250 1000 320 TRC ønsker å velge de prosjektene som maksimerer selskapets forventede profitt. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 47 Implementere & Simulere Modellen BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 48 Stokastisk Transformasjon Solver har transformert en stokastisk modell til en deterministisk ekvivalent modell. Denne modellen er her lineær. Den kan dermed løses av en lineær solver, som raskt finner globalt optimum. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 49 Størst forventet profitt Men 9,9% sjanse for tap BØK710 OPERASJONSANALYTISKE EMNER Husk å bruke Seed opsjonen! Rasmus Rasmussen 50 Maksimere sjansen for profitt tilsvarende minst 1000 Minimere sjansen for at profitten blir mindre enn 1000 Nå er modellen stokastisk, og må løses med Evolutionary Solver BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 51 Risikostyring Løsningen som maksimerer forventet profitt har også en stor mulighet for å gå med tap (10%). Anta at TRC foretrekker en løsning som maksimerer sannsynligheten for å tjene minst $1 million samtidig som det ikke er mer enn 5% sannsynlighet for å gå med tap. Vi kan benytte Risk Solver Platform for å finne slike løsninger... BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 52 Hvordan RNGs virker RAND() funksjonen returnerer uniformt (lik) fordelte slumptall mellom 0,0 og 0,9999999. Anta at vi ønsker å simulere resultatet av å foreta myntkast. La 1 representere “krone” og 2 representere “mynt”. Vurdér følgende RNG: =IF(RAND()<0,5;1;2) BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 53 Simulere Terningkast Vi ønsker at verdiene 1, 2, 3, 4, 5 & 6 skal opptre tilfeldig med lik sannsynlighet. Bruk følgende RNG: =INT(6*RAND())+1 Hvis 6*RAND( ) ender i intervallet: 0.0 to 0.999 1.0 to 1.999 2.0 to 2.999 3.0 to 3.999 4.0 to 4.999 5.0 to 5.999 BØK710 OPERASJONSANALYTISKE EMNER INT(6*RAND( ))+1 vil returnere verdien: 1 2 3 4 5 6 Rasmus Rasmussen 54 Generere slumptall BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 55 Slutt på kapittel 19 BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 56
© Copyright 2024