Operasjonsanalytiske emner
Transcription
Operasjonsanalytiske emner
Operasjonsanalytiske emner Del 17 Nettverksmodeller Prosjektledelse CPM – Critical Path Method LP og Project Crashing BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 1 Innledning Prosjektplanlegging kan være alt fra enkle oppgaver som å planlegge en picnic for et lite foretak, til oppskyting av en romferge. En suksessfull prosjektgjennomføring krever: Kunnskap om alle oppgaver som er involvert, Nøyaktige estimat på ressurs- og tids -bruk for hver oppgave, Oversikt over fysiske og logiske relasjoner mellom de ulike oppgavene. To alternative teknikker for prosjektplanlegging: Critical Path Method (CPM) Program Evaluation and Reveiw Technique (PERT) Regneark kan benyttes, men programvare for prosjektstyring er langt mer effektivt å bruke. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 2 Et husbyggingsprosjekt Byggmester Solnes skal lede et nytt byggeprosjekt som skal planlegges, overvåkes og kontrolleres. Prosjektet er delt inn i 13 ulike aktiviteter, og de fleste er avhengig av at andre aktiviteter er fullført før de kan påbegynnes. Ulike håndverkere utfører de ulike aktivitetene, og trenger et gitt antall dager på å utføre sitt arbeid. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 3 Aktiviteter i husbyggingsprosjektet Aktivitet A B C D E F G H I J K L M Beskrivelse Grave tomt Støpe grunnmur Legge avløp Reisverk Utvendig vegger, tak Installere VVS Legge el. kabler Tak og veggplater Skap, hyller, etc. Innvendig maling Sluttmontere VVS Sluttføre el.utstyr Gulvbelegg, etc. BØK710 OPERASJONSANALYTISKE EMNER Tidsbruk (dager) Forutgående aktiviteter 3 4 A 3 B 10 B 8 D 4 D 6 D 8 C, E, F, G 5 H 5 H 4 I 2 J 4 K, L Rasmus Rasmussen 4 Activity-On-Node (AON) nettverk C Avløp Grave A Interiør I K Slutt VVS Tak, vegg ute B E Grunnmur H Tak, vegg, gulv inne Gulvbelegg M VVS F Maling Reisverk D J L Slutt El.utstyr Kabling G BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 5 Prosjektnettverk: AON eller AOA Prosjektnettverk der aktivitetene er representert med noder, kalles AON (Activity On Node). Greinene i AON representerer sekvensrelasjonene mellom aktivitetene. Prosjektnettverk kan også presenteres slik at greinene representerer aktivitetene, dvs. AOA (Activity On Arc). Nodene i AOA representerer start og stop punktene for aktivitetene. Fordi en aktivitet ikke kan ha flere start eller stop noder, må en ty til «imaginære» aktiviteter/greiner for aktiviteter som må etterfølge umiddelbart flere tidligere aktiviteter. Å beskrive prosjektnettverk med AOA blir da litt mer komplisert enn AON. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 6 Activity-On-Arc (AOA) nettverk 3 10 C:Avløp B:Grunnmur K:Slutt VVS I:Interiør 1 5 A: 2 Grave E:Tak, vegg ute D:Reisverk 8 9 H: Tak, vegg, gulv inne 12 J:Maling M: 13 Gulvbelegg L:Slutt El.utstyr 6 4 11 F:VVS G:Kabling BØK710 OPERASJONSANALYTISKE EMNER 7 Rasmus Rasmussen 7 Start og stopp punkt AON nettverk må ha unike start og stopp punkt. A D C B E A D start B BØK710 OPERASJONSANALYTISKE EMNER stop C E Rasmus Rasmussen 8 Critical Path Method – CPM Et Forward Pass gjennom et nettverk beregner de tidligste tidspunkt hver aktivitet kan starte og avslutte. Et Backward Pass gjennom et nettverk beregner de seneste tidspunkt hver aktivitet kan starte og avslutte uten å forsinke fullførelsen av prosjektet. Den lengste veien gjennom et nettverk kalles kritisk vei. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 9 Informasjon for hver node (AON) ti Varighet for å utføre aktivitet i ESTi Tidligste starttidspunkt for aktivitet i EFTi Tidligste sluttidspunkt for aktivitet i LSTi Seneste starttidspunkt for aktivitet i LFTi Seneste sluttidspunkt for aktivitet i ESTi LSTi BØK710 OPERASJONSANALYTISKE EMNER i ti EFTi LFTi Rasmus Rasmussen 10 The Forward Pass EST (tidligste starttidspunkt) for første aktivitet i et prosjekt er «tidspunkt 0». EST for alle andre aktiviteter er lik siste (maksimum) tidligste sluttid (EFT) for aktivitetene som er direkte forutgående: EST = Max { EFT direkte forutgående aktiviteter } EFT (tidligste sluttidspunkt) for en aktivitet er lik EST pluss aktivitetens varighet: EFTi = ESTi + ti BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 11 Forward Pass - Resultater 7 C 10 3 0 A 3 3 ESTi i EFTi LSTi ti LFTi 33 I 38 5 3 B 7 4 17 E 25 8 7 D 17 10 17 F 21 4 BØK710 OPERASJONSANALYTISKE EMNER 38 K 42 4 25 H 33 8 42 M 46 4 33 J 38 5 38 L 40 2 17 G 23 6 Rasmus Rasmussen 12 The Backward Pass LFT (seneste sluttidspunkt) for siste aktivitet i et prosjekt er lik EFT beregnet i Forward Pass. LFT for alle andre aktivitet er lik tidligste (minste) seneste sluttid (LST) for aktivitetene som er direkte påfølgende: LFT = Min { LST direkte påfølgende aktiviteter } LST (tidligste starttidspunkt) for en aktivitet er lik LFT minus aktivitetens varighet: LSTi = LFTi ti BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 13 Backward Pass - Resultater 7 C 10 22 3 25 0 A 3 0 3 3 ESTi i EFTi LSTi ti LFTi 33 I 38 33 5 38 3 B 7 3 4 7 17 E 25 17 8 25 7 D 17 7 10 17 17 F 21 21 4 25 BØK710 OPERASJONSANALYTISKE EMNER 38 K 42 38 4 42 25 H 33 25 8 33 42 M 46 42 4 46 33 J 38 35 5 40 38 L 40 40 2 42 17 G 23 19 6 25 Rasmus Rasmussen 14 Critical Path Method – CPM Kritisk vei gjennom nettverket består av de aktiviteter som hvis de blir forsinket, vil forsinke hele prosjektet. De aktiviteter der seneste starttidspunkt er lik tidligste starttidspunkt (LST = EST) utgjør den kritiske vei. (Alternativt LFT = EFT). Aktiviteter som ikke inngår i kritisk sti har slakk: Slakki = LSTi ESTi = LFTi EFTi Slakk angir hvor mye aktiviteten kan forsinkes, uten å påvirke fullføringstidspunktet for prosjektet. Kritiske aktiviteter har null slakk. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 15 Kritisk vei Slakk = 15 7 C 10 22 3 25 0 A 3 0 3 3 33 I 38 33 5 38 3 B 7 3 4 7 17 E 25 17 8 25 38 K 42 38 4 42 25 H 33 25 8 33 42 M 46 42 4 46 Slakk = 4 7 D 17 7 10 17 17 F 21 21 4 25 33 J 38 35 5 40 38 L 40 40 2 42 Slakk = 2 Slakk = 2 Slakk = 2 ESTi i EFTi LSTi ti LFTi BØK710 OPERASJONSANALYTISKE EMNER 17 G 23 19 6 25 Rasmus Rasmussen 16 Prosjektledelse (CPM) i regneark EST, EFT, LST og LFT for prosjektaktiviteter kan beregnes i regneark ved bruk av array (vektor) formler og sirkulære referanser. En array formel utfører flere beregninger og returnerer enten én verdi eller en vektor av verdier. En array formel lages på samme måte som alle andre formler, men avsluttes med å trykke [Ctrl] + [Shift] + [Enter] samtidig, for å fullføre formelen. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 17 Eksempler på array formler Standard =SUMPRODUCT(E5:E17;F5:F17) =SUMIF(E5:E17;">10“;F5:F17) Array =SUM(E5:E17*F5:F17) =SUM(IF(E5:E17>10;F5:F17)) =COUNTIF(E5:E17;">0") =SUMXMY2(E5:E17;F5:F17) =VARP(E5:E17) - =SUM(IF(E5:E17>0;1)) =SUM((E5:E17-F5:F17)^2) =AVERAGE((E5:E17-AVERAGE(E5:E17))^2) =MAX(IF(E5:E17<20;F5:F17)) - MIN(IF(E5:E17>20;F5:F17)) Tips! Bruk Formulas, Evaluate Formula kommandoen for å trinnvis evaluere array formlene for EST og LFT. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 18 Sirkulære referanser En sirkulær referanse oppstår når en verdi i en celle avhenger av en verdi i en annen celle, som i sin tur er avhengig av verdien i den opprinnelige cellen. Excel gir advarsler ved sirkulære referanser, siden de ofte er utilsiktet. For å angi i Excel at du ønsker å benytte sirkulære referanser må du: Klikk File, Options Klikk Formulas og velg «Enable iterative calculation» BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 19 Tillat sirkulære referanser i Excel BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 20 Viktig ved implementering i Excel Det er nødvendig å benytte etiketter/navn/nummer for aktivitetene som er unike og som ikke opptrer som deler i andre aktivitetsnavn. «A1» og «A11» vil ikke fungere, men «A01» og «A11». Brukes mer enn ett siffer, må alle tall ha like mange siffer. Om en bare bruker tall må en anvende Tekst format for alle celler som benyttes til aktivitetsnavn. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 21 CPM i regneark Celle Formel Kopieres til F3 {=MAX(IF(ISERR(FIND($B$3:$B$15;D3));0;$G$3:$G$15))} F4:F15 G3 =F3+E3 G4:G15 H3 =I3-E3 H4:H15 I3 {=MIN(IF(ISERR(FIND(B3;$D$3:$D$15));MAX($G$3:$G$15);$H$3:$H$15))} I4:I15 J3 =I3-G3 J4:J15 BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 22 Grafisk CPM Gantt plott Aktivitet M L K J I H G Symboler F Aktivitetstid E Slakk D C B A 0 5 10 15 20 25 30 35 40 45 50 Tidspunkt (dager) BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 23 Prosjekt forsering (crashing) Ofte er det mulig å fullføre aktiviteter raskere enn normalt ved bruk av ekstra ressurser (overtid, utstyr, o.l.) Dette kalles «crashing» eller forsering av prosjektet. Vi ønsker å finne den optimale måten å forsere prosjektet, for å: Fullføre prosjektet raskere enn opprinnelig prosjektert, Følge tidsplanen hvis kritiske aktiviteter er blitt forsinket. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 24 Tidsbruk og kostnader ved crashing BØK710 OPERASJONSANALYTISKE EMNER Celle Formel Kopieres til G4 =C4-E4 G5:G16 H4 =(F4-D4)/G4 H5:H16 Rasmus Rasmussen 25 Manuell crashing Hvis et prosjekt skal crashes med et gitt antall perioder, kan prosedyren deles opp i følgende steg: 1. Finn kritisk(e) vei(er) for prosjektnettverket. 2. Hvis bare én kritisk vei, velg den aktivitet som har lavest crashkostnad pr. periode. Dersom flere kritiske veier, finn den billigste crash på hver kritisk vei. Om en aktivitet ligger på flere kritiske veier, vil den ofte være billigst alternativ. Crash valgt(e) aktivitet(er) med én periode. 3. Oppdater prosjektnettverket. Hvis varigheten fortsatt overstiger ønsket tid, gå tilbake til trinn 1. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 26 Eksempel på crashing - Forsinkelser Anta at byggeprosjektet er startet, og aktivitet A, B, C, D, F og G alle har gått som planlagt, men E er forsinket med 2 dager. En ønsker å forsere resten av prosjektet, slik at det kan fullføres på beregnet tid, dvs. ferdig på dag 46. Vi må nå finne ny kritisk vei, og velge den billigste aktivitet som kan crashes. Merk at etter en slik forsering kan flere veier bli kritisk vei. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 27 Forward Pass - Forsinkelse 7 C 10 3 0 A 3 3 ESTi i EFTi LSTi ti LFTi 35 I 40 5 3 B 7 4 17 E 27 10 7 D 17 10 17 F 21 4 BØK710 OPERASJONSANALYTISKE EMNER 40 K 44 4 27 H 35 8 44 M 48 4 35 J 40 5 40 L 42 2 17 G 23 6 Rasmus Rasmussen 28 Backward Pass - Forsinkelse 35 I 40 35 5 40 40 K 44 40 4 44 27 H 35 27 8 35 44 M 48 44 4 48 35 J 40 37 5 42 ESTi i EFTi LSTi ti LFTi BØK710 OPERASJONSANALYTISKE EMNER 40 L 42 42 2 44 Rasmus Rasmussen 29 Kritisk vei - Forsinkelse • Billigste crash langs kritisk sti (H-I-K-M) er kr. 500,- for aktivitet H, som kan crashes inntil 3 dager. • Vi ser at slack for aktivitet J (LST – EST) = 2. Det tilsvarer mertiden for I og K i forhold til J og L. • Uansett hvor mye vi forserer H så vil kritisk sti derfor forbli uendret H-I-K-M. • Vi kan således crashe H med 2 dager og bli ferdig med hele prosjektet innen fastsatt tid. ESTi i EFTi LSTi ti LFTi BØK710 OPERASJONSANALYTISKE EMNER Max 2 750,- Max 2 750,- 35 I 40 35 5 40 40 K 44 40 4 44 Max 3 500,27 H 35 27 8 35 Max 2 44 M 48 1000,- 44 4 48 35 J 40 37 5 42 40 L 42 42 2 44 Max 3 500,- Max 1 500,- Rasmus Rasmussen 30 Finne tidligste forserte ferdigstilling Vi kan finne tidligste forserte ferdigstillingstid for et prosjekt ved å formulere en LP modell. Parametere: a M G ti ci ki Mengden aktiviteter, listet i kronologisk rekkefølge Siste aktivitet i mengden a, ferdigstilling Mengden av greiner i nettverket Normal varighet aktivitet i Maksimal forsering/crashing aktivitet i Kostnad pr tidsenhet forsering aktivitet i i, j {a}; der j er avhengig av i. i {a} i {a} i {a} Beslutningsvariabler: Ti Starttidspunkt for aktivitet i i {a} Ci Antall perioder forsering av aktivitet i i {a} BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 31 Prosjektstyring – Forsering Målfunksjon: min TM tM CM Minimer sluttidspunktet for prosjekt M, det siste prosjektet. Vi ønsker å bli ferdig med hele prosjektet så tidlig som mulig, dvs. avslutte siste aktivitet M på tidligst mulig tidspunkt. Starttid for siste aktivitet + aktivitetens varighet – antall perioder forsert = ferdigtidspunkt. Merk at denne formuleringen ikke tar hensyn til kostnader. Vi får en løsning som kun gir oss tidligst mulig ferdigstilling, uten hensyn til kostnader. Vi må derfor løse et nytt problem for å finne billigste måte å ferdigstille prosjektet innen det tidligste tidspunktet denne formuleringen gir oss. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 32 Prosjektstyring – Forsering Restriksjoner: T j Ti ti Ci for alle i, j a For hver grein i prosjektnettverket fra aktivitet i til j må starttidspunktet for prosjekt j være minst like stor som sluttidspunktet for aktivitet i. Ci ci for alle i a Antall perioder forsering av aktivitet i kan ikke overstige maksimalt antall perioder aktiviteten kan forseres. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 33 Hurtigst mulig ferdigstilling - crashing Celle Formel Kopieres til G4 =C4-E4 G5:G16 H4 =(F4-D4)/G4 H5:H16 D17 =SUM(D4:D16) - H17 =SUMPRODUCT(H4:H16;J4:J16) - I17 =I16+C16-J16 - BØK710 OPERASJONSANALYTISKE EMNER Celle Formel Kopieres til N4 =VLOOKUP(L4;$B$4:$I$16;8) +VLOOKUP(L4;$B$4:$C$16;2) -VLOOKUP(L4;$B$4:$J$16;9) N5:N19 O4 =VLOOKUP(M4;$B$4:$I$16;8) O5:O19 Rasmus Rasmussen 34 Prosjektstyring – Billigst forsering Målfunksjon: min ki Ci ia Minimer sum kostnad crashing for alle aktiviteter. Vi ønsker å forsere prosjektet på billigste måte. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 35 Prosjektstyring – Forsering Restriksjoner: T j Ti ti Ci for alle i, j a For hver grein i prosjektnettverket fra aktivitet i til j må starttidspunktet for prosjekt j være minst like stor som sluttidspunktet for aktivitet i. Ci ci for alle i a Antall perioder forsering av aktivitet i kan ikke overstige maksimalt antall perioder aktiviteten kan forseres. TM tM CM T * Ferdigstillingstidspunkt for siste aktivitet må ikke være senere enn tidligst mulig ferdigstillingstidspunkt T*. Tidligst mulig ferdigstillingstidspunkt T* er beregnet i forrige LP-modell, og er her dag 28. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 36 Hurtigst & billigst ferdigstilling BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 37 Kostnadsavveiinger og forsering BØK710 OPERASJONSANALYTISKE EMNER Celle Formel Kopieres til D22 =PsiOptValue($H$17;B22) I18 =PsiOptParam(C22:C40) D23:D40 Rasmus Rasmussen - 38 LP og CPM Vi kan modifisere LP modellen for crashing til prosjektstyring uten crashing, ved å sette tillatt crashtid for hver aktivitet lik 0. Finn EST: Sett målfunksjonen til min 𝑖∈𝑎 𝑇𝑖 , dvs. minimer summen av alle starttidspunkter. Finn LST: Sett målfunksjonen til 𝑚𝑎𝑥 𝑖∈𝑎 𝑇𝑖 , dvs. maksimer summen av alle starttidspunkter. Legg til som restriksjon at TM = ESTM funnet i forrige trinn, dvs. siste aktivitet må starte på sitt tidligst mulige tidspunkt. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 39 PERT CPM antar at aktivitetenes varighet er kjent med sikkerhet og kan estimeres nøyaktig. PERT inkluderer usikkerhet i aktivitetenes varighet ved tre estimater: ai = kortest varighet for aktivitet i bi = lengst varighet for aktivitet i mi = mest sannsynlig varighet for aktivitet i PERT estimerer så forventet varighet ti : og variansen vi til hver aktivitet slik: BØK710 OPERASJONSANALYTISKE EMNER 𝑡𝑖 = 𝑎𝑖 +4𝑚𝑖 +𝑏𝑖 6 𝑣𝑖 = 𝑏𝑖 −𝑎𝑖 2 36 Rasmus Rasmussen 40 PERT Forventet (eller gjennomsnittlig) tid for å fullføre en vei i nettverket er lik summen av forventet tid (ti) til aktivitetene på veien. Hvis de individuelle aktivitetenes varighet i et prosjekt er uavhengige, så kan vi også beregne variansen for fullføringstiden for enhver vei i nettverket ved å summere variansene (vi) til aktivitetene på veien. PERT betrakter veien med den lengste forventede fullføringstid som kritisk vei i prosjektnettverket. PERT sitt resonnement kan være feilaktig…. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 41 PERT Eksempel B A a=2 A m=4 t=4 b=6 v=0,44 a=8 B m=9 t=9 b=10 v=0,11 D a=2 C m=8 t=8 b=14 v=4 a=3 D m=5 t=5 b=7 v=0,44 C Vei Forventet tid Varians A–B–D 4 + 9 + 5 = 18 1,00 A–C–D 4 + 8 + 5 = 17 4,89 BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 42 Sannsynlighetsfordeling fullføringstid A–B–D A–C–D Om en ønsker å fullføre prosjektet innen 21 dager, hvilken vei er den mest kritiske? Vei A – B – D har forventet tid 18, men bare 0,5% sjanse for å bruke mer enn 21 dager. Vei A – C – D har forventet tid 17, men hele 6,8% sjanse for å bruke mer enn 21 dager. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 43 Simulering av et prosjektnettverk For å unngå svakheten ved PERT, kan en benytte simulering. Aktivitetenes varighet er en stokastisk variabel, med en triangulær fordeling: Sannsynlighet, tetthet a = Best case m = Mest sannsynlig case b = Verste case a 0 BØK710 OPERASJONSANALYTISKE EMNER 1 m 2 3 4 Varighet b 5 Rasmus Rasmussen 6 44 Stokastisk varighet for aktivitetene Aktivitet A B C D E F G H I J K L M Beskrivelse Grave tomt Støpe grunnmur Legge avløp Reisverk Utvendig vegger, tak Installere VVS Legge el. kabler Tak og veggplater Skap, hyller, etc. Innvendig maling Sluttmontere VVS Sluttføre el.utstyr Gulvbelegg, etc. BØK710 OPERASJONSANALYTISKE EMNER Forutgående A B B D D D C,E,F,G H H I J K,L Best a 2 3 2 8 6 3 4 7 4 3 3 1 3 Tid Sannsynlig m 3 4 3 10 8 4 6 8 5 5 4 2 4 Verst b 5 6 7 14 10 5 8 10 7 9 6 4 6 Rasmus Rasmussen 45 Stokastisk tid - Prosjektnettverk Celle H3 Formel =PsiTriangular(E3;F3;G3) BØK710 OPERASJONSANALYTISKE EMNER Kopieres til H4:H15 Rasmus Rasmussen 46 Formlene i regnearket Merk at formlene for EST og LFT ikke lenger er generelle formler, som medfører simultane iterasjoner. Disse formlene må nå legges inn individuelt for hver aktivitet. (Øvrige formler kopieres fra linje 3.) BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 47 Simuleringsresultater Forventet gjennomføringstid = 48,81 dager. Minste tid = 41,96. Lengste tid = 55,44. Det er 71,2% sjanse for at prosjektet er ferdig innen 50 dager. (Dermed 28,8% sjanse for at det tar mer enn 50 dager.) Simuleringsresultatene vil variere litt fra simulering til simulering, da andre tilfeldige tall trekkes hver gang en ny simulering kjøres. BØK710 OPERASJONSANALYTISKE EMNER Rasmus Rasmussen 48