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