Transcript Document
Managerial Decision Modeling A Practical Introduction to Management Science , 5ed by Cliff Ragsdale Chapter 12 Simulation Rasmus Rasmussen LOG350 Operasjonsanalyse 2 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 3 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 4 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 5 Metoder for risiko-analyse Best-Case/Worst-Case Analyse What-if Analyse Simulering Rasmus Rasmussen LOG350 Operasjonsanalyse 6 Best-Case/Worst-Case Analyse 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. Best Rasmus Rasmussen LOG350 Operasjonsanalyse 7 Mulige resultatfordelinger innenfor et område worst case best case worst case best case worst case best case worst case best case Rasmus Rasmussen LOG350 Operasjonsanalyse 8 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 9 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 10 Eksempel: Hungry Dawg Restaurants Hungry Dawg er en voksende restaurantkjede med en selv-forsikret 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 11 Implementere modellen Rasmus Rasmussen LOG350 Operasjonsanalyse 12 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 ? Rasmus Rasmussen LOG350 Operasjonsanalyse 13 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 14 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 input-cellene. Rasmus Rasmussen LOG350 Operasjonsanalyse 15 Random Number Generators Rasmus Rasmussen LOG350 Operasjonsanalyse 16 Eksempler på Diskrete sannsynlighetsfordelinger Rasmus Rasmussen LOG350 Operasjonsanalyse 17 Eksempler Kontinuerlige sannsynlighetsfordelinger Rasmus Rasmussen LOG350 Operasjonsanalyse 18 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 19 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 20 Revidering og simulering Skriv inn formelen direkte Eller velg fra menyene i Distributions Rasmus Rasmussen LOG350 Operasjonsanalyse 21 Definere RNG Rasmus Rasmussen LOG350 Operasjonsanalyse 22 Definere output Eller legg til: + PsiOutput() i cellen 2. Velg Results – Output – In Cell 1. Aktiver cellen du vil analysere Rasmus Rasmussen LOG350 Operasjonsanalyse 23 Risk Solver Pæren lyser = Interactive Simulation On Rasmus Rasmussen LOG350 Operasjonsanalyse 24 Simuleringsresultat Dobbeltklikk på cellen du vil ha resultat for Rasmus Rasmussen LOG350 Operasjonsanalyse 25 Mange ulike plot og tabeller Rasmus Rasmussen LOG350 Operasjonsanalyse 26 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 ... Rasmus Rasmussen LOG350 Operasjonsanalyse 27 Konfidensintervall for populasjonens sanne gjennomsnitt s 95% nedre konfidensg rense = y -1.96 n s 95% øvre konfidensg rense = y 1.96 n der: y utvalgets gjennomsni tt s = utvalgets standardav vik n = utvalgets størrelse (og n 30) Merk at etter hvert som n øker, innsnevres konfidensintervallet. Rasmus Rasmussen LOG350 Operasjonsanalyse 28 Konfidensintervall for populasjonens virkelige andel p (1 p ) 95% nedre konfidensg rense = p-1.96 n p (1 p ) 95% øvre konfidensg rense = p 1.96 n der: p andelen av utvalget som er mindre enn en verdi Yp n = utvalgsstø rrelsen (og n 30) Merk at etter hvert som n øker, innsnevres konfidensintervallet. Rasmus Rasmussen LOG350 Operasjonsanalyse 29 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 symetrisk, og 5% tilsvarer 2,5% i hver hale. NORMSINV(1-5%/2) ≈ 1,96 Rasmus Rasmussen LOG350 Operasjonsanalyse 30 Annen bruk av simulering Simulering brukes for å beskrive utviklingen, fordelingen og andre karakteristika for et resultatmål, når verdier til en eller flere input-variabler er usikre. Ofte er enkelte input-variabler 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 31 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? Rasmus Rasmussen LOG350 Operasjonsanalyse 32 Implementere & Simulere modellen Multiple simuleringer: Alternative mengder billetter for salg: Celle C7 =PsiSimParam(E9:E15) Rasmus Rasmussen LOG350 Operasjonsanalyse 33 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 34 Valg av mengde overbooking Valget vil avhenge av graden av risikoaversjon Rasmus Rasmussen LOG350 Operasjonsanalyse 35 Eksempel med lagerkontroll: Millennium Computer Corporation (MCC) MCC er en forhandler av datamaskiner – der konkurransen er meget hard. 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 36 Implementere& Simulere Modellen Rasmus Rasmussen LOG350 Operasjonsanalyse 37 Simuleringsresultater Rasmus Rasmussen LOG350 Operasjonsanalyse 38 Stokastisk optimering Målsetting: Minimere gjennomsnittslager. Variabler: bestillingspunkt og bestillingskvantum. Restriksjon: Gjennomsnittlig servicenivå minst 98%. Rasmus Rasmussen LOG350 Operasjonsanalyse 39 Optimering & Simulering Viser gjennomsnittsverdien av de 1000 ulike løsningene. Hver gang Solver velger nye verdier på beslutningsvaiablene kjøres en ny simulering med 1000 verdier, og nye gjennomsnitt blir beregnet. Viser utfallet for en av de 1000 løsningene fra en simulering. Hver av disse PsiOut cellene inneholder egentlig en vektor med 1000 ulike verdier. Solver forsøker å finne de verdiene på beslutningsvaiablene som gir lavest gjennomsnittsverdi på lageret, samtidig som gjennomsnittlig servicenivå er minst 98%. Rasmus Rasmussen LOG350 Operasjonsanalyse 40 Husk Seed opsjonen Rasmus Rasmussen LOG350 Operasjonsanalyse 41 God løsning Rasmus Rasmussen LOG350 Operasjonsanalyse 42 Lagerbeholdning opprinnelig strategi Rasmus Rasmussen LOG350 Operasjonsanalyse 43 Lagerbeholdning ny strategi Mer stabilt lagernivå. Volatiliteten er redusert. Rasmus Rasmussen LOG350 Operasjonsanalyse 44 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%. Rasmus Rasmussen LOG350 Operasjonsanalyse 45 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 46 Max 10% av utfallene mindre enn 98% servicenivå Rasmus Rasmussen LOG350 Operasjonsanalyse 47 Et prosjektvalgsproblem: TRC Technologies TRC har $2 million til investering i følgende nye R&D prosjekter. Inntektspotensiale Prosjekt 1 2 3 4 5 6 7 8 InvesteringSannsynlighet ($1,000s) suksess $250 0.9 $650 0.7 $250 0.6 $500 0.4 $700 0.8 $30 0.6 $350 0.7 $70 0.9 ($1,000s) Min Forventet Max $600 $750 $900 $1250 $1500 $1600 $500 $600 $750 $1600 $1800 $1900 $1150 $1200 $1400 $150 $180 $250 $750 $900 $1000 $220 $250 $320 TRC ønsker å velge de prosjektene som maksimerer selskapets forventede profitt. Rasmus Rasmussen LOG350 Operasjonsanalyse 48 Implementere & Simulere Modellen Unngå bruk av IF funksjoner Ett av de 1000 ulike forsøkene Gjenneomsnittet av 1000 verdier Hvordan kan en stokastisk modell bli LP Convex? Rasmus Rasmussen LOG350 Operasjonsanalyse 49 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. Rasmus Rasmussen LOG350 Operasjonsanalyse 50 Størst forventet profitt Men 9,9% sjanse for tap Rasmus Rasmussen LOG350 Operasjonsanalyse Husk å bruke Seed opsjonen! 51 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 Rasmus Rasmussen LOG350 Operasjonsanalyse 52 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... Rasmus Rasmussen LOG350 Operasjonsanalyse 53 End of Chapter 12 Rasmus Rasmussen LOG350 Operasjonsanalyse 54 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) Rasmus Rasmussen LOG350 Operasjonsanalyse 55 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 INT(6*RAND( ))+1 vil returnere verdien: 1 2 3 4 5 6 Rasmus Rasmussen LOG350 Operasjonsanalyse 56 Generere slumptall Rasmus Rasmussen LOG350 Operasjonsanalyse 57