UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2002 – 2003 Een heuristische benadering voor projectplanningsproblemen met “cash flows” Scriptie voorgedragen tot het behalen van de graad van Licentiaat in de Toegepaste Economische Wetenschappen, optie: Technische Bedrijfskunde Sebastien Devleesschauwer Onder leiding van: Prof. dr. M. Vanhoucke UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2002 – 2003 Een heuristische benadering voor projectplanningsproblemen met “cash flows” Scriptie voorgedragen tot het behalen van de graad van Licentiaat in de Toegepaste Economische Wetenschappen, optie: Technische Bedrijfskunde Sebastien Devleesschauwer Onder leiding van: Prof. dr. M. Vanhoucke “Ondergetekende, hierbij dat Sebastien onderhavige Devleesschauwer, scriptie wel mag bevestigt worden geraadpleegd, maar niet mag worden gefotokopieerd. Bij het citeren moet steeds de titel en de auteur van de scriptie worden vermeld.” Woord vooraf Woord vooraf Het schrijven van een scriptie is geen sinecure. Interesse in het behandelde domein, een inspirerende begeleiding, een ijzeren volharding en heel veel geduld zijn daarbij onontbeerlijke ingrediënten. Ook het belang van steun en begrip uit de naaste omgeving kan niet worden onderschat. In eerste instantie wens ik mijn oprechte dank te betuigen aan Prof. dr. M. Vanhoucke die mijn interesse voor dit onderwerp verder heeft gestimuleerd. Hij bezat de gave om steeds enthousiast te reageren bij onze samenkomsten. Op deze manier is hij erin geslaagd om massa’s inspiratie te geven, zodat het beoogde doel kon worden behaald. Verder wil ik de personen bedanken die bereid waren deze tekst te controleren op taal- en spellingfouten. Het betreft dhr. Philippe Goossens, mevr. Isabelle Aelvoet en mijn vriendin Sofie Goossens. Mijn waardering gaat ook uit naar Andy De Vlieger die assistentie verleende bij de opmaak en lay-out van deze scriptie. Tenslotte bedank ik mijn familie, mijn vriendin en mijn vrienden die me steeds wisten op te monteren wanneer ik de moed dreigde te verliezen. Sebastien Devleesschauwer 02 mei 2003 I Een heuristische benadering voor projectplanningsproblemen met “cash flows” Inhoudsopgave INHOUDSOPGAVE WOORD VOORAF I INHOUDSOPGAVE II LIJST VAN DE GEBRUIKTE AFKORTINGEN V LIJST VAN DE GEBRUIKTE SYMBOLEN LIJST VAN DE TABELLEN LIJST VAN DE FIGUREN INLEIDING VI VII IX 1 HOOFDSTUK 1: LITERATUUR OMTRENT PROJECTPLANNINGSPROBLEMEN MET KASSTROMEN 3 1.1. INLEIDING 1.2. PROJECTNETWERKSTRUCTUREN 1.3. CLASSIFICATIE VAN PROJECTPLANNINGSPROBLEMEN 1.3.1. Hulpmiddelenkarakteristieken 1.3.2. Kenmerken van de activiteiten 1.3.2.1. Taakonderbreking 1.3.2.2. Soorten volgorderelaties 1.3.2.3. Andere karakteristieken 1.3.3. Verschillende performantiemaatstaven 1.4. MAXIMALISEREN VAN DE NETTO ACTUELE WAARDE 1.5. ASSUMPTIES 1.6. MATHEMATISCHE FORMULERING VAN HET “RCPSPDC”- PROBLEEM 1.7. INDELING VAN DE OPLOSSINGSMETHODES 1.8. HEURISTISCHE OPLOSSINGSMETHODES 1.8.1. Optimalisatiegeoriënteerde benadering 1.8.2. Parametergebaseerde benadering HOOFDSTUK 2: BESCHRIJVING VAN HET ALGORITME 2.1. INDELING VAN HET ONDERZOEK 2.2. VOORBEREIDENDE FASE 2.2.1. Inlezen van de projectgegevens 2.2.2. Generatie en inlezen van “cash flows” 2.2.3. Berekenen van aanvullende data 2.3. INITIALISATIE FASE 3 5 6 7 7 8 8 9 9 11 13 13 15 16 17 18 21 22 23 23 23 25 27 II Een heuristische benadering voor projectplanningsproblemen met “cash flows” Inhoudsopgave 2.4. SCHEMATISCHE WEERGAVE VAN DE PLANNINGSFASE EN OPTIMALISATIE 2.5. DE PLANNINGSFASE 2.5.1. STAP 1: Bepaling van de set van mogelijke activiteiten 2.5.2. STAP 2: De activiteit met de grootste prioriteit bepalen 2.5.2.1. “Cash flow” 2.5.2.2. Cash flow per tijdeenheid 2.5.2.3. Toekomstige cash flows 2.5.2.4. Duur van de toekomstige activiteiten 2.5.2.5. Aantal toekomstige activiteiten 2.5.2.6. Gemiddelde toekomstige “cash flow” 2.5.2.7. Toekomstige “cash flows” per tijdeenheid 2.5.3. STAP 3: Het plannen van de activiteit met de hoogste prioriteit 2.5.4. STAP 4: Het berekenen van de “net present value” 2.6. DE POSTOPTIMALISATIE 2.6.1. STAP 5: De postoptimalisatie 2.6.2. STAP 6: Nagaan of de projectduur werd ingekort 2.6.3. STAP 7: Het berekenen van de “postoptimale” netto actuele waarde HOOFDSTUK 3: HET ALGORITME TOEGEPAST OP EEN VOORBEELD 3.1. GEGEVENS 3.2. ILLUSTRATIE VAN HET ALGORITME 3.2.1. Voorbereidende fase 3.2.2. Planningsfase 3.2.3. Postoptimalisatie 3.3. BESPREKING VAN DE BEKOMEN RESULTATEN HOOFDSTUK 4: BESCHRIJVING VAN DE TESTSET 4.1. PARAMETERS VAN EEN PROJECT 4.1.1. Aantal activiteiten 4.1.2. Order strength, OS 4.1.3. Resource factor, RF 4.1.4. Resource strength, RS 4.1.5. Percentage negatieve cash flows 4.2. BESCHRIJVING VAN DE TESTSET HOOFDSTUK 5: ANALYSE VAN DE RESULTATEN 5.1. REFERENTIEPUNT 5.2. WERKWIJZE 5.3. 0% NEGATIEVE “CASH FLOWS” 5.3.1. Invloed van het aantal activiteiten 5.3.2. Invloed van de “order strenght” (OS) 5.3.3. Invloed van de “resource factor” (RF) 5.3.4. Invloed van de “resource strenght” (RS) 5.4. 25% NEGATIEVE “CASH FLOWS” 5.4.1. Invloed van het aantal activiteiten 28 31 31 33 35 36 36 38 39 40 41 41 42 43 44 46 47 48 48 51 51 52 54 56 59 59 60 60 61 62 62 63 65 65 66 68 68 69 70 71 72 73 III Een heuristische benadering voor projectplanningsproblemen met “cash flows” Inhoudsopgave 5.4.2. Invloed van de “order strenght” (OS) 5.4.3. Invloed van de “resource factor” (RF) 5.4.4. Invloed van de “resource strenght” (RS) 5.5. 50% NEGATIEVE “CASH FLOWS” 5.5.1. Invloed van het aantal activiteiten 5.5.2. Invloed van de “order strenght” (OS) 5.5.3. Invloed van de “resource factor” (RF) 5.5.4. Invloed van de “resource strenght” (RS) 5.6. 75% NEGATIEVE “CASH FLOWS” 5.7. 100% NEGATIEVE “CASH FLOWS” 5.7.1. Invloed van het aantal activiteiten 5.7.2. Invloed van de “order strenght” (OS) 5.7.3. Invloed van de “resource factor” (RF) 5.7.4. Invloed van de “resource strenght” (RS) 5.8. BEVINDINGEN CONCLUSIE LIJST VAN DE GERAADPLEEGDE WERKEN BIJLAGE 1.: RESULTATEN BIJ 75% NEGATIEVE “CASH FLOWS” 74 75 76 77 77 78 79 80 81 82 82 83 84 85 86 88 X XV IV Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de gebruikte afkortingen LIJST VAN DE GEBRUIKTE AFKORTINGEN AA: het aantal activiteiten AoA: “activity- on-the-arc” of pijlenvoorstelling AoN: “activity- on-the-node” of knooppuntvoorstelling CFW: “cash flow weight” CNC: “coefficient of network complexity” CPM: “Critical Path Method” CPU: “central processing unit” EAS: “eligible activity set” of de set van mogelijke activiteiten EF: “earliest-finish time” of vroegste eindtijd GPR: “generalized precedence relations” LAN: “lowest activity number” LF: “latest-finish time” of laatste eindtijd LSSPT: “late start and shortest processing time” NPV: “net present value” of netto actuele waarde OS: “order strenght” PERT: “Program Evaluation and Review Technique” RCPSPDC: “resource-constrained project scheduling problem with discounted cash flows” RF: “resource factor” rpwi : “rank positional weight” van een activiteit i RS: “resource strenght” SSA: “set of schedulable activities” of de set van activiteiten die kunnen worden gepland V Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de gebruikte symbolen LIJST VAN DE GEBRUIKTE SYMBOLEN α: de continue verdisconteringsfactor At : de set van aan de gang zijnde activiteiten op het tijdstip t AVj : de beschikbaarheid van het hulpmiddel j CFi: de “cash flow” van een activiteit i di: de duur van een activiteit i i: index voor het aantal activiteiten (1, …, N) j: index voor het aantal hulpmiddelen (1, …, NR) k: index voor het aantal volgers (1, …, NSi) l: index voor het aantal voorgangers (1, …, NPi) N: het aantal activiteiten waaruit het project bestaat, het activiteitsnummer NPi: het aantal voorgangers van een activiteit i NR: het aantal hulpmiddelen dat het project gebruikt NSi: het aantal volgers van een activiteit i Pi: de set van onmiddellijke voorgangers van een activiteit i pil: de lde voorganger van een activiteit i rij : het verbruik van elk hulpmiddel j door de activiteit i RRtj : het overblijvend aantal hulpmiddelen van het type j op het tijdstip t sik : de kde volger van een activiteit i SSAt : “set of schedulable activities” op het tijdstip t ssati: binaire variabele die aangeeft of de activiteit i op het tijdstip t al dan niet tot de SSAt behoort STi : het tijdstip waarop de activiteit i wordt gestart t: tijd TTi : het tijdstip waarop de activiteit i is afgewerkt TTmax: de maximale projectduur wi : wegingsfactor voor de activiteit i VI Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de tabellen LIJST VAN DE TABELLEN TABEL 1.1.: Overzicht van de belangrijkste onderzoeken naar optimale 15 oplossingsmethodes TABEL 1.2.: Overzicht van de belangrijkste onderzoeken naar heuristische 16 oplossingsmethodes TABEL 3.1.: De toekomstige en het aantal toekomstige activiteiten voor dit voorbeeld 51 TABEL 3.2.: Overzicht van de resultaten die werden bekomen bij het voorbeeld 57 TABEL 4.1.: Overzicht van de parameters waarrond de testset is opgebouwd 63 TABEL 5.1.: Resultaten van de heuristieken per aantal activiteiten bij 0% negatieve 69 “cash flows” TABEL 5.2.: Resultaten van de heuristieken per percentage OS bij 0% negatieve 70 “cash flows” TABEL 5.3.: Resultaten van de heuristieken per percentage RF bij 0% negatieve 71 “cash flows” TABEL 5.4.: Resultaten van de heuristieken per percentage RS bij 0% negatieve 72 “cash flows” TABEL 5.5.: Resultaten van de heuristieken per aantal activiteiten bij 25% negatieve 73 “cash flows” TABEL 5.6.: Resultaten van de heuristieken per percentage OS bij 25% negatieve 74 “cash flows” TABEL 5.7.: Resultaten van de heuristieken per percentage RF bij 25% negatieve 75 “cash flows” TABEL 5.8.: Resultaten van de heuristieken per percentage RS bij 25% negatieve 76 “cash flows” TABEL 5.9.: Resultaten van de heuristieken per aantal activiteiten bij 50% negatieve 78 “cash flows” TABEL 5.10.:Resultaten van de heuristieken per percentage OS bij 50% negatieve 79 “cash flows” TABEL 5.11.:Resultaten van de heuristieken per percentage RF bij 50% negatieve 80 “cash flows” TABEL 5.12.:Resultaten van de heuristieken per percentage RS bij 50% negatieve 81 “cash flows” VII Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de tabellen TABEL 5.13.:Resultaten van de heuristieken per aantal activiteiten bij 100% negatieve 83 “cash flows” TABEL 5.14.:Resultaten van de heuristieken per percentage OS bij 100% negatieve 84 “cash flows” TABEL 5.15.:Resultaten van de heuristieken per percentage RF bij 100% negatieve 85 “cash flows” TABEL 5.16.:Resultaten van de heuristieken per percentage RS bij 100% negatieve 86 “cash flows” TABEL 1: Resultaten van de heuristieken per aantal activiteiten bij 75% negatieve XIV “cash flows” TABEL 2: Resultaten van de heuristieken per percentage OS bij 75% negatieve XIV “cash flows” TABEL 3: Resultaten van de heuristieken per percentage RF bij 75% negatieve XV “cash flows” TABEL 4: Resultaten van de heuristieken per percentage RS bij 75% negatieve XVI “cash flows” VIII Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de figuren LIJST VAN DE FIGUREN FIGUUR 2.1.:“Flow chart” van het eigen algoritme 30 FIGUUR 2.2.:Overzicht van de prioriteitsregels 34 FIGUUR 3.1.:Knooppuntvoorstelling van het numeriek voorbeeld 50 FIGUUR 3.2.:De planningsfase met het “aantal toekomstige activiteiten” als 53 prioriteitsregel FIGUUR 3.3.:Hulpmiddelenverdeling na de planningsfase (voor het hulpmiddel 1) 54 FIGUUR 3.4.:Hulpmiddelenverdeling na de eerste postoptimalisatie-iteratie (voor 55 het hulpmiddel 1) FIGUUR 3.5.:Hulpmiddelenverdeling na de tweede iteratie (voor het hulpmiddel 1) 55 FIGUUR 3.6.:Hulpmiddelenverdeling van de “postoptimale” planning (voor het 56 hulpmiddel 1 IX Een heuristische benadering voor projectplanningsproblemen met “cash flows” Inleiding INLEIDING Bij projectplanning is het de bedoeling om de verschillende activiteiten waaruit een project is opgebouwd te plannen zodanig dat een vooropgesteld doel wordt geoptimaliseerd. Daarbij dienen volgorderelaties en veelal ook hulpmiddelen- en andere beperkingen te worden gerespecteerd. Het merendeel van de onderzoeksinspanningen die totnogtoe werden geleverd op het vlak van het oplossen van projectplanningsproblemen zijn gericht op het minimaliseren van de projectduur. De financiële aspecten, die nochtans onlosmakelijk met projectmanagement zijn verbonden, worden daarbij echter over het hoofd gezien. Indien men deze wel in rekening wil brengen, geniet het maximaliseren van de netto actuele waarde de voorkeur. Deze preferentie neemt toe naarmate de projectduur stijgt. Optimale procedures zijn in staat om kleine projectplanningsproblemen op te lossen. De combinatie van volgorderelaties en hulpmiddelenbeperkingen is echter de oorzaak dat deze procedures veelal falen wanneer het aantal activiteiten toeneemt. In dit geval biedt een heuristische oplossingsbenadering de uitweg. De literatuur omtrent de heuristische benadering van projectplanningsproblemen concentreert zich voornamelijk op het minimaliseren van de projectduur. Omtrent het maximaliseren van de netto actuele waarde als performantiemaatstaf is veel minder literatuur beschikbaar. Dit zou een mogelijke beperking kunnen vormen. Daarentegen biedt dit wel de mogelijkheid om zelf creatieve oplossingen naar voren te schuiven en uit te testen. Grootschalige projecten zoals de bouw van de tunnel onder het Kanaal, de organisatie van het Europees Kampioenschap voetbal in België en Nederland (EURO 2000), … wekten mijn interesse voor projectplanning op. Deze werd verder aangewakkerd door de lessen “Productiebeleid” in de eerste licentie. Het perspectief om, aan de hand van de beschikbare literatuur, zelf een algoritme op te stellen en te implementeren, vormde een bijkomende motivatiebron om een bijdrage – hoe bescheiden ook – trachten te leveren aan dit onderzoek. Het onderzoek naar oplossingsmethodes met het maximaliseren van de netto actuele waarde is in volle ontwikkeling. Getuige daarvan zijn onder andere de nieuwe inzichten die Prof. dr. 1 Een heuristische benadering voor projectplanningsproblemen met “cash flows” Inleiding Vanhoucke opwerpt in zijn doctoraatscriptie en de intrede van de zogenaamde “metaheuristische” oplossingsmethodes. Het feit dat dit alles wordt geïmplementeerd in “real-life” situaties maakt dat ik me met heel veel plezier en enthousiasme in dit onderwerp heb verdiept. De indeling van deze scriptie ziet er als volgt uit. Vooreerst wordt in hoofdstuk 1 het probleem geschetst aan de hand van de literatuur. We opteren hierbij voor een stapsgewijze introductie tot het onderwerp. Eerst worden projectplanningsproblemen, de visualisatie en de verschillende componenten ervan besproken. We vervolgen met toe te lichten in welke gevallen een maximalisatie van de netto actuele waarde gewenst is. Daarna formuleren we het probleem mathematisch. Zo komen we tenslotte bij de verschillende oplossingsmethodes terecht. De heuristische benadering zal hierbij uiteraard het grootste deel van onze aandacht opeisen. Daarna wordt in hoofdstuk 2 het algoritme voorgesteld. Achtereenvolgens worden de voorbereidende fase, de initialisatiefase, de planningsfase en de postoptimalisatie gedetailleerd besproken. Tijdens de planningsfase worden zeven heuristieken voorgesteld. Deze zijn variaties op bestaande prioriteitsregels. De postoptimalisatie zorgt ervoor dat onze procedure een zogenaamde “multi-pass”-procedure vormt (cfr. §1.8.2.). Dan wordt in hoofdstuk 3 het algoritme verduidelijkt aan de hand van een numeriek voorbeeld. We doorlopen hierbij de heuristische oplossingsprocedure voor één prioriteitsregel. Vervolgens blijven we in hoofdstuk 4 stilstaan bij de gehanteerde testset. De gebruikte parameters worden hierbij uitvoerig toegelicht. Hoofdstuk 5 is tenslotte gewijd aan een analyse van de resultaten. Daarbij wordt nagegaan onder welke projectvoorwaarden onze heuristieken het best performeren. 2 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen HOOFDSTUK 1: LITERATUUR OMTRENT PROJECTPLANNINGSPROBLEMEN MET KASSTROMEN Alvorens een algoritme te kunnen opstellen, is een literatuuroverzicht omtrent projectplanningsproblemen met hulpmiddelenbeperkingen en gewogen kasstromen zeker geen overbodige luxe. Aan de hand van deze literatuurstudie formuleren we het “RCPSPDC”probleem, welke het uitgangspunt zal vormen voor het eigen algoritme. “RCPSPDC” staat hierbij voor “resource-constrained project scheduling problem with discounted cash flows”. In de eerste, inleidende paragraaf schetsen we wat een projectplanningsprobleem inhoudt. Daarna worden de twee manieren waarop een project kan worden gevisualiseerd, namelijk de knooppunt- en pijlenvoorstelling, besproken. In sectie 1.3. geven we aan de hand van het classificatieschema van Herroelen et al. (1999, blz. 1 – 26) een overzicht van de verschillende componenten van een project. We onderscheiden hierbij de hulpmiddelen, de aard van de activiteiten, de volgorderelaties en de performantiemaatstaven. In paragraaf 1.4 zetten we de voorwaarden voor het gebruik van de netto actuele waarde als performantiemaatstaf op een rijtje. De volgende twee secties zijn gewijd aan de formulering van het probleem. In § 1.5. geven we kort de assumpties weer die aan de basis liggen van de mathematische formulering van het probleem in § 1.6. Vervolgens gaan we in paragraaf 1.7. dieper in op de verschillende oplossingsmethoden voor het probleem. Tenslotte spitten we in sectie 1.8. de literatuur uit op zoek naar heuristische benaderingen. 1.1. Inleiding Een project kan gedefinieerd worden als: “een uniek proces, bestaande uit een verzameling gecoördineerde en gecontroleerde activiteiten met start- en eindtijdstippen, die worden uitgevoerd met het oog op het realiseren van een doelstelling binnen voorgeschreven tijds-, hulpmiddelen- en kostenbeperkingen.” (ISO 8402) 3 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen Het plannen van projecten komt dan neer op het toewijzen van een beperkt aantal hulpmiddelen aan de verschillende activiteiten over een bepaalde tijdperiode. Deze planning impliceert meestal het optimaliseren van een doelstelling, waarbij enkele beperkingen kunnen worden opgelegd. (Etgar R. et al., 1997, blz. 90) Er worden drie soorten doelstellingen onderscheiden: binnen het vooropgestelde tijdskader blijven, de kosten beheersen en het kwaliteitsaspect. Er bestaan projectplanningsmethodes waarbij men de eerste twee objectieven tracht te realiseren. (Pinnell S. en Busch J., 1993, blz.35 – 36) Intuïtief is het duidelijk dat deze doelstellingen niet altijd tegelijkertijd kunnen worden gerealiseerd. Wanneer simultaan meerdere objectieven worden beoogd, is het mogelijk dat er een consensus wordt gezocht. Deze “trade-off” kan op twee manieren gebeuren (De Reyck B. en Herroelen W., 1999, blz. 27): (1) Bij “multi-criteria” analyse worden de verschillende doelstellingen gerangschikt op basis van bepaalde criteria. Op deze manier bepaalt men de prioriteiten van de beschouwde objectieven. (2) Bij “multi-objective” analyse worden de verschillende doelstellingen gewogen en aldus gecombineerd. De volgorderelaties en de beschikbare hoeveelheid hulpmiddelen en / of kapitaal vormen de mogelijke nevenvoorwaarden. (Etgar R. et al., 1997, blz. 90) Heel veel onderzoek werd reeds verricht en gepubliceerd omtrent projectplanningsproblemen met volgorderestricties en met of zonder hulpmiddelenbeperkingen, waarin het de bedoeling is de projectduur te minimaliseren. De financiële aspecten van projectplanning werden daarbij niet in beschouwing genomen. (Herroelen W. et al., 1997, blz. 97) Recentelijk werden pogingen ondernomen om (verdisconteerde) kasstromen in rekening te brengen, waarbij getracht werd de netto actuele waarde van een project te maximaliseren. (Herroelen W. et al., 1997, blz. 97) We hebben het probleem nu algemeen gesitueerd. In de volgende paragraaf gaan we kort in op de manieren waarop projecten worden gevisualiseerd. 4 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen 1.2. Projectnetwerkstructuren Sinds de introductie van PERT en CPM wordt een project gevisualiseerd onder de vorm van een “projectnetwerkstructuur”. De planning van projecten gebeurt typisch aan de hand van dergelijke netwerkstructuren. Met behulp van knooppunten en georiënteerde pijlen worden de activiteiten en hun volgorderelaties aangegeven. (De Reyck B. en Herroelen W., 1999, blz. 19) In de literatuur zijn twee voorstellingswijzen gangbaar: enerzijds de pijlenvoorstelling of “activity-on-the-arc”(AoA) en anderzijds de knooppuntvoorstelling of “activity-on-the-node” (AoN). In de pijlenvoorstelling worden de gebeurtenissen voorgesteld door knooppunten en de activiteiten door pijlen. De volgorderelaties tussen twee activiteiten kan worden weergegeven door het eindknooppunt van de ene pijl – het einde van een eerste activiteit – te laten samenvallen met het beginknooppunt van een andere pijl – het begin van een volgeractiviteit. Bij deze methode worden vaak dummy- of schijnactiviteiten tussengevoegd om de volgorderelaties te kunnen voorstellen. Dit kan een zware belasting voor de netwerkvoorstelling vormen. Bovendien zorgen deze schijnactiviteiten ervoor dat één project kan gevisualiseerd worden door verschillende AoA-netwerken. Ondanks deze nadelen wordt de pijlenvoorstelling nog vaak gebruikt in de Verenigde Staten, mede door het grote succes van PERT en CPM. (De Reyck B. en Herroelen W., 1999, blz. 19 – 20) In de knooppuntvoorstelling wordt elke activiteit door een knooppunt gevisualiseerd en worden de volgorderelaties door geörienteerde pijlen weergegeven. voorstellingswijze is sterk verspreid in Europa en bovendien Deze (unieke) zijn de meeste planningspakketten voor projectmanagement gebaseerd op deze methode. (De Reyck B. en Herroelen W., 1999, blz. 20) Bij deze methode wordt er vaak aangenomen dat de kosten, die aan de activiteiten zijn verbonden, gekend zijn en dat betalingen plaatsvinden als de activiteit is afgewerkt. (Kolisch R. en Padman R , 2001, blz. 252) 5 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen Het algoritme dat we zullen beschrijven in het tweede hoofdstuk van deze scriptie is gebaseerd op de knooppuntvoorstelling. Ook het voorbeeld dat we zullen behandelen in hoofdstuk 3 maakt gebruik van deze methode. In de volgende paragraaf bespreken we de mogelijke beperkingen welke kunnen zijn opgelegd aan een project, alsook de doelfunctie. We doen dit aan de hand van het classificatieschema zoals dit door Herroelen W. et al. (1999, blz. 1 –26) werd opgesteld. 1.3. Classificatie van projectplanningsproblemen Projectplanningsmethodes zoals PERT en CPM zijn enkel toegespitst op het tijdsaspect, zonder daarbij rekening te houden met bijvoorbeeld hulpmiddelen en “cash flows”. De introductie van hulpmiddelenbeperkingen en de optimalisatie van andere doelfuncties hebben vele vormen aangenomen. Dit leidde tot tal van types projectplanningsproblemen. Een overzichtelijk classificatieschema drong zich dan ook op. (Herroelen W. et al., 1999, blz. 1 – 26) Dit classificatieschema is samengesteld uit drie velden αβγ, in overeenstemming met het schema voor machineplanning. Daarbij worden de verschillende componenten (activiteiten, hulpmiddelen, volgorderelaties en performantiemaatstaven) waaruit een project bestaat, behandeld. (Herroelen W. et al., 1999, blz. 1 – 26) Het vervolg van deze paragraaf zal gewijd worden aan de bespreking van deze drie velden. Eerst geven we een overzicht van de hulpmiddelenkarakteristieken, die het α-veld vormen. Vervolgens komt het β-veld, dat de kenmerken van de activiteiten omvat, aan bod. Tenslotte gaan we dieper in op het γ-veld, dat gewijd is aan de verschillende performantiemaatstaven. We blijven hierbij niet stilstaan bij alle verschillende projectplanningsproblemen, vermits het niet de bedoeling van de scriptie is om een globaal overzicht te schetsen van de projectplanningsproblemen. 6 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen 1.3.1. Hulpmiddelenkarakteristieken Aanvankelijk werd het planningsprobleem zonder hulpmiddelenbeperkingen beschouwd. Het is echter evident dat de activiteiten in de praktijk “resources” verbruiken en dat de beschikbaarheid van deze hulpmiddelen gelimiteerd is. Incorporatie van beperkingen inzake hulpmiddelen maakt de planning aanzienlijk complexer. (Cooper D., 1976, blz. 1186) Er worden drie categorieën hulpmiddelen onderscheiden (Slowinski R., 1981, blz. 265 - 273): (1) “Renewable resources” of “hernieuwbare hulpmiddelen” zijn hulpmiddelen die beperkt zijn over een zekere periode en die terug beschikbaar zijn eens een nieuwe periode wordt gestart. Ze zijn beschikbaar per periode en onafhankelijk van de lengte van het project. We denken bijvoorbeeld aan het aantal werknemers per dag, gereedschap, machines, …. (2) “Nonrenewable resources” of “niet-hernieuwbare hulpmiddelen” zijn daarentegen niet opnieuw beschikbaar eens ze verbruikt zijn. Ze zijn beperkt over de totale lengte van het project. Grondstoffen, energie en kapitaal zijn hierbij de voorbeelden bij uitstek. (3) “Doubly-constrained resources” zijn zowel beperkt per periode (bijvoorbeeld de kasstromen per tijdseenheid) als over het hele project (bijvoorbeeld het budget). Er werd aangetoond dat elk “doubly-constrained” hulpmiddel kan worden voorgesteld door één hernieuwbare en één niet-hernieuwbare “resource”. (Talbot F., 1982, blz. 1197 - 1210) Recentelijk werden ook “partially (non)renewable resources” geïntroduceerd. Dit zijn hulpmiddelen waarvan de beschikbaarheid gedefinieerd is voor een specifiek tijdsinterval. Stel bijvoorbeeld dat de totale planningshorizon één maand bedraagt. Binnen die maand is de wekelijkse (niet de dagelijkse) werktijd van de werknemers gelimiteerd door de arbeidsovereenkomst. (Böttcher et al., 1999, blz. 543 – 559) Zowel hernieuwbare als niet-hernieuwbare hulpmiddelen kunnen worden weergegeven door “partially renewable resources”. (Böttcher et al., 1999, blz. 543 – 559) 1.3.2. Kenmerken van de activiteiten Het β-veld is voorbehouden voor de verschillende karakteristieken van de activiteiten. We bespreken eerst het begrip “taakonderbreking” en behandelen daarna de verschillende 7 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen volgorderelaties. Tenslotte geven we een opsomming van enkele andere karakteristieken. 1.3.2.1. Taakonderbreking In sommige gevallen is het toegestaan om de uitvoering van een activiteit op eender welk ogenblik te onderbreken. Dit is de zogenaamde “preemption” van een activiteit. Als de activiteit op een later tijdstip kan worden hernomen daar waar ze werd onderbroken, hebben we het over “preempt-resume”. Als de activiteit daarentegen niet kan worden verdergezet daar waar ze werd onderbroken, en ze dus moet worden herstart, spreken we van “preemptrepeat”. (Vanhoucke M., 2001, blz. 10) De introductie van taakonderbreking doet het aantal mogelijke oplossingen enorm toenemen. Bijgevolg stijgt ook de complexiteit van het probleem. (Vanhoucke M., 2001, blz. 10) De onderbreking van activiteiten is meestal niet toegelaten. Ook wij zullen de “preemption” van activiteiten niet toestaan. (Herroelen W. et al., 1997, blz. 102) 1.3.2.2. Soorten volgorderelaties Bij alle types van problemen die gebaseerd zijn op de PERT- en CPM-methode zijn de activiteiten onderworpen aan strikte einde-start volgordebeperkingen zonder tijdvertraging. Dit wil zeggen dat een activiteit slechts kan worden gestart als al haar voorgangers zijn voltooid. (Elmaghraby S., 1995, blz. 395) Naast deze traditionele einde-start volgordebepaling worden ook start-start, einde-einde en start-einde volgorderelaties onderscheiden. Hierbij dient aangestipt te worden dat start-einde relaties in de praktijk minder aan bod komen. (De Reyck B. en Herroelen W., 1999, blz. 20) Elk van deze vier types volgorderelaties kan worden getransformeerd tot één type (Bartusch et al., 1988, blz. 201 - 240) 8 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen Bovendien kan er bij elke volgorderelatie een tijdvertraging of “time-lag” worden aangegeven. Hierbij worden twee types tijdvertragingen onderscheiden (De Reyck B. en Herroelen W., 1999, blz. 20): ♦ Minimale tijdvertragingen impliceren dat een activiteit slechts kan starten (eindigen) als de voorganger reeds gedurende een zekere tijdperiode is gestart (voltooid). ♦ Maximale tijdvertragingen geven aan dat een activiteit ten hoogste een zekere tijdperiode na de start (einde) van een andere activiteit zou moeten worden gestart (beëindigd). Volgorderelaties die beide types vertragingen toelaten, worden veralgemeende volgorderelaties of “generalized precedence relations” (GPR) genoemd. (Elmaghraby S. en Kamburowski J., 1992, blz. 1245 – 1263) Het samenspel van veralgemeende volgorderelaties kan soms vreemde situaties opleveren. Zo kan het zijn dat bij de minimalisatie van de projectduur de duur van een activiteit moet worden verlengd. (Elmaghraby S., 1995, blz. 395) 1.3.2.3. Andere karakteristieken Hiertoe behoren onder andere (Herroelen et al., 1999, blz. 1 – 26): ♦ de aard van de hulpmiddelenvereisten ♦ vervaldata en deadlines ♦ de introductie van financiële aspecten zoals kasstromen en “penalty costs” of boetes 1.3.3. Verschillende performantiemaatstaven Een project wordt op een zodanige wijze gepland, dat een of meerdere doelstellingen worden geoptimaliseerd, gegeven de vooropgestelde beperkingen. (Etgar R. et al., 1997, blz. 90) Hierbij worden twee soorten performantiemaatstaven of “measures of performance” onderscheiden. Enerzijds zijn er de zogenaamde reguliere of “early completion” maatstaven 9 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen en anderzijds de zogenaamde niet-reguliere of “free completion” maatstaven. (Brucker P. et al., 1999, blz. 22) Een reguliere maatstaf is een niet-afnemende (in het geval van een minimalisatieprobleem) of een niet-toenemende (in het geval van een maximalisatieprobleem) functie van de eindtijden van de activiteiten. Een niet-reguliere maatstaf voldoet niet aan deze definitie. (Brucker P. et al., 1999, blz. 22) Tot de eerste categorie behoren onder andere (Kolisch R. en Padman R., 2001, blz. 251): ♦ het minimaliseren van de duur van een project ♦ het minimaliseren van de gemiddelde “flowtime” of doorstroomtijd ♦ het minimaliseren van de gemiddelde “lateness” of laatheid ♦ het minimaliseren van het aantal achteroplopende activiteiten ♦ het maximaliseren van de netto actuele waarde van een project als enkel positieve kasstromen worden beschouwd Bij dergelijke maatstaven is het nooit gunstig om een activiteit te verschuiven naar het einde van het project, indien we enkel de volgorderelaties in beschouwing nemen. Bij niet-reguliere maatstaven kan het zijn dat het uitstellen van een activiteit leidt tot een verbetering van de performantiemaatstaf. Dergelijke doelfuncties zijn vaak gerelateerd aan de financiële aspecten van projectmanagement. Dit kan onder de vorm van “cash flows”, “penalty costs”, kwaliteitskosten en dergelijke meer. Volgende doelfuncties ontmoetten we in de literatuur (Vanhoucke M., 2001, blz. 12): ♦ het maximaliseren van de netto actuele waarde van een project (met zowel postitieve als negatieve kasstromen) ♦ het minimaliseren van de gewogen “earliness-tardiness penalty costs” van de activiteiten in een project Ons planningsprobleem, het maximaliseren van de “net present value” van een project, is dus een niet-reguliere performantiemaatstaf. Dit betekent dat het uitstellen van een activiteit niet noodzakelijk tot een verslechtering van deze maatstaf zal leiden. 10 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen In de volgende paragraaf reiken we argumenten aan welke het gebruik van onze performantiemaatstaf rechtvaardigen. 1.4. Maximaliseren van de netto actuele waarde Wanneer de financiële aspecten van projectmanagement in beschouwing worden genomen, geniet het maximaliseren van de netto actuele waarde van een project de voorkeur als doelfunctie. De voorkeur voor dit criterium neemt toe als de projectduur stijgt. (Herroelen et al., 1997, blz. 97) In het algemeen kunnen de kasstromen die tijdens een project voorkomen twee vormen aannemen. Enerzijds zijn er de “cash outflows” die kosten voor personeel, materieel, materiaal, … inhouden en anderzijds de “cash inflows” welke voorkomen onder de vorm van inkomende betaling op het einde van het project of bij het voltooien van sommige “mijlpalen”. (Abbasi G. en Arabiat Y., 2001, blz. 17) Het maximaliseren van de “net present value” is relevant en te rechtvaardigen indien er aan de volgende voorwaarden wordt voldaan (Herroelen W. et al., 1997, blz. 116): ♦ de tijdwaarde van geld wordt in beschouwing genomen ♦ de projecten zijn kapitaalintensief en hebben een totale duur van verscheidene maanden of zelfs jaren ♦ het project kent aanzienlijke kasstromen ♦ er zijn hoge interestvoeten ♦ er is een hoge kapitaalkost Grote bouwprojecten uit de bouwsector vormen een typisch voorbeeld. (Herroelen W. et al., 1997, blz. 116) In de praktijk vinden we toepassingen terug waarin deze doelstelling gewenst is. De capaciteitsuitbreiding van het waterproductiecentrum van de Vlaamse Maatschappij voor Watervoorziening te Kluizen werd gepland met het maximaliseren van de netto actuele waarde als doelstelling. Dit is een zeer kapitaalintensief project met een duur van meer dan zes jaar. (Vanhoucke M. en Demeulemeester E., 2003, blz. 30 – 42. 11 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen De “net present value” (NPV) is gebaseerd op de tijdwaarde van geld. Als we vandaag een euro ontvangen, dan is deze meer waard dan een euro die we in de toekomst ontvangen. Immers, die euro kan vandaag nog worden geïnvesteerd en zodoende direct een interest opleveren. (Herroelen W. et al., 1997, blz. 98) De formule voor het berekenen van de NPV met een continue verdisconteringsfactor α wordt later in dit hoofdstuk weergegeven (cfr. § 1.6.). Aldus komen we tot een “accept-reject” beslissingsmechanisme. Een project wordt aanvaard als de NPV groter of gelijk aan nul is en geweigerd indien de NPV negatief is. (Herroelen W. et al., 1997, blz. 98) Ook bij het plannen van projecten is het NPV-criterium toepasbaar. We kunnen immers veronderstellen dat de meeste projectbouwers het maximaliseren van hun winst als voornaamste doelstelling hebben. Bijgevolg is het logisch ook het NPV-criterium te hanteren bij het plannen van de projecten. (Herroelen et al., 1997, blz. 98) Vroeger probeerden projectbouwers de kasstromen van hun projecten te verbeteren door “over-measurement” tijdens de eerste maanden van het contract en / of “front-end loading”. Daarbij werden de activiteiten die in het begin van het project waren gepland kunstmatig overprijsd en deze die op een later tijdstip waren gepland onderprijsd. Op deze manier verbetert de NPV van het project, terwijl de totale kostprijs van het project toch gelijk blijft. Maar vermits de offerte enkel een raming vormt voor de totale hoeveelheid werk en de totale kosten van een project, kan dit grote risico’s inhouden. Ook bij het ethische aspect van dergelijke strategieën kunnen vragen worden gesteld. (Doersch R. en Patterson J., 1977, blz. 882 – 883) Nu we omschreven hebben in welke omstandigheden het relevant is de netto actuele waarde van een project te maximaliseren, kunnen we het probleem mathematisch formuleren. Alvorens daartoe over te gaan, geven we kort de aangenomen assumpties weer. 12 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen 1.5. Assumpties Bij de formulering van het “RCPSPDC”-probleem nemen we vier veronderstellingen aan. Deze zijn in lijn met eerdere onderzoeken terzake. We zetten ze kort op een rijtje. (Abbasi G. en Arabiat Y., 2001, blz. 20) Ten eerste veronderstellen we een volledig deterministisch kader. Dit wil zeggen dat alle relevante gegevens, zoals de duur van de activiteiten en het bedrag en de timing van de kasstromen, op voorhand gekend zijn. Onderzoek dat de stochastische aspecten van projectplanningproblemen behandelt, staat nog in zijn kinderschoenen. (Herroelen et al., 1997, blz. 97 – 98) Hierbij kennen de activiteiten slechts één “resource”-duur combinatie. Dit is een zogenaamd “single-mode” activiteit. Dit in tegenstelling tot de zogenaamde “multimode” activiteiten waar activiteiten verschillende hulpmiddelen-duur combinaties kennen. (Abbasi G. en Arabiat Y., 2001, blz. 20) Ten tweede nemen we aan dat er geen “taakonderbreking” is. Activiteiten moeten dus afgewerkt worden eens ze gestart zijn. (cfr. § 1.3.2.1.) Vervolgens gaan we uit van hernieuwbare hulpmiddelen. Op elk ogenblik is er dus een gelimiteerde hoeveelheid van deze “resources” beschikbaar. (cfr. § 1.3.1.) Tenslotte veronderstellen we dat alle volgorderelaties van het einde-start type zonder tijdvertragingen zijn. In dit geval kan een activiteit starten van zodra alle voorgangers zijn uitgevoerd. (cfr. § 1.3.2.2.) 1.6. Mathematische formulering van het “RCPSPDC”-probleem In 1970 introduceerde Russel A.H. het maximaliseren van de netto actuele waarde bij projectplanningsproblemen onder welbepaalde volgorderelaties. Echter, hierbij werden geen kapitaal- of hulpmiddelenbeperkingen in ogenschouw genomen. (Russel A.H., 1970, blz. 359) 13 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen Aangezien het gevaar op “front loading” daardoor nog steeds niet was ondervangen, werden de kapitaalbeperkingen vrij snel toegevoegd aan het model. (Doersch R. en Patterson J., 1977, blz. 882 – 883) Tenslotte werden ook hulpmiddelenrestricties geïmplementeerd. (Russel R.A., 1986, blz. 1292) Beschouwen we nu een project bestaande uit N activiteiten, elk met een duur di (i = 1,…,N). Elke activiteit is afgewerkt op een tijdstip TTi en kent een “cash flow” CFi. Met elke activiteit is ook een set van onmiddellijke voorgangers Pi geassocieerd. Deze activiteiten moeten voltooid zijn vooraleer de activiteit i van start kan gaan. Verder beschouwen we NR verschillende types van hulpmiddelen. Van elk type is er op elk tijdstip t een gelimiteerde hoeveelheid AVj beschikbaar (j = 1,…,NR). Iedere activiteit verbruikt rij “resources”. Tenslotte is α de continue verdisconteringsfactor, At de set aan de gang zijnde activiteiten op het tijdstip t en TTmax de maximale projectduur. (Pinder J. en Marucheck A., 1996, blz. 230) Het maximaliseren van de “net present value” (NPV) van een deterministisch “RCPSPDC” kan dan als volgt worden geformuleerd (Russel R.A., 1986, blz. 1292): N maximaliseer NPV = Σ CFi . exp(-α . TTi ) (1.1) i=1 met als randvoorwaarden: TTi – TTh ≥ di Σ voor i = 1,…,N en h ∈ Pi ri j ≤ AVj voor j = 1,…,NR en t = 1,…, TTmax (1.2) (1.3) i ∈ Pi De doelfunctie in de vergelijking (1.1) maximaliseert de netto actuele waarde van het project. De randvoorwaarde uitgedrukt in (1.2) zorgt ervoor dat aan de volgordebepalingen wordt voldaan. (1.3) drukt uit dat de beschikbare hoeveelheden hulpmiddelen op geen enkel ogenblik worden overschreden. (Russel R.A., 1986, blz. 1292) 14 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen 1.7. Indeling van de oplossingsmethodes Nadat we in de vorige paragraaf het probleem mathematisch hebben uitgedrukt, kunnen de oplossingsmethodes worden besproken. Hierbij onderscheiden we twee types: enerzijds de optimale benadering en anderzijds de heuristische benadering. (Kolisch R. en Padman R., 2001, blz. 254) Enkele eerder gedane onderzoeken omtrent de optimale oplossingsbenadering voor het maximaliseren van de NPV (“max-NPV”-problemen) wordt weergegeven in tabel 1.1. TABEL 1.1.: Overzicht van de belangrijkste onderzoeken naar optimale oplossingsmethodes Deterministisch max-NPV zonder hulpmiddelenbeperkingen Russel (1970), Grinold (1972), Elmaghraby en Herroelen (1990), Herroelen en Gallens (1993), Sepil en Kazaz (1994), Demeulemeester et al. (1996) max-NPV met hulpmiddelen-beperkingen hernieuwbare hulpmiddelen Yang et al. (1992), Baroum (1992), Icmeli en Erengüç (1996), Baroum en Patterson (1999) niet-hernieuwbare hulpmiddelen Doersch en Patterson (1977), Smith-Daniels (1986), Patterson et al. (1989), Patterson et al. (1990), Speranza en Vercellis (1993), Dayanand en Padman (1995) BRON:Herroelen W. et al, 1997, blz. 97 – 121 Kolisch R. en Padman R., 2001, blz. 249 – 272 In het kader van deze scriptie verdiepen we ons enkel in de heuristische benadering van het “RCPSPDC”-probleem. De heuristische procedures om dergelijke projectplanningsproblemen te benaderen, kunnen in twee categorieën ingedeeld worden (Kolisch R. en Padman R., 2001, blz. 257): (1) De optimalisatiegeoriënteerde of “optimization-guided” benadering (2) De parametergebaseerde of “parameter-based” benadering. 15 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen In de volgende paragraaf bespreken we de ontwikkelingen in beide benaderingen. We zullen ze in dezelfde volgorde behandelen als ze hierboven werden opgesomd. 1.8. Heuristische oplossingsmethodes Het planningsprobleem zonder hulpmiddelenbeperkingen waarbij de netto actuele waarde wordt gemaximaliseerd, kan op een efficiënte en optimale manier worden opgelost. Bijgevolg is er in dit geval geen behoefte aan het gebruik van heuristieken. (Herroelen W. et al., 1997, blz. 106) Indien echter hulpmiddelenrestricties worden toegevoegd aan het model, bieden optimale oplossingsmethodes niet altijd een uitkomst. De beste resultaten worden behaald met een “depth-first branch-and-bound”-procedure. (Herroelen W. et al., 1997, blz. 118) Tabel 1.2. geeft een overzicht van de belangrijkste onderzoeken inzake heuristische planningsmethodes. TABEL 1.2.: Overzicht van de belangrijkste onderzoeken naar heuristische oplossingsmethodes Optimalisatiegeoriënteerd Parametergebaseerd Russel R.A. (1986) Smith-Daniels en Aquilano N. (1987) Padman R. et al. (1990) Baroum S. en Patterson J. (1993) Padman R. en Smith-Daniels D.E. (1993) Ulusoy G. en Özdamar L. (1995) Pinder J. en Marucheck A. (1996) Özdamar L. et al. (1998) Abbasi G. en Arabiat Y. (2001) BRON:Herroelen W. et al, 1997, blz. 97 – 121 Kolisch R. en Padman R., 2001, blz. 249 – 272 Hieronder bespreken we kort deze eerdere onderzoeken. Op deze manier willen we een inzicht bekomen in mogelijke oplossingsmethodes, opdat we zelf een algoritme zouden kunnen opstellen en verfijnen. 16 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen De beperking in dergelijke opzetten is veelal de vergelijkingsbasis. Iedere onderzoeker test de heuristieken uit op probleemsets die, zowel qua veronderstellingen als qua rapportering van de resultaten, kan verschillen. Een experiment waarbij de meest veelbelovende heuristieken en procedures onder identieke assumpties op een standaard testset worden uitgetest, ontbreekt momenteel nog. (Herroelen W. et al., 1997, blz. 118) We merken op dat recentelijk pogingen werden ondernomen om lokale zoekmethoden, zoals de “tabu search” en “simulated annealing”, toe te passen bij het oplossen van dergelijke planningsproblemen. (Herroelen W. et al., 1997, blz. 118) Dit vormt de zogenaamde metaheuristische of “metaheuristic”benadering. (Kolisch R. en Padman R., 2001, blz. 257) 1.8.1. Optimalisatiegeoriënteerde benadering De oplossingen van het model zonder hulpmiddelenbeperkingen vormen het uitgangspunt bij deze benadering. Hierdoor komt een “single-pass” heuristiek (cfr. blz. 19) tot stand. (Kolisch R. en Padman R., 2001, blz. 257) Het eerste onderzoek hieromtrent werd gepubliceerd door Russell R.A.. (1986). Steunende op het planningsprobleem zonder hulpmiddelenbeperkingen en op methodes die werden ontwikkeld om de totale projectduur te minimaliseren, stelde hij zes heuristieken op. (Kolisch R. en Padman R., 2001, blz. 258) Het onderzoek bevatte geen heuristiek die het best presteerde voor alle problemen. Bij kleine activiteiten bleek het niet veel uit te maken welke heuristiek er werd gehanteerd. De regel waarbij de prioriteit wordt toegekend aan de activiteit met de kleinste “slack” – zijnde het verschil tussen de “latest finish time” en de “earliest finish time” – bleek het best te presteren bij grote projecten met lichte hulpmiddelenbeperkingen. Bij strenge hulpmiddelenrestricties bleek de “target scheduling”-regel de beste performantie te leveren. Hier wordt het verschil genomen tussen de “earliest finish time” en hun optimale eindtijd, zoals die werd bepaald door de kasstromenanalyse zonder hulpmiddelenbeperkingen. De activiteit met het grootste verschil wordt het eerste gepland. (Russel R.A., 1986, blz. 1291 – 1300) Padman R. et al. (1990) maakten eveneens gebruik van informatie bekomen uit de procedure voor het maximaliseren van de netto actuele waarde zonder hulpmiddelenbeperkingen, zoals 17 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen deze door Russel A.H. werd geformuleerd. Zij stelden heuristieken voor, waarbij de start van een activiteit wordt uitgesteld tot het “target schedule”-tijdstip (cfr. supra). Het tijdstip waarop de activiteit zou kunnen worden gepland volgens de volgordebepalingen speelt hierbij geen enkele rol. Ze kwamen tot de conclusie dat hun optimalisatiegeöriënteerde heuristieken tot een hogere “net present value” leidden dan deze die door Russell R.A. werden getest. (Herroelen W. et al., 1997, blz. 111) Padman R. en Smith-Daniels D. (1993) lieten zich inspireren door het “job-shop”planningsprobleem. Ze onderzochten de “trade-off” tussen kosten voor het te vroeg plannen en de boetes of kosten voor het te laat plannen. Aan de hand van acht heuristieken gingen ze na of het meteen in de “wachtrij” opnemen van activiteiten van welke alle voorgangers zijn afgewerkt tot een hogere netto actuele waarde voor het totale project zou leiden. Uitgebreide testen toonden aan dat dit het geval is onder verschillende projectparameters. (Padman R. en Smith-Daniels D.E., 1993, blz. 295 – 311) Hoewel optimalisatiegebaseerde heuristieken tot goede resultaten kunnen leiden, brengen dergelijke heuristieken niet altijd significante verbeteringen aan aan de initiële oplossing. Dit geldt zeker voor wat het maximaliseren van de netto actuele waarde als doelfunctie betreft. (Patterson J. et al., 1990, blz. 68 – 79) De implementatie ervan vormt een hinderpaal bij dergelijke optimalisatiegeoriënteerde heuristieken. Immers, dit vereist het formuleren en het oplossen van het duale probleem van de lineaire benadering van het versoepelde optimalisatieprobleem. (Pinder J. en Marucheck A., 1996, blz. 231) De parametergebaseerde benadering kan in dit geval soelaas bieden. Deze regels kunnen relatief eenvoudig berekend en geïmplementeerd worden. (Pinder J. en Marucheck A., 1996, blz. 231) 1.8.2. Parametergebaseerde benadering Bij deze benadering wordt informatie omtrent het kritische pad en kasstromen gebruikt om prioriteitsregels op te stellen. (Kolisch R. en Padman R., 2001, blz. 257) 18 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen Smith-Daniels D. en Aquilano N. (1987) vergeleken de totale duur en de netto actuele waarde in geval er wordt gepland aan de hand van enerzijds een “late-start” en anderzijds een “earlystart” kritisch pad. Ze kwamen tot de bevinding dat een planning gebaseerd op “early-start”tijden een hogere netto actuele waarde en een kleinere gemiddelde duur opleverde dan indien elke activiteit zo vroeg mogelijk werd gepland. Daarenboven vonden ze dat het planningsschema gebaseerd op de “late-start” tijden gemiddeld langer uitviel en geen significante verbetering qua netto actuele waarde opleverde. (Smith-Daniels D. en Aquilano N., 1987, blz. 617 – 630) Baroum S. en Patterson J. (1993) introduceerden heuristieken die gebaseerd zijn op het begrip “cash flow weight” (CFW). Deze CFW wordt bekomen door de kasstromen van toekomstige activiteiten te sommeren. De activiteit met de grootste CFW wordt dan zo vroeg mogelijk gepland. Dit is een zogenaamde “single-pass” procedure. (Kolisch R. en Padman R., 2001, blz. 258) Ze breidden deze basisprocedure uit met een “shifting” of verschuivingsprocedure. Hierbij wordt getracht activiteiten met een negatieve “cash flow” naar links te verschuiven en activiteiten met een postieve kasstroom naar rechts. Deze verschuivingsprocedure wordt herhaald tot er geen wijzigingen meer kunnen worden aangebracht in het planningsschema. Dit vormt dan een zogenaamde “multi-pass” procedure. Deze heuristieken kunnen dan nog worden verfijnd door verdisconteringsfactoren toe te passen op de niet-verdisconteerde kasstromen bij het bepalen van de CFW. (Herroelen W. et al., 1997, blz. 111) De gemiddelde netto actuele waarde van een project bleek hoger te zijn bij een CFWheuristiek, dan bij de toepassing van de minimale “slack” als prioriteitsregel. Bovendien performeerde geen enkele “single-pass” heuristiek significant beter dan een “multi-pass” regel. (Herroelen W. et al. 1997, blz. 111) Het algoritme dat wij in het tweede hoofdstuk van deze scriptie zullen voorstellen, bevat ook dergelijke “multi-pass” procedure. Ulusoy G. en Özdamar L. (1995) stelden een iteratief planningsalgoritme voor dat tot doel heeft zowel de netto actuele waarde als de totale projectduur te verbeteren. De opeenvolgende voor- en achterwaartse planningsfasen leiden tot een gelijkmatigere verdeling van het hulpmiddelenverbruik. Samen met het naar rechts verschuiven van de activiteiten resulteerde dit op zijn beurt tot het behalen van deze dubbele doelstelling. Dit algoritme werd 19 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 1. Literatuur omtrent projectplanningsproblemen met kasstromen losgelaten op twee testsets en bleek beide objectieven te realiseren. (Ulusoy G. en Özdamar L., 1995, blz. 89 – 98) Pinder J. en Marucheck A. (1996) stelden tien heuristieken voor. Deze waren allen gebaseerd op de verdisconteerde “cash flows” en werden vergeleken met zeven heuristieken die goed bleken te presteren bij de minimalisatie van de totale projectduur. Het belang van dit onderzoek ligt in het feit dat er eenvoudige en intuïtief aanvaardbare prioriteitsregels worden voorgesteld. De performantie van deze regels werd nagegaan zowel op het vlak van de netto actuele waarde, als op het vlak van de totale projectduur. (Pinder J. en Marucheck A., 1996, blz. 229 – 239) De heuristieken die werden opgebouwd op basis van de verdisconteerde kasstromen van de toekomstige activiteiten bleken even effectief te zijn als optimalisatiegeöriënteerde regels onder verschillende projectomstandigheden. (Pinder J. en Marucheck A., 1996, blz. 239) Özdamar L. et al. (1998) ontwikkelden zes regels die gewogen combinaties van de dynamische “slack” tijd en “cash flows” van toekomstige activiteiten vormden. Deze regels werden eveneens geïmplementeerd in een iteratieve “multi-pass” planningsprocedure. De resultaten die werden bekomen door deze regels toe te passen op een gemodifieerde subset van de Patterson test bleken beter te zijn, vergeleken met eerder gepubliceerde resultaten. (Özdamar et al., 1998, blz. 805 – 820) Abbasi G. en Arabiat Y. (2001) stelden een hybride heuristiek voor die was gebaseerd op de minimale “late”-starttijd en de “shortest processing time” (LSSPT). De basisidee was om de activiteit met de kortste procestijd te plannen voor de activiteit met de minimale “late”starttijd werd gestart. Deze heuristiek bleek goed te presteren wat het maximaliseren van de netto actuele waarde betreft enerzijds en het minimaliseren van de totale projectduur anderzijds. (Abbasi G. en Arabiat Y., 2001, blz. 17 – 24) 20 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme HOOFDSTUK 2: BESCHRIJVING VAN HET ALGORITME Nadat we in het eerste hoofdstuk van deze scriptie een bondig overzicht hebben geschetst van de literatuur omtrent projectplanning, en meer in het bijzonder de heuristische benadering, beschrijven we nu het eigen algoritme ter zake. Voor het raamwerk van het algoritme baseren we ons op Abbasi en Arabiat (2001). De implementatie voeren we echter zelf uit. De verdere eigen inbreng situeert zich in het opstellen en implementeren van zeven heuristieken. (Abbasi G. en Arabiat Y., 2001, blz. 1724) In dit onderzoek worden dus prioriteitsregels geconstrueerd en uitgetest op een uitgebreide testset. De bedoeling is om combinaties van parameters te vinden waarvoor de heuristiek de optimale “net present value” voldoende dicht benadert. Het ultieme doel is om een voorrangsregel te “ontdekken” die, ongeacht de instellingen van de parameters van de testset, tegen de netto actuele waarde van de optimale oplossing aanleunt. In de paragraaf 2.1. wordt het algoritme opgesplitst in vier fases. In § 2.2. wordt de eerste fase, de voorbereidende fase, toegelicht. Deze fase bestaat uit drie stappen, die elk zullen worden becommentarieerd. Daarna volgt de initialisatie fase, welke wordt besproken in sectie 2.3. Alvorens over te gaan naar de derde en vierde fase, geven we deze schematisch weer in de vierde paragraaf van dit hoofdstuk. Daarna wordt stilgestaan bij de planningsfase in § 2.5. Deze derde fase kan worden opgedeeld in vier stappen. Eerst wordt de set van mogelijke activiteiten op het tijdstip t bepaald. Daarna wordt aan één van deze activiteiten de hoogste prioriteit toegekend op basis van zogenaamde heuristieken. We lichten zeven voorrangsregels toe. Ze werden zelf opgesteld, gebaseerd op bestaande prioriteitsregels uit de literatuur. In de derde stap wordt de activiteit met de hoogste prioriteit voorlopig gepland. De planningsfase wordt afgesloten met de berekening van de netto actuele waarde. Aan elke stap wordt een subparagraaf gewijd. Uiteindelijk sluiten we dit hoofdstuk af met de vierde en laatste fase van het algoritme, de postoptimalisatie, in sectie 2.6. Hierin wordt nagegaan of de planning van de acitiviteiten nog kan worden aangepast zodat de netto actuele waarde van het project wordt verhoogd. Tevens wordt gecontroleerd of de projectduur door die nieuwe 21 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme planning is ingekort. Tenslotte berekenen we de “postoptimale” netto actuele waarde voor de uiteindelijke planning. Vermits het opstellen en implementeren van dit algoritme het zwaartepunt vormt van deze scriptie, lijkt het gerechtvaardigd om hierop dieper in te gaan. De rest van dit hoofdstuk zal dan ook gewijd worden aan de toelichting van het zelf geïmplementeerde algoritme. Vooraf dienen echter twee opmerkingen te worden gemaakt: ♦ De hierna volgende bespreking wordt gevoerd voor de planning van één project. Om meerdere projecten te plannen, wordt het algoritme meerdere keren doorlopen. ♦ In deze tekst wordt er geopteerd voor het gebruik van de zogenaamde “pseudo-code” om de abstracte redenering te verduidelijken. Dergelijke pseudo-code is heel gebruikelijk in zulke teksten. Het zorgt ervoor dat de lezer zich niet hoeft in te werken in de gebruikte programmeertaal, in dit geval Visual C++ 6.0. 2.1. Indeling van het onderzoek In de literatuur is het heel gebruikelijk het algoritme in te delen in verschillende fasen. De initialisatie en de planningsfase vinden we in elk algoritme terug. Tevens wordt er vaak een postoptimalisatie fase uitgevoerd. (Ulusoy G. en Özdamar L., 1995, blz. 89 – 98) In deze bespreking wordt ook een voorbereidende fase opgenomen. Zo kan het inlezen van de verschillende variabelen op een overzichtelijke manier worden weergegeven. Aldus kan dit algoritme worden opgesplitst in de volgende vier fases: ♦ de voorbereidende fase ♦ de initialisatie fase ♦ de planningsfase ♦ de postoptimalisatie fase Elke fase zal in het verdere verloop van dit hoofdstuk uitvoerig worden behandeld. We beginnen uiteraard met de voorbereidende fase. 22 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme 2.2. Voorbereidende fase In deze eerste fase worden zowel de gegevens uit de testset als zelf gegenereerde “cash flows” ingelezen. Daarnaast worden ook enkele bijkomende data, dewelke noodzakelijk zijn voor het verdere verloop van het algoritme, berekend. Er wordt van de gelegenheid gebruik gemaakt om tevens symbolen toe te kennen aan de verschillende karakteristieken. De hier gebruikte symbolistiek is grotendeels gebaseerd op deze gehanteerd door Pinder J. en Marucheck A. (Pinder J. en Marucheck A., 1996, blz. 230) 2.2.1. Inlezen van de projectgegevens Het programma start met het inlezen van de projectkenmerken. Deze kenmerken zijn: ♦ N, het aantal activiteiten waaruit het project bestaat, het activiteitsnummer ♦ NR, het aantal hulpmiddelen dat het project gebruikt ♦ AVj, de beschikbaarheid van het hulpmiddel j ( j = 1, 2, …, NR ) Vervolgens worden ook enkele karakteristieken van de activiteiten ingelezen. Het betreft hier: ♦ di , de duur van een activiteit i ( i = 1, 2, …, N ) ♦ ri j, het verbruik van elk hulpmiddel j door de activiteit i ♦ NSi , het aantal volgers van een activiteit i ♦ sik , de kde volger van een activiteit i ( i = 1, 2, …, N en k = 1, 2, …, NSi ) 2.2.2. Generatie en inlezen van “cash flows” Zoals we bij de beschrijving van de testset (cfr. § 4.1.) zullen opmerken, bevat deze testset geen informatie met betrekking tot “cash flows”. Daarom is het noodzakelijk voor het verdere verloop van het onderzoek dat deze afzonderlijk worden gegenereerd. Deze kasstromen werden voor elk project en voor elk percentage negatieve “cash flows” afzonderlijk opgeslagen. Zo bekomen we dat, bij het doorlopen van het algoritme, de gepaste kasstromen op een eenvoudige manier worden ingelezen. 23 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme De “cash flows” worden verder voorgesteld door CFi , met i = 1, 2, …, N. In dit onderzoek werd er geopteerd om deze kasstromen op een willekeurige (random) manier aan te maken, naar analogie van eerdere onderzoeken in dit domein. (Pinder J. en Marucheck A., 1996, blz. 235) De werkwijze kan als volgt worden uiteengezet: Eerst wordt het percentage negatieve kasstromen ingelezen in een constante. Voor dit onderzoek bedraagt deze constante achtereenvolgens 0%, 25%, 50%, 75% en 100%. Vervolgens wordt aan elke activiteit van het project een “random cash flow” toegekend uit een uniforme verdeling met als interval [ -500 ; 500 ]. Vermits de eerste en de laatste activiteit van het project slechts dummyactiviteiten zijn, stellen we de bijhorende kasstromen gelijk aan nul. Voor de andere activiteiten gingen we als volgt tewerk. Eerst worden er twee willekeurige natuurlijke getallen gegenereerd. Het ene tussen 1 en 500 (de “cash flow”) en het andere tussen 0 en 100 (het percentagegetal). Als dat laatste getal kleiner is dan het vooropgestelde percentage negatieve “cash flows” (bvb. 50), dan wordt een minteken toegekend aan de kasstroom. (cfr. code van Prof. dr. Vanhoucke M.) Aldus bekomen we dat elk project bestaat uit een vooropgesteld percentage negatieve kasstromen. Op deze manier zal bij de analyse van de onderzoeksresultaten de performantie van de onderzochte heuristieken kunnen worden nagegaan bij verschillende settings van de “cash flows”. De pseudo-code voor deze procedure wordt hieronder weergegeven: percent negatieve = constante; (constante = 0.25, 0.50, 0.75, 1.00) VOOR i = 1 tot N ALS: i = 1 of i = N DAN: CFi = 0; ANDERS: CFi = random ] 0, 500 ]; ALS: random [ 0, 100 ] < percent negatieve DAN: CFi = - CFi ; 24 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme Hiermee is het inlezen afgehandeld en kan worden overgegaan naar het berekenen van aanvullende data. Dit zal de laatste stap vormen van de voorbereidende fase. 2.2.3. Berekenen van aanvullende data De voorbereidende fase wordt afgesloten met de berekening van variabelen op basis waarvan in de planningsfase de prioriteiten zullen worden toegekend. Vermits dit echter afhankelijk is van de gehanteerde heuristiek, zal dit verderop in dit hoofdstuk worden behandeld. In deze paragraaf verduidelijken we wel de bepaling van de voorgangers en deze van de toekomstige activiteiten van een activiteit, vermits deze aan de basis liggen van de variabelen in sectie 2.5.2.. Eerst wordt het aantal voorgangers en de voorgangers van elke activiteit bepaald. We definiëren hierbij twee symbolen: ♦ NPi , het aantal voorgangers van een activiteit i ( i = 1, 2, …, N ) ♦ pil , de lde voorganger van een activiteit i ( l = 1, 2, …, NPi ) Aangezien het kennen van de voorgangers noodzakelijk is bij de bepaling van de mogelijke activiteiten (cf. § 2.5.1.), behandelen we hier de bepaling ervan. Ten eerste wordt het aantal voorgangers van elke activiteit gelijkgesteld aan nul. Vervolgens worden voor elke activiteit het aantal voorgangers en de voorgangers zelf bepaald. Daartoe overlopen we voor elke activiteit de respectieve volgers. Met behulp van een hulpvariabele “hulp” voeren we een ruiltransformatie uit. De beschouwde activiteit wordt nu een voorganger van haar volgers en tevens verhogen we het aantal voorgangers met één activiteit. We verduidelijken dit aan de hand van een voorbeeld. Stel dat activiteit 5 twee volgers heeft, nl. 8 en 10. Bij het doorlopen van bovenstaande procedure verkrijgen activiteiten 8 en 10 één bijkomende voorganger, nl. activiteit 5. Dit is de bedoelde ruiltransformatie. 25 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme De pseudo-code kan als volgt worden weergegeven: VOOR i = 1 tot N NPi = 0; VOOR i = 1 tot N en k = 1 tot NSi hulp = sik ; NPhulp + 1; p hulp , NP(hulp) = i; Tevens leggen we voor elke activiteit van het project de “toekomstige activiteiten van een activiteit i” vast. Hier dienen we duidelijk vast te leggen welke activiteiten er bedoeld worden. Immers, het onderscheid kan worden gemaakt tussen enerzijds de set van onmiddellijke volgers en anderzijds de set van alle volgers. (Cooper D., 1976, blz. 1187) Het eerste geval is een variatie op het begrip “future activities”, waar enkel de activiteit en haar volgers worden bedoeld. (Pinder J. en Marucheck A., 1996, blz. 232) Wij opteren echter voor de tweede mogelijkheid. We preciseren het begrip als volgt: De toekomstige activiteiten van een activiteit i zijn alle activiteiten die in de knooppuntvoorstelling van een netwerk gelegen zijn op een tak tussen de activiteit i en de eindactiviteit, inclusief activiteit i en de eindactiviteit. Hiervoor stellen we een binaire NxN-matrix op. Het principe is heel eenvoudig. Als activiteit j een toekomstige activiteit is van activiteit i, geven we het element ij de waarde één. Indien dit niet het geval is, kennen we dit element ij de waarde nul toe. De invulling van de NxN-matrix gebeurt in drie fasen. In eerste instantie initialiseren we de matrix door de elementen die op de diagonaal gelegen zijn, gelijk te stellen aan één en de anderen gelijk aan nul. Immers, een activiteit wordt ook als een toekomstige activiteit van zichzelf beschouwd. Daarna coderen we dat elke activiteit een toekomstige activiteit is van zijn voorgangers. Tenslotte vervolledigen we de matrix door te implementeren dat de toekomstige activiteiten van een activiteit j ook toekomstige activiteiten zijn van een activiteit i, als j een volger is van i. 26 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme De pseudo-code voor de implementatie van deze definitie ziet er als volgt uit: VOOR i = 1 tot N en j = 1 tot N ALS: i = j DAN: toekomstige ij = 1; ANDERS: toekomstige ij = 0; VOOR i = N tot 1 en l = 1 tot NP i toekomstige p(i,l), i = 1; VOOR i = 1 tot N en j = 1 tot N ALS: toekomstige ij = 1 DAN: VOOR k = j + 1 tot N ALS: toekomstige jk = 1 toekomstige ik = 1; Na het inlezen van de gegevens uit de testset, de generatie en het inlezen van de “cash flows”, en het berekenen van de aanvullende data is de voorbereidende fase afgerond. In de volgende paragraaf bespreken we de tweede fase. 2.3. Initialisatie fase Na alle gegevens te hebben ingelezen in de voorbereidende fase en alvorens over te stappen naar het eigenlijke programma, moet eerst een initialisatie fase worden doorlopen. Het doel van deze fase is het toekennen van beginwaarden aan variabelen die later in de planningsfase zullen worden gebruikt. We vinden dergelijke fase ook terug in het algoritme van Ulusoy en Özdamar. (Ulusoy G. en Özdamar L., 1995, blz. 91) Gezien het geringe conceptuele belang van deze fase vermelden we enkel de verschillende stappen uit deze fase, zonder daarbij uit te wijden over de implementatie in code. We onderscheiden volgende stappen (Ulusoy G. en Özdamar L., 1995, blz. 91): (1) Het initialiseren van de klok: tijd = 1 Naargelang de praktische toepassing van het programma kan men één eenheid gelijkstellen aan één (arbeids)uur, één (werk)dag, één (werk)week, één maand, … (2) Het initialiseren van de hulpmiddelen: resterende resources = beschikbare resources Voor alle NR hulpmiddelen wordt de resterende hoeveelheid ervan gelijkgesteld aan de beschikbare hoeveelheid AVj ( j = 1, 2, …, NR ) van deze resource, en dit voor alle 27 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme tijdstippen. Deze stap is een uiting van het feit dat er nog geen enkele activiteit gepland is en bijgevolg ook nog geen enkel hulpmiddel verbruikt is. (3) Het initialiseren van de eerste activiteit: Vermits activiteit 1 een dummyactiviteit is, die enkel het begin van het project aangeeft en geen resources verbruikt, kunnen we deze als reeds gepland beschouwen. Dit doen we door de binaire variabele “gepland” de waarde 1 toe te kennen. Het aantal geplande activiteiten bedraagt dan één. De begin- en eindtijd van activiteit 1 worden beiden gelijkgesteld aan nul. (4) Het initialiseren van de overige activiteiten: De overige activiteiten worden allen als “niet-gepland” geïnitialiseerd. Daarom stellen we voor al deze activiteiten de binaire variabele “gepland” gelijk aan nul. Hiermee is de initialisatie fase besproken en kunnen we overgaan naar het eigenlijke programma. Om echter ten allen tijde het overzicht te kunnen behouden, stellen we de volgende fasen van het programma op een schematische manier voor in de volgende paragraaf. 2.4. Schematische weergave van de planningsfase en optimalisatie Figuur 2.1. is een zogenaamd “flow chart” of vloeischema dat het vervolg van dit hoofdstuk op een schematische manier weergeeft. Deze voorstellingswijze is heel gebruikelijk in de wereld van programmeurs. Ook in het planningsmilieu wordt er veelvuldig gebruik van gemaakt. Deze figuur is dan ook gebaseerd op een bestaande “flow chart” (voor de LSSPT heuristiek (cfr. § 1.8.2.)) en werd aangepast voor het eigen algoritme. (Abbasi G. en Arabiat Y., 2001, blz. 19) Het bovenste gedeelte van de figuur stelt de initialisatie fase voor, welke werd besproken in de vorige paragraaf. Het middelste en onderste deel stellen de volgende fasen voor. 28 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme In de volgende paragrafen van dit hoofdstuk zal ruimschoots aandacht besteed worden aan elke procedure (de rechthoeken) uit de planningsfase en de optimalisatie. Afhankelijk van het antwoord op de vragen die in de ruiten vermeld staan, wordt de aangeduide weg gevolgd. Ons onderzoek is toegespitst op het vinden van een goede prioriteitsregel. Het grijze kader op de figuur geeft dan ook een essentiële procedure weer voor dit algoritme. 29 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme FIGUUR 2.1.: “Flow chart” van het eigen algoritme START ( tijd = 1 ) INITIALISATIE FASE PLANNINGSFASE tijd = tijd + 1 Alle activiteiten gepland? JA NEEN De set van mogelijke activiteiten op het tijdstip t bepalen NEEN Zijn er activiteiten mogelijk? JA De prioriteit bepalen o.b.v. heuristiek De hoogste prioriteit plannen De net present value berekenen Postoptimalisatie POSTOPTIMALISATIE Nagaan of de projectduur is verkort De postoptimale net present value berekenen EINDE BRON: gebaseerd Abassi G. en Arabiat Y., 2001, blz. 19 30 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme 2.5. De planningsfase In de derde fase van het programma worden de activiteiten gepland. Deze planning is echter voorlopig vermits er in de volgende fase, de postoptimalisatie, nog verschuivingen kunnen optreden in de planning. Wel wordt de maximale totale duur, de “deadline” van het project vastgelegd. Tijdens de postoptimalisatie kan deze enkel nog worden ingekort, ook al hoeft dat niet noodzakelijk het geval te zijn. We onderscheiden vier stappen in deze fase. Eerst wordt een set van mogelijke activiteiten op het tijdstip t opgesteld. Indien deze set op het tijdstip t activiteiten bevat, wordt overgegaan naar de tweede en derde stap. Deze houden in dat op basis van een heuristiek de activiteit met de grootste prioriteit wordt bepaald en ook wordt gepland. Als deze set daarentegen leeg zou zijn, wordt de klok één eenheid vooruitgeschoven en wordt de set van mogelijke activiteiten voor het tijdstip t+1 bepaald. Dit wordt herhaald totdat alle activiteiten gepland zijn. Tenslotte wordt de vierde en laatste stap, het berekenen van de netto actuele waarde of de “net present value”, uitgevoerd. In pseudo-code kan dit als volgt wordt weergegeven: ZOLANG aantal_gepland < N –1 (N – 1 omdat de laatste activiteit in de testset een dummyactiviteit is) Bepaling van de mogelijke activiteiten op tijdstip t (STAP 1); ALS: aantal mogelijke activiteiten = 0 DAN: tijd = tijd + 1; ANDERS: Bepaling van de activiteit met de grootste activiteit (STAP 2); Plannen van deze activiteit (STAP 3); Berekenen van de “net present value” (STAP 4); We bespreken nu elke stap in detail. 2.5.1. STAP 1: Bepaling van de set van mogelijke activiteiten De set welke alle mogelijke activiteiten bevat die op een tijdstip t kunnen worden uitgevoerd, krijgt in de literatuur verschillende benamingen toebedeeld. 31 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme Enerzijds treffen we de term “eligible activity set” (EAS) aan. De opbouw ervan is enkel gebaseerd op de volgorderelaties. In dat geval worden de hulpmiddelenrestricties pas bij een latere stap in rekening gebracht. (Abbasi G. en Arabiat Y., 2001, blz. 18) Ook wordt soms de term “available set” aangetroffen. (Cooper D., 1976, blz. 1187) Anderzijds hebben Özdamar L. et al. (1998) het over de “set of schedulable activities”. Zij stellen dat een activiteit tot deze set behoort als haar voorgangers afgewerkt zijn én als er voldoende hulpmiddelen beschikbaar zijn om aan haar vraag naar “resources” te voldoen. (Özdamar L. et al., 1998, blz. 805 - 820) In het eerste geval wordt pas in een latere stap de vraag naar hulpmiddelen nagegaan. Dat betekent echter dat daartussen ook calculaties plaatsgrijpen voor activiteiten die onmogelijk kunnen worden gepland. Dit brengt, volgens ons, een extra, te vermijden belasting voor de computer teweeg. Daarom opteren wij – in navolging van Özdamar L.et al. (1998) - om deze hulpmiddelenvereisten meteen te incorporeren bij de opbouw van deze set. In deze optiek kan elke activiteit die opgenomen is in deze set ook daadwerkelijk gepland worden. We gebruiken verder het symbool SSAt voor deze “set of schedulable activities” op het tijdstip t en ssati om aan te geven of een activiteit al dan niet tot de SSAt behoort met t = 1, …, maximale projectduur en i = 1, …, N. ssati is een binaire variabele. Een waarde gelijk aan één geeft aan dat de activiteit i tot de SSAt behoort. Op elk tijdstip t gaan we voor elke activiteit na of ze tot de SSAt behoort. De bepaling ervan in ons algoritme gebeurt volgens een uitsluitingsmechanisme: (1) We stellen dat alle activiteiten tot de SSAt behoren op het tijdstip t. (2) De activiteiten die reeds gepland zijn, worden uitgesloten. (3) Voor activiteiten die nog steeds tot deze set behoren, wordt getest of er aan hun vraag naar hulpmiddelen wordt voldaan. Indien dit niet het geval is, worden deze activiteiten uit de set verwijderd. (4) Tenslotte wordt er getest of de voorgangers van een activiteit reeds zijn gepland. Pas indien ook aan deze voorwaarde wordt voldaan, behoort een activiteit i definitief tot de SSAt . (5) Het aantal activiteiten dat tot deze set behoort, wordt met één verhoogd. 32 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme De desbetreffende pseudo-code voor het tijdstip t kan als volgt worden weergegeven. RRtj is hierbij het overblijvend aantal hulpmiddelen van het type j op het tijdstip t, met t = 1, …, maximale duur en j = 1, …, NR. aantal mogelijke = 0; VOOR i = 1 tot N ssati = 1; VOOR i = 1 tot N ALS: activiteit i gepland DAN: ssa ti = 0; ALS: ssati = 1 en RR ij < rij DAN: ssa ti = 0; ALS: ssati = 1 en niet alle NPi gepland DAN: ssa ti = 0; ALS: ssati = 1 DAN: aantal mogelijke + 1; (1) (2) (3) (4) (5) Indien de SSA op het tijdstip t geen activiteiten bevat, wordt de tijd met één eenheid vooruitgeschoven. Daarna wordt de SSA bepaald voor het tijdstip t + 1. Indien de SSA op het tijdsip t daarentegen wel activiteiten bevat, wordt de prioriteit van de activiteiten uit deze set bepaald (cfr. § 2.5.2.). Vervolgens wordt de activiteit met de hoogste prioriteit gepland en wordt de resterende hoeveelheid hulpmiddelen aangepast (cfr. § 2.5.3.). Daarna wordt de SSA opnieuw bepaald voor het tijdstip t en herbegint de cyclus. 2.5.2. STAP 2: De activiteit met de grootste prioriteit bepalen Nadat in de vorige stap de SSAt werd bepaald, zoeken we nu de activiteit met de grootste prioriteit. Dit gebeurt aan de hand van een heuristiek, een vuistregel. In dit onderzoek worden zeven heuristieken geïmplementeerd en getest. Het zijn varianten op bestaande prioriteitsregels (cfr. 1.8.2.) en combinaties van deze varianten. Sommige van die regels werden wel al getest voor het planningsprobleem met hulpmiddelenbeperkingen. Hier werden dan echter geen kasstromen in rekening gebracht. In dit geval werd er getracht heuristieken te vinden die de totale projectduur minimizeren. (Cooper D., 1976, blz. 1192 – 1193) We bouwen ook verder op heuristieken die steunen op de zogenaamde “cash flow weight” (CFW). Dit begrip werd geïntroduceerd door Baroum S. en Patterson J. (1993). De CFW van een activiteit is gebaseerd op de som van de kasstromen van deze activiteit en de 33 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme kasstromen van alle activiteiten die volgen in het project. (Herroelen W. et al., 1997, blz. 111) Algemeen wordt er aan elke activiteit die opgenomen is in de SSAt een wegingsfactor wi toegekend. Deze wegingsfactor is functie van één of meerdere kenmerken van een activiteit. (Pinder J. en Marucheck A., 1996, blz. 231) Als voor twee activiteiten i en j geldt dat wi > wj, dan wordt aan activiteit i een hogere prioriteit toegekend (Pinder J. en Marucheck A., 1996, blz. 231): wi > wj ⇒ prioriteiti > prioriteitj Als wi = wj, spreken we van een “tie”. In dat geval krijgt de activiteit met het kleinste activiteitsnummer (N) de hoogste prioriteit. Deze regel vinden we in de literatuur terug onder de benaming LAN, wat staat voor “lowest activity number”. (Davis E. en Patterson J., 1975, blz. 947) Op deze manier wordt de activiteit met de hoogste prioriteit bepaald voor elke SSAt , waarna deze activiteit in de volgende stap wordt gepland. De prioriteitsregels worden dus gehanteerd in een “parallelle benadering”. (Davis E. en Patterson J., 1975, blz. 947) Hieronder bespreken we de voor dit onderzoek gehanteerde heuristieken. Tevens worden ook enkele mogelijke problemen van de respectieve prioriteitsregels vermeld. Hierbij is het heel belangrijk om in het achterhoofd te houden dat enkel deze activiteiten die in de SSAt zitten, in beschouwing worden genomen. Figuur 2.2. geeft een overzicht van de voorrangsregels die in dit onderzoek zijn opgenomen: FIGUUR 2.2.: Overzicht van de prioriteitsregels 1. 2. 3. 4. 5. 6. 7. “cash flow” “cash flow” per tijdeenheid toekomstige “cash flows” duur van de toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige “cash flow” toekomstige “cash flows” per tijdeenheid BRON: eigen werk 34 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme 2.5.2.1. “Cash flow” Uit de SSAt krijgt de activiteit met de grootste “cash flow” de hoogste prioriteit. De wegingsfactor wi is dus enkel een functie van de kasstroom die geassocieerd is met de activiteit i: wi = CFi Er kan geopteerd worden om deze kasstromen te verdisconteren, rekening houdende met ofwel de vroegste eindtijd (“early-finish time”) ofwel de laatste eindtijd (“late-finish time”) ofwel de activiteitsduur. (Pinder J. en Marucheck A., 1996, blz. 232) We kiezen er echter voor om dat niet te doen. We wensen de meest eenvoudige prioriteitsregel op het vlak van kasstromen uit te testen. De pseudo-code kan als volgt worden weergegeven: grootste_CF = -500; (kleinst mogelijke CF in dit onderzoek) VOOR i = 1 tot N ALS: ssati = 1 en CFi > grootste_CF DAN: grootste_CF = CFi ; grootste_act = i; Dit lijkt de meest logische voorrangsregel die men kan hanteren indien er gepoogd wordt de netto actuele waarde van een project te maximaliseren. (Pinder J. en Marucheck A., 1996, blz. 232) Immers, op deze manier worden enerzijds activiteiten met een negatieve of zeer lage “cash flow” zo lang mogelijk uitgesteld, terwijl anderzijds activiteiten met een “goede” kasstroom zo vroeg mogelijk worden gepland. (Russel A., 1970, blz. 359) Hierbij kunnen drie punten van kritiek aangestipt worden: (1) Er wordt geen rekening gehouden met de toekomstige activiteiten van een project. (2) Er is geen tijdsaspect verbonden aan deze regel. (3) Activiteiten met een zeer lage “cash flow” worden steeds uitgesteld. Daardoor is het niet denkbeeldig dat een tak met een “slechte” kasstroom pas helemaal op het 35 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme einde van het project zou worden gepland. Dit zou tot gevolg hebben dat deze tak dan als het ware aan het einde van het project wordt “gekleefd”. Dit impliceert dat deze vuistregel wel eens slecht zou kunnen presteren wat de duur van een project betreft. Daarom hebben we ook voorrangsregels uitgewerkt die bovenstaande euvels tracht te verhelpen. 2.5.2.2. Cash flow per tijdeenheid Deze prioriteitsregel is een eenvoudige uitbreiding van de bovenstaande. De wegingsfactor wi is nu de verhouding van de kasstroom en de duur van de betrokken activiteit i: wi = CFi di De pseudo-code kan als volgt worden voorgesteld: grootste_CF_per_tijdseenheid=-500; (kleinst mogelijke in dit onderzoek) VOOR i = 1 tot N ALS: ssati = 1 en CFi / di > grootste_CF_per_tijdseenheid DAN: grootste_CF_per_tijdseenheid = CFi / di ; grootste_act = i; Deze prioriteitsregel incorporeert reeds de duur van de betrokken activiteit, maar heeft nog steeds geen oog voor de duur en de kasstromen van de toekomstige activiteiten van deze activiteit. De eerste en de derde kritiek van voorgaande voorrangsregel gaan ook hier op. Bijgevolg houden we in de volgende heuristieken ook rekening met de toekomstige activiteiten van een activiteit. 2.5.2.3. Toekomstige cash flows Deze voorrangsregel incorporeert de kasstromen van de toekomstige activiteiten van een activiteit. Deze regel lijkt sterk op enkele door Pinder J. en Marucheck A. (1996) opgestelde en onderzochte heuristieken. Het punt van verschil ligt in de gehanteerde definitie van toekomstige activiteiten (cfr. §.2.2.3.). (Pinder J. en Marucheck A., 1996, blz. 232) 36 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme Zij opteren echter om de cash flows van toekomstige activiteiten te verdisconteren, enerzijds rekening houdende met de “early-finish times” (EF) en anderzijds de “late-finish times” (LF). Hierbij maken we de bemerking dat op het ogenblik dat activiteit i zou kunnen worden gepland, het helemaal nog niet geweten is wanneer toekomstige activiteiten dit zouden kunnen worden. Het is bijgevolg helemaal niet zeker dat ze zullen worden gepland, hetzij op hun EF- hetzij hun LF-tijd. (Pinder J. en Marucheck A., 1996, blz. 232) Daarom kiezen wij ervoor de kasstromen van toekomstige activiteiten niet te verdisconteren. We definiëren de “toekomstige cash flows van een activiteit i”, toek CFi , als de som van de kasstromen van de toekomstige activiteiten van een activiteit i. Merk op dat de kasstroom van een activiteit i ook bij de toekomstige cash flows van deze activiteit wordt gerekend. Dit geeft dan: N wi = Σ CFj, als activiteit j een toekomstige activiteit is van activiteit i 0, anders j=1 Voor de berekening van die toekomstige “cash flows” van een activiteit i vallen we terug op de NxN-matrix die de toekomstige activiteiten van een activiteit weergeeft (cfr. § 2.2.3.). De pseudo-code ziet er dan als volgt uit: VOOR i = 1 tot N toek_CFi = 0; VOOR i = 1 tot N en j = 1 tot N ALS: toekomstigij = 1 DAN: toek_CFi = toek_CFi + CFj ; De activiteit - voor zover ze deel uitmaakt van de SSAt - met de grootste toekomstige “cash flow” krijgt de hoogste prioriteit. De implementatie ziet er als volgt uit in pseudo-code: grootste_toek_CF = - 500 *aantal_act; (kleinst mogelijke toekomstige CF) VOOR i = 1 tot N ALS: ssati = 1 en toek_CFi > grootste_toek_CF DAN: grootste_toek_CF = toek_CFi ; grootste_act = i; Aldus ontstaat een voorrangsregel die niet enkel de kasstromen van de activiteiten uit de SSAt bevat, maar ook deze van de toekomstige activiteiten van die activiteiten. De mogelijke 37 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme beperking van deze vuistregel vormt het feit dat er geen rekening wordt gehouden met het tijdsaspect. Daarom rijst meteen de vraag of deze heuristiek een goede performantie zal kennen op het vlak van de totale projectduur. 2.5.2.4. Duur van de toekomstige activiteiten Deze heuristiek werd door Cooper (1976) geïntroduceerd als “the greatest rank positional weight (rpwi)”. Hierbij wordt voorrang gegeven aan activiteiten waarvan de som van de duurtijden van de volgers het hoogst is. (Cooper D., 1976, blz. 1193) Andermaal wordt er geopteerd om alle volgers te beschouwen en niet enkel de onmiddellijke (cfr. § 2.2.3.) Voor elke activiteit i uit de SSAt worden de duurtijden van de toekomstige activiteiten van activiteit i, inclusief de duurtijd van activiteit i, gesommeerd (duur toek acti ). Hiervoor maken we gebruik van de NxN-matrix die de toekomstige activiteiten van een activiteit weergeeft. Deze matrix werd in de voorbereidende fase opgesteld (cf. § 2.2.3.). De implementatie kan als volgt worden voorgesteld in pseudo-code: VOOR i = 1 tot N duur_toek_acti = 0; VOOR i = 1 tot N en j = 1 tot N ALS: toekomstigij = 1; DAN: duur_toek_acti = duur_toek_acti + duurj ; De wegingsfactor ziet er dan als volgt uit: N wi = Σ dj, als activiteit j een toekomstige activiteit is van activiteit i 0, anders j=1 De wegingsfactor wi is hier dus functie van de duur van de toekomstige activiteiten van een activiteit. Aldus willen we bekomen dat die takken van activiteiten welke veel tijd vergen alvorens het project te voltooien, prioritair zijn. 38 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme De bepaling van de hoogste prioriteit wordt hieronder weergegeven in pseudo-code: grootste_duur_toek_act = 0; VOOR i = 1 tot N ALS: ssati = 1 en duur_toek_activiteiteni > grootste_duur_toek_act DAN: grootste_duur_toek_act = duur_toek_acti ; grootste_act = i; Deze voorrangsregel houdt dus geen rekening met de “cash flows” van een project. Of dit ook repercussies zal hebben op de netto actuele waarde van het project zal blijken uit de analyse van de resultaten (cfr. hoofdstuk 5). We verwachten wel dat deze regel goed scoort op het vlak van projectdeadline. 2.5.2.5. Aantal toekomstige activiteiten Deze regel werd reeds eerder onderzocht, maar dan voor het minimaliseren van de projectduur. De performantie op het vlak van de netto actuele waarde werd hierbij niet nagegaan. (Cooper D., 1976, blz. 1193) Deze heuristiek vertoont grote gelijkenissen met een in de literatuur populaire voorrangsregel, “grootste aantal volgers”. Andermaal vormt de gehanteerde definitie van “volgers” het verschilpunt. (Pinder J. en Marucheck A., 1996, blz. 233) De wegingsfactor wi ziet er in dit geval zo uit: N wi = Σ 1, als activiteit j een toekomstige activiteit is van activiteit i 0, anders j=1 Voor de bepaling ervan maken we opnieuw gebruik van de NxN-matrix die de toekomstige activiteiten van een activiteit weergeeft. De pseudo-code verloopt als volgt: VOOR i = 1 tot N aantal_toek_acti = 0; VOOR i = 1 tot N en j = 1 tot N ALS: toekomstigij = 1; DAN: aantal_toek_acti = aantal_toek_acti + 1; 39 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme De activiteit die het grootste aantal toekomstige activiteiten telt, krijgt dan de hoogste prioriteit. De pseudo-code van de implementatie ziet er zo uit: grootste_aantal_toek_act = 0; VOOR i = 1 tot N ALS: EASi = 1 en aantal_toek_activiteiteni > grootste_aantal_toek_act DAN: grootste_aantal_toek_act = aantal_toek_acti ; grootste_act = i; Hoewel er in deze voorrangsregel noch een tijdsaspect is ingebouwd, noch rekening wordt gehouden met de kasstromen, nemen we hem toch op in ons onderzoek. Dit omwille van zijn grote gelijkenis met de populaire prioriteitsregel “grootste aantal volgers”. 2.5.2.6. Gemiddelde toekomstige “cash flow” Deze heuristiek is een combinatie van twee hiervoor besproken voorrangsregels. Immers, we definiëren de “gemiddelde toekomstige cash flow” van een activiteit i als de verhouding van de toekomstige kasstromen van een activiteit i en het aantal toekomstige activiteiten van deze activiteit. Dus: N Σ wi = CFj, als activiteit j een toekomstige activiteit is van activiteit i 0, anders j=1 N Σ 1, als activiteit j een toekomstige activiteit is van activiteit i 0, anders j=1 Voor de implementatie van deze voorrangsregel verwijzen we naar de pseudo-code van de beide heuristieken waaruit deze is opgebouwd (cf. supra, § 2.5.2.3. en 2.5.2.5.). Deze prioriteitsregel lijkt al iets complexer. De beperking ervan zou het ontbreken van een tijdsaspect kunnen zijn. Vandaar dat de volgende heuristiek hierop een logische variant is. 40 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme 2.5.2.7. Toekomstige “cash flows” per tijdeenheid We definiëren de “toekomstige cash flows per tijdeenheid” van een activiteit i als de verhouding van de toekomstige kasstromen van een activiteit i en de duur van die toekomstige activiteiten. De wegingsfactor wi ziet er dan als volgt uit: N Σ wi = CFj, als activiteit j een toekomstige activiteit is van activiteit i 0, anders j=1 N Σ dj, als activiteit j een toekomstige activiteit is van activiteit i 0, anders j=1 Voor de codering van deze heuristiek verwijzen we naar de pseudo-codes van de beide prioriteitsregels (cf. supra, § 2.5.2.3. en 2.5.2.4.). Deze voorrangsregel houdt zowel rekening met de toekomstige kasstromen van een activiteit als met het tijdsaspect. Of dit ook de beste resultaten zal opleveren, zal blijken uit de analyse van het onderzoek. 2.5.3. STAP 3: Het plannen van de activiteit met de hoogste prioriteit In deze stap wordt de activiteit met de hoogste prioriteit gepland. We voeren hierbij de gebruikelijke bewerkingen uit. (Ulusoy G. en Özdamar L., 1995, blz. 89 – 98) Stel dat activiteit i wordt gepland. Dit houdt in dat de resterende hoeveelheden hulpmiddelen RRtj (t = tijd, …, tijd + di en j = 1, …, NR) worden bepaald. Tevens wordt de activiteit i als gepland beschouwd en worden de begin- (STi) en eindtijd (TTi) van activiteit i vastgelegd. Ook passen we eventueel de totale duur van het project aan, indien deze door de planning van activiteit i zou worden ingekort. 41 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme In pseudo-code geeft dit het volgende: VOOR t = tijd tot (tijd + di ) en j = 1 tot NR RRtj = RRtj – rrij ; geplandi = 1; aantal_gepland + 1; STi = tijd; TTi = tijd + di – 1; ALS: eindduur < (tijd + di ) DAN: eindduur = TTi ; Eens alle activiteiten gepland zijn, kunnen we overgaan naar de vierde en laatste stap van deze planningsfase. 2.5.4. STAP 4: Het berekenen van de “net present value” Eens alle activiteiten gepland zijn, kunnen we de “net present value” (NPV) van het project berekenen. Dit gebeurt aan de hand van de volgende formule (Russel A., 1970, blz. 359): N NPV = Σ CFi . exp(-α TTi ) i=1 Waarbij: α = de verdisconteringsfactor = 1% TTi = de eindtijd van activiteit i We veronderstellen dat de verdisconteringsfactor α gelijk is aan 1% per tijdseenheid (dag, maand, …). (Russel R., 1986, blz. 1291 – 1300) Hiermee is de derde fase van het programma afgerond. Nu rest er enkel nog de postoptimalisatie. 42 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme 2.6. De postoptimalisatie Omdat we ons ervan bewust zijn dat de in de derde fase bekomen planning nog sterk kan worden verbeterd wat de “net present value” van het project betreft, wordt een vierde en laatste fase toegevoegd. Het opzet van deze postoptimalisatie is tweeërlei. Enerzijds trachten we activiteiten waarmee een positieve kasstroom verbonden is, zo veel mogelijk naar voren te schuiven in de planning. Anderzijds wordt geprobeerd om activiteiten met een negatieve cash flow zoveel mogelijk te verlaten in de voorlopige planning. Hierdoor worden de hulpmiddelen gelijkmatiger verbruikt, binnen de vooropgestelde limieten. Hierbij kan het voorkomen dat de totale duur van het project inkort. Hoewel dit niet de hoofddoelstelling is van deze fase, is dit uiteraard een positief neveneffect. (Ulusoy G. en Özdamar L., 1995, blz. 90) De postoptimalisatie – zoals wij deze hebben geïmplementeerd, analoog aan Baroum S. en Patterson J. (1993) (cfr. §1.8.2.) - is een iteratieve methode die doorgaat tot er geen verschuivingen meer mogelijk zijn. Per iteratie worden alle projecten in stijgende volgorde van hun activiteitsnummer overlopen. Daarbij wordt er onderzocht of een activiteit niet op een vroeger of later tijdstip kan worden gepland. De richting waarin men probeert te verschuiven, is afhankelijk van het teken van de kasstroom. (Herroelen W. et al., 1997, blz. 111) Bovendien is de methode ook dynamisch. In eerste instantie wordt er uitgegaan van de planning zoals die in de derde fase werd bepaald. Maar eens de postoptimalisatie aan de gang is, wordt er steeds verder gewerkt met de laatst mogelijke oplossing. De grenzen voor deze verschuivingen worden gevormd door enerzijds de volgordebeperkingen en anderzijds de hulpmiddelenrestricties. Deze moeten ten allen tijde voldaan zijn. 43 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme In pseudo-code ziet dit er als volgt uit: ZOLANG aantal_verschuivingen ≠ 0 aantal_verschuivingen = 0; VOOR i = 1 tot N ALS: verschuiven is mogelijk qua volgorde en hulpmiddelen DAN: verschuiving doorvoeren; aantal_verschuivingen + 1; In deze fase onderscheiden we drie stappen. Eerst wordt de eigenlijke postoptimalisatie uitgevoerd. Daarna wordt nagegaan of de projectduur is ingekort door de herschikking van de activiteiten tijdens de postoptimalisatie. Tenslotte wordt de nieuwe, “postoptimale” netto actuele waarde berekend. Het effect van deze postoptimalisatie fase zal worden geïllustreerd in het derde en vijfde hoofdstuk van deze scriptie. 2.6.1. STAP 5: De postoptimalisatie Afhankelijk van het teken van de kasstroom die met een activiteit is geassocieerd, zal de richting van de postoptimalisatie worden bepaald. Is dit teken positief dan wordt gepoogd de activiteit vroeger in te lassen dan voorzien (“left-shifting”). Bij een negatief teken proberen we de activiteit te verlaten in de tijd (“right-shifting”). Op deze manier wordt de netto actuele waarde van het project verhoogd. Hierna bespreken we het geval waarbij de “cash flow” negatief is. De postoptimalisatie van een activiteit met een positieve “cash flow” verloopt analoog, zij het in de andere richting. Daarbij worden twee beperkingen in acht genomen. Enerzijds de volgorderelaties en anderzijds de beschikbaarheid van elke “resource”. Wat het respecteren van de volgorderelaties betreft, dienen we de zogenaamde “free float” van een activiteit i te berekenen. De “free float” wordt gedefinieerd als zijnde “de toelaatbare vertraging van een activiteit, die geen effect heeft op de “early-start”-tijd van de volger(s). Het is dus een maatstaf die de mogelijkheid om een activiteit te verschuiven, weergeeft. (Cooper D., 1976, blz. 1189) 44 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme Bij de implementatie voor een activiteit i komt het erop aan eerst de vroegste volger tijd te bepalen. Daarmee bedoelen we het vroegste tijdstip waarop een volger van de activiteit i begint. De “free float” kan dan als volgt worden berekend: free float = vroegste volger tijd - TTi waarbij: (2.1) TTi = de eindtijd van activiteit i De verplaatsing van een activiteit i kan pas worden uitgevoerd als de “free float” verschillend is van nul. Een “free float” gelijk aan nul zou betekenen dat meteen na het beëindigen van activiteit i het begin van een volger van activiteit i gepland is. In het laatste geval wordt deze stap meteen beëindigd en wordt nagegaan of activiteit i + 1 kan verschoven worden. Indien de “free float” daarentegen verschillend is van nul, wordt nagegaan of de activiteit i zo dicht mogelijk bij zijn vroegste volger kan worden gepland, rekening houdende met de beschikbare hoeveelheid hulpmiddelen op elk tijdstip t. Daarvoor dient de resterende hoeveelheid “resources” voor de gewenste periode minstens gelijk te zijn aan het hulpmiddelenverbruik van de activiteit i: RRtj ≥ rri j waarbij: (2.2) RRtj = de resterende hoeveelheid van het ide hulpmiddel op het tijdstip t (t = TTi, …, TTi + “free float” en j = 1, …, NR) rrij = het verbruik van het jde hulpmiddel door de activiteit i Indien aan de voorwaarden (1) en (2) wordt voldaan, worden de resterende hoeveelheden hulpmiddelen, alsook de nieuwe start- en eindtijd berekend. Ook wordt het hulpmiddelenverbruik volgens de oorspronkelijke planning teniet gedaan. Tenslotte wordt aangegeven dat er een sprong heeft plaatsgevonden, zodat de iteratie nog minimaal één keer wordt doorlopen. 45 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme De codering in het geval de activiteit voorzien is van een negatieve kasstroom, ziet er als volgt uit in pseudo-code: vroegste_volger_tijd bepalen; free float = vroegste volger tijd – TTi ; ALS: free float ≥ 0 DAN: VOOR j = 1 tot NR en t = TTi tot vroegste volger tijd ALS: RRtj ≥ rrij DAN: STi = nieuwe start tijd; TTi = STi + di – 1 ; Verbruik resources oorspronkelijke planning annuleren ; Verbruik resources nieuwe planning implementeren ; aantal_verschuivingen + 1; ANDERS: STOP; ANDERS: STOP; 2.6.2. STAP 6: Nagaan of de projectduur werd ingekort Door de herschikking van de activiteiten tijdens de postoptimalisatie wordt een gelijkmatiger hulpmiddelenprofiel verkregen. Daarbij is het niet denkbeeldig dat ook de projectduur is ingekort. (Ulusoy G. en Özdamar L., 1995, blz. 90) Dit wordt als volgt opgevangen door het algoritme. We initialiseren een binaire variabele “verkorten” op nul. Daarna controleren we voor elk hulpmiddelentype of de resterende hoeveelheid gelijk is aan de beschikbare hoeveelheid. Indien dit voor elk “resource”-type het geval is, kan de projectduur met één eenheid worden ingekort. Tevens kennen we de variabele “verkorten” de waarde één toe. Zolang deze variabele verschillend is van nul, wordt deze procedure doorlopen en wordt bijgevolg nagegaan of het project verder kan worden ingekort. In pseudo-code ziet dit er als volgt uit: ZOLANG verkorten ≠ 0 verkorten = 0; VOOR j = 1 tot NR ALS: RR1j = AVj DAN: verkorten + 1; ALS: verkorten = NR DAN: VOOR i = 2 tot N STi – 1 en TTi – 1; VOOR j = 1 tot NR en t = 1 tot eindduur rrtj = rrt+1,j ; eindduur – 1; ANDERS: STOP 46 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 2. Beschrijving van het algoritme 2.6.3. STAP 7: Het berekenen van de “postoptimale” netto actuele waarde Deze stap verloopt analoog aan stap 3. Nu berekent men echter de “net present value”, rekening houdende met de tijdens de postoptimalisatie aangepaste eindtijden. Hierdoor is de laatste fase van het empirisch onderzoek, de postoptimalisatie, en bijgevolg het hele algoritme doorlopen. In het volgende hoofdstuk wordt het programma nader toegelicht aan de hand van een numeriek voorbeeld. 47 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld HOOFDSTUK 3: HET ALGORITME TOEGEPAST OP EEN VOORBEELD In het tweede hoofdstuk van deze scriptie werd het algoritme besproken. In het bijzonder werd dieper ingegaan op de zeven prioriteitsregels die in dit onderzoek werden uitgetest. In dit hoofdstuk verduidelijken we de implementatie van het algoritme aan de hand van een numeriek voorbeeld. We opteren om een voorbeeld uit de literatuur te behandelen. Argumenten die ons ertoe aanzetten om zo’n voorbeeld te verkiezen boven een project uit de zelf gehanteerde testset zijn onder andere: ♦ Het bevordert de objectiviteit. Er werd niet gezocht naar een project uit de testset waarbij onze heuristieken goed uit de verf zouden komen. ♦ We kunnen niet enkel vergelijken met de optimale oplossing, hetzij onder de minimale “deadline”, hetzij onder de “deadline” die door de heuristiek werd gegenereerd., maar ook met de resultaten die andere onderzoekers behaalden. In de paragraaf 3.1. geven we de gegevens en assumpties van het voorbeeld weer. Vervolgens werken we in sectie 3.2. het voorbeeld uit aan de hand van het algoritme dat in het tweede hoodfstuk van deze scriptie werd voorgesteld. Daarbij zal ter illustratie “het aantal toekomstige activiteiten” als prioriteitsregel worden gehanteerd. We sluiten tenslotte dit hoofdstuk af met een overzicht van de performantie van onze zeven heuristieken bij dit voorbeeld. Tevens maken we de vergelijking met de uitkomst zoals die door Abbasi G. en Arabiat Y. (2001, blz. 17 – 24) werd bekomen en met het resultaat bekomen door een optimale oplossingsmethode. 3.1. Gegevens We passen ons algoritme toe op het voorbeeld dat Abbasi G. en Arabiat Y. hebben uitgewerkt. Het project werd daarbij voorgesteld in de pijlenvoorstelling. We zetten het om in de knooppuntvoorstelling. (Abassi G. en Arabiat Y., 2001, blz.20) 48 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld Ze nemen daarbij de volgende assumpties aan (Abassi G. en Arabiat Y., 2001, blz.20): ♦ De volgorderelaties zijn van het einde-start type met een “time lag” van nul. Dit betekent dat een activiteit kan starten van zodra al haar voorgangers zijn afgewerkt. ♦ Er wordt aangenomen dat de duur van alle activiteiten op voorhand gekend is. De duur wordt gegeven in maanden. ♦ Het onderbreken van een activiteit is niet toegelaten. Dus eens een activiteit gestart is, wordt ze ook afgewerkt. ♦ Zowel het bedrag als de timing van kasstromen zijn bekend. Er wordt verondersteld dat de enige positieve “cash flow” op het einde van het project voorkomt en dat deze minstens 30% groter is dan de negatieve kasstromen. Op deze manier vermijden ze dat het netwerk een negatieve netto actuele waarde heeft. De negatieve kasstromen worden bij de start van de respectieve activiteit betaald. ♦ Ze nemen een verdisconteringsfactor α van 1% per maand aan. ♦ Elke activiteit kan maximaal drie verschillende types hulpmiddelen verbruiken. De beschikbaarheid van elk “resource”-type bedraagt tien eenheden. Figuur 3.1. geeft de knooppuntvoorstelling van het voorbeeldproject weer dat door Abassi G. en Arabiat Y. werd uitgewerkt. De legende vinden we linksonderaan de figuur terug. (Abassi G. en Arabiat Y., 2001, blz.20) 49 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld FIGUUR 3.1.: Knooppuntvoorstelling van het numeriek voorbeeld 12 5 14 0 (0,0,0) 0 15 (3,1,0) - 405 13 1 (5,3,4) - 1.350 (4,2,3) - 108 9 10 10 (3,5,3) - 810 2 (1,0,2) - 54 11 (2,1,1) 8 10 1 - 54 4 6 (9,2,2) - 972 3 (7,3,2) - 567 5 3 7 8 (2,3,3) - 432 (4,0,2) - 810 7 5 2 (4,1,1) - 540 i (AV1 ,AV2 ,AV3 ) 3 4 (5,2,0) - 405 di CFi 1 8 (2,1,1) - 432 0 (0,0,0) 8.950 BRON: Abbasi G. en Arabiat Y., 2001, blz. 20 50 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld 3.2. Illustratie van het algoritme Nu het voorbeeldproject is geïllustreerd, kan het algoritme nader worden toegelicht. We doorlopen eerst de voorbereidende fase, vervolgens de planningsfase en tenslotte de optimalisatiefase. De prioriteitsregel die we hier hanteren is “het aantal toekomstige activiteiten”. Het algoritme verloopt analoog voor de andere voorrangsregels. 3.2.1. Voorbereidende fase In de voorbereidende fase worden de gegevens - die in figuur 3.1. zijn weergegeven – ingelezen. Ook de “cash flows” uit het voorbeeld worden overgenomen, zodat deze in dit geval niet dienen te worden gegenereerd. De voorgangersrelaties worden eveneens vastgelegd. Deze kunnen eenvoudig uit figuur 3.1. worden afgeleid. Verder worden in deze fase de toekomstige activiteiten van een activiteit bepaald, alsook het aantal berekend. De resultaten daarvan worden weergegeven in tabel 3.1. TABEL 3.1.: De toekomstige en het aantal toekomstige activiteiten voor dit voorbeeld N toekomstige activiteiten aantal toekomstige activiteiten 2 2, 5, 11, 12, 15 5 3 3, 6, 7, 10, 11, 12, 13, 14, 15 9 4 4, 8, 9, 13, 14, 15 6 5 5, 11, 12, 15 4 6 6, 11, 12, 15 4 7 7, 13, 14, 15 4 8 8, 13, 14, 15 4 9 9, 15 2 10 10, 14, 15 3 11 11, 12, 15 3 12 12, 15 2 13 13, 14, 15 3 14 14, 15 2 BRON: eigen werk 51 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld Op basis van het aantal toekomstige activiteiten van een activiteit zal er worden bepaald welke activiteit zal worden gepland tijdens de planningsfase, indien de “set of schedulable activities” op het tijdstip t (SSAt ) meerdere activiteiten bevat. 3.2.2. Planningsfase Op het tijdstip 1 kunnen drie activiteiten worden gepland. Activiteit 3 heeft het meeste toekomstige activiteiten (9) en zal bijgevolg als eerste worden gepland. Vervolgens wordt gecontroleerd of er voldoende hulpmiddelen overblijven om de activiteit met de tweede prioriteit, namelijk activiteit 4, te kunnen opnemen in de planning. Dit is hier het geval. Er resten onvoldoende “resources” om ook activiteit 2 te plannen op het tijdstip 1. Op het tijdstip 2 is activiteit 3 afgewerkt. De onmiddellijke volgers van deze activiteit kunnen vanaf dit tijdstip dus worden gepland. Opnieuw wordt de set van mogelijke activiteiten opgesteld en worden prioriteiten toegekend. Op dat moment wordt eerst de activiteit 2 gepland. Daarna tellen activiteiten 6 en 7 elk vier toekomstige activiteiten. In dat geval krijgt de activiteit met het kleinste activiteitsnummer de voorrang. Activiteit 6 wordt dan gepland. De activiteiten 7 en 10 kunnen niet worden gepland omdat er onvoldoende hulpmiddelen voorradig zijn. De rest van de planning verloopt analoog. Figuur 3.2. geeft een overzicht van de verschillende stappen die tijdens de planningsfase worden doorlopen. 52 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld FIGUUR 3.2.: De planningsfase met het “aantal toekomstige activiteiten” als prioriteitsregel t=1 t = 17 SSA 1 2 3 4 SSA 17 10 wi 5 9 6 wi à plan activiteit 3 3 à plan activiteit 10 plan activiteit 4 activiteit 2: onvoldoende “resources” t=2 t = 21 SSA 2 2 6 7 10 wi 5 4 4 3 à plan activiteit 2 SSA 21 8 12 wi 2 4 à plan activiteit 8 plan activiteit 6 activiteit 12: onvoldoende “resources” activiteit 7 en 10: onvoldoende “resources” t=6 t = 25 SSA 6 7 9 SSA 25 12 13 wi 4 2 wi 3 à plan activiteit 7 2 à plan activiteit 13 activiteit 9: onvoldoende “resources” t = 12 plan activiteit 12 t = 32 SSA 12 5 9 10 wi 2 3 4 à plan activiteit 5 SSA 32 14 wi 2 à plan activiteit 14 activiteit 10: onvoldoende “resources” plan activiteit 9 t = 13 SSA 13 11 wi 3 wi = aantal toekomstige activiteiten à plan activiteit 11 BRON: Eigen werk, gebaseerd op Abassi G. en Arabiat Y., 2001, blz. 22 Het project maakt gebruik van drie types hulpmiddelen. Daarbij is het hulpmiddel 1 dat de knelpunten in de planning veroorzaakt. Het verbruik van dit hulpmiddel wordt weergegeven in figuur 3.3. Op de verticale as vinden we de eenheden van het hulpmiddel terug. Op de horizontale as staan de opeenvolgende tijdsperiodes afgebeeld. Tijdens elke periode zijn er tien eenheden van het hulpmiddel 1 beschikbaar. 53 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld FIGUUR 3.3.: Hulpmiddelenverdeling na de planningsfase (voor het hulpmiddel 1) Hoeveelheid hulpmiddel 1 10 9 6 5 8 7 4 11 7 6 1 1 5 4 8 12 10 3 2 11 2 3 1 9 1 1 14 13 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 BRON: eigen werk tijdperiode Na de planningfase bedraagt de totale projectduur 34 maanden. De netto actuele waarde van het project is 667,54 €. 3.2.3. Postoptimalisatie Tijdens deze fase wordt nagegaan of de activiteiten kunnen worden verschoven zodat de netto actuele waarde van het project verbetert. Vermits het project enkel negatieve “cash flows” kent, zullen de activiteiten zoveel mogelijk naar rechts worden verschoven (cfr. §2.6.1). Per iteratie wordt er volgens stijgend activiteitsnummer nagegaan of de betrokken activiteit kan worden uitgesteld, rekening houdende met de volgorderelaties en de hulpmiddelenbeperkingen. Zolang er minimaal één verschuiving plaatsgrijpt, zal de iteratie nogmaals worden doorlopen. Tijdens de eerste iteratie kunnen achtereenvolgens de activiteiten 6, 7, 9, 10 en 12 op een later tijdstip worden gestart. Het resultaat na de eerste iteratie wordt weergegeven in figuur 3.4. We merken daarbij op dat de bezetting van de hulpmiddelen op het einde van het project toeneemt. 54 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld FIGUUR 3.4.: Hulpmiddelenverdeling na de eerste postoptimalisatie-iteratie (voor het hulpmiddel 1) 10 Hoeveelheid hulpmiddel 1 9 6 11 8 7 4 9 7 6 6 12 5 5 4 3 2 8 11 10 2 3 1 1 1 1 2 3 4 5 6 7 8 9 14 13 7 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 BRON: eigen werk tijdperiode Door de verschuivingen tijdens de eerste iteratie, kunnen nu ook de activiteiten 3 en 4 worden verlaat. Activiteit 7 kan met één dag worden uitgesteld. hulpmiddelenverdeling na de tweede iteratie. Figuur 3.5. toont de Hierbij valt op dat, door het naar rechts verschuiven van de activiteiten, het project met één maand kan worden verkort. Immers, in de eerste periode zijn geen activiteiten meer gepland. FIGUUR 3.5.: Hulpmiddelenverdeling na de tweede iteratie (voor het hulpmiddel 1) Hoeveelheid hulpmiddel 1 10 9 6 7 3 11 7 6 6 5 5 4 3 9 11 8 4 10 2 2 12 8 7 14 13 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 BRON: eigen werk tijdperiode 55 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld De derde keer dat de lus wordt doorlopen kan enkel activiteit 3 nog worden uitgesteld. Dit is de laatst mogelijke verschuiving. De uiteindelijke planning van het project wordt voorgesteld in figuur 3.6. FIGUUR 3.6.: Hulpmiddelenverdeling van de “postoptimale” planning (voor het hulpmiddel 1) 10 Hoeveelheid hulpmiddel 1 9 6 3 7 11 7 6 6 5 4 5 4 3 9 11 8 10 2 2 12 8 7 14 13 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 BRON: eigen werk tijdperiode Na de postoptimalisatie is de totale projectduur ingekort met één maand. De “net present value” is gestegen van 667,54€ tot 818,76€, wat een toename betekent van 22,65%. Dit voorbeeld illustreert heel duidelijk wat voor een impact deze postoptimalisatie fase kan hebben. 3.3. Bespreking van de bekomen resultaten In deze paragraaf analyseren we de resultaten van onze zeven heuristieken bij dit voorbeeld. We vergelijken ze met twee zaken. Enerzijds evalueren we ze met de resultaten die door het “LSSPT”-algoritme van Abbasi G. en Arabiat Y. worden gegenereerd (cfr. §1.8.2). Het algoritme werd uitgetest op 60 projecten uit de testset die door Patterson J. werd opgesteld. Dit algoritme bleek een hogere “net present value” (NPV) op te leveren dan vier “klassieke” heuristieken, zijnde (Abbasi G. en Arabiat Y., 2001, blz. 22 - 23): ♦ minimale “slack” 56 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld ♦ minimale “late-start” tijd ♦ minimale “late-finish” tijd ♦ minimale procestijd Anderzijds vergelijken we de resultaten met de optimale NPV (cfr. § 5.1) die kan worden bekomen bij de gegenereerde projectduur. Tabel 3.2. geeft een overzicht van de bekomen resultaten voor de verschillende heuristieken. TABEL 3.2.: Overzicht van de resultaten die werden bekomen bij het voorbeeld VOOR de postoptimalisatie "cash flow" "cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid Heuristiek Abbasi G. en Arabiat Y. NA de postoptimalisatie "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid Heuristiek Abbasi G. en Arabiat Y. duur NPV optimale NPV % verschil 44 51 43 33 34 43 38 33 132,53 38,35 261,59 702,21 667,54 261,59 452,65 702,21 542,56 423,30 560,29 818,76 748,96 560,29 651,65 818,76 75,57% 90,94% 53,31% 14,23% 10,87% 53,31% 30,54% 14,23% duur NPV toename NPV optimale NPV % verschil 36 41 41 33 33 41 38 - 590,96 572,74 572,74 818,76 818,76 572,74 602,59 - 458,43 534,39 311,15 116,55 151,22 311,15 149,94 - 689,49 596,29 596,29 818,76 818,76 596,29 651,65 - 14,29% 3,95% 3,95% 0,00% 0,00% 3,95% 7,53% - BRON: eigen werk, aangevuld met de resultaten van Abbasi G. en Arabiat Y., 2001, blz. 23 Het bovenste luik bevat de resultaten die bekomen zijn na de planningsfase en dus voor de postoptimalisatie fase. Het “aantal toekomstige activiteiten” scoort daarbij het best wat betreft de NPV. Het is de enige prioriteitsregel die beter presteert dan het algoritme dat Abbasi G. en Arabiat Y. (2001, blz. 17 – 24) voorstellen qua NPV, maar de NPV ligt wel 10% onder de optimale NPV die kan worden bereikt bij een deadline van 34 maanden. De “duur van de toekomstige activiteiten” evenaart hun heuristiek. Alle andere voorrangsregels performeren merkelijk slechter en komen in dit stadium van het algoritme meestal nog niet tot de helft van de optimale NPV die mogelijk is bij de gegenereerde projectduur. 57 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 3. Het algoritme toegepast op een voorbeeld Het onderste gedeelte bevat de resultaten van de uiteindelijke planning, na de postoptimalisatie fase. We merken dat de NPV bij alle heuristieken fors is gestegen. Dit is een duidelijke illustratie van het nut van dergelijke postoptimalisatie fase. De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” slagen er zelfs in om de optimale NPV, die bij hun projectduur hoort, te bereiken. Tevens blijken deze prioriteitsregels ook de kortste totale projectduur op te leveren. De “cash flow per tijdeenheid”, de “toekomstige cash flows” en de “gemiddelde toekomstige cash flow” benaderen heel sterk de optimale NPV, zij het wel dat deze verbonden is aan een langere projectduur. Wat dit voorbeeld betreft benaderen vijf van de zeven heuristieken de optimale NPV, die is verbonden aan de respectieve projectduur, tot minder dan 4%. Twee ervan slagen er zelfs in om deze optimale NPV te evenaren! Slechts onze eenvoudigste voorrangsregel – “cash flow” – scoort slechter wat de NPV betreft dan het algoritme dat Abbasi G. en Arabiat Y. (2001, blz. 17 – 24) voorstellen. Onze prioriteitsregels moeten meestal wel hun meerdere erkennen in dit algoritme wat de duur van het project betreft. Maar de bedoeling van deze scriptie was één of meerdere heuristieken op te stellen die de “net present value” van een project maximaliseren. Nadat we in dit hoofdstuk het algoritme hebben verduidelijkt aan de hand van een voorbeeld, zullen we in het volgende hoofdstuk de testset bespreken waarop onze heuristieken werden losgelaten. 58 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 4. Beschrijving van de testset HOOFDSTUK 4: BESCHRIJVING VAN DE TESTSET In de vorige hoofdstukken hebben we zelf een algoritme opgesteld. Om de performantie van dit algoritme en onze zeven heuristieken na te gaan, dienen ze te worden uitgetest op een goed opgebouwde en voldoende grote testset. We achten het dan ook opportuun om de opbouw van de testset nader toe te lichten. In de eerste sectie van dit hoofdstuk beschrijven we de parameters van een project op basis waarvan de voor dit onderzoek gehanteerde testset werd opgebouwd. Daarna zal in de tweede paragraaf deze testset worden beschreven. 4.1. Parameters van een project Alvorens in de volgende paragraaf de testset te bespreken, definiëren we eerst de verschillende parameters die een project karakteriseren. Op basis van deze kenmerken werd door Vanhoucke M. et al. (2001, blz. 1118) een evenwichtige testset, qua complexiteit van de projecten, opgebouwd. Aan de hand van deze parameters kan het onderscheid worden gemaakt tussen makkelijke en moeilijke planningsproblemen. De moeilijkheid van zo’n probleem wordt typisch gemeten door de CPU-tijd (“Central Processing Unit”) die vereist is opdat een optimale oplossing wordt bekomen. Daarom is het van groot belang dat we beschikken over een set van karakteristieken die voldoende discrimineert tussen makkelijke en moeilijke problemen. Deze set kan dan optreden als een voorspeller van de computerbelasting van de oplossingsprocedures. (Demeulemeester E. et al., 2003, blz. 13 - 34) We onderscheiden enerzijds de parameters die verband houden met de topologie van het netwerk, nl. het aantal activiteiten en de “order strenght”. Voor een volledige evaluatie van dit type parameters verwijzen we naar Elmaghraby en Herroelen (1980, blz. 223 - 234). Anderzijds treffen we parameters aan die gerelateerd zijn met de hulpmiddelen. Deze werden beschreven door Pascoe (1966, blz. 31 - 38), Cooper (1976, blz. 1186 - 1194), Alvarez59 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 4. Beschrijving van de testset Valdes en Tamarit (1989, 113 - 134) en Kolisch et al. (1995, blz. 1693 - 1703). Volgens Demeulemeester et al. (2003, blz. 13 - 34) moeten hierbij twee vragen worden beantwoord : ♦ Hoeveel types hulpmiddelen verbruikt een activiteit? ♦ Welke verhouding heerst er tussen de beschikbaarheid en de vraag (door de activiteiten) naar de hulpmiddelen? Vanhoucke M. et al. (2001, blz. 1118) opteerden bij de opbouw van hun testset voor enerzijds de “resource factor” en anderzijds de “resource strength”. Zelf voegen we daar, naar analogie van dergelijke research, een bijkomende parameter aan toe, nl. het percentage negatieve “cash flows”. (Vanhoucke M. et al., 2001, blz. 1113 – 1121) In het vervolg van deze paragraaf bespreken we de parameters die werden opgenomen in ons onderzoek. 4.1.1. Aantal activiteiten Dit is uiteraard het aantal activiteiten waaruit een project is samengesteld. Er dient enkel te worden opgemerkt dat in de gebruikte testset twee dummyactiviteiten worden toegevoegd. Enerzijds om het begin van een project aan te wijzen en anderzijds om het einde ervan aan te duiden. De duur van deze activiteiten, evenals het hulpmiddelenverbruik ervan, is gelijk aan nul. 4.1.2. Order strength, OS “Order strength” (OS) is een maatstaf voor de topologie van een netwerkstructuur in de knooppuntvoorstelling. Het geeft de sterkte van de volgorderelaties in een project weer. OS werd als volgt gedefinieerd door Mastor (1970, blz. 736): OS = aantal volgorderelaties theoretisch maximum aantal volgorderelaties 60 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 4. Beschrijving van de testset Hierbij is het theoretisch maximum aantal volgorderelaties gelijk aan: N.(N–1) 2 Met: N = het aantal activiteiten in het netwerk, de dummyactiviteiten niet meegerekend. De bekendste maatstaf voor de topologische structuur van een netwerk in de knooppuntvoorstelling is de “coefficient of network complexity” (CNC). Deze werd gedefinieerd door Pascoe (1966, blz. 31 - 38) als zijnde de verhouding van het aantal pijlen over het aantal knooppunten. Demeulemeester et al. (2003, blz. 13 - 34) concluderen echter dat de CNC op zichzelf niet discriminerend werkt, toch niet wat de moeilijkheid van een netwerkstructuur betreft. Derhalve vinden ze de CNC geen geschikte parameter om de impact van de netwerktopologie op de moeilijkheid van een planningsprobleem te beschrijven. (Demeulemeester E. et al., 2003, blz. 13 - 34) 4.1.3. Resource factor, RF “Resource factor” (RF) geeft de gemiddelde vraag van hulpmiddelentypes per activiteit weer. (Kolisch R. et al., 1995, blz. 1697) Deze parameter werd als volgt geïntroduceerd door Pascoe (1966, blz. 31 - 38): N RF = 1 N . NR ΣΣ i=1 Waarbij: NR 1, als ri j > 0 0, anders j=1 N = het aantal activiteiten (exclusief de dummyactiviteiten) NR = het aantal hulpmiddelentypes rij = het aantal hulpmiddelen van het type j dat activiteit i vereist De meningen over de impact van de “resource factor” zijn niet eensgezind. Enerzijds menen Kolisch et al. (1995, blz. 1693 - 1703) dat er een positieve correlatie heerst tussen de vereiste CPU-tijd om een planningsprobleem met hulpmiddelenbeperkingen op te lossen en de 61 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 4. Beschrijving van de testset resource factor. Anderzijds observeerden Alvarez-Valdes en Tamarit (1989) dat problemen met een RF = 1.0 makkelijker op te lossen zijn dan problemen met een RF = 0.5. (Demeulemeester E. et al., 2003, blz. 13 - 34) 4.1.4. Resource strength, RS Deze parameter geeft de verhouding weer tussen de beschikbaarheid van de hulpmiddelen en de vraag naar deze hulpmiddelen. De “resource strength” werd als volgt geïntroduceerd door Cooper (1976, blz. 1189): RSj = waarbij: AVj gemiddelde vraag van het jde hulpmiddel per activiteit AVj = de beschikbare hoeveelheid van het hulpmiddelen van het type j Elmaghraby en Herroelen (1980, blz. 223 - 234) waren de eersten om te vermoeden dat de relatie tussen de complexiteit van een netwerk met hulpmiddelenbeperkingen en de beschikbaarheid van de hulpmiddelen varieert volgens een klokcurve. De Reyck en Herroelen (1996, blz. 347 - 366) en Herroelen en De Reyck (1999, blz. 148 - 156) bevestigden dit vermoeden. Ze verwierpen hierbij echter de stelling van Kolisch et al. (1995, blz. 1693 - 1703) die een negatieve correlatie tussen de complexiteit van het netwerk en de RS vonden. (Demeulemeester E. et al., 2003, blz. 13 - 34) 4.1.5. Percentage negatieve cash flows De verdeling van de kasstromen blijkt ook een impact te hebben op de gemiddelde CPU-tijd. Projecten waarvan de activiteiten veel of weinig negatieve cash flows tellen, blijken het meeste CPU-tijd te vergen alvorens tot een optimale oplossing te komen. (Vanhoucke M. et al., 2001, blz. 1113 – 1121) Derhalve opteerden we in dit onderzoek om verschillende percentages van activiteiten met negatieve cash flows in te voeren. Zo hopen we tot de bevinding te komen dat de hier geteste 62 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 4. Beschrijving van de testset heuristieken hoofdzakelijk goed presteren in die gevallen waar optimale oplossingsmethoden een grote CPU-tijd vergen of zelfs niet tot een optimale oplossing komen. 4.2. Beschrijving van de testset Na de verschillende gehanteerde parameters te hebben besproken, geven we een overzicht van de gehanteerde testset. Deze testset werd speciaal opgebouwd om een optimale oplossingsprocedure voor het “RCPSPDC”-probleem uit te testen. (Vanhoucke M. et al., 2001, blz. 1118 – 1119) Tabel 4.1. geeft de parameters van de testset en hun respectieve waarden voor dit onderzoek weer. TABEL 4.1.: Overzicht van de parameters waarrond de testset is opgebouwd aantal activiteiten (AA) 10, 20, 30 volgorde sterkte (OS) 0.25, 0.50, 0.75 hulpmiddelen factor (RF) 0.25, 0.50, 0.75, 1.00 hulpmiddelen sterkte (RS) 0.00, 0.25, 0.50 percentage negatieve kasstromen * 0%, 25%, 50%, 75%, 100% * deze zijn niet opgenomen in de oorspronkelijke testset, maar worden zelf toegevoegd (cf. §2.2.2.) BRON: gebaseerd op Vanhoucke M. et al., 2001, blz. 1118 Deze testset is zodanig geconstrueerd dat er voor elke mogelijke combinatie van parameters steeds 10 projecten werden aangemaakt. Ons onderzoek bevat dus in totaal 1080 projecten. Immers, 3 klassen AA x 3 klassen OS x 4 klassen RF x 3 klassen RS x 10 projecten, geeft een testset bestaande uit 1080 projecten. Merk tenslotte op dat deze testset geen kasstromen bevatte. Het was bijgevolg noodzakelijk voor het verdere verloop van het onderzoek dat deze afzonderlijk werden gegenereerd. Dit gebeurde tijdens de voorbereidende fase van het onderzoek. Voor de behandeling ervan verwijzen we naar paragraaf 2.2.2. 63 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 4. Beschrijving van de testset Nu we het algoritme en de testset uitvoerig hebben toegelicht, kunnen we in het volgende hoofdstuk van deze scriptie de performantie van het algoritme – met de zeven heuristieken – nagaan bij deze testset. 64 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten HOOFDSTUK 5: ANALYSE VAN DE RESULTATEN In het vorige hoofdstuk werd het algoritme verduidelijkt aan de hand van een voorbeeld. We vonden hierbij heel bemoedigende resultaten. In dit hoofdstuk wordt de performantie van de verschillende heuristieken nagegaan onder verschillende projectplanningsparameters. De verschillende parameters, alsook de testset die hierbij werden gehanteerd, zijn uitvoerig besproken in hoofdstuk 4. We zullen in dit hoofdstuk de “net present value” (NPV) vergelijken met de optimale NPV die kan worden gerealiseerd bij dezelfde projectduur. De performantie van onze heuristieken wordt niet getoetst aan de performantie van andere heuristieken. Dit zou een beperking kunnen vormen. De bedoeling van elke heuristiek is echter om de optimale oplossing zo dicht mogelijk te benaderen. Daarom lijkt de optimale NPV ons geschikter om als referentiepunt te functioneren. Ons algoritme werd geprogrammeerd in Visual C++ 6.0. onder Windows98 met een Intel computer (Pentium PIII 450MHz processor). De eerste paragraaf van dit hoofdstuk behandelt het referentiepunt, namelijk de optimale NPV bij dezelfde deadline. Sectie 5.2. licht de gevolgde werkwijze toe. In de daaropvolgende paragrafen – § 5.3. tot en met § 5.7. – worden de resultaten per percentage negatieve “cash flows” besproken. Daarbij worden, naast de resultaten voor de gehele testset, telkens de invloed van het aantal activiteiten, de “order strenght”, de “resource factor” en de “resource strength” nagegaan (cfr. § 4.1.). Tenslotte worden in sectie 5.8. de bevindingen gerapporteerd. 5.1. Referentiepunt De NPV, gegenereerd door de verschillende prioriteitsregels, wordt vergeleken met de optimale NPV die kan worden verkregen bij dezelfde deadline. 65 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten In 2001 verfijnden Vanhoucke M. et al. de oplossingsprocedure die totnogtoe het best presteerde, meer bepaald deze van Icmeli en Erengüç (1996). (Vanhoucke M. et al., 2001, blz. 1120) De optimale NPV wordt berekend aan de hand van een “depth-first branch-and-bound” algoritme. Enerzijds wordt hierbij gebruik gemaakt van extra volgorderelaties om de hulpmiddelenconflicten op te lossen. Anderzijds wordt een snel omkeerbaar zoekalgoritme doorlopen om de bovengrens van de NPV van het project te bepalen. Aldus wordt de maximale NPV voor het project bij een vooraf bepaalde deadline bepaald. De basisidee is dat activiteiten met positieve “cash flows” zo vroeg mogelijk worden gepland en activiteiten met een negatieve kasstroom zo lang mogelijk worden uitgesteld. (Vanhoucke et al., 2001, blz. 1113) De performantie van het algoritme werd nagegaan bij een uitgebreide testset. Daarbij bleek dat de maximale NPV voor projecten zonder hulpmiddelenrestricties zeer snel kan worden bekomen. Deze bevinding geeft aan dat het algoritme in staat is om planningsproblemen tot dertig activiteiten en vier types hulpmiddelen in een aanvaardbare tijd optimaal op te lossen. Deze optimale oplossingsprocedure lijkt één van de best mogelijke te zijn die momenteel voorhanden is. (Vanhoucke et al., 2001, blz. 1120) Deze code werd geprogrammeerd en mij ter beschikking gesteld door Prof. dr. M. Vanhoucke. De tijdslimiet werd ingesteld op 150 seconden. Dit wil zeggen dat er maximaal 150 seconden werd gezocht naar een optimale oplossing. Indien er in deze tijdperiode nog geen optimale NPV werd gevonden, werd dit project buiten de analyse gehouden. Alvorens de bespreking van de resultaten te starten, wordt in de volgende paragraaf de gevolgde werkwijze toegelicht. 5.2. Werkwijze Praktisch werd als volgt tewerk gegaan: 66 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten Eerst werden de 1080 projecten waaruit de testset bestaat, opgelost aan de hand van het algoritme. Dit werd gedaan voor elk van de zeven heuristieken en voor elk percentage negatieve “cash flows” (zijnde 0%, 25%, 50%, 75% en 100%). Dit leverde een projectduur, een NPV en een “postoptimale” NPV op per project, voor elke heuristiek en voor elk percentage negatieve kasstromen. In tweede instantie werd per project de optimale NPV bij de bekomen projectduur bepaald, opnieuw voor elke heuristiek en voor elk percentage negatieve “cash flows”. Vervolgens werd voor alle gevallen het procentueel verschil tussen de optimale NPV en de (“postoptimale”) NPV berekend. Dit gebeurde aan de hand van de volgende formule: procentueel verschil = optimale NPV – (“postoptimale” NPV) optimale NPV Tenslotte werd per setting van elke parameter en bij elk percentage negatieve kasstromen het gemiddelde berekend. Daarbij werd ook bijgehouden hoeveel keer de optimale oplossing werd bereikt en in hoeveel gevallen er geen optimale oplossing werd bekomen binnen een aanvaardbare tijdspanne. De rapportering van de resultaten in de volgende paragrafen gebeurt als volgt. In de eerste kolom (% verschil VOOR postopt.) wordt de gemiddelde afwijking van onze oplossingen ten opzichte van de optimale oplossing bij dezelfde projectduur weergegeven. De tweede kolom vermeldt voor hoeveel projecten een optimale oplossing werd bekomen voor de postoptimalisatie. De derde en de vierde kolom bevatten dezelfde informatie voor de resultaten bekomen na de postoptimalisatie fase. De laatste kolom geeft weer voor hoeveel projecten er een optimale oplossing werd bekomen. Dit is dan meteen ook het aantal projecten waarmee onze heuristieken telkens worden vergeleken. We overlopen nu de resultaten van onze heuristieken bij de verscheidene projectparameters. 67 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten 5.3. 0% negatieve “cash flows” In dit geval zijn alle kasstromen positief. Vermits de activiteiten allen zo vroeg mogelijk werden gepland, levert de postoptimalisatie fase geen verbeteringen aan in het planningsschema. 5.3.1. Invloed van het aantal activiteiten Indien de projecten bestaan uit tien activiteiten, leveren alle zeven heuristieken zeer bevredigende resultaten. De prioriteitsregel “cash flow per tijdeenheid” presteert met een afwijking van slechts 0.88% en met 176 optimale oplossingen (op 360 projecten) het best. “Het aantal toekomstige activiteiten” zit gemiddeld 2.41% verwijderd van de optimale oplossing. Ook dit kan nog als zeer goed worden beoordeeld. De vijf andere voorrangsregels bevinden zich tussen deze grenzen. Ook bij projecten opgebouwd uit 20 activiteiten komt de “cash flow per tijdeenheid” naar voren als de beste heuristiek. De gemiddelde afwijking van de optimale oplossing bedraagt 2.14%. Wel dient opgemerkt te worden dat er aanzienlijk minder optimale oplossingen worden bekomen, slechts 64 op 359 beschouwde projecten. In dit geval levert de “duur van de toekomstige activiteiten” het minst goede resultaat op. Doch een gemiddelde afwijking van 3.10% is nog steeds heel aanvaardbaar. Bij 30 activiteiten worden de beste resultaten bekomen met “het aantal toekomstige activiteiten” als prioriteitsregel. De gemiddelde afwijking bedraagt 2.80% en er worden 53 optimale oplossingen bekomen. In dit geval performeert de “cash flow” als voorrangsregel het minst goed. Doch de verschillen met de andere heuristieken zijn minimaal. We bemerken dat het nut van heuristieken toeneemt naarmate het aantal activiteiten stijgt. Immers, hoe meer activiteiten een project bevat, hoe minder optimale oplossingen er worden bekomen. Alle resultaten worden weergegeven in tabel 5.1. 68 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten TABEL 5.1.: Resultaten van de heuristieken per aantal activiteiten bij 0% negatieve “cash flows” 0% negatieve “cash flows” 10 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 1.14 0.88 1.44 1.91 2.41 1.46 1.29 131 176 127 94 78 122 133 1.14 0.88 1.44 1.91 2.41 1.46 1.29 131 176 127 94 78 122 133 360 360 360 360 360 360 360 2.78 2.14 2.65 3.10 2.89 2.69 2.54 56 64 59 52 61 56 46 2.78 2.14 2.65 3.10 2.89 2.69 2.54 56 64 59 52 61 56 46 359 359 359 359 359 359 359 3.23 2.95 3.02 3.20 2.80 2.91 3.01 30 41 52 43 53 40 41 3.23 2.95 3.02 3.20 2.80 2.91 3.01 30 41 52 43 53 40 41 277 276 273 272 275 274 273 20 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid 30 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.3.2. Invloed van de “order strenght” (OS) In dit geval presteert de “cash flow per tijdeenheid” het best als voorrangsregel. De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” scoren het minst goed. Doch de gemiddelde afwijking bedraagt meestal tussen de 1% en 2%, wat nog steeds heel aanvaardbaar is. Hoe minder sterk de OS, hoe minder optimale oplossingen er werden bekomen. Het is dan ook goed dat onze heuristieken net in dat geval de kleinste gemiddelde afwijking laten noteren. 69 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten Alle resultaten worden weergegeven in tabel 5.2. TABEL 5.2.: Resultaten van de heuristieken per percentage OS bij 0% negatieve “cash flows” 0% negatieve “cash flows” OS = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 2.00 1.52 2.15 2.82 3.10 2.13 1.88 54 73 56 41 38 49 55 2.00 1.52 2.15 2.82 3.10 2.13 1.88 54 73 56 41 38 49 55 290 289 289 288 290 289 289 2.64 2.27 2.67 2.92 2.80 2.63 2.61 71 91 82 69 62 72 74 2.64 2.27 2.67 2.92 2.80 2.63 2.61 71 91 82 69 62 72 74 349 349 346 346 347 347 346 2.25 1.87 2.09 2.37 2.25 2.13 2.11 92 117 100 79 92 97 91 2.25 1.87 2.09 2.37 2.25 2.13 2.11 92 117 100 79 92 97 91 357 357 357 357 357 357 357 OS = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid OS = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.3.3. Invloed van de “resource factor” (RF) Andermaal is het de “cash flow per tijdeenheid” die naar voren komt als de beste heuristiek. De maximale gemiddelde afwijking bedraagt 2.65% bij een RF gelijk aan 0.75. We merken ook op dat zodra de RF oploopt, de “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” leiden tot een grotere gemiddelde afwijking ten opzichte van de optimale oplossing. Tabel 5.3. bevat alle resultaten. 70 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten TABEL 5.3.: Resultaten van de heuristieken per percentage RF bij 0% negatieve “cash flows” 0% negatieve “cash flows” RF =0. 25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 1.03 0.84 0.76 0.87 1.01 0.87 0.96 117 136 138 127 127 125 122 1.03 0.84 0.76 0.87 1.01 0.87 0.96 117 136 138 127 127 125 122 270 270 270 270 270 270 270 2.25 1.86 2.04 2.26 2.25 2.12 2.12 48 67 53 45 43 48 50 2.25 1.86 2.04 2.26 2.25 2.12 2.12 48 67 53 45 43 48 50 254 254 252 252 252 252 252 3.04 2.65 3.02 3.45 3.47 2.96 2.80 37 42 32 12 17 28 28 3.04 2.65 3.02 3.45 3.47 2.96 2.80 37 42 32 12 17 28 28 240 241 237 237 240 238 238 3.12 2.44 3.69 4.51 4.32 3.50 3.19 15 36 15 5 5 17 20 3.12 2.44 3.69 4.51 4.32 3.50 3.19 15 36 15 5 5 17 20 232 230 233 232 232 233 232 RF = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RF = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RF = 1.00 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.3.4. Invloed van de “resource strenght” (RS) Indien de RS 0 of 0.25 bedraagt, levert de “cash flow per tijdeenheid” opnieuw de beste resultaten op. De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” kennen andermaal de grootste gemiddelde afwijking. 71 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten Indien de RS gelijk is aan 0.50, merken we op dat er weinig onderscheid is tussen de verschillende heuristieken. De resultaten worden gevisualiseerd in tabel 5.4. TABEL 5.4.: Resultaten van de heuristieken per percentage RS bij 0% negatieve “cash flows” 0% negatieve “cash flows” RS = 0 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 2.63 1.98 3.02 3.62 3.74 2.94 2.71 51 72 58 50 45 55 55 2.63 1.98 3.02 3.62 3.74 2.94 2.71 51 72 58 50 45 55 55 319 319 316 316 316 317 318 2.41 2.00 2.30 2.67 2.64 2.29 2.14 74 104 83 65 65 78 80 2.41 2.00 2.30 2.67 2.64 2.29 2.14 74 104 83 65 65 78 80 332 333 333 333 333 333 331 1.93 1.75 1.67 1.86 1.78 1.74 1.83 92 105 97 74 82 85 85 1.93 1.75 1.67 1.86 1.78 1.74 1.83 92 105 97 74 82 85 85 345 343 343 342 345 343 343 RS = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RS = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.4. 25% negatieve “cash flows” In dit geval kennen de projecten een klein aantal “cash outflows”. Vanaf dit punt kan de postoptimalisatie fase haar nut bewijzen. 72 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten 5.4.1. Invloed van het aantal activiteiten De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” komen ook hier weer naar voren als de minst goede voorrangsregel. Bij projecten bestaande uit een gering aantal activiteiten leidt de “cash flow” als heuristiek tot goede resultaten. Als het aantal activiteiten toeneemt, presteert de “toekomstige cash flow per tijdeenheid” bevredigend. De “cash flow per tijdeenheid” performeert over het algemeen zeer goed. Bij dertig activiteiten schommelt de gemiddelde afwijking rond de 5%. We merken ook het effect van de postoptimalisatie op. Dit leidt telkens tot een aanzienlijke daling van de gemiddelde afwijking en een vrij forse stijging van het aantal gevonden optimale oplossingen. Tabel 5.5. geeft de resultaten voor de verschillende heuristieken weer. TABEL 5.5.: Resultaten van de heuristieken per aantal activiteiten bij 25% negatieve “cash flows” 25% negatieve “cash flows” 10 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale oplossingen beschouwde projecten 1.91 1.64 3.03 6.11 6.68 3.05 2.57 52 62 39 20 13 39 39 1.18 0.91 2.33 5.33 5.82 2.32 1.86 167 200 131 88 76 132 134 360 360 360 360 360 360 360 4.21 4.11 4.82 7.03 7.35 4.63 4.44 10 12 11 7 6 12 12 3.02 2.94 3.72 5.86 6.20 3.55 3.35 53 55 56 42 43 48 52 359 359 360 359 359 360 360 6.75 6.63 6.83 9.18 8.93 6.55 6.15 3 5 6 2 3 4 3 5.24 5.07 5.45 7.72 7.44 5.19 4.87 20 25 30 26 34 28 27 333 331 334 322 322 335 333 20 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid 30 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 73 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten 5.4.2. Invloed van de “order strenght” (OS) De “cash flow”, de “cash flow per tijdeenheid” en in mindere mate de “gemiddelde toekomstige cash flow per tijdeenheid” scoren in dit het geval het best. De gemiddelde afwijking schommelt tussen de 2.12% en 3.62%. De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” blijken hier andermaal de minst goede heuristieken in ons onderzoek. Naarmate de OS toeneemt, verbetert de performantie van onze prioriteitsregels. De resultaten worden weergegeven in tabel 5.6. TABEL 5.6.: Resultaten van de heuristieken per percentage OS bij 25% negatieve “cash flows” 25% negatieve “cash flows” OS = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 4.86 4.72 5.16 9.39 9.91 5.03 4.60 11 13 9 2 2 10 9 3.60 3.47 4.08 8.20 8.72 3.98 3.62 53 63 47 31 28 49 49 335 334 337 327 328 338 336 4.70 4.55 5.41 7.49 7.78 5.18 4.76 19 22 16 8 4 14 12 3.39 3.20 4.16 6.20 6.43 3.93 3.48 83 95 73 55 46 70 73 357 356 357 355 354 357 357 3.16 2.96 3.99 5.43 5.33 3.92 3.68 35 44 31 19 16 31 33 2.33 2.12 3.17 4.53 4.40 3.07 2.88 104 122 97 70 79 89 91 360 360 360 359 359 360 360 OS = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid OS = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 74 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten 5.4.3. Invloed van de “resource factor” (RF) De “cash flow” en de “cash flow per tijdeenheid” zijn in dit geval in staat de optimale oplossing tot ongeveer 3.50% te benaderen. Indien de RF sterk toeneemt, blijkt dat de “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” niet steeds tot een betrouwbare oplossing leiden. De resultaten worden voorgesteld in tabel 5.7. TABEL 5.7.: Resultaten van de heuristieken per percentage RF bij 25% negatieve “cash flows” 25% negatieve “cash flows” RF = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 3.10 2.93 2.70 2.78 3.18 2.82 2.83 17 20 20 16 14 18 16 1.59 1.44 1.31 1.44 1.75 1.45 1.43 97 108 105 101 102 98 100 270 270 270 270 270 270 270 4.65 4.44 4.43 5.71 5.95 4.57 4.40 16 17 15 10 6 14 13 3.39 3.19 3.27 4.49 4.67 3.41 3.29 61 73 64 42 34 59 57 266 266 265 262 260 265 264 4.69 4.62 5.58 8.82 9.03 5.29 4.76 15 17 11 2 2 9 12 3.69 3.58 4.53 7.64 7.83 4.25 3.79 48 51 28 10 15 26 32 259 258 258 254 254 258 257 4.50 4.28 6.75 12.52 12.53 6.20 5.43 17 25 10 1 0 14 13 3.76 3.52 6.17 11.79 11.83 5.57 4.85 34 48 20 3 2 25 24 257 256 261 255 257 262 262 RF = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RF = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RF = 1.00 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 75 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten 5.4.4. Invloed van de “resource strenght” (RS) Opnieuw zijn het de “cash flow” en de “cash flow per tijdeenheid” die de optimale oplossing het dichtst benaderen. De gemiddelde afwijking bedraagt tussen de 2.31% en 3.81%. De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” leiden andermaal tot de minst goede resultaten. Dit laatste geldt zeker indien de RS laag is. De resultaten zijn opgenomen in tabel 5.8. TABEL 5.8.: Resultaten van de heuristieken per percentage RS bij 25% negatieve “cash flows” 25% negatieve “cash flows” RS = 0 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 4.87 4.43 6.45 10.16 10.92 6.07 5.36 23 30 12 6 2 12 11 3.81 3.38 5.49 9.18 9.87 5.17 4.46 66 86 61 43 39 58 55 351 349 349 345 342 349 349 4.39 4.31 4.59 7.28 7.21 4.43 4.22 20 23 19 9 10 16 18 3.15 3.06 3.42 6.04 5.93 3.21 3.09 83 92 69 48 49 62 70 348 348 349 345 347 350 350 3.42 3.44 3.52 4.74 4.77 3.63 3.46 22 26 25 14 10 27 25 2.32 2.31 2.50 3.60 3.64 2.60 2.43 91 102 87 65 65 88 88 353 353 356 351 352 356 354 RS = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RS = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 76 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten 5.5. 50% negatieve “cash flows” Indien projecten voor de helft bestaan uit positieve en negatieve kasstromen, ontstaat het gevaar dat het project uiteenvalt in twee delen. Enerzijds zijn er de activiteiten met de positieve “cash flows”, die zoveel mogelijk worden vervroegd, en anderzijds deze met negatieve “cash flows”, die zoveel mogelijk naar achter worden verschoven. Daardoor kan het voorkomen dat het project in het begin en op het einde een zware hulpmiddelenbelasting kent, terwijl dit in het midden van de planning veel minder het geval is. Dit maakt het plannen van dergelijke projecten ook iets delicater. Een bijkomend aspect situeert zich in het feit dat de NPV schommelt rond nul. Daardoor kan het zijn dat een afwijking, die in absolute termen nochtans even groot is als bij een grotere NPV, procentueel veel sterker uitvalt. De resultaten bij 50% negatieve kasstromen worden hierna kort besproken. 5.5.1. Invloed van het aantal activiteiten Zolang het aantal activiteiten beperkt blijft, worden aan de hand van onze heuristieken vrij goede resultaten bekomen. De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” vormen hierop een uitzondering. Bij een stijgend aantal activiteiten daalt de performantie van onze prioriteitsregels. Bijgevolg daalt ook de betrouwbaarheid van onze oplossingen. De postoptimalisatie fase zorgt er wel voor dat in vele gevallen het verschil met ongeveer de helft afneemt. Het aantal optimale oplossingen dat alsnog wordt bekomen, vloeit voornamelijk voort uit deze postoptimalisatie. De resultaten worden weergegeven in tabel 5.9. 77 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten TABEL 5.9.: Resultaten van de heuristieken per aantal activiteiten bij 50% negatieve “cash flows” 50% negatieve “cash flows” 10 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 4.17 3.96 5.09 10.34 13.75 5.17 4.99 40 49 33 14 7 32 26 2.16 1.98 3.13 8.22 11.21 3.15 2.94 159 185 153 101 73 152 148 360 360 360 360 360 360 360 14.27 14.05 12.51 18.45 21.15 12.50 12.99 0 1 2 0 0 3 2 7.12 6.88 6.17 11.95 14.31 6.18 6.63 40 48 57 40 30 56 45 358 359 359 354 357 359 358 20.59 20.03 18.53 23.29 23.84 18.56 19.70 0 1 0 0 0 0 0 12.25 11.95 10.87 14.91 15.09 11.07 12.20 9 13 13 13 12 11 11 327 332 320 302 290 319 326 20 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid 30 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.5.2. Invloed van de “order strenght” (OS) Enkel bij een strenge OS leveren sommige van onze voorrangsregels betrouwbare resultaten. Het feit dat er, ondanks een gemiddelde afwijking van 7 à 8% toch nog in ongeveer één zesde van de gevallen een optimale oplossing wordt bekomen, wijst er op dat grote schommelingen kunnen optreden in de performantie. De resultaten worden gevisualiseerd in tabel 5.10. 78 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten TABEL 5.10.: Resultaten van de heuristieken per percentage OS bij 50% negatieve “cash flows” 50% negatieve “cash flows” OS = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 13.40 13.10 12.50 19.80 23.13 12.02 12.43 11 16 9 2 1 10 9 8.42 8.13 8.09 15.18 18.04 7.69 8.26 50 58 46 30 18 49 46 328 334 325 310 307 324 329 14.82 14.24 13.29 18.12 20.63 13.71 13.81 9 11 11 6 2 10 6 7.87 7.48 7.05 11.53 13.65 7.45 7.43 68 83 76 52 34 70 69 358 357 354 351 346 355 355 10.14 10.18 9.70 13.49 14.62 9.77 10.76 20 24 15 6 4 15 13 4.89 4.90 4.71 8.28 9.21 4.86 5.71 90 105 101 72 63 100 89 359 360 360 355 354 359 360 OS = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid OS = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.5.3. Invloed van de “resource factor” (RF) Bij een RF van 0.25 leveren onze heuristieken vrij bevredigende resultaten op. De gemiddelde afwijking ten opzichte van de optimale oplossing bedraagt dan iets minder dan 4%. Een toenemende RF doet echter de betrouwbaarheid van onze heuristieken dalen. De resultaten zijn opgenomen in tabel 5.11. Daaruit blijkt nog maar eens de kracht van de postoptimalisatie fase. De gemiddelde afwijking daalt aanzienlijk en het aantal behaalde optimale oplossingen neemt ook sterk toe. 79 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten TABEL 5.11.: Resultaten van de heuristieken per percentage RF bij 50% negatieve “cash flows” 50% negatieve “cash flows” RF = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 11.52 11.27 10.92 11.23 11.99 11.16 11.16 3 5 4 3 3 4 3 3.98 3.76 3.58 3.84 4.43 3.83 3.91 79 92 85 83 73 84 79 270 270 270 270 270 270 270 13.36 13.62 12.14 15.32 17.14 12.32 13.02 10 11 6 6 3 6 5 7.02 7.14 6.11 8.71 9.91 6.28 6.89 52 64 60 44 29 57 54 265 267 258 258 255 261 262 13.14 13.01 12.54 19.28 21.65 12.11 12.49 11 14 9 4 1 9 9 7.89 7.94 7.87 14.45 16.63 7.76 8.16 41 45 41 19 10 43 38 253 258 260 246 243 260 260 13.10 12.04 11.62 22.98 27.37 11.72 12.68 16 21 16 1 0 16 11 9.34 8.52 8.89 20.04 24.07 8.89 9.64 36 45 37 8 3 35 33 257 256 251 242 239 247 252 RF = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RF = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RF = 1.00 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.5.4. Invloed van de “resource strenght” (RS) Indien we de “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” buiten beschouwing laten, benaderen onze heuristieken de optimale oplossing tot 5 à 8%. 80 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten Hoe sterker de RS, hoe beter de performantie van onze prioriteitsregels en hoe meer optimale oplossingen er worden bekomen. TABEL 5.12.: Resultaten van de heuristieken per percentage RS bij 50% negatieve “cash flows” 50% negatieve “cash flows” RS = 0 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 13.30 12.73 12.39 19.53 24.17 12.51 12.95 12 19 13 3 1 13 9 8.32 7.68 7.99 14.75 18.98 8.04 8.46 60 78 66 38 33 66 63 342 344 345 329 327 342 344 13.18 13.05 12.36 18.06 18.97 12.28 12.58 14 18 10 3 2 9 11 6.84 6.93 6.69 12.14 12.70 6.75 6.98 62 75 70 46 30 63 65 350 354 347 341 340 349 351 11.84 11.67 10.64 13.60 14.88 10.68 11.45 14 14 12 8 4 13 8 5.93 5.82 5.01 7.80 8.80 5.12 5.88 86 93 87 70 52 90 76 353 353 347 346 340 347 349 RS = 0.25 "cash flow" "cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RS = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.6. 75% negatieve “cash flows” Net als in § 5.5. schommelt de optimale NPV van de projecten rond nul. De absolute waarde van deze NPV zal dan ook heel klein zijn. Bijgevolg resulteert een relatief kleine absolute afwijking in een relatief grote procentuele afwijking. Bij 75% negatieve “cash flows” komt dit echter nog veel sterker tot uiting dan wanneer slechts de helft van de kasstromen negatief zijn. 81 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten De resultaten van projecten met 75% negatieve kasstromen onder de verschillende projectplanningsparameters worden weergegeven in bijlage 1. 5.7. 100% negatieve “cash flows” Indien alle “cash flows” negatief zijn, kunnen de activiteiten tijdens de postoptimalisatie enkel naar een later aanvangstijdstip worden verschoven. De NPV van de projecten is hier overduidelijk negatief. 5.7.1. Invloed van het aantal activiteiten We merken meteen de sterke stijging op van het aantal optimale oplossingen dat wordt bekomen door het toepassen van de postoptimalisatie. De gemiddelde afwijking ten opzichte van de optimale oplossing daalt eveneens zeer fors na de postoptimalisatie. Opvallend hierbij is dat de “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten”, die totnogtoe steeds als één van de mindere heuristieken naar voren kwamen, nu wel goed blijken te presteren. Dit is zeker het geval als het aantal activiteiten waaruit een project is opgebouwd, toeneemt. De “toekomstige cash flows” leidt bij 100% negatieve kasstromen tot het minst goede resultaat. De gemiddelde afwijking varieert tussen 0.84% en 3.45%. Dit kan als zeer aanvaardbaar worden beschouwd. De resultaten worden voorgesteld in tabel 5.13. 82 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten TABEL 5.13.: Resultaten van de heuristieken per aantal activiteiten bij 100% negatieve “cash flows” 100% negatieve “cash flows” 10 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 3.23 3.07 3.44 3.53 3.29 3.23 2.94 3 7 2 1 1 3 8 1.03 0.88 1.39 1.43 0.99 1.14 0.84 144 160 111 125 128 123 149 360 360 360 360 360 360 360 6.36 6.41 6.89 6.22 6.52 6.45 6.11 0 0 0 0 0 0 0 1.99 1.94 2.73 1.86 1.91 2.31 1.95 91 100 75 89 84 86 103 310 310 309 309 308 308 309 9.57 9.66 9.91 9.06 9.25 9.74 8.80 0 0 0 0 0 0 0 2.85 3.03 3.45 2.26 2.38 3.16 2.54 63 64 53 67 67 57 61 217 219 217 218 221 214 215 20 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid 30 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.7.2. Invloed van de “order strenght” (OS) Hoewel het verschil tijdens de planningsfase kan oplopen tot 5 à 7%, wordt na de postoptimalisatie een gemiddelde afwijking bekomen die varieert rond de 2%. Dit geldt voor elke waarde die aan de OS wordt opgelegd. De resultaten worden gevisualiseerd in tabel 5.14. 83 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten TABEL 5.14.: Resultaten van de heuristieken per percentage OS bij 100% negatieve “cash flows” 100% negatieve “cash flows” OS = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 6.92 6.71 7.20 6.52 6.96 6.95 6.25 0 1 0 0 0 0 0 2.07 1.85 2.30 2.20 2.06 2.13 1.81 61 64 48 56 56 54 62 236 237 236 237 238 236 237 6.46 6.59 6.83 6.79 6.70 6.52 6.15 1 0 1 1 0 1 4 1.98 2.04 2.76 1.99 1.80 2.36 1.85 100 101 84 92 95 88 99 311 312 310 311 309 307 308 4.61 4.59 5.01 4.46 4.42 4.69 4.31 2 6 1 0 1 2 4 1.47 1.49 2.05 1.30 1.24 1.68 1.32 137 159 107 133 128 124 152 340 340 340 339 342 339 339 OS = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid OS = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.7.3. Invloed van de “resource factor” (RF) Indien de RF 0.25 bedraagt, slagen alle heuristieken erin om de optimale oplossing te benaderen tot minder dan 1%. Als de RF wordt opgedreven, neemt de gemiddelde afwijking lichtjes tot 2 à 3%. Dit kan nog steeds als zeer goed worden beschouwd. Veel onderscheid tussen de verschillende prioriteitsregels kan hierbij niet opgemerkt worden. Wel bemerken we dat de “duur van de toekomstige activiteiten” en vooral het “aantal toekomstige activiteiten” steeds tot de best presterende voorrangsregels behoren. Dit in tegenstelling tot projecten bestaande uit enkel postieve kasstromen. Daar kwamen deze regels steevast naar voren als de minst presterende heuristieken. 84 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten Tabel 5.15. geeft de resultaten voor de verschillende heuristieken weer. De impact van de postoptimalisatie fase wordt hier andermaal heel duidelijk geïllustreerd. TABEL 5.15.: Resultaten van de heuristieken per percentage RF bij 100% negatieve “cash flows” 100% negatieve “cash flows” RF = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 7.70 7.44 7.63 7.24 7.59 7.51 7.29 0 0 0 0 0 0 0 0.90 0.88 1.03 0.78 0.86 0.98 0.88 157 162 144 161 154 148 158 270 270 270 270 270 270 270 5.77 5.80 6.16 5.86 5.97 5.96 5.68 0 0 0 0 0 0 0 1.75 1.80 2.43 1.57 1.46 2.06 1.81 87 85 59 78 80 72 79 240 241 239 243 243 238 239 5.07 5.28 5.62 5.08 5.15 5.08 4.54 0 2 0 1 0 0 0 2.32 2.31 3.03 2.48 2.34 2.53 1.99 34 45 20 25 31 27 43 206 207 206 205 206 204 205 4.10 4.14 4.86 4.43 4.00 4.41 3.42 3 5 2 0 1 3 8 2.71 2.52 3.57 2.86 2.36 3.10 2.16 20 32 16 17 14 19 33 171 171 171 169 170 170 170 RF = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RF = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RF = 1.00 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.7.4. Invloed van de “resource strenght” (RS) De zeven heuristieken presteren heel behoorlijk onder de verschillende RS-instellingen. Hierbij leidt de “toekomstige cash flow per tijdeenheid” tot de beste resultaten. De 85 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten “toekomstige cash flows” levert in dit geval steevast het minst goede resultaat op. Ook de “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” performeren heel degelijk bij deze settings. Tabel 5.16. bevat de resultaten van de zeven heuristieken bij de verschillende RS-waarden. TABEL 5.16.: Resultaten van de heuristieken per percentage RS bij 100% negatieve “cash flows” 100% negatieve “cash flows” RS = 0 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale oplossingen beschouwde projecten 5.77 5.65 6.10 5.72 5.85 5.68 5.21 2 5 1 0 1 2 7 2.26 1.91 2.77 2.17 1.97 2.31 1.79 83 89 62 78 77 69 91 271 271 271 270 271 268 269 5.97 6.08 6.44 6.09 6.04 6.18 5.55 1 1 1 0 0 1 1 1.89 2.00 2.65 2.01 1.79 2.33 1.85 94 95 71 77 87 83 96 301 303 301 301 301 301 299 5.87 5.82 6.14 5.67 5.79 5.91 5.62 0 1 0 1 0 0 0 1.35 1.45 1.74 1.24 1.25 1.52 1.30 121 140 106 126 115 114 126 315 315 314 316 317 313 316 RS = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RS = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten 5.8. Bevindingen Indien de projecten enkel bestaan uit kasinstromen, komt de “cash flow per tijdeenheid” naar voren als de beste prioriteitsregel. De gemiddelde afwijking ten opzichte van de optimale 86 Een heuristische benadering voor projectplanningsproblemen met “cash flows” 5. Analyse van de resultaten oplossing bedraagt tussen de 0.84% en 2.95%. Steeds wordt een aanzienlijk aantal optimale oplossingen bekomen. De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” scoren het minst goed. Doch hun gemiddelde afwijking bedraagt maximaal 4.51%, respectievelijk 4.32%. Als er 25% negatieve kasstromen zijn, neemt de afwijking ten opzichte van de optimale oplossing toe. Deze toename wordt beperkt gehouden door de verschuivingen die plaatsvinden tijdens de postoptimalisatie. Opnieuw performeert de “cash flow per tijdeenheid” globaal gezien het beste. De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” kunnen in sommige gevallen tot onbetrouwbare resultaten leiden, met een afwijking die rond de 7 à 10% kan schommelen. Bij projecten waar 50% van de “cash flows” negatief zijn, is de performantie van onze heuristieken minder goed. Een eerste mogelijke oorzaak zit in de waarde van de NPV vervat. Intuïtief is het duidelijk dat de NPV van een project met 50% negatieve kasstromen rond nul zal variëren. De absolute waarde van de NPV zal dus heel klein zijn. Bijgevolg resulteert een relatief kleine absolute afwijking in een relatief grote procentuele afwijking. Een tweede mogelijke oorzaak is de ongelijkmatige verdeling van de planning. Bij projecten met 75% negatieve kasstromen wordt dit negatief effect nog meer versterkt. De bruikbaarheid van onze heuristieken kan in dit geval in vraag worden gesteld. Bij 100% negatieve “cash flows” blijken alle zeven heuristieken heel degelijk te presteren. De betrouwbaarheid van de oplossingen bij dergelijke projecten is heel hoog. Onder deze omstandigheden lijkt de “toekomstige cash flow per tijdeenheid” de voorkeur te genieten. Opvallend hierbij is dat de “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” ook heel goed blijken te scoren. Dit is dus in tegenstelling met projecten bestaande uit 0 en 25% negatieve kasstromen. De “toekomstige cash flows” blijken dan weer de minst goede performantie te leveren. 87 Een heuristische benadering voor projectplanningsproblemen met “cash flows” Conclusie CONCLUSIE Het oplossen van projectplanningsproblemen komt neer op het toewijzen van een beperkt aantal hulpmiddelen aan de verscheidene activiteiten over een bepaalde periode. Daarbij dienen de volgorderelaties te worden gerespecteerd. De planning geschiedt zodanig dat een doelfunctie of “measure of performance” wordt geoptimaliseerd. De bekendste en meest nagestreefde performantiemaatstaf is ongetwijfeld het minimaliseren van de projectduur. Dit is een zogenaamde reguliere performantiemaatstaf. Dit wil zeggen dat het uitstellen van een activiteit nooit tot een verbetering van de doelfunctie leidt. We concentreren ons echter op een niet-reguliere performantiemaatstaf, namelijk het maximaliseren van de netto actuele waarde of “net present value” (NPV) van een project. Dit is het zogenaamde “RCPSPDC”-planningsprobleem (“resource-constrained project scheduling problem with discounted cash flows”). Hierbij kan het zijn dat het uitstellen van een activiteit voordelig is voor de doelfunctie. Hierdoor worden de financiële aspecten van een project ook opgenomen in de planning. Deze NPV-regel kan zowel gebruikt worden bij het opstellen van een aanbesteding als bij het plannen van een aanvaard project. Het maximaliseren van de NPV is relevant in omstandigheden waarbij aan de volgende voorwaarden is voldaan: • de tijdswaarde van geld wordt in beschouwing genomen • het gaat om kapitaalintensieve projecten met een voldoende lange looptijd • het project gaat gepaard met aanzienlijke kasstromen • er geldt een hoge interestvoet • de kapitaalkost is hoog. In sommige “real-life” omstandigheden is hieraan voldaan en is het bijgevolg aangewezen de NPV te maximaliseren bij de planning van het project. We denken bijvoorbeeld aan het project ter uitbreiding van de capaciteit van het waterproductiecentrum te Kluizen dat door de Vlaamse Maatschappij voor Watervoorziening werd uitgevoerd. 88 Een heuristische benadering voor projectplanningsproblemen met “cash flows” Conclusie Er bestaan zowel optimale als heuristische oplossingsmethodes. Optimale oplossingsmethodes zijn in staat het planningsprobleem zonder hulpmiddelenbeperkingen, waarbij de netto actuele waarde wordt gemaximaliseerd, op een efficiënte en optimale manier op te lossen. Bijgevolg is er geen behoefte aan het gebruik van heuristieken. Indien echter hulpmiddelenrestricties worden toegevoegd, komen de optimale oplossingsmethodes niet altijd tot een planning binnen een aanvaardbare tijdspanne. De beste optimale resultaten worden behaald met een “depth-first branch-and-bound”-procedure. Het gebruik van een heuristische oplossingsbenadering biedt hier een mogelijk alternatief. Binnen de heuristische oplossingsmethodes worden twee benaderingen onderscheiden. Enerzijds is er de optimalisatiegeoriënteerde benadering. De oplossingen van het model zonder hulpmiddelenbeperkingen vormen hierbij het uitgangspunt. Hierdoor komt een “single-pass” heuristiek tot stand. Anderzijds is er de parametergebaseerde benadering. Hierbij wordt informatie omtrent het kritische pad en kasstromen gebruikt om prioriteitsregels op te stellen. Aan deze laatste benadering wordt er vaak een “shifting”-procedure toegevoegd. Dit vormt dan een zogenaamde “multipass” heuristiek. Daarbij worden de activiteiten na de initiële planning verschoven zodat de doelfunctie verbetert. De basisidee hierbij is dat activiteiten met een negatieve “cash flow” zo lang mogelijk worden uitgesteld en activiteiten waaraan een positieve kasstroom is verbonden zo vroeg mogelijk worden gepland. In deze scriptie is een “multipass” algoritme voorgesteld. Dit werd zelfstandig opgesteld, verfijnd en geïmplementeerd. Het algoritme wordt ingedeeld in vier fasen: de voorbereidende fase, de initialisatie fase, de planningsfase en de postoptimalisatie. Tijdens de voorbereidende fase worden de gegevens van het project ingelezen. Voorts worden “cash flows” gegenereerd. Tenslotte worden enkele aanvullende data, dewelke nodig zijn voor de planningsfase, berekend. Het betreft de voorgangers van de activiteiten en de toekomstige activiteiten van een activiteit. Onder toekomstige activiteiten verstaan we hier alle volgers en niet enkel de onmiddellijke volgers. 89 Een heuristische benadering voor projectplanningsproblemen met “cash flows” Conclusie Bij de tweede fase worden de klok, de beschikbare hulpmiddelen en de verscheidene viabelen geïnitialiseerd. De activiteiten worden voorlopig gepland tijdens de planningsfase. Hierbij wordt in een eerste stap op elk tijdstip de “set of schedulable activities” opgesteld. Dit is de set van alle activiteiten die op dit tijdstip kunnen worden gepland. In een tweede stap worden aan alle activiteiten uit deze set prioriteiten toegekend op basis van een intuïtieve wegingscoëfficiënt. Er wordt gestreefd naar eenvoudige prioriteitsregels. Het zijn allen varianten op bestaande heuristieken. We stellen in deze scriptie zeven voorrangsregels voor, namelijk: • “cash flow” • “cash flow” per tijdeenheid • toekomstige “cash flows” • duur van de toekomstige activiteiten • aantal toekomstige activiteiten • gemiddeld toekomstige “cash flow” • toekomstige “cash flow” per tijdeenheid In het geval er een “tie” optreedt, dus als meerdere activiteiten eenzelfde prioriteit hebben, krijgt de activiteit met het kleinste activiteitsnummer de hoogste prioriteit. Bij de derde stap wordt de activiteit met de hoogste prioriteit, voor zover er aan de hulpmiddelenbeperkingen werd voldaan, gepland. Tenslotte wordt in een laatste stap de NPV van het project berekend. Tijdens de vierde fase wordt de “shifting”-procedure toegepast. Indien we degelijke resultaten wensen te behalen, is zo’n procedure een noodzaak. Immers, er wordt aangetoond dat geen enkele “single pass” heuristiek beter presteert dan een “multipass” heuristiek. Het algoritme wordt geïllustreerd aan de hand van een numeriek voorbeeld uit de literatuur. Hierbij worden heel bemoedigende resultaten behaald, wat het uittesten op een uitgebreide testset rechtvaardigt. 90 Een heuristische benadering voor projectplanningsproblemen met “cash flows” Conclusie De performantie van het algoritme wordt vervolgens nagegaan op een testset bestaande uit 1080 projecten. Deze testset werd reeds eerder gehanteerd bij het toetsen van een optimale oplossingsmethode. De projecten uit de gebruikte testset bevatten verschillende waarden voor de planningsparameters. De parameters waaruit de testset werd opgebouwd zijn: • Het aantal activiteiten. • De “order strenght” geeft de sterkte van de volgorderelaties in een project weer. • De “resource factor”geeft de gemiddelde vraag van hulpmiddelentypes per activiteit weer. • De “resource strenght” geeft de verhouding weer tussen de beschikbaarheid van de hulpmiddelen en de vraag ernaar. • percentage negatieve cash flows De planning die door ons algoritme werd bekomen, wordt vervolgens vergeleken met de optimale NPV bij eenzelfde deadline. Daarbij wordt de gemiddelde procentuele afwijking berekend. Ook wordt het aantal gevallen waarbij een optimale oplossing werd bekomen, bijgehouden. Volgende bevindingen kwamen daarbij naar voren: Bij projecten bestaande uit 0 of 25% negatieve “cash flows” komt de “cash flow per tijdeenheid” als beste prioriteitsregel uit de bus. Met deze regel wordt de optimale oplossing tot ongeveer 3% benaderd. Ook wordt er steeds een aanzienlijk aantal optimale oplossingen bekomen met deze heuristiek. De “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” scoren het minst goed. De gemiddelde afwijking kan hierbij 7 à 10% bedragen. Hoewel nog steeds een degelijk aantal optimale oplossingen wordt bereikt, blijkt de betrouwbaarheid van deze regels eerder beperkt te zijn. Indien er 50 of 75% negatieve kasstromen zijn, is de performantie van onze heuristieken minder goed. De waarde van de NPV zou hier aan de basis kunnen liggen. Immers, intuïtief is duidelijk dat de NPV in deze gevallen rond nul zal schommelen. De absolute waarde van de NPV zal dus heel klein zijn. Bijgevolg resulteert een relatief kleine absolute afwijking in een relatief grote procentuele afwijking. In het geval waarbij de projecten enkel negatieve “cash flows” bevatten, is de betrouwbaarheid van onze heuristische oplossingen heel hoog. De “toekomstige cash flow 91 Een heuristische benadering voor projectplanningsproblemen met “cash flows” Conclusie per tijdeenheid” geniet hierbij de voorkeur. Opmerkelijk is dat de prioriteitsregels die slecht uit de verf komen bij weinig negatieve kasstromen – de “duur van de toekomstige activiteiten” en het “aantal toekomstige activiteiten” – nu wel goed presteren. De performantie van de “toekomstige cash flows” is hier echter aan de lage kant. De performantie van onze heuristieken op het vlak van projectduur wordt hierbij niet nagegaan. Hoewel onze heuristieken – gelet op hun eenvoud – een vrij degelijke performantie leveren, is verder onderzoek omtrent het maximaliseren van de netto actuele waarde bij projectplanning zeker vereist. Dit geldt zowel wat de optimale als de heuristische oplossingsmethodes betreft. Met de intrede van de zogenaamde “metaheuristische” oplossingsmethodes werd het probleem recentelijk vanuit een nieuwe invalshoek benaderd. Hierbij worden lokale zoekmethoden, zoals de “tabu search” en “simulated annealing”, toegepast bij het oplossen van dergelijke projectplanningsproblemen. Eventueel zou het aangewezen zijn om de eerste aanzetten tot het ontwikkelen van een oplossingsmethode, die zowel de projectduur minimaliseert als de NPV maximaliseert, verder te onderzoeken. Laten we hopen dat deze scriptie een bijdrage – hoe klein ook – heeft geleverd aan de heuristisch benadering bij het oplossen van het “RCPSPDC”-probleem. 92 Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de geraadpleegde werken LIJST VAN DE GERAADPLEEGDE WERKEN ABBASI G.Y. en ARABIAT Y.A., 2001, “A heuristic to maximize the net present value for resource-constrained project-scheduling problems”, Project Management Journal, Vol. 32, No. 2, blz. 17 – 24. ALVAREZ-VALDES R. en TAMARIT J.M., 1989, “Heuristic algorithms for resourceconstrained project scheduling: a review and emperical analysis”, Hoofdstuk uit Advances in Project Scheduling, Elsevier, Amsterdam, blz. 113 – 134. BARTUSCH M., MÖHRING R.H. en RADERMACHER F.J., 1988, “Scheduling project networks with resource constraints and time windows”, Annals of Operations Research, Vol. 16, blz. 201 – 240. BÖTTCHER J., DREXL A., KOLISCH R. en SALAWSKI F., 1999, “Project scheduling under partially renewable resource constraints”, Management Science, Vol. 45, No. 4, blz. 543 – 559. BRUCKER P., DREXL A., MÖHRING R., NEUMANN K. en PESCH E., 1999, “Resourceconstrained project scheduling: Notation, classification, models and methods”, European Journal of Operational Research, Vol. 112, No. 1, blz. 3 – 41. COOPER D.F., 1976, “Heuristics for scheduling resource-constrained projects: An experimental investigation”, Management Science, Vol. 22, No. 11, blz. 1186 – 1194. DAVIS E.W. en PATTERSON J.H., 1975, “A comparison of heuristic and optimum solutions in resource-constrained project scheduling”, Management Science, Vol. 21, No. 8, blz. 944 – 955. DEMEULEMEESTER E., VANHOUCKE M., HERROELEN W., 2003 , “A random network generator for activity-on-the-node networks”, Journal of Scheduling, Vol. 6, blz. 13 – 34. X Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de geraadpleegde werken DE REYCK B. en HERROELEN W., 1996, “On the use of the complexity index as a measure of complexity in activity networks”, European Journal of Operational Research, Vol. 91, No. 2, blz. 347 – 366. DE REYCK B. en HERROELEN W., 1999, “Complex samenspel tussen tijd-, volgorde- en hulpmiddelenbeperkingen”, Business Logistics, Vol. 4, blz. 19 – 28. DOERSCH R.H. en PATTERSON J.H., 1977, “Scheduling a project to maximize its present value: A zero-one programming approach”, Management Science, Vol. 23, No. 8, blz. 882 – 889. ELMAGHRABY S.E., 1995, “Activity nets: A guided tour through some recent developments”, European Journal of Operational Research, Vol. 82, No. 3, blz. 383 – 408. ELMAGHRABY S.E. en HERROELEN W., 1980, “On the measurement of complexity in activity networks”, European Journal of Operational Research, Vol. 5, No. 4, blz. 223 – 234. ELMAGHRABY S.E. en KAMBUROWSKI J., 1992, “The analysis of activity networks under generalized precedence relations”, Management Science, Vol. 38, No. 9, blz. 1245 – 1263. ETGAR R., SHTUB A. en LEBLANC L.J., 1997, “Scheduling projects to maximize net present value – the case of time-dependent, contingent cash flows”, European Journal of Operational Research, Vol. 96, No. 1, blz. 90 – 96. HERROELEN W., DEMEULEMEESTER E. en DE REYCK B., 1999, “A classification scheme for project scheduling problems”, Handbook on Recent Advances in Project Scheduling, Kluwer Academic Publishers, Chapter 1, blz. 1 - 26. HERROELEN W. en DE REYCK B., 1999, “Phase transitions in project scheduling”, Journal of Operational Research Society, Vol. 50, No. 2, blz. 148 –156. XI Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de geraadpleegde werken HERROELEN W., VAN DOMMELEN P. en DEMEULEMEESTER E., 1997, “Project network models with discounted cash flows a guided tour through recent developments”, European Journal of Operational Research, Vol. 100, No. 1, blz. 97 – 121. KOLISCH R. en PADMAN R., 2001, “An integrated survey of deterministic project scheduling”, Omega – The International Journal of Management Science, Vol. 29, No. 3, blz. 249 – 272. KOLISCH R., SPRECHER A. en DREXL A., 1995, “Characterization and generation of a general class of resource-constrained project scheduling problems”, Management Science, Vol. 41, No. 10, blz. 1693 – 1703. MASTOR A.A., 1970, “An experimental investigation and comparative evaluation of production line balancing techniques”, Management Science, Vol. 16, No. 11, blz. 728 – 746. ÖZDAMAR L., ULUSOY G. en BAYYIGIT M., 1998, “ A heuristic treatment of tardiness and net present value criteria in resource-constrained project scheduling”, International Journal of Physical Distribution and Logistics Management, Vol. 28, blz. 805 – 820. PADMAN R. en SMITH-DANIELS D.E., 1993, “Early-tardy cost trade-offs in resource constrained projects with cash flows: An optimizatoin-guided heuristic approach”, European Journal of Operational Research, Vol. 64, No.2, blz. 295 – 311. PASCOE T.L., 1966, “Allocation of resources “, CPM Revue Française de Recherche Opérationelle, Vol. 38, blz. 31 – 38. PATTERSON J.H., SLOWINSKI R., TALBOT F.B. en WEGLARZ J., 1990, “Computational experience with a backtracking algorithm for solving a general class of precedence and resource-constrained scheduling problems”, European Journal of Operational Research, Vol. 49, No. 1, blz. 68 – 79. PINDER J.P. en MARUCHECK A.S., 1996, “Using discounted cash flow heuristics to improve project net present value”, Journal of Operations Management, Vol. 14, No. 3, blz. 229 – 240. XII Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de geraadpleegde werken PINNELL S.S. en BUSCH J.S., 1993, “How do you measure the quality of your project management?”, PM NETwork, Vol. 7, No. 5, blz. 35 – 36. RUSSEL A.H., 1970, “Cash flows in networks”, Management Science, Vol. 16, No. 5, blz. 357 – 373. RUSSEL R.A., 1986, “A comparison of heuristics for scheduling projects with cash flows and resource restrictions”, Management Science, Vol. 32, No. 10, blz. 1291 – 1300. SLOWINSKI R., 1981, “Multiobjective network scheduling with efficient use of renewable and nonrenewable resources”, European Journal of Operational Research, Vol. 7, No. 3, blz. 265 – 273. SMITH-DANIELS D.E. en AQUILANO N.J., 1987, “Using a late-start resource-constrained project schedule to improve project net present value”, Decision Sciences, Vol. 18, No. 4, blz. 617 – 630. TALBOT F.B., 1982, “Resource-constrained project scheduling problem with time-resource trade-offs: The nonpreemptive case”, Management Science, Vol. 28, No. 10, blz. 1197 – 1210. ULUSOY G. en ÖZDAMAR L., 1995, “A heuristic scheduling algorithm for improving the duration and net present value of a project”, International Journal of Operations and Production Management, Vol. 15, No. 1, blz. 89 – 98. VANHOUCKE M., 2001, “Exact algorithms for various project scheduling problems: Nonregular measures of performance and time/cost trade-offs”, PhD Dissertation, Chapter 1, blz. 1 – 20. VANHOUCKE M. en DEMEULEMEESTER E., 2003, “The application of project scheduling techniques in a real-life environment”, Project Management Journal, Vol. 34, No. 1, blz. 30 – 42. XIII Een heuristische benadering voor projectplanningsproblemen met “cash flows” Lijst van de geraadpleegde werken VANHOUCKE M., DEMEULEMEESTER E., HERROELEN W., 2001, “On maximizing the net present value of a project under renewable resource constraints”, Management Science, Vol. 47, No. 8, blz. 1113 – 1121. TESTSET VANHOUCKE M., DEMEULEMEESTER E. en HERROELEN W., 2001, Probleemset 2 uit “On maximizing the net present value of a project under renewable resource constraints”, Management Science, Vol. 47, No. 8, blz. 1113 – 1121. CODE VOOR HET “RCPSPDC”-PROBLEEM VANHOUCKE M., november 2000. XIV Een heuristische benadering voor projectplanningsproblemen met “cash flows” Bijlage 1: Resultaten bij 75% negatieve “cash flows” BIJLAGE 1.: RESULTATEN BIJ 75% NEGATIEVE “CASH FLOWS” TABEL 1: Resultaten van de heuristieken per aantal activiteiten bij 75% negatieve “cash flows” 75% negatieve “cash flows” 10 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale oplossingen beschouwde projecten 4.17 3.96 5.09 10.34 13.75 5.17 4.99 40 49 33 14 7 32 26 2.16 1.98 3.13 8.22 11.21 3.15 2.94 159 185 153 101 73 152 148 360 360 360 360 360 360 360 38.01 37.78 37.41 44.63 49.44 36.91 38.55 0 1 0 0 0 1 0 14.62 14.40 14.44 22.31 26.33 14.48 16.12 42 50 40 47 37 41 39 359 360 360 357 358 359 358 142.49 139.11 146.18 206.43 207.28 139.81 306.05 0 0 0 0 0 0 0 51.01 50.64 56.25 90.65 95.36 53.88 140.55 12 15 8 13 15 11 11 307 310 308 305 298 310 310 20 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid 30 activiteiten "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten TABEL 2: Resultaten van de heuristieken per percentage OS bij 75% negatieve “cash flows” 75% negatieve “cash flows” OS = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. 58.54 56.83 64.56 89.34 81.92 55.67 220.08 11 16 9 2 1 10 8 % verschil NA postopt. # # optimale beschouwde oplossingen projecten 23.83 23.33 26.37 44.82 46.52 24.00 109.30 51 61 48 30 18 50 46 317 320 320 312 308 318 317 XV Een heuristische benadering voor projectplanningsproblemen met “cash flows” Bijlage 1: Resultaten bij 75% negatieve “cash flows” OS = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid 63.45 62.48 64.24 88.17 85.56 63.56 64.34 9 10 10 6 2 9 5 23.11 22.28 24.26 42.02 37.53 23.75 24.52 65 79 66 52 37 65 63 352 352 354 352 350 354 354 50.42 50.20 47.82 66.23 81.68 51.13 50.22 20 24 14 6 4 14 13 16.80 17.56 18.70 27.37 40.26 19.60 19.82 97 110 87 79 70 89 89 357 358 354 358 358 357 357 OS = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten TABEL 3: Resultaten van de heuristieken per percentage RF bij 75% negatieve “cash flows” 75% negatieve “cash flows” RF = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 82.82 82.33 91.34 120.28 93.76 84.64 271.41 3 4 4 3 3 4 3 18.23 17.91 20.81 36.69 22.42 18.65 114.65 87 99 83 86 77 85 82 270 270 270 270 270 270 270 63.32 61.10 63.06 82.96 85.87 65.83 67.13 10 11 6 6 3 6 5 25.33 24.88 25.91 37.80 40.68 27.48 28.39 51 63 51 48 34 49 51 265 266 266 262 261 266 265 46.61 47.34 42.95 66.52 85.88 41.34 46.18 11 14 9 4 1 8 8 21.17 22.26 22.85 39.20 57.29 21.91 26.46 40 44 40 17 10 41 37 250 253 253 250 247 253 253 RF = 0.50 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RF = 0.75 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid XVI Een heuristische benadering voor projectplanningsproblemen met “cash flows” Bijlage 1: Resultaten bij 75% negatieve “cash flows” RF = 1.00 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid 33.60 31.90 33.57 49.08 65.04 31.80 32.16 16 21 14 1 0 15 10 19.75 18.72 22.41 37.34 46.45 21.44 21.78 35 44 27 10 4 29 28 241 241 239 240 238 240 240 BRON: zelf gegenereerde resultaten TABEL 4: Resultaten van de heuristieken per percentage RS bij 75% negatieve “cash flows” 75% negatieve “cash flows” RS = 0 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid % verschil # optimale VOOR oplossingen postopt. % verschil NA postopt. # # optimale beschouwde oplossingen projecten 39.24 38.74 41.95 52.80 75.78 40.28 39.39 12 19 11 3 1 11 8 18.98 18.45 21.73 29.82 48.23 20.28 19.78 59 77 62 42 38 63 62 332 333 334 330 326 335 334 59.17 58.01 60.73 88.88 78.52 60.39 59.19 14 17 10 3 2 9 11 20.86 20.67 22.84 43.58 35.13 22.48 23.60 63 75 61 44 29 59 62 345 347 345 345 344 346 345 72.93 71.76 72.67 99.52 94.52 69.16 219.76 14 14 12 8 4 13 7 23.46 23.66 24.38 39.47 40.67 24.32 102.15 91 98 78 75 58 82 74 349 350 349 347 346 348 349 RS = 0.25 "cash flow" “cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid RS = 0.50 "cash flow" "cash flow” per tijdeenheid toekomstige "cash flows" duur toekomstige activiteiten aantal toekomstige activiteiten gemiddelde toekomstige "cash flow" toekomstige "cash flow" per tijdeenheid BRON: zelf gegenereerde resultaten XVII Een heuristische benadering voor projectplanningsproblemen met “cash flows”