Operasjonsanalytiske emner Del 12 Dynamisk Programming Sekvensielle beslutninger
Operasjonsanalytiske emner Del 12 Dynamisk Programming Sekvensielle beslutninger BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 1
Introduksjon Dynamisk Programmering er en generell metode for å løse komplekse problemer ved å dele problemet inn i mindre subproblemer, og løse subproblemene ett trinn i gangen, rekursivt, dvs. bakfra. Idéen er at uansett tidligere beslutninger, så velges en strategi som gir det beste resultatet fra det aktuelle beslutningstrinn og til siste beslutning. Dette er det grunnleggende optimalitetsprinsippet Dynamisk programmering gir altså som løsning en beslutningsstrategi for de forskjellige beslutningstrinnene. Dynamisk programmering (DP) er en generell tenkemåte, ikke en detaljert teknikk for å løse spesifikke problemtyper. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 2
Et korteste reiseruteproblem Vi skal introdusere dynamisk programmering med et nettverksproblem – korteste reiserute. Optimalitetsprinsippet: Hvis en gitt node er på den optimale ruten, så må korteste vei fra den noden til målet også være på den optimale ruten. Inndelingen i subproblemer (av korteste vei i et nettverk) skjer bakfra: Første trinn består av nodene som ligger en grein unna endepunktet. Andre trinn består av nodene som ligger to greiner unna, osv. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 3
Nettverk for korteste reiserute 12 4 5 3 14 9 2 8 6 5 6 1 5 10 3 6 4 1 13 2 Trinn 4 BØK 710 OPERASJONSANALYTISKE EMNER 10 5 9 12 2 8 10 11 7 Trinn 3 Trinn 2 Trinn 1 Rasmussen 4
Trinn 1 – Siste beslutningstrinn Startpunkt Reiserute Avstand Node Fra – Til «Kostnad» Tilstand 1 Beslutning 1 Resultat 1 S 1 D 1 R 1 Node 8 8 – 10 5 Node 9 9 – 10 2 12 4 5 3 14 9 2 Her er det bare én mulig beslutning i hver tilstand. Den beslutningen må derfor være den optimale for den tilstanden. 5 8 6 5 6 1 5 10 3 6 4 1 13 2 5 12 11 BØK 710 OPERASJONSANALYTISKE EMNER 10 2 9 2 8 7 10 Rasmussen 5
Trinn 2 – Nest siste beslutningstrinn Startpunkt Reiserute Avstand Stoppunkt Avstand Sum rekursivt Node Fra – Til «Kostnad» Node Resultat resultat Tilstand 2 Beslutning 2 Resultat 2 Tilstand 1 Tilstand 2 S 2 D 2 R 2 S 1 R 1 f 2 Node 5 5– 8 3 Node 8 5– 9 9 Node 9 2 11 6– 8 6 Node 8 5 11 6– 9 5 Node 9 2 7 7– 8 8 Node 8 5 13 7– 9 10 Node 9 2 12 Node 6 Node 7 I node 5 kan vi dra til node 8 eller 9. Til node 8 er avstanden 3, og minste avstand derfra til enden (fra 8 til 10) er 5, sum avstand er da 8. (Se første linje for Node 5. ) Om vi reiser via node 9 er sum avstand 11. Minste avstand fra node 5 er altså via node 8. Tilsvarende er minste avstand fra node 6 lik 7, mens fra node 7 er minste avstand 12. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 6
Grafisk illustrasjon av DP i nettverk 8 12 4 5 3 14 9 2 1 5 6 10 3 7 1 13 2 12 11 8 7 10 2 5 12 5 6 6 4 5 9 2 8 10 I trinn 2 (nest siste etappe) er det 3 mulige tilstander: vi befinner oss i node 5, 6, eller 7. For hver tilstand beregner vi resultatet av alle mulige beslutninger (reiser) til neste trinn (nodene i trinn 1), og velger beste beslutning. Vi ender da opp med optimal reiserute (strategi) for hver mulig node (tilstand) i trinn 2, dvs. nest siste etappe, inkludert trinn 1 (siste etappe), helt fram til målet. Merk at det er tilstandene (nodene) som knytter trinnene sammen. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 7
Trinn 3 – Tredje siste etappe Startpunkt Reiserute Avstand Stoppunkt Avstand Sum rekursivt Node Fra – Til «Kostnad» Node Resultat resultat Tilstand 3 Beslutning 3 Resultat 3 Tilstand 2 Tilstand 3 S 3 D 3 R 3 S 2 f 3 Node 4 4– 5 12 Node 5 8 20 4– 6 14 Node 6 7 21 3– 5 6 Node 5 8 14 3– 6 10 Node 6 7 17 3– 7 4 Node 7 12 16 2 -5 13 Node 5 8 21 2– 6 12 Node 6 7 19 2– 7 11 Node 7 12 23 Node 2 For hver mulig tilstand (node) må vi finne optimal beslutning (reiserute), når vi tar hensyn til resultatet (avstanden) også for de påfølgende trinnene. Vi velger mao. den beste kombinasjonen av beslutninger for disse trinnene (3 – 2 – 1). BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 8
Grafisk illustrasjon av trinn 3 20 8 12 4 5 3 14 9 2 6 14 1 5 10 3 7 1 13 19 2 12 11 8 7 10 2 5 12 5 6 6 4 5 9 2 8 10 I trinn 3 er det også 3 mulige tilstander: vi befinner oss i node 4, 3, eller 2. For hver tilstand beregner vi resultatet av alle mulige beslutninger (reiser) til neste trinn (nodene i trinn 2), og velger beste beslutning. Vi ender da opp med optimal reiserute (strategi) for hver mulig node (tilstand) i trinn 3, inkludert trinn 2 og 1, helt fram til målet. Neste trinn, 4, er etappen foran, og er første etappe. Hvor mange tilstander har trinn 4? BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 9
Trinn 4 – Første etappe Startpunkt Reiserute Avstand Stoppunkt Avstand Sum rekursivt Node Fra – Til «Kostnad» Node Resultat resultat Tilstand 4 Beslutning 4 Resultat 4 Tilstand 3 Tilstand 4 S 4 D 4 R 4 S 3 f 4 Node 1 1– 4 2 Node 4 20 22 1– 3 5 Node 3 14 19 1– 2 1 Node 2 19 20 I dette eksemplet kan vi ikke velge vilkårlig rekkefølgen på trinnene, ettersom det er en logisk rekkefølge på beslutningstrinnene. Første etappe (beslutning) er derfor siste beslutningstrinn, fordi dynamisk programmering er en rekursiv metode, den starter bakfra. (Siste etappe er derfor første beslutningstrinn. ) Siste beslutningstrinn (første etappe) er normalt svært trivielt, det er som regel bare én tilstand (dvs. startnoden). Ettersom vi i de tidligere trinnene har fastslått resultatene som kan oppnås for alle kombinasjoner av beslutninger fram til (men ikke inkludert) det siste beslutningstrinnet, kan vi finne resultatet av en sekvens av beslutninger for enhver mulig beslutning på siste trinn. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 10
Grafisk illustrasjon av trinn 4 20 8 12 4 5 3 14 9 2 19 1 6 14 5 10 3 7 1 13 19 2 12 11 8 7 10 2 5 12 5 6 6 4 5 9 2 8 10 På siste beslutningstrinn (første etappe) er det bare én tilstand, startnoden. Det er 3 mulige beslutninger (greiner), som fører til neste beslutningstrinn. Siden vi på hvert tidligere trinn har beregnet optimal strategi for alle mulige tilstander, kan vi på siste trinn lett finne optimal strategi for hele problemet. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 11
S 4 D 4 R 4 S 3 f 4 Node 1 1– 4 2 Node 4 20 22 1– 3 5 Node 3 14 19 1– 2 1 Node 2 19 20 S 3 D 3 R 3 S 2 f 3 Node 4 4– 5 12 Node 5 8 20 4– 6 14 Node 6 7 21 3– 5 6 Node 5 8 14 3– 6 10 Node 6 7 17 3– 7 4 Node 7 12 16 2 -5 13 Node 5 8 21 2– 6 12 Node 6 7 19 2– 7 11 Node 7 12 23 S 2 D 2 R 2 S 1 R 1 f 2 Node 5 5– 8 3 Node 8 5– 9 9 Node 9 2 11 6– 8 6 Node 8 5 11 6– 9 5 Node 9 2 7 7– 8 8 Node 8 5 13 7– 9 10 Node 9 2 12 S 1 D 1 R 1 Sn Dn Rn Node 8 8 – 10 5 Trinn 4 1– 3 5 Node 9 9 – 10 2 Trinn 3 3– 5 6 Trinn 2 5– 8 3 Trinn 1 8 – 10 Node 3 Node 2 Node 6 Node 7 BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 5 12
Notasjon i Dynamisk Programmering Symbol Betydning Funksjon Sn Verdier på tilstandsvariabelen på trinn n Dn Beslutning på trinn n Rn Resultatet på trinn n Rn(Sn, Dn) tn Transformasjonsfunksjon Sn-1 = tn(Sn, Dn) fn Rekursivt totalt resultat for trinn 1, 2, …n fn(Sn, Dn) f*n Optimalt rekursivt resultat for tilstand Sn Dynamisk programmering deler problemet opp i N trinn: 1, 2, . . , n, …, N-1, N; hvor 1 er siste beslutning, men som løses først. På hvert trinn må en liste opp alle mulige tilstander S n. Det kreves stor innsikt, kreativitet og ekspertise å finne ut hvordan problemene kan deles opp i ulike trinn, og hva som utgjør tilstandsvariabelen på de ulike trinnene. Gitt en verdi på tilstandsvariabelen Sn kan en fatte ulike beslutninger Dn, med påfølgende resultat Rn. Transformasjonsfunksjonen tn vil basert på Sn og Dn beregne tilstanden på neste trinn Sn-1. Da kan en beregne totalt rekursivt resultat fn = Rn + f*n-1. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 13
Trinn: Input/output (tilstander) Beslutning Input fra trinn n+1 Output til trinn n-1 Trinn n Rekursivt resultat Resultat Merk: På trinn n har vi ikke løst trinn n+1 enda. Vi må derfor liste opp alle mulige tilstander Sn. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 14
Pakksekkproblemet (The Knapsack problem) er at N ulike varer kan pakkes i en pakksekk. Hver varetype har en gitt vekt og verdi. Problemet er å bestemme hvor mange enheter av hver type vare som skal pakkes for å maksimere total verdi, uten å overskride vektkapasiteten til pakksekken. Generelt sett er det et ressursallokeringsproblem: vi ønsker å fordele den knappe ressursen på beste måte. I vårt eksempel skal en velge blant fire kategorier jobber som skal utføres innen 10 arbeidsdager. Jobbene har ulik rating (profitt, viktighet, etc. ), og en ønsker å velge jobber som gir størst total rating. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 15
Produksjonsplanlegging Jobb kategori Antall jobber Antall dager pr. jobb Rating pr. jobb 1 4 1 2 2 3 3 8 3 2 4 11 4 2 7 20 Dette problemet kan deles opp i trinn basert på hvor mye av en jobbkategori som skal «pakkes» , dvs. utføres. Dvs. ett trinn for kategori 1, et annet trinn for kategori 2, etc. Vi kan i dette problemet velge rekkefølgen på trinnene fritt, det er ingen logisk nødvendig rekkefølge. Tilstandene i dette problemet er hvor mye av den knappe ressursen (10 arbeidsdager) vi har igjen til rådighet. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 16
Problembeskrivelse Parametere: N Yn Wn Sn Rn tn Q Antall jobbkategorier (trinn) Rating av jobbkategori n Arbeidstid medgått pr. jobb i kategori n Antall timer tilgjengelig for jobb n (på trinn n) Resultatet i kategori/trinn n Transformasjonsfunksjon trinn n Total kapasitet arbeidstid tilgjengelig n {1, 2, …, N} n {1, 2, …, N} Beslutningsvariabler: Dn Antall jobber utført av kategori n n {1, 2, …, N} Målfunksjon: Maksimer totalt resultat fra alle jobbkategorier. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 17
Restriksjoner: Sum arbeidstid medgått til alle jobbkategorier kan ikke overskride total arbeidstid tilgjengelig. Sum arbeidstid medgått på trinn n kan ikke overskride arbeidstid tilgjengelig på trinn n. Transformasjonsfunksjon: Antall timer tilgjengelig på trinn N er lik total kapasitet. Antall timer tilgjengelig på trinn n-1 er lik antall timer tilgjengelig på trinn n minus antall timer brukt på trinn n. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 18
Restriksjoner Rekursiv resultatfunksjon: Resultat første trinn er lik 0. Dynamisk programmering krever en litt kompleks matematisk formulering, som gjør den vanskelig notasjonsmessig. Heldigvis er den numeriske løsningen basert på enkle tabeller for hvert trinn, og er langt lettere å forstå og lære seg. For nye problemer er den største vanskeligheten å dele problemet i trinn, og finne tilstandsbeskrivelsene. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 19
Prinsippskisse for pakksekkproblemet Kan maksimalt fullføre én jobb i kategori 4 fordi en har kun 10 dager disponibelt, og hver jobb i kategori 4 trenger 7 dager. Trinn 4 Kategori 4 W 4 = 7 Y 4 = 20 BØK 710 OPERASJONSANALYTISKE EMNER Trinn 3 Kategori 3 W 3 = 4 Y 3 = 11 Trinn 2 Kategori 2 W 2 = 3 Y 2 = 8 Trinn 1 Kategori 1 W 1 = 1 Y 1 = 2 Rasmussen 20
Utnytter knapp ressurs maksimalt Trinn 1 – Jobb kategori 1 Rest kapasitet Antall Jobb type 1 Tidsbruk Jobb type 1 Resultat Jobb type 1 Tilstand 1 Beslutning 1 W 1 D 1 R 1=Y 1 D 1 S 1 D 1 (max 4) 1 D 1 f 1= R 1=2 D 1 10 4 4 8 7 4 4 8 6 4 4 8 4 4 4 8 3 3 3 6 2 2 2 4 1 1 1 2 0 0 På trinn 1, siste beslutning, trenger vi bare ta med den beste beslutning i hver tilstand. For alle øvrige trinn må en beregne konsekvensene av alle mulige beslutninger for hver tilstand. Om vi ikke på forhånd har analysert mulige beslutninger på de øvrige trinnene, kan vi liste alle mulige tilstander (rest arbeidstid); dvs. S 1 = 10, 9, 8, …, 2, 1, 0 timer ubrukt arbeidstid disponibel. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 21
Trinn 2 – Jobb kategori 2 Rest kapasitet Antall Jobb type 2 Tidsbruk Jobb type 2 Resultat Jobb type 2 Rest kapasitet Best resultat Sum rekursivt Tilstand 2 Beslutning 2 W 2 D 2 R 2=Y 2 D 2 Tilstand 1 resultat S 2 D 2 3 D 2 R 2=8 D 2 S 1=S 2 -W 2 D 2 f*1= R 1 f 2= R 2+f*1 10 0 10 8 8 1 3 8 7 8 16 2 6 16 4 8 24 3 9 24 1 2 26* 0 0 0 6 8 8 1 3 8 3 6 14 2 6 16 0 0 16* 0 0 0 3 6 6 1 3 8 0 0 8* 0 0 0 2 4 4* 6 3 2 BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 22
Trinn 3 – Jobb kategori 3 Rest kapasitet Antall Jobb type 3 Tidsbruk Jobb type 3 Resultat Jobb type 3 Rest kapasitet Best resultat Sum rekursivt Tilstand 3 Beslutning 3 W 3 D 3 R 3=Y 3 D 3 Tilstand 2 resultat S 3 D 3 4 D 3 R 3=11 D 3 S 2=S 3 -W 3 D 3 f*2 f 3= R 3+f*2 10 0 10 26 26 1 4 11 6 16 27* 2 8 22 2 4 26 0 0 0 3 8 8* 3 Merk at optimal beslutning ikke nødvendigvis medfører å benytte resterende ressurser fullt ut. Det er tilfellet bare på trinn 1. Ettersom resultatet er en funksjon av beslutningene på dette trinnet og de forrige trinnet, må vi også vurdere andre beslutninger enn den maksimale (Dn). Beslutningen vi gjør på tinn 3 er basert på det totale resultatet fra vår beslutning på trinn 3 og den beste korresponderende beslutningen på forrige trinn (2), som igjen inkluderer trinn 1. Vi velger den beste kombinasjonen av beslutninger for trinn 3 og trinn 2 (og dermed også trinn 1), ved å benytte en rekursiv resultatfunksjon som beregner resultatet for en sekvens av beslutninger. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 23
Trinn 4 – Jobb kategori 4 Rest kapasitet Antall Jobb type 4 Tidsbruk Jobb type 4 Resultat Jobb type 4 Rest kapasitet Best resultat Sum rekursivt Tilstand 4 Beslutning 4 W 4 D 4 R 4=Y 4 D 4 Tilstand 3 resultat S 4 D 3 7 D 4 R 4=20 D 4 S 3=S 4 -W 4 D 4 f*3 f 4= R 4+f*3 10 0 10 27 27 1 7 20 3 8 28* I det siste trinnet (trinn N) antas alle ressursene å være tilgjengelig. Dvs. vi står ved begynnelsen av sekvensen av beslutninger, og alle ressursene er ubrukte. Det er typisk bare én tilstand ved dette siste nivået av ressurser – det maksimale. Ettersom vi allerede har fastslått resultatene som kan oppnås for alle kombinasjoner av beslutninger fram til (men ikke inkludert) det siste beslutningstrinnet, så kan vi finne resultatet av en sekvens av beslutninger for enhver mulig beslutning på det siste trinnet. Dette gjøres ved å beregne den rekursive resultatfunksjonen for beslutningen på det siste trinnet og den forrige beste beslutningen for de tilstandene som blir resultatet av beslutningen på det siste trinnet. Det er transformasjonsfunksjonen som relaterer tilstandene i forrige trinn (n-1) tilstandene og beslutningene i dette trinnet (n). BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 24
S 4 10 D 3 0 1 W 4 D 4 0 7 R 4=Y 4 D 4 0 20 S 3=S 4 -W 4 D 4 10 3 f*3 27 8 f 4= R 4+f*3 27 28* S 3 10 D 3 0 1 2 0 W 3 D 3 0 4 8 0 R 3=Y 3 D 3 0 11 22 0 S 2=S 3 -W 3 D 3 10 6 2 3 f*2 26 16 4 8 f 3= R 3+f*2 26 27* 26 8* 2 D 2 0 1 2 3 0 1 2 0 1 0 W 2 D 2 0 3 6 9 0 3 6 0 3 0 R 2=Y 2 D 2 0 8 16 24 0 8 16 0 8 0 S 1=S 2 -W 2 D 2 10 7 4 1 6 3 0 2 f*1= R 1 8 8 8 2 8 6 0 4 f 2= R 2+f*1 8 16 24 26* 8 14 16* 6 8* 4* S 1 10 7 6 4 3 2 1 0 D 1 4 4 3 2 1 0 W 1 D 1 4 4 3 2 1 0 f 1= R 1=2 D 1 8 8 6 4 2 0 3 S 2 10 6 3 BØK 710 OPERASJONSANALYTISKE EMNER Sn Trinn 4 Trinn 3 Trinn 2 Trinn 1 Totalt Dn 1 0 Wn Dn 7 0 3 0 10 Rn=Yn Dn 20 0 8 0 28 Optimal strategi finnes ved å «nøste seg tilbake» fra trinn N til trinn 1. 1 jobb type 4 og 1 jobb type 2 krever 10 timer og gir et resultat på 28 (det optimale resultatet). 25 Rasmussen
Optimal utskiftingsstrategi En bedrift har en gammel maskin som en vurderer å bytte ut med en ny maskin. Nåverdier fra den gamle maskinen er: Salgstidspunkt 0 1 2 3 Nåverdi gammel 90 140 170 180 Bedriften kan altså selge maskinen straks, og oppnå en nåverdi på 90, eller benytte den i inntil 3 år før den selges. Den nye maskinen gir følgende nåverdier: Salgstidspunkt 1 2 3 4 5 Nåverdi ny 20 100 150 160 140 Om den nye maskinen drives i 5 år vil den totalt gi en nåverdi på 140. Her er renten i = 10% pr. periode benyttet. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 26
Inndeling i trinn Dette utskiftingsproblemet kan deles opp i flere beslutningstrinn. I et trinn kan vi bestemme hvor lenge vi skal beholde den gamle maskinen, i neste trinn bestemmes hvor lenge vi skal beholde den nye maskinen. Dynamisk programmering starter bakfra, bakfra første trinn (trinn 1) er derfor hvor lenge vi skal beholde den nye maskinen. (Antar at denne ikke skal gjenanskaffes. ) Andre og siste trinn (trinn 2) er da beslutningen om hvor lenge vi skal beholde den gamle maskinen, før den byttes ut. Dette er den første beslutningen BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 27
Tilstander og transformasjonsfunksjon Tilstandene er det som knytter beslutningstrinnene sammen, via transformasjonsfunksjonen. I dette tilfellet er tilstandene på de forskjellige beslutningstrinnene det tidspunktet vi befinner oss i. Beslutningene Dn angir altså hvor lenge vi skal drive maskinen på trinn n, og tilstandsvariabelen Sn angir hvilket tidspunkt vi befinner oss i på trinn n. Transformasjonsfunksjonen blir i dette tilfellet: BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 28
Rekursiv resultatfunksjon Resultatet på hvert trinn Rn er nåverdiene. På trinn 1 (siste beslutning - ny maskin) er resultatet R 1 lik nåverdiene fra den nye maskinen, avhengig av beslutningen D 1 om hvor lenge den skal beholdes. Men på trinn 2 (første beslutning – gammel maskin) er denne nåverdien R 1 fra ny maskin knyttet til tidspunktet for kjøp av ny maskin, dvs. tilstanden S 1. Nåverdien R 1 fra ny maskin er altså angitt på tidspunkt S 1, mens nåverdien fra R 2 er angitt på tidspunkt S 2. Transformasjonsfunksjonen knytter disse to tidspunktene (tilstandene Sn) sammen: S 1 = S 2 + D 2, dvs. nåtidspunktet for kjøp av ny maskin (S 1) er lik nåtidspunktet for gammel maskin (S 2) + levetiden for gammel maskin. Den rekursive resultatfunksjonen beregner begge nåverdiene (R 1 og R 2) til samme tidspunkt, dvs. tidspunkt S 2, nåtidspunktet for første beslutning: BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 29
Prinsippskisse for utskiftingsproblemet Beslutning: Levetid for maskin på trinn 2 Tidspunkt etter beslutning på trinn 2 Beslutning: Levetid for maskin på trinn 1 Tidspunkt start (nå) Tidspunkt slutt Trinn 2 gammel Trinn 1 Ny Rekursivt totalt resultat Resultat av beslutning på trinn 2 BØK 710 OPERASJONSANALYTISKE EMNER Vi må neddiskontere nåverdien for den nye maskinen i like mange år som vi beholder den gamle Resultat av beslutning på trinn 1 Rasmussen 30
Trinn 1 – Valg av levetid ny maskin Tidspunkt kjøp ny maskin Tilstand 1 S 1 0 Levetid for ny maskin Beslutning 1 D 1 1 2 3 BØK 710 OPERASJONSANALYTISKE EMNER 1 2 3 4 5 Nåverdi fra ny maskin Resultat 1 f 1 = R 1 20 100 150 160* 140 På trinn 1 (siste beslutning) trenger man bare ta med optimal beslutning i hver tilstand. Her er imidlertid alle mulige beslutninger i hver tilstand listet, for å være konsistent med øvrige trinn. Optimal levetid for ny maskin er selvsagt den som gir størst nåverdi, dvs. 160, ved en levetid på 4 år. Rasmussen 31
Tidspunkt nå Tilstand 2 S 2 0 Trinn 2 – Levetid gammel maskin Levetid gammel Beslutning 2 D 2 0 1 2 3 Optimal utskiftingsstrategi Trinn n Maskin 2 1 Gammel Ny Nåverdi gammel Tidspunkt kjøp ny Resultat 2 Tilstand 1 R 2 S 1 90 140 170 180 Levetid Beslutning Dn 2 4 6 0 1 2 3 Nåverdi Resultat Rn 170 160 302 Nåverdi ny Resultat 1 R 1 160 160 Total nåverdi Rekursivt resultat f 2=R 2 + R 1/(1+i)^D 2 250 285 302* 300 Den rekursive resultatfunksjonen er ikke bare summen av nåverdiene. Nåverdien fra den nye maskinen må neddiskonteres i like mange år som vi velge å beholde den gamle. Optimal strategi er altså å beholde den gamle maskinen i 2 år, det gir en nåverdi på 170. Etter 2 år kjøpes ny maskin, som beholdes i 4 år. Ved kjøpstidspunktet for den nye maskinen gir driften i 4 år en nåverdi på 160. Den nåverdien må neddiskonteres i 2 år for å kunne sammenlignes med nåverdien for den gamle maskinen (tidspunkt 0): 170 + 160/(1, 1) 2 = 302. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 32
Kontinuerlig utskifting/fornying Vi har så langt kun vurdert å skifte ut den gamle maskinen med ny maskin én gang. Ofte vil utskiftingene fortsette videre fram i tid, det er snakk om en kontinuerlig rekke av utskiftinger. En kan skifte ut hvert år, annet hvert år, osv. Salgstidspunkt 1 2 3 4 5 Nåverdi én ny 20 100 150 160 140 Annuitetsfaktor 11 5, 76 4, 02 3, 15 2, 64 Nåverdi evig 220 575 600 505 370 Annuitetsfaktor: Nåverdien av en evigvarende forskuddsannuitet med periodelengde t år og årsrente i. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 33
Trinn 1 &2 Kontinuerlige utskiftinger Tidspunkt kjøp ny maskin Tilstand 1 S 1 Levetid for ny maskin Beslutning 1 D 1 0 1 2 3 Tidspunkt nå Tilstand 2 S 2 0 3 3 Levetid gammel Beslutning 2 D 2 0 1 2 3 BØK 710 OPERASJONSANALYTISKE EMNER 600* Nåverdi gammel Tidspunkt kjøp ny Resultat 2 Tilstand 1 R 2 S 1 90 140 170 180 Det er ikke lenger optimalt å beholde den gamle maskinen i 2 år, Den bør selges straks. Jo lenger vi utsetter nåverdien fra de nye maskinene (600), jo større blir rentetapet (neddiskonteringen). På trinn 1 (siste beslutning) trenger man bare ta med optimal beslutning i hver tilstand, dvs. R 1 = 600 ved utskifting i ny hvert 3. år. Nåverdi fra ny maskin Resultat 1 f 1 = R 1 0 1 2 3 Nåverdi ny Resultat 1 R 1 Optimal utskiftingsstrategi Trinn n Maskin 2 1 Gammel Ny Total nåverdi Rekursivt resultat f 2=R 2 + R 1/(1+i)^D 2 600 600 690* 685 665 630 Levetid Beslutning Dn 0 3 Nåverdi Resultat Rn Rasmussen 90 600 690 34
Dynamisk programmering og utskiftinger Vi ser at optimal levetid for den nye maskinen er 4 år hvis vi bare skal kjøpe ny maskin én gang. Om vi derimot skal fornye den nye maskinen også i framtiden, er optimal strategi å bytte den ut hvert 3. år. Optimal levetid for den nye maskinen er altså avhengig av om det er en engangsinvestering eller en evigvarende utskifting. Det er verd å merke seg at levetiden for den gamle maskinen også er avhengig av hva vi gjør med den nye. Gammel maskin bør selges etter 2 år hvis ny maskin kjøpes kun én gang. Men gammel maskin bør selges straks hvis ny maskin gjenanskaffes i det uendelige. Vi ser at dagens beslutning (gammel maskin) er avhengig av framtidige beslutninger (ny maskin). Det er kjernen i dynamisk programmering – vi starter bakfra med siste beslutning først. BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 35
Alternative formuleringer Formuler og løs korteste reiserute som et LP nettverksproblem. Formuler og løs pakksekkproblemet som et LP allokeringsproblem. (Også et nettverksproblem. ) BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 36
Slutt på kapittel 12 BØK 710 OPERASJONSANALYTISKE EMNER Rasmussen 37
- Slides: 37