Release Dates en Deadlines binnen Project Scheduling

Maat: px
Weergave met pagina beginnen:

Download "Release Dates en Deadlines binnen Project Scheduling"

Transcriptie

1 UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR Release Dates en Deadlines binnen Project Scheduling Masterproef voorgedragen tot het bekomen van de graad van Master of Science in de Toegepaste Economische Wetenschappen: Handelsingenieur Nicolas Cattoir onder leiding van Prof. Dr. Mario Vanhoucke

2

3 UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR Release Dates en Deadlines binnen Project Scheduling Masterproef voorgedragen tot het bekomen van de graad van Master of Science in de Toegepaste Economische Wetenschappen: Handelsingenieur Nicolas Cattoir onder leiding van Prof. Dr. Mario Vanhoucke

4

5 PERMISSION Ondergetekenden verklaren dat de inhoud van deze masterproef mag geraadpleegd en/of gereproduceerd worden, mits bronvermelding. Nicolas Cattoir

6

7 Woord Vooraf Het is mij een groot genoegen bij het voorleggen van deze verhandeling alle personen te danken die rechtstreeks of onrechtstreeks hebben bijgedragen tot de realisatie ervan. Mijn oprechte dank gaat in de eerste plaats uit naar Prof. Dr. M. Vanhoucke, onder wiens algemene leiding deze studie tot stand is gekomen. Daarenboven waren diens lessen zeer leerrijk en vormden ze een beduidende meerwaarde in mijn opleiding. Speciale dank ook aan mijn begeleider Pieter Leyman, bij wie ik in goede samenwerking steeds terecht kon voor vragen en suggesties in verband met dit onderzoek. Verder dank ik de Universiteit Gent, en meer bepaald de faculteit Economie en Bedrijfskunde, om zich gedurende vijf jaar in te zetten om mijn opleiding tot een goed einde te brengen. Tenslotte dank ik eveneens en niet in het minst mijn ouders, die mij de kans gegeven hebben deze studies te volgen en mijn vrienden die voor mij, gedurende al die tijd, een enorme steun betekend hebben. Gent, 17 Mei 2016 I

8

9 Inhoudsopgave 1. Inleiding Probleemdefinitie Multiple Resource Cumulative Scheduling Problem Weighted Earliness-Tardiness Multiple Resource Cumulative Scheduling Problem Notaties Methodiek Exacte Methode Heuristieken Schedule Representatie Schedule Generation Parallel Schedule Generation Scheme Eigenschappen Resulterende Schedules Justificatie van Activiteiten Dubbele Justificatie Prioriteitsregels Random Methode Genetisch Algoritme Uitgebreid voorbeeld Project Parameters Prioriteit Schedule Generation Genetisch Algoritme Double Schedule Generation Scheme Dubbele Justificatie Resultaten Dataset Exact method III

10 4.2.1 MRCuSP WETMRCuSP Prioriteitsregels en Multi-Pass Prioriteitsregels Multi-pass Random Methode Genetisch Algoritme GA GA GA GA Besluit Dubbele Justificatie Prioriteitslijsten en Multi-pass Random methode Genetisch Algoritme Vergelijking met Upper Bound Veranderende penalty kost voor Earliness en Tardiness Afweging van Methoden Slot Conclusie Suggesties voor Verder Onderzoek Bijlage 67 A. Chi-kwadraat B. ANOVA C. Taguchi Design D. Design of Experiments Resultaten IV

11 Lijst van gebruikte afkortingen AL CuSP DJ DSGS EDD ERD FTL GA LPT MAER MAET MRCuSP PSGS RCPSP RK SGS SPT SSGS STL TRV WETMRCuSP Activity List Cumulative Scheduling Problem Dubbele Justificatie Double Schedule Generation Scheme Earliest Due Date Earliest Release Date Finish Time List Genetisch Algoritme Longest Processing Time Minimum Available Execution Ratio Minimum Available Execution Time Multiple Resources Cumulative Scheduling Problem Parallel Schedule Generation Scheme Resource Constrained Project Scheduling Problem Random Key Schedule Generation Scheme Shortest Processing Time Serial Schedule Generation Scheme Start Time List Total Resource Violation Weighted Earliness-Tardiness Multiple Resources Cumulative Scheduling Problem V

12

13 Lijst van figuren 3.1 Initiële schedule Schedule na rechtse justificatie Finale schedule na linkse justificatie Schedule volgend uit de SSGS met MAER als prioriteitsregel Schedule volgend uit de PSGS met MAER als prioriteitsregel Schedule volgend uit de DSSG uit het genetisch algoritme Schedule na dubbele justificatie Percentage feasible van de gevonden oplossingen voor het MRCuSP Percentage gevonden oplossingen binnen de 5 minuten voor elke factor voor het WETMRCuSP Gemiddelde CPU-tijd van de gevonden oplossingen voor elke factor voor het WETMRCuSP Gemiddelde Weighted Earliness-Tariness kost voor elk experiment Totaal aantal positieve en negatieve random key waarden in de DSGS Percentage optimale oplossingen van alle methoden (y-as) op de duurtijd nodig om deze methoden op te lossen (x-as) voor de j30 dataset Gemiddelde afwijking van de optimale oplossing van alle methoden (y-as in logaritmsche schaal met een basis van 2) op de duurtijd nodig om deze methoden op te lossen (x-as) voor de j30 dataset Percentage optimale oplossingen van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j60 dataset Gemiddelde afwijking van de optimale oplossing van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j60 dataset Percentage optimale oplossingen van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j90 dataset Gemiddelde afwijking van de optimale oplossing van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j90 dataset VII

14 5.7 Percentage optimale oplossingen van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j120 dataset Gemiddelde afwijking van de optimale oplossing van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j120 dataset B.1 Multivariate test van de repeated measures ANOVA B.2 Pairwise comparison B.3 Pairwise comparison B.4 Pairwise comparison B.5 Pairwise comparison B.6 Pairwise comparison B.7 Pairwise comparison D.1 DoE van GA D.2 DoE van GA D.3 DoE van GA3a D.4 DoE van GA3b D.5 DoE van GA3c D.6 DoE van GA VIII

15 Lijst van tabellen 1.1 Vergelijking van de verschillende problemen Overzicht van notaties voor het MRCuSP Overzicht van notaties voor het WETMRCuSP Overzicht van notaties van de Dubbele Justificatie Projectparameters van het voorbeeld Overzicht van Prioriteitsregels Overzicht van extra crossovers Project Parameters Project Parameters: Vervolg Percentage gevonden oplossingen vooor het MRCuSP binnen 5 minuten Gemiddelde CPU-tijd van de gevonden oplossingen voor het MRCuSP Vergelijking percentage gevonden oplossingen in 30 s en 5 min voor het WET- MRCuSP Percentage optimale oplossingen van de prioriteitsregels voor het MRCuSP Percentage optimale oplossingen van de prioriteitsregels voor het WETMRCuSP Gemiddelde afwijking van de optimale oplossing door de prioriteitsregels voor het WETMRCuSP Percentage beste oplossingen voor het MRCuSP Percentage beste oplossingen voor het WETMRCuSP Gemiddelde CPU-tijd nodig voor het oplossen van de prioriteitslijsten Percentage optimale oplossingen door de multi-pass methode voor het MRCuSP Percentage optimale oplossingen door de multi-pass methode voor het WET- MRCuSP Resultaten random methode voor het MRCuSP Resultaten random methode voor het WETMRCuSP Overzicht van uitgevoerde Genetische Algoritmes Beste parameters voor GA Vergelijking van de resutaten van de verschillende Genetische Algoritmes IX

16 4.17 Dubbele justificatie op de resultaten van de prioriteitslijsten vooor het MRCuSP Dubbele justificatie op de resultaten van de prioriteitslijsten voor het WET- MRCuSP Dubbele justificatie op de resultaten van de multi-pass methode voor het MR- CuSP Dubbele justificatie op de resultaten van de multi-pass methode voor het WETMRCuSP CPU-tijd nodig voor de multi-pass met en zonder dubbele justificatie Effect van dubbele justificatie op de random methode voor het MRCuSP Effect van dubbele justificatie op de random methode voor het WETMRCuSP CPU-tijd voor de dubbele justificatie Effect van de dubbele justificatie op het genetisch algortime Genetisch algoritme vergeleken met upper bound van Gurobi na 30 seconden voor dataset j Genetisch algoritme vergeleken met upper bound van Gurobi na 30 seconden voor dataset j Genetisch algoritme vergeleken met upper bound van Gurobi na 30 seconden voor dataset j Genetisch algoritme vergeleken met upper bound van Gurobi na 30 seconden voor dataset j Opstelling van de experimenten A.1 Percentage optimale oplossingen door prioriteitsregels voor het WETMRCuSP. 68 A.2 Percentage gevonden oplossingen door Gurobi voor het WETMRCuSP A.3 Reëel aantal gevonden oplossingen door Gurobi voor het WETMRCuSP A.4 n ij voor de Chi-kwadraat A.5 n ij voor de Chi-kwadraat A.6 Berekening van de de Chi-kwadraat waarde C.1 Taguchi Design X

17 Hoofdstuk 1 Inleiding Project scheduling is een onderdeel van project management dat zich bezighoudt met het vinden van een zo optimaal mogelijke project planning ( schedule ), gegeven een specifiek doel ( objective ) en rekening houdend met bepaalde beperkingen ( constraints ). De beperkingen waaraan de gevonden optimale schedules moeten voldoen, hebben vaak betrekking op de schaarsheid van de middelen ( resources ) zoals het budget, de beschikbare tijd om de taak uit te voeren en/of de prioriteiten die bepaalde taken hebben ten opzichte van andere. Het scheduling probleem wordt cumulatief of disjunctief genoemd naargelang een resource al dan niet meerdere activiteiten in parallel kan uitvoeren (wel te verstaan zolang de resource capaciteit niet wordt overschreden). Een vaak gebruikt doel binnen project scheduling is het minimaliseren van de totale duurtijd ( makespan ) van het project. Sommige beperkingen kunnen hun limiet absoluut niet overschrijden ( hard constraints ), andere kunnen hun limiet wel overschrijden, mits een extra kost ( penalty ) in de objective ( soft constraints ). Voor een reëel project kan een optimaal schedule gegenereerd worden, waarbij de objective een minimale of maximale waarde aanneemt. Dit optimaal schedule wordt gegenereerd via modellen die in project scheduling worden toegepast. Het resulterende optimaal schedule kan vervolgens gebruikt worden tijdens de design fase, de uitvoeringsfase en de opvolgingsfase van de projecten. Een basisvoorwaarde voor het zoeken naar optimale schedules, is een juiste beschrijving of definitie van het onderliggende project aan de hand van goed gedefinieerde projectparameters. Deze kunnen worden verkregen door het toepassen van een Work Breakdown Structure (WBS) of de Delphi methode. Omdat binnen de optimale schedules de activiteiten meestal zeer dicht tegen elkaar gepland worden met betrekking tot de tijd of de middelen, is het belang van het juist schatten van de projectparameters enorm. Om een beeld te krijgen van het effect van niet correct geschatte projectparameters, kan het vaak ook interessant zijn om te kijken hoe het resulterende schedule en de objective veranderen indien één of meerdere projectparameters wijzigen. Het belang van project scheduling is de laatste decennia strek toegenomen. Dit kan worden opgemerkt door het aantal artikels dat gepubliceerd wordt met als trefwoord Project Scheduling. In de praktijk wordt project scheduling steeds belangrijker voor het management van steeds complexer wordende business-, bouw- en fabricageprojecten (Adelsberger en Kanet (1991); Demeulemeester en Herroelen (2006); Tobias (1991)). 1

18 De kern van project scheduling wordt bestudeerd binnen het Resource-Constrained Project Scheduling Problem (RCPSP). Rekening houdend met de doelstellingen van het project management, gebeurt de scheduling van de project activiteiten daarin op basis van volgorde relaties ( precedence relaties ) die vooraf tussen de activiteiten worden gedefinieerd. Bovendien wordt rekening gehouden met meerdere schaarse middelen waaraan vooraf een bepaalde capaciteit wordt toegekend. Dit probleem werd de laatste jaren uitvoerig onderzocht, waardoor er reeds zeer competitieve exacte en heurisitische methoden zijn ontwikkeld. Een frequent gemaakte opmerking is echter dat de assumpties die gelden voor het RCPSP vaak te simplistisch zijn voor vele reële applicaties. Als gevolg hiervan is men vele varianten op het RCPSP gaan ontwikkelen. Voor een uitgebreid overzicht wordt verwezen naar het werkt van Hartmann en Briskorn (2010). Een relevante uitbreiding van het RCPSP, is het toevoegen van zogenaamde release dates en deadlines voor elke activiteit binnen het project. Een release date wordt gedefinieerd als het vroegste tijdstip waarop een activiteit moet starten terwijl een deadline het allerlaatste tijdstip is waarop een activiteit mag eindigen. Een interessante variante hierop is het introduceren van due dates en ready dates voor elke activiteit. Een due date (ready date) is een bepaald tijdstip binnen het project waarop men de activiteit probeert te beëindigen (starten). In tegenstelling tot een deadline (release date), kan een due date (ready date) wel overschreden worden. Indien dit zich voordoet, zal er wel een bepaalde penalty aan de objective function worden toegevoegd (Ballestin, Valls en Quintanilla (2006); Brânzei, Ferrari, Fragnelli en Tijs (2002); Chiu en Tsai (2002); Neumann, Schwindt en Zimmermann (2002); Özdamar, Ulusoy en Bayyigit (1998); Vanhoucke, Demeulemeester en Herroelen (2001)). De eerste paper die release dates en deadlines introduceerde in project scheduling is het werk van Baptiste, Le Pape en Nuijten (1999). In dit werk werd de definitie van het zogenaamde Cumulative Scheduling Problem (CuSP) formeel vastgelegd als een set van n activiteiten N = {1,..., n} die niet onderbroken kunnen worden ( non-preemptive activities ) en gescheduled moeten worden op een resource met capaciteit C. Elke activiteit i heeft hierbij een release date r i, een duurtijd p i en een deadline d i. Daarenboven heeft elke activiteit een constante hoeveelheid c i van de resource nodig, gedurende zijn hele duurtijd. Onder deze veronderstellingen wordt aangetoond dat men op basis van drie condities, die binnen een competitieve tijd berekend kunnen worden, kan bepalen of het probleem al dan niet oplosbaar ( feasible ) is. Merk op dat in dit probleem slechts één resource en geen precedence relaties worden gebruikt. Het CuSP is dus niet exact een uitbreiding van het RCPSP. Release dates, ready dates, deadlines en due dates binnen het RCPSP werden bestudeerd door Drezet en Billaut (2008), Kis (2005), Kis (2006), Klein, Scholl et al. (1998) en Klein en Scholl (2000). Deze laatste auteurs gebruiken deze dates vooral in combinatie met andere variaties van het RCPSP. In deze thesis vertrekken we vanuit de definitie van het CuSP van Baptiste et al. (1999). Dit probleem is een uitbreiding van zowel het one-machine problem (C = 1, c i = 1) als van het m-machine problem (C = m, c i = 1). Het zoeken naar een feasible oplossing waarbij zowel de capaciteit van de resources als de release dates en deadlines worden gerespecteerd, is in dat geval sterk NP-compleet. Dit CuSP zal eerst en vooral worden uitgebreid naar meerdere resources. Daarnaast zal een tweede variant de release dates en deadlines vervangen door respectievelijk ready dates en due dates (i.e. 2

19 deze dates worden soft constraints). Deze laatste uitbreidingen zullen het probleem nog moeilijker maken om op te lossen, waardoor het gebruik van heuristieken aangeraden is. Voor de duidelijkheid in het vervolg van de thesis zullen beide problemen respectievelijk het Multiple Resources Cumulative Scheduling Problem (MRCuSP) en het Weighted Earliness-Tardiness Multiple Resources Cumulative Scheduling Problem (WETMRCuSP) genoemd worden voor problemen met de hard, respectievelijk soft constraints. Volgende tabel 1.1 laat het verschil in de definities van deze problemen zien. RCPSP CuSP MRCuSP WETMRCuSP Precedence Relaties V X X X Renewable Resources 1 = Release Dates & Deadlines X V V X Ready Dates & Due Dates X X X V Tab. 1.1: Vergelijking van de verschillende problemen. De studie van dit soort scheduling problemen lijkt ons zeer zinvol. Men kan zich voorstellen dat in de praktijk dergelijk WETMRCuSP voorkomt indien een project scheduler geconfronteerd wordt met een beperkt aantal middelen om een groot aantal activiteiten uit te voeren. Indien een activiteit in dat geval voor zijn release date zou beginnen, kan de project scheduler geconfronteerd worden met extra kosten. Dit is mogelijk indien de activiteit niet met dezelfde kwaliteit uitgevoerd kan worden omdat er op dat ogenblik nog onvoldoende informatie beschikbaar is. Anderzijds kan binnen een productieomgeving het product dat ontwikkeld wordt bij een vroegere starttijd ook een vroegere vervaldatum hebben, waardoor het product een lagere waarde krijgt. Een andere toepassing is de situatie waarin een bepaalde specifieke resource slechts beschikbaar zal zijn vanaf een bepaald punt in de tijd. Dit kan men benaderen door deze niet op te nemen als resource in het model, maar de activiteiten die deze resource nodig hebben een ready date te geven gelijk aan het punt in de tijd waarop de resource vrijkomt. Door vervolgens een zeer hoge penalty toe te kennen aan een overschrijding van de ready date, kan een schedule gevonden worden dat in deze situatie gebruikt kan worden. We kunnen ons anderzijds ook de kost voorstellen indien een activiteit zijn due date overschrijdt. Dit kan leiden tot klantontevredenheid, verlies van reputatie en winst, boetes of verlies van goodwill. De kosten van het beginnen vóór de ready date ( earliness ) en het eindigen ná de due date ( tardiness ) worden tegen elkaar afgewogen en vervolgens ook afgewogen tegen een verbetering van de makespan. Op deze manier kunnen de penalty s voor earliness en tardiness worden bepaald. Waar de term earliness in andere papers (e.g. Vanhoucke et al. (2001)) wordt gedefinieerd als max(0, duedate f inisht ime), zal in deze thesis earliness worden gedefinieerd als max(0, readydate startt ime). In deze thesis zullen we de efficiëntie en effectiviteit van verschillende (meta)heuristieken voor het MRCuSP en WETMRCuSP testen. Dit zal gebeuren door verschillende oplossingensmethoden, die op het RCPSP hun waarde hebben bewezen, te transformeren naar methoden die op het MRCuSP en WETMRCuSP toegepast kunnen worden. Vervolgens zullen deze methoden op een dataset uit- 3

20 gevoerd worden, waarna de resultaten hiervan vergeleken worden met de resultaten die bekomen werden door het toepassen van de exacte methode. De oplossingsmethoden die besproken worden zijn: prioriteitslijsten, de multi-pass, het genetisch algoritme en de dubbele justificatie. De thesis is als volgt onderverdeeld. In hoofdstuk 2 wordt het MRCuSP en WETMRCuSP mathematisch beschreven en verder uitgelegd. In hoofdstuk 3 worden de verschillende oplossingsmethoden beschreven, waarna de resultaten hiervan in hoofdstuk 4 uitgezet worden. Vervolgens zullen in hoofdstuk 5 de resultaten van de verschillende methoden met elkaar worden vergeleken. Tenslotte volgt in hoofdstuk 6 een conclusie en worden suggesties voor verder onderzoek gegeven. 4

21 Hoofdstuk 2 Probleemdefinitie Het MRCuSP en WETMRCuSP zullen we definiëren aan de hand van dezelfde projectparameters. Deze parameters beschrijven steeds één enkel project dat bestaat uit een set N = {1,..., n} van activiteiten met een vooraf bepaalde duur p i die niet onderbroken kunnen worden ( non-preemptable durations ). Elke activiteit i heeft een bepaalde hoeveelheid r ik van een bepaalde type resource k nodig gedurende de hele duur p i van deze activiteit. Er is echter in elke periode slechts een bepaalde constante hoeveelheid R k van elk type resource k beschikbaar ( renewable resources ). Hierdoor kan de situatie optreden waarbij een activiteit niet op zijn vroegst mogelijke starttijd kan worden ingepland. Alle projectparameters worden verondersteld positieve integers te zijn. 2.1 Multiple Resource Cumulative Scheduling Problem Bijkomend aan de voorgaande projectparameters zullen bij de definitie van het MRCuSP release dates en deadlines toegevoegd worden. Dit zijn hard constraints, wat wil zeggen dat deze data niet overschreden mogen worden. Indien er geen oplossing gevonden wordt waaraan alle hard constraints voldoen, zal de probleeminstantie als infeasible aanzien worden. Het hoofddoel is dus gericht op het vinden van een feasible oplossing. Als er minstens één feasible oplossing bestaat, zal de feasible oplossing met de laagste makespan, de optimale oplossing zijn. Mathematisch kan dit als volgt worden uitgedrukt: 5

22 Notatie Definitie p i Duurtijd van activiteit i r i Release Date van activiteit i d i Deadline van activiteit i F i Eindtijd van activiteit i r ik Resource-vraag van activiteit i voor resource type k R k Beschikbaarheid van resource type k C max Makespan (maximale eindtijd van het project) N Set van activiteiten (i N, i = 1,..., n) K Set van resources (k K, k = 1,..., K ) D Project deadline S(τ) Set van activiteiten die wordt uitgevoerd binnen ]τ-1, τ] Tab. 2.1: Overzicht van notaties voor het MRCuSP. Minimize C max (2.1) Subject to: C max F i, i N (2.2) F i p i + r i, i N (2.3) F i d i, i N (2.4) r ik R kt, k K; τ = 1,..., D (2.5) i S(τ) De objective function (2.1) minimaliseert de makespan die in (2.2) berekend wordt. Vergelijkingen (2.3) en (2.4) zijn binnen het MRCuSP de hard constraints voor de release dates en de deadlines. Constraint (2.5) zorgt tenslotte voor geen overschrijding van de resourcelimieten. 2.2 Weighted Earliness-Tardiness Multiple Resource Cumulative Scheduling Problem Bij het WETMRCuSP zullen er in plaats van release dates en deadlines, aan bovenstaande projectparameters ready dates en due dates toegevoegd worden. Dit zijn, in tegenstelling tot de release dates en deadlines bij het MRCuSP, soft constraints. Dit wil zeggen dat deze constraints mogen overschreden worden, hoewel dit gepenaliseerd wordt in de objective function. Voor dit probleem is het intuïtief duidelijk dat er voor elke probleeminstantie een oplossing bestaat die feasible is (zolang r ik R k, i N; k K). Het doel is hier dan ook gericht op het minimaliseren van de objective function. Deze objective function zal een afweging zijn tussen enerzijds de totale makespan en anderzijds de gewogen earliness en tardiness. Mathematisch kan dit als volgt worden uitgedrukt: 6

23 Notatie Definitie p i Duurtijd van activiteit i r i Ready Date van activiteit i d i Due date van activiteit i F i Eindtijd van activiteit i r ik Resource-vraag van activiteit i voor resource type k E i Earliness van activiteit i e Kost per earliness T i Tardiness van activiteit i t Kost per tardiness R k Beschikbaarheid van resource type k C max Makespan (maximale eindtijd) N Set van activiteiten (i N, i = 1,..., n) K Set van resources (k K, k = 1,..., K ) D Project deadline S(τ) Set van activiteiten die wordt uitgevoerd binnen ]τ-1, τ] Tab. 2.2: Overzicht van notaties voor het WETMRCuSP. Minimize C max + e Subject to: n E i + t i=1 n T i (2.6) i=1 C max F i, i N (2.7) F i p i + r i + E i, i N (2.8) F i d i + T i, i N (2.9) r ik R kt, k K; τ = 1,..., D (2.10) i S(τ) De objective function (2.6) minimaliseert de makespan, waar bij in het WETMRCuSP nog de gewogen earliness en tardiness wordt bijgeteld. Constraint (2.7) zorgt voor de berekening van de makespan. Aan beide vergelijkingen (2.8) en (2.9) is ten opzichte van het MRCuSP een factor toegevoegd voor het berekenen van de earliness en tardiness. Constraint (2.10) zorgt er ook hier voor dat de resourcelimieten niet overschreden worden. 2.3 Notaties Door gebruik te maken van de notatie van Brucker, Drexl, Möhring, Neumann en Pesch (1999) en Graham, Lawler, Lenstra en Kan (1979) kunnen beide problemen als volgt genoteerd worden: P S res, r i, d i C max (2.11) P S res, r i, d i n n C max + e E i + t T i (2.12) i=1 i=1 7

24 Op deze manier wordt er echter geen rekening gehouden met het verschil tussen release dates en ready dates en het verschil tussen deadlines en due dates. Volgens Herroelen, Demeulemeester en De Reyck (2001) kan het MRCuSP en WETMRCuSP ook op volgende manier worden weergegeven: m, 1 ρ j, δ j C max (2.13) m, 1 ρ j, δ j multi (2.14) Er wordt bij deze notatie echter ook geen rekening gehouden met het verschil tussen release dates en ready dates en het verschil tussen deadlines en due dates. 8

25 Hoofdstuk 3 Methodiek Essentieel bij het verdere onderzoek is een duidelijk onderscheid te maken tussen optimale procedures en heuristieken. De optimale procedures zijn algoritmes die steeds zullen leiden naar een optimale oplossing. Het grote nadeel van deze methodes is dat de tijd die nodig is om het algoritme te doorlopen gewoonlijk heel lang is (T (n) = O(M n ) i.e. exponential time algorithm). Heuristieken zijn, in tegensteling tot de optimale procedures, sneller maar minder accuraat. Bij het gebruiken van een heuristiek kan men niet weten of deze oplossing al dan niet optimaal is. In deze thesis zullen we de efficiëntie en effectiviteit van verschillende (meta)heuristieken voor het MRCuSP en WETMRCuSP testen. Dit zal gebeuren door verschillende oplossingensmethoden, die op het RCPSP hun waarde hebben bewezen, om te zetten naar methoden die op het MRCuSP en WETMRCuSP toegepast kunnen worden. Vervolgens zullen deze methoden op een dataset uitgevoerd worden, waarna de resultaten hiervan vergeleken worden met de resultaten die bekomen werden door het toepassen van de exacte methode. De oplossingsmethoden die besproken worden zijn: prioriteitslijsten, de multi-pass, het genetisch algoritme en de dubbele justificatie. 3.1 Exacte Methode Om de efficiëntie en de effectiviteit van de gebruikte heuristieken te meten, zal er op de dataset eerst een exacte methode worden toegepast. Hiervoor wordt gebruik gemaakt van het commercieel softwarepakket Gurobi. Deze software is een optimalisatie oplosser voor vele verschillende probleemtypes. Het MRCuSP en WETMRCuSP zullen in Gurobi gemodelleerd worden door deze problemen te definiëren als integer programming problems. Gurobi zal voor het oplossen van deze problemen gebruikmaken van de Branch-and-Bound methode, waarbij de relaxatie via linear programming wordt berekend. De integer programming problemen kunnen de laatste jaren veel efficiënter opgelost worden door het gebruik van enkele snel opgeloste verbeteringen. Hiervan maakt Gurobi gebruik door het toepassen van de presolve, de cutting planes, de heuristics en het parallelism. Doordat bij de branch-and-bound methode verschillende nodes binnen de MIP search tree onafhankelijk van elkaar kunnen worden berekend, kan een computer met meerdere cores deze verschillende nodes in parallel verwerken. Voor methodes met een groot oplossingsgebied, wat voor het MRCuSP en WETMRCuSP het geval is, kan de efficiëntie van het oplossen sterk verbeterd worden. 9

26 Of deze parallelliteit ook mogelijk is voor de heuristieken die berekend zullen worden, valt buiten het bestek van deze thesis en zal verder niet meer besproken worden, noch zal hier rekening mee gehouden worden bij het vergelijken van de efficiëntie tussen de verschillende oplossingsmethoden. Voor meer uitleg over de presolve, de cutting planes, de heuristics, het parallelism en de branchand-bound methode wordt verwezen naar de handleiding van Gurobi (Optimization (2014)). 3.2 Heuristieken Binnen de klasse van de heuristieken kan een onderscheid gemaakt worden tussen de standaard heuristieken, de meta-heuristieken en de hyper-heuristieken. In deze thesis zal er gewerkt worden met standaard heuristieken en meta-heuristieken. Voor een goede definiëring van en vergelijking tussen deze 3 klassen wordt verwezen naar Ryser-Welch en Miller (2014). Eerst wordt de representatie van de schedules besproken. Daarna volgt meer uitleg over de schedule generation en de justificatie van activiteiten en schedules. Tenslotte wordt het genetisch algoritme besproken, waarna een uitgebreid voorbeeld met 5 activiteiten meer duidelijkheid tracht te brengen over de gebruikte methoden Schedule Representatie Een schedule representatie is een manier om een schedule voor te stellen op basis van een lijst. Indien deze lijst een prioriteit van activiteiten aangeeft, zal er een schedule generation scheme (zie 3.2.2) noodzakelijk zijn om deze lijst van prioriteiten om te zetten in een schedule. Binnen deze thesis wordt er gebruik gemaakt van drie soorten representaties: Finish Time List/Start Time List representatie, Activity List representatie en de Random Key representatie. Finish/Start Time List Bij de Finish Time list (FTL) (Start Time list (STL)) representatie zal elke activiteit overeenstemmen met een index in de lijst. De waarde die aan een index in deze lijst wordt gegeven, stelt de eindtijd (starttijd) voor waarop deze activiteit eindigt (begint). Door informatie te hebben over dit tijdstip, kan gemakkelijk een volledig schedule worden opgesteld. Activity List De Activity List (AL) representatie zal aan elke index een activiteitsnummer toekennen. Een activiteit met een lagere index heeft hierbij prioriteit op een activiteit met een hogere index. Om deze representatie om te zetten naar een volledig schedule, zal een schedule generation scheme nodig zijn. Dit zal de Activity List omzetten naar een Finish of Start Time List. Random Key Bij de Random key (RK) representatie zal, net zoals bij de Finish Time List representatie, elke activiteit overeenstemmen met een index in de lijst. Vervolgens wordt via een bepaalde regel of 10

27 op willekeurige basis een waarde toegekend aan elke index. De activiteit waarbij de index met de hoogste (laagste) waarde behoort, zal dan prioriteit krijgen op de andere activiteiten. De activiteit waarbij de index met de tweede hoogste (laagste) waarde hoort, krijgt de tweede prioriteit, etc. Ook hier is er nood aan een schedule generation scheme om deze representatie om te zetten in een Finish of Start Time List Schedule Generation Een schedule generation scheme (SGS) legt een manier vast waarop men een feasible schedule probeert te construeren. Hierbij wordt gebruik gemaakt van een bepaalde prioriteit van de activiteiten zoals het geval is bij een Activity List of Random Key representatie. Binnen de literatuur van het RCPSP worden er twee schedule generation schemes beschreven. Enerzijds hebben we het serial schedule generation scheme (SSGS), anderzijds het parallel schedule generation scheme (PSGS). Serial Schedule Generation Scheme Het SSGS scant de prioriteit van de activiteiten en selecteert in iedere fase j = 1,..., J de volgende activiteit uit de prioriteitslijst om deze op zijn vroegst mogelijke tijd te laten beginnen, rekening houdend met de constraints. Hiervoor worden twee sets gebruikt, de scheduled set (S), waarin de activiteiten komen die al ingepland zijn en de decision set (D), die alle activiteiten bevat die nog gescheduled moeten worden. Binnen het RCPSP werd deze decision set bepaald door alle activiteiten waarvan de predecessors reeds gescheduled waren. Omdat er zowel in het MRCuSP als het WETMRCuSP geen predecessors aanwezig zijn, zal deze decision set alle activiteiten bevatten die niet in de scheduled set aanwezig zijn. Beide sets zijn dus complementair aan elkaar voor deze problemen. Voor het MRCuSP ziet dit er mathematisch als volgt uit: Initialisatie: S 0 = RC k = R k = {10} Voor g = 1 tot n, doe: Bereken D g, Ϝ g, RC k Selecteer activiteit j D g op basis van AL/RK T j = {t r j (Ϝ g [r j, d j p j ]) r jk RC k (τ), k K, τ [t, t + p j [} Als T j = : Stop algoritme, probleem infeasible Anders F j = min(t j ) + p j S g = S g 1 {j} 11

28 Waarbij: A(t) = {j J t [F j p j, F j [} Ϝ g = {F j j S g 1 } D g = {j J \ S g 1 } RC k = R k j A(t) Het SSGS kan ook vertrekken vanaf de deadlines, in plaats van vanaf de release dates. Op deze manier zal het resulterende schedule rechts-gejustificeerd zijn in plaats van links-gejustificeerd (voor meer uitleg over de justificatie van schedules en activiteiten zie en 3.2.6). Men bekomt dit door volgende aanpassingen: Waarbij: T j = {t d j (ST g [r j + p j, d j ]) r jk RC k (τ), k K, τ [t p j, t[} F j = max(t j ) ST g = {F j p j j S g 1 } Voor het WETMRCuSP vervangen we volgende formule: T j = {t r j (Ϝ g [r j, + [) r jk RC k (τ), k K, τ [t, t + p j [} Hierdoor zal T j = niet meer mogelijk zijn, waardoor er dus steeds een feasible oplossing gevonden kan worden. Ook hierbij kunnen volgende veranderingen doorgevoerd worden om het schedule rechts-gejustificeerd te maken: Waarbij: T j = {t d j (ST g ], d j ]) r jk RC k (τ), k K, τ [t p j, t[} F j = max(t j ) ST g = {F j p j j S g 1 } Door deze aanpassing en door het feit dat de ready dates en due dates soft constraints zijn, zullen de resulterende schedules niet dezelfde eigenschappen hebben als bij het toepassen van het SSGS bij het MRCuSP of bij het RCPSP (Zie Eigenschappen Resulterende Schedules) Parallel Schedule Generation Scheme Het PSGS scant het tijdsinterval van het project (in plaats van de prioriteitslijst in het SSGS) en plant activiteiten in op een zo vroeg mogelijk tijdstip. Indien er meedere activiteiten op eenzelfde tijdstip gepland kunnen worden, zal de prioriteitslijst geraadpleegd worden. Elke fase in deze methode wordt geassocieerd met één van deze bepaalde tijdstippen binnen de planning. Op basis van dit tijdstijd kan men dan de completed set (C), de active set (A) en de decision set (D) berekenen. De decision set is hier niet op dezelfde manier gedefinieerd als bij het SSGS. Bij het 12 r jk

29 PSGS zal de decision set namelijk rekening houden met de resources die overblijven op het tijdstip. Voor het MRCuSP ziet dit er mathematisch als volgt uit: Initializatie: g = 0 t 0 = 0 A 0 = C 0 = RC k (0) = R k Terwijl A g C g < n, doe: g := g + 1 T g = {t {F j j A g 1 } {r j j J \ [A g 1 C g 1 ]} t > t g 1 } Als T g = : Stop algoritme, probleem infeasible t g = min(t g ) Bereken C g, A g, RC k (t g ), D g Terwijl D g, doe: Selecteer activiteit j D g op basis van AL/RK F j = t g + p j Bereken A g, RC k (t g ), D g Waarbij: C g = {j J F j t g } A g = A(t g ) = {j J F j p j t g < F j } D g = {j J \ (C g A g ) r j t g d j p j r jk RC k (τ), k K, τ [t g, t g + p j [} RC k (t) = R k j A(t) r jk Ook deze methode kan vertrekken vanaf de deadlines, in plaats van vanaf de release dates. Hierdoor zal het resulterende schedule rechts-gejustificeerd zijn in plaats van links-gejustificeerd (zie en 3.2.6). Dit kan door volgende aanpassingen: t 0 = + T g = {t {F j p j j A g } {d j j J \ [A g C g ]} t < t g 1 } t g = max(t g ) D g = {j J \ (C g A g ) r j + p j t g d j r jk RC k (τ), k K, τ [t g p j, t g [} 13

30 Voor het WETMRCuSP wordt enkel D g in het basismodel vervangen door: D g = {j J \ (C g A g ) r j t g r jk RC k (τ), k K, τ [t g, t g + p j [} Hierdoor zullen alle activiteiten voorbij hun due date gescheduled kunnen worden, waardoor het algoritme altijd eerst uit de while loop zal breken, voordat T g een lege verzameling zal zijn. Door volgende aanpassingen kan men dit schedule rechts-justificeren: t 0 = + T g = {t {F j p j j A g } {d j j J \ [A g C g ]} t < t g 1 } t g = max(t g ) D g = {j J \ (C g A g ) t g d j r jk RC k (τ), k K, τ [t g p j, t g [} Ook hier zullen door deze aanpassing en doordat de ready dates en due dates soft constraints zijn, de eigenschappen van de resulterende schedules niet hetzelfde zijn als bij het PSGS bij het MRCuSP of RCPSP Eigenschappen Resulterende Schedules Bij het RCPSP resulteren beide schedule generation methoden in een verschillend type schedule. Het serial SGS zal een active schedule produceren, terwijl het parallel SGS een non-delay schedule zal genereren (Kolisch (1996)). Om het verschil tussen deze te begrijpen, hebben we de definitie van een local en global left shift nodig van Kolisch (1996). Veronderstel dat er een feasible schedule bestaat S = (F T 1,..., F T j,..., F T J ), waarbij we de activiteit j naar een lagere finish time verplaatsen, i.e. we left-shiften de activiteit j van F T j naar F T j waarbij F T j < F T j. Vervolgens bestaat er een intermediate schedule S = (F T 1,..., F T j,..., F T J) waarbij F T j < F T j < F T j. Als het resulterende schedule S en alle intermediate schedules feasible zijn, hebben we een local left shift uitgevoerd. Een global left shift is uitgevoerd als het resulterende schedule feasible is, maar minstens één van de intermediate schedules is niet feasible. Kolisch (1996) definieert een actief schedule als een feasible schedule waarbij geen enkele activiteit een local of global left shift kan ondergaan. Een non-delay schedule wordt gedefinieerd als een feasible schedule waarbij geen enkele sub-activiteit van het corresponderende unit-time duration schedule (i.e. een schedule waar elke activiteit j met duration d j, wordt opgesplitst in d j sub-activiteiten met duration 1) een local of global left shift kan ondergaan. Deze definities gelden ook voor het MRCuSP door gebruik te maken van de aangepaste SGS methoden in en Voor deze methoden kan op dezelfde manier als in Kolisch (1996) bewezen worden dat een SSGS een active schedule en een PSGS een non-delay schedule oplevert. Ook bestaat de mogelijkheid, net zoals voor het RCPSP, dat de optimale oplossing van een regular measure of performance zich niet in de set van non-delayed schedules bevindt, maar wel steeds aanwezig zal zijn in de set van active schedules. Een regular measure of performance is een functie die niet kan verlagen door een stijging van één of meerdere completion times (French (1982)). Een bekend voorbeeld hiervan is de makespan. De set van non-delayed schedules is ook hier een deelverzameling van de active schedules (Sprecher, Kolisch en Drexl (1995)). 14

31 Deze definities kunnen echter niet worden toegepast op het WETMRCuSP, daar de ready dates en due dates soft constraints zijn. Deze constraints kunnen overschreden worden, waardoor het steeds mogelijk is een feasible schedule te vinden waarbij een activiteit een local of global left shift kan ondergaan. Om toch gelijkaardige schedules te verkrijgen, beschouwen we de ready dates als release dates voor de links-gejustificeerde schedules en de due dates als deadlines voor de rechtsgejustificeeerde schedules. Het WETMRCuSP heeft geen regular measure of performance waardoor de mogelijkheid bestaat dat de optimale oplossing zich niet bevindt in de active schedules (dit kan opgemerkt worden in het optimaal schedule in 3.3 Uitgebreid Voorbeeld). Een oplossing voor dit probleem is het links en rechts justificeren van activiteiten, wat besproken wordt in volgend onderdeel Justificatie van Activiteiten Er werd reeds gesproken over links- en rechts-gejustificeerde schedules. Met een links-gejustificeerd schedule wordt een feasible schedule aangeduid waarbij de activiteiten zoveel mogelijk naar links, i.e. zo vroeg mogelijk in de tijd worden gescheduled. Met een rechts-gejustificeerd schedule, een feasible schedule waarbij de activiteiten zo laat mogelijk worden gescheduled, rekening houdend met de makespan die gevonden werd bij het links-gejustificeerde schedule. Opnieuw zal er zich bij het WETMRCuSP een probleem vormen dat er steeds een feasible oplossing gevonden kan worden die meer links of meer rechts gescheduled kan worden. Daarom zal opnieuw de ready date, respectievelijk de due date, als een hard constraint gebruikt worden bij links, respectievelijk rechts justificeren van activiteiten. Terugkomend op het feit dat het mogelijk is dat de active schedules de optimale oplossing van het WETMRCuSP niet bevatten, kan men toch een verzameling beschrijven waarin de optimale oplossing steeds aanwezig is. Dit is een verzameling waarbij elke activiteit een tweede dimensie (na de prioriteit) meekrijgt, die aangeeft of deze activiteit links-gejustificeerd of rechts-gejustificeerd gescheduled wordt. Men gaat dus niet kijken of een schedule in zijn geheel zo vroeg (laat) mogelijk gescheduled wordt, maar enkel of de activiteit zelf zo vroeg (laat) mogelijk gescheduled wordt. Theorema 1: De verzameling van schedules die gegenereerd worden door het SSGS, waarbij de activiteiten in een eerste dimensie een prioriteit krijgen en in een tweede dimensie een binaire indicatie krijgen die beslist of de activiteit vanaf zijn ready date of omgekeerd vanaf zijn due date wordt gescheduled, bevat altijd de optimale oplossing van een probleeminstantie van het WETMRCuSP. Bewijs 1: In een optimaal schedule zal een activiteit altijd 1 van volgende 4 eigenschappen bezitten: Beginnen op een ready date Beginnen op de finish time van een andere activiteit Eindigen op de due date Eindigen op de start time van een andere activiteit 15

32 In de beschreven verzameling voldoen de activiteiten aan deze eigenschappen: Door het ontwikkelde SSGS voor het WETMRCuSP te bekijken (zie 3.2.2), zien we dat in de reguliere methode elke activiteit één van de eerste twee eigenschappen zal bezitten. De activiteiten gescheduled via de omgekeerde methode zullen aan één van laatste twee eigenschappen voldoen. We kunnen dus eerst en vooral besluiten dat een combinatie van een prioriteit voor elke activiteit, een binaire indicatie voor elke activiteit en het SSGS samen met de omgekeerde variant voldoende zijn om een schedule te genereren waarbij de activiteiten aan bovenstaande eigenschappen voldoen. Geen punten buiten de vier besproken punten: Indien er een schedule S bestaat waarbij minstens één activiteit niet aan bovenstaande eigenschappen voldoet, kan er minstens één schedule S gevonden worden door het links of rechts verplaatsen van de niet-conforme activiteit, waarbij alle activiteiten aan één der bovenstaande eigenschappen voldoet en waarvoor geldt dat obj(s) obj(s ). Zowel het beginnen als het eindigen moeten aanwezig zijn: Indien twee activiteiten x en y beginnen op het moment dat een andere activiteit z eindigt omdat ze door de resource constraints niet alle drie op hetzelfde tijdstip gescheduled kunnen worden. Stel ook dat x en y hun due dates overschrijden en z begint op zijn ready date. We merken dat deze groep van drie activiteiten zorgt voor een tardiness penalty voor het overschrijden van de due date van x en een tardiness penalty voor het overschrijden van de due date van y. Als we activiteiten x en y schedulen zodat deze eindigen op hun due date en z schedulen zodat deze eindigt op de starttijd van x of y zullen we enkel een earliness penalty voor z hebben. Indien de kost voor earliness lager of gelijk is, zal dit resulteren in een lagere objective. Dit is het geval in 3.3 Uitgebreid Voorbeeld. Op dezelfde manier kan bewezen worden dat enkel het eindigen kan leiden tot een oplossingsverzameling zonder optimaal schedule. Een voorwaarde hieraan verbonden is dat de penalty voor het overschrijden van de earliness groter is dan de penalty voor een langere makespan. Zowel de start/finish time als ready/due date: Zonder start/finish time zal de resource constraint verbroken worden. Ready/due dates zijn nodig als beginpunten om de objective function zo laag mogelijk te houden. Ook hier is de voorwaarde dat de penalty voor het overschrijden van de earliness groter is dan de penalty voor een langere makespan noodzakelijk. Het SGS waarbij op basis van de twee dimensies de activiteiten links- of rechts-gejustificeerd via het SSGS gescheduled worden, zal vanaf nu het Double Schedule Generation Scheme (DSGS) genoemd worden. De representatie van dit schedule, zal gebeuren door aan de random key representatie een positief, respectievelijk negatief teken te geven. Dit teken zal aangeven of de activiteit links-, respectievelijk rechts-gejustificeerd wordt. De absolute waarde van de random key waarmee de activiteit overeenkomt, zal de prioriteit indiceren. Het is belangrijk om te begrijpen dat deze extra dimensie, het oplossingsgebied sterk vergroot. Indien er 30 activiteiten zijn, hebben we 30! verschillende schedule mogelijkheden. Dit nummer zal vermenigvuldigd worden met 2 30 door het toevoegen van deze extra dimensie. (Ter vergelijking, voor 30 activiteiten zouden er, zonder extra dimensie, verschillende combinaties zijn, met extra dimensie ) 16

33 3.2.6 Dubbele Justificatie Dubbele justificatie (DJ) is een methode waarbij een schedule eerst rechts-gejustificeerd en dan links-gejustificeerd wordt. Dit is een zeer snelle methode die bij het RCPSP de makespan van een schedule nooit zal verhogen, maar in vele gevallen wel zal verlagen. Deze methode werd geïntroduceerd door Wiest (1964), maar is pas later tot zijn volle potentieel gebracht (Ballestin et al. (2006); Valls, Ballestin en Quintanilla (2005)). De double justification heeft zijn waarde al bewezen bij het RCPSP. Deze methode zal ook getest worden op het MRCuSP en WETMRCuSP. Doordat beide problemen geen precedence relations hebben zal de methode om dit uit te voeren veranderd moeten worden. Daarenboven zijn de dates bij het WETMRCuSP soft constraints, waardoor opnieuw het probleem zich zal vormen dat er steeds een feasible oplossing gevonden kan worden die meer links of meer rechts gescheduled is. Ook zal rekening moeten gehouden worden met een objective function die overschrijdingen bestraft en niet enkel de makespan. Om aan deze eisen te voldoen, werd de double justification als volgt gedefinieerd: Notatie ST F T AL D R Definitie Set van starttijden Set van eindtijden Set van activiteiten Set van due dates Set van ready dates Tab. 3.1: Overzicht van notaties van de Dubbele Justificatie. Definieer: F T AL := Gesorteerde lijst van activiteiten op basis van F T Volg AL voor alle activiteiten i > n : ScheduleRightJustify(i, maxend) waarbij maxend = max(f T [i], D[i]) Definieer: ST AL := Gesorteerde lijst van activiteiten op basis van ST Volg AL voor alle activiteiten i > n : ScheduleLeftJustify(i, minbegin)) waarbij minbegin = min(st [i], R[i]) 17

34 ScheduleRightJustify(act, finish) : ScheduleLeftJustify(act, start): Probeer act op t 1 = finish achterwaarts te schedulen Anders: zolang act niet gescheduled is: j + + t j = max(t ST t < t j 1 ) Probeer act achterwaarts op t j te schedulen Probeer act op t 1 = start te schedulen Anders: zolang act niet gescheduled is: j + + t j = min(t F T t > t j 1 ) Probeer act op t j te schedulen De ontwikkelde methode zorgt ervoor dat de DJ uitgevoerd kan worden op het MRCuSP en het WETMRCuSP. Het toepassen van deze methode zal ervoor zorgen dat de earliness en tardiness penalty van het WETMRCuSP nooit zal verhogen, maar in vele gevallen wel zal verlagen. De makespan van zowel het MRCuSP en het WETMRCuSP kan echter wel verhoogd worden door deze methode, maar zal in de meeste gevallen wel verlagen. Dat deze methode de makespan kan verhogen wordt aangetoond in volgend voorbeeld: Activiteit i Duurtijd p i Ready Date r i Due date d i Resource demand d i Tab. 3.2: Projectparameters van het voorbeeld. Hier zien we het schedule dat gevormd werd op basis van de minimale duurtijd van de activiteiten in combinatie met het SSGS: 18

35 Fig. 3.1: Initiële schedule. Dit schedule ondergaat vervolgens de rechtse-justificatie: Fig. 3.2: Schedule na rechtse justificatie. Tenslotte volgt de linkse-justificatie, waarbij we zien dat de makespan hoger is dan het schedule in de eerste figuur. 19

36 Fig. 3.3: Finale schedule na linkse justificatie Prioriteitsregels Een prioriteitsregel is een middel om aan elke activiteit een prioriteitswaarde toe te kennen in de random key representatie of om de activiteiten te ordenen in een activity list representatie. Deze prioriteiten zullen de decision set bepalen bij het SGS, waardoor een schedule gecreëerd kan worden. Deze prioriteitslijsten kunnen ook gebruikt worden binnen de metaheuristieken om een betere initiële populatie te genereren. Een eerste opdeling kan gemaakt worden tussen statische en dynamische prioriteitsregels. Bij de dynamische verandert de prioriteitswaarde bij verschillende iteraties van het SGS, terwijl bij de statische deze constant blijft. Een tweede opdeling kan gemaakt worden tussen de lokale en globale regels. Lokale regels maken enkel gebruik van de projectparameters horende bij de activiteit, terwijl globale regels ook gebruik maken van de projectparameters die niet bij deze activiteit horen (Kolisch en Hartmann (1999)). In deze thesis wordt enkel gewerkt met statische, lokale prioriteitsregels. In de volgende tabel wordt een overzicht gegeven van de gebruikte prioriteitsregels. Naam Afkorting Referentie Waarde Earliest Due Date EDD Conway (1964) d j Earliest Release Date ERD Baker en Dzielinski (1960) r j Shortest Processing Time SPT Aggarwal, Wyman en McCarl (1973) p j Longest Processing Time LPT Allen (1963) p j Minimum Available Execution Time MAET * d j r j Minimum Avilable Execution Ratio MAER * *Geen referentie gevonden d j r j p j Tab. 3.3: Overzicht van Prioriteitsregels. Deze prioriteitsregels zullen onder elkaar vergeleken worden, in combinatie met de verschil- 20

37 lende SGS. Vervolgens zullen deze prioriteitsregels binnen een multi-pass methode gebruikt worden. Hierin worden alle schedules berekend op basis van deze prioriteitsregels en één van de twee SGS en wordt het beste schedule overgehouden Random Methode De random methode zal op willekeurige basis 5000 schedules genereren. Dit zal gebeuren door gebruik te maken van het SSGS, het PSGS en het DSSG. De eerste twee methoden zullen vertrekken vanuit een activity list. Deze activity list zal at random geproduceerd zijn. Voor de laatste methode zullen de random key waarden opgevuld worden met willekeurige en verschillende getallen van 1 tot het aantal activiteiten J. Vervolgens zullen deze at random vermenigvuldigd worden met (+1) of (-1) Genetisch Algoritme Het Genetisch Algoritme (GA) is één der belangrijkste metaheuristieken die tot op heden ontwikkeld werd en heeft zijn waarde al meerdere malen bewezen voor het RCPSP (Hartmann (1998)). Om die reden zal ook voor dit probleem het GA getest worden. Het genetisch algoritme werd geïntroduceerd door Holland (1975) en dient als een heuristische metastrategie om hard optimization problems op te lossen. Voor meer informatie over het genetisch algoritme wordt verwezen naar Goldberg en Holland (1988). Het genetisch algoritme begint bij een initiële populatie, i.e. de eerste generatie. Deze eerste generatie bevat P OP representaties van schedules. Naar deze representaties zal vervolgens als individuen worden verwezen. Deze representaties zullen binnen een opstelling van het GA, steeds met hetzelfde SGS tot schedules geconverteerd worden. Op basis van deze schedules kan aan elk individu vervolgens een fitness-waarde worden gegeven. Met behulp van deze fitness-waarde worden van de bestaande populatie paren individuen geselecteerd (de ouders) die zullen instaan voor de generatie van nieuwe individuen. Deze paren zullen door een crossover-operator twee nieuwe individuen (de kinderen) creëren, waarop vervolgens nog een mutatie-operator toegepast kan worden om de variatie te verhogen. Hierna wordt voor elk kind opnieuw de fitness-waarde berekend. Tenslotte wordt een selection-operator gebruikt om in een volgende generatie terug P OP individuen over te houden. Het algoritme stopt als er GEN aantal generaties zijn geproduceerd. Populatie en fitness-waarde De individuen in de populatie zullen in verschillende varianten van het GA, een verschillende representatie aannemen. De verschillende representaties die gebruikt worden, zijn: de activity list representatie, de random key representatie en de finish time list representatie. Om de populatie te genereren bij de activity list representatie zullen de activiteiten 1 tot J in een random manier door elkaar gemixed worden. De random key representatie zal aan elke activiteit een willekeurige en verschillende integer waarde tussen 1 en het aantal activiteiten J geven. Vervolgens zullen deze integers vermenigvuldigd worden met (-1) of (+1), wat ook at random bepaald zal worden. Om de populatie bij de finish time list representatie te genereren zal at random aan 21

38 elke activiteit een eindtijd toegekend worden. De activity list representatie en de random key representatie hebben steeds nood aan een SGS om een schedule op te leveren. Er zal steeds gebruik gemaakt worden van het SSGS voor de activity list representatie. Om ervoor te zorgen dat de optimale oplossing steeds gevonden kan worden bij het WETMRCuSP, zal ook het DSGS met random key representatie gebruikt worden. Er kan opgemerkt worden dat er meerdere combinaties die zich in het oplossingsgebied bevinden, kunnen overeenkomen met hetzelfde schedule. Elke combinatie komt daarentegen slechts overeen met één schedule. De fitness-waarde van een individu zal voor het WETMRCuSP de objective function zijn, waarbij een lagere waarde overeenkomt met een beter schedule. Normaal gezien worden het SSGS en PSGS, uitgelegd in en 3.2.2, stopgezet voor het MRCuSP indien er al zeker is geweten dat dit schedule infeasible is. Om toch een onderscheid te maken tussen de schedules die infeasible zijn, zullen de release date- en resource-constraints hard constraints blijven, maar zullen de deadlines als soft constraints worden beschouwd. Na het SGS zal dan gekeken worden of het resulterende schedule buiten de deadlines treedt. Indien dit gebeurt, zal een lineaire penalty aan de fitness-waarde worden toegevoegd per overschrijding (gelijkaardig aan deze gebruikt voor het WETMRCuSP met een hoge penalty voor earliness en lateness). Voor de finish time list representatie wordt geen enkele constraint nagekeken omdat er geen SGS wordt gebruikt. Deze methode zal enkel gebruikt worden voor het WETMRCuSP. Om een overschrijding van de resource constraints te penaliseren zal een hogere fitness-waarde worden toegevoegd indien het resulterende schedule de resources overschrijdt (de ready date en due date overschrijdingen worden al gepenaliseerd in de objective function). Hiervoor zal voor elk schedule de Total Resource Violation (TRV) (Viana en de Sousa (2000)) berekend worden. Dit is de totale som van de overschrijdingen van de verschillende resources. De objective function zal vervolgens vermenigvuldigd worden met een factor tot de macht TRV. Zo zal een oplossing waarbij de resources sterk worden overschreden, sterk gediscrimineerd worden in het voordeel van een oplossing waarin de resources licht overschreden worden. Mathematisch ziet dit er als volgt uit: F itness waarde = ObjectiveF unction factor T RV T RV = D K max(0, R k u kt ) t=0 k=1 u kt = i A(t) waarbij A(t) de set van activiteiten is die wordt uitgevoerd binnen ]t 1, t]. De initiële populatie wordt gegenereerd door steeds random schedules te creëren (Leyman en Vanhoucke (2015)). r ik Crossover Er worden drie soorten crossover varianten gebruikt. De eerste variant die gebruikt wordt voor alle representaties is de one-point crossover. Dit is ook de enige variant die gebruikt zal worden voor de activity list representatie en de finish time list representatie. Voor deze variant nemen we de moeder M en de vader F en nemen we een random integer q tussen 1 en het aantal activiteiten J. 22

39 Twee nieuwe individuen worden gevormd, namelijk de dochter D en de zoon S. Voor de activity list representatie zullen de eerste q activiteiten van D gelijk zijn aan de eerste q activiteiten van M. De volgende J-q activiteiten worden van F genomen, hoewel de activiteiten die al bij M genomen zijn, niet meer opnieuw overgenomen mogen worden. j D i = j M i voor i = 1,..., q j D i = j F k voor i = q + 1,..., J waarbij k de laagste index is zodat jf k / {jd 1,..., j D i 1} De zoon S volgt dezelfde procedure, enkel zullen de eerste q activiteiten van F worden genomen en zullen de andere activiteiten gevuld worden volgens de volgorde van M. Voor de finish time list en random key representatie, zullen de waarden die bij elke activiteit horen rechtstreeks kunnen worden overgezet. vi D = vi M voor i = 1,..., q vi D = vk F voor i = q + 1,..., J Andere crossovers die werden getest voor de random key representatie: Formule Naam v D = vi M + vi F Sommatie-crossover vi S = (1 2 r) vi M + (2 r 1) vi F Aftrek-crossover waarbij r random gelijk is aan 0 of 1. vi D = vi M vi F (Vermenigvuldiging-crossover1) vi S = vi M vi F ( 1) (Vermenigvuldiging-crossover2) Tab. 3.4: Overzicht van extra crossovers. Mutation Er worden 3 verschillende mutaties gebruikt. Een eerste, de two-activity swap, zal met een probabiliteit p mutation 2 random activiteiten kiezen en deze verwisselen van plaats indien er met activity lists gewerkt wordt. Bij een random key of finish time list zullen de waarden corresponderend met de activiteiten, verwisseld worden. Een tweede mutatie, enkel gebruikt bij de finish time list representatie, zal met een bepaalde probabiliteit p mutation een bepaalde activiteit een random nieuwe finish time toekennen. Een laatste mutatie, die enkel gebruikt wordt bij de random key representatie, zal met een bepaalde probabiliteit p mutation een activiteit vermenigvuldigen met (-1), i.e. veranderen van kant waaruit het gescheduled wordt. Selection Voor de selectie van de vader gebruiken we een andere procedure dan voor de selectie van de moeder. De vader zal geselecteerd worden door middel van een elite selection, terwijl de moeder 23

40 door middel van een four-tournament selection geselecteerd zal worden. De elite selection zal random een individu selecteren uit de pool van de X beste individuen in de populatie. Deze pool wordt bij elke nieuwe generatie bijgewerkt, zodat deze pool bij elke generatie kan veranderen. Om het aantal parameters te beperken zal X gelijkgesteld worden aan het aantal individuen dat van de oorspronkelijke generatie naar een volgende generatie wordt overgezet (retention). De fourtournament selection zal eerst vier random individuen uit de populatie nemen, waarvan degene met de beste fitness-waarde als mother geselecteerd zal worden (Leyman en Vanhoucke (2015)). Overgang naar volgende generatie Na het genereren van de nieuwe kinderen, houden we een retention aantal ouders van de oude populatie aan en wordt de rest van de populatie vervangen door de beste kinderen. 3.3 Uitgebreid voorbeeld Hier volgt een uitgebreid voorbeeld op het WETMRCuSP waarin we proberen de verschillende heuristieken duidelijk te maken. We beginnen met een tabel die de project parameters samenvat, waarna een prioriteitslijst wordt gemaakt. Deze prioriteitslijst zal vervolgens gebruikt worden binnen het SSGS en het PSGS. De schedules die volgen uit de SGS zullen volgens een start time list en finish time list worden gerepresenteerd, waarna deze ook gevisualizeerd worden. Vervolgens zal dit resulterende schedule een crossover operatie ondergaan en zal de DSGS en de dubbele justificatie tot de optimale oplossing leiden Project Parameters Activiteit i Ready Time r i Due Date d i Duurtijd p i Resource-vraag type 1 r i Tab. 3.5: Project Parameters Beschikbaarheid resource-type 1 R 1 Kost per earliness e Kost per tardiness t Tab. 3.6: Project Parameters: Vervolg 24

41 3.3.2 Prioriteit De prioriteitsregel die gebruikt wordt is de MAER (Minimum Available Exection Ratio)(zie 3.2.7). Deze wordt gedefinieerd als: MAER = d i r p i We kunnen de waarden van deze ratio in een random key representatie zetten, waarbij de laagste waarde de hoogste prioriteit krijgt: Random Key: {1.4 ; 1.0 ; 1.2 ; 1.3 ; 7.5} Hierbij stemt elke index van deze array overeen met een activiteit. Activiteit 1 heeft dus een random key waarde van 1.4, activiteit 2 een random key waarde van 1.0, etc. Deze representatie zou ook omgezet kunnen worden in een activity list: Schedule Generation Activity List: {2 ; 3 ; 4 ; 1 ; 5} Op basis van de activity list zullen een start time list en finish time list opgesteld worden door gebruik te maken van het Serial Schedule Generation Scheme en het Parallel Schedule Generation Scheme. Er wordt aangeraden om en te raadplegen bij het volgen van de schedule generation schemes. Serial Schedule Generation Scheme Initialisatie: S 0 = RC k = R k = {10} g = 1 g = 2 g = 3 D 1 = AL = {2; 3; 4; 1; 5} D 2 = {3; 4; 1; 5} D 3 = {4; 1; 5} Ϝ 1 = Ϝ 2 = {10} Ϝ 3 = {10; 9} RC 1 = {10} RC 2 = {10 : t < 5 t 10; 6 : 5 t < 10} RC 2 = {10 : t < 4 t 10; 6 : t = 4 t = 9; 2 : 5 t < 9} j = 2 j = 3 j = 4 T 2 = {5} T 3 = {4; 10} T 3 = { 8; 9; 10} F 2 = 10 F 3 = 9 F 4 = 13 S 1 = {2} S 2 = {2; 3} S 3 = {2; 3; 4} g = 4 g = 5 g = 6 D 4 = {1; 5} D 5 = {5} g > n : Stop algortime Ϝ 4 = {10; 9; 13} Ϝ 5 = {18; 10; 9; 13} RC 4 = {10 : t < 4 t 13; 6 : t = 4 t = 9; 2 : 5 t < 9; 3 : 10 t < 13} RC 5 = {10 : t < 4 t 18; 6 : t = 4 t = 9; 2 : 5 t < 9 13 t < 18; 3 : 10 t < 13} j = 1 j = 5 T 1 = { 1; 9; 10; 13} T 5 = {1; 10; 9; 13; 18} F 1 = 18 F 5 = 3 S 4 = {1; 2; 3; 4} S 5 = {1; 2; 3; 4; 5} 25

42 Het resulterende schedule kan als volgt worden uitgedrukt: Start Time List: {13 ; 5 ; 4 ; 10 ; 1} Finish Time List: {18 ; 10 ; 9 ; 13 ; 3} Fig. 3.4: Schedule volgend uit de SSGS met MAER als prioriteitsregel. De Start Time List en Finish Time List kunnen nu in combinatie met de projectparameters (zie tabel 3.5 en 3.6) gebruikt worden om de objective function te berekenen: C max + e n E i + t i=1 = = 237 n i=1 T i Parallel Schedule Generation Scheme De tabel wordt rij per rij, van links naar rechts gelezen. Initialisatie: g = 0 t g = 0 A 0 = C 0 = RC k = R k = {10} 26

43 g = 1 W hile D g g = 2 A 0 C 0 = 0 j = 1 A 1 C 1 = 1 T 1 = {1; 5; 4; 8} F 1 = 6 T 2 = {4; 5; 6; 8} t 1 = 1 A 1 = {1} t 2 = 4 RC 1 = {10} RC 1 = {10 : t < 1 t 6; 2 : 1 t < 6} RC 2 = {10 : t < 1 t 6; 2 : 1 t < 6} A 1 = D 1 = A 2 = {1} C 1 = C 2 = D 1 = {1; 5} D 2 = g = 3 g = 4 W hile D g A 2 C 2 = 1 A 3 C 3 = 1 j = 2 T 3 = {5; 6; 8} T 4 = {6; 8} F 2 = 11 t 3 = 5 t 4 = 6 A g = {2} RC 3 = {10 : t < 1 t 6; 2 : 1 t < 6} RC 4 = {10 : t < 1 t 6; 2 : 1 t < 6} RC 4 = {10 : t < 1 t 6; 2 : 1 t < 6; 6 : 6 t < 11} A 3 = {1} A 4 = D 4 = {3; 5} C 3 = C 4 = {1} D 3 = D 4 = {2; 3; 5} W hile D g g = 5 g = 6 j = 3 A 4 C 4 = 3 A 5 C 5 = 3 F 3 = 11 T 5 = {8; 11} T 6 = {11} A 4 = {2; 3} t 5 = 8 t 6 = 11 RC 4 = {10 : t < 1 t 11; 2 : 1 t < 11} RC 5 = {10 : t < 1 t 11; 2 : 1 t < 11} RC 6 = {10 : t < 1 t 11; 2 : 1 t < 11} D 4 = A 5 = {2; 3} A 6 = C 5 = {1} C 6 = {1; 2; 3} D 5 = D 6 = {4; 5} W hile D g W hile D g g = 7 j = 4 j = 5 A 6 C 6 = 5 = n F 4 = 14 F 5 = 13 Stop Algoritme A 6 = {4} A 6 = {4; 5} RC 6 = {10 : t < 1 t 11; 2 : 1 t < 11; 3 : 11 t < 14} D 6 = {5} RC 6 = {10 : t < 1 t 11; 2 : 1 t < 11; 0 : 11 t < 13; 3 : t = 13} D 6 = Het resulterende schedule kan als volgt worden uitgedrukt: Start Time List: {1 ; 6 ; 6 ; 11 ; 11} Finish Time List: {6 ; 11 ; 11 ; 14 ; 13} 27

44 Fig. 3.5: Schedule volgend uit de PSGS met MAER als prioriteitsregel. De Start Time List en Finish Time List kunnen nu in combinatie met de projectparameters (zie tabel 3.5 en 3.6) gebruikt worden om de objective function te berekenen: n n C max + e E i + t Genetisch Algoritme i=1 = = 94 Om meer duidelijkheid te scheppen rond het genetisch algoritme en het DSGS, gaan we ervan uit dat bovenstaand schedule een individu is binnen de populatie van het genetisch algoritme. Om het voorbeeld duidelijker te maken, werden de waarden van de random key representatie omgezet naar intergers, waarbij de hoogste absolute waarde overeenkomt met de activiteit die eerst gescheduled zal worden: i=1 Random Key Schedule 1: {3 ; 5 ; 4 ; 2 ; 1} Een tweede schedule, die zich ook binnen de populatie van het genetish algoritme bevindt, wordt als volgt voorgesteld: Random Key Schedule 2: {-8 ; 0 ; 7 ; 0 ; 2} In dit schedule zien we ook een negatieve random key waarde. De absolute waarde zal ervoor zorgen dat activiteit 1 toch als eerste gescheduled zal worden, maar door het negatieve teken zal deze activiteit rechts gejustificeerd worden. We genereren een nieuw schedule door de sommatieen de aftrek-crossover (zie tabel 3.4) toe te passen op dit schedule: 28 T i

45 {3 ; 5 ; 4 ; 2 ; 1} {3 ; 5 ; 4 ; 2 ; 1} + {-8 ; 0 ; 7 ; 0 ; 2} {-8 ; 0 ; 7 ; 0 ; 2} {-5 ; 5 ; 11 ; 2 ; 3} {11 ; 5 ; -3 ; 2 ; -1} Enkel het schedule dat verkregen werd door de sommatie-crossover zal gebruikt worden in het verloop van dit voorbeeld Double Schedule Generation Scheme Het schedule waarop het DSSG zal worden toegepast heeft volgende random key representatie: Random Key Schedule 3: {-5 ; 5 ; 11 ; 2 ; 3} Om meer duidelijkheid te brengen, zal deze random key representatie in een activity list representatie omgezet worden. Hierbij geeft een L of R indicatie aan of de activiteit links, respectievelijk rechts zal worden gejustificeerd. Activity List Schedule 3: {3L ; 1R ; 2L ; 5L ; 4L} Initialisatie: S 0 = RC k = R k = {10} g = 1 g = 2 g = 3 D 1 = AL = {3; 1; 2; 5; 4} D 2 = {1; 2; 5; 4} D 3 = {2; 5; 4} Ϝ 1 = Ϝ 2 = {9} Ϝ 3 = {4; 9} RC 1 = {10} RC 2 = {10 : t < 4 t 9; 6 : 4 t < 9} RC 3 = {10 : t < 1 t 9; 6 : 4 t < 9; 2 : 1 t < 4} j = 3 j = 1 j = 2 Richting = Links Richting = Rechts Richting = Links T 3 = {4} T 1 = {4; 8} T 2 = {5; 9} F 3 = 9 F 1 = 4 F 2 = 10 S 1 = {3} S 2 = {1; 3} S 3 = {1; 2; 3} g = 4 g = 5 g = 6 D 4 = {5; 4} D 5 = {4} g > n : Stop algortime Ϝ 4 = {4; 9; 10} Ϝ 5 = {18; 10; 9; 13} RC 4 = {10 : t < 1 t 9; 2 : 1 t < 4 5 t < 9; 6 : t = 4 t = 10} RC 5 = {10 : t < 1 t 11; 2 : 1 t < 4 5 t < 9; 6 : t = 4; 3 : t = 9; 7 : t = 10} j = 5 j = 4 T 5 = { 1; 4; 9; 10} T 4 = { 8; 9; 10; 11} F 5 = 11 F 4 = 13 S 4 = {1; 2; 3; 5} S 5 = {1; 2; 3; 4; 5} Het resulterende schedule kan als volgt worden uitgedrukt: Finish Time List: {4 ; 10 ; 9 ; 13 ; 11} Start Time List: {-1 ; 5 ; 4 ; 10 ; 9} 29

46 Fig. 3.6: Schedule volgend uit de DSSG uit het genetisch algoritme. De Start Time List en Finish Time List kunnen nu in combinatie met de projectparameters (zie tabel 3.5 en 3.6) gebruikt worden om de objective function te berekenen: C max + e n E i + t i=1 = = 73 n i=1 T i Dubbele Justificatie Het resulterende schedule dat verkregen werd in voorgaande stappen zal nu eerst rechts gejustificieerd worden, waarna het links wordt gejustificeerd. Rechtse Justificatie We beginnen met het maken van een activity list met behulp van de finish time list: Finish Time List: {4 ; 10 ; 9 ; 13 ; 11} Activity List: {4 ; 5 ; 2 ; 3 ; 1} Vervolgens gaan we deze Activity List af en schedulen we de activiteit zo rechts mogelijk: 30

47 i = 4 i = 5 i = 2 maxend = max(13; 12) = 13 maxend = max(11; 14) = 14 maxend = max(10; 10) = 10 F T = 13 F T = 14 F T = 10 ST = 10 ST = 12 ST = 5 i = 3 i = 1 maxend = max(9; 10) = 13 maxend = max(8; 4) = 8 F T = 10 F T = 8 Niet resource feasible ST = 5 t = max{5; 10; 12} t < 8 F T = 5 ST = 0 Het resulterende schedule kan als volgt worden uitgedrukt: Start Time List: {0 ; 5 ; 5 ; 10 ; 12} Finish Time List: {5 ; 10 ; 10 ; 13 ; 14} Linkse Justificatie We gebruiken nu de start time list om een activity list op te stellen: Start Time List: {0 ; 5 ; 5 ; 10 ; 12} Activity List: {1 ; 2 ; 3 ; 4 ; 5} Vervolgens gaan we deze Activity List af en schedulen we de activiteit zo links mogelijk: i = 1 i = 2 i = 3 minbegin = min(0; 1) = 0 minbegin = min(5; 5) = 5 minbegin = min(4; 5) = 4 ST = 0 ST = 5 ST = 4 Niet resource feasible F T = 5 F T = 10 t = min{5; 10} t > 4 ST = 5 F T = 10 i = 4 i = 5 minbegin = min(8; 10) = 8 minbegin = min(1; 12) = 1 ST = 8 Niet resource feasible ST = 1 Niet resource feasible t = min{5; 10; 10} t > 8 t = min{5; 10; 10; 13} t > 1 ST = 10 ST = 5 Niet resource feasible F T = 13 t = min{5; 10; 10; 13} t > 5 ST = 10 F T = 13 Het resulterende schedule kan als volgt worden uitgedrukt: Start Time List: {0 ; 5 ; 5 ; 10 ; 10} Finish Time List: {5 ; 10 ; 10 ; 13 ; 12} 31

48 Fig. 3.7: Schedule na dubbele justificatie. De Start Time List en Finish Time List kunnen nu in combinatie met de projectparameters (zie tabel 3.5 en 3.6) gebruikt worden om de objective function te berekenen: C max + e n E i + t i=1 = = 53 n i=1 T i 32

49 Hoofdstuk 4 Resultaten In dit deel worden de resultaten van de oplossingsmethoden besproken. Ten eerste zal de dataset besproken worden waarop de methoden zijn toegepast. Vervolgens zal de exacte methode besproken worden, waarna de resultaten van de prioriteitsregels en multi-pass methode worden weergeggeven. Hierna zullen de resultaten van de genetische algoritmes volgen, waarna de verbetering door de dubbele justificatie wordt besproken. De best performerende methode zal dan worden vergeleken met de upper bound van de exacte methode in Gurobi. Er zal een gelijke penalty voor de earliness en de tardiness van 20 gebruikt worden voor alle komende resultaten, maar het effect van een veranderende penalty kost zal nog verder onderzocht worden in 4.8. De exacte methode werd met behulp van Gurobi in Java geprogrammeerd, terwijl de andere methoden in C werden geprogrammeerd. Om in java te werken werd Netbeans 8.1 gebruikt, voor C Visual Studio Beide werden uitgevoerd op een Windows 8.1 Toshiba computer (AMD A GHz quad-core processor). 4.1 Dataset De dataset die als input gebruikt werd, is de PSPLIB. Dit is een project scheduling library die door Kolisch en Sprecher (1997) met ProTrack gegenereerd werd. Het is een dataset van telkens 480 verschillende probleeminstanties voor 4 sets van 30, 60, 90 en 120 activiteiten. Hieraan werden release dates en deadlines toegevoegd, die ook gebruikt zullen worden als ready dates en due dates. Deze dates werden gegenereerd op een gelijkaardige wijze als Vanhoucke et al. (2001) en Ballestin et al. (2006). Eerst werd het kritieke pad berekend voor elke probleeminstantie. De lengte van dit kritieke pad werd vermenigvuldigd met een factor 1, 1.25, 1.5, 1.75, 2, 2.25 of 2.5 en werd de maximale deadline genoemd. Uiteindelijk werd voor elke activiteit een random release date gegenereerd tussen 0 en de maximale deadline min hun activiteitsduur en een random deadline tussen de release date plus de activiteitsduur en de maximale deadline. Het totaal aantal probleeminstanties is dus 480x4x7= Deze release date en deadlines werden samen met de relevante informatie opgeslagen in een Patterson formaat. Hierdoor worden bij het openen van hetzelfde probleem, geen nieuwe release dates en deadlines gegenereerd, maar worden deze gelezen vanuit het bestand met het Patterson formaat. 33

50 4.2 Exact method Gurobi werd op een verschillende wijze uitgevoerd voor het MRCuSP en het WETMRCuSP MRCuSP Voor het MRCuSP werd Gurobi één keer gebruikt, waarbij een maximale tijd van 5 minuten per probleeminstantie werd ingesteld. Indien er geen oplossing werd gevonden binnen een tijdsperiode van 5 minuten werd de incumbent (i.e. upper bound in de branch-en-bound methode) gegeven. Tabel 4.1 toont aan dat er slechts een klein percentage van de oplossingen niet exact gevonden kunnen worden binnen de 5 minuten. In Figuur 4.1 is te zien dat het aantal feasible oplossingen toeneemt naarmate de factor toeneemt. Ook is het percentage feasible oplossingen voor datasets 30 en 120 lager dan dit percentage voor datasets 60 en 90. Tabel 4.2 beschrijft de CPU-tijd nodig om de exacte oplossing te vinden. Twee trends zijn hier waarneembaar. Enerzijds neemt de CPUtijd toe als de factor toeneemt (dit is te verklaren door het grotere oplossingsgebied), anderzijds neemt de CPU-tijd ook toe bij een toename van het aantal activiteiten (dit is te verklaren door een toenemend aantal variabelen, waardoor het oplossingsgebied ook toeneemt). Een verklaring waarom deze trends niet altijd consistent zijn en het lager percentage feasible oplossingen voor de 30 en 120 dataset, ligt vermoedelijk aan het feit dat de release dates en deadlines random gegenereerd zijn. Dataset Factor % 99.58% 99.79% 98.54% % 99.79% % 98.96% % % 99.79% 99.58% % % 98.96% 99.38% % 99.58% 99.58% 99.58% % 99.58% 99.58% 98.75% % % 99.58% 99.38% Tab. 4.1: Percentage gevonden oplossingen vooor het MRCuSP binnen 5 minuten. 34

51 Fig. 4.1: Percentage feasible van de gevonden oplossingen voor het MRCuSP. Dataset Factor Tab. 4.2: Gemiddelde CPU-tijd van de gevonden oplossingen voor het MRCuSP WETMRCuSP Voor het WETMRCuSP werd Gurobi twee keer gebruikt. De eerste keer werd er een maximale tijd van 5 minuten ingesteld per probleeminstantie, waarbij een NotFound code -2 werd gegeven indien er geen oplossing werd gevonden binnen deze 5 minuten. In de eerste grafiek 4.2 is duidelijk te zien dat voor elke dataset het aantal gevonden oplossingen binnen de 5 minuten groter wordt naarmate de factor toeneemt. Dit is een te verwachten resultaat door de ready date/due date beperking die afneemt naarmate de factor toeneemt. Ook zal het aantal oplossingen dat binnen de 5 minuten gevonden wordt, afnemen naarmate het aantal activiteiten toeneemt. Hier merken we ook een grote sprong tussen 90 en 120 activiteiten. In de tweede grafiek 4.3 worden de gemiddelde CPU-tijden van de gevonden oplossingen weergegeven. Hierin kunnen we vaststellen dat de CPU-tijd voor 30 en 120 activiteiten afneemt naarmate de factor toeneemt. Bij de datasets van 60 en 90 activiteiten verandert de CPU-tijd niet significant bij het toenemen 35

52 van de factor. Het zoeken naar een oplossing wordt afgebroken na 5 minuten, waardoor er geen uitspraak over de reële CPU-tijd van de moeilijke problemen kan worden gemaakt. Door beide grafieken te combineren, kunnen we wel concluderen dat de hele 120 dataset en de factor 1 van de 30 dataset moeilijkere probleeminstanties bevatten dan de andere sets. Voor een verklaring waarom er geen consistente trends gevonden worden voor de CPU-tijd op basis van het aantal activiteiten en de factor, vermoeden we opnieuw het feit dat de release dates/ready dates en deadlines/due dates random gegenereerd werden. Fig. 4.2: Percentage gevonden oplossingen binnen de 5 minuten voor elke factor voor het WETMRCuSP. Fig. 4.3: Gemiddelde CPU-tijd van de gevonden oplossingen voor elke factor voor het WETMRCuSP. De tweede keer dat Gurobi op het WETMRCuSP werd toegepast, werd een maximale tijd van 36

53 30 seconden ingesteld. Indien deze tijd bereikt werd, gaf Gurobi de incumbent van de branchand-bound methode. Door de data van het aantal exacte oplossingen dat gevonden werd binnen 5 minuten, te combineren met het aantal exacte oplossingen gevonden binnen 30 seconden, kan volgende tabel 4.3 gecreëerd worden. Hoe lager het percentage gevonden oplossingen, hoe moeilijker het probleem op te lossen is via de exacte methode. De vergelijking tussen het percentage dat binnen 30 seconden gevonden werd en het percentage dat binnen 5 minuten gevonden werd, is een indicatie voor de duurtijd van de nog niet gevonden oplossingen, en dus een indicatie van de moeilijkheid van deze nog niet opgeloste probleeminstanties. Dataset Factor % 70.42% 67.29% 71.46% 63.96% 71.04% 26.67% 35.21% % 77.08% 76.46% 80.00% 75.83% 80.00% 44.58% 52.50% % 85.83% 81.88% 86.25% 82.50% 84.17% 55.83% 63.75% % 91.25% 86.25% 89.38% 85.63% 87.29% 63.54% 72.08% % 95.21% 90.00% 92.71% 87.08% 91.04% 69.17% 79.58% % 96.25% 92.50% 96.88% 90.63% 94.79% 74.79% 82.92% % 97.92% 95.63% 97.92% 91.46% 98.54% 77.71% 86.88% Tab. 4.3: Vergelijking percentage gevonden oplossingen in 30 s en 5 min voor het WETMRCuSP. Om de resultaten van de heurisitieken te vergelijken, zullen we steeds enkel gebruik maken van de gevonden oplossingen. Een apart punt zal besteed worden aan het vergelijken van de resultaten van de heuristieken met de upper bound (de incumbent). Door naar het percentage gevonden oplossingen en de CPU-tijd te kijken, kunnen we besluiten dat de heuristieken de meeste meerwaarde zullen bieden voor het WETMRCuSP. 4.3 Prioriteitsregels en Multi-Pass In dit deel zullen de resultaten van de prioriteitsregels en de multi-pass methode vergeleken worden met de optimale oplossingen Prioriteitsregels In tabel 4.4 en 4.5 worden de prioriteitsregels vergeleken op basis van het percentage optimaal opgeloste probleeminstanties. De tabel toont de gemiddelde percentages over de 7 verschillende factoren. Dit geeft geen vertekend resultaat omdat de verschillende oplossingsmethoden dezelfde trend vertoonden over de verschillende factoren. Vervolgens werden de percentages onderverdeeld in groepen van verschillende aantallen activiteiten. Ook hierbij werd een gelijkaardige trend vastgesteld per methode, waardoor we ook hierbij de gemiddelden konden berekenen. Door steeds een percentage te berekenen per factor en per aantal activiteiten en hiervan een gemiddelde te nemen, werd aan elk van deze sets een gelijk gewicht meegegeven. Via de chi-kwadraat toets werd de significante invloed van de categorische variable methode op 37

54 het percentage bewezen (zie bijlage A). De beste methoden voor het vinden van een optimale oplossing voor het MRCuSP en WETMRCuSP blijken de SSGS met als prioriteitsregels de EDD en de MAER en de PSGS met als prioriteitsregel de EDD te zijn. Dataset Methode Gemiddelde Serial EDD 89.53% 90.31% 91.69% 89.01% 90.13% Serial ERD 82.52% 81.50% 82.12% 78.50% 81.16% Serial SPT 73.90% 71.96% 72.56% 70.43% 72.22% Serial LPT 78.11% 76.30% 77.93% 74.45% 76.70% Serial MAET 83.50% 85.25% 86.17% 83.23% 84.54% Serial MAER 86.46% 89.47% 90.17% 87.60% 88.43% Parallel EDD 86.76% 86.28% 86.53% 83.72% 85.82% Parallel ERD 83.27% 82.10% 82.18% 78.99% 81.63% Parallel SPT 83.48% 82.75% 82.15% 78.99% 81.84% Parallel LPT 82.28% 80.90% 82.29% 78.68% 81.04% Parallel MAET 86.61% 86.01% 86.41% 83.63% 85.66% Parallel MAER 85.24% 84.72% 85.68% 82.58% 84.55% Tab. 4.4: Percentage optimale oplossingen van de prioriteitsregels voor het MRCuSP. Dataset Methode Gemiddelde Serial EDD 42.43% 67.34% 75.52% 46.01% 57.82% Serial ERD 34.72% 56.63% 63.84% 29.09% 46.07% Serial SPT 22.89% 44.81% 51.80% 16.61% 34.03% Serial LPT 28.45% 50.14% 58.65% 22.50% 39.93% Serial MAET 34.22% 60.75% 68.30% 35.13% 49.60% Serial MAER 38.50% 65.87% 73.63% 40.97% 54.74% Parallel EDD 39.85% 62.35% 69.36% 37.08% 52.16% Parallel ERD 35.45% 57.25% 63.97% 29.89% 46.64% Parallel SPT 35.44% 57.80% 63.88% 29.72% 46.71% Parallel LPT 34.35% 55.93% 64.20% 28.78% 45.81% Parallel MAET 39.60% 62.06% 69.23% 36.73% 51.91% Parallel MAER 38.06% 60.45% 68.38% 35.11% 50.50% Tab. 4.5: Percentage optimale oplossingen van de prioriteitsregels voor het WETMRCuSP. Tabel 4.6 toont de gemiddelde afwijking tussen de oplossing van de heuristiek en de optimale oplossing. Omdat het MRCuSP ook een infeasible oplossing kan hebben en de heuristiek dit ook fout kan categoriseren, kunnen we geen gemiddelde afwijking voor dit probleem berekenen. Volgens de repeated measures ANOVA zijn de uitkomsten eerst en vooral significant afhankelijk van de methode die gebruikt wordt (p < 0.001). Daarenboven zijn alle resultaten significant verschillend van elkaar, behalve de combinaties 1, 8 en 12 en 6 en 10 (geteld van boven tot beneden). We 38

55 besluiten dus dat de methoden met het PSGS en de prioriteitsregels EDD, SPT en MAET de 3 beste methoden zijn op basis van de gemiddelde afwijking. Deze significantie werd in SPSS getest, waarbij de resultaten in bijlage B worden samengevat. Het PSGS resulteert gemiddeld in een resultaat dichter bij de optimale oplossing. Dit is gelijkaardig aan de bevindingen van Kolisch (1996) voor het RCPSP. Het PSGS zorgt voor een kleinere cardinaliteit, waardoor gemiddeld over vele probleeminstanties de afwijking kleiner zal zijn. Aan de andere kant zorgt het PSGS voor non-delay schedules, waarbij bij het RCPSP de mogelijkheid bestaat dat het oplossingsgebied de optimale oplossing niet bevat. Bij het WETMRCuSP zullen schedules die gegenereerd zijn door het SSGS (dus active schedules) ook dit risico hebben. Dit werd aangetoond in 3.2.4, waardoor als gevolg in grafieken 4.4 en 4.5 geen opmerkelijke verschillen bestaan tussen het SSGS en het PSGS. Dataset Methode Gemiddelde Serial EDD Serial ERD Serial SPT Serial LPT Serial MAET Serial MAER Parallel EDD Parallel ERD Parallel SPT Parallel LPT Parallel MAET Parallel MAER Tab. 4.6: Gemiddelde afwijking van de optimale oplossing door de prioriteitsregels voor het WETMRCuSP. Tenslotte werd voor elke probleeminstantie berekend welke methode(n) de beste oplossing vond(en) uit de 12 verschillende methoden. De ratio tussen het aantal keer dat elke methode de beste oplossing vond en het totaal aantal probleeminstanties wordt samengevat in tabellen 4.7 en

56 Dataset Methode Gemiddelde Serial EDD: 94.25% 94.55% 96.10% 95.24% 95.04% Serial ERD: 87.11% 85.51% 86.52% 84.79% 85.98% Serial SPT: 78.42% 76.01% 77.08% 76.97% 77.12% Serial LPT: 82.62% 80.30% 82.41% 80.95% 81.57% Serial MAET: 88.01% 89.20% 90.54% 89.49% 89.31% Serial MAER: 91.01% 93.54% 94.55% 93.87% 93.24% Parallel EDD: 91.37% 90.36% 90.95% 90.06% 90.68% Parallel ERD: 87.80% 86.10% 86.61% 85.30% 86.45% Parallel SPT: 88.04% 86.76% 86.55% 85.30% 86.66% Parallel LPT: 86.82% 84.85% 86.70% 85.06% 85.86% Parallel MAET: 91.19% 90.09% 90.80% 89.97% 90.51% Parallel MAER: 89.79% 88.72% 90.06% 88.96% 89.38% Tab. 4.7: Percentage beste oplossingen voor het MRCuSP. Dataset Methode Gemiddelde Serial EDD: 45.45% 62.74% 67.20% 38.51% 53.48% Serial ERD: 36.64% 51.67% 55.51% 23.19% 41.75% Serial SPT: 20.84% 38.60% 43.57% 12.17% 28.80% Serial LPT: 27.14% 44.11% 49.58% 16.85% 34.42% Serial MAET: 32.05% 53.16% 57.71% 25.66% 42.14% Serial MAER: 37.38% 58.25% 62.86% 31.64% 47.53% Parallel EDD: 55.83% 69.82% 73.34% 54.17% 63.29% Parallel ERD: 38.60% 52.95% 56.13% 24.58% 43.07% Parallel SPT: 51.46% 58.72% 60.89% 38.81% 52.47% Parallel LPT: 35.39% 51.01% 55.66% 22.83% 41.22% Parallel MAET: 53.22% 64.44% 66.88% 40.84% 56.34% Parallel MAER: 41.58% 57.44% 60.50% 30.12% 47.41% Tab. 4.8: Percentage beste oplossingen voor het WETMRCuSP. De gemiddelde CPU-tijd die nodig was om deze heuristieken op te lossen is voor beide problemen gelijkaardig en zeer klein. Een correlatie tussen de CPU-tijd en het aantal activiteiten is waar te nemen. 40

57 Aantal activiteiten Gem. CPU-tijd (ms) Tab. 4.9: Gemiddelde CPU-tijd nodig voor het oplossen van de prioriteitslijsten Multi-pass De multi-pass methode zal alle prioriteitsregels berekenen en het beste resultaat als oplossing geven. Het percentage van de oplossingen dat optimaal is door gebruik te maken van de multi-pass opgedeeld per factor en per aantal activiteiten, is te zien in volgende tabellen 4.10 en Dataset Factor % 90.52% 92.24% 96.56% % 92.77% 93.54% 91.98% % 96.25% 97.67% 91.18% % 96.88% 96.99% 94.48% % 97.27% 96.36% 91.34% % 97.67% 96.21% 95.64% % 97.50% 95.14% 95.05% Tab. 4.10: Percentage optimale oplossingen door de multi-pass methode voor het MRCuSP. Dataset Factor % 46.78% 64.42% 24.32% % 62.57% 70.79% 38.02% % 76.04% 83.55% 47.54% % 80.80% 85.71% 57.44% % 84.74% 89.49% 65.48% % 85.42% 89.72% 72.99% % 87.44% 84.93% 73.58% Tab. 4.11: Percentage optimale oplossingen door de multi-pass methode voor het WETMRCuSP. Ook hier zijn er verschillen in performantie naargelang het aantal activiteiten en de factor. Voor het WETMRCuSP is het gemiddeld percentage 65.57%, wat slechts 6.75% hoger is dan enkel het SSGS met EDD als prioriteitsregel. Bij het MRCuSP wordt voor 94.98% van de probleeminstanties de optimale oplossing gevonden. De CPU-tijd van de multi-pass methode is ongeveer gelijk aan 12 keer de gemiddelde CPU-tijd nodig voor 1 prioriteitslijst. 41

58 4.4 Random Methode De resultaten van de random methode worden in tabel 4.12 voor MRCuSP en tabel 4.13 voor WETMRCuSP samengevat. Deze testen werden enkel op de j30 set toegepast. Methode % Correct GemCPUTijdMeta GemCPUTijdGurobi Serial 98.10% Parallel 89.14% Double 96.01% Tab. 4.12: Resultaten random methode voor het MRCuSP. Methode % Correct GemAfwijking GemCPUTijdMeta GemCPUTijdGurobi Serial 53.99% Parallel 41.99% Double 55.07% Tab. 4.13: Resultaten random methode voor het WETMRCuSP. We zien dat het SSGS en DSGS zeer goede resultaten opleveren voor het MRCuSP. Het dominante SGS om het WETMRCuSP at random op te lossen is het DSGS 1. Deze presteert beter zowel in het percentage oplossingen dat optimaal is, als in de gemiddelde afwijking van de optimale oplossing. 4.5 Genetisch Algoritme Om de genetische algoritmes met elkaar te kunnen vergelijken, werd het aantal generaties steeds berekend zodat er tijdens de gehele uitvoering van het genetisch algoritme ongeveer 5000 schedules werden gegenereerd. Om de beste waarden voor de parameters te kiezen, werd steeds een Taguchi design opgesteld met 16 experimenten, waarbij 3 tot 4 factoren op 4 verschillende niveaus werden getest. Deze experimenten werden uitgevoerd op ±21% van de probleeminstanties van de dataset van 30 activiteiten (100 van de 480 probleeminstanties per factor). Voor de niveau s van de factoren voor elk van deze experimenten wordt verwezen naar bijlage C. De resultaten van deze experimenten werden vervolgens in Minitab geanalyseerd. Er werden in totaal 6 verschillende GA s getest. De opstellingen van deze GA s wordt samengevat in tabel Voor meer informatie over deze opstellingen wordt verwezen naar Bij het gebruik van de DSGS werd in 0.208% van de gevallen een oplossing gevonden die lager is dan de optimale oplossing uit Gurobi. Dit komt omdat Gurobi geen activiteiten schedulet die beginnen onder tijd 0, waarbij de DSGS methode dit wel doet. Deze data werd niet gebruikt bij de berekening van de resultaten. 42

59 Naam Probleem Schedule Representatie SGS Crossover Mutatie GA1 MRCuSP Activity List SSGS One-point Activity Swap GA2 WETMRCuSP Activity List SSGS One-point Activity Swap GA3a WETMRCuSP Random Key DSGS Sommatie/Aftrek Swap & Teken GA3b WETMRCuSP Random Key DSGS One-point Swap & Teken GA3c WETMRCuSP Random Key DSGS Vermenigvuldiging Swap & Teken GA4 WETMRCuSP Finish Time List X One-point Nieuwe Waarde Tab. 4.14: Overzicht van uitgevoerde Genetische Algoritmes GA1 Het eerste genetisch algoritme werd getest op het MRCuSP. Voor dit genetisch algoritme werden activity lists, one-point crossovers, activity swap als mutatie en het SSGS gebruikt. Doordat het fout infeasible verklaren van een probleeminstantie geen absolute afwijking van de optimale oplossing heeft, zullen we de experimenten enkel kunnen vergelijken op basis van het percentage optimale oplossingen. Drie verschillende factoren werden getest op vier niveaus: Mutatie: 0% - 25% - 50% - 75% Retentie: Populatiegrootte: Uit de vergelijking van de gemiddelden van de experimenten, die te zien zijn in bijlage D.1, kunnen we besluiten dat een mutatie van 25% of 50%, een retentie van 10 en een populatiegrootte van 100 de beste resultaten geven in de set met 30 activiteiten. De beste parameters werden vervolgens gebruikt om te verifiëren of deze parameters wel degelijk tot een beter resultaat leiden. Deze laatste test was succesvol, waarbij de uiteindelijke methode 98.14% van de probleeminstanties optimaal oploste. Dit is hoger dan elk resultaat van de andere 16 experimenten GA2 Een tweede genetisch algoritme werd getest op het WETMRCuSP. Hier werden, net zoals bij het GA1, activity lists, one-point crossovers, activity swaps en het SSGS gebruikt. Om de verschillende experimenten te vergelijken, werd gekeken naar de gemiddelde afwijking. Opnieuw werden drie verschillende factoren getest op vier niveaus: Mutatie: 0% - 25% - 50% - 75% Retentie: Populatiegrootte:

60 Uit de resultaten van de experimenten, die te zien zijn in bijlage D.2, besluiten we dat een mutatie van 75%, een retentie van 15 en een populatiegrootte van 100 de beste resultaten geven. Dezelfde probleeminstanties werden vervolgens opgelost met deze laatste parameters, waaruit een gemiddelde afwijking van werd gevonden. Ook dit resultaat is beter dan elk resultaat uit de 16 experimenten GA3 Een derde genetisch algoritme werd getest op het WETMRCuSP. Hier werden random keys gebruikt, waarbij het teken van de random key bepaalt of de activiteit links- of rechts-gejustificeerd gescheduled zal worden. Hierbij wordt gebruik gemaakt van twee soorten mutaties: het verwisselen van 2 activiteiten en een vermenigvuldiging met (-1). Als crossover worden hierbij drie varianten gebruikt. GA3a zal de sommatie-crossover en de aftrek-crossover gebruiken, GA3b zal de one-point crossover gebruiken en de GA3c zal de vermenigvuldiging-crossover 1 en 2 gebruiken. Ook hier werden de resultaten vergeleken op basis van de gemiddelde afwijking van de optimale oplossing. Voor elke verschillende opzet werden 16 experimenten uitgetekend waarbij 4 factoren op 4 niveaus variëren: Mutatie Verwissel: 0% - 25% - 50% - 75% Mutatie Teken: 0% - 25% - 50% - 75% Retentie: Populatiegrootte: De beste parameters werden voor elke opstelling samengevat in volgende tabel 4.15: Resultaten GA3a GA3b GA3c MutatieSwap 25% 50% 50% MutatieSign 75% 75% 75% Retentie Populatie Grootte Tab. 4.15: Beste parameters voor GA3. De resultaten van deze experimenten voor deze opzetten, worden gevisualiseerd in bijlage D.3, D.4 en D.5. Ook hier werden deze laatste parameters nogmaals getest op de dataset. Deze laatste werden allemaal succesvol afgerond met een gemiddelde afwijking van respectievelijk , en voor GA3a, GA3b en GA3c GA4 Een zesde en laatste genetisch algoritme werd ook op het WETMRCuSP getest. Hierin werd gewerkt met een finish time list, one-point crossover en een random nieuwe waarde als mutatie. 44

61 Voor deze methode werd geen gebruik gemaakt van een SGS, maar de fitness-waarde werd aangepast om rekening te houden met de overschrijdingen van de resource constraints. Vier verschillende factoren werden getest op vier niveaus: Mutatie: 0% - 25% - 50% - 75% Factor: Retentie: Populatiegrootte: Ook hier kan het genetisch algoritme een infeasible oplossing geven, zodat we de experimenten best vergelijken op basis van het percentage optimale oplossingen. Bij deze oplossingen was echter geen enkele oplossing optimaal, waardoor we de resultaten verder vergeleken op basis van het percentage van de oplossingen dat resource feasible was. Hierbij gaf een opstelling met geen mutatie, een factor van 1.01, een retentie van 20 en een populatiegrootte van 100 het beste resultaat. In een laatste test met de beste parameters voor deze opstelling werden 0.00% optimale oplossingen en 14.29% resource feasible oplossingen gevonden. Dit is niet hoger dan het beste resultaat uit de experimenten, maar dit beste resultaat uit experiment 4 had dezelfde parameters. Door het slechte resultaat van deze methode wordt geen verder onderzoek gevoerd met betrekking tot deze methode Besluit De belangrijkste resultaten uit het toepassen van de verschillende genetische algoritmes worden samengevat in tabel Hieruit kunnen we enkele besluiten formuleren. Eerst en vooral merken we de noodzaak van een schedule generation scheme. Ook al gebruiken we enkel de SSGS en de DSSG, toch merken we een duidelijk verschil tussen GA1-3 en GA4. De GA4 heeft hierdoor een sterk verminderde CPU-tijd. Een belangrijkere negatieve implicatie hiervan is echter dat een groot deel van de oplossingen die gevonden worden niet resource feasible zijn en van de resource feasible oplossingen, geen enkele optimale oplossing werd gevonden. Ten tweede merken we dat het genetisch algoritme het best presteert met het DSGS in combinatie met one-point crossover(ga3b) en optelling- en aftrek-crossover(ga3a). Tenslotte zien we dat het resultaat vaak beter is bij een hoge populatie. De random generatie van de beginpopulatie kan hiervoor een verklaring kunnen zijn. Methode %Correct GemAfwijking GemTijdMeta GemTijdGurobi GA % X GA % GA3a 49.67% GA3b 49.80% GA3c 45.13% GA4 0.00% Tab. 4.16: Vergelijking van de resutaten van de verschillende Genetische Algoritmes. 45

62 4.6 Dubbele Justificatie Op de resultaten die gevonden werden uit de vorige methode, zal de dubbele justificatie worden toegepast Prioriteitslijsten en Multi-pass De dubbele justificatie methode werd eerst toegepast op de schedules die verkregen zijn door de prioriteitsregels toe te passen. Door middel van dezelfde performantiemetingen die eerder in 4.3 al genomen werden, kunnen we in tabellen 4.18 en 4.17 duidelijk de verbetering door de dubbele justificatie zien. Opvallend hierbij is dat de prioriteitsregels met de parallele SGS een sterkere verbetering kennen dan deze met het SSGS. % Correct % Best NO-DJ DJ NO-DJ DJ Serial EDD: 90.13% 92.87% 95.04% 95.21% Serial ERD: 81.16% 93.52% 85.98% 95.89% Serial SPT: 72.22% 84.87% 77.12% 87.15% Serial LPT: 76.70% 88.72% 81.57% 91.04% Serial MAET: 84.54% 88.16% 89.31% 90.48% Serial MAER: 88.43% 90.88% 93.24% 93.24% Parallel EDD: 85.82% 95.00% 90.68% 97.44% Parallel ERD: 81.63% 93.58% 86.45% 95.94% Parallel SPT: 81.84% 93.25% 86.66% 95.60% Parallel LPT: 81.04% 92.19% 85.86% 94.52% Parallel MAET: 85.66% 94.66% 90.51% 97.06% Parallel MAER: 84.55% 93.89% 89.38% 96.25% Tab. 4.17: Dubbele justificatie op de resultaten van de prioriteitslijsten vooor het MRCuSP. 46

63 % Correct Deviation % Best NO-DJ DJ NO-DJ DJ NO-DJ DJ Serial EDD: 57.82% 61.26% % 54.76% Serial ERD: 46.07% 62.72% % 56.81% Serial SPT: 34.03% 49.83% % 41.91% Serial LPT: 39.93% 55.58% % 47.37% Serial MAET: 49.60% 54.24% % 45.83% Serial MAER: 54.74% 57.92% % 49.58% Parallel EDD: 52.16% 64.77% % 72.66% Parallel ERD: 46.64% 62.66% % 57.92% Parallel SPT: 46.71% 62.33% % 67.05% Parallel LPT: 45.81% 60.73% % 54.26% Parallel MAET: 51.91% 64.07% % 65.95% Parallel MAER: 50.50% 62.95% % 57.95% Tab. 4.18: Dubbele justificatie op de resultaten van de prioriteitslijsten voor het WETMRCuSP. Ook de multi-pass methode wordt sterk verbeterd door het toepassen van de dubbele justificatie. Het percentage juiste oplossingen door de multi-pass met en zonder DJ wordt weergegeven in tabellen 4.19 en NO DJ DJ NO DJ DJ NO DJ DJ NO DJ DJ % 97.92% 90.52% 94.83% 92.24% 95.81% 96.56% 98.85% % 97.25% 92.77% 95.11% 93.54% 97.29% 91.98% 95.99% % 96.46% 96.25% 98.13% 97.67% 98.94% 91.18% 95.48% % 97.08% 96.88% 97.92% 96.99% 98.92% 94.48% 98.30% % 96.88% 97.27% 98.74% 96.36% 98.07% 91.34% 96.75% % 97.71% 97.67% 98.94% 96.21% 97.89% 95.64% 97.60% % 98.33% 97.50% 98.33% 95.14% 97.89% 95.05% 97.20% Tab. 4.19: Dubbele justificatie op de resultaten van de multi-pass methode voor het MRCuSP NO DJ DJ NO DJ DJ NO DJ DJ NO DJ DJ % 24.46% 46.78% 53.56% 64.42% 71.54% 24.32% 31.08% % 42.21% 62.57% 65.92% 70.79% 75.28% 38.02% 46.35% % 49.26% 76.04% 78.65% 83.55% 86.42% 47.54% 55.74% % 59.17% 80.80% 82.54% 85.71% 88.47% 57.44% 63.67% % 66.51% 84.74% 86.38% 89.49% 91.44% 65.48% 73.21% % 71.46% 85.42% 86.79% 89.72% 90.42% 72.99% 75.67% % 74.27% 87.44% 88.57% 84.93% 88.65% 73.58% 77.46% Tab. 4.20: Dubbele justificatie op de resultaten van de multi-pass methode voor het WETMRCuSP. 47

64 Het gemiddelde over alle sets is bij het WETMRCuSP 69.47% met dubbele justificatie en 65.57% zonder justificatie, bij het MRCuSP 97.45% met dubbele justificatie en 94.98% zonder dubbele justificatie. De CPU-tijd wordt duidelijk verhoogd door deze dubbele justificatie, hoewel deze nog steeds verwaarloosbaar klein is (tabel 4.21). Aantal Activiteiten Gem CPU-tijd (ms) NO DJ DJ Tab. 4.21: CPU-tijd nodig voor de multi-pass met en zonder dubbele justificatie Random methode Ook de random methode wordt verbeterd door gebruik te maken van de dubbele justificatie (tabellen 4.22 en 4.23): % Correct Methode NODJ DJ Serial 98.10% 98.10% Parallel 89.14% 89.34% Double 96.01% 97.50% Tab. 4.22: Effect van dubbele justificatie op de random methode voor het MRCuSP % Correct GemAfwijking Methode NODJ DJ NODJ DJ Serial 53.99% 55.38% Parallel 41.99% 51.35% Double 55.08% 63.56% Tab. 4.23: Effect van dubbele justificatie op de random methode voor het WETMRCuSP. De tijd die nodig is om de dubbele justificatie uit te voeren is verwaarloosbaar klein. Echter, indien deze 5000 keer wordt uitgevoerd, zoals bij deze methode en het genetisch algoritme het geval is, is deze duurtijd niet langer verwaarloosbaar (tabel 4.24): 48

65 Avg CPU-tijd (s) Aantal Activiteiten 5000 keer Tab. 4.24: CPU-tijd voor de dubbele justificatie Genetisch Algoritme In tabel 4.25 wordt het effect van de dubbele justificatie op het genetisch algortime weergegeven voor de j30 set. Het genetisch algoritme verbetert zeker, hoewel hier ook rekening moet gehouden worden met de extra duurtijd. % Correct GemAfwijking Methode NODJ DJ NODJ DJ GA3a 49.67% 65.07% GA3b 49.80% 64.23% GA % 98.16% X X Tab. 4.25: Effect van de dubbele justificatie op het genetisch algortime. 4.7 Vergelijking met Upper Bound Volgende 4 tabellen werden gegenereerd door de oplossingen die niet exact gevonden werden door Gurobi in 30 seconden (de moeilijke probleeminstanties) te vergelijken met de oplossingen die bekomen werden door GA3aDJ van 5000 schedules toe te passen. We kunnen enkele interessante conclusies uit deze resultaten trekken. Eerst en vooral zien we dat de incumbent van Gurobi vaker beter is dan de oplossing van GA3a bij een lagere factor. Bij het stijgen van deze factor, gaat de oplossing van de metaheuristiek vaker beter zijn dan de incumbent die Gurobi geeft. Dit wordt verklaard door het feit dat Gurobi bij een hogere factor een groter oplossingsgebied moet verkennen, waardoor het meer branches moet analyseren wat ervoor zorgt dat de incumbent minder goed zal zijn. Ten tweede merken we op dat de incumbent van Gurobi vaker slechter presteert in vergelijking met de metaheuristiek bij de datasets j90 en j120 dan bij de datasets j30 en j60. De belangrijkste oorzaak hiervan vermoeden we het verschil in CPU-tijd te zijn. De moeilijke probleeminstanties, waarbij de zoekopdracht na 30 seconden werd stopgezet in Gurobi, werden steeds uitgevoerd door het genereren van 5000 schedules, onafhankelijk van het aantal activiteiten in de dataset. Dit zorgde voor een lagere CPU-tijd dan Gurobi voor de dataset met 30 en 60 activiteiten, een ongeveer gelijke CPU-tijd voor de dataset van 90 activiteiten en een hogere CPU-tijd voor de dataset van 120 activiteiten. Door het parallelisme en de efficiëntie van de Gurobi oplosser kan een rechtstreekse vergelijking tot een vertekend beeld leiden. 49

66 Factor % Beter/Gelijk Obj.Meta - Obj.Gurobi CPU-tijdMeta CPU-tijdGurobi % % % % % % % Tab. 4.26: Genetisch algoritme vergeleken met upper bound van Gurobi na 30 seconden voor dataset j30. Factor % Beter/Gelijk Obj.Meta - Obj.Gurobi CPU-tijdMeta CPU-tijdGurobi % % % % % % % Tab. 4.27: Genetisch algoritme vergeleken met upper bound van Gurobi na 30 seconden voor dataset j60. Factor % Beter/Gelijk Obj.Meta - Obj.Gurobi CPU-tijdMeta CPU-tijdGurobi % % % % % % % Tab. 4.28: Genetisch algoritme vergeleken met upper bound van Gurobi na 30 seconden voor dataset j90. 50

67 Factor % Beter/Gelijk Obj.Meta - Obj.Gurobi CPU-tijdMeta CPU-tijdGurobi % % % % % % % Tab. 4.29: Genetisch algoritme vergeleken met upper bound van Gurobi na 30 seconden voor dataset j Veranderende penalty kost voor Earliness en Tardiness Om meer inzicht te krijgen in de implicaties bij veranderende penalty kost voor earliness en tardiness, werden 11 experimenten met het genetisch algoritme uitgevoerd. In elk van deze experimenten werd een verschillende earliness en tardiness penalty aangerekend. Deze experimenten werden uitgevoerd op de hele j30 dataset. De earliness en tardiness penalty zijn per experiment uitgezet in tabel Experiment Earliness-Penalty Tardiness-Penalty Tab. 4.30: Opstelling van de experimenten. Vervolgens werd per experiment de gemiddelde objective berekend, waarna hiervan de makespan werd afgetrokken. Dit resulteerde in de som van de kost voor earliness en de kost voor tardiness. Deze kosten zijn per experiment afgebeeld in figuur 4.4. We zien hierbij dat deze WET-kost een symmetrische vorm heeft, waarbij een omslag gebeurt bij het 5e experiment. Dit kan verklaard worden doordat de oplossingsmethode, bij een relatief hogere earliness penalty, de activiteiten zoveel mogelijk de due date laat overschrijden in plaats van de ready date. Aan de andere kant zal bij een relatief hogere tardiness penalty, de oplossingsmethode de activiteiten zoveel mogelijk de ready date laten overschrijden in plaats van de due date. Volgende figuur 4.5 geeft weer hoeveel activiteiten in het finale schedule een positieve of een negatieve random key hebben (activiteiten die links- 51

68 of rechts-gejustificeerd gescheduled werden). Men kan duidelijk zien dat bij een relatief hogere earliness penalty, de oplossingsmethode de activiteiten meer links zal justificeren, waar bij een relatief hogere tardiness penalty, de oplossingsmethode de activiteiten meer rechts zal justificeren. Dit toont het belang aan van het DSGS, meer bepaald van het rechts-gejustificeerd schedulen van activiteiten bij een hoge tardiness penalty. Fig. 4.4: Gemiddelde Weighted Earliness-Tariness kost voor elk experiment. Fig. 4.5: Totaal aantal positieve en negatieve random key waarden in de DSGS. 52

69 Hoofdstuk 5 Afweging van Methoden Volgende grafieken vergelijken alle metaheuristieken en heuristieken op basis van efficiëntie en effectiviteit. De efficiëntie wordt hierin gemeten aan de hand van het percentage optimale oplossingen of de gemiddelde afwijking van de optimale oplossing. Als maat voor de effectiviteit gebruiken we de CPU-tijd die nodig is om de methode uit te voeren. In de eerste twee grafieken werden respectievelijk het percentage correct en de gemiddelde afwijking van de optimale oplossing van alle methoden, uitgevoerd op de j30 set en het WETMRCuSP, uitgezet. Vervolgens werden voor de j60, j90 en j120 sets enkel de beste methoden weergegeven. Doordat de resultaten van het MRCuSP gelijkaardig zijn, werden deze niet weergegeven. Er kan duidelijk steeds een afweging gemaakt worden tussen de tijd die gebruikt wordt en de kwaliteit van de resultaten. Een opvallend resultaat voor de multi-pass methode en de prioriteitslijsten is dat deze vaak een vrij hoog percentage optimale oplossingen vertonen, maar anderzijds ook een hoge afwijking van de optimale oplossing. Indien de optimale oplossing dus niet door deze methoden werd gevonden, is de oplossing gemiddeld verder verwijderd van de optimale oplossingen dan bij de andere methoden. Dit effect is zeer duidelijk waarneembaar op de figuren 5.5 en 5.6 van dataset j90. De multi-pass methode heeft betere resultaten dan het GA in termen van het percentage van de oplossingen dat optimaal is, maar als we kijken naar de gemiddelde afwijking zien we dat de multi-pass veel slechter presteert dan het GA en de RandomDouble. Een verklaring hiervoor is dat het DSGS de WET goed kan minimaliseren, maar indien het probleem makkelijk is (geen WET of een kleine WET), zal het DSGS door het grote oplossingsgebied niet snel genoeg convergeren naar de optimale oplossing. Aan de andere kant zal het SSGS en het PSGS enkel forward schedulen, waardoor de makkelijke problemen vaak optimaal opgelost worden. Bij de moeilijke problemen zal het oplossingsgebied bij het SSGS en het PSGS echter te klein zijn. Hierdoor zal de gemiddelde afwijking hoger zijn dan bij het DSGS. 53

70 Fig. 5.1: Percentage optimale oplossingen van alle methoden (y-as) op de duurtijd nodig om deze methoden op te lossen (x-as) voor de j30 dataset. Fig. 5.2: Gemiddelde afwijking van de optimale oplossing van alle methoden (y-as in logaritmsche schaal met een basis van 2) op de duurtijd nodig om deze methoden op te lossen (x-as) voor de j30 dataset. 54

71 Fig. 5.3: Percentage optimale oplossingen van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j60 dataset. Fig. 5.4: Gemiddelde afwijking van de optimale oplossing van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j60 dataset. 55

72 Fig. 5.5: Percentage optimale oplossingen van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j90 dataset. Fig. 5.6: Gemiddelde afwijking van de optimale oplossing van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j90 dataset. 56

73 Fig. 5.7: Percentage optimale oplossingen van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j120 dataset. Fig. 5.8: Gemiddelde afwijking van de optimale oplossing van de drie beste methoden (x-as) op de duurtijd nodig om deze methoden op te lossen (y-as) voor de j120 dataset. 57

74

75 Hoofdstuk 6 Slot 6.1 Conclusie Uit het hiervoor beschreven onderzoek kunnen we meerdere interessante conclusies trekken over het MRCuSP en WETMRCuSP. Vooreerst kunnen we besluiten dat vele, maar niet alle, van de probleeminstanties van het MRCuSP snel optimaal opgelost kunnen worden. Bij het WETMRCuSP was het echter duidelijk moeilijker om tot de optimale oplossing te komen. Dit kan men zien aan de gemiddelde CPU-tijd die nodig is om deze verschillende problemen op te lossen. Zowel voor het MRCuSP als het WETMRCuSP hebben we getracht een optimale oplossing voor probleeminstanties te zoeken. Doordat er een deel van de oplossingen niet optimaal gevonden konden worden na 5 minuten, werd de noodzaak van (meta)heuristieken duidelijk. Vervolgens concluderen we dat voor het MRCuSP en WETMRCuSP, de drie beste prioriteitsregels om de optimale oplossing te vinden het SSGS met EDD en MAER en het PSGS met EDD zijn. Bovendien kunnen we voor het WETMRCuSP besluiten dat het PSGS met de EDD, SPT en MAET de beste resultaten leveren in termen van de gemiddelde afwijking van de optimale oplossing. Om tot deze conclusies te komen hebben we eerst en vooral het PSGS en SSGS omgevormd zodat deze toegepast kunnen worden op beide problemen. Vervolgens werden deze SGS met een prioriteitsregel gecombineerd om schedules te genereren. Op elke probleeminstantie werd de multipass methode toegepast door steeds de beste oplossing van de prioriteitslijsten in combinatie met de SGS te houden. Deze methode presteerde goed in het vinden van de optimale oplossingen voor beide problemen. Voor het WETMRCuSP zagen we echter dat indien deze methode de optimale oplossing niet vond, de oplossing vaak een grote afwijking had ten opzichte van de optimale oplossing. We hebben verder ook vastgesteld dat het mogelijk is dat de optimale oplossing van het WET- MRCuSP zich niet altijd in het oplossingsgebied van het SSGS bevindt. Het SSGS werd daarom aangepast door een dimensie toe te voegen die aangeeft of de activiteit links- of rechts-gejustificeerd gescheduled wordt (het DSGS). Er werd aangetoond dat het oplossingsgebied van deze techniek wel altijd de optimale oplossing bevat. Het oplossingsgebied werd door deze uitbreiding wel sterk vergroot. 59

76 Als we dit DSGS gebruiken bij het genereren van 5000 random schedules, zien we dat deze methode een beter percentage optimale oplossingen oplevert dan de PSGS voor het MRCuSP, maar het SSGS niet kan overtreffen. Voor het WETMRCuSP, geeft de DSGS de beste resultaten voor zowel het percentage optimale oplossingen als de gemiddelde afwijking van de optimale oplossing. Wat de genetische algoritmes (GA) betreft, zijn het deze met het DSGS en de one-point crossover of de optel/aftrek crossover die het beste presteren. We hebben hiervoor 1 genetisch algoritme voor het MRCuSP en 5 voor het WETMRCuSP getest. Voor alle GA s werden de beste parameters geselecteerd via een Taguchi Design. We stelden vervolgens vast dat de dubbele justificatie de vooropgestelde methoden zeer snel kan verbeteren. Dit werd getest door de dubbele justificatie aan te passen om compatibel te zijn met het MRCuSP en WETMRCuSP en vervolgens toe te passen op de bekomen schedules uit de andere methoden. Het werd echter ook duidelijk dat deze methode bij dit probleem de makespan kan verhogen. Bij de afweging van de effectiviteit en efficiëntie werd duidelijk dat de multi-pass met dubbele justificatie op een zeer efficiënte manier een effectief resultaat kan vormen. Anderzijds, zagen we dat het genetisch algoritme met dubbele justificatie het effectiefste resultaat gaf, maar waarvan de efficiëntie minder hoog was. De figuren in hoofdstuk 5, waarin de effectiviteit (percentage optimaal of gemiddelde afwijking van de optimale oplossing) uitgezet werd op de efficiëntie (CPU-tijd die nodig is om de methode uit te voeren), maken dit duidelijk. Verder komen we tot de conclusie dat bij een hoge factor en een gelijke CPU-tijd het GA beter presteerde dan de upper bound die Gurobi leverde. Tenslotte raden we aan om bij projecten met een relatief hoge tardiness eerder het DSGS te gebruiken. Het SSGS en PSGS zullen immers alleen maar links-gejustificeerd schedulen, wat voor dit soort problemen niet optimaal is. Ons onderzoek heeft aangetoond dat het DSGS in dit geval wel rechts-gejustificeerd zal schedulen. 6.2 Suggesties voor Verder Onderzoek Omdat we zien dat de multi-pass methode zeer snel een vrij goed resultaat kan vinden, verwachten we dat een uitbreiding naar een multi-pass methode met dynamische en globale prioriteitsregels een competitief resultaat kan bieden voor zowel het MRCuSP als voor het WETMRCuSP. Bovendien zou een prioriteitsregel die in het DSGS zowel de prioriteit als de richting van schedulen bepaalt ook een positief effect kunnen hebben op de resultaten. We zien dat het vergelijken van de heuristische oplossing met de incumbent van Gurobi zeer moeilijk is door het verschil in CPU-tijd van de metaheuristiek en Gurobi. Een interessant vervolg aan dit onderzoek zou een vergelijking zijn waarbij beide methoden een gelijke CPU-tijd krijgen en waarin de GA en zijn codering verfijnd worden zodat deze een hogere efficiëntie en effectiviteit bereiken. De beste parameters voor het genetisch algoritme werden enkel voor de j30 dataset gezocht. Eerst en vooral zien we dat het resultaat steeds verbetert door het aantal individuen waarmee de populatie begint te verhogen. Dit werd slechts getest tot een maximum van 100 individuen. Een voorgestelde verklaring hiervoor is de random generatie van de individuen, waardoor een onder- 60

77 zoek naar het effect van een grotere beginpopulatie interessant kan zijn. Door de goede resultaten van de multi-pass methode verwachten we ook dat een GA met een beginpopulatie die niet volledig random is, maar die half at random en half door de prioriteitsregels werd gegenereerd, betere resultaten zal leveren. Tevens zouden de beste parameters van het GA onderzocht kunnen worden voor de j60, j90 en j120 dataset. In deze thesis werden alle resultaten vergeleken op basis van hun gemiddeld percentage optimaal of hun gemiddelde afwijking van de optimale oplossing over alle 7 factoren. Een interessant toekomstig onderzoek zou een verschil kunnen maken tussen deze factoren en bekijken welke oplossingsmethoden het efficiëntst en het effectiefst zijn bij elke factor apart. Ook zou er een bijkomende onderverdeling gemaakt kunnen worden tussen de verschillende waaarden voor de resource strength en resource factor. Verder zien we dat problemen met een optimale oplossing die geen of slechts een kleine WET penalty hebben, vaak snel optimaal kunnen worden opgelost door de multi-pass methode. De problemen met een optimale oplossing met een hoge WET penalty, werden vaak beter opgelost door de methoden met het DSGS. Ook hier zou een opdeling gemaakt kunnen worden, waarbij de effectiviteit en efficiëntie per oplossingsmethode en per opdeling bekeken worden. Een uitbreiding van het WETMRCuSP, waarbij elke activiteit een verschillende penalty krijgt voor het overschrijden van zijn ready date of due date, zou een hogere praktische bruikbaarheid leveren. Daarenboven zou een reëel project gezocht kunnen worden waarbij deze methoden op hun praktische bruikbaarheid worden getest. Een laatste suggestie, die in deze thesis niet besproken werd, is het bestuderen van het gedrag van de oplossingsmethoden bij een earliness penalty kleiner dan 1. 61

78

79 Literatuur Adelsberger, H. H. & Kanet, J. J. (1991). The leitstand-a new tool for computer integrated manufacturing. Production and Inventory Management Journal, 32 (1), Aggarwal, S. C., Wyman, F. P. & McCarl, B. A. (1973). An investigation of a cost-based rule for job-shop scheduling. International Journal of Production Research, 11 (3), Allen, M. (1963). The efficient utilization of labor under conditions of fluctuating demand. Industrial scheduling, Baker, C. & Dzielinski, B. P. (1960). Simulation of a simplified job shop. Management science, 6 (3), Ballestin, F., Valls, V. & Quintanilla, S. (2006). Due dates and rcpsp. In Perspectives in modern project scheduling (pp ). Springer. Baptiste, P., Le Pape, C. & Nuijten, W. (1999). Satisfiability tests and time-bound adjustmentsfor cumulative scheduling problems. Annals of Operations research, 92, Brânzei, R., Ferrari, G., Fragnelli, V. & Tijs, S. (2002). Two approaches to the problem of sharing delay costs in joint projects. Annals of Operations Research, 109 (1-4), Brucker, P., Drexl, A., Möhring, R., Neumann, K. & Pesch, E. (1999). Resource-constrained project scheduling: Notation, classification, models, and methods. European journal of operational research, 112 (1), Chiu, H. N. & Tsai, D. M. (2002). An efficient search procedure for the resource-constrained multi-project scheduling problem with discounted cash flows. Construction Management & Economics, 20 (1), Conway, R. W. (1964). An experimental investigation of priority assignment in a job shop. Demeulemeester, E. L. & Herroelen, W. S. (2006). Project scheduling: a research handbook (Dl. 49). Springer Science & Business Media. Drezet, L.-E. & Billaut, J.-C. (2008). A project scheduling problem with labour constraints and time-dependent activities requirements. International Journal of Production Economics, 112 (1), French, S. (1982). Sequencing and scheduling: an introduction to the mathematics of the job-shop (Dl. 683). Ellis Horwood Chichester. Goldberg, D. E. & Holland, J. H. (1988). Genetic algorithms and machine learning. Machine learning, 3 (2), Graham, R. L., Lawler, E. L., Lenstra, J. K. & Kan, A. R. (1979). Optimization and approximation in deterministic sequencing and scheduling: a survey. Annals of discrete mathematics, 5,

80 326. Hartmann, S. (1998). A competitive genetic algorithm for resource-constrained project scheduling. Naval Research Logistics (NRL), 45 (7), Hartmann, S. & Briskorn, D. (2010). A survey of variants and extensions of the resource-constrained project scheduling problem. European Journal of Operational Research, 207 (1), Herroelen, W., Demeulemeester, E. & De Reyck, B. (2001). A note on the paper Äúresourceconstrained project scheduling: Notation, classification, models and methods Äù by brucker et al. European Journal of Operational Research, 128 (3), Holland, J. H. (1975). Adaptation in natural and artificial systems: an introductory analysis with applications to biology, control, and artificial intelligence. U Michigan Press. Kis, T. (2005). A branch-and-cut algorithm for scheduling of projects with variable-intensity activities. Mathematical programming, 103 (3), Kis, T. (2006). Rcps with variable intensity activities and feeding precedence constraints. In Perspectives in modern project scheduling (pp ). Springer. Klein, R. & Scholl, A. (2000). Progress: Optimally solving the generalized resource-constrained project scheduling problem. Mathematical Methods of Operations Research, 52 (3), Klein, R., Scholl, A. et al. (1998). Scattered branch and bound: An adaptive search strategy applied to resource-constrained project scheduling (Rapport). Darmstadt Technical University, Department of Business Administration, Economics and Law, Institute for Business Studies (BWL). Kolisch, R. (1996). Serial and parallel resource-constrained project scheduling methods revisited: Theory and computation. European Journal of Operational Research, 90 (2), Kolisch, R. & Hartmann, S. (1999). Heuristic algorithms for the resource-constrained project scheduling problem: Classification and computational analysis. Springer. Kolisch, R. & Sprecher, A. (1997). Psplib-a project scheduling problem library: Or software-orsep operations research software exchange program. European journal of operational research, 96 (1), Leyman, P. & Vanhoucke, M. (2015). A new scheduling technique for the resource constrained project scheduling problem with discounted cash flows. International Journal of Production Research, 53 (9), Neumann, K., Schwindt, C. & Zimmermann, J. (2002). Recent results on resource-constrained project scheduling with time windows: Models, solution methods, and applications. Inst. für Wirtschaftstheorie und Operations-Research. Optimization, G. (2014). Inc. gurobi optimizer reference manual, accessed 27/03/14).[Online]. Available: www. gurobi. com. Özdamar, L., Ulusoy, G. & Bayyigit, M. (1998). A heuristic treatment of tardiness and net present value criteria in resource constrained project scheduling. International Journal of Physical Distribution & Logistics Management, 28 (9/10), Ryser-Welch, P. & Miller, J. F. (2014). A review of hyper-heuristic frameworks. In Proceedings of the evo20 workshop, aisb. Sprecher, A., Kolisch, R. & Drexl, A. (1995). Semi-active, active, and non-delay schedules for the 64

81 resource-constrained project scheduling problem. European Journal of Operational Research, 80 (1), Tobias, A. (1991). Or techniques for use in redesigning manufacturing and associated business systems. European journal of operational research, 51 (2), Valls, V., Ballestin, F. & Quintanilla, S. (2005). Justification and rcpsp: A technique that pays. European Journal of Operational Research, 165 (2), Vanhoucke, M., Demeulemeester, E. & Herroelen, W. (2001). An exact procedure for the resourceconstrained weighted earliness tardiness project scheduling problem. Annals of Operations Research, 102 (1-4), Viana, A. & de Sousa, J. P. (2000). Using metaheuristics in multiobjective resource constrained project scheduling. European Journal of Operational Research, 120 (2), Wiest, J. D. (1964). Some properties of schedules for large projects with limited resources. Operations Research, 12 (3),

82

83 BIJLAGE 67

84 Hoofdstuk A Chi-kwadraat Door middel van de chi-kwadraat methode zullen we de significante invloed van de categorische variabele methode op het percentage optimale oplossingen bewijzen: Gemiddelde Serial EDD: 42.43% 67.34% 75.52% 46.01% 57.82% Serial ERD: 34.72% 56.63% 63.84% 29.09% 46.07% Serial SPT: 22.89% 44.81% 51.80% 16.61% 34.03% Serial LPT: 28.45% 50.14% 58.65% 22.50% 39.93% Serial MAET: 34.22% 60.75% 68.30% 35.13% 49.60% Serial MAER: 38.50% 65.87% 73.63% 40.97% 54.74% Parallel EDD: 39.85% 62.35% 69.36% 37.08% 52.16% Parallel ERD: 35.45% 57.25% 63.97% 29.89% 46.64% Parallel SPT: 35.44% 57.80% 63.88% 29.72% 46.71% Parallel LPT: 34.35% 55.93% 64.20% 28.78% 45.81% Parallel MAET: 39.60% 62.06% 69.23% 36.73% 51.91% Parallel MAER: 38.06% 60.45% 68.38% 35.11% 50.50% Tab. A.1: Percentage optimale oplossingen door prioriteitsregels voor het WETMRCuSP. We zijn echter niet geïnteresseerd in het percentage, maar in het reële aantal. 68

85 Dataset Factor % 71.46% 71.04% 35.21% % 80.00% 80.00% 52.50% % 86.25% 84.17% 63.75% % 89.38% 87.29% 72.08% % 92.71% 91.04% 79.58% % 96.88% 94.79% 82.92% % 97.92% 98.54% 86.88% Tab. A.2: Percentage gevonden oplossingen door Gurobi voor het WETMRCuSP. Elke combinatie van een factor met een dataset komt hierin overeen met = 480 probleeminstanties. We verkrijgen dus volgend aantal door Gurobi gevonden oplossingen: Dataset Factor Som Som Tab. A.3: Reëel aantal gevonden oplossingen door Gurobi voor het WETMRCuSP. De percentages in de tabel in bijlage A.1 zijn dus berekend op een totaal van probleeminstanties. We zijn nu instaat om voor elke methode te berekenen hoeveel instanties er optimaal gevonden werden en hoeveel niet (dit de n ij ). 69

86 Optimal Total Optimal Not optimal Som Serial EDD: 57.82% Serial ERD: 46.07% Serial SPT: 34.03% Serial LPT: 39.93% Serial MAET: 49.60% Serial MAER: 54.74% Parallel EDD: 51.59% Parallel ERD: 45.80% Parallel SPT: 46.08% Parallel LPT: 45.46% Parallel MAET: 51.75% Parallel MAER: 50.21% Som Tab. A.4: n ij voor de Chi-kwadraat. Voor de n ij berekenen we: Optimal Not optimal Som Serial EDD: Serial ERD: Serial SPT: Serial LPT: Serial MAET: Serial MAER: Parallel EDD: Parallel ERD: Parallel SPT: Parallel LPT: Parallel MAET: Parallel MAER: Sum Tab. A.5: n ij voor de Chi-kwadraat. Tenslotte berekenen we (n ij n ij) 2 n ij 70

87 Optimal Not optimal Som Serial EDD: Serial ERD: Serial SPT: Serial LPT: Serial MAET: Serial MAER: Parallel EDD: Parallel ERD: Parallel SPT: Parallel LPT: Parallel MAET: Parallel MAER: Som Tab. A.6: Berekening van de de Chi-kwadraat waarde. We bekomen een chi-kwadraat waarde van uit. We hebben 11 vrijheidgraden, waardoor we kunnen besluiten dat de methoden een significante (p 0.001) invloed uitoefenen op het aantal optimaal opgeloste probleeminstanties. Op dezelfde manier kan de chi-kwadraat waarde berekend worden voor het percentage optimale oplossingen van de prioriteitsregels voor het MRCuSP. We bekomen hiervoor een waarde van , waarbij ook hier de significante invloed wordt bewezen. 71

88 Hoofdstuk B ANOVA Doordat de gemiddelde afwijking van de optimale oplossing op ratio-niveau berekent werd, kunnen we de variantie analyseren om zo de significante invloed van de categorische variabele methode te bewijzen. Omdat het fout inschatten van de feasibility van de heuristiek geen invloed heeft op de gemiddelde afwijking, zullen we deze analyse enkel uitvoeren voor het WETMRCuSP. Omdat de verschillende methoden steeds op dezelfde probleeminstanties werden gestest, maken we gebruik van de Repeated Measures ANOVA. In de eerste figuur B.1, die de resultaten van de multivariate tests laat zien uit SPSS, kunnen we aantonen dat de prioriteitslijst die gebruikt werd een significante invloed uitoefenend op de gemiddelde afwijking van de optimale oplossing. Fig. B.1: Multivariate test van de repeated measures ANOVA. Volgende 6 figuren B.2, B.3, B.4, B.5 en B.6 tonen de pairwise comparisons van de verschillende methoden. We zien dat alle resultaten significant verschillend van elkaar zijn, behalve de 72

89 combinaties 1, 8 en 12 en 6 en 10. Fig. B.2: Pairwise comparison. Fig. B.3: Pairwise comparison. 73

90 Fig. B.4: Pairwise comparison. Fig. B.5: Pairwise comparison. 74

91 Fig. B.6: Pairwise comparison. Fig. B.7: Pairwise comparison. 75

92 Hoofdstuk C Taguchi Design Voor de design of experiments, dat gebruikt werd voor de berekening van de beste parameters voor de genetische algoritmes, werd gebruik gemaakt van volgende Taguchi Design: Aantal Parameters Experiment Tab. C.1: Taguchi Design 76

93 Hoofdstuk D Design of Experiments Resultaten In dit onderdeel worden de gemiddelden van het percentage optimaal, percentage feasible of de gemiddelde afwijking voor elk niveau van de parameter geplot over de 16 experimenten. Belangrijk hierbij is dat indien het percentage optimaal of het percentage feasible geplot wordt (figuren D.1 en D.6), het beste niveau van de parameters correspondeerd met de hoogste waarde. Als de gemiddelde afwijking geplot wordt (figuren D.2, D.3, D.4 en D.5), correspondeert het beste niveau met het laagste waarde. Fig. D.1: DoE van GA1. 77

94 Fig. D.2: DoE van GA2. Fig. D.3: DoE van GA3a. 78

95 Fig. D.4: DoE van GA3b. Fig. D.5: DoE van GA3c. 79

96 Fig. D.6: DoE van GA4. 80

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

Nadere informatie

HET INTRODUCEREN VAN TEAMROTATIE IN EEN PROJECTOMGEVING

HET INTRODUCEREN VAN TEAMROTATIE IN EEN PROJECTOMGEVING UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2014 2015 HET INTRODUCEREN VAN TEAMROTATIE IN EEN PROJECTOMGEVING Masterproef voorgedragen tot het bekomen van de graad van Master of

Nadere informatie

Geheeltallige programmering

Geheeltallige programmering Geheeltallige programmering In een LP probleem zijn alle variabelen reëel. In een geheeltallig probleem blijven doelfunctie en constraints lineair, maar zijn de variabelen geheeltallig. LP: IP: BIP: MIP:

Nadere informatie

Heuristische procedures voor het Multi-Mode Resource Constrained Project Scheduling Problem

Heuristische procedures voor het Multi-Mode Resource Constrained Project Scheduling Problem Faculteit Economie en Bedrijfskunde Heuristische procedures voor het Multi-Mode Resource Constrained Project Scheduling Problem door Frederik DUJARDIN Promotor: Prof. Dr. M. VANHOUCKE Scriptie ingediend

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

Nadere informatie

III.2 De ordening op R en ongelijkheden

III.2 De ordening op R en ongelijkheden III.2 De ordening op R en ongelijkheden In de vorige paragraaf hebben we axioma s gegeven voor de optelling en vermenigvuldiging in R, maar om R vast te leggen moeten we ook ongelijkheden in R beschouwen.

Nadere informatie

EEN SIMULATIESTUDIE VAN DE SCHEDULE CONTROL INDEX

EEN SIMULATIESTUDIE VAN DE SCHEDULE CONTROL INDEX EEN SIMULATIESTUDIE VAN DE SCHEDULE CONTROL INDEX Universiteit Gent Faculteit economie en bedrijfskunde Student X Tussentijds Rapport Promotor: prof. dr. M. Vanhoucke Begeleider: Y Academiejaar 20XX-20XX

Nadere informatie

Tie breaking in de simplex methode

Tie breaking in de simplex methode Tie breaking in de simplex methode Tijdens de Simplexmethode kan op een aantal momenten onduidelijk zijn wat je moet doen: 1. Variabele die de basis in gaat: Zoek de grootste coëfficiënt in de doelfunctie.

Nadere informatie

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel. Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee

Nadere informatie

Tentamen combinatorische optimalisatie Tijd:

Tentamen combinatorische optimalisatie Tijd: Tentamen combinatorische optimalisatie 26-05-2014. Tijd: 9.00-11.30 Tentamen is met gesloten boek. Beschrijf bij elke opgave steeds het belangrijkste idee. Notatie en exacte formulering is van minder belang.

Nadere informatie

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen. Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen. Opmerking vooraf. Een netwerk is een structuur die is opgebouwd met pijlen en knooppunten. Bij het opstellen van

Nadere informatie

Oplossingen Datamining 2II15 Juni 2008

Oplossingen Datamining 2II15 Juni 2008 Oplossingen Datamining II1 Juni 008 1. (Associatieregels) (a) Zijn de volgende beweringen juist of fout? Geef een korte verklaring voor alle juiste beweringen en een tegenvoorbeeld voor alle foute be-weringen:

Nadere informatie

Uitleg van de Hough transformatie

Uitleg van de Hough transformatie Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een

Nadere informatie

Summary in Dutch 179

Summary in Dutch 179 Samenvatting Een belangrijke reden voor het uitvoeren van marktonderzoek is het proberen te achterhalen wat de wensen en ideeën van consumenten zijn met betrekking tot een produkt. De conjuncte analyse

Nadere informatie

DE INVLOED VAN MULTI-SKILLED WERKNEMERS OP EEN PROJECTSCHEMA

DE INVLOED VAN MULTI-SKILLED WERKNEMERS OP EEN PROJECTSCHEMA UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2013 2014 DE INVLOED VAN MULTI-SKILLED WERKNEMERS OP EEN PROJECTSCHEMA Masterproef voorgedragen tot het bekomen van de graad van Master

Nadere informatie

Normering en schaallengte

Normering en schaallengte Bron: www.citogroep.nl Welk cijfer krijg ik met mijn score? Als je weet welke score je ongeveer hebt gehaald, weet je nog niet welk cijfer je hebt. Voor het merendeel van de scores wordt het cijfer bepaald

Nadere informatie

Benaderingsalgoritmen

Benaderingsalgoritmen Benaderingsalgoritmen Eerste hulp bij NP-moeilijkheid 1 Herhaling NP-volledigheid (1) NP: er is een polynomiaal certificaat voor jainstanties dat in polynomiale tijd te controleren is Een probleem A is

Nadere informatie

Universiteit Gent. Faculteit Economie en Bedrijfskunde. Academiejaar 2013 2014

Universiteit Gent. Faculteit Economie en Bedrijfskunde. Academiejaar 2013 2014 Universiteit Gent Faculteit Economie en Bedrijfskunde Academiejaar 2013 2014 KOSTENVOORSPELLING BINNEN PROJECTMANAGEMENT: EEN OVERZICHT VAN DE BELANGRIJKSTE TECHNIEKEN Tussentijds rapport Student X Onder

Nadere informatie

Discrete Wiskunde, College 13. Han Hoogeveen, Utrecht University

Discrete Wiskunde, College 13. Han Hoogeveen, Utrecht University Discrete Wiskunde, College 13 Han Hoogeveen, Utrecht University Algoritme van Kruskal (1) Sorteer de kanten in E op volgorde van lengte; hernummer de kanten zodanig dat c(e 1 ) c(e 2 )... c(e m ) Bij twee

Nadere informatie

PROJECT SCHEDULING EN TEAMEFFICIENTIE

PROJECT SCHEDULING EN TEAMEFFICIENTIE UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2013 2014 PROJECT SCHEDULING EN TEAMEFFICIENTIE Masterproef voorgedragen tot het bekomen van de graad Master of Science in de Toegepaste

Nadere informatie

Heuristische benaderingen voor het Multi-Mode Resource Constrained Project Scheduling Problem

Heuristische benaderingen voor het Multi-Mode Resource Constrained Project Scheduling Problem UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2008 2009 Heuristische benaderingen voor het Multi-Mode Resource Constrained Project Scheduling Problem Masterproef voorgedragen tot het

Nadere informatie

De invloed van milieubewust denken in project scheduling

De invloed van milieubewust denken in project scheduling UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2015 2016 De invloed van milieubewust denken in project scheduling Masterproef voorgedragen tot het bekomen van de graad van Master of

Nadere informatie

Greedy algoritmes. Algoritmiek

Greedy algoritmes. Algoritmiek Greedy algoritmes Algoritmiek Algoritmische technieken Trucs, methoden, paradigma s voor het ontwerpen van algoritmen Dynamisch Programmeren Divide & Conquer Greedy 2 Greedy algoritme Bouwt de oplossing

Nadere informatie

CPU scheduling : introductie

CPU scheduling : introductie CPU scheduling : introductie CPU scheduling nodig bij multiprogrammering doel: een zo hoog mogelijke CPU-bezetting, bij tevreden gebruikers proces bestaat uit afwisselend CPU-bursts en I/O-bursts lengte

Nadere informatie

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken

Nadere informatie

Populaties beschrijven met kansmodellen

Populaties beschrijven met kansmodellen Populaties beschrijven met kansmodellen Prof. dr. Herman Callaert Deze tekst probeert, met voorbeelden, inzicht te geven in de manier waarop je in de statistiek populaties bestudeert. Dat doe je met kansmodellen.

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Figuur 1. Schematisch overzicht van de structuur van het twee-stadia recourse model.

Figuur 1. Schematisch overzicht van de structuur van het twee-stadia recourse model. Samenvatting In dit proefschrift worden planningsproblemen op het gebied van routering en roostering bestudeerd met behulp van wiskundige modellen en (numerieke) optimalisatie. Kenmerkend voor de bestudeerde

Nadere informatie

JOB SHOP SCHEDULING. Job Shop Scheduling. Job Shop Scheduling. Job Shop Scheduling. Single machine and parallel machines. Classic scheduling theory

JOB SHOP SCHEDULING. Job Shop Scheduling. Job Shop Scheduling. Job Shop Scheduling. Single machine and parallel machines. Classic scheduling theory Job Shop Scheduling JOB SHOP SCHEDULING Problem with m machines and n obs Each ob visits some or all of the machines Only once (or multiple times if recirculation is allowed) Each customer order is unique

Nadere informatie

Spider Solitaire is NP-Compleet

Spider Solitaire is NP-Compleet Spider Solitaire is NP-Compleet Kenneth Verstraete 21 april 2016 1 Inleiding Spider Solitaire is een populair kaartspel dat alleen gespeeld wordt. Het werd/wordt standaard bij o.a. Microsoft Windows meegeleverd.

Nadere informatie

Computationele Intelligentie

Computationele Intelligentie Computationele Intelligentie Uitwerking werkcollege Representatie, Ongeïnformeerd zoeken, Heuristisch zoeken 1 lokkenwereld a. De zoekboom die door het dynamische breadth-first search algoritme wordt gegenereerd

Nadere informatie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 22 februari 2009 INDUCTIE & RECURSIE Paragrafen 4.3-4.6 Discrete Structuren Week 3:

Nadere informatie

Examen Statistische Modellen en Data-analyse. Derde Bachelor Wiskunde. 14 januari 2008

Examen Statistische Modellen en Data-analyse. Derde Bachelor Wiskunde. 14 januari 2008 Examen Statistische Modellen en Data-analyse Derde Bachelor Wiskunde 14 januari 2008 Vraag 1 1. Stel dat ɛ N 3 (0, σ 2 I 3 ) en dat Y 0 N(0, σ 2 0) onafhankelijk is van ɛ = (ɛ 1, ɛ 2, ɛ 3 ). Definieer

Nadere informatie

Het toewijzen van prioriteiten in een projectmanagement omgeving

Het toewijzen van prioriteiten in een projectmanagement omgeving UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2010 2012 Het toewijzen van prioriteiten in een projectmanagement omgeving Masterproef voorgedragen tot het bekomen van de graad van Master

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

VERGELIJKENDE STUDIE VAN ALTERNATIEVE ONTWERPWAARDE SCHATTINGEN VAN SIGNIFICANTE GOLFHOOGTE

VERGELIJKENDE STUDIE VAN ALTERNATIEVE ONTWERPWAARDE SCHATTINGEN VAN SIGNIFICANTE GOLFHOOGTE Rapport aan isterie van de Vlaamse Gemeenschap Departement Leefmilieu en Infrastructuur Administratie Waterwegen en Zeewezen AFDELING WATERWEGEN KUST VERGELIJKENDE STUDIE VAN ALTERNATIEVE ONTWERPWAARDE

Nadere informatie

UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE. Case studie over het gebruik van kwaliteitsparameters in projectplanning

UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE. Case studie over het gebruik van kwaliteitsparameters in projectplanning UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2013 2014 Case studie over het gebruik van kwaliteitsparameters in projectplanning Masterproef voorgedragen tot het bekomen van de graad

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 11 Leo van Iersel Technische Universiteit Delft 25 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 1 / 28 Vandaag Vraag Voor welke problemen

Nadere informatie

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University Discrete Wiskunde, College 12 Han Hoogeveen, Utrecht University Dynamische programmering Het basisidee is dat je het probleem stap voor stap oplost Het probleem moet voldoen aan het optimaliteitsprincipe

Nadere informatie

Robuustheid regressiemodel voor kapitaalkosten gebaseerd op aansluitdichtheid

Robuustheid regressiemodel voor kapitaalkosten gebaseerd op aansluitdichtheid Robuustheid regressiemodel voor kapitaalkosten gebaseerd op aansluitdichtheid Dr.ir. P.W. Heijnen Faculteit Techniek, Bestuur en Management Technische Universiteit Delft 22 april 2010 1 1 Introductie De

Nadere informatie

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s. Hoofdstuk 1 Getallenleer 1.1 Priemgetallen 1.1.1 Definitie en eigenschappen Een priemgetal is een natuurlijk getal groter dan 1 dat slechts deelbaar is door 1 en door zichzelf. Om technische redenen wordt

Nadere informatie

Tweede huiswerkopdracht Lineaire algebra 1 Uitwerking en opmerkingen

Tweede huiswerkopdracht Lineaire algebra 1 Uitwerking en opmerkingen Tweede huiswerkopdracht Lineaire algebra 1 en opmerkingen November 10, 2009 Opgave 1 Gegeven een vectorruimte V met deelruimtes U 1 en U 2. Als er geldt dim U 1 = 7, dimu 2 = 9, en dim(u 1 U 2 ) = 4, wat

Nadere informatie

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Jonathan K. Vis 1 Inleiding (blz. 70 72) In dit essay behandelen we bladzijden 70 75 van Donald E. Knuth

Nadere informatie

Examen Algoritmen en Datastructuren III

Examen Algoritmen en Datastructuren III Derde bachelor Informatica Academiejaar 2006 2007, eerste zittijd Examen Algoritmen en Datastructuren III Naam :.............................................................................. 1. (2 pt)

Nadere informatie

De eigen vermogens voor de fusie zullen opgeteld worden in het eigen vermogen na de fusie.

De eigen vermogens voor de fusie zullen opgeteld worden in het eigen vermogen na de fusie. Fusies en absorpties SigmaConso llen White Principieel kan een fusie van twee vennootschappen van dezelfde consolidatiekring geen impact hebben op de geconsolideerde rekeningen. Economisch gezien, wat

Nadere informatie

Hoofdstuk 17: Approximation Algorithms

Hoofdstuk 17: Approximation Algorithms Hoofdstuk 17: Approximation Algorithms Overzicht: Vorige week: Π NP-volledig Π waarschijnlijk niet polynomiaal oplosbaar 2 opties: 1 Optimaal oplossen, niet in polynomiale tijd (B&B, Cutting planes) 2

Nadere informatie

Statistiek voor Natuurkunde Opgavenserie 1: Kansrekening

Statistiek voor Natuurkunde Opgavenserie 1: Kansrekening Statistiek voor Natuurkunde Opgavenserie 1: Kansrekening Inleveren: 12 januari 2011, VOOR het college Afspraken Serie 1 mag gemaakt en ingeleverd worden in tweetallen. Schrijf duidelijk je naam, e-mail

Nadere informatie

Deel I Hoofdstuk 4: Modelleren van Toestand

Deel I Hoofdstuk 4: Modelleren van Toestand Deel I Hoofdstuk 4: Modelleren van Toestand 2005 Prof Dr. O. De Troyer Toestandsmodel pag. 1 Berichten of boodschappen OO is gebaseerd op hoe de reële wereld werkt 2005 Prof. Dr. O. De Troyer Toestandsmodel

Nadere informatie

HOOFDSTUK I - INLEIDENDE BEGRIPPEN

HOOFDSTUK I - INLEIDENDE BEGRIPPEN HOOFDSTUK I - INLEIDENDE BEGRIPPEN 1.1 Waarschijnlijkheidsrekening 1 Beschouw een toevallig experiment (de resultaten zijn aan het toeval te danken) Noem V de verzameling van alle mogelijke uitkomsten

Nadere informatie

Critical Chain Buffer Management

Critical Chain Buffer Management UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2010 2011 Critical Chain Buffer Management Een simulatiestudie tot het correct bepalen van de Project Buffer Masterproef voorgedragen

Nadere informatie

Cover Page. Author: Zhiwei Yang Title: Meta-heuristics for vehicle routing and inventory routing problems Issue Date:

Cover Page. Author: Zhiwei Yang Title: Meta-heuristics for vehicle routing and inventory routing problems Issue Date: Cover Page The handle http://hdl.handle.net/1887/43073 holds various files of this Leiden University dissertation Author: Zhiwei Yang Title: Meta-heuristics for vehicle routing and inventory routing problems

Nadere informatie

Tiende college algoritmiek. 14 april Gretige algoritmen

Tiende college algoritmiek. 14 april Gretige algoritmen College 10 Tiende college algoritmiek 1 april 011 Gretige algoritmen 1 Greedy algorithms Greed = hebzucht Voor oplossen van optimalisatieproblemen Oplossing wordt stap voor stap opgebouwd In elke stap

Nadere informatie

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra College 10 Tiende college algoritmiek mei 013 Gretige algoritmen, Dijkstra 1 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag van n (n 0) eurocent. Alle

Nadere informatie

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte Getallenleer Inleiding op codeertheorie Liliane Van Maldeghem Hendrik Van Maldeghem Cursus voor de vrije ruimte 2 Hoofdstuk 1 Getallenleer 1.1 Priemgetallen 1.1.1 Definitie en eigenschappen Een priemgetal

Nadere informatie

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Tentamen Kunstmatige Intelligentie (INFOB2KI) Tentamen Kunstmatige Intelligentie (INFOB2KI) 30 januari 2014 10:30-12:30 Vooraf Mobiele telefoons dienen uitgeschakeld te zijn. Het tentamen bestaat uit 7 opgaven; in totaal kunnen er 100 punten behaald

Nadere informatie

Non Diffuse Point Based Global Illumination

Non Diffuse Point Based Global Illumination Non Diffuse Point Based Global Illumination Karsten Daemen Thesis voorgedragen tot het behalen van de graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Promotor: Prof. dr.

Nadere informatie

Continuous Learning in Computer Vision S.L. Pintea

Continuous Learning in Computer Vision S.L. Pintea Continuous Learning in Computer Vision S.L. Pintea Continuous Learning in Computer Vision Natura non facit saltus. Gottfried Leibniz Silvia-Laura Pintea Intelligent Sensory Information Systems University

Nadere informatie

HEURISTISCHE OPLOSSINGSMETHODEN VOOR HET TIME-CONSTRAINED PROJECT SCHEDULING PROBLEM

HEURISTISCHE OPLOSSINGSMETHODEN VOOR HET TIME-CONSTRAINED PROJECT SCHEDULING PROBLEM Faculteit Economie en Bedrijfskunde Academiejaar 2010 2011 HEURISTISCHE OPLOSSINGSMETHODEN VOOR HET TIME-CONSTRAINED PROJECT SCHEDULING PROBLEM Masterproef voorgedragen tot het behalen van de graad van

Nadere informatie

In deze les. Het experiment. Hoe bereid je het voor? Een beetje wetenschapsfilosofie. Literatuuronderzoek (1) Het onderwerp.

In deze les. Het experiment. Hoe bereid je het voor? Een beetje wetenschapsfilosofie. Literatuuronderzoek (1) Het onderwerp. In deze les Het experiment Bart de Boer Hoe doe je een experiment? Hoe bereid je het voor? De probleemstelling Literatuuronderzoek Bedenken/kiezen experimentele opstelling Bedenken/kiezen analysevorm Hoe

Nadere informatie

Ruimtemeetkunde deel 1

Ruimtemeetkunde deel 1 Ruimtemeetkunde deel 1 1 Punten We weten reeds dat Π 0 het meetkundig model is voor de vectorruimte R 2. We definiëren nu op dezelfde manier E 0 als meetkundig model voor de vectorruimte R 3. De elementen

Nadere informatie

1. Een kortste pad probleem in een netwerk kan worden gemodelleerd als a. een LP probleem. b. een IP probleem. c. een BIP probleem. d.

1. Een kortste pad probleem in een netwerk kan worden gemodelleerd als a. een LP probleem. b. een IP probleem. c. een BIP probleem. d. 1. Een kortste pad probleem in een netwerk kan worden gemodelleerd als a. een LP probleem. b. een IP probleem. c. een BIP probleem. d. een toewijzingsprobleem. 2. Het aantal toegelaten hoekpunten in een

Nadere informatie

De Minimax-Stelling en Nash-Evenwichten

De Minimax-Stelling en Nash-Evenwichten De Minima-Stelling en Nash-Evenwichten Sebastiaan A. Terwijn Radboud Universiteit Nijmegen Afdeling Wiskunde 20 september 2010 Dit is een bijlage bij het eerstejaars keuzevak Wiskunde, Politiek, en Economie.

Nadere informatie

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit.

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit. Labo IDP In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. K L A XOR N B XOR P M D AND Q AND C O OR E R R Tuesday 15 December 2009 Figuur 1: Een logisch circuit. Veronderstel

Nadere informatie

l e x e voor alle e E

l e x e voor alle e E Geselecteerde uitwerkingen Werkcollege Introduceer beslissingsvariabelen x e met x e = als lijn e in de boom zit en anders x e = 0. De doelfunctie wordt: min e E l e x e Voor elke deelverzameling S V met

Nadere informatie

Computationele Intelligentie

Computationele Intelligentie Computationele Intelligentie Uitwerking werkcollege Representatie, Ongeïnformeerd zoeken, Heuristisch zoeken 1 lokkenwereld a. De zoekboom die door het dynamische breadth-first search algoritme wordt gegenereerd

Nadere informatie

Lights Out. 1 Inleiding

Lights Out. 1 Inleiding Lights Out 1 Inleiding Het spel Lights Out is een elektronisch spel dat gelanceerd werd in 1995 door Tiger Electronics. Het originele spel heeft een bord met 25 lampjes in een rooster van 5 rijen en 5

Nadere informatie

mlw stroom 2.2 Biostatistiek en Epidemiologie College 9: Herhaalde metingen (2) Syllabus Afhankelijke Data Hoofdstuk 4, 5.1, 5.2

mlw stroom 2.2 Biostatistiek en Epidemiologie College 9: Herhaalde metingen (2) Syllabus Afhankelijke Data Hoofdstuk 4, 5.1, 5.2 mlw stroom 2.2 Biostatistiek en Epidemiologie College 9: Herhaalde metingen (2) Syllabus Afhankelijke Data Hoofdstuk 4, 5.1, 5.2 Bjorn Winkens Methodologie en Statistiek Universiteit Maastricht 21 maart

Nadere informatie

Examen Organisatie van het productieproces juni 2019

Examen Organisatie van het productieproces juni 2019 Examen Organisatie van het productieproces juni 2019 Vraag 1: 8 punten Er zijn 2 stations, en elk station heeft zijn eigen queue. Station 1 snijdt de tegels, en station 2 bewerkt ze verder. Er komen 120

Nadere informatie

Opgaven Functies en Reeksen. E.P. van den Ban

Opgaven Functies en Reeksen. E.P. van den Ban Opgaven Functies en Reeksen E.P. van den Ban c Mathematisch Instituut Universiteit Utrecht Augustus 2014 1 Opgaven bij Hoofdstuk 1 Opgave 1.1 Zij f : R n R partieel differentieerbaar naar iedere variabele

Nadere informatie

Radboud Universiteit Nijmegen

Radboud Universiteit Nijmegen Radboud Universiteit Nijmegen Faculteit der Natuurwetenschappen, Wiskunde en Informatica L(,1)-labeling van grafen Naam: Studentnummer: Studie: Begeleider: Myrte klein Brink 4166140 Bachelor Wiskunde Dr.

Nadere informatie

Project Management (H 9.8 + H 22 op CD-ROM)

Project Management (H 9.8 + H 22 op CD-ROM) Project Management (H 9.8 + H 22 op CD-ROM) CPM (Critical Path Method) Activiteiten met afhankelijkheden en vaste duur zijn gegeven. CPM bepaalt de minimale doorlooptijd van het project. PERT (Program

Nadere informatie

Infor LN Service Gebruikershandleiding afvlakken werklast

Infor LN Service Gebruikershandleiding afvlakken werklast Infor LN Service Gebruikershandleiding afvlakken werklast Publicatiegegevens Documentcode Release Aangemaakt op tsworkloadlevug (U9868) Cloud Edition (10.4.2) 23 april 2016 Inhoudsopgave Documentinfo Hoofdstuk

Nadere informatie

Bespreking Examen Analyse 1 (Augustus 2007)

Bespreking Examen Analyse 1 (Augustus 2007) Bespreking Examen Analyse 1 (Augustus 2007) Vooraf: Zoals het stilletjes aan een traditie is geworden, geef ik hier bedenkingen bij het examen van deze septemberzittijd. Ik zorg ervoor dat deze tekst op

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Zoeken met beperkt geheugen. Zoekalgoritmen ( ) College 7: Zoeken met beperkt geheugen. Een representatie van het kleuringsprobleem

Zoeken met beperkt geheugen. Zoekalgoritmen ( ) College 7: Zoeken met beperkt geheugen. Een representatie van het kleuringsprobleem Zoeken met beperkt geheugen Zoekalgoritmen (2009 2010) College 7: Zoeken met beperkt geheugen Dirk Thierens, Tekst: Linda van der Gaag algoritmen voor zoeken met beperkt geheugen zijn ontwikkeld voor problemen

Nadere informatie

Referentieniveaus uitgelegd. 1S - rekenen Vaardigheden referentieniveau 1S rekenen. 1F - rekenen Vaardigheden referentieniveau 1F rekenen

Referentieniveaus uitgelegd. 1S - rekenen Vaardigheden referentieniveau 1S rekenen. 1F - rekenen Vaardigheden referentieniveau 1F rekenen Referentieniveaus uitgelegd De beschrijvingen zijn gebaseerd op het Referentiekader taal en rekenen'. In 'Referentieniveaus uitgelegd' zijn de niveaus voor de verschillende sectoren goed zichtbaar. Door

Nadere informatie

Infor LN Service Gebruikershandleiding afvlakken werklast

Infor LN Service Gebruikershandleiding afvlakken werklast Infor LN Service Gebruikershandleiding afvlakken werklast Copyright 2017 Infor Alle rechten voorbehouden. De woord- en beeldmerken hierin beschreven zijn handelsmerken en/of gedeponeerde handelsmerken

Nadere informatie

Het minimale aantal sleutels op niveau h is derhalve

Het minimale aantal sleutels op niveau h is derhalve 1 (a) In een B-boom van orde m bevat de wortel minimaal 1 sleutel en maximaal m 1 sleutels De andere knopen bevatten minimaal m 1 sleutels en maximaal m 1 sleutels (b) In een B-boom van orde 5 bevat elke

Nadere informatie

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

Nadere informatie

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University Optimalisering en Complexiteit, College 1 Han Hoogeveen, Utrecht University Gegevens Docent : Han Hoogeveen : j.a.hoogeveen@uu.nl Vak website : http://www.cs.uu.nl/docs/vakken/opt/ Student assistenten

Nadere informatie

Cover Page. The handle http://hdl.handle.net/1887/29754 holds various files of this Leiden University dissertation

Cover Page. The handle http://hdl.handle.net/1887/29754 holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/29754 holds various files of this Leiden University dissertation Author: Cao, Lu Title: Biological model representation and analysis Issue Date: 2014-11-20

Nadere informatie

I.3 Functies. I.3.2 Voorbeeld. De afbeeldingen f: R R, x x 2 en g: R R, x x 2 zijn dus gelijk, ook al zijn ze gegeven door verschillende formules.

I.3 Functies. I.3.2 Voorbeeld. De afbeeldingen f: R R, x x 2 en g: R R, x x 2 zijn dus gelijk, ook al zijn ze gegeven door verschillende formules. I.3 Functies Iedereen is ongetwijfeld in veel situaties het begrip functie tegengekomen; vaak als een voorschrift dat aan elk getal een ander getal toevoegt, bijvoorbeeld de functie fx = x die aan elk

Nadere informatie

n-queens Local Search met Conflict Minimalizatie

n-queens Local Search met Conflict Minimalizatie n-queens Local Search met Conflict Minimalizatie Efficient Local Search with Conflict Minimalization: A Case Study of the n-queens Problem, door Rok Sosič en Jun Gu. Sjoerd van Egmond svegmond@liacs.nl

Nadere informatie

Wetenschappelijk Instituut Volksgezondheid. Verwerking van gecensureerde waarden

Wetenschappelijk Instituut Volksgezondheid. Verwerking van gecensureerde waarden Wetenschappelijk Instituut Volksgezondheid Dienst Kwaliteit van medische laboratoria Verwerking van gecensureerde waarden 1 ste versie Pr. Albert (februari 2002) 2 de versie Aangepast door WIV (toepassingsdatum:

Nadere informatie

Netwerkdiagram voor een project. AON: Activities On Nodes - activiteiten op knooppunten

Netwerkdiagram voor een project. AON: Activities On Nodes - activiteiten op knooppunten Netwerkdiagram voor een project. AON: Activities On Nodes - activiteiten op knooppunten Opmerking vooraf. Een netwerk is een structuur die is opgebouwd met pijlen en knooppunten. Bij het opstellen van

Nadere informatie

Temperatuur logger synchronisatie

Temperatuur logger synchronisatie Temperatuur logger synchronisatie Juni 10, 2010 1 / 7 Temperatuur logger synchronisatie Introductie Twee of meerdere ontvangers van het Multilogger systeem kunnen met de temperature logger synchronisatie

Nadere informatie

Overzicht. Inleiding. Modellering. Insertie heuristieken. Voorbeeld: CVV. Local Search. Meta heuristieken. Vehicle Routing Problem 1

Overzicht. Inleiding. Modellering. Insertie heuristieken. Voorbeeld: CVV. Local Search. Meta heuristieken. Vehicle Routing Problem 1 Overzicht Inleiding Modellering Insertie heuristieken Voorbeeld: CVV Local Search Meta heuristieken Vehicle Routing Problem 1 Inleiding Gegeven Depot-knoop 0 Klant-knopen i met vraag q i, i = 1,..., n

Nadere informatie

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur.

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur. Universiteit Utrecht Faculteit Wiskunde en Informatica Examen Optimalisering op maandag 18 april 2005, 9.00-12.00 uur. De opgaven dienen duidelijk uitgewerkt te zijn en netjes ingeleverd te worden. Schrijf

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 12 Leo van Iersel Technische Universiteit Delft 7 december 2016 Leo van Iersel (TUD) TW2020 Optimalisering 7 december 2016 1 / 25 Volgende week: Study guide Vragenuurtje

Nadere informatie

Numerieke aspecten van de vergelijking van Cantor. Opgedragen aan Th. J. Dekker. H. W. Lenstra, Jr.

Numerieke aspecten van de vergelijking van Cantor. Opgedragen aan Th. J. Dekker. H. W. Lenstra, Jr. Numerieke aspecten van de vergelijking van Cantor Opgedragen aan Th. J. Dekker H. W. Lenstra, Jr. Uit de lineaire algebra is bekend dat het aantal oplossingen van een systeem lineaire vergelijkingen gelijk

Nadere informatie

Constraint satisfaction. Computationele Intelligentie. Voorbeelden. Een constraint satisfaction probleem. Constraint Satisfaction

Constraint satisfaction. Computationele Intelligentie. Voorbeelden. Een constraint satisfaction probleem. Constraint Satisfaction Constraint satisfaction Computationele Intelligentie Constraint Satisfaction Een constraint satisfaction probleem (CSP) bestaat uit: een verzameling variabelen; een domein van waarden voor elke variabele;

Nadere informatie

Containers stapelen. M.L. Koning april 2013

Containers stapelen. M.L. Koning april 2013 Technische Universiteit Eindhoven 2WH03 - Modelleren C Containers stapelen L. van Hees 0769244 M.L. Koning 0781346 2 april 2013 Y.W.A Meeuwenberg 0769217 1 Inleiding De NS vervoert dagelijks grote hoeveelheden

Nadere informatie

From Alife Agents to a Kingdom of Queens

From Alife Agents to a Kingdom of Queens From Alife Agents to a Kingdom of Queens Bob Wansink 27 Mei 2010 Deze notitie is een vrije vertaling en uitleg van het gelijknamige artikel in Intelligent Agent Technology: Systems, Methodologies, and

Nadere informatie

Local search. Han Hoogeveen CGN A februari, 2009

Local search. Han Hoogeveen CGN A februari, 2009 1 Local search Han Hoogeveen CGN A312 j.a.hoogeveen@cs.uu.nl www.cs.uu.nl/docs/vakken/opt/colleges.html 4 februari, 2009 2 Inhoud vandaag In totaal vier uur Slides staan al op het web www.cs.uu.nl/docs/vakken/opt/colleges.html

Nadere informatie

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra Algoritmiek 017/Gretige Algoritmen Tiende college algoritmiek 13/1 april 017 Gretige Algoritmen Algoritme van Dijkstra 1 Algoritmiek 017/Gretige Algoritmen Muntenprobleem Gegeven onbeperkt veel munten

Nadere informatie

User Profile Repository Testrapportage kwaliteit

User Profile Repository Testrapportage kwaliteit CatchPlus User Profile Repository Testrapportage kwaliteit Versie 1.1 User Profile Repository Testrapportage kwaliteit Versie: 1.1 Publicatiedatum: 20-4-2012 Vertrouwelijk GridLine B.V., 2012 Pagina 1

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

Begrenzing van het aantal iteraties in het max-flow algoritme

Begrenzing van het aantal iteraties in het max-flow algoritme Begrenzing van het aantal iteraties in het max-flow algoritme Het oplossen van het maximum stroom probleem met behulp van stroomvermeerderende paden werkt, maar het aantal iteraties kan aardig de spuigaten

Nadere informatie

HEURISTISCHE BENADERING VOOR HET MULTI-MODE RESOURCE-CONSTRAINED PROJECT SCHEDULING PROBLEEM MET NETTO-ACTUELE DOELWAARDE FUNCTIE

HEURISTISCHE BENADERING VOOR HET MULTI-MODE RESOURCE-CONSTRAINED PROJECT SCHEDULING PROBLEEM MET NETTO-ACTUELE DOELWAARDE FUNCTIE < UNIVERSITEIT GENT FACULTEIT ECONOMIE EN BEDRIJFSKUNDE ACADEMIEJAAR 2009 2010 HEURISTISCHE BENADERING VOOR HET MULTI-MODE RESOURCE-CONSTRAINED PROJECT SCHEDULING PROBLEEM MET NETTO-ACTUELE DOELWAARDE

Nadere informatie