Het Inventory Routing Probleem (IRP) met...

135
Wouter Travers beperkingen. bevoorradingstijdvensters en het personeelsuurrooster Het Inventory Routing Probleem (IRP) met Academiejaar 2010-2011 Faculteit Ingenieurswetenschappen en Architectuur Voorzitter: prof. dr. El-Houssaine Aghezzaf Vakgroep Technische Bedrijfsvoering operationeel onderzoek Master in de ingenieurswetenschappen: bedrijfskundige systeemtechnieken en Masterproef ingediend tot het behalen van de academische graad van Begeleider: Yiqing Zhong Promotor: prof. dr. El-Houssaine Aghezzaf

Transcript of Het Inventory Routing Probleem (IRP) met...

Page 1: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

Wouter Travers

beperkingen.bevoorradingstijdvensters en het personeelsuurroosterHet Inventory Routing Probleem (IRP) met

Academiejaar 2010-2011Faculteit Ingenieurswetenschappen en ArchitectuurVoorzitter: prof. dr. El-Houssaine AghezzafVakgroep Technische Bedrijfsvoering

operationeel onderzoekMaster in de ingenieurswetenschappen: bedrijfskundige systeemtechnieken en

Masterproef ingediend tot het behalen van de academische graad van

Begeleider: Yiqing ZhongPromotor: prof. dr. El-Houssaine Aghezzaf

Page 2: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times
Page 3: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

Wouter Travers

beperkingen.bevoorradingstijdvensters en het personeelsuurroosterHet Inventory Routing Probleem (IRP) met

Academiejaar 2010-2011Faculteit Ingenieurswetenschappen en ArchitectuurVoorzitter: prof. dr. El-Houssaine AghezzafVakgroep Technische Bedrijfsvoering

operationeel onderzoekMaster in de ingenieurswetenschappen: bedrijfskundige systeemtechnieken en

Masterproef ingediend tot het behalen van de academische graad van

Begeleider: Yiqing ZhongPromotor: prof. dr. El-Houssaine Aghezzaf

Page 4: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

PERMISSION

De auteur geeft de toelating deze masterproef voor consultatie beschikbaar te stellen en delen van de

masterproef te kopiëren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van

het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te

vermelden bij het aanhalen van resultaten uit deze scriptie.

The author gives the permission to use this thesis for consultation and to copy parts of it for personal

use. Every other use is subject to the copyright laws, more specifically the source must be extensively

specified when using results from this thesis.

Gent, Juni 2011

De promotor De auteur

Prof. Dr. El-Houssaine Aghezzaf Wouter Travers

Page 5: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

Woord vooraf Hiermee wil ik iedereen bedanken die op één of andere wijze bijgedragen heeft bij het tot stand

komen van deze thesis. Familie en vrienden voor de mentale ruggensteun, de diverse internetfora

voor het leveren van code fragmenten en oplossingen, Mevr. Carine De Bruycker voor de

spellingscontrole en bovenal mijn ouders voor de welgekomen mentale en financiële steun

gedurende mijn studies. Met bijzondere dank ook aan mijn promotor Prof. Dr. El-Houssaine Aghezzaf

voor de sturing en ondersteuning van mijn thesis.

Page 6: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

HET INVENTORY ROUTING PROBLEEM (IRP) MET

BEVOORRADINGSTIJDSVENSTERS EN HET PERSONEELSUURROOSTER

BEPERKINGEN D O O R

WO U T E R T R A V E R S

SC R I P T I E I N G E D I E N D T O T H E T B E H A L E N V A N D E A C A D E M I S C H E G R A A D V A N

M A S T E R I N D E I N G E N I E U R S W E T E N S C H A P P E N :

BE D R I J F S K U N D I G E S Y S T E E M T E C H N I E K E N E N O P E R A T I O N E E L O N D E R Z O E K

AC A D E M I E J A A R 2010-2011

PR O M O T O R E N : PR O F . D R . E L -H O U S S A I N E A G H E Z Z A F

SC R I P T I E B E G E L E I D E R S : Y I Q I N G Z H O N G

F A C U L T E I T I N G E N I E U R S W E T E N S C H A P P E N

UN I V E R S I T E I T G E N T

V A K G R O E P T E C H N I S C H E B E D R I J F S V O E R I N G

V O O R Z I T T E R : PR O F . D R . EL -H O U S S A I N E AG H E Z Z A F

Samenvatting Deze scriptie behandelt het “Inventory Routing” probleem (IRP) met tijdvensters en verplichte

opname van pauzes in de route planning. Dit probleem stelt zich indien een “Vendor Managed

Inventory, (VMI)” strategie wordt gevolgd. In het kader van VMI neemt de leverancier volledige

verantwoordelijkheid voor het bijhouden en beheren van de voorraad voor zijn afnemers (inclusief

de beslissingen tot herbevoorrading). Zowel de te leveren hoeveelheid als de gebruikte routes dienen

bepaald te worden. De klant moet hierbij geleverd worden binnen een gegeven

bevoorradingstijdvenster (bv. Tussen 10 en 11u) zonder dat er ooit voorraadbreuk optreed. Dit

probleem is vooralsnog niet exact op te lossen, daarom wordt gebruik gemaakt van een

benaderingsmethode en een heuristiek om een “lage” bovengrens te bekomen.

Trefwoorden Driver Availability, Vendor Managed Inventory, Inventory Routing Problem, Supply Chain

Management, Combinatorische Optimalisatie

Page 7: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

THE INVENTORY ROUTING PROBLEM WITH TIME WINDOWS AND

PERSONNEL SCHEDULING LIMITATIONS Wouter Travers

Supervisor(s): prof. Dr. El-Houssaine Aghezzaf

Abstract This article studies both a heuristic and an

approximation method for optimizing an Inventory Routing

Problem with time windows (IRPTW) that also considers drivers’

breaks. The heuristic method uses different Vehicle Routing

Problem heuristics (with Time Windows (VRPTW)) that has been

adapted to consider drivers’ breaks. By using various meta-

heuristics the diversity in VRPTW solutions augments, which

benefits the IRPTW heuristic. The approximation method on the

other hand uses Lagrangian Relaxation to decompose the problem

in a Routing and Inventory sub problem.

Keywords Combinatorial Optimization, Inventory Routing

Problem, Time Windows, Drivers Break

I . IN T R O D U C T I O N

We consider a generic Inventory Routing Problem (IRP)

with time windows (TW) and simplified personnel scheduling

limitations. We build up to this model by first studying

several heuristic methods for solving a Vehicle Routing

Problem with time windows. Next an exact method for a

simplified IRP model is implemented using a Branch and Cut

algorithm. Afterwards a Surrogate Sub gradient is used to

approximately solve an IRP model adapted for time windows.

Finally a heuristics approach is considered.

I I . TH E R O U T I N G S U B P R O B L E M

Four meta-heuristics are used for solving the VRPTW.

These heuristics are adapted to consider three breaks: a

morning and afternoon break of 15 minutes and a lunch

break of 45 minutes. These breaks have to be imbedded in

the drivers’ schedule. Although this is not nearly enough to

be in accordance to EU Legislation, it does provide some

personnel scheduling limitations.

The four applied meta-heuristics are: an Ants Colony

System (ACS)[1], an Improved Greedy Randomized Adaptive

Search Procedure (GRASP)[2], a Hybrid Tabu-Search and

Simulated Annealing (TSSA)[3], and a Variable

Neighbourhood Search (VNS)[4]. The VNS consistently

outperforms the other meta-heuristics on the Solomon test

cases, although it has to be mentioned the effectiveness of

both the TSSA and the GRASP has been lowered to augment

the flexibility. The heuristics have been implemented in

MATLAB 2010b. Figure 1 illustrates the VRPTW heuristics on

the first 15 customers of the C101 Solomon test case. The

data is summerized in the first graph, it includes the time

windows (B/E TW), the service time (ST) and the determinic

demand (D).

I I I . TH E IN V E N T O R Y R O U T I N G PR O B L E M

An exact Branch and Cut algorithm is applied on a

simplified IRP which provides a Lower Bound for the

problem, the model is based on the work of Archetti et al. [5]

The IRP is simplified by only allowing one vehicle.

The model is implemented in IBM ILOG 6.3 and employs

CPLEX cuts instead of the dynamic cuts proposed by Archetti

et al. However, due to the simplifications the quality of the

bound is subpar, making the Lower Bound close to irrelevant

for the problem setting.

Therefor we explore the approximation method provided

by Yu, Chen and Chu. [6] Their IRP model is first modified to

consider time windows. Arc’s infringing the time windows are

excluded; a binary variable (=“1” if route (i, j) is

possible, “0” otherwise) is used to impose this restriction.

The following constraint is added to the model of Yu, Chen

and Chu:

Where:

N: Number of customers

T: Number of periods

: Number of times arc (i, j) is used in period t

Using the Lagrangian Relaxation technique the IRP model

can be decomposed in a Routing and Inventory sub model.

The following five constraints are relaxed:

(∑

) ∑

FIGURE 1: VRPTW-DATA & HEURISTIC SOLUTIONS

2

14

12

15

13

10

11

9

8

6

7

4

3

5

1

Total Distance

= 376

ACS

2

1412

15

13

10

11

9

8

6

7

4

3

5

1

B.TW:727

E:TW:782

ST:90

D:10

B.TW:534

E:TW:605

ST:90

D:10B.TW:621

E:TW:702

ST:90

D:20

B.TW:448

E:TW:505

ST:90

D:10

B.TW:567

E:TW:620

ST:90

D:10

B.TW:652

E:TW:721

ST:90

D:20

B.TW:384

E:TW:429

ST:90

D:40

B.TW:30

E:TW:92

ST:90

D:30B.TW:357

E:TW:410

ST:90

D:10

B.TW:255

E:TW:324

ST:90

D:20

B.TW:170

E:TW:225

ST:90

D:20B.TW:15

E:TW:67

ST:90

D:10

B.TW:912

E:TW:967

ST:90

D:10

B.TW:65

E:TW:146

ST:90

D:10

B.TW:825

E:TW:870

ST:90

D:30

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Total Distance

= 203

TSSA

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Total Distance

= 173GRASP

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Total Distance

= 178

VNS

Page 8: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

( )

( )

Where:

M: Number of vehicles

: Quantity transported by vehicle m, over arc (0, i)

in period t

: Quantity transported over arc (i, j) in period t

: Binary variable; “1” if vehicle m is used to go to

customer i in period t, “0” otherwise

: Vehicle capacity

Relaxing these constraints enables us to separate the

Routing and Inventory decision variables (( ) &

( )) and decompose the model. Given that this isn’t

an exact decomposition a Surrogate Sub gradient method is

used to solve the model. First the sub models are

independently solved with the multipliers ( ) set to zero.

( , -) These multipliers are then updated using the

following formula:

* +

Where:

k= Number of iteration

S= Calculated step size

g= Gradients

The sub models are then recalculated using the updated

multipliers and the values for from the

previous iteration. The iterations stop when certain criteria’s

are met. In order to retrieve a feasible solution the variables

and from the final iteration are inputted in the

IRP(TW) model. This provides us with a feasible value for

(=Order Quantity for customer i in period t). The Order

Quantity ( ) then serves as input variable for a VRPTW

heuristic. This way a feasible solution for the IRPTW with

breaks can be determined. The Surrogate Sub gradient and

the different models are all implemented in IBM ILOG 6.3.

After the approximation approach a heuristic approach is

considered. The developed heuristic leaves the inventory

costs out of the equation and focuses on minimizing the

number of vehicles and travelled distance. (Figure 2)

An initial solution is determined by ordering X times the

current demand when a stock-out should occur (Inventory

( ) 0). For the test cases three times the current demand

is ordered. The heuristic then takes a route out of the busiest

period and plans it in the previous period. The extracted

route is the route most likely to be compatible to other

routes, augmenting the chance that the route can be inserted

in the other routes. In certain cases the order quantity is

lowered, but only when this leads to a decrease in the

number of routes. Adjustments are made and the iteration

starts over. The loop stops when certain criteria’s are met.

FIGURE 2: IRPTW HEURISTIC

The heuristic applies the VRPTW heuristics as described

before to determine the routes in each period. The diversity

provided by using different meta-heuristics seems to benefits

the IRPTW heuristic. There seems to no one VRPTW meta-

heuristic that consistently provides the best solution within

the IRPTW heuristic, although the ACS does seems to come

out on top quite often.

TABLE 1: SAVINGS COMPARED TO INITIAL SOLUTION

Method C1 (1-3) R2 (1-3) RC2(1-3) Average

TSSA 12% 18% 22% 18%

VNS 14% 20% 13% 15%

GRASP 9% 20% 23% 17%

ACS 11% 25% 21% 19%

Approximation 9% -8% 18% 7%

IV. C O N C L U S I O N

Test cases for the IRPTW are developed based on the

SOLOMON test cases (C1, R2 and RC2) for the VRPTW. Table

1 shows the savings compared to the initial solution (=

ordering three times the current demand when a stock-out

should occur) for those test cases.

Not surprisingly the approximation approach provides the

best inventory costs for all the test cases. The transport costs

however are quite high. If the emphasis is on the transport

costs the heuristic approach clearly outperforms the

approximation approach. This becomes very apparent in

customer sets R2. Here the transport aspect weighs much

more on the total costs than the inventory aspect. The

preferred method thus depends on the weight given to those

mayor cost factors. The weight used gives the heuristic

approach the edge over the approximation method.

R E F E R E N CE S

[1] Tong, Z., et al. Hybrid Ant Colony Algorithm for the Vehicle Routing with Time Windows. in Computing, Communication, Control, and Management, 2008. CCCM '08. ISECS International Colloquium on. 2008. [2] Li, Z. and Orchard, Improved GRASP with Tabu search for vehicle routing with both time window and limited number of vehicles Innovations in Applied Artificial Intelligence. Vol. 3029. 2004. [3] R.Thangiah, S., I.H. Osman, and T. Sun, Hybrid Genetic Algorithm, Simulated Annealing and Tabu Search Methods for Vehicle Routing Problems with Time Windows. Report SRU CpSc-TR-94-27, 1994. [4] Bräysy, O., A reactive variable neighborhood search for the vehicle-routing problem with time windows. INFORMS journal on computing, 2003. 15(4): p. 347. [5] Archetti, C., et al., A Branch-and-Cut Algorithm for a Vendor-Managed Inventory-Routing Problem. Transportation Science, 2007. 41(3): p. 382-391. [6] Yu, Y., H. Chen, and F. Chu, A new model and hybrid approach for large scale inventory routing problems. European Journal of Operational Research, 2008. 189(3): p. 1022-1040.

Determine

initial Order

Quantity

Execute a

VRPTW for

each period

Busiest

period?

Route to

take out?

Reschedule

route

Make adjustments

and check for

stock-outs

#

routes

For busiest

period

Which period

to adjust

Page 9: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

VII Inhoudsopgave

Inhoudsopgave Afkortingen ............................................................................................................................................. IX

1 Inleiding ........................................................................................................................................... 1

1.1 Inventory Routing Probleem ................................................................................................... 2

1.2 Voorbeeld ................................................................................................................................ 4

1.3 Aanpak ..................................................................................................................................... 8

2 Het Vehicle Routing Probleem ........................................................................................................ 9

2.1 Inleiding ................................................................................................................................... 9

2.2 Exacte algoritmen voor een VRPTW ...................................................................................... 11

2.2.1 Complexiteit van het VRPTW ........................................................................................ 11

2.2.2 Polythoop van een VRPTW ............................................................................................ 11

2.2.3 Exacte decompositie...................................................................................................... 12

2.3 Heuristiek voor een VRPTW .................................................................................................. 13

2.3.1 Push Forward Insertion Heuristiek ................................................................................ 14

2.3.2 Hybride Tabu Search en Simulating Annealing ............................................................. 16

2.3.3 Improved Greedy Randomized Adaptive Search Procedure ......................................... 22

2.3.4 Variable Neighbourhood Search ................................................................................... 28

2.3.5 Ants Colony System ....................................................................................................... 32

2.3.6 Conclusies ...................................................................................................................... 36

3 Het Inventory Routing Probleem................................................................................................... 38

3.1 Een basis IRP Model .............................................................................................................. 38

3.1.1 Model P ......................................................................................................................... 38

3.2 Een Branch en Cut algoritme voor een IRP ........................................................................... 41

3.2.1 Model BC ....................................................................................................................... 41

3.3 Benaderingsmethode voor een IRPTW model ...................................................................... 47

3.3.1 Beperking oplossingsruimte .......................................................................................... 47

3.3.2 Een hybride aanpak voor het IRPTW model .................................................................. 49

3.4 Heuristieken voor een IRPTW model .................................................................................... 63

3.4.1 IRPTW via een GA en een VNS VRPTW heuristiek ......................................................... 63

3.4.2 Een optimalisatie heuristiek .......................................................................................... 72

3.4.3 Kleinste bovengrens ...................................................................................................... 84

4 Vergelijkende resultaten ............................................................................................................... 87

5 Conclusie ....................................................................................................................................... 90

Referenties ............................................................................................................................................ 91

Page 10: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

VIII Inhoudsopgave

Lijst met figuren ..................................................................................................................................... 96

Lijst met tabellen ................................................................................................................................... 97

Bijlagen .................................................................................................................................................. 98

Bijlage A: Standaardinstanties IRPTW ............................................................................................... 98

Bijlage B: Branch en Cut model ......................................................................................................... 99

Databestand .................................................................................................................................. 99

Modelbestand ............................................................................................................................... 99

OptieBestand ............................................................................................................................... 100

Resultaat ...................................................................................................................................... 100

Bijlage C: Hybride IRP(TW) model ................................................................................................... 102

Submodel 1: vereenvoudigde modellering ................................................................................. 102

Submodel 2: vereenvoudigde modellering ................................................................................. 104

Model P’: vereenvoudigde modellering ...................................................................................... 106

Bijlage D: Voorraadmodel ............................................................................................................... 108

Bijlage E: MATLAB GA toolbox function description ....................................................................... 110

Scaling function ........................................................................................................................... 110

Selection function ........................................................................................................................ 110

Reproduction ............................................................................................................................... 111

Mutation function ....................................................................................................................... 111

Migration ..................................................................................................................................... 113

Plot functions............................................................................................................................... 113

Bijlage F: routeuit.m ........................................................................................................................ 115

Bijlage G: kosten.m .......................................................................................................................... 116

Bijlage H: Uitleg bij IRPTW.m ........................................................................................................... 117

Bijlage I: Resultaten IRPTW heuristieken op voorbeeld .................................................................. 118

Kosten berekend via de TSSA heuristiek ..................................................................................... 118

Kosten berekend via de ANTS heuristiek .................................................................................... 119

Kosten berekend via de GRASP heuristiek .................................................................................. 120

Kosten berekend via de VNS 3H heuristiek ................................................................................. 121

Kosten berekend via de VNS 2H heuristiek ................................................................................. 122

Bijlage J: Instructie invoeren heuristieken ...................................................................................... 123

Page 11: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

IX Afkortingen

Afkortingen Combinatorische problemen:

– BBP: Bin Packing Probleem

– CVRP: Capacitated Vehicle Routing Probleem

– IRP: Inventory Routing Probleem

– IRPTW: Inventory Routing Probleem met tijdsvensters

– SS1: Single Machine Scheduling Probleem

– TSP: Travelling Salesmen Probleem

– VRP: Vehicle Routing Probleem

– VRPTW: Vehicle Routing Probleem met tijdsvensters

Metaheuristieken:

– ACS: Ants Colony System

– GA: Genetic Algoritme

– GRASP: Greedy Randomized Adaptive Search

– PFIH: Push Forward Insertion Heuristiek

– SA: Simulating Annealing

– TS: Tabu Search

– TSSA: Hybride Tabu Search en Simulating Annealing

– VNS: Variable Neighbourhood Search

– VNS2H: Variable Neighbourhood Search met 2 mutatie functies

Andere:

– B&C: Branch & Cut

– MIP: Mixed Integer Programming

– SSG: Surrogate Subgradient

– VMI: Vendor Managed Inventory

– UB: Upper Bound

– LB: Lower Bound

Page 12: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

1 Inleiding

1 Inleiding Een Inventory Routing Probleem (IRP) behandelt de coördinatie van zowel transport als

voorraadbeheer [1], gewoonlijk noodzakelijk voor situaties waar consumenten zich beroepen op een

centrale leverancier voor de bevoorrading van een veelgebruikt goed. [2] Het IRP beoogt een

leveringsschema op te stellen dat de voorraadkosten afweegt tegen de transportkosten. [3] Het is

dan ook het kernprobleem voor supply chains die een zogenoemde Vendor Managed Inventory

(VMI) strategie volgen. [1] Het optimaliseren van een IRP behoord tot het veld van combinatorische

optimalisatie.

De VMI strategie ontheft de klanten van hun verantwoordelijkheid om de bestelhoeveelheid te

bepalen, in plaats daarvan beslist de leverancier wanneer en hoeveel geleverd wordt aan de klant,

met als enige beperking het respecteren van het minimaal gewenste voorraadsniveau bij de klant. [4]

Deze strategie biedt een substantieel besparingspotentieel voor de supply chain, zowel op korte als

op lange termijn. Het gebruik van de VMI strategie vermindert immers het bullwhip effect1. [5-7] De

inherente complexiteit zorgt er echter voor dat deze strategie zijn potentieel nog niet helemaal heeft

kunnen waarmaken. [8]

Het IRP is een variant op het Vehicle Routing Probleem (VRP), gezien ook hier de leverancier de

routes en het tijdstip van een levering moet bepalen. Door de bestelde hoeveelheid op te nemen als

beslissingsvariabele wordt een VRP uitgebreid naar een IRP. [9] In vergelijking met VRP staat het

onderzoek over het IRP nog in zijn kinderschoenen. [10]

Het specifiek IRP dat in deze scriptie onderzocht zal worden, is een IRP waarin klanten beleverd

moeten worden tussen bepaalde tijdsvensters, zo kan het bijvoorbeeld zijn dat een klant enkel

tussen 10-11u een levering mag ontvangen, en routeplanners verplicht rekening moeten houden met

een pauze van 15 minuten in de voor- en namiddag en een middagpauze van 45 minuten.

1 Het bullwhip effect verwijst naar het vergrotend effect van een fluctuerende vraag naarmate men opklimt in

de supply chain.

Page 13: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

2 Inleiding - 1.1 Inventory Routing Probleem

1.1 Inventory Routing Probleem Het finaal doel van het specifiek IRP model in deze scriptie is om een zo optimaal mogelijk

leveringsschema op te stellen dat voldoet aan het tijdsvenster en “geen voorraadbreuk” beperkingen.

Daarnaast wordt ook de verplichting om pauzes op te nemen in rekening gebracht. Dit schema is

optimaal wanneer het de distributie- en voorraadkosten minimaliseert. Drie beslissingen moeten

genomen worden:

Wanneer een klant te bedelen.

Hoeveelheid die een klant geleverd krijgt.

Leveringsroutes die gebruikt worden.

Prijs, locatie en andere beslissingen worden hier dus achterwege gelaten hoewel ze zeker hun plaats

hebben binnen de VMI strategie. [11]

Naargelang de aard van de supply chain die men wil optimaliseren, kan men het model aanpassen.

Deze scriptie behandelt een basis supply chain model met de volgende assumpties:

Deterministische vraag.

Distributie vanuit één verdeelcentrum.

Eén homogene productgroep (zelfde gewicht en zelfde afmetingen).

Homogene voertuigen met dezelfde capaciteit en kosten.

Klanten kunnen bereikt worden met heen- en terugroutes van minder dan een dag.

Binnen de literatuur worden tal van IRP varianten beschreven die deze assumpties achter zich laten.

Hieronder worden enkele interessante varianten aangehaald.

Zo komen bijvoorbeeld stochastische en/of dynamische IRP aan bod in het werk van onder andere

Kleywegt en Trudeau et al. [1, 12-19]. Ondanks het vele onderzoek blijft de stochastische IRP echter

een vrij onhandelbaar probleem.

Ook de assumptie van homogene goederen werd door diverse auteurs naast zich gelaten. Zo gebruikt

Douglas Popken een combinatie van lineair programmeren en een “adjacent concave flows”

heuristiek om het potentieel van een multi-attribuut en multigoederenmodel aan te tonen.[20] Ook

andere auteurs laten diverse goederen toe. [21-25]

Vervolgens kan ook de assumptie van één verdeelcentrum en heterogene voertuigen uit het model

gehouden worden. Hoewel het voorraadaspect er niet aanwezig is, kan hier toch verwezen worden

naar de literatuur aangaande maritieme Vehicle Routing Problemen. Deze VRP varianten focussen

zich weliswaar op maritiem transport, maar blijken uiterst wendbaar en omvattend. Zo komen in het

Page 14: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

3 Inleiding - 1.1 Inventory Routing Probleem

model van Al-Khayyal en Hwang aspecten aan bod als laad- en lostijden, specifieke transportnoden

van productgroepen en voorraad afhankelijke tijdsvensters. [21] Daarnaast zijn er VRP varianten die

meerdere depots opnemen, laden en lossen toelaten, gesplitste leveringen toelaten, … .

Een laatste assumptie die met betrekking tot de supply chain gemaakt wordt, is dat klanten bereikt

kunnen worden binnen een termijn van één dag, wat niet altijd het geval is. Savelbergh en Song

gebruiken een innovatieve Greedy algoritme om een model op te lossen dat niet enkel rekening

houdt met routes over meerdere dagen, maar ook meerdere productpick-ups in verschillende

verdeelcentra toelaat. [26]

Ten slotte zijn er ook variaties met betrekking tot de tijdsperiode die in beschouwing wordt genomen.

Binnen deze scriptie wordt een beperkte planningshorizon gebruikt in tegenstelling tot de cyclische

modellen die een oneindige planningshorizon in beschouwing nemen.

Bramel en Simchi-Levi classificeren de volgende drie algemene IRP modellen op basis van de

planningshorizon die in beschouwing wordt genomen: [27]

Modellen met stochastische vraag en een enkele periode. [28]

Modellen met deterministische vraag en meerdere perioden. [29, 30]

Modellen met deterministische vraag over een oneindige planningshorizon. [31, 32]

Page 15: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

4 Inleiding - 1.2 Voorbeeld

1.2 Voorbeeld

Deze scriptie is geen casestudie en maakt dus ook geen gebruik van een gegeven dataset. Daarom zal

hier een klein voorbeeld beschreven worden dat doorheen deze scriptie de werking van de

technieken moet illustreren.

Om niet zomaar een willekeurig voorbeeld te gebruiken, kan men zich beroepen op een van de

standaardtestinstanties die beschikbaar zijn voor het VRP met tijdsvensters (VRPTW). Zo kan men

zich beroepen op de Solomoninstanties. Deze instanties kunnen vrij gedownload worden op diverse

sites en worden opgedeeld in 6 datasets (C1,C2,R1,R2,RC1 & RC2) om enerzijds een onderscheid te

maken tussen sets met veel of weinig klanten per route en anderzijds door bepaalde geografische

eigenheden (bv. clusters) voor de klantengroep in beschouwing te nemen. [33] Niet alle sets zijn

echter relevant binnen deze probleemsetting. De sets R1 en RC1 beschouwen klanten van wie de

tijdsvensters geconcentreerd zijn in de voormiddag. Gezien hier geen pauzes opgenomen zullen

worden, kan men deze datasets dus achterwege laten. Set C2 beschouwt dan weer routes die zich

kunnen spreiden over meerdere dagen. Hoewel het mogelijk is om extra pauzes op te nemen,

waardoor deze setting eventueel benadert kan worden, wordt deze dataset buiten beschouwing

gelaten.

Uit de dataset C1(01) werd voor de eerste 15 klanten de volgende data overgenomen:

Tabel 1: Voorbeeld - Klantengegevens

(zie bijlage cd: “SOLOMON.mat” voor alle instanties; coördinaten van depot (0,0))

Naar analogie met Lau, Liu en Ono is gekozen om deze Solomon instantie als basis te nemen en te

bewerken om de nodige gegevens voor een IRP op te stellen. [34] De functie datageneratie.m,

geïmplementeerd in de MATLAB 2010b omgeving en opgenomen in bijlage A, creëert de nodige

X-coord.

Y-coord.

Vraag

Begin tijdsvenster

Einde tijdsvenster

Behandel Tijd

5 18 10 912 967 90

5 20 30 825 870 90

2 16 10 65 146 90

2 18 10 727 782 90

2 15 10 15 67 90

0 19 20 621 702 90

0 16 20 170 225 90

-2 18 20 255 324 90

-2 20 10 534 605 90

-5 16 10 357 410 90

-5 19 10 448 505 90

-15 35 20 652 721 90

-18 25 30 30 92 90

-18 35 10 567 620 90

-20 30 40 384 429 90

Page 16: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

5 Inleiding - 1.2 Voorbeeld

datainput op basis van deze beperkte Solomoninstantie. Door deze instanties op een systematische

manier uit te breiden tot de nodige input voor een IRP met tijdsvensters kan men zich nog steeds

beroepen op de eigenheden van de Solomoninstanties. Op die manier kan een diverse dataset

uitgewerkt worden.

De voorbeeldinstantie wordt vervolgens uitgebreid om ook het voorraadaspect te incorporeren.

Zowel de beginvoorraad, het maximum voorraadniveau als de vraag per periode moet worden

bepaald.

De vraag per periode wordt bekomen door de vraag in de Solomoninstanties te vermenigvuldigen

met een willekeurige factor die uniform verdeeld is tussen 0,5 en 1,5. Dit betekent dat uitgegaan

wordt van een vrij stabiele vraag bij de klanten. Het is echter mogelijk om een cyclisch verloop te

simuleren indien gewenst.

Ook de beginvoorraad is gebaseerd op de vraag afkomstig van de beperkte Solomoninstantie.

Ditmaal vermenigvuldigd met een willekeurige factor uniform verdeeld tussen 1,8 en 3,3. Deze

waarden zijn dusdanig gekozen om de eerste periode te ontlasten, maar toch de meeste klanten te

plannen binnen de eerste vier perioden.

De doelstelling van het model is de kosten te beperken, waarbij de vaste transport kosten cruciaal

geacht worden. De transportvloot beperken is dus een belangrijk doel binnen deze scriptie. Vandaar

dat het essentieel is dat de beginvoorraad groot genoeg is om de eerste periode te overbruggen. De

bovenste waarde (van 3,3) moet min of meer overeenkomen met de periode die men tracht te

overbruggen met één levering.

Het maximum voorraadniveau bij de klanten wordt bepaald op ofwel vijfmaal de vraag, ofwel de

voertuigcapaciteit. De factor 5 is vrij gekozen maar de maximumvoorraad mag de voertuigcapaciteit

niet overtreffen. De voertuigcapaciteit wordt trouwens vastgelegd op 300, een waarde die anderhalf

keer de standaard Solomoncapaciteit is.

Page 17: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

6 Inleiding - 1.2 Voorbeeld

Tabel 2: Voorbeeld - Vraag per periode, beginvoorraad en de maximumvoorraad

perioden Klant 1 2 3 4 5 6 7 8 9 10 BV Max stock

1 5 8 13 8 6 10 9 12 10 13 34 65

2 40 21 19 40 34 15 42 30 31 33 71 210

3 13 14 9 6 12 8 13 9 13 7 29 70

4 6 14 5 12 12 9 9 15 9 9 25 75

5 7 8 8 14 7 8 9 12 6 14 36 70

6 12 19 11 25 24 14 24 21 27 21 54 135

7 28 18 17 20 15 29 19 15 19 24 70 145

8 18 14 27 22 17 14 14 20 19 25 52 135

9 6 13 12 6 14 7 11 10 7 5 35 70

10 13 13 9 6 11 7 12 10 8 14 25 70

11 13 14 6 7 12 12 13 10 9 11 33 70

12 27 23 20 16 24 18 21 28 27 28 45 140

13 43 39 15 15 18 23 16 28 25 31 95 215

14 14 8 8 14 8 6 10 14 9 12 31 70

15 45 38 39 58 23 31 38 44 55 39 111 290

Via de coördinaten in de Solomoninstantie kan men een waarde geven voor de transport- en

tijdskosten. De formule kan gevonden worden in bijlage. (disttab.m ) Deze formule is echter wel van

weinig nut. Het werken met coördinaten is immers weinig realistisch. Het zou beter zijn om bv. via

Google maps, Mappy of soortgelijke applicaties realistischere waarden te krijgen voor de

transporttijd. Na verloop van tijd kan men eventueel ook op basis van ervaring of tijdsvensters

rekening houden met congestie, openbare werken, ongevallen en dergelijke.

Een interessante applicatie die in deze context kan vermeld worden is een TSP solver via Google

maps die kan teruggevonden worden op http://www.gebweb.net/optimap/.

Vanuit de literatuur heeft men al vele pogingen gedaan om dergelijke aspecten te incorporeren in

routingproblemen. Verscheidene dynamische routingproblemen werden daarom uitgewerkt. [35-40]

Gegeven de toegevoegde complexiteit wordt het dynamisch facet in deze scriptie buiten

beschouwing gelaten. De gebruikte disttab.m functie is in alle waarschijnlijkheid dus weinig realistisch,

maar biedt hier op een efficiënt en simpele manier soelaas.

Page 18: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

7 Inleiding - 1.2 Voorbeeld

Toegepast op het voorbeeld komen we tot matrix B. (Coördinaten voor leveringsdepot zijn (0,0)) De

corresponderende B matrix is de volgende 16 x 16 matrix:

Tabel 3: Voorbeeld - Transportkosten/tijd van klant i naar klant j

Klanten Depot 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Depot 0 19 21 16 18 15 19 16 18 20 17 20 38 31 39 36

1 19 0 2 4 3 4 5 5 7 7 10 10 26 24 29 28

2 21 2 0 5 4 6 5 6 7 7 11 10 25 24 27 27

3 16 4 5 0 2 1 4 2 4 6 7 8 25 22 28 26

4 18 3 4 2 0 3 2 3 4 4 7 7 24 21 26 25

5 15 4 6 1 3 0 4 2 5 6 7 8 26 22 28 27

6 19 5 5 4 2 4 0 3 2 2 6 5 22 19 24 23

7 16 5 6 2 3 2 3 0 3 4 5 6 24 20 26 24

8 18 7 7 4 4 5 2 3 0 2 4 3 21 17 23 22

9 20 7 7 6 4 6 2 4 2 0 5 3 20 17 22 21

10 17 10 11 7 7 7 6 5 4 5 0 3 21 16 23 21

11 20 10 10 8 7 8 5 6 3 3 3 0 19 14 21 19

12 38 26 25 25 24 26 22 24 21 20 21 19 0 10 3 7

13 31 24 24 22 21 22 19 20 17 17 16 14 10 0 10 5

14 39 29 27 28 26 28 24 26 23 22 23 21 3 10 0 5

15 36 28 27 26 25 27 23 24 22 21 21 19 7 5 5 0

Ten slotte worden ook nog de voorraadkosten bepaald. Deze werden vrij bepaald, maar staan best in

verhouding tot de transportkosten. (de gebruikte formule is

Tabel 4: Voorbeeld - voorraadkosten

perioden

Klanten 1 2 3 4 5 6 7 8 9 10 1 3 3 3 3 3 3 3 3 3 3

2 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5

3 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5

4 2 2 2 2 2 2 2 2 2 2

5 6,5 6,5 6,5 6,5 6,5 6,5 6,5 6,5 6,5 6,5

6 4,5 4,5 4,5 4,5 4,5 4,5 4,5 4,5 4,5 4,5

7 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5 1,5

8 8 8 8 8 8 8 8 8 8 8

9 2 2 2 2 2 2 2 2 2 2

10 2,5 2,5 2,5 2,5 2,5 2,5 2,5 2,5 2,5 2,5

11 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5

12 4 4 4 4 4 4 4 4 4 4

13 5 5 5 5 5 5 5 5 5 5

14 5,5 5,5 5,5 5,5 5,5 5,5 5,5 5,5 5,5 5,5

15 8,5 8,5 8,5 8,5 8,5 8,5 8,5 8,5 8,5 8,5

De vaste transportkosten zijn 1 000 per gebruikt voertuig. Hiermee zijn alle nodige data besproken.

Page 19: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

8 Inleiding - 1.3 Aanpak

1.3 Aanpak Deze scriptie behandelt een IRP met tijdsvenster- en personeelsroosterbeperkingen. Een uitbreiding

die de complexiteit verhoogt en de referenties danig beperkt. Vandaar dat er voor het opnemen van

tijdsvensters een beroep gedaan wordt op de kennis uit het VRP onderzoeksgebied. Hoofdstuk 2 gaat

hier dieper op in. Exacte optimalisatietechnieken worden besproken voor het VRP met

tijdsvensterbeperkingen, maar niet geïmplementeerd. Diverse heuristieken voor VRP met

tijdsvensters (VRPTW) worden echter wel geïmplementeerd. De vier voorgestelde metaheuristieken

werden allen geïmplementeerd in MATLAB 2010b. De personeelsroosterbeperkingen worden

vereenvoudigd door het verplicht opnemen van pauzes door de chauffeurs op bepaalde tijdstippen.

Ook dit komt aan bod tijdens de bespreking van de heuristieken.

Hoofdstuk 3 behandelt het Inventory Routing Probleem. Ter inleiding wordt een standaard IRP model

opgesteld waarna verschillende oplossingstechnieken bekeken worden. Een vereenvoudigde IRP

wordt exact opgelost met behulp van een Branch en Cut (B&C) methode om een Lower Bound (LB) te

bepalen. Vervolgens wordt een Decompositie en Lagrangian relaxatietechniek toegepast om een IRP,

die flagrante tijdsvensterschendingen vermijdt, benaderd te optimaliseren. Hiervoor wordt een

Surrogate Subgradient (SSG) methode gebruikt. De bekomen bestelhoeveelheid worden vervolgens

als input gebruikt voor een VRPTW heuristiek die de routes genereert. Deze exacte en

benaderingsoptimalisatietechnieken werden beide geïmplementeerd in IBM ILOG OPL IDE 6.3, die

gebruik maakt van de CPLEX 12.2 solver. Dit hoofdstuk wordt afgesloten met een IRPTW heuristiek

gebaseerd op het Genetic Algoritme (GA) en een eigen IRPTW heuristiek. Voor de GA werd een

beroep gedaan op de standaard GA Toolbox beschikbaar in MATLAB 2010b en ook de eigen

heuristiek werd in MATLAB opgebouwd. Daarnaast maken beide heuristieken en de

benaderingsmethode gebruik van een voorraadmodel opgesteld in IBM ILOG dat ingelezen wordt in

MATLAB.

Doorheen de scriptie wordt het voorbeeld uit de vorige paragraaf uitgewerkt. De scriptie wordt

afgesloten met een bespreking van de resultaten en enkele conclusies.

Page 20: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

9 Het Vehicle Routing Probleem - 2.1 Inleiding

2 Het Vehicle Routing Probleem

2.1 Inleiding Dantzig and Ramser [41] stellen dat een VRP kan beschreven worden als een m-TSP probleem, of een

Travelling Salesmen probleem met meerdere verkopers (het zogenaamde ‘clover leaf’ probleem),

met de aanvullende beperking dat een vooraf bepaalde hoeveelheid moet geleverd worden aan de

bezochte klanten. In het specifiek geval dat de capaciteit van een voertuig groter is dan de totale

vraag kan men het VRP terugbrengen naar een TSP. Immers, in dat geval moet de optimale

(goedkoopste) route (hamiltonian cycle) gevonden worden van één voertuig (verkoper) die aan een

vooraf bepaalde set van klanten moet leveren (verkopen/bezoeken).

Het TSP is een goed gekend probleem dat behoort tot de NP-compleet complexiteitklasse. Dit

betekent dat het probleem zowel tot de NP (in non- deterministische polynomiale tijd verifieerbaar)

als NP-Hard problemen behoort. Een oplossing wordt moeizaam bekomen, maar kan snel

geverifieerd worden. De tijd die nodig is voor het vinden van een oplossing zal dus snel stijgen als de

grootte van het probleem groeit, ongeacht het gebruikte algoritme.

Figuur 1:

Een baanbrekende oplossingsmethode voor het TSP is er gekomen in 1954 door Dantzig, Fulkerson

en Johnson. [42] Hun aanpak is gebaseerd op het identificeren van lineaire ongelijkheden of “cutting

planes”. Het toevoegen van deze ongelijkheden zorgt voor een verstrakking van de lineaire relaxatie

voor het TSP.

Telkens een optimale waarde gevonden wordt voor het gerelaxeerd probleem (met behulp van de

simplex methode) dat buiten het convexe omhulsel ligt van het mogelijkheidsgebied gedefinieerd in

het oorspronkelijk TSP, kan men die waarde uit het mogelijkheidsgebied van het gerelaxeerd

probleem bannen aan de hand van een “Hyperplane”. De toegevoegde lineaire ongelijkheid (of cut)

Page 21: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

10 Het Vehicle Routing Probleem - 2.1 Inleiding

moet zodanig opgesteld worden dat deze gebande extreme punten de ongelijkheid schenden zonder

het TSP mogelijkheidsgebied uit te sluiten. Dit verstrakt de relaxatie waardoor uiteindelijk (na de

nodige iteraties) een optimale oplossing gevonden kan worden die behoord tot het TSP

mogelijkheidsgebied.[43] Omdat er echter geen volledige beschrijving van de TSP polythoop gekend

is en het TSP tot de NP-compleet combinatorische optimalisatieproblemen behoort, is er geen hoop

op een cutting plane methode die binnen een polynomiale tijd kan worden opgelost. Tenminste

zolang niet bewezen wordt dat P=NP. Dantzig et al. bewezen echter wel dat het mogelijk is om de

cutting plane methode toe te passen door de TSP polythoop te omvatten in de grotere polythoop

van het gerelaxeerd probleem waarover we een lineaire doelfunctie minimaliseren. Op deze manier

kan een lineaire relaxatie van een TSP geformuleerd worden die een Lower Bound geeft en bruikbaar

is binnen een Branch en Bound methode. Padbergh en Rinaldi verfijnden de enumeratie bij Branch

en Bound aan de hand van de polyhedrale aanpak wat leidde tot de Branch en Cut

oplossingsmethode. [44] Aan de hand van deze methode kon in 1987 een TSP van 5322 steden

opgelost worden. Het is ook deze basismethode die gebruikt zal worden om een exacte oplossing te

vinden voor een eenvoudig IRP probleem. [10]

Via de cutting plane methode slaagden Dantzig et al. erin om een TSP met 42 steden op te lossen.

Het aantal steden is sindsdien sterkt gestegen. Zo is in 2006 een probleem van 85 900 steden

optimaal opgelost. Daarnaast is er ook een benaderingsalgoritme dat in 2009 een TSP met 1 904 711

steden opgelost heeft tot binnen 0,056% van het optimaal3.

Laporte, Nobert en Desrochers waren de eersten om de polyhedrale aanpak te gebruiken voor een

VRP. Zij vertrokken van de probleembeschrijving in Dantzig, Fulkerson and Johnson maar

verstrengden de subtour eliminatierestrictie om hun model te formuleren. Deze subtour

eliminatierestricties worden toegevoegd zodat de gerelaxeerde polythoop verstrakt. [45, 46]

2 http://www.tsp.gatech.edu/history/milestone.html (30/3/2011)

3 http://www.seas.gwu.edu/~simhaweb/champalg/tsp/tsp.html (30/3/2011)

Page 22: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

11 Het Vehicle Routing Probleem - 2.2 Exacte algoritmen voor een VRPTW

2.2 Exacte algoritmen voor een VRPTW Een vrij populaire uitbreiding op het VRP model is het opnemen van tijdsvensters. Het opnemen van

tijdsvensters houdt in dat klanten slechts geleverd kunnen worden voor en na een bepaald tijdstip.

Deze paragraaf zal beknopt de literatuur en basismethoden voor een VRP met tijdsvensters (VRPTW)

bespreken. Hiervoor wordt sterk gesteund op het werk van onder andere Brian Kallehauge. [43] [47]

[48].

Er zijn twee basisontwikkelingen op het gebied van exacte oplossingsmethoden. De ene is een

algemene decompositiemethode en de oplossing van een zeker duaal probleem geassocieerd met

een primaal VRPTW. De andere focust zich op de analyse van de polyhedrale structuur van een

VRPTW. In beide aanpakken staat het idee van convexiteit centraal. De complexiteit en de polythoop

voor het probleem worden hieronder besproken.

2.2.1 Complexiteit van het VRPTW

Indien men de tijdsvensters ongebonden laat kan men stellen dat het VRPTW probleem identiek is

aan de gelimiteerde of C(acitated) VRP, heft men vervolgens de capaciteitrestrictie op dan kan het

probleem beschouwd worden als een m-TSP (supra p9, paragraaf 2.1) en uiteindelijk dus ook tot een

TSP (m=1).

De vraag of er daadwerkelijk een mogelijke oplossing bestaat voor een bepaalde instantie voor het

CVRP kan men beschouwen als een bin packing probleem (BPP). Ten slotte kan een VRPTW beperkt

worden (geen transportkosten, ruime transportcapaciteit en één klant) tot een non-preemptive

single machine scheduling probleem met deadline en releasedatum (SS1). Gezien de NP-

compleetheid van TSP, BBP en SS1 [49] kan de NP-compleetheid van het VRPTW aangenomen

worden.

2.2.2 Polythoop van een VRPTW

Het oplossen van een VRPTW is equivalent met het minimaliseren van een functie over zijn

polythoop. Voor een volledige beschrijving van de polythoop wordt verwezen naar het werk van

Brain Kallehauge. [43]

Beknopt kan men zeggen dat de VRPTW polythoop van een tijd en capaciteit beperkte Digraph4 het

convexe omhulsel is van de vector van de k-routes in

= conv{ ∈ | ∈ }.

4 Digraph is een afkorting voor een directed of gerichte graph, en het is een diagram bestaat uit punten, zogenaamde

hoekpunten (knooppunten) en pijlen (zogenoemde arcs) gaande van een hoekpunt naar een hoekpunt. http://www.cs.odu.edu/~toida/nerzic/level-a/digraph/definition.html (21/02/2011)

Page 23: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

12 Het Vehicle Routing Probleem - 2.2 Exacte algoritmen voor een VRPTW

Waar de Digraph het mogelijkheidsveld van de routes voorstelt, beperkt door de tijdsvensters en de

capaciteitsrestricties. Zo worden routes die een hogere capaciteit hebben dan toegelaten door het

gebruikte transportmiddel uitgesloten, net als diegene die de tijdsvensters overschrijden.

Met elke k-route in de Digraph associeert men dan de vector die 1 is indien in de k-route de arc

(i,j) gebruikt wordt. Tijdens de k-route gaan we dus van i naar j. (i,j ∈ Depot + klanten) In het ander

geval is de vector nul.

De NP-compleetheid van de VRPTW betekent ook dat geen volledige beschrijving voor de

ongelijkheden voor de VRPTW polythoop verwacht kan worden. Het is echter wel mogelijk om een

ondergrens te berekenen in polynomiale tijd door de VRPTW polythoop op te nemen in een grotere

polythoop waarover wel in polynomiale tijd kan worden geminimaliseerd. Het verruimen van de

polythoop betekent dat een oplossing één of meerdere beperkingen kan negeren. Het kan dus zijn

dat een oplossing buiten het mogelijkheidsgebied van het probleem ligt en dus onmogelijk is. Een

optie om onmogelijke oplossingen te vermijden is het toevoegen van ongelijkheden. Dit zorgt voor

een systematische beperking van de polythoop. Een werkwijze die ook toegepast zal worden op een

vereenvoudigd IRP. (infra p41, paragraaf 3.2) De subtour ongelijkheden die in de Branch en Cut

methode zijn toegepast, vinden hun oorsprong in het TSP verhaal en kunnen ook hier gebruikt

worden. Naast de subtour eliminatieongelijkheden [46] zijn er de pad ongelijkheden voorgesteld

door Kallehauge et al. [50, 51] en voor het eerst toegepast op een model met tijdsvensters door

Ascheuer et al. [52], de capaciteitsrestricties toegevoegd door Naddef en Rinaldi. [53], de tijd en pick-

up ongelijkheden voorgesteld door Bard et al. [54] , … .

2.2.3 Exacte decompositie

Voor de decompositieaanpak wordt gebruik gemaakt van de Lagrangian Relaxatietechniek. De

oplossingsprocedure kan als volgt worden samengevat: Eerst wordt het duaal probleem opgelost

met de geheeltaligheid opgegeven. Wanneer het optimaal resultaat toch integer is, dan is het

optimum voor het duaal probleem gevonden. Zo niet, worden sterke ongelijkheden toegevoegd door

gebruik te maken van een separatiealgoritme voorgesteld door Kohl die subtour

eliminatiebeperkingen en 2-pad cuts toevoegt. [55]

Deze ongelijkheden worden echter toegevoegd als kolommen in het lineaire programma en de duale

variabelen die corresponderen met de ongelijkheden worden gestabiliseerd. De 2-pad cuts worden

toegevoegd in de basis node terwijl de subtour eliminatierestricties in alle nodes van de Branch en

Bound tree worden gebruikt. Wordt hiermee nog steeds geen geheeltallige oplossing gevonden, dan

worden de duale multipliers van de “kind” nodes naar de optimale waarde van hun “ouder” nodes

gebracht. [43]

Page 24: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

13 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

2.3 Heuristiek voor een VRPTW Het aantal beschikbare VRPTW heuristieken is enorm, zowel in aantal als in diversiteit. Bräysy en

Grandreau [56] geven een overzicht van enkele bekende VRPTW heuristieken (infra Tabel 5: De

eerste lijn toont het aantal routes, de tweede lijn de totale afstand) maar een volledige lijst lijkt haast

oneindig.

Tabel 5: Enkele metaheuristieken voor het VRPTW [56, 57]

Solomoninstanties (supra p4, paragraaf 1.2) Auteurs R1 R2 C1 C2 RC1 RC2

[58] Thangiah et al. (1994) 12,33 3 10 3 12 3,38

1.227,42 1.005,00 830,89 640,86 1.391,13 1.173,38

[59] Kontoravdis and Bard (1995) 12,58 3,09 10 3 12,63 3,5

1.325,44 1.164,27 827,3 589,65 1.500,94 1.414,21

[60] Potvin and Robillard (1995) 13,58 3,09 10,56 3,38 13,63 3,63

1.539,40 1.325,10 1.237,20 875,6 1.828,90 1.578,90

[61] Bachem et al. (1996) 12,58 3 - - 12,13 3,38

1.392,00 1.199,60 1.501,60 1.500,10

[62] Chiang and Russell (1996) 12,5 2,91 10 3 12,38 3,38

1.308,82 1.166,42 909,8 666,3 1.473,90 1.393,70

[63] Liu and Shen (1999) 12,17 2,82 10 3 11,88 3,25

1.249,57 1.016,58 830,06 591,03 1.412,87 1.204,87

[64] Kilby et al. (1999) 12,67 3 10 3 12,13 3,38

1.200,33 966,56 830,75 592,24 1.388,15 1.133,42

[65] Caseau et al. (1999b) 12,17 - - - 12 -

1.207,27 1.356,62

[66] Gambardella et al. (1999) 12 2,73 10 3 11,63 3,25

1.217,73 967,75 828,38 589,86 1.382,42 1.129,19

[67] Tan et al. (1999) 14,5 3,64 10,11 3,25 14,75 4,25

1.420,12 1.278,97 958,57 766,46 1.648,77 1.641,89

[68] Anderson et al. (2000) - - - - 11,63 -

1.397

[69] Tan et al. (2001c) 13,1 4,6 10 3,3 12,7 5,6

1.213,16 952,3 841,92 612,75 1.415,62 1.120,37

[70] Bräysy (2003) 11,92 2,73 10 3 11,5 3,25

1.222,12 975,12 828,38 589,86 1.389,58 1.128,38

[71] Bent and Van Hentenryck (2004) 11,92 2,73 10 3 11,5 3,25

1.211,10 954,27 828,38 589,86 1.384,17 1.124,46

[72] Rousseau et al. (2002) 12,08 3 10 3 11,63 3,38

1.210,21 941,08 828,38 589,86 1.382,78 1.105,22

[73] Czech and Czarnas (2002) - - - - 11,5 3,25

1.384,17 1.119,49

[74] Bräysy et al. (2004b) 12 2,73 10 3 11,5 3,25

1.214,69 960,44 828,38 589,86 1.389,20 1.124,14

Het grote aantal heuristieken maakt het uiterst moeilijk om op een verantwoorde manier één

bepaalde heuristiek uit te kiezen. Daarnaast is ook niet altijd de nodige data voor handen om de

metaheuristiek zelf te implementeren. De keuze is gemaakt om vier metaheuristieken voor VRPTW te

implementeren, met name een Tabu Search gecombineerd met Simulated Annealing (TSSA), een

Greedy Randomized Adaptive Search (Greedy), een Variable Neighbourhood Search (VNS) en een

Ants Colony System (ACS) heuristiek. Eerst wordt echter de Push Forward Insertion Heuristiek (PFIH),

gebruikt voor het bepalen van een initiële oplossing, besproken.

Page 25: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

14 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

2.3.1 Push Forward Insertion Heuristiek

Als eerste stap in alle gebruikte metaheuristieken moet een initiële mogelijke oplossing bepaald

worden. Hiervoor werd een veelgebruikte heuristiek, namelijk de “Push Forward Insertion Heuristiek”

(PFIH) uitgewerkt in MATLAB 2010b. Deze is gebaseerd op de Solomon Insertion heuristiek. [33] Een

variant op de Solomon Insertion heuristiek kan gevonden worden in Chiang en Russell waar een

parallelle versie van de Russell Insertion heuristiek gebruikt wordt. [75] De Backer, Furnon et al. en

Schulze en Fahle gebruiken dan weer de besparingsheuristiek van Clarke en Wright. [76] [77] [78]

Figuur 2 (infra p14) legt de werking van de PFIH (PHIF.m) uit in pseudocode. Voordien moeten wel

eerst de klanten gesorteerd worden op basis van de minimumCost.m functie.

-α× + β×

+ γ×

⁄ =

Met

Waar op basis van de afstand tot het (-) distributiecenter (x α), de bovenste waarde van het

tijdsvenster (x β) en de terugkeerafstand (x γ) de kost berekend wordt van een klant om als eerste in

een route opgenomen te worden. Welke waarde men hecht aan deze elementen kan zelf bepaald

worden door de keuzes van alfa, bèta en gamma aan te passen. Deze waarden staat op

respectievelijk 70%, 10% en 20% [58] wat allerminst betekent dat het tijdsvenster het minst

belangrijk element is in de rekensom. Immers, omdat de waarden voor de tijdsvensters uitgedrukt

staan in minuten, kan dit soms vrij grote waarden geven. Op het voorbeeld toegepast, zijn dit de

kosten per klant:

Klanten 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Kosten 96,83 73,83 0,04 67,15 -5,76 59,86 9,36 21,05 47,75 26,87 38,47 57,98 -17,49 40,19 15,50

Waardoor in dit voorbeeld de klanten als volgt gesorteerd zijn: 13, 5, 3, 7, 15, 8, 10, 11, 14, 9, 12, 6, 4, 2,1.

Figuur 2: Pseudocode voor de Push Forward Insertion Heuristiek [58]

Step PFIH-1: Begin with an empty route starting from the depot.

Set r=1.

Step PFIH-2: If {all customers have been routed} then go to step PFIH-8.

For all unrouted customers j: Compute the cost according to (1), and sort them in ascending order of their costs.

Step PFIH-3: Select the first customer, j*, from the ordered list with the least cost and feasible in terms of time

and capacity constraints.

Step PFIH-4: Append j* to the current route r and update the capacity of the route.

Step PFIH-5: For all unrouted customers j: For all edges {k, l} in the current route, compute the cost of

inserting each of the unrouted customers between k and l.

Step PFIH-6: Select an unrouted customer j* at edge {k*, l*} that has the least cost.

If {insertion of customer j* between k* and l* is feasible in terms of time and capacity constraints}

then insert customer j* between k* and l*, update the capacity of the current route r, and go to Step PFIH-5,

else go to Step PFIH-7.

Step PFIH-7: Begin a new route from the depot.

Set r = r + 1.

Go to Step PFIH-2.

Step PFIH-8: All Customers have been routed.

Stop with a PFIH solution.

Page 26: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

15 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Op basis van deze rangschikking wordt een initiële klant gekozen. Gezien klant 13 ver van het

distributiecenter ligt en een laag tijdsvenster heeft, zal klant 13 als initiële klant in een route

opgenomen worden. Vervolgens loopt de PFIH heuristiek de niet opgenomen klanten één voor één

af van klanten op basis van de rangschikking.

De volgende klant die de heuristiek tracht in te voegen is klant 5. De heuristiek bekijkt of het mogelijk

is om klant vijf voor of na klant 13 in een route op te nemen. Omdat dit niet mogelijk is vanwege de

tijdsvensters (isTimeFactible.m) wordt klant 5 in een nieuwe route opgenomen. Merk op, dat indien

klant 5 wel opgenomen zou worden, dat dan de kans groot is dat ook in de optimale oplossing klant 5

opgenomen zou worden in een route met klant 13. Ofwel liggen de tijdventers beide heel vroeg

ofwel zijn ze beide ver gelegen van het depot maar dicht bij elkaar (tijdsvenster andere klant mag

niet geschonden worden). In elk geval zou het dan waarschijnlijk geacht worden dat deze klanten

samen geleverd worden. Naast de tijd moet ook de capaciteit van een route gecontroleerd worden.

In het voorbeeld worden enkel klant 8 en 15 samen in een route gepland, anderen worden

afzonderlijk geleverd. De initiële (en merkbaar zwakke) oplossing voor het vooropgestelde voorbeeld

is hieronder gegeven:

Figuur 3: Oplossing PFIH

Wat neerkomt op 14 routes voor 15 klanten en een totale afstand van 654

Om de pauzes van de chauffeurs te incorporeren wordt, in de functie die nagaat of het tijdsvenster

geschonden wordt (isTimeFactible.m), 15 of 45 minuten toegevoegd als een route een bepaalde

grens oversteekt. Als een route de grens oversteekt van de 200 minuten (dus een klant voor die

periode gevolgd door een klant na die periode) wordt 15 minuten toegevoegd aan de servicetijd om

zo de pauze voor de chauffeur in te calculeren. Hetzelfde geldt voor de grens 450min (middagpauze –

45 min) en 800min (avondpauze – 15 min). Deze functies zijn overigens ook overgenomen in alle

voorgestelde heuristieken. Dit zal verder ook gebruikt worden door de functie totalTardiness.m die

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 654

Page 27: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

16 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

aangeeft hoeveel de tijdsvensters geschonden worden en dus deels de aspiratiewaarde bepaalt. (De

aspiratiefunctie wordt verder besproken in paragraaf 2.3.2.4 infra p20.)

2.3.2 Hybride Tabu Search en Simulating Annealing

Een eerste gebruikte metaheuristiek is gebaseerd op een hybride Tabu Search en Simulating

Annealing (TSSA) zoals die beschreven is door Thangiah, Osman en Sun [58] en is uitgewerkt in

MATLAB 2010b.

2.3.2.1 Over de metaheuristiek

De Tabu Search is een methode die tracht een globaal minimum te vinden binnen een

oplossingsruimte zonder vast te geraken in een lokaal minimum [79]. Vertrekkend vanuit de initiële

routes, verkregen via de PFIH wordt de meest belovende beweging (beste buur) gekozen. De

bewegingen worden geëvalueerd volgens bepaalde aspiratiecriteria. De aspiratiefunctie wordt

verder besproken in paragraaf 2.3.2.4. (infra p20)

De gekozen bewegingen worden bijgehouden in een Tabulijst die deze gegevens bijhoudt voor de

laatste 10 iteraties. Een factor die overigens aanpasbaar is. Wanneer een bewegings attribuut op de

Tabulijst staat dan zal de nieuwe oplossing enkel aanvaard worden wanneer deze aan bepaalde

aspiratiescriteria voldoet. Indien de beweging niet aanvaard wordt dan wordt een volgende

beweging gekozen.

Figuur 4: Tabu beslissingsboom [80]

De aspiratiecriteria is een idee dat terugkomt in andere metaheuristieken waaronder Simulated

Annealing. In de combinatoriek kan de werking van Simulated Annealing als volgt samengevat

worden [81]: Een oplossing wordt gewaardeerd door deze een temperatuur te geven die

correspondeert met een evaluatie voor de doelfunctie. Het doel is de oplossing te vinden met het

Move

Bevat deze beweging

tabu-actieve attributen

Beweging is

toegelaten

Is de beweging

Tabu?

Beantwoord deze

beweging aan de aspiratie

criteria?

Beweging is

NIET toegelaten

Ja

Nee

Nee

Nee

Ja

Ja

Page 28: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

17 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

laagste energieniveau. Veranderingen die tot een lagere energiewaarde leiden worden altijd

aanvaard terwijl energie stijgende veranderingen op basis van kans aanvaardt worden. De initiële

oplossing krijgt een hoge temperatuur mee (standaard 50) waarna op een systematische manier

veranderingen in de oplossing de temperatuur verlagen.

Figuur 5: Eigenschappen Simulated Annealing [80]

Afhankelijk van hun evaluatie van de doelfunctie en parameter T, die systematisch verkleinen tijdens

het proces, kan een niet-taboeoplossing, die geen verbetering in kosten biedt, toch nog aanvaard

worden. De kans waarmee verhittende veranderingen aanvaard worden, wordt berekend via de

formule:

⁄ . Waar C1 en C2 symbolen zijn voor respectievelijk de kost van de, in beschouwing

genomen oplossing en de kost van de huidige oplossing. Figuur 5 illustreert de werking: bij de

iteraties voor de eerste klim wordt een “buur” oplossing aanvaard, vergelijkbaar met een lokale

optimalisatie. In tegenstelling tot lokale optimalisatie zal SA de “klimmende” iteraties toch

aanvaarden met een zekere kans. Indien men hierbij niet over de klim raakt, zal, via een

systematische verkoeling, de lokale oplossing toch aanvaard worden door de SA heuristiek. Indien

ervan uitgegaan wordt dat de SA wel over de klim raakt, dan zal de oplossing uiteindelijk convergeren

tot het globaal minimum.

Door beide metaheuristieken te combineren verkrijgt men een hybride Tabu Search en Simulated

Annealing (TSSA) metaheuristiek waar de Tabu search uitgebreid wordt door oplossingen die de

huidige oplossing niet verbeteren met de hierboven vermelde kans toch te aanvaarden.

Page 29: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

18 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

2.3.2.2 Werking TSSA VRPTW heuristiek

Figuur 6 vat de werking van de heuristiek samen.

Figuur 6: Flow diagram TSSA heuristiek

Inlezen Data

(A:Klantendata;

B:Afstandmatrix;

Capaciteit)

2-interchange (Klanten

worden gewisseld om

nauwe buren te vinden)

Initiële oplossing

genereren a.h.v Push

Forward Insertion

Heuristiek (PFIH)

Beweging taboe?

Nieuwe kosten<

huidige kosten?

Aanvaard route als beste

route en update gegevens,

temperatuur en voeg

bewegingen in tabu lijst

Huidige kosten <

beste kosten?

Beste routes worden uit

het programma gehaald

Tabu en SA gegevens:

tabuListSize=10;

TabuList= [];

Beste routes en kosten= huidige;

Max. temp=50;

Huidige temperatuur=max temp

Reset temp=max temp.

Finale temp=:0;

Temp. Beste oplossing=50;

KoelingFactor=0,5;

Evalueer mogelijke bewegingen

Update BestCost en Bclist martix

Selecteer meest

belovende

beweging

Bewegingen aan de hand

van de 2-interchange mutatie

functie(2 klanten worden van

route verwisselt)

Aspiratie functie evalueert

bewegingen. Schendingen

op restricties worden beboet.

Huidige route

word beste

route

Afgewezen: naar

volgende beweging

accepteer

nee

Accepteer of wijs af

volgens SA criteria

E^C1-C2 /T?

Nieuwe route wordt

bijgehouden als huidige

route, de kost als huidige

kost;

Update temperatuur en

Tabulijst

While aantal

iteraties<Maxiteraties

nee

ja

ja

Nieuwe route wordt huidige

route

Max #iteraties

bereikt

Initialisatie Tabu en SA

parameters

Page 30: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

19 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

2.3.2.3 Toegepast op het voorbeeld

De heuristiek vertrekt van een initiële oplossing verkregen via de PFIH. (supra p14, paragraaf 2.3.1)

Een eerste stap verbeteringspoging gebeurt met behulp van de 2-interchange methode die klanten

wisselt tussen twee routes en zodra een route gevonden wordt die korter is, wordt deze opgenomen

als huidige oplossing. In het voorbeeld tracht de 2interchange.m functie eerst klant 5 voor en na klant

13 te voegen maar de tijdsvensters worden telkens geschonden. Het is wel mogelijk om klant 3 (de

volgende op de lijst) te leveren na klant 13. Met deze routes gaat de TSSA iteratie dus van start:

Figuur 7: Routes TSSA na 2-interchange voor verbeteringsiteratie

De 2interchange.m functie bepaalt de mogelijke buren van de huidige oplossing. De hier bijhorende

bewegingen worden geëvalueerd door de createBC.m functie die een kostenmatrix genereert die de

mogelijk bewegingen evalueert. De eerste beweging met de laagste kosten (-573) haalt klant 14 uit

de 7de route en hevelt die over naar de 9de route die nu vanuit het depot vertrekt naar klant 14 om

nadien klant 12 te leveren.

Move1=[9,14] en Move2=[7]

Figuur 8: Routes TSSA na eerste iteratie

Tabu list:

Temp=1,92°

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 629

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 555

Page 31: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

20 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

De totale afstand vermindert hierdoor van 629 naar 555 waardoor de route aanvaardt wordt.

(acceptNewRoute=1) Dit betekent dat:

De huidige routes worden opgeslagen als de huidige beste oplossing

De temperatuur wordt bijgewerkt (currentTemp=currentTemp/(1+coolingFactor

currentTemp)

De Tabulijst wordt bijgewerkt5 (updateTabuList.m)

De kostmatrix wordt geüpdatet (updateBCs.m)

De lege routes worden eruit gehaald (removeEmptyRoutes.m).

Gezien de kost ook een verbetering is ten opzichte van de voorlopig beste kosten worden de huidige

temperatuur, route en de kost ook als beste opgeslagen.

Ook de volgende iteraties brengen op dezelfde manier verbeteringen toe. De iteratie wordt

afgebroken als ofwel de gewenste temperatuur gevonden is, of het maximum aantal iteraties bereikt

is. Het maximum iteraties is een veranderlijke bepaald door een vermenigvuldiging van een te

bepalen factor, het aantal klanten en de grootte van de tabuList ([.,k]).

Op het voorbeeld toegepast verkrijgt men via de TSSA heuristiek de volgende routes:

Figuur 9: Beste routes volgens TSSA heuristiek

2.3.2.4 Parameterwaarden

Het bepalen van aanvaardbare parameterwaarden is uiterst belangrijk bij de TSSA heuristiek. Het is

immers zo dat onmogelijke oplossingen frequent aangewend worden tijdens de zoektocht naar

5 De onderste rij van de Tabu lijst bevat de iteratie vanaf wanneer de beweging terug uit de Tabu lijst moet

gehaald worden.

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 203

Page 32: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

21 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

optimale punten. Een slechte parameterkeuze kan ertoe leiden dat de bekomen oplossing buiten het

mogelijkheidsgebied valt.

Vergelijkbaar met een “fitness” functie uit de Genetische Algoritmen maakt de TSSA heuristiek een

beoordeling van de mogelijke route aan de hand van een aspiratiefunctie. Onderdeel van de

aspiratiecriteria zijn de naleving van de capaciteit en tijdsvensterbeperkingen. De mate waarin een

oplossing deze beperkingen schendt, is dus een bepalende waarde in de aspiratiewaarde.

Een te hoge bestraffing is nefast voor het zoekpotentieel van de heuristiek, maar een te lage

bestraffing kan leiden tot onmogelijke oplossingen. Er moet een evenwicht gevonden worden tussen

de aspiratiedoelstellingen.

De aspiratiecriteria waarvan sprake zijn viervoudig:

Verminderen totale afstand

Verminderen totale rijtijd ( )

Verminderen overcapaciteit ( )

Verminderen tijdsovertreding ( )

Het toelaten van onmogelijke oplossingen die toch een ruime afstand of rijtijdvermindering

meebrengen verbetert merkbaar de efficiëntie van de heuristiek. Het bepalen hoeveel elke factor

moet doorwegen is echter geen evidentie. Het werk van Thangiah, Osman en Sun geeft

standaardwaarden mee. [58]

In tegenstelling tot de SA en TABU parameters (TabuListsize=10, maxtemp=50 ( ),

Resets=3, k=1 en een cooling factor van 0,5) wordt voor de gewichtswaarden voor de

aspiratiecriteria afgeweken van de waarden aangegeven door Thangiah, Osman en Sun. [58]

De invoegkost voor klant in route :

Waarbij:

Er is gekozen om het vermijden van een schending op een restrictie tienmaal zwaarder te laten

doorwegen op de aspiratiewaarde. De oplossing ligt hierdoor verder van het optimum, maar het

toepassingsgebied van de heuristiek wordt hierdoor wel verhoogd. Voor het vervolg van deze scriptie

is deze extra flexibiliteit wenselijk.

Page 33: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

22 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

De tijdsovertreding houdt, zoals vermeld bij de bespreking van de PFIH, rekening met het verplicht

opnemen van pauzes bij het planen van de routes.

2.3.3 Improved Greedy Randomized Adaptive Search Procedure (GRASP )

De volgende gebruikte metaheuristiek voor het oplossen van de VRPTW is gebaseerd op de

verbeterde GRASP heuristiek zoals die uitgewerkt is door Li en Orchard [82] en werd

geïmplementeerd in MATLAB 2010b.

2.3.3.1 Over de metaheuristiek

Een basis GRASP VRPTW gebruikt een multistartmethode die in de eerste fase op zoek gaat naar een

mogelijke oplossing, daarna gevolgd door een lokale zoekfase [59, 83, 84]. De mogelijke oplossing

wordt willekeurig bepaald, waarna in de omgeving van de willekeurige oplossing gezocht wordt naar

een lokaal optimum.

De veranderingen, die aangebracht zijn door Li en Orchard, zijn samen te vatten in de volgende drie

basisgedachten:

1. Werken met meerdere initiële oplossingen. (in deze scriptie beperkt tot 3)

2. Het lokaal optimum wordt hergebruikt in de volgende iteratie.

3. Tijdens de iteratieve procedure in GRASP wordt de huidige oplossing op willekeurige basis

gemuteerd om zo niet in de lokale val te trappen. De zoekruimte wordt met vooraf bepaalde

probabiliteit op willekeurige tijdstippen verruimd. De zogenoemde “Mutation Improvement”

techniek. (mutationP=0,5 [82])

2.3.3.2 Werking van de improved GRASP VRPTW heuristiek

2.3.3.2.1 Initiële (mogelijke) oplossingen

Als eerste mogelijke oplossing wordt opnieuw gekozen voor de PFIH heuristiek ( ). Vervolgens

wordt op zoek gegaan naar een dichte buur ( ) en een randomoplossing waar een klant op een

willekeurige manier wordt ingevoerd ( ). Li en Orchard stellen nog drie andere mogelijkheden voor,

maar deze worden buiten beschouwing gelaten.

De dichte buur wordt verkregen via de nearest_customer.m functie. Deze functie loopt de klanten

anders af, namelijk op basis van nabijheid. De route wordt één voor één opgesteld. Bij elke route

wordt de onbediende klant op het einde van de route met de kleinste resterende overgebleven tijd

toegevoegd. De checkFeasibility.m functie gaat daarbij na of de route mogelijk is binnen de

restricties en indien positief bevonden, wordt een route opgesteld.

Page 34: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

23 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

De random customer insertion function gebruikt dan weer willekeur om een route te selecteren en

een klant in te voegen op de plaats die de kleinste overblijvende tijd oplevert. Gegeven de willekeur

kan dit telkens andere resultaten geven.

2.3.3.2.2 Oplossing hergebruik

Een klassieke GRASP hergebruikt zijn oplossingen niet. Hier is dit toch de bedoeling. Daarom worden

de waarden voor gelijkgesteld met de huidige oplossing.

2.3.3.2.3 Verbeteringsalgoritme

Het globale iteratieve zoekalgoritme loopt door tot een bepaald aantal maximumiteraties

(MaxIteration= 20) overschreden wordt. Binnen een iteratie wordt eerst een beperkte Tabu Search

(TS) toegepast om het lokaal optimum te vinden beginnende bij een initiële oplossing.

Stap 1: Oproepen beperkte Tabu Search (in updateRoutes)

Het TS algoritme die gebruikt wordt, is vergelijkbaar met deze die voordien besproken werd. Met dat

verschil dat de SA concepten niet toegepast worden en de temperatuur niet bijgehouden wordt. (Een

beweging wordt dus enkel aanvaard als het niet op de Tabulijst staat of beantwoordt aan bepaalde

aspiratiecriteria.) Daarnaast worden de listgrootte en de huidige oplossing meegegeven in het GRASP

hoofdprogramma.

Vertrekkende vanuit de PFIH oplossing die hieronder opnieuw geïllustreerd wordt, wordt dus een

beperkte lokale optimalisatie uitgevoerd aan de hand van een TS. De verbetering op is echter vrij

beperkt, slechts 1 route wordt eruit gehaald. De lokale oplossing levert dezelfde routes op als

bepaald wordt na de eerste 2interchange.m functie in de TSSA heuristiek. (supra Figuur 7)

Stap 2: Mutatie

De exchangeTwoCustomers.m functie wisselt twee klanten in een route om de oplossingsruimte te

vergroten.

Stap 3: Update

De gemuteerde route wordt lokaal geoptimaliseerd aan de hand van de beperkte TS. De kosten van

deze nieuwe oplossing worden vergeleken met de huidig optimale kosten. Indien beter, wordt de

huidige oplossing veranderd.

Page 35: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

24 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Stap 4: Hergebruik

Indien de oplossing verbetert, wordt deze als voorlopig optimum behouden. Hierbij wordt ook de

reikwijdte (tabuTenure) van de TS opnieuw vergroot. (j=0;

)

Dezelfde procedure wordt gebruikt op de overige initiële oplossingen een oplossing wordt

slechts bewaard als deze beter is dan het voorlopig optimum.

Het model van Li en Orchard is zoals gezegd uitgewerkt voor een VRPTW probleem. Het algoritme

moet beperkt aangepast worden om ook personeelsbeperkingen in beschouwing te nemen. Tijdens

de PFIH wordt reeds rekening gehouden met de 3 pauzes in de functie isTimeFactable.m en op

gelijkaardige manier kan de GRASP heuristiek aangepakt worden. Deze functie kan dus overgenomen

worden.

Gezien een beroep gedaan wordt op een TS voor de lokale optimalisatie moeten dezelfde

aanpassingen gedaan worden. (supra p20, paragraaf 2.3.2.4 )

Page 36: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

25 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Figuur 10: Flow diagram GRASP heuristiek

2.3.3.3 Toegepast op het voorbeeld

De oplossing verkregen via de PFIH wordt lokaal geoptimaliseerd via een beperkte TS. De

verbeteringsiteratie heeft weinig effect gehad. Het resultaat is immers vergelijkbaar met de routes

voor de verbeteringsiteratie in de TSSA heuristiek. (supra p19, Figuur 7)

Inlezen Data

(A:Klantendata;

B:Afstandmatrix;

Capaciteit)

Initiële oplossing genereren

a.h.v

X1:PFIH

X2:nearest customer

X3:willekeurige opname

klanten

Beste kosten=Kosten X1

maxIteraties=20

maxTabuTenure=10

Mutatie kans=0,5

Verkleinen

tabuTenure

Vergroten

tabuTenture

For h=1:3

Locale optimalisatie:

Beperkte Tabu Search

op X1

Locale optimalisatie:

Beperkte Tabu Search

op X2

Locale optimalisatie:

Beperkte Tabu Search

op X3

Huidige kosten <

beste kosten?

Kosten van route

berekenen

Update route

Selecteer een

willekeurige route

Verwissel twee

klanten uit de

geselecteerde en de

beste route dusver

Verwissel twee

klanten uit de

geselecteerde en de

beste route dusver

Verwissel twee

klanten uit de

geselecteerde en de

beste route dusver

h = 1 h = 3h = 2

h = 1 h = 3

h = 2

ja

nee

X2

X3X1

While aantal

iteraties<Maxiteraties

I=I+1

Beste routes worden uit

het programma gehaald

Max #iteraties

bereikt

TabuTenure

beinvloed

lokale

optimalisatie

J<IJa:J=J+1

Nee:J=J-1

Page 37: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

26 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Het wisselen van 2 klanten heeft hier geen effect.

De nearest customer levert wel een bruikbare eerste oplossing op waarop vervolgens een beperkte

TS wordt uitgevoerd. De exchange 2 customersfunctie heeft echter ook hier geen effect.

Figuur 11: Initiële oplossing X2 voor GRASP

Figuur 12: GRASP: X2 na lokale optimalisatie

Hetzelfde geldt voor X3, ook hier heeft de exchange 2 customers geen invloed.

Figuur 13: Initiële oplossing X3 voor GRASP

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 363

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 271

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 303

Page 38: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

27 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Figuur 14: GRASP: X3 na lokale optimalisatie

Deze laatste routes blijken ook na 20 iteraties de beste en zijn dus ook de uitkomst van deze GRASP

heuristiek.

2.3.3.4 Parameterwaarden

De parameterwaarden werden rechtstreeks overgenomen uit de literatuur. [82] Wel moet men de

opmerkingen besproken bij de parameterwaarden van de TSSA heuristiek, ook hier in acht nemen.

(supra p20, paragraaf 2.3.2.4) Dit betekent dat ook hier de werking van de TS sterk beknot wordt

door de tijd en capaciteitsschendingen strenger te bestraffen in de aspiratiefunctie. Gezien de TS in

vergelijking met de TSSA metaheuristiek meer neiging heeft om een lokaal optimum te aanvaarden,

zal dit hier zelf zwaarder doorwegen.

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 173

Page 39: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

28 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

2.3.4 Variable Neighbourhood Search

Een volgende VRPTW heuristiek is gebaseerd op de Reactive Variable Neighbourhood Search

heuristiek ontwikkeld door Bräysy, Kytöjoki et al. [70, 85]. Ook deze heuristiek is uitgewerkt in

MALAB 2010b.

2.3.4.1 Over de metaheuristiek

De Variable Neighbourhood Search (VNS) metaheuristiek tracht de lokale optimalisatie val te

vermijden door de structuur van de omgeving rondom het lokaal optimum te veranderen. De

oplossing wordt op systematische manier veranderd om zo buren te vinden die ofwel de oplossing

verbeteren, ofwel de val van een lokaal minimum helpen te vermijden [86]. Kytöjoki et al. stellen dat

de VNS metaheuristiek erin slaagt een gigantisch aantal klanten meester te kunnen, tot zelfs enkele

10 000 klanten. Hun heuristiek wordt echter beperkt geïmplementeerd. Er worden immers slechts 2

van de 6 mutatiefuncties ingevoerd.

2.3.4.2 Werking van de VNS VRPTW heuristiek

Deze heuristiek begint net als de andere met een initiële oplossing verkregen door het PFIH

algoritme. Het vertrekpunt om deze metaheuristiek uit te leggen is dus dezelfde als bij de vorige

heuristieken, met 14 routes voor 15 klanten. Het algoritme zoekt vervolgens een dichte buur via een

willekeurige 2-interchange mutatiefunctie. (randTwoInterchange.m) In deze functie worden twee

willekeurige routes gekozen waaruit twee willekeurige klanten van route veranderen.

Figuur 15: De 2-interchange methode

Indien deze routes geen restricties schenden (opnieuw gecontroleerd door o.a. de checkFeasibility.m

functie) zal deze “buur” lokaal geoptimaliseerd (innervns.m) worden via respectievelijk een 2-

interchange en een cross exchange. (twoInterchange.m en crossExchange.m)

Figuur 16: Werking cross-exchange [87]

De cross-exchange mutatiefunctie wisselt een opeenvolgend deel met twee of meer klanten van

twee routes met elkaar. [88] Figuur 16 illustreert.

Page 40: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

29 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Zodra de 2-interchangemutatie geen verbetering meer geeft, wordt overgaan naar de cross exchange

mutatiefunctie. Levert ook die niets meer op, dan komt men terug in de VNS hoofditeratie. Zolang

een verbetering gevonden, blijft deze loop zich echter herhalen (willekeurige 2-interchange gevolgd

door een lokale optimalisatie). Wordt geen verbetering meer gevonden, dan wordt een willekeurige

cross-exchange uitgevoerd die vervolgens ook lokaal geoptimaliseerd wordt. Vindt men op die

manier terug een verbetering dan herbegint men terug bij de willekeurige 2-interchange met de

huidige oplossing. Indien de oplossing niet verder evolueert, zal ook herbegonnen worden, maar

dergelijke niet verbeteringsiteraties mogen slechts een beperkt aantal keer (5) voorvallen.

Het is mogelijk ook andere mutatiefuncties op te nemen in de heuristiek bv. de 2-opt functie. De 2-

opt exchange6 heuristiek is een speciale vorm van cross-exchange, waarbij een nieuwe oplossing

gevonden wordt door twee routes, waarvan de randen geëlimineerd zijn, dusdanig te verbinden

zodat een nieuwe oplossingsmogelijkheid bekomen wordt [60]. Er is uiteraard maar één uitkomst die

een andere oplossingsmogelijk geeft. Van al de randparen die een kortere route geven, kiezen we

deze die het kortste pad geeft. Deze procedure wordt herhaald tot geen dergelijke paren meer

gevonden kunnen worden. In het gebruikte voorbeeld levert het gebruik van 2-opt exchange niets op,

vandaar dat het resultaat onveranderd blijft.

Bovendien blijkt zowel het aantal routes als de totale afstand bekomen via de VNS met 3

mutatiefuncties tegen te vallen in vergelijking met de VNS met 2 mutatiefuncties. Vandaar dat enkel

de VNS met 2 mutatiefuncties beschreven werd. (infra p30, Figuur 17 )

6 http://www-e.uni-magdeburg.de/mertens/TSP/node3.html illustreert de werking van de 2-opt exchange

heuristiek via een applet.

Page 41: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

30 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Figuur 17: Flow diagram VNS heuristiek met 2 mutatie functies

2.3.4.3 Toegepast op het voorbeeld

Ook hier wordt herbegonnen met de initiële oplossing verkregen via de PFIH. De

randTwoInterchange.m functie leidt niet tot een verandering waardoor het deze routes zijn die in de

lokale optimalisatie terechtkomen. Deze lokale optimalisatie blijkt wel zeer efficiënt. Na de lokale

optimalisatie via de 2- interchangefunctie is er reeds een grote verbetering merkbaar. Hierna wordt

er via een cross exchange ook een verbetering gevonden waardoor de lokale optimalisatie herbegint.

Inlezen Data

(A:Klantendata;

B:Afstandmatrix;

Capaciteit)

Initiële oplossing

genereren a.h.v

PFIH

While #cyclussen

zonder

verbeterringen(NI) <=5

Route

verbettert?

NI=NI+1

Rand 2

interchange

Rand Cross

exchange

Inner VNS

Lokale optimalisatie via:

- Two interchange

- Cross exchange

Inner VNS

Route

verbettert?

Lokale optimalisatie via:

- Two interchange

- Cross exchange

Geen

verbetering

Het aantal niet

verbeteringsiteraties

verhoogd

Ja

Nee

ja

Beste routes worden uit

het programma gehaald

NI>5

Page 42: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

31 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Figuur 18: VNS - initiële oplossing na lokale optimalisatie via 2-interchange mutaties

Figuur 19: VNS - cross-exchange

Dit levert echter niets meer op waardoor de oplossing na de cross exchange het lokaal optimum is.

De verruimingen in het zoekgebied leveren ook niets op waardoor het lokaal optimum dat bereikt

werd na de cross exchange ook het resultaat is van de VNS heuristiek.

2.3.4.4 Parameterwaarden

De enige parameter die hier ingevuld moet worden, is het maximaal aantal keer dat een niet-

verbeteringsiteratie zich voordoet. De keuze is gemaakt om deze op 5 te houden.

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 207

2

14 12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 178

Page 43: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

32 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

2.3.5 Ants Colony System

Het Ants Colony algoritme is gebaseerd op de manier waarop echte mieren de kortste route zoeken

tussen hun nest (N) en een voedingsbron (F) in een oplossingsruimte met verschillende paden (infra

Figuur 20). (Implementatie gebaseerd op o.a Tong et al.[89-91] en opgebouwd in MATLAB 2010b)

2.3.5.1 Over de metaheuristiek Figuur 20: Illustratie werking ACS

7

Mieren gebruiken het milieu om te communiceren met elkaar en laten lokale feromoonpaden achter

wanneer ze ronddwalen. Een mechanisme dat in de biologie “Stigmergie” genoemd wordt. Merk op

dat hier de nadruk gelegd wordt op de lokale feromonen, omdat het niets zegt over waar de

voedingsbron is of waar de kolonie zich bevindt.

Wanneer een “boer” mier voedsel vindt, is het genetisch ingesteld om een lokaal feromoonspoor na

te laten bij de terugkeer naar de kolonie. Het volgt daarbij het feromoonspoor nagelaten door de

kolonie. Hoe sterker de feromonen, hoe dichter de mier bij de kolonie is. Het feromoonspoor dat de

mier nalaat, wordt opgepikt door andere mieren die op hun beurt op zoek gaan naar de voedselbron.

Men bevindt zich nu in situatie 2 van de figuur. De mieren zijn op de hoogte dat er voedsel te vinden

is en verspreiden zich over de oplossingsruimte naar het voedsel. Bij elke keuze van een nieuw pad,

wordt er gekeken naar de hoeveelheid feromoon die achter gelaten is door andere mieren. Wanneer

een mogelijk pad gevonden is, laat de mier een bepaalde hoeveelheid feromoon achter voor de

andere mieren. Een bepaald pad krijgt daardoor een grotere kans om gekozen te worden door de

volgende mieren. Daarnaast verdampt het feromoon ook op een bepaalde snelheid, zodat oude

paden weer verdwijnen. Hierdoor ontstaat na verloop van tijd een dominant (hopelijk optimaal) pad

zoals situatie 3 in de figuur.

Het vervliegen van de feromonen is cruciaal in het vinden van een globaal optimum. Immers, blijft

het spoor te lang hangen, dan zal dit spoor te attractief zijn voor de andere mieren, waardoor een

lokaal optimum gevonden wordt in een te beperkte zoekruimte.

7 http://lifeinwireframe.blogspot.com/2010/08/ant-algoithms.html

Page 44: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

33 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Figuur 21: Flow diagram ACS heuristiek

2.3.5.2 Werking ACS VRPTW heuristiek

Een nieuwe route wordt gecreëerd op basis van een Ants Colony System voor het TSP probleem met

dat verschil dat de probabiliteit dat een route gebruikt wordt die de capaciteit of tijdsvensters

overtreedt nul is en er gewerkt wordt met meerdere voertuigen (indien geen klant is geselecteerd,

wordt er een route toegevoegd.) De werkwijze voor een ACS voor een TSP probleem wordt hieronder

samengevat.

In het TSP verhaal kiest een artificiële mier k in stad r de stad s ( het werkend geheugen Mk) om

naartoe te gaan op basis van de volgende stochastische formule:

Inlezen Data

(A:Klantendata;

B:Afstandmatrix;

Capaciteit)

Initiële oplossing genereren

a.h.v PFIH.

Initiëren: beste rij, kosten,

mogelijke kost, feromonen

spoor (volledige tabel

gevuld)

Aantal mieren=K

Lambda=0,1

Phero=[]

a =0

Huidige route beter dan

beste oplossing dusver?

For k = 1: #iteraties

For i =1 : #mieren

Beta=1

Ro=0,1

Maak nieuwe

route en

actualiseer

feromoon spoor

Huidige oplossing

vervangt beste

oplossing.

a = 0

Update globaal

feromoon spoor

a++

a > 50

Best gevonden oplossing is

eindwaarde heuristiek

NeeJa

Ja

Nee

Page 45: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

34 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

{

{[ ][ ]

}

[ ][ ]

∑ [ ][ ]

waar de hoeveelheid feromonen zijn, een parameter is voor de relatieve belangrijkheid van het

feromoonspoor en een constante is. Elke keer dat de mier deze regel gebruikt, kiest hij een

willekeurig getal q in het interval [0, 1]. Als de mier kiest voor de kortste weg met meer feromonen

dan de andere (omdat het feromoon wordt vermenigvuldigd met de inverse van de afstand tussen

steden). Anders, zal de kans dat een mier een stad kiest willekeurig bepaald worden.

Gezien initieel de mieren willekeurig lopen, kunnen verschillende feromonenpaden worden

gecreëerd. Deze feromoonsporen verdampen echter na verloop van tijd, zodat de minder gebruikte

paden (of niet versterkte) de neiging hebben om te verdwijnen. Paden met een hogere probabiliteit

trekken meer mieren aan waardoor het feromoonspoor sterker en sterker wordt.

Als een stad (lees: klant) wordt gekozen volgens de formule dan wordt deze verwijderd uit de niet

bezochte lijst en wordt het opgenomen in de route. De gegevens worden gewijzigd. (voor een

VRPTW betekent dit een update van de huidige tijd, gewicht en feromoon spoor)

Actualiseren van de hoeveelheid feromonen gebeurt aan de hand van de volgende formule:

Waar α de parameter is voor de verdamping van feromonen en de beste weglengte. Telkens een

mier door via een rand gaat wordt het feromoon spoor bijgehouden via de formule:

Waar het initieel feromoon gehalte is en een parameter tussen nul en één.

Het algoritme wordt beëindigd wanneer een bepaald aantal iteraties is bereikt, wanneer de beste

oplossing stabiel blijft voor een aantal iteraties of wanneer de meeste van de mieren dezelfde

oplossing gevonden hebben.

Page 46: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

35 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

2.3.5.3 Toegepast op het voorbeeld

Nadat honderd mieren de cyclus zijn doorlopen, wordt het volgende resultaat bekomen:

Figuur 22: Routes na de ACS VRPTW heuristiek

2.3.5.4 Parameterwaarden

Om goede parameterwaarden te verkrijgen dient de ACS metaheuristiek getest te worden met

verschillende waarden. Om het aantal testcombinaties te beperken wordt een ad-hoc strategie

toegepast waar de standaardwaarden 100 mieren, β=1, λ=0,1, q=0,9 en ρ=0,1 als basiswaarden

gebruikt worden.

Aantal mieren β λ

Waarde Afstand AantalRoutes Waarde Afstand AantalRoutes Waarde Afstand AantalRoutes

100 2816 23 1 2759 21 0,05 2823 20

1000 2872 20 1,25 2814 22 0,1 2789 21

10000 2718 19 1,5 2897 20 0,2 2818 20

Tabel 6: Parametertest voor ACS-VRPTW op Solomon instantie C101

Op basis van deze testen op de C101 Solomoninstantie kan men “goede” parameterwaarden bepalen

voor de ACS metaheuristiek. Het aantal mieren wordt op 10 000 gezet, hoewel dit de rekentijd danig

verhoogt, β op 1, λ op 0,1, q op 0,75 en ρ op 0,25.

2

14

12

15

13

10

11

9

8

6

7

4

3

5

1

Totale afstand

= 376

q

Waarde Afstand AantalRoutes Waarde Afstand AantalRoutes

0,5 3011 25 0,05 2824 21

0,75 2799 20 0,1 2806 20

0,9 2654 18 0,25 2698 19

Page 47: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

36 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

2.3.6 Conclusies

Om het aantal testen te beperken worden de heuristieken slechts op zes Solomoninstanties getest,

namelijk C101, C201, R101, R201, RC101 en RC201 met een capaciteit van 200. Voor de

parameterwaarden wordt verwezen naar de bespreking in de bijhorende heuristiek.

Tabel 7: Resultaten VRPTW heurstieken

Afstand Aantal routes

Solomon instantie

C101 R101 RC101 C201 R201 RC201 C101 R101 RC101 C201 R201 RC201

Optimale oplossing*

827 1637 1620 589 1262 1143 10 20 15 3 9 8

PFIH 4845 3765 4013 6133 3387 3477 63 51 39 40 17 23

TSSA** 1522 1853 1837 1203 1602 1722 21 25 19 15 15 14

GRASP** 1591 1818 1848 1187 1489 1788 20 25 21 13 10 10

VNS 2H 892 1695 1812 1026 1280 1479 11 24 18 11 10 11

VNS 3H 1047 1793 1941 1147 1335 1518 13 25 21 10 12 11

ANTS 2654 3269 3445 2734 3142 3798 19 34 26 24 17 18 *[50, 92, 93] let wel dat de optimale oplossing geen rekening houdt met het verplicht opnemen van pauzes. ** De efficiëntie van de TSSA en bijgevolg ook deze van de GRASP heuristiek is sterk beknopt door de strengere bestraffing van tijd- en capaciteitsschendingen.

Page 48: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

37 Het Vehicle Routing Probleem - 2.3 Heuristiek voor een VRPTW

Hieronder worden enkele interessante kenmerken samengevat die zijn opgevallen tijdens de

implementatie van de heuristieken: (Dit zijn ondervindingen, geen significante conclusies)

– Hybrid Tabu Search en Simulating Annealing (TSSA)

• Een bijzonder snelle en efficiënte metaheuristiek

• Het grootste nadeel is dat de kans bestaat dat de oplossing toch onmogelijk

blijkt. Het kan bijvoorbeeld zijn dat de tijdsvensters of capaciteit niet

gerespecteerd worden. (supra p20, paragraaf 2.3.2.4) De instelling van de

aspiratiefunctie is van groot belang.

– Greedy Randomized Adaptive Search Procedure (GRASP) metaheuristiek

• Voordeel: efficiënt en consistent

• Nadeel:

– Maakt gebruik van de Tabu metaheuristiek waardoor men ook hier

aandacht moet schenken aan de aspiratiefunctie

– Minder efficiënt voor kleinere databestanden

– Relatief traag

– Variable Neighbourhood Search (VNS)

• Voordeel:

– kan grote klantenbestanden aan

– geen opname van onmogelijke oplossingen

– goede resultaten

– Ants Colony System (ACS)

• Voordeel: geen opname van onmogelijke oplossingen

• Nadeel: merkbaar slechte resultaten

Page 49: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

38 Het Inventory Routing Probleem - 3.1 Een basis IRP Model

3 Het Inventory Routing Probleem

3.1 Een basis IRP Model Het basis IRP model omvat de verdeling van één productlijn, vanuit één verdelingscentrum, naar een

set van n klanten over een planningsperiode van lengte T. Klant i verbruikt per periode t een

deterministische hoeveelheid . Om dit verbruik van klant i te kunnen opvangen moet voldoende

voorraad tijdens periode t ( ) beschikbaar zijn. Deze voorraad mag de maximumvoorraad van klant i

( ) niet overschrijden. De geleverde hoeveelheid ( ) mag er dus niet voor zorgen dat dit

maximumniveau wordt overschreden. Om de leveringen te voldoen zijn maximum M homogene

voertuigen beschikbaar. Aan het gebruik maken van een voertuig hangt een vaste kost vast. De

voertuigen hebben een transportcapaciteit C. Een basis IRP model wordt hieronder uitgewerkt.[94]

3.1.1 Model P

Indexen:

t in 1..T Periode index

i,j in 0,1,…,N Klantenindex tot N klanten; 0 staat voor depot

Parameters:

C Capaciteit voertuig

Transportkosten van i naar j

Vaste kosten van klant i

Holding kosten van klant i op periode t

Beginvoorraad van klant i

M Aantal beschikbare voertuigen

Vraag bij klant i in periode t

Maximale voorraad bij klant i

Beslissingsvariabelen:

Geleverde hoeveelheid aan klant i in periode t

Voorraadniveau van klant i in periode t

Vervoerde hoeveelheid over arc i,j

Aantal keer de gerichte arc i,j gebruikt wordt in periode t

Page 50: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

39 Het Inventory Routing Probleem - 3.1 Een basis IRP Model

De doelfunctie bestaat uit zowel de voorraadkosten van de klanten als de vaste en variabele

transportkosten.

∑∑

∑ ∑ ∑

∑∑

(1.1)

Een eerste restrictie heeft betrekking op het voorraadniveau. Deze wordt bepaald door het

voorraadsniveau van de voorgaande periode vermeerderd met de geleverde hoeveelheid

verminderd met de vraag van de klanten.

(1.2)

Een volgende restrictie moet ervoor zorgen dat het voorraadniveau van een klant het maximumlevel

niet overschrijdt.

(1.3)

Het aantal keer dat arc (i,j) bezocht wordt moet vervolgens gelijk zijn aan het aantal keer dat arc (j,i)

bezocht moet worden.

∑ ∑

(1.4)

De geleverde hoeveelheid moet van de vervoerde hoeveelheid worden afgehouden.

(1.5)

De geleverde hoeveelheid moet vanuit het verdeelcentrum komen.

(1.6)

Het aantal voertuigen vertrekkende vanuit het depot mag het maximum aantal voertuigen niet

overtreden.

(1.7)

De transporthoeveelheid over arc (i,j) mag niet meer zijn dan de capaciteit van een voertuig

vermenigvuldigd met het aantal keer dat die arc (i,j) gebruikt is in periode t. Dit wil ook zeggen dat als

de arc niet bezocht wordt, er geen product over de arc mag worden vervoerd.

(1.8)

Ook de subtour eliminatierestricties [95] kunnen worden toegepast.

Page 51: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

40 Het Inventory Routing Probleem - 3.1 Een basis IRP Model

∑ ∑

(1.9)

Ten slotte moeten de beslissingsvariablelen positief zijn (of gelijk aan nul).

(1.10)

(1.11)

(1.12)

(1.13)

Page 52: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

41 Het Inventory Routing Probleem - 3.2 Een Branch en Cut algoritme voor een IRP

3.2 Een Branch en Cut algoritme voor een IRP

Het IRP behoort tot de NP-hard problemen. Het reduceert immers tot een TSP als de

planningsperiode tot één dag wordt teruggedrongen, de voorraadkosten nul zijn, de

transportcapaciteit oneindig is en het gehele klantenbestand moet beleverd worden. Er wordt een

Branch en Cut algoritme geformuleerd, gebaseerd op het werk van Archetti et al. [10], om tot een

exacte optimalisatie te komen. Het IRP model wordt vereenvoudigd, door te stellen dat slechts één

voertuig zal gebruikt worden en de beperkte productiecapaciteit bij de verdeler een hoge waarde

aanneemt. (een beperking op de productiecapaciteit is geen beperking die verder aangenomen

wordt in deze scriptie) Andere assumpties zijn ongewijzigd. Het model wordt hieronder samengevat:

3.2.1 Model BC

Indexen t in 1..T Periode index

i,j in 0,1,…,N Klantenindex tot N klanten; 0 staat voor depot

Parameters C Capaciteit voertuig

Transportkosten van i naar j

Holdingkosten van klant i

Holdingkosten bij de verdeler

Beginvoorraad van klant i

Vraag bij klant i in periode t

Productiecapaciteit

Maximale voorraad bij klant i

Beslissingsvariabelen

Voorraadniveau van klant i in periode t

Voorraadniveau verdeler in periode t

Producthoeveelheid geleverd naar klant i

Volgt klant j direct na klant i in periode t? (binair)

Wordt klant i geleverd in periode t? (binair)

Page 53: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

42 Het Inventory Routing Probleem - 3.2 Een Branch en Cut algoritme voor een IRP

De doelfunctie is een som van de voorraadkosten, van respectievelijk de verdeler en de klanten

aangevuld door de transportkosten.

∑ ∑

∑ ∑ ∑

(2.1)

De voorraad definities bij de verdeler vormen een eerste restrictie.

∑ , t in 1,…T+1 ( (2.2)

Een tweede restrictie is dat de leverancier op geen enkel moment een voorraadbreuk mag ervaren.

De verdeler moet dus steeds in staat zijn om aan de totale gevraagde hoeveelheid te voldoen. Gezien

deze parameter niet gebruikt wordt bij het vervolg van de modellen nemen we een dummy waarde

( die zorgt dat deze restrictie niet geschonden wordt.

(2.3)

De voorraadbeperking is gelijkaardig met deze uit het algemeen IRP model op een factor en extra

tijdsperiode na.

(2.4)

Naast de beperking dat er geen voorraadbreuk mag zijn bij de verdeler geldt deze beperking ook bij

de klanten. Het is uiteraard ook mogelijk dat er een overeenkomst is tussen de klant(en) en de

verdeler waar deze beperking een zekere veiligheid qua stock in beschouwing neemt. Dit is

eenvoudig aan te passen door de nul te vervangen door de overeengekomen hoeveelheid, zodat er

niet onder dit niveau mag worden gegaan.

(2.5)

Het gebruikte voorraadbeleid levert de volgende drie mogelijke beperkingen op.

(2.6)

(2.7)

(2.8)

Vanwege de vereenvoudiging mag de capaciteit van het voertuig niet beperkt worden. Toch wordt

ervoor gekozen om de capaciteitsrestrictie in het model op te nemen, weliswaar met een dusdanig

hoge capaciteit zodat een tweede route vermeden wordt.

Page 54: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

43 Het Inventory Routing Probleem - 3.2 Een Branch en Cut algoritme voor een IRP

(2.9)

De routing of transportbeperkingen garanderen dat binnen elke periode een mogelijke route bepaald

wordt. Deze beperkingen zijn initieel tweeledig maar indien onmogelijke oplossingen gevonden

worden, kan men de nodige subtour eliminatierestricties opnemen en het model opnieuw

initialiseren. De initiële beperkingen garanderen enerzijds dat de verdeler bezocht moet worden

zodra minstens één klant bezocht wordt en anderzijds moet een beleverde klant daadwerkelijk in de

route opgenomen worden.

(2.10 a)

(2.10 b)

∑ ∑

∈ ∈

∈ (2.10 c)

Ten slotte zijn er nog de niet-negativiteits- en geheeltalligheidsbeperkingen.

(2.11)

∈ (2.12)

∈ (2.13)

∈ (2.14)

Om het oplossingsgebied te beperken kunnen we gebruik maken van geldende ongelijkheden. Deze

ongelijkheden kunnen niet overgenomen worden uit de VRP of TSP literatuur, maar op basis van de

speciale structuur van het specifiek vereenvoudigd IRP model. (Archetti et al. specifiëren namelijk

drie IRP varianten naar gelang het gebruikt voorraadbeleid.) Voor het bewijs van deze ongelijkheden,

zie Archetti, Bertazzi et al. [10]

(2.15)

∑ ∑

(2.16)

Page 55: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

44 Het Inventory Routing Probleem - 3.2 Een Branch en Cut algoritme voor een IRP

(2.17)

⌈∑

⌉ (2.18)

∑ ∑

(2.19)

(2.20)

(2.21)

(2.22)

De experimenten van de auteurs geven aan dat sommige van deze ongelijkheden best direct in het

model opgenomen worden. Men moet dus niet wachten op een schending om deze ongelijkheden

toe te voegen. Dit maakt een snelle modellering mogelijk.

Om het model te modelleren wordt bij het depot uitgegaan van een maximaal voorraadsniveau van

1 200, een beginvoorraad van 500 en een voorraadkost van 3,7 (gemiddelde van voorraadkosten

klanten.) De andere inputdata werden overgenomen uit de voorbeeldinstantie.(supra p4)

Het model dat geïmplementeerd werd, maakt in tegenstelling tot het model van Archetti et al., op

een vrij agressieve manier gebruik van de cuts aangebracht door de CPLEX omgeving. Hierdoor wordt

het mogelijk het model benaderd op te lossen zonder de noodzaak aan dynamisch programmeren.

Een implementatie in ILOG CPLEX 12.2 van het voorgestelde model (infra p99, Bijlage B) zonder de

ongelijkheden, zonder de subtour eliminatiebeperkingen en met een tijdslimiet van 30 minuten geeft

een resultaat van 27 758 met een gap van 8,21% en de volgende CPLEX cuts:

GUB cover cuts applied: 0

Clique cuts applied: 11

Cover cuts applied: 176

Implied bound cuts applied: 22

Flow cuts applied: 0

Mixed integer rounding cuts applied: 44

Flow path cuts applied: 0

Zero-half cuts applied: 33

Gomory fractional cuts applied: 6

Disjunctive cuts applied: 82

Page 56: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

45 Het Inventory Routing Probleem - 3.2 Een Branch en Cut algoritme voor een IRP

Dit kan gebruikt worden als benaderde ondergrens voor de waarde van een IRPTW model, maar deze

is echter te klein om echt waardevol te zijn. Het resultaat van het model is opgenomen in bijlage,

(infra p100, Bijlage B) hieronder worden enkele kernresultaten samengevat:

Figuur 23: Bestelhoeveelheid B&C

Klanten 1 2 3 4 5 6 7 8 9 10 11

1 0 0 0 29 0 0 0 31 0 0 0

2 0 0 100 0 0 0 104 30 0 0 0

3 0 0 34 0 0 0 35 6 0 0 0

4 0 0 0 38 4 0 0 38 0 0 0

5 34 16 0 0 0 0 35 6 0 0 0

6 102 13 0 0 68 15 0 0 68 0 0

7 75 13 0 0 73 5 0 0 73 0 0

8 0 0 58 2 0 0 68 10 0 0 0

9 35 2 0 0 35 19 0 0 0 0 0

10 0 29 5 0 0 0 35 9 0 0 0

11 0 0 0 35 0 0 33 6 0 0 0

12 95 25 0 70 9 0 0 70 13 0 0

13 120 35 0 0 0 108 15 0 0 0 0

14 39 0 0 35 2 0 0 35 0 0 0

15 0 0 131 30 0 0 0 145 0 0 0

In de eerste periode is dit de leveringsroute:

5

6

7

9

12

13

14

Page 57: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

46 Het Inventory Routing Probleem - 3.2 Een Branch en Cut algoritme voor een IRP

Figuur 24: Voorraadsniveau klanten (B&C)

Een ander exact algoritme voor een vergelijkbaar IRP model met één voertuig werd aangebracht

door Aghezzaf et al. [96] Hun basisalgoritme bestaat uit twee stappen. Een eerste stap is het

oplossen van een lineaire MIP met een vastgezette cyclustijd. Een tweede stap vernieuwt deze

parameter om zo alle mogelijke oplossingen te beschouwen. Een interessante conclusie uit hun

analyse was, dat zelfs een goed doordachte heuristiek tot zelfs 25% van het optimaal resultaat kan

afwijken wat de nood aan snellere exacte algoritmes enkel maar benadrukt.

0

20

40

60

80

100

120

140

160

Klant1

Klant2

Klant3

Klant4

Klant5

Klant6

Klant7

Klant8

Klant9

Klant10

Klant11

Klant12

Klant13

Klant14

Klant15

1

2

3

4

5

6

7

8

9

10

11

Periode

Page 58: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

47 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

3.3 Benaderingsmethode voor een IRPTW model Een basismethode in combinatorische optimalisatie focust zich op de beschrijving van de doelfunctie

van het combinatorische probleem in plaats van zijn polythoop. (supra p11, paragraaf 2.2) Gebruik

makend van technieken als (Lagangian) relaxatie en dualiteit kunnen we de optimale waarde van een

functie vinden of een hoge ondergrens vinden in het geval van minimalisatie, zonder het integer

probleem expliciet op te lossen. Technieken als Lagrangian relaxatie en Dantzig-Wolfe decompositie

komen hier tot hun recht. In Lagrangian relaxatie dualiseert men een set van complicerende

restrictie(s) naar de doelfunctie vermenigvuldigd met zogenoemde Lagrange multiplier(s). Hierdoor

wordt het mogelijk een uitgebreide (maar beperkte) set van relaxaties te gebruiken om moeilijke

problemen te benaderen. Gerelaxeerde problemen met gegeven multipliers noemt men een

Lagrangian subprobleem, terwijl het probleem om de grootste ondergrens te vinden voor de

multipliers een Lagrangian duaal probleem genoemd wordt. Een fundamenteel resultaat in wiskundig

programmeren is dat het Dantzig-Wolfe linear programmeringsprobleem voor het vinden van een

convexe oplossing voor het subprobleem, dat ook voldoet aan de complicerende restricties, een

duaal is van het (Langrangian) duaal probleem. Er bestaan twee klassieke algoritmes voor het

oplossen van het Lagrangian duaal probleem. Het eenvoudigste algoritme is de Sub Gradient

algoritme, een ander klassiek algoritme is de cutting-plane algoritme (een rij generatiealgoritme), die

in zijn primale versie een column-generation algoritme is. Deze algoritmen zijn convexe

minimalisatiealgoritmen die toehoren tot het veld van non-smooth of niet-differentieerbare

optimalisatie. [97] [43]

3.3.1 Beperking oplossingsruimte

Diverse auteurs die het IRP onderzoeken beroepen zich op de speciale kenmerken van een IRP om

het probleem benaderd te optimaliseren. Zo stellen Federgruen en Zipkin een niet-lineaire integere

oplossingsmethode voor waarbij het probleem opgesplitst wordt in een voorraadlocatie

deelprobleem, dat de voorraad en voorraadbreuk kosten afweegt, en een TSP deelprobleem. [28]

Campbell en Savelsbergh stellen een tweefasemethode voor waar eerst een delivery schedule wordt

gecreëerd en vervolgens de leverroutes. De eerste fase maakt gebruik van integer programming en

de tweede fase omvat planningsheuristieken.[9] Het maakt hiermee gebruik van het cluster concept

aangebracht door Webb en Larson [98] waarbij klanten gegroepeerd worden in clusters. [8]

Savelsbergh tracht op diverse manieren het aantal nodes te beperken. Zo zijn er voor elke klant

bepaalde periodes waar het economisch onverstandig zou zijn om een levering te krijgen, waardoor

deze uit het netwerk gehaald kunnen worden.[99] Deze aanpak is ontwikkeld voor vloeibare

producten, maar lijkt zeker ook bruikbaar voor een algemene IRP.

Page 59: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

48 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

Figuur 25: Voorraadniveau bij de klant laat toe bepaalde periodes uit het model te weren [99]

Deze techniek is vooral aangewezen wanneer een lange planningsperiode in beschouwing wordt

genomen. Een andere voorgestelde reductiemogelijkheid is onwaarschijnlijke arcs uit het netwerk

halen. Savelbergh stelt twee regels voor om het aantal arcs te beperken. Bij de eerste -regel

worden de arcs met een afstand groter dan uit het netwerk gehaald tot het punt waar verdere

reductie zou leiden tot minder dan klanten die verbonden zijn met klant i. De tweede regel

beperkt het aantal verbindingen van de klanten tot de dichtste verdelers.

Naast deze node reductietechnieken voegt Savelbergh ook de zogenoemde “delivery cover”

ongelijkheden toe aan het model. Deze ongelijkheden zijn vergelijkbaar met de capaciteitsrestricties

bij een Capacitated VRP en kunnen met behulp van een separation heuristiek toegevoegd worden

aan het model als ze geschonden worden.

Het IRP model dat in deze scriptie onderzocht wordt, houdt ook rekening met tijdsvensters. Hierdoor

is een arc beperking veel eenduidiger toe te passen. De regels voorgesteld door Savelbergh worden

dus niet geïmplementeerd, het idee van arc beperking echter wel. Zodra één klant opgenomen wordt

in een route wordt het immers mogelijk om het aantal mogelijk verbindingsarcs te beperken met

behulp van de tijdsvensters. Zo heeft het geen nut dat een klant die ‘s ochtends moet beleverd

worden als keuzemogelijkheid aanzien wordt om een klant op te volgen die pas ‘s middags beleverd

moet worden. Het voordeel van deze werkwijze is dat via beperkte gegevens op een eenvoudige

manier een cutting plane kan worden toegevoegd aan het model.

Op basis van de gegevens betreffende de tijdsvensters, de servicetijd en de transportkosten kan een

nieuwe dataparameter opgesteld worden die aan de hand van binaire waarden aangeeft of een

route mogelijk is tussen twee klanten. Voegt men deze beperking toe tot het IRP model, dan verkrijgt

men voor alle duidelijkheid geen IRPTW, het model zal echter wel een stuk dichter hierbij aansluiten.

Een nieuwe binaire parameter geeft aan of een route mogelijk is of niet op de net besproken

manier. Deze werd bekomen via een als functie in Excel die 1 wordt als een begintijdsvenster klant i

Page 60: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

49 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

vermeerderd met zijn servicetijd kleiner is dan het eind tijdsvenster van klant j.(tabblad “tijd” in de

voorbeeld Excelbestanden) Dit is het resultaat toegepast op het voorbeeld:

Tabel 8: Mogelijke routes toegepast op voorbeeld

Klanten 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

3 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1

4 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0

5 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1

6 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0

7 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1

8 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1

9 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0

10 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0

11 1 1 0 1 0 1 0 0 1 0 0 1 0 1 0

12 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0

13 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1

14 1 1 0 1 0 1 0 0 0 0 0 1 0 0 0

15 1 1 0 1 0 1 0 0 1 0 1 1 0 1 0

*Tabel 8 van klant i naar klant j (“1” indien geen flagrante tijdschendingen)

3.3.2 Een hybride aanpak voor het IRPTW model

Het hier beschreven model en oplossingsmethode is gebaseerd op het werk van Yu, Chen en Chu.

[94] Hun oplossingsmethode wordt grondig besproken omdat deze ook zal gebruikt worden om het

binnen deze scriptie voorgestelde IRPTW model op te lossen. De implementatie gebeurt aan de hand

van IBM ILOG OPL IDE 6.3 en maakt gebruik van de CPLEX 12.2 solver.

De voorgestelde oplossingsmethode maakt gebruik van de Lagrangian relaxatie techniek om een

benaderingsmodel op te splitsen in een voorraad subprobleem en een routing subprobleem. Vanuit

deze oplossing moet een mogelijke oplossing gehaald worden voor respectievelijk het

benaderingsmodel en het oorspronkelijk model. De figuur hieronder vat de oplossingsmethodologie

samen. De voorgestelde methode zal echter niet volledig gevolgd worden. Stap 4 tot en met 6

worden vervangen door het opnemen van het voorlopig resultaat in een VRPTW heuristiek die

voordien is uitgewerkt. (supra p13-36, paragraaf 2.3) Dit zorgt ervoor dat dit model via de VRPTW

heuristiek ook rekening houdt met tijdsvensters en pauzes opneemt op bepaalde tijdstippen.

Page 61: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

50 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

Figuur 26: Schema benaderingsmethode IRP van Yu, Chen en Chu.

Figuur 27: Gebruikte benaderingsmethode

Het benaderingsmodel van Yu et al. stelt enkele restricties van het basis IRP model (supra p38,

paragraaf 3.1) strakker om het oplossingsgebied te beperken en dus een efficiënter model op te

stellen.

De subtour restricties (1.9) uit het basis IRP model kunnen strakker gesteld worden:

∑ ∑

(3.1)

(3.2)

Er moet hier opgemerkt worden dat deze beide restricties geen voldoende voorwaarde zijn om een

mogelijke oplossing te definiëren noch voor subtour eliminatie. [94]

(1) Een benaderingsmodel (een voorraad en een routing subprobleem)

(2) Oplossen via een Lagrangian relaxation aanpak

(3) Bepaal een mogelijke oplossing voor het model (UB voor model)

(4) Bepaal een mogelijke oplosing voor het IRP (UB voor IRP)

(5) Locale optimalisatie

(6) Evalueer de finale oplossing met een LB verkregen via een LR en exacte decomposition

Page 62: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

51 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

Ook de niet-negativiteitsbeperking wordt vervangen door de binaire restrictie

omdat een klant in de optimale oplossing maar één

keer zal beleverd worden.

Daarnaast worden nog twee restricties toegevoegd: respectievelijk om de capaciteit van een voertuig

niet te overschrijden en om geen lege voertuigen van één klant naar een andere te laten rijden.

(3.3)

(3.4)

Om het model oplosbaar te maken via Lagrangian relaxatie moet de geheeltallige variabele

binair bepaald worden wat tot de volgende herformulering van het model leidt.

3.3.2.1 Model P’

Indexen:

t in 1..T Periode index

i,j in 0,1,…,N Klantenindex tot N klanten; 0 staat voor depot

Parameters:

C Capaciteit voertuig

Transportkosten van i naar j

Vaste kosten van klant i

Holdingkosten van klant i op periode t

Beginvoorraad van klant i

M Aantal beschikbare voertuigen

Vraag bij klant i in periode t

Maximale voorraad bij klant i

Beslissingsvariabelen:

Geleverde hoeveelheid aan klant i in periode t

Voorraadniveau van klant i in periode t

Vervoerde hoeveelheid over arc i,j

Page 63: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

52 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

Aantal keer dat de gerichte arc i,j gebruikt wordt in periode t

Hoeveelheid vervoert door voertuig m op de gerichte arc (0,i) in periode t,

met ∑

Binaire variabele, wordt 1 indien voertuig m vanuit het depot naar klant i rijdt in periode t

De doelfunctie bestaat uit zowel de voorraadkosten van de klanten als de vaste en variabele

transportkosten.

∑∑

∑ ∑ ∑

∑∑

∑∑ ∑

∑ ∑

(4.1)

Enkele restricties kunnen worden overgenomen uit het vorig model. (1.2)(1.3)(1.7)(1.10)(3.4)

De volgende restricties zijn een herformulering van het vorige model.

∑ ∑ ∑

(4.2)

∑ ∑ ∑

(4.3)

∑ ∑ ∑

(4.4)

∑ ∑

(4.5)

(4.6)

∑ ∑

(4.7)

(∑

) ∑

(4.8)

∈ | (4.9)

Page 64: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

53 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

(4.10)

Dit model verschilt licht met dat voorgesteld door Yu en al., hun model sommeert immers nooit over

alle voertuigen, maar uit de voortuigen naar klant i. Zo wordt bijvoorbeeld ∑ in hun model

∑ Het model heeft hierdoor meer variabelen, maar kan gemakkelijker geïmplementeerd

worden.

Om een benaderde optimale oplossing te vinden wordt de Lagrangian relaxatietechniek aangewend.

De restricties die uit het model gehaald worden zijn deze, die de beslissingsvariabelen

binden aan de integere variabelen Daarnaast worden de restricties (4.6) en (4.7) aangepast

om ervoor te zorgen dat de oplossing die verkregen wordt voor het gerelaxeerd model toch tot

bruikbare oplossingen leidt.

( ) (4.11)

(4.12)

(4.13)

(4.14)

Restrictie (3.4) kan zonder verlies van optimaliteit vervangen worden door

(4.15)

De volgende vijf Lagrange multipliers worden geïntroduceerd:

Om respectievelijk restricties (3.4), (4.8), (4.15), (4.11) en (4.13) te ontspannen.

Page 65: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

54 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

Het gerelaxeerd probleem is voorgesteld door Model RP.

Model RP:

(5.1)

Beperkt door: (1.2), (1.3), (1.7), (1.10), (4.2), (4.3), (4.4), (4.5), (4.9), (4.10), (4.12) en (4.14)

Met: {

} ∑

{

} { }

De decompositietechniek wordt vervolgens gebruikt om model RP “snel” op te lossen. Exacte

decompositie is niet mogelijk, maar wordt benaderd opgelost door afwisselend zijn twee

subproblemen op te lossen: één met gegeven { } en het andere met een gegeven

{ }

Subprobleem 1 behandelt het voorraadbeleid en wordt als volgt beschreven:

∑ ∑ ∑

∑ ∑ ∑ (

( )) ∑ ∑ ∑

(5.2.1)

Met beperkingen (4.4), (4.5), (4.12), (4.14) en de herformuleringen van (1.3) en (1.10):

∑ ∑

(5.2.2)

(5.2.3)

Subprobleem 2 behandelt het routing probleem en wordt hieronder opgesteld:

∑∑( ) ∑ ∑ ∑

∑∑ ∑

(5.3.1)

Beperkt door (1.7), (4.2), (4.3) en (4.9)

Submodel 2 behandelt het routing probleem. Het is dus hier dat we ook rekening kunnen houden

met de tijdsvensters. Het is echter niet mogelijk om op een efficiënte manier deze beperking in het

Page 66: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

55 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

model op te nemen. Dit zorgt er immers voor dat we te maken hebben met een kwadratische

beperking, wat de rekentijd van het model sterk verhoogt. Het is echter toch mogelijk om de

tijdsvenster beperking gedeeltelijk op te nemen in het model, via de binaire variabele . (supra

p49, paragraaf 3.3.1: “Deze werd bekomen via een als functie in Excel die 1 wordt als een

begintijdsvenster klant i vermeerderd met zijn servicetijd kleiner is dan het eind tijdsvenster van

klant j.”) Deze binaire variabele zorgt er zoals reeds gezegd niet voor dat de tijdsvensters gevolgd

worden maar eerder dat flagrante schendingen vermeden worden. Daarnaast is het ook mogelijk om

deze variabele te verstrakken door ook de pauzes bij de service tijd te voegen. Het opnemen van

deze pauzes bij elke klant zorgt ervoor dat klanten met tijdsvensters dicht bij elkaar een extra marge

krijgen. Het is dus mogelijk om met deze variabele te spelen zodoende interessantere oplossingen te

verkrijgen. Bij het routing submodel wordt de volgende beperking bijgevoegd:

(6.1)

Op het eerste gezicht is deze restrictie voldoende om flagrante schendingen in de tijdsvensters te

vermijden. Dit is echter niet het geval. Het is immers zo dat bij de voorgestelde oplossingsmethode er

uiteindelijk teruggekoppeld zal moeten worden naar het IRP model om mogelijke resultaten te

bekomen. Dit betekent dat ook restrictie (4.11) terug ingevoerd word. Daarom moet ook een

restrictie ingebouwd worden in submodel 1 om zo ook hier bepaalde arcs uit te sluiten.

Vandaar dat de volgende restrictie toegevoegd wordt aan het eerste submodel:

(6.2)

De oplossingsmethode is gebaseerd op de subgradiënt methode, die vanwege de niet exacte

decompositie niet kan worden gebruikt. Daarom wordt de surrogaat subgradiënt methode naar

voren geschoven.[100]

De Surrogaat Subgradiënt methode (SSG) kan als volgt worden beschreven:

Stap 0. Initialisatie: , en , waar de iteratie-index is, de parameter voor

de stap sizing.

Stap 1. Los de voorraad en routing submodellen op met de Lagrange multipliers met als

input de oplossing van de submodellen uit de vorige iteraties. Bij zijn de

modellen onafhankelijk en kunnen ze dusdanig opgelost worden.

Stap 2. Bepaal de stapgrootte

‖ ‖

Page 67: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

56 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

, ( ) is de surrogaat duaal

bij de huidige iteratie k, is de

surrogaat subgradiënt bij de huidige iteratie k, is de optimale waarde voor het

duaal probleem geschat door

, waar de beste surrogaat duaal die

voor iteratie k voor handen is, in het

ander geval. Parameters

Stap 3. Update de Lagrange multipliers in iteratie

Stap 4. Controleer of de stopcriteria niet geschonden worden. Zo moet de iteratie gestopt

worden als voor een voldoende aantal iteraties niet meer verbeterd of indien een

vooraf bepaald aantal iteraties bereikt zijn. Indien een criterium geschonden wordt,

moet de iteratie stoppen en kan de output gegeven worden, zo niet stel

en ga naar stap 1.

Gezien het surrogaat duaal geen Lagrangian duaal in de strikte zin is, kan de waarde de minimum

doelwaarde van het origineel probleem tornen. Dit betekent dat de surrogaat duaal bekomen via

de SSG in de Lagrangian relaxatieaanpak niet gezien kan worden als de lower bound of .

Het bekomen resultaat voor en dient vervolgens ingebracht te worden in model P’

waardoor de bijhorende waarden voor , en bepaald kunnen worden.

Vervolgens wordt afgeweken van de werkmethode van Yu, Chen en Chu doordat de waarde voor

ingebracht wordt in een VRPTW heuristiek (supra p13-36, paragraaf 2.3) om de optimale routes te

bepalen. Dit heeft het voordeel dat er ook rekening gehouden wordt met de tijdsvensters en de

pauzes van chauffeurs. Daarnaast is het hierdoor eenvoudiger om de hier besproken methode te

vergelijken met de voorgestelde heuristiek. Het nadeel is echter wel dat er geen lokale optimalisatie

meer gebeurt, hoewel dit gecompenseerd kan worden door de heuristiek.

3.3.2.2 Parameterwaarden

Om goede waarden te vinden voor parameters , en werden verschillende trial en error

experimenten uitgevoerd. Het resultaat staat in Tabel 9.(infra p57) De geteste combinatie van

parameters staat links in de tabel, rechts staan de bijhorende kosten gevonden voor het IRP model.

Deze kosten moeten nog aangepast worden om tot mogelijke oplossingen te komen, vandaar de

hoge waarde.

De parameterwaarden worden vastgelegd op ; en .

Page 68: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

Tabel 9: Parameterwaarden SSG

B 0,1 0,3 0,5 W 0,5 0,7 0,9 P 1,2 1,4

Max. aantal iteraties=15

Test B W P 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 0,1 0,5 1,2 572125 520375 564075 511614 533955 508539 527416 513124 523990 514472 517614 515600 520405 513184 519676

2 0,1 0,5 1,4 572125 520375 564075 511614 533955 508539 527416 513124 523990 514472 517614 515600 520405 513184 519676

3 0,1 0,7 1,2 572125 520375 564075 507177 528750 508933 534498 510980 530092 513354 527356 522078 529292 529182 532679

4 0,1 0,7 1,4 572125 520375 564075 507177 528750 508933 534498 510980 530092 513354 527356 522078 529292 529182 532679

5 0,1 0,9 1,2 572125 520375 564075 508100 529686 507712 531357 521538 532003 521421 526622 525428 529663 524426 528614

6 0,1 0,9 1,4 572125 520375 564075 508100 529686 507712 531357 521538 532003 521421 526622 525428 529663 524426 528614

7 0,3 0,5 1,2 572125 520375 564075 511465 525982 512555 524704 515980 516737 514294 515283 527485 520028 528222 520471

8 0,3 0,5 1,4 572125 520375 564075 511465 525982 512555 524704 515980 516737 514294 515283 527485 520028 528222 520471

9 0,3 0,7 1,2 572125 520375 564075 511055 526024 506075 526054 548220 547769 548054 547049 548253 556095 549209 563985

10 0,3 0,7 1,4 572125 520375 564075 511055 526024 506075 526054 548220 547769 548054 547049 548253 556095 549209 563985

11 0,3 0,9 1,2 572125 520375 564075 506549 527476 511711 531112 512127 522195 528770 525135 527246 532820 529917 531536

12 0,3 0,9 1,4 572125 520375 564075 506549 527476 511711 531112 512127 522195 528770 525135 527246 532820 529917 531536

13 0,5 0,5 1,2 572125 520375 564075 507938 525212 623115 625257 627845 606529 611861 607003 610105 613574 611654 557075

14 0,5 0,5 1,4 572125 520375 564075 507938 525212 623115 625257 627845 606529 611861 607003 610105 613574 611654 557075

15 0,5 0,7 1,2 572125 520375 564075 511012 526524 567317 583803 555531 571008 587889 558538 561100 557537 571831 558931

16 0,5 0,7 1,4 572125 520375 564075 511012 526524 567317 583803 555531 571008 587889 558538 561100 557537 571831 558931

17 0,5 0,9 1,2 572125 520375 564075 507038 525212 623115 625257 627845 606529 611861 607003 610105 613574 611654 557075

18 0,5 0,9 1,4 572125 520375 564075 507038 525212 623115 625257 627845 606529 611861 607003 610105 613574 611654 557075

Page 69: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

58 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

3.3.2.3 Uitvoering Surrogaat Subgradiënt methode

Met het vastleggen van de parameters kan overgegaan worden op een bespreking van de SSG

implementatie. Deze werd geprogrammeerd in de IBM ILOG OPL IDE 6.3 omgeving en maakt gebruik

van de CPLEX Solver en een Exceldatabase. Vereenvoudigde modelleringen werden opgenomen in

bijlage. (infra p102, bijlage C) Voor de volledige modellen wordt verwezen naar de “run”

configuraties voor het voorbeeld submodel1, submodel2, deelinvullen, invullen, invullen2, P’ en

surrogate_subgradient, opgenomen in de bijlage cd ( open “Masterproef.opl” project in IBM ILOG

OPL.) Daarnaast vervult ook het Excelbestand (example.xlsx) tal van functies. Zo wordt de

stapgrootte in Excel berekend en nadien opgeroepen in ILOG voor verder gebruik.

De minimumwaarde bij de gegeven parameters wordt bereikt na vijf iteraties. Alle resultaten en

scripting log voor deze iteraties kan gevonden worden op de bijlage cd. (map: min_vb_Hybrid) De

waarden voor de variabelen kunnen teruggevonden worden op de vele tabbladen van het

Excelbestand die bij de iteratie hoort.

3.3.2.4 Een beknopte samenvatting van de implementatie:

Stap 0: Initiëren waarden. (basis.xlsx) Het tabblad stepsize bevat de parameterwaarden. Alle

Lagrangian multipliers worden op nul gezet.

Stap 1: Het model voert respectievelijk submodel 1 en 2 uit. De input wordt via een

“sheetconnection” uit Excel gehaald, de CPLEX Solver wordt vervolgens aangewend om het

model op te lossen waarna de oplossing terug naar Excel getransfereerd wordt.

Stap 2: Het model bepaalt de stapgrootte. De oplossingen van submodel 1 en 2 worden ingevuld in

de “run” configuratie deelinvullen. en de gradiënts worden berekend en

ingevuld in het Excelbestand. De feitelijke stapgrootte en geschatte duale waarde wordt

vervolgens berekend in Excel zelf, in tabblad StepSize. Het maakt hierbij gebruik van diverse

functies om het maximum van de absolute waarde van de gradiënts te bepalen en van de

functies aangebracht in de theoretische beschrijving. Binnen dit tabblad worden ook de

iteratievariabelen bijgehouden.

De waarden voor en worden ingebracht in model P’ om een mogelijke oplossing te

bekomen voor de variabelen , en . In tegenstelling tot de werkwijze van Yu, Chen en Chu.

[94] werd ervoor gekozen om dit elke iteratie te doen. De bijhorende doelfunctie is die, die moet

worden geminimaliseerd.

Page 70: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

59 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

Stap 3: De voordien berekende stapgrootte laat het updaten van de multipliers toe.

Excel wordt gebruikt om de negatieve waarden naar nul terug te

brengen.

Stap 4: Enkel één stopcriterium is opgenomen in het model, het andere moet manueel

gecontroleerd worden. Indien de doelfunctie niet meer verbetert voor een bepaald aantal

iteraties kan men de loop stoppen.

Opmerking: Het werken met een Exceldatabase heeft een sterke invloed op de werktijd van de

hybride benaderingsmethode. Het geheugen loopt snel vol vanwege openstaande

data. De werking van het model is vandaar een stuk sneller wanneer iteratie per

iteratie gewerkt wordt. Op die manier worden overbodige data frequent gedumpt.

Op het voorbeeld is de werktijd van één iteratie minder dan een minuut. Een 20-tal

iteraties duurt op deze methode een kleine 20 minuten.

Wanneer men het model echter direct instelt op 20 iteraties is die rekentijd

opmerkelijk hoger en bestaat er een kans dat het systeem zonder geheugen komt.

Een betere programmering zal dus tot snellere modellen leiden. Indien de

Exceldatabaseconnectie vervangen kan worden door efficiënter databeheer zal de

werktijd herleidt worden tot een fractie van de huidige werktijd.

Tabel 10: Waarden SSG

Iteratie Z[k] Q D* Stapgrootte

0 466325,5 0 1 0 -1,55442

1 378305,3 466325,5 1 792753,4 1,381493

2 479492,9 378305,3 1 643119 0,54542

3 1925221 378305,3 1 643119 -4,27367

4 484351,6 378305,3 1 643119 0,529225

5 974071,8 378305,3 1 643119 -1,10318

3.3.2.5 Resultaten

Uit de waarden van de minimale iteratie (hier iteratie 5) wordt de bestelhoeveelheid gebruikt om het

bijhorende VRPTW op te lossen. Hiervoor wordt beroep gedaan op de Variable Neighbourhood

Search metaheuristiek met 2 mutatie functies (VNS2H) voor een VRPTW aangebracht in paragraaf

2.3.1.

Page 71: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

60 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

De bestelhoeveelheid die ingebracht wordt, staat hieronder getabelleerd:

periode

klanten 1 2 3 4 5 6 7 8 9 10

1 0 0 0 16 0 0 21 0 23 0

2 0 0 9 89 0 0 103 0 0 33

3 0 0 7 18 0 8 42 0 0 0

4 0 0 0 33 0 0 42 0 0 0

5 0 0 0 16 0 0 41 0 0 0

6 0 0 0 37 0 14 24 69 0 0

7 0 0 0 91 0 0 0 0 19 24

8 0 0 46 0 0 14 14 64 0 0

9 0 0 54 0 0 0 1 0 0 1

10 0 1 33 0 0 0 12 32 0 0

11 0 0 44 0 0 0 0 30 0 0

12 0 5 20 16 24 18 21 83 0 0

13 0 0 2 15 18 23 16 28 25 31

14 0 0 0 13 8 6 10 14 9 12

15 0 0 11 81 0 31 38 44 55 39

Tabel 11: Bestelhoeveelheid via hybride methode

De transportkosten worden verkregen via de VRPTW heuristiek waar de voorraadkosten buiten staan.

Daarom werd een afzonderlijk voorraadsmodel opgesteld (infra p108, Bijlage D). Door dit model in te

brengen in MATLAB (infra p64, paragraaf 3.4.1.2) kan ook de voorraadkost in rekening gebracht

worden bij het bepalen van de kosten.

De functie IRPTW.m (Bijlage H) berekent de totale kosten van de IRPTW oplossing verkregen via de

hybride methode en de VNS heuristiek. Een totale kost van 81 996 wordt bekomen met de

bijhorende routes: (infra p61, Tabel 12)

0

10

20

30

40

50

60

70

80

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Periode 1

Periode 2

Periode 3

Periode 4

Periode 5

Periode 6

Periode 7

Periode 8

Periode 9

Page 72: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

61 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

Tabel 12: Routes bij oplossing hybride methode

10 12

13 15 12

3 8 10 11 9 2

13 15 14 12

5 3 7 6 4 2 1

13 14 12

3 8 6

13 15 14 12

13 15 14 12

5 3 8 10 9 6 4 2 1

13 15 14 12

8 10 11 6

13 15 14

7 1

13 15 14

7 9 2

Routes 10de Periode

Routes 3de Periode

Routes 4de Periode

Routes 1ste Periode

Routes 2de Periode

Routes 5de Periode

Routes 6de Periode

Routes 7de Periode

Routes 8ste Periode

Routes 9de Periode

Page 73: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

62 Het Inventory Routing Probleem - 3.3 Benaderingsmethode voor een IRPTW model

Tabel 13: Kosten na benaderde optimalisatie

Transportkosten berekend volgens hybride methode

TSSA-VRPTW 81 996

ANTS-VRPTW 127 935

VNS-VRPTW 81 996

GRASP-VRPTW 81 996

Page 74: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

63 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

3.4 Heuristieken voor een IRPTW model Om een heuristiek op te stellen die zowel voorraad als transport optimaliseert, kan men zich best

focussen op een beslissingsvariabele die een belangrijke invloed heeft op beide. Deze vindt men in de

bestelhoeveelheid (OQ) die per periode en per klant bepaald wordt. Aan de hand van deze OQ kan

men de routes per periode verkrijgen via een VRPTW heuristiek. (vergelijkbaar met de

kostenberekening voor de benaderingsmethode, cf. paragraaf 3.3.2.5, p59) Om de voorraadkosten te

bepalen kan hetzelfde voorraadsmodel gebruikt worden.

3.4.1 IRPTW via een GA en een VNS VRPTW heuristiek

Om naast de transportkosten ook de voorraadkosten in beschouwing te nemen kan men een Genetic

Algoritme (GA) combineren met een VRPTW heuristiek. Om de GA te implementeren wordt gebruik

gemaakt van de optimalisatietoolbox ingebed in MATLAB 2010b. Het voorraadsmodel werd

gemodelleerd in IBM ILOG 6.3 en ingelezen in MATLAB.

Deze paragraaf begint met een uiteenzetting van de algemene werkwijze van de GA metaheuristiek

waarna de instelling voor de verschillende opties wordt besproken.

3.4.1.1 Genetisch Algoritme

De techniek van de genetische algoritmen komt voort uit de biologie. In de genetica wordt namelijk

de relatie bestudeerd tussen ouders en kinderen. De oorsprong van genetica kan gevonden worden

in de wetten van Mendel. Gregor Johann Mendel stelde in zijn werkstuk “Versuche über Pflanzen-

Hybriden” of experimenten op hybrideplanten vast dat planten kenmerken doorgeven aan hun

nakomelingen. Deze bevindingen werden later veralgemeend. Zo vindt men onderlinge relaties

tussen generaties en bestudeert men de invloed van bepaalde uiterlijke of fysieke kenmerken.

Darwins evolutieleer staat centraal in de toepassing van genetische algoritmen bij

optimalisatieproblemen. Bij een zichzelf voortplantende populatie zou het “fitste” individu de

grootste kans moeten hebben om te overleven en zijn genetische kenmerken over te dragen naar de

volgende generatie.

Voor elk individu van de populatie wordt daarom de fitheid berekend met behulp van een

fitheidsfunctie. Het symboliseert hoe goed of slecht een individu zich verhoudt tot andere individuen

in de populatie. Natuurlijke selectie moet er dan voor zorgen dat de “fitste” individuen met een hoge

waarschijnlijkheid als ouders geselecteerd worden.

De volgende generatie ontstaat door middel van reproductie, een proces waarin kinderen gecreëerd

worden door mutatie en recombinatie toe te passen op de populatie.

Page 75: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

64 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Figuur 28: 2 punten cross-over van binaire strings8

Bij recombinatie wordt het genetisch materiaal van de ouders gecombineerd tot nieuwe individuen,

bijvoorbeeld via een cross-over functie. (supra Figuur 28) Mutatie daarentegen zorgt voor diversiteit

in de bevolking waardoor de zoekruimte verruimt en lokale optimalisatie vermeden kan worden.

Diverse mutatieoperatoren kunnen aangewend worden om de diversiteit van de populatie te

verhogen.

Recombinatie tracht de fitheid van de individuen te verbeteren door bepaalde eigenschappen te

wijzigen en te optimaliseren. Daarnaast is er ook een immigratiestroom nodig die geheel nieuwe

oplossingen aanbrengt en de populatiediversiteit verhoogt.

Alvorens de nieuwe oplossingen (recombinatiekinderen en immigratiekinderen) in de populatie

worden geïntroduceerd, wordt nog getracht elk individu op zich te verbeteren via een lokale

zoektechniek. Een dergelijk algoritme zoekt op iteratieve manier doorheen de oplossingsruimte,

startend vanuit de individuele oplossing die het individu aangeeft. Het lokaal zoekalgoritme zal

telkens de huidige oplossing door een betere oplossing in de naburige ruimte vervangen totdat geen

gunstigere oplossing meer kan worden gevonden of tot wanneer aan een bepaald stopcriterium is

voldaan. Een dergelijk stopcriterium kan bijvoorbeeld gebaseerd zijn op het beperken van het aantal

zoekiteraties of op het limiteren van de zoektijd. [101] De optimalisatiecyclus van selectie,

recombinatie en immigratie blijft zich dus herhalen tot één stopcriteria is behaald.

3.4.1.2 Hybride toepassing van GA

Het optimaliseren van de bestelhoeveelheid gebeurt niet onafhankelijk van de transportkosten.

Daarom wordt een VRPTW heuristiek gebruikt om de transportkosten in rekening te brengen.

Voor de implementatie van de GA metaheuristiek wordt gebruik gemaakt van het GA uit de MATLAB

2010b optimalisatietoolbox. Om deze toolbox te gebruiken moeten de restricties aan bepaalde

8 http://www.stumptown.com/diss/chapter2.html (15/05/2011)

Page 76: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

65 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

vormvereisten voldoen. De variabele die geoptimaliseerd moet worden via de GA is de

bestelhoeveelheid per periode en per klant. Dit betekent dat er variabelen zijn. De restricties

beperken zich tot geen voorraadbreuk, een niet-negatieve vraag en de maximale voorraad. Dit aantal

restricties lijkt weinig, maar om aan de vormvereisten van de toolbox te voldoen betekent dit reeds

300 restricties. De restricties die lineaire ongelijkheden zijn, moeten in de standaardvorm

geschreven worden om gebruikt te worden in de toolbox. Dit betekent dat A een [300,150] matrix

is. Het manueel invullen van de ongelijkheden is dus niet aan te raden. Vandaar dat er naar een

andere methode gezocht is.

Gezien het aantal variabelen snel oploopt naarmate het klantenbestand uitbreidt of meer periodes in

beschouwing genomen worden, zal het GA enkel toegepast worden op het basisvoorbeeld

aangebracht in paragraaf 1.2.

Een lineair voorraadsmodel kan snel en eenvoudig opgesteld worden via het ILOG OPL

softwarepakket. Binnen dit model kan men eenvoudig aan de vormvereisten voldoen. Gebruik

makend van de exportmogelijkheden van ILOG OPL kan men dan dit model vervolgens exporteren

naar een MPS bestand. Dit MPS bestand kan ingelezen worden via het “readmps” pakket beschikbaar

gesteld door Dr. Brian Borchers ( http://infohost.nmt.edu/~borchers/readmps.html .) De doelvector,

A, b en de Upper en Lower Bounds kunnen via dit pakket ingelezen worden in MATLAB. Dit maakt het

mogelijk om verschillende datainstanties snel en eenvoudig te modelleren en in MATLAB te

gebruiken.

De fitnessfunctie voorgesteld door IRPTW.m drukt de ‘fitheid’ uit in functie van de

bestelhoeveelheid. De data die binnen deze script moeten ingelezen worden, bevatten de capaciteit,

doelvector, aantal periodes, vaste kosten en de klantendata met de tijdsvensters, locaties en

servicetijd.

De doelvector X voor de voorraadkosten is afkomstig van het MPS bestand (=’obj’) de andere data

zijn dezelfde als deze gebruikt in de initiële IRPTW. (omvormen.m)

De fitnessfunctie is

De combinatie van de heuristieken zorgt ervoor dat het testen van de parameters een zeer

tijdrovende bezigheid is. Vandaar dat ervoor gekozen is om de testwaarden tot een absoluut

minimum te beperken door zorgvuldig de beschikbare functies te beoordelen naar hun effectiviteit

Page 77: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

66 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

binnen deze heuristiek. Hieronder volgt een beknopt overzicht van de gebruikte functies en de reden

waarom voor die opties is gekozen. Voor een volledig overzicht van de functies van de

optimalisatietoolbox dient verwezen te worden naar de gebruikershandleiding van de MATLAB

toolbox. (samengevat in Bijlage E)

3.4.1.3 Opties GA

3.4.1.3.1 Opbouw initiële populatie

De keuze van een interessante initiële populatie is essentieel voor de goede werking van het

algoritme. De interessante populatie vergt een bepaalde diversiteit in de bevolking. Als de

gemiddelde afstand tussen de individuen groot is, is de diversiteit hoog, zo niet is de diversiteit laag.

Het bepalen van de juiste hoeveelheid van diversiteit is een kwestie van trial en error. Te hoge of te

lage diversiteit is echter nefast voor de werking van het algoritme. Om de populatie te verbeteren is

ervoor gekozen om de populatie deels willekeurig te bepalen en deels de populatie afkomstig van de

iteraties uit de eigen IRPTW heuristiek (infra p72, paragraaf 3.4.2) over te nemen. Een andere

mogelijkheid is om de best bekomen oplossing te gebruiken als range voor de initiële bevolking. Dit

verbetert de oplossing van het GA, maar men zit vast in een lokale oplossing. De tweede invloed

factor op de range van de bevolking is de mutatiefunctie. Voor een probleem met restricties wordt

binnen de MATLAB toolbox de “Adapted Feasible” functie aangeraden. Hiervan zal dus niet worden

afgeweken.

De grootte van de populatie moet minstens het aantal variabelen overtreffen zodat de individuen in

elke populatie de zoekruimte overspannen. Via de eigen IRPTW heuristiek (infra p72, paragraaf

3.4.2) werden 103 populaties ingebracht. Om boven het aantal variabelen (150) uit te groeien, werd

ervoor gekozen deze populatie te verdubbelen en af te ronden tot 250, zodat de rekentijd nog

binnen de perken blijft.

3.4.1.3.2 Fitness scaling

Deze optie bepaalt hoe de fitnesswaarde zal beoordeeld worden tijdens de selectieprocedure. De

selectieprocedure maakt gebruik van de geschaalde fitnesswaarde om de ouders te selecteren.

Indien de geschaalde waarden voor een bepaalde ouder te hoog zijn, zal dit leiden tot een lokaal

optimum, terwijl een te lage waarde ervoor zal zorgen dat het te traag gaat. De standaardfunctie die

hier aangeboden wordt, is de “Rank” functie. Hier wordt geen rekening gehouden met de spread

tussen de fitnesswaarden, waardoor men mogelijk trager naar een oplossing convergeert. Een

andere veelgebruikte functie is de “top scaling” waar de beste ouders een gelijke kans hebben om

geselecteerd te worden. Daarnaast wordt in de MATLAB toolbox ook nog een proportionele en

lineaire shiftfunctie ter beschikking gesteld.

Page 78: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

67 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

3.4.1.3.3 Selectie

De selectiefunctie bepaalt hoe ouders geselecteerd worden. Diverse selectiefuncties zijn

beschikbaar:

De “Remainder” functie. Deze functie heeft het voordeel dat de geschaalde waarde afgerond

wordt waardoor de kleine verschillen in spread van de populatie niet doorwegen op de keuze

van de ouders. Voor het gefractioneerd gedeelte wordt dan gebruik gemaakt van een

“roulette” methode. Waardoor de spread toch weer zijn effect heeft.

De “Stochastisch uniforme” functie waar elke ouder een stuk, proportioneel met zijn

geschaalde waarde, doorgeeft aan de volgende generatie.

Daarnaast zijn er nog de “Roulette”- en de “Tournament” selectiefunctie.

3.4.1.3.4 Reproductie

Deze opties bepalen hoe de volgende generatie zal gecreëerd worden. De opties zijn:

“Elite count”: Het aantal personen met de beste fitnesswaarden in de huidige generatie die

gegarandeerd overleven en in de volgende generatie opgenomen worden. De

standaardwaarde is 2, maar de optimale waarde is 1. Een te hoge waarde zorgt voor een

dominantie van de sterkste individuen waardoor men opnieuw in lokale optimalisatie

vastloopt. De gekozen testwaarden zijn 1,2 en 4.

“Cross-over fractie”: Dit bepaalt de fractie van de populatie, anders dan de elitekinderen, die

gemaakt wordt aan de hand van een Cross-over mutatie. Standaard staat deze waarde op 0,8.

Voor de geëxperimenteerde waarden wordt hier slechts minimaal van afgewijkt tot 0,7; 0,8

en 0,9.

3.4.1.3.5 Cross-over functie

Voor de Cross-over functie zijn er diverse mogelijkheden binnen de MATLAB toolbox beschikbaar,

namelijk de “Heuristiek”, “One point”, “Two points”, “Scattered”, “Intermediate” en “Arithmetic”

Cross-over functie. De heuristiek functie zorgt ervoor dat de bestelhoeveelheid net iets verder zal

liggen dan de bestelhoeveelheid van de beste ouder in de richting weg van de slechtste ouder. De

one point en de two points functies kunnen het voordeel hebben dat een klant verandert van route

of periode. Het nadeel is dan echter wel dat de bestelhoeveelheid niet aangepast wordt, maar eerder

overgenomen van een van de ouders. De intermediate functie berekent een willekeurig gewogen

gemiddelde van de ouders om nieuwe kinderen te creëren. Deze functie lijkt bijzonder nefast voor de

werking van de heuristiek.

Page 79: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

68 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Voor de migratie parameteropties en de stopcriteria werd gekozen om de standaardwaarden te

gebruiken.

3.4.1.4 Analyse van de GA

Nadat een depth first search (infra p71, Tabel 15) is uitgevoerd op de parameter en de functies van

de MATLAB 2010b GA kan men een analyse uitvoeren op enkele van deze resultaten. De MATLAB

toolbox stelt hiervoor diverse output plots ter beschikking die gevolgd kunnen worden tijdens de

applicatie. Een overzicht van de beschikbare plots is opgenomen in bijlage. (infra p113, Bijlage E)

Zoals in de inleiding vermeld, is de diversiteit in de populatie van groot belang voor de efficiëntie van

de GA. Het is dan ook maar de vraag of het gebruik van een voordien bepaalde populatie niet nefast

is voor de populatie. Om dit na te gaan wordt de GA zonder vooraf bepaalde populatie geanalyseerd

met de standaardparameters. De afstandsplot toont de gemiddelde afstand tussen de individuen,

links zonder opgenomen populatie en rechts met. Gezien de populatie willekeurig bepaald wordt kan

men uitgaan van een diverse populatie. Indien de gemiddelde afstand vergelijkbare waarden

aanneemt bij het opnemen van een vooraf bepaalde populatie kan men ervan uitgaan dat de

populatie divers is. De gemiddelde afstand ligt lager wanneer men de vooraf bepaalde populatie

gebruikt, maar toch is deze voldoende om te spreken van een diverse populatie. De populatie

convergeert echter wel een stuk sneller.

Door het invoegen van de populatie verkregen via de IRPTW heuristiek bekomt men een opmerkelijk

beter resultaat (van 12 740- links naar 89 603-rechts). In alle waarschijnlijkheid is dit te wijten aan de

manier waarop de GA omgaat met de vele nullen in de populatie en de complexe impact van de

restricties.

Page 80: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

69 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Ook voor de parameterwaarden kan men met behulp van deze plots (van links naar rechts: de fitness,

de genealogy9 en de selectieplot van de laatste iteratie ) diverse inzichten verkrijgen. Ter illustratie

wordt het effect van de cross-over fractie bekeken bij een Single point cross-over functie:

Cross-over fractie 0,7:

Cross- over fractie 0,8

Cross-over fractie 0,9

Uit deze plots blijkt dat de one point cross-over functie zich vooral moet focussen op bepaalde

individuen in de populatie. Uit de selectieplots van de laatste iteratie blijkt dat er een duidelijke

selectie is gebeurd bij een cross-over van 0,8 terwijl bij een cross-over van zowel 0,7 en 0,9 de

selectie te egaal is om effectief te zijn.

Uit de vergelijking van de plots zou men kunnen afleiden dat de beperkte diversiteit door de grote

cross-over fractie van 0,9 tot mindere oplossingen leidt. Bij een cross-over fractie van 0,7 geldt dan

weer het omgekeerde. Dit wordt duidelijk geïllustreerd in de fitnessplot. De plotselinge verhoging is

er immers te wijten aan een te grote inmenging van de mutatie functie, die tracht de diversiteit te

verhogen. De diversiteit is dusdanig verhoogd dat enkele positieve kernmerken van de populatie

verloren zijn gegaan.

9 De rode lijnen wijzen op mutatie kinderen, blauw op cross-over kinderen en zwart wijst op elite kinderen

Page 81: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

70 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

3.4.1.5 Resultaat

Het verkregen resultaat voor de bestelhoeveelheid die via de GA werd bekomen, wordt hieronder

weergegeven:

Klanten 1 2 3 4 5 6 7 8 9 10

1 0 0 0 0 21 0 25 0 0 13

2 0 0 64 0 115 0 0 0 109 0

3 0 0 33 0 0 0 41 0 0 0

4 0 0 0 43 0 0 0 44 0 0

5 0 0 0 35 2 2 2 2 2 14

6 0 0 0 74 0 0 0 71 0 0

7 0 0 0 73 0 0 60 0 0 73

8 0 0 71 1 1 1 1 65 0 0

9 0 0 0 20 0 24 0 0 26 0

10 0 35 0 0 0 0 40 1 1 1

11 0 0 0 27 0 37 0 0 0 40

12 0 71 0 0 0 60 0 0 55 0

13 0 0 47 0 0 80 0 0 0 31

14 0 0 0 41 2 2 2 2 31 0

15 0 0 125 0 0 0 146 0 0 140

Tabel 14: Resultaat GA - bestelhoeveelheid

Dit resultaat illustreert een inherente zwakheid van dit GA. Bestelhoeveelheden van de ordegrootte

van 1 of 2 dienen vermeden te worden. Toch kan men ze er echter niet zomaar uitnemen. De initiële

populatie bevat betere oplossingen dan bekomen door dit GA wat enerzijds de waarde van de IRPTW

heuristiek aantoont die de populatie bepaalt, maar anderzijds ook de gebreken van dit GA aantoont.

Naarmate de voorraadkosten groter worden, zal de daadkracht van de eigen IRPTW heuristiek

afnemen. (infra p72, paragraaf 3.4.2)

Page 82: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

Tabel 15: Depth first search op parameters en functies GA

Waarde Fitness scaling Selection Reproduction Mutation Cross-over

fractie Cross-over

functie Migration direction

Migration Fraction

Migration interval

Opmerking

89825 Rank Stochastic uniform Elite count 2 Adaptive feasible 0,8 Scattered Forward 0,2 20 Default waarden

90155 Proportional Stochastic uniform Elite count 3 Adaptive feasible 0,8 Scattered Forward 0,2 20 90198 Top scales Stochastic uniform Elite count 4 Adaptive feasible 0,8 Scattered Forward 0,2 20 90154 Shift linear Stochastic uniform Elite count 5 Adaptive feasible 0,8 Scattered Forward 0,2 20 90011 Rank Remainder Elite count 6 Adaptive feasible 0,8 Scattered Forward 0,2 20 89922

Roulette Elite count 7 Adaptive feasible 0,8 Scattered Forward 0,2 20

90181

Tournement 4 Elite count 8 Adaptive feasible 0,8 Scattered Forward 0,2 20 90046

Stochastic uniform Elite count 1 Adaptive feasible 0,8 Scattered Forward 0,2 20

89748

Elite count 4 Adaptive feasible 0,8 Scattered Forward 0,2 20 90087

Elite count 2 Adaptive feasible 0,7 Scattered Forward 0,2 20

90162

Elite count 2 Adaptive feasible 0,9 Scattered Forward 0,2 20 90080

Elite count 5 Adaptive feasible 0,8 Scattered Forward 0,2 20

89603

Elite count 3 Adaptive feasible 0,8 Scattered Forward 0,2 20 89738

Adaptive feasible 0,7 Scattered Forward 0,2 20

89947

Adaptive feasible 0,9 Scattered Forward 0,2 20 90150

Adaptive feasible 0,7 Single point Forward 0,2 20

89946

Adaptive feasible 0,8 Single point Forward 0,2 20 91339

Adaptive feasible 0,9 Single point Forward 0,2 20

90023

Adaptive feasible 0,6 Two point Forward 0,2 20 89849

Adaptive feasible 0,7 Two point Forward 0,2 20

90087

Adaptive feasible 0,8 Two point Forward 0,2 20 90107

Adaptive feasible 0,9 Two point Forward 0,2 20

89949

Adaptive feasible 0,7 Intermediate Forward 0,2 20 91004

Adaptive feasible 0,8 Intermediate Forward 0,2 20 opmerking wel minimum van 89720 bereikt

91153

Adaptive feasible 0,9 Intermediate Forward 0,2 20 90134

Adaptive feasible 0,7 Heuristic 1,2 Forward 0,2 20

89768

Adaptive feasible 0,8 Heuristic 1,2 Forward 0,2 20 90138

Adaptive feasible 0,9 Heuristic 1,2 Forward 0,2 20

91423

Adaptive feasible 0,8 Heuristic 1,1 Forward 0,2 20 90129

Adaptive feasible 0,8 Heuristic 1,3 Forward 0,2 20

90152

Adaptive feasible 0,7 Arithmetic Forward 0,2 20 90187

Adaptive feasible 0,8 Arithmetic Forward 0,2 20

90187

Adaptive feasible 0,9 Arithmetic Forward 0,2 20 90025

Adaptive feasible 0,8 Scattered Both 0,2 20

89603

Adaptive feasible

Forward 0,1 20 89823

Adaptive feasible

0,3 20

90087

Adaptive feasible

0,2 15 89603

Adaptive feasible

25

89603 Rank Stochastic uniform Elite count 3 Adaptive feasible 0,8 Scattered Forward 0,2 20

Page 83: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

72 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

3.4.2 Een optimalisatie heuristiek

Het uitgewerkte IRPTW heuristiek maakt enkele vereenvoudigingen om van de speciale structuur van

de IRP gebruik te maken. Deze vereenvoudigingen zijn vooral van toepassing op het

voorraadprobleem. De VRPTW heuristieken uit het voorgaande hoofdstuk komen hier terug op het

toneel om het transportprobleem, dat bij de oplossing voor het voorraadsmodel horen, op te lossen.

Vervolgens tracht de heuristiek de transportkosten te verminderen. De structuur van de

geïmplementeerde heuristieken is dusdanig gestructureerd dat er wezenlijk weinig aanpassingen

nodig zijn om de verschillende metaheuristieken (- de verschillende VRPTW heuristieken) te

implementeren. De bekomen oplossingen moeten nadien aangevuld worden met de voorraadkosten.

Hiervoor wordt op dezelfde manier te werk gegaan als bij de hybride en GA oplossingsmethode. Op

deze manier zijn de kosten vergelijkbaar.

3.4.2.1 Kerngedachte heuristiek

Alvorens dieper in te gaan op de werking van de heuristiek zal hier kort de kerngedachte geschetst

worden. De beslissingsvariabele, die deze heuristiek tracht te optimaliseren, is de bestelhoeveelheid

per klant en per periode. Een initiële oplossing wordt verkregen door na te gaan wanneer in welke

periode aan welke klant geleverd moet worden, zodat er geen voorraadbreuk voorkomt. De

bestelhoeveelheid wordt bepaald op driemaal de vraag van de klant bij die periode. Dit mag echter

het maximum voorraadniveau van de klant overtreffen. Zodra de bestelhoeveelheid bepaald is,

wordt via een VRPTW heuristiek het aantal routes per periode bepaald. De doelstelling van de

heuristiek is om de routes te egaliseren overheen de periodes. Daarom wordt er uit de drukste

periode een route genomen die vooruit geschoven wordt. De effecten hiervan worden in

beschouwing genomen waarna opnieuw het aantal routes bepaald wordt. Opnieuw wordt er uit de

drukste route een route vooruitgeschoven en zo gaat de iteratie verder.

Figuur 29: Kerngedachte IRPTW heuristiek

Bepaal initiële

bestelhoeveelheid

(geen stock-out)

Voer VRPTW uit

voor de nodige

perioden

Drukste

periode?

Uit te nemen

route?

Verschuif route

naar vorige

periode

Aanpassingen

(+ controle stock-

outs)

# routes Voor drukste

periode

Welke periode?

Page 84: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

73 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

3.4.2.2 Initiële oplossing

Om een initiële oplossing te bekomen voor het voorraadprobleem wordt ervan uitgegaan dat het

leveren zo lang mogelijk wordt uitgesteld. Met andere woorden een klant wordt geleverd wanneer

een voorraadbreuk zou voorkomen en niet eerder.

De bestelde hoeveelheid ( Order Quantity) is dan X maal de huidige vraag van de klant. Het staat dus

min of meer vast hoeveel een klant zal beleverd krijgen. Standaard is dit driemaal de huidige vraag

van die klant. Dit brengt dus een enorme beperking van de heuristiek mee. Vandaar dat de

mogelijkheid aangeboden wordt om de gewenste leveringsperiode per klant zelf te bepalen.

Vanwege het groot aantal combinaties is dit echter wel niet opgenomen in de experimenten.

Tabel 16: Initiële bestelhoeveelheid per periode per klant

Klant/Periode 1 2 3 4 5 6 7 8 9 10

1 0 0 0 0 24 0 28 0 0 47

2 0 0 66 0 119 0 0 0 109 0

3 0 0 34 0 0 0 51 0 0 0

4 0 0 0 48 0 0 0 54 0 0

5 0 0 0 43 0 0 0 0 0 56

6 0 0 0 88 0 0 0 71 0 0

7 0 0 0 73 0 0 60 0 0 73

8 0 0 88 0 0 0 0 66 0 0

9 0 0 0 20 0 24 0 0 28 0

10 0 40 0 0 0 0 42 0 0 0

11 0 0 0 28 0 39 0 0 0 40

12 0 74 0 0 0 63 0 0 103 0

13 0 0 47 0 0 80 0 0 0 124

14 0 0 0 55 0 0 0 0 32 0

15 0 0 128 0 0 0 147 0 0 141

De capaciteit van een voertuig wordt op 300 gezet. De initiële oplossing gaat verder door per periode

de bijhorende VRPTW op te lossen. Deze wordt opgelost via één van de vier metaheuristieken die

besproken werden in paragraaf 2.3 (supra p13-36). Dit voorbeeld werd verder uitgewerkt aan de

hand van de TSSA heuristiek. De routes per periodes zijn weergegeven in Figuur 30.

Page 85: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

74 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Figuur 30: Heuristiek - initiële routes per periode

3.4.2.3 Verbeteringsiteratie

Het aantal voertuigen per periode ([0,1,2,2,1,1,2,1,2,2]) is hierna van belang om te bepalen welke de

drukste periode is (hier wordt periode 3 gekozen.) Deze periode heeft dus de meeste voertuigen

nodig, waardoor gekozen wordt om uit deze periode een route te nemen om die door te schuiven

naar een eerdere periode. In het geval van een gelijkstand wordt de eerste gekozen. Indien de 1ste

periode de drukste is, dan wordt uit de tweede drukste periode een route gekozen. De functie

routeuit.m bepaalt welke route uit de drukste periode gehaald wordt ([13,15,0,0,0]) op basis van de

resterende capaciteit ( ) en het aantal klanten ( ). Hoe kleiner het aantal klanten en hoe hoger

de resterende capaciteit, hoe meer kans dat die route uit de periode gehaald wordt om toe te

voegen tot de vorige periode. De keuze parameters zijn en en enkel de rangschikking

verkregen via de “Uithaalopportuniteit” is van belang.

De standaardwaarden voor en zijn respectievelijk 50 en 1 000. Andere verhoudingen zullen

nadien getest worden. (infra p83, paragraaf 3.4.2.6)

Hierna wordt via de gebruikte metaheuristiek de route in de vorige periode ingebracht. Mogelijks

worden klanten bijgevoegd bij andere routes uit de vorige periode. De bestelhoeveelheid wordt

overgenomen tenzij de maximumcapaciteit van de klant overschreden wordt. In dat geval wordt de

maximumcapaciteit min de huidige voorraad genomen.

Bij het voorbeeld wordt uit de drukste periode, namelijk periode 3, de route [13,15,0,0,0] gekozen

om vooruit te schuiven. Deze route heeft immers nog een grote restcapaciteit en heeft maar twee

klanten en kan dus op die manier sneller opgenomen worden in een andere route. Nadien wordt via

bijvoorbeeld de TSSA heuristiek bekeken of deze klant niet bij een andere route uit periode 2 kan

2 1

10 12 13 11 9 12

13 15 3 7 15

3 8 2 10 1

11 14 8 6 4

5 7 9 6 4

Routes 3de Periode Routes 7de Periode

Routes 4de Periode Routes 8ste Periode

Routes 1ste Periode Routes 5de Periode

Routes 2de Periode Routes 6de Periode

Page 86: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

75 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

worden bijgevoegd. Dit laatste gebeurt door de functie routeinbrengen.m. Er is één andere route in

periode 2. De routes in periode 2 wijzigen naar [

].

Het kan uiteraard zijn dat een klant bijvoorbeeld 5 eenheden te veel heeft om mee te kunnen met

een route. Het zou zeer inefficiënt zijn om een voertuig speciaal te laten rijden naar één klant voor 5

eenheden. Daarom werd de functie restcapaciteit.m in het leven geroepen. Deze functie gaat na of

het mogelijk is om, door een klant een kleinere levering te geven, een route te elimineren. De route

wordt met een gewijzigde capaciteit ingebracht en indien een route geëlimineerd kan worden,

blijven de wijzigingen staan. In het voorbeeld zijn echter geen capaciteitsproblemen voorhanden

waardoor deze functie geen meerwaarde biedt.

In het voorbeeld wordt klant 10 apart vervoerd omdat er anders problemen dreigen met de

tijdsvensters. Echter wanneer we dit voorlopig buiten beschouwing laten, dan zou er in periode 2

maar 1 route zijn. Als men dit nogmaals aanpast dan kan men de werking van de functie

restcapaciteit.m illustreren. Stel dat de capaciteit in plaats van 300 naar 280 gezet wordt, dan dreigt

er een overcapaciteit (40+74+47+128>280). De functie restcapaciteit.m wijzigt de bestelhoeveelheid

van een klant, die alleen in een route zit, naar de minimumrestcapaciteit van andere routes. In dit

geval verandert de functie de bestelhoeveelheid van klant 10 van 40 naar 31. Als er dan geen

rekening gehouden wordt met de tijdsvensters, dan zou deze klant opgenomen worden in de route.

Deze functie kan op verschillende manieren uitgewerkt worden. Zo kan men eigenlijk van alle klanten

de capaciteit verminderen en opnieuw de routes berekenen. Er is echter gekozen om de functie

beperkt te houden om zo de uitvoersnelheid niet te veel te beïnvloeden. Daarnaast kunnen

dergelijke wijzigingen best een diverse inslag kennen op het voorraadsniveau van de klanten in latere

periodes.

Het vooruit schuiven van een route en de bestelhoeveelheid zal zijn effect hebben op navolgende

periodes. Daarom doen we een beroep op de functie aanpassingen.m. De klanten die doorgeschoven

worden, in dit geval klant 13 en 15 zullen door de wijziging in bestelperiode een ander

voorraadtraject belopen. Daarom moet voor die klanten in de navolgende periodes opnieuw een

bestelhoeveelheid bepaald worden.

De functie aanpassingen.m voert een diverse reeks van wijzigingen aan. Zo wordt uiteraard eerst de

uittredende route vervangen door een nulrij. Vervolgens haalt men de uittredende klanten uit de

volgende periodes. Het programma houdt de gewijzigde periode(s) bij. Hierna wordt opnieuw de

bestelhoeveelheid bepaald. Hier gaan we op dezelfde manier te werk als bij de initiëring. Dreigt een

voorraadbreuk dan moet er geleverd worden. Ook hier worden de gewijzigde periodes bijgehouden.

Page 87: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

76 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Voor die gewijzigde periodes en ook de vorige moet een nieuwe VRPTW opgelost worden met

andere hoeveelheden.

Oorspronkelijk wordt klant 13 ook in periode 6 en 10 beleverd. Voor klant 15 zijn dit periodes 7 en 10.

De kans bestaat dat het voorraadverloop nu anders verloopt. Daarom worden voor de uitredende

klanten een nieuw voorraadverloop en bestelhoeveelheid berekend. De bestelhoeveelheden blijven

in dit geval hetzelfde. Hier zou het dus niet nodig zijn om opnieuw het VRPTW probleem op te lossen

in periodes 6, 7 en 10. Maar dit is niet altijd het geval. Zo kan het best zijn dat klant 15 een

voorraadbreuk dreigt te hebben in periodes 6 en 9. In dat geval moet voor die periodes met de

gewijzigde hoeveelheid opnieuw een VRP uitgerekend worden, met nieuwe routes tot gevolg.

Nadat de aanpassingen gedaan zijn worden de resultaten opgeslagen en begint de iteratie opnieuw.

Deze iteratie blijft zich herhalen tot diverse “stop” criteria een bepaald aantal keer bereikt zijn. Dit

kan op diverse wijzen. Telkens wanneer de eerste periode als drukste periode aanzien wordt, komt

men dichter bij het stopcriterium. Dit wordt beperkt omdat deze heuristiek vooral eerst tracht om

het maximum aantal voertuigen overheen de ganse periode te beperken. Het is de bedoeling een

spreiding te verkrijgen van het aantal nodige voertuigen overheen de periodes, wat niet mogelijk is

als de eerste periode direct het hoogst aantal voertuigen nodig heeft. Een volgende stop criterium is

telkens wanneer de kosten stijgen door een iteratie. Zodra deze criteria voldoende keer

voorgekomen zijn, dan stopt de iteratie. Een andere mogelijkheid is simpelweg dat het maximale

aantal iteraties bereikt is. Dit maximale aantal is berekend door het aantal periodes te

vermenigvuldigen met het maximale aantal routes in de eerste iteratie, nogmaals vermenigvuldigd

met 2. In het voorbeeld is dit 2 x 10 x 2=40. Een grondige motivering voor deze specifieke waarde is

hier niet gegeven, wel blijkt uit niet-significante (en niet opgenomen) trial- en error testen dat deze

waarde ruim hoog genoeg is.

Nadat een bepaald aantal iteraties voltooid is, wordt die iteratie gekozen die de laagste kosten met

zich meebrengt. Hoe de kosten berekend worden is dus een bepalende factor. Er zijn drie

kostenfactoren waarmee rekening gehouden wordt. Deze moeten in lijn staan met de beoogde

doelen van de heuristiek.

1. Het beperken van het maximum aantal voertuigen overheen de periodes.

2. Het beperken van het totaal aantal voertuigen overheen de periodes.

3. Het beperken van de transportkosten.

Page 88: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

77 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Deze kosten zijn in de heuristiek apart gehouden om het mogelijk te maken om bepaalde factoren

zwaarder of lichter te laten doorwegen op de kosten. Naast de kosten zijn er nog enkele interessante

parameters die aangeven hoe de iteraties vlotten. Zo geeft het aantal voertuigen per iteratie heel

mooi aan hoe de oplossing vordert. Daarbij samengaand is het ook handig om de behandelde

periodes bij te houden.

Tabel 17: Routes per Iteratie per periode

Iteratie\Periode 1 2 3 4 5 6 7 8 9 10

1 0 1 2 2 1 1 2 1 2 2

2 0 2 1 2 1 1 2 1 2 2

3 1 1 1 2 1 1 2 1 2 2

4 1 1 2 1 1 1 2 1 2 2

5 1 2 1 1 1 1 2 1 2 2

6 1 1 1 1 1 1 2 1 2 2

7 1 1 1 1 1 3 1 1 2 2

8 1 1 1 1 1 2 1 1 2 2

9 1 1 1 1 1 2 1 2 1 2

10 1 1 1 1 2 1 1 2 1 2

11 1 1 1 2 1 1 1 2 1 2

12 1 1 1 1 1 1 1 2 1 2

13 1 1 1 1 1 1 2 1 1 2

14 1 1 1 1 1 2 1 1 1 2

15 1 1 1 1 1 1 1 1 1 2

16 1 1 1 1 1 1 1 1 2 1

17 1 1 1 1 1 1 1 2 1 1

18 1 1 1 1 1 1 2 1 1 2

19 1 1 1 1 1 2 1 1 1 2

20 1 1 1 1 1 1 1 1 1 2

21

22 3 0 1 1 1 1 1 1 1 2

23 3 0 1 1 1 1 1 1 2 1

24 3 0 1 1 1 1 1 2 1 1

25 3 0 1 1 1 1 2 1 1 2

26 3 0 1 1 1 1 1 1 1 2

27 3 0 1 1 1 1 1 1 2 1

Behandelde periodes: [3,2,4,3,2,7,6,9,6,5,4,8,7,6,10,9,8,7,6,10,2,10,9,8,7,10,9]; De iteraties stoppen

omdat voldoende maal de stopcriteria overtreden zijn.

Page 89: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

78 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

3.4.2.4 Eindresultaten

Het kostenverloop:

Figuur 31: Kostenverloop heuristiek (excl. voorraadkosten)

De minimumkosten van 24 814 (zonder voorraadkosten) worden bereikt in de 21ste iteratie. Hier is

maar 1 voertuig nodig om al de leveringen te voltooien. De bijhorende routes, bestelhoeveelheid en

voorraadverloop zijn hieronder weergegeven.

Figuur 32: Routes na IRPTW heuristiek

20000

22000

24000

26000

28000

30000

32000

34000

36000

38000

40000

1 3 5 7 9 11 13 15 17 19 21 23 25 27

Kosten/iteratie

Reeks1

3 10 2 3 7 10 2 1

13 15 12 13 11 9 12

5 7 8 11 14 15 14 12

13 9 6 4 8 6 4 1

Routes 4de Periode Routes 8ste Periode

Routes 2de Periode Routes 6de Periode

Routes 3de Periode Routes 7de Periode

Routes 1ste Periode Routes 5de Periode

Page 90: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

79 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Tabel 18: Bestelhoeveelheid per periode

Klant/periode 1 2 3 4 5 6 7 8 9 10

1 0 0 0 0 28 0 0 45 0 0

2 66 0 0 0 119 0 0 0 109 0

3 34 0 0 0 51 0 0 0 0 0

4 0 0 0 48 0 0 0 54 0 0

5 0 0 43 0 0 0 0 0 0 56

6 0 0 0 88 0 0 0 71 0 0

7 0 0 73 0 60 0 0 0 0 73

8 0 0 88 0 0 0 0 66 0 0

9 0 0 0 20 0 24 0 0 28 0

10 40 0 0 0 42 0 0 0 0 0

11 0 0 28 0 0 39 0 0 0 40

12 0 74 0 0 0 63 103 0 0 0

13 0 47 0 80 0 124 0 0 0 0

14 0 0 55 0 0 0 32 0 0 0

15 0 128 0 0 0 0 141 0 147 0

Totaal: 140 249 287 236 300 250 276 236 284 169

Het totaal toont aan dat de capaciteitsrestrictie nooit overschreden wordt.

Figuur 33: Voorraadverloop klant 1 na IRPTW heuristiek

0

10

20

30

40

50

60

70

80

90

1 2 3 4 5 6 7 8 9 10

Klant 1

Vraag

Bestelde hoeveelheid

Voorraad

Page 91: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

80 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Tabel 19: Voorraadniveau klanten

Klant 1 BV= 34 Vraag 5 8 13 8 6 10 9 12 10 13

Bestelde hoeveelheid 0 0 0 0 28 0 0 45 0 0 Voorraad 29 21 8 0 22 12 3 36 26 13

Klant 2 BV= 71

Vraag 40 21 19 40 34 15 42 30 31 33 Bestelde hoeveelheid 66 0 0 0 119 0 0 0 109 0 Voorraad 97 76 57 17 102 87 45 15 93 60

Klant 3 BV= 29

Vraag 13 14 9 6 12 8 13 9 13 7 Bestelde hoeveelheid 34 0 0 0 51 0 0 0 0 0 Voorraad 50 36 27 21 60 52 39 30 17 10

Klant 4 BV= 25

Vraag 6 14 5 12 12 9 9 15 9 9 Bestelde hoeveelheid 0 0 0 48 0 0 0 54 0 0 Voorraad 19 5 0 36 24 15 6 45 36 27

Klant 5 BV= 36

Vraag 7 8 8 14 7 8 9 12 6 14 Bestelde hoeveelheid 0 0 43 0 0 0 0 0 0 56 Voorraad 29 21 56 42 35 27 18 6 0 42

Klant 6 BV= 54

Vraag 12 19 11 25 24 14 24 21 27 21 Bestelde hoeveelheid 0 0 0 88 0 0 0 71 0 0 Voorraad 42 23 12 75 51 37 13 63 36 15

Klant 7 BV= 70

Vraag 28 18 17 20 15 29 19 15 19 24 Bestelde hoeveelheid 0 0 73 0 60 0 0 0 0 73 Voorraad 42 24 80 60 105 76 57 42 23 72

Klant 8 BV= 52

Vraag 18 14 27 22 17 14 14 20 19 25 Bestelde hoeveelheid 0 0 88 0 0 0 0 66 0 0 Voorraad 34 20 81 59 42 28 14 60 41 16

Klant 9 BV= 35

Vraag 6 13 12 6 14 7 11 10 7 5 Bestelde hoeveelheid 0 0 0 20 0 24 0 0 28 0 Voorraad 29 16 4 18 4 21 10 0 21 16

Klant 10 BV= 25

Vraag 13 13 9 6 11 7 12 10 8 14 Bestelde hoeveelheid 40 0 0 0 42 0 0 0 0 0 Voorraad 52 39 30 24 55 48 36 26 18 4

Klant 11 BV= 33

Vraag 13 14 6 7 12 12 13 10 9 11 Bestelde hoeveelheid 0 0 28 0 0 39 0 0 0 40 Voorraad 20 6 28 21 9 36 23 13 4 33

Klant 12 BV= 45

Vraag 27 23 20 16 24 18 21 28 27 28 Bestelde hoeveelheid 0 74 0 0 0 63 103 0 0 0 Voorraad 18 69 49 33 9 54 136 108 81 53

Klant 13 BV= 95

Vraag 43 39 15 15 18 23 16 28 25 31 Bestelde hoeveelheid 0 47 0 80 0 124 0 0 0 0 Voorraad 52 60 45 110 92 193 177 149 124 93

Klant 14 BV= 31

Vraag 14 8 8 14 8 6 10 14 9 12 Bestelde hoeveelheid 0 0 55 0 0 0 32 0 0 0 Voorraad 17 9 56 42 34 28 50 36 27 15

Klant 15 BV= 111

Vraag 45 38 39 58 23 31 38 44 55 39 Bestelde hoeveelheid 0 128 0 0 0 0 141 0 147 0 Voorraad 66 156 117 59 36 5 108 64 156 117

Page 92: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

81 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Naast de capaciteitscontrole op de routes kunnen we ook nagaan of de tijdsvensters niet

overschreden worden. Hoe de route gecontroleerd wordt binnen de heuristiek hangt af van de

gebruikte metaheuristiek. Het is echter ook mogelijk om dit manueel te controleren:

In de 1de periode route [3 10 2]: 65+90+7=162 ;+ pauze=177;+90+10=277 <870

In de 2de periode route [13,15,12]: 31+90+5=126; +pauze; 384+90+7=481<721

In de 3de periode route [5,7,8,11,14]: 15+90+2=107;+pauze; 170+90+3=263;+90+3=356;

+middagpauze=401;448+90+21=559<620

In de 4de periode route [13,9,6,4]:

31+90+17=138;+middagpauze;534+90+2=626;+90+2=718;+pauze;<782

In de 5de periode route [3,7,10,2,1]: 65+90+2=157;+pauze=172;+90+5=267;357+90+5=452;+

middagpauze;825+90+2=917<967

In de 6de periode route [13,11,9,12]:

31+90+14=135;+middagpauze;448+90+3=541;+90+17=648;652<721

In de 7de periode route [15,14,12]: 384+90+5=479; +middagpauze;567+90+3=660<721

In de 8ste periode route [8,6,4,1]:

255+90+2=347;+middagpauze;621+90+2=713;727+90+3=820:+ pauze;912<967

In de 9de periode route [15,9,2]: 384+90+21=495;+middagpauze=540;+90+7=637;+ pauze;

825<870

In de 10de en laatste periode route [5,7,11]:

15+90+2=107;+pauze;170+90+6=266;+middagpauze;448<505

3.4.2.5 Totale kosten

De totale kosten worden opnieuw berekend via de IRPTW.m functie (infra Bijlage H).

met:

Naast de TSSA heuristiek worden ook de andere meta- heuristieken toegepast op het voorbeeld.

Page 93: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

82 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

De volgende figuren geven het kostenverloop per iteratie (IRPTW heuristiek) van de verschillende

combinaties van metaheuristieken.

Figuur 34: Kosten volgens de TSSA heuristiek*

Figuur 35: Kosten volgens ANTS heuristiek*

Figuur 36: Kosten volgens GRASP heuristiek*

75

80

85

90

95

100

105

110

115

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Du

ize

nd

en

TSSA

GRASP

VNS2H

ANTS

75

85

95

105

115

125

135

145

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Du

ize

nd

en

TSSA

GRASP

VNS2H

ANTS

75

85

95

105

115

125

135

145

155

165

175

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Du

ize

nd

en

TSSA

GRASP

VNS2H

ANTS

Ook hier is 21ste

iteratie optimum (=Figuur 31:

Kostenverloop heuristiek (excl. voorraadkosten))

Page 94: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

83 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Figuur 37: Kosten volgens VNS2H heuristiek*

*De verticale as toont de totale kosten, de horizontale de verbeterings iteraties

3.4.2.6 Varianten op de routeuit.m functie

De standaardwaarden voor en zijn respectievelijk 50 en 1 000. Diverse andere testwaarden

worden getest, weliswaar enkel met de VNS heuristiek. Hierbij blijkt dat men best op 50

gehouden wordt terwijl op 500 kan worden vastgelegd.

populatie minimum

15 1000 pop 1 87997,39

20 1000 pop 2 87997,39

30 1000 pop 3 87997,39

25 1000 pop 4 87997,39

50 1000 pop 5 78871,73

50 1250 pop 6 87997,39

25 1250 pop 7 87997,39

50 750 pop 8 78871,73

25 750 pop 9 87997,39

50 650 pop 10 78871,73

50 600 pop 11 78871,73

50 500 pop 12 78871,73 Tabel 20: Parametertest routeuit.m

75

80

85

90

95

100

105

110

115

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Du

ize

nd

en

TSSA

Reeks2

VNS2H

ANTS

Page 95: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

84 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

3.4.3 Kleinste bovengrens

De kleinste bovengrens (78 871) voor het IRPTW model met pauzes werd bekomen via de IRPTW

heuristiek met ingebouwd de VNS metaheuristiek (met 2 mutatie functies) voor het VRPTW transport

onderdeel van het probleem. Hieronder (en op de volgende pagina’s) wordt het resultaat

samengevat:

kosten berekend volgens minimum waarde VRPTW heuristiek Hybride

TSSA 83 015 TSSA 81 996

ANTS 92 997 VNS2H 127 935

VNS2H 78 871 VNS2H 81 996

GRASP 88 207 VNS2H 81 996

Page 96: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

85 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Tabel 21: Voorraadniveau klanten

Klant 1 BV= 34 Vraag 5 8 13 8 6 10 9 12 10 13

Bestelde hoeveelheid 0 0 0 0 24 28 0 0 47 0 Voorraad 29 21 8 0 18 36 27 15 52 39

Klant 2 BV= 71

Vraag 40 21 19 40 34 15 42 30 31 33 Bestelde hoeveelheid 0 0 66 0 119 0 0 0 109 0 Voorraad 31 10 57 17 102 87 45 15 93 60

Klant 3 BV= 29

Vraag 13 14 9 6 12 8 13 9 13 7 Bestelde hoeveelheid 0 0 34 0 0 51 0 0 0 0 Voorraad 16 2 27 21 9 52 39 30 17 10

Klant 4 BV= 25

Vraag 6 14 5 12 12 9 9 15 9 9 Bestelde hoeveelheid 0 0 0 48 0 0 0 54 0 0 Voorraad 19 5 0 36 24 15 6 45 36 27

Klant 5 BV= 36

Vraag 7 8 8 14 7 8 9 12 6 14 Bestelde hoeveelheid 0 0 0 43 0 0 52 0 0 0 Voorraad 29 21 13 42 35 27 70 58 52 38

Klant 6 BV= 54

Vraag 12 19 11 25 24 14 24 21 27 21 Bestelde hoeveelheid 0 0 0 88 0 0 0 71 0 0 Voorraad 42 23 12 75 51 37 13 63 36 15

Klant 7 BV= 70

Vraag 28 18 17 20 15 29 19 15 19 24 Bestelde hoeveelheid 0 0 0 73 0 60 0 73 0 0 Voorraad 42 24 7 60 45 76 57 115 96 72

Klant 8 BV= 52

Vraag 18 14 27 22 17 14 14 20 19 25 Bestelde hoeveelheid 0 0 88 0 0 0 0 66 0 0 Voorraad 34 20 81 59 42 28 14 60 41 16

Klant 9 BV= 35

Vraag 6 13 12 6 14 7 11 10 7 5 Bestelde hoeveelheid 0 0 0 20 0 24 0 28 0 0 Voorraad 29 16 4 18 4 21 10 28 21 16

Klant 10 BV= 25

Vraag 13 13 9 6 11 7 12 10 8 14 Bestelde hoeveelheid 40 0 0 0 0 42 0 0 0 0 Voorraad 52 39 30 24 13 48 36 26 18 4

Klant 11 BV= 33

Vraag 13 14 6 7 12 12 13 10 9 11 Bestelde hoeveelheid 0 0 28 0 0 34 0 0 28 0 Voorraad 20 6 28 21 9 31 18 8 27 16

Klant 12 BV= 45

Vraag 27 23 20 16 24 18 21 28 27 28 Bestelde hoeveelheid 0 74 0 0 63 0 0 0 103 0 Voorraad 18 69 49 33 72 54 33 5 81 53

Klant 13 BV= 95

Vraag 43 39 15 15 18 23 16 28 25 31 Bestelde hoeveelheid 0 47 0 0 80 0 0 0 0 124 Voorraad 52 60 45 30 92 69 53 25 0 93

Klant 14 BV= 31

Vraag 14 8 8 14 8 6 10 14 9 12 Bestelde hoeveelheid 0 0 55 0 0 0 32 0 0 0 Voorraad 17 9 56 42 34 28 50 36 27 15

Klant 15 BV= 111

Vraag 45 38 39 58 23 31 38 44 55 39 Bestelde hoeveelheid 0 128 0 0 0 0 147 0 0 141 Voorraad 66 156 117 59 36 5 114 70 15 117

Page 97: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

86 Het Inventory Routing Probleem - 3.4 Heuristieken voor een IRPTW model

Figuur 38: Routes kleinste bovengrens

10

13 15 12

3 8 11 14 2

5 7 9 6 4

13 12 2 1

3 7 10 11 9 1

5 15 14

7 8 9 6 4

11 12 2 1

13 15

Routes 7de Periode

Routes 8ste Periode

Routes 9de Periode

Routes 10de Periode

Routes 1ste Periode

Routes 2de Periode

Routes 3de Periode

Routes 4de Periode

Routes 5de Periode

Routes 6de Periode

Page 98: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

87 Vergelijkende resultaten

4 Vergelijkende resultaten Doorheen deze scriptie werd één voorbeeld, gebaseerd op de eerste 15 klanten uit de

Solomoninstantie C101 (supra p4, paragraaf 1.2), uitgewerkt als illustratie. Op dezelfde manier

werden nog 8 andere testinstanties uitgewerkt, ditmaal op basis van Solomoninstanties C102, C103,

R201, R202, R203, RC201, RC202 en RC203. De MATLAB functie datageneratie.m wordt opnieuw

gebruikt om de nodige input te genereren uit de Solomoninstanties. Voor elke instantie werd een

apart voorraadmodel opgesteld in IBM ILOG OPL IDE 6.3. Door de doelfunctie per model in te lezen in

MATLAB 2010b kon aan de hand van de bestelhoeveelheid per klant en per periode de

voorraadkosten berekend worden. (Alle bestanden kunnen uiteraard teruggevonden worden op de

bijlage cd)

De transportkosten bevatten zowel vaste als variabele kosten.

Waarbij de FixedCost net als bij het voorbeeld 1000 is. De transportkosten voor de

benaderingsmethode worden berekend aan de hand van de VNS heuristiek. Hetzelfde geldt voor de

EOQ methode.

Tabel 22 (infra p88) vat de resultaten samen.

Page 99: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

88 Vergelijkende resultaten

Tabel 22: Testinstanties

Methode Duur (min)

Voorraad-kosten

Transport kosten

Totale kosten

Besparing (%)

Max. voertuigen

Gem. voertuigen

C1

02

EOQ (VNS) - 46.340 55.198 101.538 - 3 1,3

TSSA 0,23 47.991 37.868 85.859 15% 2 1,3

VNS 0,11 46.641 43.578 90.219 11% 2 1,2

GRASP 2,40 47.324 37.868 85.192 16% 2 1,3

ACS 2,35 46.845 36.868 83.713 18% 2 1,2

Hybride 15,06* 30.988 65.502 96.490 5% 3 1,8

C1

03

EOQ (VNS) - 36.769 49.398 86.167 - 2 1,5

TSSA 0,63 38.845 36.288 75.133 13% 2 1,1

VNS 0,09 38.826 32.996 71.822 17% 1 1

GRASP 1,89 37.496 39.288 76.784 11% 2 1,4

ACS 2,05 38.471 25.288 63.759 26% 1 1

Hybride 14,04* 23.520 52.448 75.968 12% 2 1,6

R2

01

EOQ (VNS) - 34.146 64.210 98.356 - 3 1,2

TSSA 0,52 37.567 39.964 77.531 21% 2 1,6

VNS 0,14 34.236 45.480 79.716 19% 2 1,1

GRASP 3,86 37.681 34.888 72.569 26% 2 1,1

ACS 2,75 35.353 37.962 73.315 25% 2 1,4

Hybride 16,19* 18.091 84.197 102.288 -4% 3 2,4

R2

02

EOQ (VNS) - 25.462 49.654 75.116 - 2 1,1

TSSA 0,51 25.774 37.154 62.928 16% 2 1,3

VNS 0,16 26.133 34.754 60.887 19% 1 1

GRASP 2,69 25.592 37.154 62.746 16% 2 1,3

ACS 1,97 25.462 37.154 62.616 17% 2 1,3

Hybride 15,98* 16.934 63.608 80.542 -7% 2 1,6

R2

03

EOQ (VNS) - 19.195 48.346 67.541 - 3 1,4

TSSA 0,54 19.345 36.346 55.691 18% 2 1,3

VNS 0,12 20.292 32.028 52.320 23% 1 0,9

GRASP 3,40 19.564 36.346 55.910 17% 2 1,3

ACS 2,09 21.223 23.346 44.569 34% 1 1

Hybride 15,34* 12.344 62.918 75.262 -11% 2 1,7

RC

20

1

EOQ (VNS) - 47.009 66.068 113.077 - 3 1,6

TSSA 0,45 48.252 40.438 88.690 22% 2 1,4

VNS 0,24 49.133 50.944 100.077 11% 2 1,3

GRASP 4,22 48.008 40.438 88.446 22% 2 1,4

ACS 3,21 51.579 45.438 97.017 14% 2 1,9

Hybride 17,98* 31.071 59.368 90.439 20% 2 1,7

RC

20

2

EOQ (VNS) - 47.700 76.348 124.048 - 4 1,6

TSSA 0,62 49.251 42.468 91.719 26% 2 1,6

VNS 0,23 48.882 53.488 102.370 17% 2 1,4

GRASP 3,95 49.547 42.468 92.015 26% 2 1,6

ACS 2,08 48.969 41.468 90.437 27% 2 1,5

Hybride 18,32* 33.392 70.824 104.216 16% 3 1,8

RC

20

3

EOQ (VNS) - 47.909 63.882 111.791 - 3 1,5

TSSA 0,43 49.004 41.922 90.926 19% 2 1,6

VNS 0,12 48.124 53.832 101.956 9% 2 1,5

GRASP 2,46 49.004 39.922 88.926 20% 2 1,4

ACS 2,34 48.017 38.922 86.939 22% 2 1,3

Hybride 15,82* 31.465 58.593 90.058 19% 2 1,6

*Uit de profiler van IBM ILOG kan opgemaakt worden dat gemiddeld 92% van het geheugen gebruikt wordt door het

inlezen en schrijven van data naar Excel. (Snellere implementatie is dus mogelijk)

Page 100: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

89 Vergelijkende resultaten

Tabel 23: Besparingen t.o.v. EOQ

Methode C1 (1-3) R2 (1-3) RC2(1-3) Gemiddeld

TSSA 12% 18% 22% 18%

VNS 14% 20% 13% 15%

GRASP 9% 20% 23% 17%

ACS 11% 25% 21% 19%

Hybride 9% -8% 18% 7%

Tabel 23 neemt het gemiddelde van de relatieve besparingen overheen de testinstanties. Op deze

manier kan men de daadkracht van de heuristiek en de benaderingsmethode inschatten.

Op basis van deze resultaten kunnen enkele observaties gemaakt worden:

De voorraadkosten liggen opmerkelijk lager bij de benaderingsmethode. (Hybride)

De manier waarop de transportkosten hier berekend worden bevoordeeld de heuristiek. De

heuristiek is dus vooral daadkrachtig wanneer de vaste transportkosten hoog zijn.

De snelheid en dus de implementatie van het benaderingsmodel moet sterk verbeteren als

men een groter klantenbestand of meer periodes wenst te benaderen. Zowel de resultaten

van Y. Yu et al. [94] als de profiler informatie uit IBM ILOG geven aan dat efficiënter

programmeren de werktijd tot een fractie van het huidige kan herleiden.

De diversiteit bekomen door verschillende VRPTW heuristieken te gebruiken biedt een

meerwaarde voor de ontwikkelde IRPTW heuristiek. Er is geen aangewezen metaheuristiek

die consistent de beste resultaten geeft.

De benaderingsmethode blijkt niet goed samen te gaan met de R2 testinstanties. De klanten

uit deze instanties zijn willekeurig geplaatst waardoor het transportprobleem meer impact

heeft. De daadkracht van de methode blijkt te dalen naarmate de transportkosten meer en

meer doorwegen.

Het niet opnemen van pauzes in het benaderingsmodel maar wel nadien in de VRPTW

heuristiek vermindert de daadkracht van de methode.

De metaheuristiek, die gemiddeld het meest oplevert is, de ACS. De slechte resultaten op het

voorbeeld blijken een uitzondering op die regel te zijn.

Page 101: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

90 Conclusie

5 Conclusie Het Inventory Routing Probleem met tijdsvenster en verplichte planning van pauzes werd in deze

scriptie onderzocht. Een benaderingsmodel werd opgelost aan de hand van Lagrangian Relaxatie en

de Surrogate Subgradient methode. Dit model blijkt bijzonder effectief in het verminderen van de

voorraadkosten. Ten opzichte van de EOQ methode wordt een besparing van ruim 30% vastgesteld

op de voorraadkosten van de testwaarden. Indien de transportkosten echter zwaarder doorwegen,

door bijvoorbeeld hoge vaste transportkosten blijkt het model minder daadkrachtig.

Naast de benaderingsmethode werd een heuristiek ontwikkeld die zich focust op de transportkosten.

Door gebruik te maken van verschillende VRPTW heuristieken wordt een beter optimum bekomen.

Als de transportkosten zwaar doorwegen worden besparingen van gemiddeld 17% vastgesteld ten

opzichte van een standaard EOQ toepassing op een beperkte maar diverse dataset. De nadruk ligt

hierbij vooral op het verminderen van het aantal voertuigen/chauffeurs overheen de periodes.

Page 102: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

91 Referenties

Referenties 1. Kleywegt, A.J., The stochastic inventory routing problem with direct deliveries. Transportation

Science, 2002. 36(1): p. 94. 2. Jaillet, H.F., Web metrics: measuring patterns in online shopping. Journal of Consumer

Behaviour, 2003. 2(4): p. 369-381. 3. Burns, L.D., et al., Distribution Strategies that Minimize Transportation and Inventory Costs.

Operations Research, 1985. 33(3): p. 469-490. 4. Disney, S.M. and D.R. Towill, The effect of vendor managed inventory (VMI) dynamics on the

Bullwhip Effect in supply chains. International journal of production economics, 2003. 85(2): p. 199-215.

5. Chopra, S. and P. Meindl, Supply Chain Management. Strategy, Planning &amp; Operation, in Das Summa Summarum des Management, C. Boersch and R. Elschen, Editors. 2007, Gabler. p. 265-275.

6. Liao, S.-H., C.-L. Hsieh, and P.-J. Lai, An evolutionary approach for multi-objective optimization of the integrated location-inventory distribution network problem in vendor-managed inventory. Expert systems with applications, 2011. 38(6): p. 6768-6776.

7. Lee, H., V. Padmanabhan, and S. Whang, Information Distortion in a Supply Chain: The Bullwhip Effect. Management Science, 1997. 43(4): p. 546-558.

8. Ann, C., et al., The Inventory Routing Problem. 1998, Kluwer Academic Publishers. 9. Campbell, A.M. and M.W.P. Savelsbergh, A Decomposition Approach for the Inventory-

Routing Problem. Transportation Science, 2004. 38(4): p. 488-502. 10. Archetti, C., et al., A Branch-and-Cut Algorithm for a Vendor-Managed Inventory-Routing

Problem. Transportation Science, 2007. 41(3): p. 382-391. 11. Jian-Bo, Y. and X. Dong-Ling, On the evidential reasoning algorithm for multiple attribute

decision analysis under uncertainty. Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE Transactions on, 2002. 32(3): p. 289-304.

12. Kleywegt, A.J., Dynamic programming approximations for a stochastic inventory routing problem. Transportation Science, 2004. 38(1): p. 42.

13. Trudeau, P. and M. Dror, Stochastic Inventory Routing: Route Design with Stockouts and Route Failures. Transportation Science, 1992. 26(3): p. 171-184.

14. Baita, F., et al., Dynamic routing-and-inventory problems: a review. Transportation Research Part A: Policy and Practice, 1998. 32(8): p. 585-598.

15. Axsäter, S., Scaling down multi-echelon inventory problems. International journal of production economics, 2001. 71(1-3): p. 255-261.

16. Çetinkaya, S. and C.-Y. Lee, Stock Replenishment and Shipment Scheduling for Vendor-Managed Inventory Systems. Management Science, 2000. 46(2): p. 217-232.

17. Cheung, K.L. and H.L. Lee, The Inventory Benefit of Shipment Coordination and Stock Rebalancing in a Supply Chain. Management Science, 2002. 48(2): p. 300-306.

18. Fry, M.J., R. Kapuscinski, and T.L. Olsen, Coordinating Production and Delivery Under a (z, Z)-Type Vendor-Managed Inventory Contract. Manufacturing service operations management, 2001. 3(2): p. 151-173.

19. Giesen, R., H.S. Mahmassani, and P. Jaillet, Logistics in Real Time Inventory Routing Operations under Stochastic Demand, in Innovations in Distribution Logistics, J.A.E.E. Nunen, M.G. Speranza, and L. Bertazzi, Editors. 2009, Springer Berlin Heidelberg. p. 109-148.

20. Popken, D.A., An algorithm for the multiattribute, multicommodity flow problem with freight consolidation and inventory costs. Operations Research, 1994. 42(2): p. 274.

21. Al-Khayyal, F. and S.-J. Hwang, Inventory constrained maritime routing and scheduling for multi-commodity liquid bulk, Part I: Applications and model. European Journal of Operational Research, 2007. 176(1): p. 106-130.

Page 103: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

92 Referenties

22. Viswanathan, S. and K. Mathur, Integrating Routing and Inventory Decisions in One-Warehouse Multiretailer Multiproduct Distribution Systems. Management Science, 1997. 43(3): p. 294-312.

23. Buffa, F.P. and J.R. Munn, A Recursive Algorithm for Order Cycle-Time that Minimizes Logistics Cost. The Journal of the Operational Research Society, 1989. 40(4): p. 367-377.

24. Ben-Khedher, N. and C.A. Yano, The Multi-Item Joint Replenishment Problem with Transportation and Container Effects. Transportation Science, 1994. 28(1): p. 37-54.

25. Bertazzi, L. and M.G. Speranza, Minimizing logistic costs in multistage supply chains. Naval Research Logistics (NRL), 1999. 46(4): p. 399-417.

26. Savelsbergh, M. and J.-H. Song, Inventory routing with continuous moves. Computers & operations research, 2007. 34(6): p. 1744-1763.

27. Bramel, J. and D. Simchi-Levi, A Location based Heuristic for General Routing Problems. Operations Research, 1995. 43(4): p. 649-660.

28. Federgruen, A. and P. Zipkin, A Combined Vehicle Routing and Inventory Allocation Problem. Operations Research, 1984. 32(5): p. 1019-1037.

29. Chan, L.M.A. and D. Simchi-Levi, Probabilistic Analyses and Algorithms for Three-Level Distribution Systems. Management Science, 1998. 44(11): p. 1562-1576.

30. Anily, S. and A. Federgruen, A Class of Euclidean Routing Problems with General Route Cost Functions. Mathematics of Operations Research, 1990. 15(2): p. 268-285.

31. Anily, S. and A. Federgruen, One Warehouse Multiple Retailer Systems with Vehicle Routing Costs. Management Science, 1990. 36(1): p. 92-114.

32. Chan, L.M.A., A. Federgruen, and D. Simchi-Levi, Probabilistic Analyses and Practical Algorithms for Inventory-Routing Models. Operations Research, 1998. 46(1): p. 96-106.

33. Solomon, M.M., Algorithms for the Vehicle Routing and Scheduling Problems with Time Window Constraints. Operations Research, 1987. 35(2): p. 254-265.

34. Lau, H.C., Q. Liu, and H. Ono, Integrating local search and network flow to solve the inventory routing problem, in Eighteenth national conference on Artificial intelligence. 2002, American Association for Artificial Intelligence: Edmonton, Alberta, Canada. p. 9-14.

35. Malandraki, C. and R.B. Dial, A restricted dynamic programming heuristic algorithm for the time dependent traveling salesman problem. European Journal of Operational Research, 1996. 90(1): p. 45-55.

36. Van Woensel, T., et al., Vehicle routing with dynamic travel times: A queueing approach. European Journal of Operational Research, 2008. 186(3): p. 990-1007.

37. Woensel, T., et al., A Queueing Framework for Routing Problems with Time-dependent Travel Times. Journal of Mathematical Modelling and Algorithms, 2007. 6(1): p. 151-173.

38. Ichoua, S., M. Gendreau, and J.-Y. Potvin, Vehicle dispatching with time-dependent travel times. European Journal of Operational Research, 2003. 144(2): p. 379-396.

39. Fleischmann, B., M. Gietz, and S. Gnutzmann, Time-Varying Travel Times in Vehicle Routing. Transportation Science, 2004. 38(2): p. 160-173.

40. Bertsimas, D.J. and G.v. Ryzin, A Stochastic and Dynamic Vehicle Routing Problem in the Euclidean Plane. Operations Research, 1991. 39(4): p. 601-615.

41. Dantzig, G.B. and J.H. Ramser, The Truck Dispatching Problem. Management Science, 1959. 6(1): p. 80-91.

42. Dantzig, G., R. Fulkerson, and S. Johnson, Solution of a Large-Scale Traveling-Salesman Problem. Operations Research, 1954. 2(4): p. 393-410.

43. Kallehauge, B., Lagrangian duality applied to the vehicle routing problem with time windows. Computers & operations research, 2006. 33(5): p. 1464-1487.

44. Padberg, M. and G. Rinaldi, A Branch-and-Cut Algorithm for the Resolution of Large-Scale Symmetric Traveling Salesman Problems. SIAM review, 1991. 33(1): p. 60-100.

45. Laporte, G., Optimal routing under capacity and distance restrictions. Operations Research, 1985. 33(5): p. 1050.

Page 104: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

93 Referenties

46. Laporte, G., Y. Nobert, and M. Desrochers, Optimal Routing under Capacity and Distance Restrictions. Operations Research, 1985. 33(5): p. 1050-1073.

47. Toth, P. and D. Vigo, The vehicle routing problem. 2002: Society for Industrial and Applied Mathematics.

48. Kallehauge, B., et al., Vehicle Routing Problem with Time Windows, in Column Generation, G. Desaulniers, J. Desrosiers, and M.M. Solomon, Editors. 2005, Springer US. p. 67-98.

49. Garey, M.R. and D.S. Johnson, Computers and intractibility : A guide to the theory of NP- Completeness / Michael R. Garey, David S. Johnson. 1979, San Francisco : W. H. Freeman and Company.

50. Kohl, N., et al., 2-Path Cuts for the Vehicle Routing Problem with Time Windows. Transportation Science, 1999. 33(1): p. 101-116.

51. Kallehauge, B., N. Boland, and O.B.G. Madsen, Path inequalities for the vehicle routing problem with time windows. Networks, 2007. 49(4): p. 273-293.

52. Ascheuer, N., M. Fischetti, and M. Grötschel, A polyhedral study of the asymmetric traveling salesman problem with time windows. Networks, 2000. 36(2): p. 69-79.

53. Naddef, D. and G. Rinaldi, Branch-and-cut algorithms for the capacitated VRP, in The vehicle routing problem. 2001, Society for Industrial and Applied Mathematics. p. 53-84.

54. Bard, J.F., G. Kontoravdis, and G. Yu, A Branch-and-Cut Procedure for the Vehicle Routing Problem with Time Windows. Transportation Science, 2002. 36(2): p. 250-269.

55. Kohl, N., Exact methods for time constrained routing and related scheduling problems. 1995. 56. Bräysy, O. and M. Gendreau, Vehicle Routing Problem with Time Windows, Part II:

Metaheuristics. Transportation Science, 2005. 39(1): p. 119-139. 57. Braysy, O., Vehicle routing problem with time windows, part II: Metaheuristics.

Transportation Science, 2005. 39(1): p. 119. 58. R.Thangiah, S., I.H. Osman, and T. Sun, Hybrid Genetic Algorithm, Simulated Annealing and

Tabu Search Methods for Vehicle Routing Problems with Time Windows. Report SRU CpSc-TR-94-27, 1994.

59. Kontoravdis, G. and J.F. Bard, A GRASP for the Vehicle Routing Problem with Time Windows. ORSA Journal on Computing, 1995. 7(1): p. 10.

60. Potvin, J.-Y. and J.-M. Rousseau, An Exchange Heuristic for Routeing Problems with Time Windows. The Journal of the Operational Research Society, 1995. 46(12): p. 1433-1446.

61. Bachem, A., W. Hochstättler, and M. Malich, The simulated trading heuristic for solving vehicle routing problems. Discrete Applied Mathematics, 1996. 65(1-3): p. 47-72.

62. Chiang, W.-C. and R. Russell, Simulated annealing metaheuristics for the vehicle routing problem with time windows. Annals of Operations Research, 1996. 63(1): p. 3-27.

63. Liu, F.-H.F. and S.-Y. Shen, A route-Neighbourhood-based metaheuristic for vehicle routing problem with time windows. European Journal of Operational Research, 1999. 118(3): p. 485-504.

64. Kilby, Prosser, and Shaw, Guided local search for the vehicle routing problem with time windows. 1999. XII, 511 p.

65. Caseau, Y. and F. Laburthe, Heuristics for Large Constrained Vehicle Routing Problems. Journal of Heuristics, 1999. 5(3): p. 281-303.

66. Gambardella, L.M., et al., MACS-VRPTW: a multiple ant colony system for vehicle routing problems with time windows, in New ideas in optimization. 1999, McGraw-Hill Ltd., UK. p. 63-76.

67. Tan, K.C., L.H. Lee, and K.Q. Zhu, Heuristic Methods for Vehicle Routing Problem with Time Windows. 1999.

68. Anderson, D., et al., Human-Guided Simple Search, in Proceedings of the Seventeenth National Conference on Artificial Intelligence and Twelfth Conference on Innovative Applications of Artificial Intelligence. 2000, AAAI Press. p. 209-216.

69. Tan, K.C., et al., Heuristic methods for vehicle routing problem with time windows. Artificial Intelligence in Engineering, 2001. 15(3): p. 281-295.

Page 105: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

94 Referenties

70. Bräysy, O., A reactive variable Neighbourhood search for the vehicle-routing problem with time windows. INFORMS journal on computing, 2003. 15(4): p. 347.

71. Bent, R. and P.V. Hentenryck, A Two-Stage Hybrid Local Search for the Vehicle Routing Problem with Time Windows. Transportation Science, 2004. 38(4): p. 515-530.

72. Rousseau, L.-M., M. Gendreau, and G. Pesant, Using Constraint-Based Operators to Solve the Vehicle Routing Problem with Time Windows. Journal of Heuristics, 2002. 8(1): p. 43-58.

73. Czech, Z.J. and P. Czarnas. Parallel simulated annealing for the vehicle routing problem with time windows. in Parallel, Distributed and Network-based Processing, 2002. Proceedings. 10th Euromicro Workshop on. 2002.

74. Bräysy, O., G. Hasle, and W. Dullaert, A multi-start local search algorithm for the vehicle routing problem with time windows. European Journal of Operational Research, 2004. 159(3): p. 586-605.

75. Chiang, W.C. and R.A. Russell, A Metaheuristic for the Vehicle-Routeing Problem with Soft Time Windows. The Journal of the Operational Research Society, 2004. 55(12): p. 1298-1310.

76. Clarke, G. and J.W. Wright, Scheduling of vehicles from a central depot to a number of delivery points. Operations Research, 1964. 12(4): p. 568.

77. Schulze, J. and T. Fahle, A parallel algorithm for the vehicle routing problem with time window constraints. Annals of Operations Research, 1999. 86(0): p. 585-607.

78. Backer, B.D., et al., Solving Vehicle Routing Problems Using Constraint Programming and Metaheuristics. Journal of Heuristics, 2000. 6(4): p. 501-523.

79. Glover, F., A user's guide to tabu search. Annals of Operations Research, 1993. 41(1): p. 1. 80. Gautama, S., Notes Toegepaste combinatorische optimalisatie en heuristieken. 2011,

Universiteit Gent. 81. Kirkpatrick, S., Optimization by simulated annealing: Quantitative studies. Journal of

Statistical Physics, 1984. 34(5): p. 975-986. 82. Li, Z. and Orchard, Improved GRASP with Tabu search for vehicle routing with both time

window and limited number of vehicles Innovations in Applied Artificial Intelligence. Vol. 3029. 2004.

83. Lim, A. and F. Wang, A Smoothed Dynamic Tabu Search Embedded GRASP for m-VRPTW, in Proceedings of the 16th IEEE International Conference on Tools with Artificial Intelligence. 2004, IEEE Computer Society. p. 704-708.

84. Chaovalitwongse, W., GRASP with a new local search scheme for vehicle routing problems with time windows. Journal of Combinatorial Optimization, 2003. 7(2): p. 179.

85. Kytöjoki, J., et al., An efficient variable Neighbourhood search heuristic for very large scale vehicle routing problems. Computers & operations research, 2007. 34(9): p. 2743-2757.

86. Hansen, P., A tutorial on variable Neighbourhood search. 2003. 87. Bräysy, O. and M. Gendreau, Tabu Search heuristics for the Vehicle Routing Problem with

Time Windows. TOP, 2002. 10(2): p. 211-237. 88. Taillard, É., A tabu search heuristic for the vehicle routing problem with soft time windows.

1996. 89. Tong, Z., et al. Hybrid Ant Colony Algorithm for the Vehicle Routing with Time Windows. in

Computing, Communication, Control, and Management, 2008. CCCM '08. ISECS International Colloquium on. 2008.

90. Xuan, T., et al. Ant Colony System for Optimizing Vehicle Routing Problem with Time Windows. in Computational Intelligence for Modelling, Control and Automation, 2005 and International Conference on Intelligent Agents, Web Technologies and Internet Commerce, International Conference on. 2005.

91. Luca Maria, G., T. Éric, and A. Giovanni, MACS-VRPTW: A Multiple Colony System For Vehicle Routing Problems With Time Windows. 1999, McGraw-Hill.

92. Kallehauge, B., J. Larsen, and O. Madsen, Lagrangean Duality Applied on Vehicle Routing with Time Windows - Experimental Results, in IMM-Technical Report-2001-9. 2001: Richard Petersens Plads, Building 321, DK-2800 Kgs. Lyngby.

Page 106: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

95 Referenties

93. Cook, W. and J.L. Rich, A Parallel Cutting-Plane Algorithm for the Vehicle Routing Problems with Time Windows, in Rice University. 1999.

94. Yu, Y., H. Chen, and F. Chu, A new model and hybrid approach for large scale inventory routing problems. European Journal of Operational Research, 2008. 189(3): p. 1022-1040.

95. Chandra, P. and M.L. Fisher, Coordination of production and distribution planning. European Journal of Operational Research, 1994. 72(3): p. 503-517.

96. Aghezzaf, E.-h., et al., An exact algorithm for the single-vehicle cyclic inventory routing problem. 2010.

97. Hiriart-Urruty, J.B. and C. Lemaréchal, Convex analysis and minimization algorithms: Fundamentals. 1996: Springer-Verlag.

98. Webb, I.R. and R.C. Larson, Period and phase of customer replenishment: A new approach to the Strategic Inventory/Routing problem. European Journal of Operational Research, 1995. 85(1): p. 132-148.

99. Savelsbergh, M., An optimization algorithm for the inventory routing problem with continuous moves. Computers & operations research, 2008. 35(7): p. 2266.

100. Zhao, X., P.B. Luh, and J. Wang, Surrogate Gradient Algorithm for Lagrangian Relaxation. Journal of Optimization Theory and Applications, 1999. 100(3): p. 699-712.

101. Neckebrouck, J. and K. Schellinck, Procedures voor het Single Machine Maximum Lateness probleem, in Beleidsinformatica en Operationeel Beheer. 2010, University of Ghent: Ghent. p. 89.

Page 107: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

96 Lijst met figuren

Lijst met figuren Figuur 1: ..................................................................................................................................... 9

Figuur 2: Pseudocode voor de Push Forward Insertion Heuristiek ....................................................... 14

Figuur 3: Oplossing PFIH ........................................................................................................................ 15

Figuur 4: Tabu beslissingsboom ............................................................................................................ 16

Figuur 5: Eigenschappen Simulated Annealing ..................................................................................... 17

Figuur 6: Flow diagram TSSA heuristiek ................................................................................................ 18

Figuur 7: Routes TSSA na 2-interchange voor verbeteringsiteratie ...................................................... 19

Figuur 8: Routes TSSA na eerste iteratie ............................................................................................... 19

Figuur 9: Beste routes volgens TSSA heuristiek .................................................................................... 20

Figuur 10: Flow diagram GRASP heuristiek ........................................................................................... 25

Figuur 11: Initiële oplossing X2 voor GRASP ......................................................................................... 26

Figuur 12: GRASP: X2 na lokale optimalisatie ....................................................................................... 26

Figuur 13: Initiële oplossing X3 voor GRASP ......................................................................................... 26

Figuur 14: GRASP: X3 na lokale optimalisatie ....................................................................................... 27

Figuur 15: De 2-interchange methode .................................................................................................. 28

Figuur 16: Werking cross-exchange ...................................................................................................... 28

Figuur 17: Flow diagram VNS heuristiek met 2 mutatie functies .......................................................... 30

Figuur 18: VNS - initiële oplossing na lokale optimalisatie via 2-interchange mutaties ....................... 31

Figuur 19: VNS - cross-exchange ........................................................................................................... 31

Figuur 20: Illustratie werking ACS ......................................................................................................... 32

Figuur 21: Flow diagram ACS heuristiek ................................................................................................ 33

Figuur 22: Routes na de ACS VRPTW heuristiek .................................................................................... 35

Figuur 23: Bestelhoeveelheid B&C ........................................................................................................ 45

Figuur 24: Voorraadsniveau klanten (B&C) ........................................................................................... 46

Figuur 25: Voorraadniveau bij de klant laat toe bepaalde periodes uit het model te weren ............... 48

Figuur 26: Schema benaderingsmethode IRP van Yu, Chen en Chu. .................................................... 50

Figuur 27: Gebruikte benaderingsmethode .......................................................................................... 50

Figuur 28: 2 punten cross-over van binaire strings ............................................................................... 64

Figuur 29: Kerngedachte IRPTW heuristiek ........................................................................................... 72

Figuur 30: Heuristiek - initiële routes per periode ................................................................................ 74

Figuur 31: Kostenverloop heuristiek (excl. voorraadkosten) ................................................................ 78

Figuur 32: Routes na IRPTW heuristiek ................................................................................................. 78

Figuur 33: Voorraadverloop klant 1 na IRPTW heuristiek ..................................................................... 79

Figuur 34: Kosten volgens de TSSA heuristiek ....................................................................................... 82

Figuur 35: Kosten volgens ANTS heuristiek ........................................................................................... 82

Figuur 36: Kosten volgens GRASP heuristiek ......................................................................................... 82

Figuur 37: Kosten volgens VNS2H heuristiek ........................................................................................ 83

Figuur 38: Routes kleinste bovengrens ................................................................................................. 86

Page 108: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

97 Lijst met tabellen

Lijst met tabellen Tabel 1: Voorbeeld - Klantengegevens .................................................................................................... 4

Tabel 2: Voorbeeld - Vraag per periode, beginvoorraad en de maximumvoorraad ............................... 6

Tabel 3: Voorbeeld - Transportkosten/tijd van klant i naar klant j ......................................................... 7

Tabel 4: Voorbeeld - voorraadkosten ...................................................................................................... 7

Tabel 5: Enkele metaheuristieken voor het VRPTW ............................................................................. 13

Tabel 6: Parametertest voor ACS-VRPTW op Solomon instantie C101 ................................................. 35

Tabel 7: Resultaten VRPTW heurstieken ............................................................................................... 36

Tabel 8: Mogelijke routes toegepast op voorbeeld .............................................................................. 49

Tabel 9: Parameterwaarden SSG ........................................................................................................... 57

Tabel 10: Waarden SSG ......................................................................................................................... 59

Tabel 11: Bestelhoeveelheid via hybride methode ............................................................................... 60

Tabel 12: Routes bij oplossing hybride methode .................................................................................. 61

Tabel 13: Kosten na benaderde optimalisatie ....................................................................................... 62

Tabel 14: Resultaat GA - bestelhoeveelheid ......................................................................................... 70

Tabel 15: Depth first search op parameters en functies GA ................................................................. 71

Tabel 16: Initiële bestelhoeveelheid per periode per klant .................................................................. 73

Tabel 17: Routes per Iteratie per periode ............................................................................................. 77

Tabel 18: Bestelhoeveelheid per periode ............................................................................................. 79

Tabel 19: Voorraadniveau klanten ........................................................................................................ 80

Tabel 20: Parametertest routeuit.m ..................................................................................................... 83

Tabel 21: Voorraadniveau klanten ........................................................................................................ 85

Tabel 22: Testinstanties ......................................................................................................................... 88

Tabel 23: Besparingen t.o.v. EOQ .......................................................................................................... 89

Page 109: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

98 Bijlagen

Bijlagen

Bijlage A: Standaardinstanties IRPTW B=round(disttab(SOLOMON));

For i=1:N

MaxStock=min(vehCapacity,max(DemandPeriode())*)

BV=min(MaxStock(),round(SOLOMON (I,3)*random(‘uniform’,0.5,3.3)))

HoldingCost()=round(random(‘uniform’,1,10))*0,5

Page 110: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

99 Bijlagen

Bijlage B: Branch en Cut model Run configuratie B&C in Masterproef .opl bestand te openen in IBM ILOG OPL IDE. De Input data kan

teruggevonden worden in exampleBC.xlsx

Databestand /*********************************************

* OPL 6.3 Data

* Author: Taftje

* Creation Date: 30-mrt-2011 at 19:43:18

*********************************************/

/*Branch en Cut model*/

/*Input data*/

SheetConnection sheet("exampleBC.xlsx");

/* Oproepen leverancier data*/

BeginStock from SheetRead(sheet,"klantendata!D2:D17");

V from SheetRead(sheet,"klantendata!H2:H17");

h from SheetRead(sheet,"klantendata!J2:J17");

r from SheetRead(sheet,"Dem!B2:K17");

ShippingCost from SheetRead(sheet,"TK!B2:Q17");

Modelbestand /*********************************************

* OPL 6.3 Model

* Author: Taftje

* Creation Date: 30-mrt-2011 at 19:15:21

*********************************************/

/*Branch en Cut model*/

/*gebasseerd op Archetti, Laporte en Speranza 2007*/

/*indexen*/

{int} S={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

{int} S_={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

{int} Periode={1,2,3,4,5,6,7,8,9,10};

{int} Periode_={1,2,3,4,5,6,7,8,9,10,11};

/*input data*/

int C=1200;

int ShippingCost[S_,S_]=...;

float h[S_]=...;

int BeginStock[S_]=...;

float r[S_,Periode]=...;

int V[S_]=...;

/*beslissingsvariabelen*/

dvar int+ X[S,Periode_];

dvar int Y[S,S_,Periode] in 0..2;

dvar boolean Z[S_,Periode];

dvar float B[Periode_];

dvar float I[S,Periode_];

/*doelfunctie*/

minimize /*2.1*/(sum(t in Periode_)h[0]*B[t] + sum(i in S, t in

Periode_)h[i]*I[i,t]+sum(t in Periode,i in S_,j in

S_:j<i)ShippingCost[i,j]*Y[i,j,t]);

/*restricties*/

subject to {

Page 111: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

100 Bijlagen

/*2.2*/BeginStock[0]==B[1];

/*2.2*/forall(t in 2..11) B[t]==B[t-1]+r[0,t-1]-sum(i in S)X[i,t-1];

/*2.3*/forall( t in Periode) B[t]>=sum(i in S)X[i,t];

/*2.4*/forall(i in S)I[i,1]==BeginStock[i];

/*2.4*/forall( t in 2..11, i in S) I[i,t]==I[i,t-1]+X[i,t]-r[i,t-1];

/*2.5*/forall( t in Periode_,i in S) I[i,t]>=0;

/*2.6*/forall(i in S,t in Periode)X[i,t]>=V[i]*Z[i,t]-I[i,t];

/* restricties 2.7 en 2.8 niet geimplementeerd

forall(i in S,t in Periode)X[i,t]<=V[i]-I[i,t];

forall(i in S,t in Periode)X[i,t]<=V[i]*Z[i,t];

*/

/*2.9*/forall(t in Periode)sum(i in S)X[i,t]<=C;

/*2.10 a*/forall(t in Periode)sum(i in S)X[i,t]<=C*Z[0,t];

/*2.10 b*/forall(t in Periode,i in S_)sum(j in S_:j<i)Y[i,j,t]+sum(j in

S_:j>i)Y[j,i,t]==2*Z[i,t];

/*2.13*/forall(t in Periode,i in S,j in S:j<i)Y[i,j,t]<=1;

/*ongelijkheden*/

/*2.20*/forall(i in S, t in Periode)Z[i,t]<=Z[0,t];

/*2.21*/forall(i in S, t in Periode)Y[i,0,t]<=2*Z[i,t];

/*2.22*/forall(i in S, t in Periode,j in S)Y[i,j,t]<=Z[i,t];

/*2.16*/forall(i in S,t in Periode,k in 0..t-1)I[i,t-k]>=(sum(j in

0..k)r[i,t-j])*(1-sum(j in 0..k)Z[i,t-j]);

OptieBestand

<?xml version="1.0" encoding="UTF-8"?> <settings version="2"> <category name="cplex"> <setting name="tilim" value="900.0"/> <setting name="cliques" value="3"/> <setting name="covers" value="3"/> <setting name="disjcuts" value="3"/> <setting name="flowcovers" value="2"/> <setting name="fraccuts" value="2"/> <setting name="gubcovers" value="2"/> <setting name="implbd" value="2"/> <setting name="mircuts" value="2"/> <setting name="flowpaths" value="2"/> <setting name="zerohalfcuts" value="2"/> </category> </settings>

Resultaat

Toegepast op de input data exampleBC.xlsx is het resultaat te vinden op de bijlage CD:

Engine log file: …\BIJLAGE_TESTEN\Engine_log_file_BC.txt

Solution file: …\ BIJLAGE_TESTEN\Solution_BC.txt

Page 112: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

101 Bijlagen

Statistieken:

Page 113: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

102 Bijlagen

Bijlage C: Hybride IRP(TW) model

Submodel 1: vereenvoudigde modellering

Variabelen D en I zijn hier beslissingsvariabelen en variabelen met meer dan twee indexen is mogelijk.

/*********************************************

* OPL 6.3 Model

* Author: Taftje

* Creation Date: 12-mrt-2011 at 10:44:36

*********************************************/

int VehicleCapacity=300;

range KlantenminDepot=1..15;

range Klanten=0..15;

range Periode=1..10;

range Vehicle=1..10;

/*alternatief op tijdsvensters*/

int MO[Klanten,Klanten]=...;

int Demand[KlantenminDepot,Periode]=...;

int HoldingCost[KlantenminDepot, Periode]=...;

int ShippingCost[Klanten,Klanten]=...;

int BeginStock[KlantenminDepot]=...;

int MaxStock[KlantenminDepot]=...;

int FixedCost[Periode]=...;

/*multipliers*/

float multi23[KlantenminDepot,Periode]=...;

float multi28[Vehicle,KlantenminDepot,Periode]=...;

float multi26a[KlantenminDepot,KlantenminDepot,Periode]=...;

float multi27a[Vehicle,KlantenminDepot,Periode]=...;

float multi17[KlantenminDepot,KlantenminDepot,Periode]=...;

/*afhankelijken*/

/*1.2*/dexpr float D[i in KlantenminDepot,t in periode]=sum(m in

Vehicle)P[m,i,t]-sum(j in Klanten:j!=i)Q[i,j,t]+sum(j in

KlantenminDepot:j!=i)Q[j,i,t];

/*1.3*/dexpr float I[i in KlantenminDepot,t in Periode]=BeginStock[i]+sum(G

in 1..t)D[i,G]-Demand[i,G];

/*vastgezet*/

int Y[Vehicle,KlantenminDepot,Periode]=...;

int X[Klanten,Klanten,Periode]=...;

/*beslissingsvariabelen*/

dvar int Q[Klanten,KlantenminDepot,Periode] in 0..VehicleCapacity;

dvar int P[Vehicle,KlantenminDepot,Periode] in 0..VehicleCapacity;

minimize /*5.2.1*/

sum(t in Periode,i in KlantenminDepot)HoldingCost[i,t]*(BeginStock[i]

+ sum(G in 1..t)(D[i,G]-Demand[i,G]))

+ sum(t in Periode,j in KlantenminDepot,i in KlantenminDepot:i!=j)

((ShippingCost[i,j]-(multi17[i,j,t]/VehicleCapacity) + multi26a[i,j,t]*(1-

X[i,j,t]))*Q[i,j,t])

+ sum(t in Periode,i in KlantenminDepot,m in Vehicle)((ShippingCost[0,i]-

multi23[i,t]-(multi28[m,i,t]/VehicleCapacity)+(1-Y[m,i,t]) *

multi27a[m,i,t])*P[m,i,t])

Page 114: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

103 Bijlagen

+/*kleine permutatie*/ sum(t in Periode,i in KlantenminDepot,m in

Vehicle)(0.0000000000000001*m*P[m,i,t]);

subject to{

/*4.4*/forall(i in KlantenminDepot,t in Periode)sum(m in

Vehicle)P[m,i,t]+sum(j in Klanten:j!=i)Q[j,i,t]-sum(j in

KlantenminDepot:j!=i)Q[i,j,t]==D[i,t];

/*4.5*/ forall(t in Periode)sum(i in KlantenminDepot)sum(m in

Vehicle)P[m,i,t]==sum(i in KlantenminDepot)D[i,t];

/*4.10*/forall(t in Periode,i in KlantenminDepot,j in

KlantenminDepot:i==j)Q[i,j,t]==0;

/*4.12*/forall(t in Periode,i in KlantenminDepot,j in

KlantenminDepot:j!=i)Q[i,j,t]<=VehicleCapacity;

/*4.14*/forall(t in Periode,i in KlantenminDepot,m in

Vehicle)P[m,i,t]<=VehicleCapacity;

/*5.2.2*/ forall(i in KlantenminDepot,t in 2..10) BeginStock[i]+sum(G in

1..t)D[i,G]-sum(G in 1..(t-1))Demand[i,G]<=MaxStock[i];

/*5.2.2bis*/ forall(i in KlantenminDepot)

BeginStock[i]+D[i,1]<=MaxStock[i];

/*5.2.3*/forall(i in KlantenminDepot,t in Periode)BeginStock[i]+sum(G in

1..t)(D[i,G]-Demand[i,G])>=0;

/*6.2*/ forall(i in Klanten,j in KlantenminDepot,t in Periode:i!=j)

Q[i,j,t]<=MO[i,j]*Q[i,j,t];

}

Page 115: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

104 Bijlagen

Submodel 2: vereenvoudigde modellering /*********************************************

* OPL 6.3 Model

* Author: Taftje

* Creation Date: 12-mrt-2011 at 12:01:03

*********************************************/

int SizeFleet=10;

int VehicleCapacity=300;

range KlantenminDepot=1..15;

range Klanten=0..15;

range Periode=1..10;

range Vehicle=1..10;

int Demand[KlantenminDepot,Periode]=...;

int HoldingCost[KlantenminDepot, Periode]=...;

int ShippingCost[Klanten,Klanten]=...;

int BeginStock[KlantenminDepot]=...;

int MaxStock[KlantenminDepot]=...;

int FixedCost[Periode]=...;

/*alternatief op tijdsvensters*/

int MO[Klanten,Klanten]=...;

/*multipliers*/

float multi17[KlantenminDepot,KlantenminDepot,Periode]=...;

float multi23[KlantenminDepot,Periode]=...;

float multi28[Vehicle,KlantenminDepot,Periode]=...;

float multi26a[KlantenminDepot,KlantenminDepot,Periode]=...;

float multi27a[Vehicle,KlantenminDepot,Periode]=...;

/*beslissingsvariabelen*/

dvar int+ X[Klanten,Klanten,Periode]; /*4.9*/

dvar boolean Y[Vehicle,Klanten,Periode]; /*4.9*/

dvar int+ M[Klanten] in 0..SizeFleet;

/*vast gezet*/

float P[Vehicle,KlantenminDepot,Periode]=...;

float Q[Klanten,KlantenminDepot,Periode]=...;

minimize /*5.3.1*/

sum(t in Periode,i in

KlantenminDepot)(ShippingCost[0,i]+FixedCost[t])*X[i,0,t]

+ sum(t in Periode,i in KlantenminDepot,j in

KlantenminDepot:i!=j)(multi17[i,j,t]-multi26a[i,j,t]*Q[i,j,t])*X[i,j,t]

+ sum(t in Periode,i in KlantenminDepot,m in

1..M[i])(multi23[i,t]*VehicleCapacity+multi28[m,i,t]-

multi27a[m,i,t])*Y[m,i,t]

+ /*small permutation*/ sum(t in Periode,i in KlantenminDepot,m in

1..M[i])(0.0000000000000001*m*Y[m,i,t]);

subject to {

/*1.7*/forall(t in Periode)sum(i in KlantenminDepot)X[i,0,t]<=SizeFleet;

/*4.2*/forall(i in KlantenminDepot,t in Periode)sum(j in

Klanten:j!=i)X[i,j,t]==sum(m in 1..M[i])Y[m,i,t] + sum(j in

KlantenminDepot:j!=i)X[j,i,t];

Page 116: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

105 Bijlagen

/*4.3*/forall(t in Periode)(sum(i in KlantenminDepot)X[i,0,t]==sum(i in

KlantenminDepot,m in 1..M[i])Y[m,i,t]);

/*6.1*/forall(t in Periode,i in KlantenminDepot,j in

KlantenminDepot:i!=j)X[i,j,t]<=MO[i,j];

forall(t in Periode,i in Klanten,j in Klanten:i==j)X[i,j,t]==0;

Page 117: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

106 Bijlagen

Model P’: vereenvoudigde modellering /*********************************************

* OPL 6.3 Model

* Author: Taftje

* Creation Date: 21-mrt-2011 at 00:37:19

*********************************************/

range KlantenminDepot=1..15;

range Klanten=0..15;

range Periode=1..10;

range Vehicle=1..10;

int VehicleCapacity=300;

int Demand[KlantenminDepot,Periode]=...;

int HoldingCost[KlantenminDepot, Periode]=...;

int ShippingCost[Klanten,Klanten]=...;

int BeginStock[KlantenminDepot]=...;

int MaxStock[KlantenminDepot]=...;

int FixedCost[Periode]=...;

/*alternatief op tijdsvensters*/

int MO[Klanten,Klanten]=...;

/*afhankelijken*/

/*1.2*/dexpr float D[i in KlantenminDepot,t in periode]=sum(m in

Vehicle)P[m,i,t]-sum(j in Klanten:j!=i)Q[i,j,t]+sum(j in

KlantenminDepot:j!=i)Q[j,i,t];

/*1.3*/dexpr float I[i in KlantenminDepot,t in Periode]=BeginStock[i]+sum(G

in 1..t)D[i,G]-Demand[i,G];

/*beslissingvariabelen vastgezet*/

float P[Vehicle,KlantenminDepot,Periode]=...;

float Q[Klanten,KlantenminDepot,Periode]=...;

/*multipliers*/

int multi17[KlantenminDepot,KlantenminDepot,Periode];

int multi23[KlantenminDepot,Periode];

int multi28[Vehicle,KlantenminDepot,Periode];

int multi26a[KlantenminDepot,KlantenminDepot,Periode];

int multi27a[Vehicle,KlantenminDepot,Periode];

/*beslissingsvariabelen*/

dvar boolean Y[Vehicle,KlantenminDepot,Periode];

dvar int+ X[Klanten,Klanten,Periode];

/*gradients*/

dexpr float g1[i in KlantenminDepot,j in KlantenminDepot,t in Periode] =

(X[i,j,t]-((Q[i,j,t]-1)/VehicleCapacity)-1);

dexpr float g2[i in KlantenminDepot,t in Periode] =

((VehicleCapacity*(sum(m in Vehicle)Y[m,i,t])));

dexpr float g3[m in Vehicle,i in KlantenminDepot,t in Periode] = (Y[m,i,t]-

((P[m,i,t]-1)/VehicleCapacity)-1);

dexpr float g4[i in KlantenminDepot,j in KlantenminDepot,t in Periode] =

(Q[i,j,t]*(1-X[i,j,t]));

dexpr float g5[m in Vehicle,i in KlantenminDepot,t in Periode] =

(P[m,i,t]*(1-Y[m,i,t]));

Page 118: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

107 Bijlagen

minimize

sum(t in Periode,i in KlantenminDepot) HoldingCost[i,t]*I[i,t]

+sum(t in Periode, j in KlantenminDepot,i in

KlantenminDepot:j!=i)ShippingCost[i,j]*Q[i,j,t]

+sum(t in Periode,i in KlantenminDepot) ShippingCost[0,i]*sum(m in

Vehicle)P[m,i,t]

+sum(t in Periode,i in KlantenminDepot)(FixedCost[t]*(sum(m in

Vehicle)Y[m,i,t]))

+sum(t in Periode,i in KlantenminDepot)ShippingCost[i,0]*X[i,0,t]

+sum(i in KlantenminDepot,j in KlantenminDepot,t in Periode)

(multi17[i,j,t]*g1[i,j,t])

+sum(i in KlantenminDepot,t in Periode)(multi23[i,t]*g2[i,t])

+sum(m in Vehicle,i in KlantenminDepot,t in

Periode)(multi28[m,i,t]*g3[m,i,t])

+sum(i in KlantenminDepot,j in KlantenminDepot,t in

Periode)(multi26a[i,j,t]*g4[i,j,t])

+sum(m in Vehicle,i in KlantenminDepot,t in

Periode)( multi27a[m,i,t]*g5[m,i,t]);

subject to {

/*1.7*/forall(t in Periode)sum(i in KlantenminDepot)X[i,0,t]<=SizeFleet;

/*4.2*/forall(i in KlantenminDepot,t in Periode)sum(j in

Klanten:j!=i)X[i,j,t]==sum(m in VehicleY[m,i,t] + sum(j in

KlantenminDepot:j!=i)X[j,i,t];

/*4.3*/forall(t in Periode)(sum(i in KlantenminDepot)X[i,0,t]==sum(i in

KlantenminDepot,m in Vehicle)Y[m,i,t]);

/*4.4*/forall(i in KlantenminDepot,t in Periode)sum(m in

Vehicle)P[m,i,t]+sum(j in Klanten:j!=i)Q[j,i,t]-sum(j in

KlantenminDepot:j!=i)Q[i,j,t]==D[i,t];

/*4.5*/ forall(t in Periode)sum(i in KlantenminDepot)sum(m in Vehicle)

P[m,i,t]==sum(i in KlantenminDepot)D[i,t];

/*4.9*/forall(t in Periode,i in KlantenminDepot,j in KlantenminDepot:i==j)

X[i,j,t]==0;

/*4.10*/forall(t in Periode,i in KlantenminDepot,j in

KlantenminDepot:i==j)Q[i,j,t]==0;

/*4.12*/forall(t in Periode,i in KlantenminDepot,j in

KlantenminDepot:j!=i)Q[i,j,t]<=VehicleCapacity;

/*4.14*/forall(i in KlantenminDepot, t in Periode,m in

Vehicle)P[m,i,t]<=VehicleCapacity;

/*6.1*/forall(t in Periode,i in KlantenminDepot,j in

KlantenminDepot:i!=j)X[i,j,t]<=MO[i,j];

forall(t in Periode,i in Klanten,j in Klanten:i==j)X[i,j,t]==0;

/*6.2*/ forall(i in Klanten,j in KlantenminDepot,t in Periode:i!=j)

Q[i,j,t]<=MO[i,j]*Q[i,j,t];

}

Page 119: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

108 Bijlagen

Bijlage D: Voorraadmodel /*********************************************

* OPL 6.3 Model

* Author: Taftje

* Creation Date: 17-apr-2011 at 12:18:01

*********************************************/

{int} Klanten={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

{int} Periode={1,2,3,4,5,6,7,8,9,10};

int BS[Klanten]=...;

int MS[Klanten]=...;

int DEMAND[Klanten,Periode]=...;

float HOLDING[Klanten,Periode]=...;

dvar int+ D_P1[Klanten];

dvar int+ D_P2[Klanten];

dvar int+ D_P3[Klanten];

dvar int+ D_P4[Klanten];

dvar int+ D_P5[Klanten];

dvar int+ D_P6[Klanten];

dvar int+ D_P7[Klanten];

dvar int+ D_P8[Klanten];

dvar int+ D_P9[Klanten];

dvar int+ D_P10[Klanten];

dexpr int I_P1_T[i in Klanten]=BS[i]-DEMAND[i,1];

dexpr int I_P1[i in Klanten]=I_P1_T[i]+D_P1[i];

dexpr int I_P2[i in Klanten]=I_P1[i]-DEMAND[i,2]+D_P2[i];

dexpr int I_P3[i in Klanten]=I_P2[i]-DEMAND[i,3]+D_P3[i];

dexpr int I_P4[i in Klanten]=I_P3[i]-DEMAND[i,4]+D_P4[i];

dexpr int I_P5[i in Klanten]=I_P4[i]-DEMAND[i,5]+D_P5[i];

dexpr int I_P6[i in Klanten]=I_P5[i]-DEMAND[i,6]+D_P6[i];

dexpr int I_P7[i in Klanten]=I_P6[i]-DEMAND[i,7]+D_P7[i];

dexpr int I_P8[i in Klanten]=I_P7[i]-DEMAND[i,8]+D_P8[i];

dexpr int I_P9[i in Klanten]=I_P8[i]-DEMAND[i,9]+D_P9[i];

dexpr int I_P10[i in Klanten]=I_P9[i]-DEMAND[i,10]+D_P10[i];

minimize

sum(i in Klanten)HOLDING[i,1]*I_P1[i]

+sum(i in Klanten)HOLDING[i,2]*I_P2[i]

+sum(i in Klanten)HOLDING[i,3]*I_P3[i]

+sum(i in Klanten)HOLDING[i,4]*I_P4[i]

+sum(i in Klanten)HOLDING[i,5]*I_P5[i]

+sum(i in Klanten)HOLDING[i,6]*I_P6[i]

+sum(i in Klanten)HOLDING[i,7]*I_P7[i]

+sum(i in Klanten)HOLDING[i,8]*I_P8[i]

+sum(i in Klanten)HOLDING[i,9]*I_P9[i]

+sum(i in Klanten)HOLDING[i,10]*I_P10[i];

subject to

{

forall (i in Klanten)-I_P1[i]<=0;

forall (i in Klanten)-I_P2[i]<=0;

forall (i in Klanten)-I_P3[i]<=0;

forall (i in Klanten)-I_P4[i]<=0;

forall (i in Klanten)-I_P5[i]<=0;

forall (i in Klanten)-I_P6[i]<=0;

Page 120: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

109 Bijlagen

forall (i in Klanten)-I_P7[i]<=0;

forall (i in Klanten)-I_P8[i]<=0;

forall (i in Klanten)-I_P9[i]<=0;

forall (i in Klanten)-I_P10[i]<=0;

forall(i in Klanten)D_P1[i]+I_P1[i]<=MS[i];

forall(i in Klanten)D_P2[i]+I_P2[i]<=MS[i];

forall(i in Klanten)D_P3[i]+I_P3[i]<=MS[i];

forall(i in Klanten)D_P4[i]+I_P4[i]<=MS[i];

forall(i in Klanten)D_P5[i]+I_P5[i]<=MS[i];

forall(i in Klanten)D_P6[i]+I_P6[i]<=MS[i];

forall(i in Klanten)D_P7[i]+I_P7[i]<=MS[i];

forall(i in Klanten)D_P8[i]+I_P8[i]<=MS[i];

forall(i in Klanten)D_P9[i]+I_P9[i]<=MS[i];

forall(i in Klanten)D_P10[i]+I_P10[i]<=MS[i];

forall(i in Klanten)-D_P1[i]<=0;

forall(i in Klanten)-D_P2[i]<=0;

forall(i in Klanten)-D_P3[i]<=0;

forall(i in Klanten)-D_P4[i]<=0;

forall(i in Klanten)-D_P5[i]<=0;

forall(i in Klanten)-D_P6[i]<=0;

forall(i in Klanten)-D_P7[i]<=0;

forall(i in Klanten)-D_P8[i]<=0;

forall(i in Klanten)-D_P9[i]<=0;

forall(i in Klanten)-D_P10[i]<=0;

}

Page 121: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

110 Bijlagen

Bijlage E: MATLAB GA toolbox function description

Scaling function

Scaling function specifies the function that performs the scaling. You can choose from the following

functions:

Rank scales the raw scores based on the rank of each individual, rather than its score. The rank of

an individual is its position in the sorted scores. The rank of the fittest individual is 1, the next

fittest is 2, and so on. Rank fitness scaling removes the effect of the spread of the raw scores.

Proportional makes the expectation proportional to the raw fitness score. This strategy has

weaknesses when raw scores are not in a "good" range.

Top scales the individuals with the highest fitness values equally. If you select this option, you

can specify Quantity, the number of fittest individuals that produce offspring. Quantity must be

an integer between 1 and Population Size or a fraction between 0 and 1 specifying a fraction of

the population size. Each of these individuals has an equal probability of reproducing. The rest

have probability 0 of reproducing. The expectation has the form [ 0 1/n 1/n 0 0 1/n 0 0 1/n ...].

Shift linear scales the raw scores so that the expectation of the fittest individual is equal to a

constant, which you can specify as Maximum survival rate, multiplied by the average score.

Selection function

The selection function chooses parents for the next generation based on their scaled values from the

fitness scaling function.

You can specify the function that performs the selection in the Selection function field. You can

choose from the following functions:

Stochastic uniform lays out a line in which each parent corresponds to a section of the line of

length proportional to its expectation. The algorithm moves along the line in steps of equal

size, one step for each parent. At each step, the algorithm allocates a parent from the section

it lands on. The first step is a uniform random number less than the step size.

Remainder assigns parents deterministically from the integer part of each individual's scaled

value and then uses roulette selection on the remaining fractional part.

Uniform select parents at random from a uniform distribution using the expectations and

number of parents. This results in an undirected search. Uniform selection is not a useful

search strategy, but you can use it to test the genetic algorithm.

Shift linear scales the raw scores so that the expectation of the fittest individual is equal to a

constant, which you can specify as Maximum survival rate, multiplied by the average score.

Roulette simulates a roulette wheel with the area of each segment proportional to its

expectation. The algorithm then uses a random number to select one of the sections with a

probability equal to its area.

Page 122: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

111 Bijlagen

Tournament selects each parent by choosing individuals at random, the number of which

you can specify by Tournament size, and then choosing the best individual out of that set to

be a parent.

Reproduction

Reproduction options determine how the genetic algorithm creates children at each new generation.

Elite count specifies the number of individuals that are guaranteed to survive to the next

generation. Set Elite count to be a positive integer less than or equal to Population size.

Crossover fraction specifies the fraction of the next generation that crossover produces.

Mutation produces the remaining individuals in the next generation. Set Crossover fraction

to be a fraction between 0 and 1, either by entering the fraction in the text box, or by moving

the slider.

Mutation function

Mutation functions make small random changes in the individuals in the population, which provide

genetic diversity and enable the genetic algorithm to search a broader space.

Specify the function that performs the mutation in the Mutation function field. You can choose from

the following functions:

Use constraint dependent default chooses:

Gaussian if there are no constraints

Adaptive feasible otherwise

Gaussian adds a random number to each vector entry of an individual. This random number

is taken from a Gaussian distribution centered on zero. The standard deviation of this

distribution can be controlled with two parameters. The Scale parameter determines the

standard deviation at the first generation. The Shrink parameter controls how standard

deviation shrinks as generations go by. If the Shrink parameter is 0, the standard deviation is

constant. If the Shrink parameter is 1, the standard deviation shrinks to 0 linearly as the last

generation is reached.

Uniform is a two-step process. First, the algorithm selects a fraction of the vector entries of

an individual for mutation, where each entry has the same probability as the mutation rate of

being mutated. In the second step, the algorithm replaces each selected entry by a random

number selected uniformly from the range for that entry.

Adaptive feasible randomly generates directions that are adaptive with respect to the last

successful or unsuccessful generation. A step length is chosen along each direction so that

linear constraints and bounds are satisfied.

Page 123: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

112 Bijlagen

Crossover combines two individuals, or parents, to form a new individual, or child, for the next

generation.

Specify the function that performs the crossover in the Crossover function field. You can choose from

the following functions:

Scattered creates a random binary vector. It then selects the genes where the vector is a 1

from the first parent, and the genes where the vector is a 0 from the second parent, and

combines the genes to form the child. For example:

p1 = [a b c d e f g h] p2 = [1 2 3 4 5 6 7 8] random crossover vector = [1 1 0 0 1 0 0 0] child = [a b 3 4 e 6 7 8]

Single point chooses a random integer n between 1 and Number of variables, and selects the

vector entries numbered less than or equal to n from the first parent, selects genes

numbered greater than n from the second parent, and concatenates these entries to form

the child. For example:

p1 = [a b c d e f g h]

p2 = [1 2 3 4 5 6 7 8]

random crossover point = 3

child = [a b c 4 5 6 7 8]

Two point selects two random integers m and n between 1 and Number of variables. The

algorithm selects genes numbered less than or equal to m from the first parent, selects genes

numbered from m+1 to n from the second parent, and selects genes numbered greater than

n from the first parent. The algorithm then concatenates these genes to form a single gene.

For example:

p1 = [a b c d e f g h]

p2 = [1 2 3 4 5 6 7 8]

random crossover points = 3,6

child = [a b c 4 5 6 g h]

Intermediate creates children by a random weighted average of the parents. Intermediate

crossover is controlled by a single parameter Ratio:

child1 = parent1+...

rand*Ratio*(parent2 - parent1)

If Ratio is in the range [0,1], the children produced are within the hypercube defined by the

parents locations at opposite vertices. If Ratio is in a larger range, say 1.1, children can be

generated outside the hypercube. Ratio can be a scalar or a vector of length Number of

Page 124: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

113 Bijlagen

variables. If Ratio is a scalar, all the children lie on the line between the parents. If Ratio is a

vector, children can be any point within the hypercube.

Heuristic creates children that randomly lie on the line containing the two parents, a small distance

away from the parent with the better fitness value, in the direction away from the parent with the

worse fitness value.

Arithmetic creates children that are a random arithmetic mean of two parents, uniformly on

the line between the parents.

Migration

Migration is the movement of individuals between subpopulations, which the algorithm creates if

you set Population size to be a vector of length greater than 1. Every so often, the best individuals

from one subpopulation replace the worst individuals in another subpopulation. You can control how

migration occurs by the following three parameters.

Direction specifies the direction in which migration can take place:

If you set Direction to Forward, migration takes place toward the last subpopulation. That is

the nth subpopulation migrates into the (n+1)th subpopulation.

If you set Direction to Both, the nth subpopulation migrates into both the (n–1)th and the

(n+1)th subpopulation.

Migration wraps at the ends of the subpopulations. That is, the last subpopulation migrates into

the first, and the first may migrate into the last. To prevent wrapping, specify a subpopulation of

size 0.

Fraction controls how many individuals move between subpopulations. Fraction is the fraction of

the smaller of the two subpopulations that moves. If individuals migrate from a subpopulation of

50 individuals into a population of 100 individuals and Fraction is 0.1, 5 individuals (0.1 * 50)

migrate. Individuals that migrate from one subpopulation to another are copied; they are not

removed from the source subpopulation.

Interval controls how many generations pass between migrations. If you set Interval to 20, for

example, migration between subpopulations takes place every 20 generations.

Plot functions

Plot functions enable you to plot various aspects of the genetic algorithm as it is executing. Each one

draws in a separate axis on the display window. Use the Stop button on the window to interrupt a

running process.

Plot interval specifies the number of generations between successive updates of the plot.

Best fitness plots the best function value in each generation versus iteration number.

Best individual plots the vector entries of the individual with the best fitness function value

in each generation.

Page 125: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

114 Bijlagen

Distance plots the average distance between individuals at each generation.

Expectation plots the expected number of children versus the raw scores at each generation.

Genealogy plots the genealogy of individuals. Lines from one generation to the next are

color-coded as follows:

Red lines indicate mutation children.

Blue lines indicate crossover children.

Black lines indicate elite individuals.

Range plots the minimum, maximum, and mean fitness function values in each generation.

Score diversity plots a histogram of the scores at each generation.

Scores plots the scores of the individuals at each generation.

Selection plots a histogram of the parents. This shows you which parents are contributing to

each generation.

Stopping plots stopping criteria levels.

Max constraint plots the maximum nonlinear constraint violation.

Page 126: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

115 Bijlagen

Bijlage F: routeuit.m function [RouteErUit,RouteUit]=routeuit(routesperperiode,t,OQ,capacity)

%sorteren op basis van aantal klanten en overblijvende capaciteit. [q,s]=size(routesperperiode(:,:,t)); for v=1:q for b=1:s routes(v,b)=routesperperiode(v,b,t); end end

[n,m]=size(routes);

%aantal klanten berekenen per route for i=1:n route=routes(i,:); route(m+1)=0; u=0; capaciteit(i)=0; for j=1:m if route(j)>0 u=u+1; capaciteit(i)=capaciteit(i)+OQ(route(j),t); aantalklanten(i)=u;

end end end

%resterende capaciteit

for i=1:n if routes(i,1)==0 opportuniteiten=0; continue end opportuniteiten(i)=(capacity-capaciteit(i))*50-aantalklanten(i)*1000; end

[value,index]=sort(opportuniteiten,'descend'); RouteUit=index(1); RouteErUit=routes(index(1),:);

Page 127: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

116 Bijlagen

Bijlage G: kosten.m function kost=kosten(routesPerPeriode, disttabel,FC,vehicles,OQ)

[n,m,p]=size(routesPerPeriode); %Fixed cost per voertuig of route bedoeling is om minimum aantal voertuigen %te gebruiken overheen de periodes

%bij voorkeur wil je het maximum aantal voertuigen beperken kostmaximumvoertuigen=max(vehicles)*FC*10;

%Je wilt het aantal routes overheen de periodes beperken kostaantalroutes=sum(vehicles)*FC;

%transport kosten kosttransport=0; for t=1:p %per periode for i=1:n %aantal routes

for j=1:m %aantal nodes per route routes(n,m)=routesPerPeriode(n,m,t); end route=normalize(routes(i,:)); [~, col]=size(route); if (col>0) if (col<2)||(not((route(1)==0)&&(route(2)==1))) kosttransport=kosttransport+disttabel(1,route(1)+1); for j=1:col-1

kosttransport=kosttransport+disttabel(route(j)+1,route(j+1)+1); end kosttransport=kosttransport+disttabel(route(col)+1,1); end end

end end

%kosten zijn apart opgemaakt om zo het gewicht dat aan elke kost is gezet %te kunnen wijzigen kost=10*kosttransport+kostaantalroutes+kostmaximumvoertuigen; end

Page 128: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

117 Bijlagen

Bijlage H: Uitleg bij IRPTW.m INPUT:

maximale capaciteit van de voertuigen

Vaste kosten

Aantal periodes

Tijdsvenster en servicetijd gegevens van de klanten

Obj=Doel vector bekomen via heuristiek model (zie Bijlage D)

X=oplossingsverzameling10

Kost=naartabu(round(X),INPUT)

FUNCTIE:

De model.m functie kan worden gebruikt om de data verkregen uit het mps bestand bruikbaar te

maken voor de modellering van onder andere de GA.

10 De kolomnamen voor de variabelen moeten dezelfde zijn als deze die ingelezen worden in het mps

bestand. Dit bestand wordt verkregen door in de GA.opl project de optie (heur.ops) in de

runconfiguratie “heur” te wijzigen zodat de mps exportmogelijkheid aangevinkt is.

De kolomnamen zijn terug te vinden in de MATLAB Workspace binnen de “map” die de mps

gegevens bevat.

Wanneer bijvoorbeeld het mps-bestand ingelezen wordt onder de naam “probleem” (in command

window MATLAB “probleem=readmps(‘heur.mps’)”) dan staan de kolomnamen in deze datastructuur

onder “probleem.Columnnames”.

Page 129: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

118 Bijlagen

Bijlage I: Resultaten IRPTW heuristieken op voorbeeld

Kosten berekend via de TSSA heuristiek

iteratie TSSA GRASP VNS3H VNS2H ANTS

1 90480 90480 137920 90480 90480

2 91466 91466 139801 91466 90594

3 91566 91566 151101 91566 90707

4 91831 91831 151744 91831 91757

5 91947 91722 162227 93178 91858

6 90856 93145 167474 91852 93391

7 102325 93261 166464 92346 93441

8 90785 93052 165373 92954 96440

9 91373 92029 - 91952 96805

10 91800 92248 - 103030 97175

11 92175 91053 - 91842 97844

12 91251 92465 - 91991 97858

13 91415 92600 - 92440 96599

14 91531 91181 - 91455 96398

15 90344 92548 - 105695 108765

16 92162 91340 - 93074 109240

17 93981 90118 - 95165 110507

18 93666 90729 - 95138 111526

19 94258 89834 - 95460 111556

20 93122 91551 - 95745 111822

21 83016 94435 - 95874 -

22 104087 93362 - - -

23 105905 108158 - - -

24 107724 97278 - - -

25 107409 97930 - - -

26 104413 98582 - - -

27 105374 98823 - - -

Page 130: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

119 Bijlagen

Kosten berekend via de ANTS heuristiek

iteratie TSSA GRASP VNS3H VNS2H ANTS

1 100528 100528 147085 100528 100567

2 101851 101851 140738 101890 101664

3 102990 102990 152038 102951 100802

4 102267 103267 153900 102306 100961

5 103383 102335 175383 102372 104262

6 104499 101534 168883 102428 104456

7 106727 102650 169165 116063 103558

8 104552 102426 181367 115671 103942

9 105140 103705 - 105279 104306

10 107540 102936 - 104129 104670

11 106940 102923 - 92997 105382

12 127329 92058 - 105208 106399

13 127917 103193 - 106681 106814

14 128033 103047 - 106933 107874

15 127148 105137 - 108572 129974

16 129967 104227 - 107552 129626

17 132785 115497 - 95350 131924

18 129855 107105 - 108370 122292

19 129475 108533 - 108674 121319

20 130580 108960 - 109961 121513

21 131830 109167 - 118122 -

22 128102 130407 - -

23 130921 109291 - -

24 133739 109943 - -

25 130809 120595 - -

26 128269 111247 - -

27 130519 111551 - -

Page 131: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

120 Bijlagen

Kosten berekend via de GRASP heuristiek

iteratie TSSA GRASP VNS3H VNS2H ANTS

1 86887 86564 126654 97528 97528

2 86987 87887 121442 87887 85705

3 87987 87987 129889 87987 85763

4 87267 88267 131545 87267 87961

5 87383 86335 166879 86372 87222

6 88499 86534 167161 86428 87417

7 86688 87650 166404 87063 89558

8 85552 88462 96528 86671 91942

9 88140 87705 - 87279 92306

10 87540 87936 - 88129 92670

11 89976 86923 - 86957 92382

12 89329 87058 - 87208 92399

13 88917 87193 - 87681 92815

14 89033 88047 - 87933 92915

15 89148 88137 - 90575 106010

16 90967 86227 - 90552 105662

17 91785 86497 - 91350 104965

18 91855 87105 - 91370 107328

19 91475 87533 - 91674 107360

20 93580 77133 - 90961 108549

21 80946 89167 - 92122 -

22 91102 88407 - - -

23 92921 92291 - - -

24 94739 91943 - - -

25 94809 93631 - - -

26 91269 94247 - - -

27 93519 93551 - - -

Page 132: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

121 Bijlagen

Kosten berekend via de VNS 3H heuristiek

iteratie TSSA GRASP VNS3H VNS2H ANTS

1 90231 90231 132020 86564 90231

2 91217 91217 126044 87887 89013

3 91317 91317 134806 87987 89121

4 90698 91585 136490 87267 90170

5 92616 91677 157118 86372 90297

6 95838 93119 154887 85428 91829

7 96938 93235 153650 86063 91893

8 94949 93018 164709 97671 93551

9 93268 91995 - 87279 94174

10 97745 93561 - 88166 94531

11 95973 92368 - 86957 95186

12 129712 93780 - 87208 95285

13 116417 93915 - 87681 95276

14 114897 92474 - 76970 96406

15 113489 93842 - 90575 108790

16 115511 92634 - 88552 109467

17 105093 91410 - 90350 110440

18 111564 92018 - 90370 111502

19 108713 91129 - 90674 111802

20 111269 92846 - 90961 112075

21 114523 93713 - 91159 -

22 92993 94666 - -

23 117312 97930 - -

24 119920 98582 - -

25 107639 99234 - -

26 115170 99886 - -

27 118761 101502 - -

Page 133: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

122 Bijlagen

Kosten berekend via de VNS 2H heuristiek

iteratie TSSA GRASP VNS3H VNS2H ANTS

1 90462,76 90462,76 137920,3 90462,76 90462,76

2 91448,84 91448,84 139801,1 91448,84 90576,19

3 91548,84 91548,84 151101,1 91548,84 90689,45

4 90508,71 90508,71 151771,3 90508,71 91728,86

5 91930,08 90399,26 162227,5 89323,39 91840,74

6 90838,52 91840,13 167474,1 87997,39 93373,13

7 89702,14 91955,63 166464,3 88490,8 93423,94

8 89494,49 91748,17 165373,1 100447,5 95105,13

9 90082,28 92022,73 - 89355,95 95469,59

10 90521,02 92249,73 - 90446,97 95839,66

11 92174,71 91053,82 - 89259 96508,65

12 91250,88 92465,24 - 89407,7 96646,76

13 91415,03 92600,24 - 89857,34 96578,47

14 90252,9 91181,82 - 78871,73 96380,84

15 90343,91 92548,24 - 93112,3 108747,2

16 92143,92 91340,08 - 90490,73 109222,5

17 93980,91 90117,72 - 92581,97 110507,5

18 93592,82 90725,72 - 92555,03 111525,8

19 92895,24 89833,71 - 92857,07 111556,5

20 93048,98 91550,7 - 93154 111822,3

21 83015,69 94435,26 - 93271,45 -

22 92542,99 93361,94 - - -

23 94347,27 96625,96 - - -

24 96179,99 97277,96 - - -

25 95791,9 97929,96 - - -

26 92795,78 98581,96 - - -

27 93830,58 100197,9 - - -

Page 134: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

123 Bijlagen

Bijlage J: Instructie invoeren heuristieken Korte instructies uitvoeren IRPTW (TSSA) Heuristiek.

Openen data:

Ofwel de data importeren door “15klanten.mat” te importeren. Dit zijn de basisdata

waar de tekst mee uitgewerkt is. Het is uiteraard mogelijk om zelf deze data op te stellen.

De input leveringsperiode staat op nul omdat dit voorlopig buiten beschouwing gelaten

wordt.

De functie IRPTABU heeft dan volgende input nodig. (Dit moet eventueel aangepast

worden in de functie IRPTABU)

L1: …=IRPTABU(Data,p,capaciteit,n,BV,leveringsperiode,DemandPeriode,B,stream)

L21 &28 hier moet de “%”toegevoegd worden (of laten staan).

Ofwel zelf data genereren. Dit kan binnen de functie IRPTABU. De input van de functie is

dan beperkt tot p,capaciteit en Data. (Dit moet eventueel aangepast worden in de functie

IRPTABU)

L1: …=IRPTABU(Data,p) L21 &28 hier moet de “%” verwijdert worden.

p is het aantal periodes

Data zijn het aantal klanten met de bijhorende gegevens. Dit moet de structuur

hebben van een Solomon waarde. Dit moet dus een N x 6 matrix zijn. [N,1]: X-

coord.;[N,2]:Y-coord.;[N,3]:vraagwaarde (hierop is de vraag per periode

gebaseerd);[N,4]:begintijdsvenster in minuten;[N,5]: eindtijdsvenster in minuten;

[N,6]:servicetijd in minuten

capaciteit

Het programma wordt nu opgestart door IRPTABU(…-input-…) op te roepen.(Volgorde is hier

uiteraard van belang.)

De werking van het programma kan best gevolgd worden door het zetten van breakpoint of de

“step into” functie in de debug mode.

Page 135: Het Inventory Routing Probleem (IRP) met ...lib.ugent.be/fulltxt/RUG01/001/805/406/RUG01-001805406_2012_0001... · opname van pauzes in de route planning. Dit ... ordering three times

124 Bijlagen

Er zijn twee functies die de bestelhoeveelheid berekenen. Binnen deze functie kan men, indien

gewenst, het voorraadverloop beïnvloeden door de bestelde hoeveelheid te wijzigen. Deze staat

oorspronkelijk op DemandPeriode x 3 – de voorraad. Indien gewenst, kan dit ook maal 4,5,6,7,…

bepaald worden. Minder dan 3 is zeker niet aan te raden omdat het niet de bedoeling mag zijn dat

klanten zo snel na elkaar te leveren. (eventueel zou de paramater leveringsperiode hier kunnen

gebruikt worden. Per klant kan men dan een waarde geven voor een gewenste leverings ritme. Hoe

groter deze waarde, hoe meer de klant wil gebruik maken van voorraad. Stel leveringsperiode van 7,

dan zou een klant gemiddeld om de 7 periodes geleverd worden. Hier moet dan wel rekening mee

gehouden worden bij het bepalen van de maximale voorraad. Dit kan, maar is nog niet

geïmplementeerd vanwege illustratieve redenen. Bij het praktisch voorbeeld wordt het misschien

wel mogelijk om deze werkwijze te gebruiken.