Post on 13-Jul-2020
Ghent University Faculty of Engineering
Department of Industrial Management Chairman: Prof. Dr. Ir. R. VAN LANDEGHEM
Polytechnical University of Barcelona (UPC) Technical School for Industrial Engineering of Barcelona
Department of Organization of Enterprises Chairman: Prof. A. SALAMERO
MODELLING AND OPTIMIZING INVENTORY ROUTING PROBLEMS
WHEN SALES-POINTS IMPLEMENT ORDER-UP-TO INVENTORY POLICIES
by Lennert VAN GUYT
Promotor UGENT: Prof.Dr.Ir. E-H. AGHEZZAF Promotor UPC: Prof.Dr.Ir. M. MATEO
Thesis submitted in order to obtain the academic grade of Master in Mechanical Engineering Option Industrial Management
Academy Year 2005-2006
Ghent University Faculty of Engineering
Department of Industrial Management Chairman: Prof. Dr. Ir. R. VAN LANDEGHEM
Polytechnical University of Barcelona (UPC) Technical School for Industrial Engineering of Barcelona
Department of Organization of Enterprises Chairman: Prof. A. SALAMERO
MODELLING AND OPTIMIZING INVENTORY ROUTING PROBLEMS
WHEN SALES-POINTS IMPLEMENT ORDER-UP-TO INVENTORY POLICIES
by Lennert VAN GUYT
Promotor UGENT: Prof.Dr.Ir. E-H. AGHEZZAF Promotor UPC: Prof.Dr.Ir. M. MATEO
Thesis submitted in order to obtain the academic grade of Master in Mechanical Engineering Option Industrial Management
Academy Year 2005-2006
Preface As a foreign Erasmus exchange student at the Polytechnical University of Catalunya (UPC), I
would like to express my thanks to my promoter over there, Prof. Dr. Ir. Manel Mateo Doll.
Special thanks to my Ugent promotor, Prof. Dr. Ir. E-H. Aghezzaf for helping me with all my
questions and supporting me while finishing my master thesis in Ghent; to M.Sc. Ing. Birger
Raa for patiently answering my never-ending stream of questions; to my parents, who gave
me the opportunity to expand my horizons abroad; to Nicolas Libbrecht for helping me out
with both study and non-study related issues; to Bram De Laere, who gave unexpected
support; to all my friends and relatives that supported me the last year.
Lennert Van Guyt
Ghent, Belgium,
August 2006.
“The author gives the permission to make this thesis available for consultation and to
copy parts of the thesis for personal use.
Every other use is restricted by the copyright, in particular with regard to the obligation
of explicitly mentioning the source when quoting results of this thesis.”
Date Signature
Modelling and Optimizing Inventory Routing Problems when Sales-Points Implement Order-Up-To Inventory Policies
by Lennert VAN GUYT
Thesis submitted in order to obtain the academic grade of Master in Mechanical Engineering option Industrial Management Academy Year 2005-2006 Promotor UGENT: Prof. Dr. Ir. E-H. AGHEZZAF VANLANDEGHEM Promotor UPC: Prof.Dr.Ir. M. MATEO Ghent University Faculty of Engineering Department of Industrial Management Chairman: Prof. Dr. Ir. H. VANLANDEGHEM Polytechnical University of Catalunya Technical School for Industrial Engineering of Barcelona Department of Organization of Enterprises Chairman: Prof. Dr. Ir. Antonio SALAMERO
Abstract
Over the past several years, interest in logistics and supply chain management has grown rapidly. One of the issues researched intensively, is the Inventory Routing Problem: this is concerned with the distribution of a single product from one facility (e.g., a warehouse) to a set of n customers over a certain planning horizon. The objective is to determine a distribution plan that minimizes fleet operating and average total distribution and inventory holding cost with reducing the chance of a stock-out at any of the sales-points, during the planning horizon. This integrates inventory and distribution aspects in the same planning process. Aghezzaf et al. (2005) developed a model, solving the IRP, where the retailers experience a constant and deterministic demand. A remarkable property is that vehicles can perform multi-tours; this implies that a vehicle’s travel plan can contain more than one tour. We analyzed the performance of this model when some of the retailers experienced stochastic demand. Simulations yielded that the performance of this model was independent of the size of the logistic problem. However, the percentage of retailers with stochastic demand had an important impact on the performance, especially on the average cost rates per hour. Surprisingly, the fill rate, the percentage of total demand fulfilled, remained quite high in all problems considered. Therefore, a new strategy was developed, serving the two types of retailers independently: this is clearly a sub-optimization. This resulted in a possible smaller cost rate per hour, yet the difference with the result from the IRP model was smaller than expected. We could conclude that usage of the IRP problem for logistic systems with different types of retailers (stochastic and deterministic demand) yielded better results than expected. Keywords: Inventory Routing Problem; Supply Chain Management; EOQ; Order-up-to policy
Table of contents
1 INTRODUCTION .............................................................................................................1
2 INVENTORY MODELS..................................................................................................4 2.1 Deterministic demand .............................................................................................................................4
2.1.1 Infinite horizon (EOQ)..........................................................................................................................4 2.1.2 Finite horizon........................................................................................................................................6
2.2 Varying demands .............................................................................................................................................8 2.2.1 Wagner-Within model...........................................................................................................................8 2.2.2 Models with capacity constraints ........................................................................................................10
2.3 Stochastic inventory models..........................................................................................................................10 2.3.1 Newsvendor problem ..........................................................................................................................10 2.3.2 Finite horizon models..........................................................................................................................11 2.3.3 Infinite horizon models .......................................................................................................................13
2.3.3.1 Description ................................................................................................................................13 2.3.3.2 Algorithm ..................................................................................................................................15 2.3.3.3 Implementation of the algorithm...............................................................................................17
3 IRP MODEL ...................................................................................................................20
3.1 Introduction ...........................................................................................................................................20
3.2 A brief survey of solution approaches for the IRP..............................................................................20
3.3 Model for long-term IRP.......................................................................................................................22 3.3.1 Multi-tours ..........................................................................................................................................22 3.3.2 Mixed integer formulation of the problem and solution approach......................................................24 3.3.3 Performance analysis ..........................................................................................................................25
4 SIMULATION APPROACH.........................................................................................27
4.1 Introduction ...........................................................................................................................................27
4.2 Input of the IRP model ..........................................................................................................................27 4.2.1 Retailers withdeterministic demand (EOQ)........................................................................................29 4.2.2 Retailers with stochastic demand (Order-Up-To) ...............................................................................29
4.3 Output of the IRP model ...............................................................................................................................32
4.4 Performance measurements..........................................................................................................................36 4.4.1 Cost rates.............................................................................................................................................36 4.4.2 Service levels ......................................................................................................................................36
4.4.2.1 Service level based on stockout probability in a cycle (P1).......................................................37 4.4.2.2 Service level based on stockout probability in a cycle (P2) ......................................................37
4.4.3 Average time between stockout ..........................................................................................................37
4.5 Simulation method.........................................................................................................................................37 4.5.1 Parameters ..........................................................................................................................................37 4.5.2 Optimal distribution plan generated by the IRP model.......................................................................38
4.5.3 Retailer-dependent properties .............................................................................................................38 4.5.4 Results for the whole logistic system..................................................................................................42
5 SIMULATION RESULTS AND ANALYSIS ..............................................................45
5.1 Results ......................................................................................................................................................45 5.1.1 Small problems ...................................................................................................................................45
5.1.1.1 n=30 ..........................................................................................................................................45 5.1.1.2 n=39...........................................................................................................................................48 5.1.1.3 n=50 ..........................................................................................................................................49
5.1.2 Medium-sized problems .....................................................................................................................49 5.1.2.1 n= 67..........................................................................................................................................49 5.1.2.2 n= 81 .........................................................................................................................................50 5.1.2.3 n= 93 .........................................................................................................................................50
5.1.3 Large problems ...................................................................................................................................50 5.1.3.1 n=98...........................................................................................................................................51 5.1.3.2 n=110 ........................................................................................................................................51 5.1.3.3 n=120 ........................................................................................................................................52
5.2 Analysis ...................................................................................................................................................52 5.2.1 Cost rates ............................................................................................................................................52
5.2.1.1 Shortage costs............................................................................................................................52 5.2.1.2 Holding cost ..............................................................................................................................53 5.2.1.3 Total cost rate............................................................................................................................54
5.2.2 Servicelevel P1 ...................................................................................................................................55
5.3 Conclusion ..............................................................................................................................................56
6 IMPLEMENTING A DIFFERENT REPLENISHMENT STRATEGY...................57
6.1 Introduction ...........................................................................................................................................57
6.2 Costs associated with the new strategy ................................................................................................57 6.2.1 Deterministic demand.........................................................................................................................57 6.2.2 Stochastic demand...............................................................................................................................58
6.3 Diminishing the used fleet.....................................................................................................................60
7 CONCLUSION ...............................................................................................................62
APPENDIX A. PROPERTIES OF C(⋅,⋅) AND BOUNDS FOR(S*,S*) ............................................................63
APPENDIX B. CALCULATING THE OPTIMAL (S,S)-VALUES ...............................................................66
APPENDIX C. DISCUSSION CONSTRAINTS IRP-MODEL.......................................................................69
APPENDIX D. DATA-FILES FOR THE DIFFERENT LOGISTIC PROBLEMS ......................................70
APPENDIX E. VBA CODE FOR SIMULATION............................................................................................85
SOURCES ............................................................................................................................................................93
1
1 Introduction
Over the past several years, interests in logistics and supply chain management, both in
industry and academics, have grown rapidly. A number of forces have contributed to this
trend. Firstly, it has become clear that many enterprises already have achieved huge savings
by reducing their manufacturing costs as much as practically possible. However, many of
these companies are becoming aware of the magnitude of the extra savings that can be
achieved by planning and managing their supply chain more effectively. A remarkable
example in the US is Wal-Mart: a part of its success is attributed by the implementation of a
new logistics strategy called cross-docking. Another force is the implementation of
information and communication systems, which can provide access to data from all
components of the supply chain. In that perspective, the influence of the Internet (and
consequently E-commerce) on business practice has been immense. For instance, the Direct-
Business-Model utilized by leading companies such as Dell Computers and Amazon.com
enables customers to order products over the internet and thus allows companies to sell their
products without relying on third party distributors or conventional stores. Finally, the
deregulation of the transportation industry has led to the development of a variety of
transportation modes and reduces transportation costs, while significantly increasing the
complexity of logistics systems.
These developments have motivated the academic community to pursue researching supply
chain issues. Indeed, in the last five years, considerable progress has been made in the
analysis and solution of logistics and supply chain problems. One of the issues that has been
researched many times is the Inventory Routing Problem (IRP). This is concerned with the
distribution of a single product from one facility (e.g., a warehouse) to a set of n customers
over a certain planning horizon. The objective is to determine a distribution plan that
minimizes fleet operating and average total distribution and inventory holding cost with
reducing the chance of a stock-out at any of the sales-points, during the planning horizon.
This integrates inventory and distribution aspects in the same planning process.
This thesis will take a look at the performance of the IRP-model, proposed by Aghezzaf et
al.(2005), when some of the retailers implement an order-up-to strategy (OUP). The subject of
this thesis lies thus in the field of logistic management, defined by the Council of Logistics
Management as:
2
The process of planning, implementing and controlling the efficient, effective flow and storage
of goods, services and related information from point of origin to point of consumption for the
purpose of conforming to customer requirements.
The latter leads to several comments. Firstly, the definition suggests that we have to take into
account every facility that has an impact on cost: from suppliers and manufacturing facilities
through warehouses and distribution centres to retailers and stores. In our case we only
assume a two-echelon supply chain with a warehouse and multiple retailers. None of the
production steps will be taken into consideration in the cost calculation.
The second observation made from the definition, is that the objective of logistics
management is to be efficient and cost-effective across the entire system. This implies that not
the separate costs at the different facilities but the total system-wide costs are to be
minimized. Thus the emphasis is not on simply minimizing transportation costs or reducing
inventories, but rather on taking a system approach to logistics management. It means that we
are not only taking into account the costs of the supplier( transportation and handling costs),
but as well the inventory costs of the retailers.
Finally, we can classify logical decisions into three levels, of which the scope differ:
Strategic level: decisions that have a long-lasting effect on the firms, (e.g. the number
of locations and capacities of warehouses and manufacturing plants network
configuration)
Tactical level: decision that are updated anywhere between once every week, month ,
or once every quarter, (e.g. purchasing and production decisions, inventory policies,
and transportations strategies including the frequency with which customers are
visited).
Operational level: day-to-day decisions such as scheduling, routing and loading trucks.
In this thesis we will only be working on the tactical and operational level, as we assume
given network configurations.
This is an outline of the remainder of this thesis. The second chapter shows a brief survey of
relevant inventory models. We describe the IRP-model, developed by Aghezzaf et al., in
chapter three. The objective is then to examine the performance of this model on the long run,
3
when retailers with stochastic demand are implemented as well. This is evaluated by means of
simulation. The fourth chapter gives an insight into the tools that were utilized during
simulation. In chapter 5, we discuss their results. Then, in chapter 6, we try to diminish the
long run average cost by implementing a new replenishment strategy. Finally, we end with a
conclusion.
4
2 Inventory models
This chapter is devoted to a brief survey of the most relevant types of inventory models
utilized in business processes. Only independent-demand inventories are considered: the
demand of these products is only subject to market forces and independent of operations. On
the contrary, dependent demand inventories, such as work-in-process inventory or raw-
material inventories, have dependent demand of operations! These inventories are controlled
by materials requirements planning systems (MRP) which support the planning and control of
inventories and capacity in manufacturing companies. Because the manufacturing processes
lie beyond our scope, we will not consider these type of inventories.
2.1 Deterministic demand In these models demands are assumed to be constant and deterministic. The problem of
finding the optimal order quantity has been reduced to balancing the ordering and holding
costs. 2.1.1 Infinite horizon (EOQ) This model has been introduced in 1915 (by Harris) and it attends to the trade-offs between
ordering and holding costs. (Fig.1)
Fig.1. Trade-off between ordering and holding cost.
We consider a supply chain, containing a warehouse that faces a constant demand for a single
item. The warehouse itself places orders for the item from another facility in the distribution
network, which is assumed to have an unlimited quantity of the product. We make the
following assumptions:
5
The demand is constant: D items/unit time
A fixed order quantity: Q items/order
A fixed set-up cost K: paid every time the warehouse places an order
An inventory holding cost h is being charged for every unit held in inventory per unit
time
The lead time, the time that elapses between the placement of an order an its receipt, is
zero
No initial inventory
The planning horizon is infinite
The objective now is to find the optimal ordering policy minimizing total ordering and
holding cost per unit of time. It is important to notice that this should happen without stock-
outs. In this case, any optimal ordering policy must satisfy the Zero Inventory Ordering
Property, which states that every order is received precisely when the inventory level drops
to zero. In order to determine the optimal ordering policy, we consider the inventory level as a
function of time (see Fig. 2). This type of function is a saw-toothed inventory pattern. We
define the cycle time T as the time between two successive replenishments.
Fig.2. Saw-toothed pattern of the inventory level.
Thus, total inventory cost in a cycle of length T is:
6
2hTQK +
And because Q= TD, the average total cost per unit of time is:
2hQ
QKD
+
Hence , the Economic Order Quantity (EOQ):
hKDQ 2* =
This is the ordering quantity at which inventory set-up cost per unit of time (KD/Q) equals
inventory holding cost per unit of time (hQ/2). Of course, because of all the assumptions, this
model is not very realistic. However, it is still one of the most used inventory policies in
business. The retailers considered in the IRP-model discussed later on, are assumed having an
EOQ-inventory model. To make this model more realistic, we should be able to lose some of
the assumptions made above. It can be shown very easily how some of the assumptions can
be relaxed, without losing any of the simplicity of the model. For instance, consider the initial
inventory to be positive, at level I0; in this case the first order for Q* items is simply delayed
until time I0/D. Further, the assumption of zero lead time can also easily be relaxed. In fact,
the model can handle any deterministic lead time L. To do this, simply place an order for Q*
items when the inventory level is D*L. On the other hand, relaxing the assumptions of fixed
demands and infinite planning horizon requires significant changes to the above solution. We
discuss these cases in the following paragraphs.
2.1.2 Finite horizon In order to make the model from the previous paragraph more realistic, we start working with
a finite horizon, say t. This horizon could, for example, represent the winter season in the
retail industry, in which the demand for the product might be assumed to be constant and
known. Another assumption that we relax, is the one that states that order quantities should be
fixed. The objective is to find an inventory policy that minimizes ordering and holding cost on
the interval [0,t].
In order to do so, consider any policy, say P, that places 1≥m orders in the interval [0,t]. It is
easy to see that the first order should be placed in the beginning and the last must be placed so
that the inventory at time t is zero. Figure 3 illustrates such a P-policy. For any i,
7
11 −≤≤ mi , let Ti be the time between the placement of the ith order and the (i+1)th order and
let Tm be the time between the placement of the last order and t. Thus, by definition,
∑ ==
m
i iTt1
and P places the jth order at time
∑ =
j
t iT1
, for mj ≤≤1 .
Fig. 3. Evolution of the inventory level implementing a P-policy.
Again, it is clear that the policy P must satisfy the Zero Inventory Ordering Property. For the
policy P, let I(τ) be the inventory level at time τ ∈[0,t] . Thus, the total cost per unit of time
for this policy becomes
ττ dhKmt
t
∫ )+0
I([1]
The only thing known about the function I(τ) is that it declines at a rate of D ( slope of D)
between orders and reaches zero exactly m times. Consequently, we can express the total
inventory of the entire horizon as a function of the time between orders {Ti}i=1…m as follows:
∑∑==
=m
ii
m
i
ii TDDTT1
2
1 22.
Thus, if m orders are placed we can find the best times to place them by solving:
Min{ miTtTT i
m
ii
m
ii ,...,2,1,0,
11
2 =∀≥=∑∑==
}
8
The optimal solution is Ti = mt for each i= 1,2,…,m. Hence, an optimal policy must have the
following property:
For a problem with one product over the interval [0,t], the inventory policy with minimum
cost that places m orders is achieved by placing orders of equal size at equally spaced points
in time.
This implies that total purchasing and carrying cost per unit time associated with P is at least
mhDt
tKm
2+
Consequently, by selecting the value of m that minimizes this value we can construct a policy
of minimal cost. Let
KhDt2
=α
And thus the best value of m is either α or α , which yields smaller cost. So in this case of
finite horizon we place orders at regularly spaced intervals of time, and these orders are of
same size each time.
2.2 Varying demands The previous paragraphs have focused on situations where demand was both known in
advance and constant over time. This paragraph will work with retailers where demand is
known in advance, yet varies with time. This could happen, for example, if orders have been
placed in advance. In this case, the horizon is determined by the periods where demands are
known. Just as in the previous paragraphs we will be working with single item models.
2.2.1 Wagner-Within model The problem comes down to planning a sequence of orders over a T period planning horizon.
Thus, every period we should decide about the size of the order. The following assumptions
are made:
Demand during period t is known and is denoted dt>0
The per unit order cost is c and a fixed order cost K is incurred every time an order is
placed; that is, if y units are ordered, the order cost is cy+ Kδ(y)
The holding cost is h>0 per unit per period
9
Initial inventory is zero.
Lead-times are zero; that is, an order arrives as soon as it is placed
All ordering and demand occurs at the start of the period. Inventory is charged on the
amount on hand at the end of the period.
The optimal policy states how much to order in each period so that demands are met without
backlogging and the total cost, including the cost of ordering and holding inventory, is
minimized. This basic model was first analyzed by Wagner and Whitin (1958) and has now
been called the Wagner-Whitin model. The problem can be formulated as follows:
Problem WW: ( )[ ]∑=
+T
ttt hIyKMin
1δ
s.t.
tttt dyII −+= −1 , t=1,2,…,T.
TtyI
I
tt ,...,2,1,0,00
=≥=
With yt the amount to be ordered in period t, and It be the amount of product in inventory at
the end of period T. Wagner and Whiterin stated that any optimal policy is a zero-inventory
ordering policy, that is, a policy in which
.,...,2,1,01 TtIy tt ==−
Consequently, ordering only occurs when inventory is zero. This implies that in an optimal
policy an order is of size equal to satisfy demands for an integer number of subsequent
periods. Using this property, they developed a dynamic programming algorithm to determine
those periods when ordering takes place: by constructing a simple acyclic network with nodes
}1,...,2,1{ += TV , we can view the problem of determining a policy as a shortest path
problem. Formally, let lij, the length of arc (i,j) in this network, be the cost of ordering in
period i to satisfy the demands in periods i,i+1,….,j-1, for all 11 +≤≤≤ Tji .
That is,
∑−
=
−+=1
)(j
ikkij dikhKl
All other arcs have lij = ∞+ . The length of the shortest path from node 1 to node T+1 in this
acyclic network is the minimal cost of satisfying the demands for periods 1 through T. The
optimal policy, that is a specification of the periods in which an order is placed, can be easily
10
reconstructed from the shortest path itself. Again, by relaxing some assumptions, we could
make this model more realistic. For example, if we assume that lead-times are greater than
one and known in advance. In that case order required in period t would be ordered in period
t-L, with L the lead-time.
2.2.2 Models with capacity constraints An important generalization of the Wagner-Within model is the inclusion of upper bounds on
the amount that can be ordered in a given period. This implies adding the following
constraints to problem WW:
.,...,2,1, TtCy tt =≤
with tC 0≥ the maximum amount that can be ordered in period t.
This problem has been approached in different ways, including a dynamic programming
approach by and a branch and bound algorithm.
2.3 Stochastic inventory models Until now all the inventory models considered were deterministic in nature; demand is
assumed to be known. However, for many logistic systems, it is not possible to make this
assumption; typically, demand is a random variable whose distribution may be known.
2.3.1 Newsvendor problem This model only takes into account one period and is mostly used for companies that sell
seasonal products, for example a company in the retailing industry sells summer fashion
items. The decision about the ordering quantities has to be made a few months before the
‘selling’ season. Because they do not know how the response to there new products will be,
these decisions are mostly based on the sales of previous years, the current economic
conditions and professional judgement.
The demand D for each new product is randomly distributed, generated from a distribution
with continuous cumulative distribution function F(⋅). Because of the randomness of the
demand, the quantity of units to order is calculated by using the expected cost z(y), which is a
function of the amount purchased y:
11
z(y)= cy-rE[min(y,D)]-vE[max(0,y-D)] for ,0≥y
where c is the variable purchase cost, r the selling price per unit, v the salvage value per unit
and E() the expectation (with r>c>v). The objective is to choose y so that the expected cost
z(y) would be minimized, which implies that the optimal production quantity S should satisfy
Pr{D ≤ S}=vrcr
−− .
This problem is called the newsboy/newsvendor problem.
In this analysis we have used three assumptions:
No initial inventory
No fixed ordering cost
Backorders are not supplied
If we relax the first two assumptions, we observe that the expected cost of ordering (y-y0)
units is
)(0 yzcyK +−
with y0 the initial inventory and K the fixed ordering cost. Hence, S clearly minimizes this
expected cost if we decide to order. So, there are two cases to consider:
• If y0 S≥ , we should not produce anything
• If Sy ≤0 , the best we can do is to raise the inventory level to S. However, this is
optimal only if –cy0+z(y0), the cost associated with not producing anything, is larger
than or equals K-cy0+z(S), the cost associated with producing S-y0. That is , if y0<S, it
is optimal to produce S-y0 only if z(y0) ≥ K +z(S).
Assume s to be a number such that
z(s)=K+ z(S)
This implies that the optimal policy is as follows:
Order S-y0 if the initial inventory level y0 is at or below s, otherwise do not order.
This type of policy is called an (s,S) policy, with S the order-up-to level and s the reorder
point.
2.3.2 Finite horizon models Here we extend the previous model to a multi-period (T periods) inventory problem. At the
beginning of each period (e.g. month or week), the inventory level of a product is noted.
12
Consequently, it is possible to place on order to increase the inventory level to a certain level.
In this paragraph we make the following assumptions:
No lead-time
Demands for successive periods are independent and follow the same distribution
If the demand exceeds the inventory on hand, the ‘unsupplied’ demand is backlogged
and filled when more inventories becomes available. Backlogged units are thus
viewed as negative inventory.
Unfulfilled demand at the end of the final period can be backlogged at cost c
All remaining inventory left at the final period is salvaged, at the same price c
These assumptions make sure that the expected revenue per period is a constant. Therefore we
will not include this term in the following formulations any more. The objective is to find an
inventory policy that minimizes the cost over T periods. This policy (st,St) is similar to the
(s,S) policy described earlier, except that the two determining parameters may vary from
period to period. The costs consist of:
• Holding cost: there is a holding cost h+ for each unit of product in stock at the end of a
period
• Shortage cost of h- per unit when demand exceeds the inventory
• Ordering cost: a set-up cost K, paid every time the company places an order , and a
proportional purchase cost c
Let yt be the inventory level at the start of period t (before possible ordering). If the inventory
level after ordering is y, then the expected backlog penalty and holding cost for that period is
)()0,max()()0,max()( DdFyDhDdFDyhyGDD∫∫ −+−= −+ , (1)
which is called a one-period loss-function: this function is convex. Considering a policy
Y=(y1,y2,…,yT), where yt are the order-up-to levels (random variables) of period t, the sum of
the total expected proportional purchasing cost and salvage value ∑P becomes
−−−=∑ ∑
=
T
tT
Tt
t DycyycEP1
)()( ,
where Dt is the occurring demand in period t. Because tt
t Dyy −=+1 , the former equation
transforms to
[ ]DcTEP =∑
13
The latter expression shows that P∑ is independent of the used ordering policy, so we can
leave the linear ordering cost component out of the formulation. This observation is quite
intuitive, because all backlogged demand is filled at the end of the last period, while all
remaining inventory left at this period is salvaged, both at the same price c.
To obtain the optimal policy for this model, a dynamic programming formulation has been
developed. Therefore, we define the following two expected cost functions. Let Gt(yt) be the
expected cost for the remaining T-t+1 periods if we do not order in period t and act optimally
in the remaining T-t periods. Let zt(yt) be the minimal expected cost through the remaining T-
t+1 periods if we act optimally in period t and all the remaining T-t periods.
Then it follows that for t=1,…,T,
)()(z)G(y )(yGD
1ttt
t DdFDyt −+= ∫ + ,
tyytt Minyz ≥=)( {K )()( yGyy t
t +−δ }
Where )(xδ is 1 if x>0 and it is 0 otherwise. Note that if we order up to the level y>yt in
period t, the cost for the final T-t+1 periods is K+Gt(y). These two functions are not convex
and may even have many local minima. Veinott (1966) offered a proof for the optimality of
(st,St)-policies under the assumption that –G(y) is unimodal or G(y) is quasiconvex.
So far, we made the assumption that demands are identically distributed and the cost
parameters, c, h- and h+ are time-independent. These can be easily relaxed, and an (s,S) policy
will still be optimal.
2.3.3 Infinite horizon models
2.3.3.1 Description
We consider a discrete time inventory system in which an order can be placed with an outside
supplier at the beginning of each period. We make the assumption that one-period demands
are integer valued and as a consequence, the inventory levels are discrete. Let this discrete
distribution pj=Pr{D=j} (for j=0,1,2,…) be the one-period demand. The objective is to
minimize the long-run expected costs over an infinite horizon. All other assumptions and
notations are identical to those of the previous paragraphs.
Veinott has shown that if
-G(⋅) is unimodal and
Lim y−>∞ G(y) > min y G(y) + K
14
an (s,S) policy is optimal when minimizing long-run average costs over an infinite horizon.
From now on we assume these latter conditions. In the following paragraph we discuss an
algorithm for computing these (s,S) levels. First, however, we define the notation and give a
description of the model.
The following expression for the long-run average cost c(s,S) of a given (s,S)-policy is well
known and given by
c(s,S)=M(S-s)K + )()(1
0jSGjm
sS
j−∑
−−
=
(2)
where
m(0)=(1-p0)-1, M(0)=0 (3a)
m(j) = ( )ljmpj
ll −∑
=0, j = 1,2,… (3b)
and
M(j) = M(j-1) + m(j-1), j = 1,2,… (3c)
Let M(j) be the expected total time until the next order is placed when starting with an
inventory position of respectively s+j units. That is, M(j) is the expected number of periods
until total demand is no less than j units. Then m(j), equal to M(j+1)-M(j) corresponds to the
expected number of periods, prior to placing the next order, for which the inventory level is
exactly S-j. It is obvious that for all j we have
M(j)= [ ] ∑∑∞
+==
+−+10
)(1jk
k
j
kk pkjMp
= ( ) 10
+−∑∞
=
kjMpk
k ,
with M(j)=0 for j .0≤ Consequently,
M(j)= ( ) 11
0+−∑
−
=
kjMpj
kk . (4)
Let ),( ysK be the expected total cost in all periods until placing the next order, when we start
with y units of inventory. Every time we order, it is ‘delivered’ instantly, and the inventory
15
level increases to S. Thus, replenishment times can be viewed as regeneration points. The
theory of regenerative processes tells us that
)(
),(),(sSM
SskSsc−
= (5)
With c(s,S) the long run average cost, that equals the ratio of the expected cost between
successive regeneration points and the expected time between successive regeneration points.
Fix s. To find M(S-s) we can calculate the recursive equation (3). It has been shown that
k(s, ⋅) satisfies the follow discrete equation
k(s,y) = G(y) + K ∑∞
−= syjjp + ( )jyskp
sy
jj −∑
−−
=
,1
0 y>s
and with (1)
k(s,y) = K + ∑−−
=
−1
0)()(
sy
jjygjm y>s
Following from the formulas above, we can redefine k(s,S) as
),(),( SsHKSsk += ,
with H(s,y) the expected holding and shortage cost until placing the next order, when starting
with y units of inventory. The algorithm for computing the optimal (s,S)-levels is shown in
the next paragraph.
2.3.3.2 Algorithm
In this paragraph, we present an algorithm for computing the optimal (s,S)-levels, developed
by Federgruen and Zheng (1990). Earlier, these types of algorithms were considered to be
expensive. This came from the general perception that the policy cost function is, in general,
ill behaved, implying that all possible combinations {(s,S) with s<S} needed to be evaluated.
The first to eradicate this myth were Federgruen and Zipkin (1984): they used a method based
upon an adaptation of the general policy-iteration method for solving Markov-decision
problems, where the special structure of (s,S) policies was exploited in several ways. The
algorithm we are going to use, provides for an efficient search of the optimal reorder levels
and order-up-to levels s* and S* in the (s,S) plane itself. This search is based on a number of
properties of the cost function c(s,S) and tight lower and upper bounds for s* and S*. First we
explain the algorithm theoretically, later we show how this was implemented practically.
16
The lemmas and corollaries of Appendix A suggest the algorithm shown in Fig. 4. Let y* be
the minimum of the G(⋅) function.
Fig.4. Pseudo-code for the algorithm.
We will discuss the algorithm shortly. In Step 0, we start with an initial order-up-to level S0=
y*, with y* an arbitrary minimum of the G(⋅) function. Further on, we obtain a corresponding
optimal reorder level s0 by decreasing s from y* with step size 1 until c(s, S0) ≤ G(s). This
optimality follows from Corollary 1 in Appendix A. In step 1, we search for the smallest
value of S that is larger than S0, which improves on S0. S is incremented with step size 1. To
verify whether a certain value for S improves on S0, we make a single comparison of c(s0, S)
and c(s0, S0). If it does, S0 is updated to S and the new corresponding optimal reorder level s0
is acquired by incrementing the old value of s0 by units of one, as long as c(s, S0) ≤ G(s+1).
The existence of such a reorder level s0, its optimality (for S0) and the fact that s0< y*, are all
guaranteed by Lemma3b in Appendix B. Finally, note that whenever Step 1 is initiated, c0 is
the best available upperbound for c*. Following from Lemma 2c (Appendix B), the search for
an improving value of S may be terminated as soon as G(S)> c0. At the last iteration of the
algorithm, when S0= S* and s0= s* for some optimal policy (s*, S*), we have c0= c* and S0 ≤ −
S *. It follows that the test in the outer while-do loop of Step 1 fails when S:= −
S * + 1.
Consider a two-dimensional integer grid with s on the horizontal axis and S on the vertical
one. Then, every point (s,S) on the grid represents a policy. Denote s0 as the value of s
17
obtained at the end of Step 0. Then we can view Step 1 as going through a vertically-up and
horizontally right path starting from (s0, y*) and ending at (s*, −
S *); see Figure 5 and the
previous observations.
Fig.5. Path for searching the optimal (s,S)-strategy in the grid.
2.3.3.3 Implementation of the algorithm
In order to execute the algorithm, we make use of a tool developed in Excel (Fig.6). In the
following chapters we consider a (continuous) demand that is generated by a stochastic
process. The algorithm only works with discrete distributions; this is solved by generating the
demand by means of Monte Carlo simulation and using those results in a histogram. Recall
that the algorithm uses the G(⋅) and the c(s,S) functions, defined in equation (1) and (5). We
obtain the values of G(⋅) by executing the VBA-code exhibited in Appendix B: this function
describes the expected holding and shorting cost for one period. Furthermore, we have to
calculate the functions m(j) and M(j) as well: these are functions of the discrete demand
probabilities that we generated earlier (Appendix B).
18
Fig.6. Tool in excel that calculates the optimal (s,S)-level. Having evaluated the previous functions, it is easy to calculate the k(s,⋅) function.
Consequently, we can calculate the long run average cost function c as well. The optimal
combination of reorder-point s and order-level S can then be determined by means of the
algorithm: the implementation in VBA is exhibited in Table 1. Finally, this algorithm yields
the combination of s and S with the minimum average cost c(s,S).
Generating demand
Histogram
G(y),m(j) and M(j)
s, S and c(s,S)
Fixed ordering cost
19
Table 1. Implementation of the algorithm to search the optimal (s,S)-values in VBA
Sub orderlevels() orderpoint = Range("yster").Value orderlevel = Range("yster").Value Do orderpoint = orderpoint - 1 bestcost = cost(orderpoint, orderlevel) Loop Until bestcost <= Range("Loss_function")(orderpoint + 1, 1).Value S = orderlevel + 1 Do While Range("Loss_function")(S + 1, 1).Value <= bestcost If cost(orderpoint, S) < bestcost Then orderlevel = S newcost = cost(orderpoint, S) Do While newcost <= Range("Loss_function")(orderpoint + 2, 1).Value orderpoint = orderpoint + 1 newcost = cost(orderpoint, S) Loop bestcost = newcost End If S = S + 1 Loop Range("orderpoint") = orderpoint Range("orderlevel") = orderlevel End Sub
20
3 IRP Model 3.1 Introduction
The Inventory Routing Problem is concerned with the distribution of a single product from
one facility (e.g., a warehouse) to a set of n customers over a certain planning horizon. These
retailers consume the product at a given rate and are served by a fleet of homogeneous
vehicles with restricted capacity. The objective is to determine a distribution plan that
minimizes fleet operating and average total distribution and inventory holding cost with
reducing the chance of a stock-out at any of the sales-points, during the planning horizon. It
implies coordinating inventory replenishment policies and distribution plans in a cost
effective manner. More precisely, it integrates inventory and distribution aspects in the same
planning process.
Aghezzaf et al. (2005) formulated a new model for the long-term IRP when demand rates are
stable and EOQ-like policies are used by the retailers. In this model, multi-tours were used:
this means that a vehicle’s travel plan can contain more than one tour. To solve this model, a
column generation based approximation method was suggested. The resulting sub-problems
were solved using a savings-based approximation method. In Chapter 5 we investigate how
the model performs if we include retailers with stochastic demand. Later on, suggestions will
be made to be able to cope better with this type of retailers in this model.
3.2 A brief survey of solution approaches for the IRP This sub-section is dedicated to a short survey of relevant models and solution approaches
that have been used in the research for IRP problems. We can distinguish IRP models and
their approaches by virtue of the inventory policies used at the sales-points, the service level
restrictions, and the time horizon considered. A popular classification is the following:
Single-period models with stochastic demand
Multi-period models with deterministic demand
Infinite-horizon models with deterministic demand
An example of the first type can be found in Federgruen and Zipkin (1984). They were among
the first to do research on integration of inventory management and routing problems.
Consider a plant with a limited amount of available inventory serving a set of retailers with
21
stochastic demand. The objective was to allocate the available inventory at the warehouse in
such a way that total transportation, inventory and shortage costs at the end of that period
were minimized. They solved this problem, which they modelled as a nonlinear mixed integer
program, with an approximation method. Their approach starts with an initial assignment of
sales-points to routes. From this moment, the problem can be split into an inventory allocation
problem (that determines inventory and shortage costs) and into a Travelling Salesman
Problem (TSP) for each vehicle (that determines transportation costs). This feasible solution
is then iteratively improved by exchanging customers between routes.
The models corresponding to the second type are the closest to the one we describe in the
following paragraphs (Aghezzaf et al. 2005) and that will be tested in the following chapters,
in terms of planning horizon and assumption on demand rates. For instance, Larson (1988)
distinguishes two Inventory/Routing problems: the strategic and tactical IRP. The strategic
IRP estimates the long-term minimum size of the vehicle fleet required to serve the sales-
points. The tactical IRP deals with routing an existing vehicle fleet to serve sales-points
whose actual demands for replenishment could be estimated. The model assigns sales-points
to specific clusters and assumes that all replenishments are made on a single route visiting all
sales-points in a cluster. Consequently, some sales-points are visited more frequently then
required. This inefficiency was corrected by Webb and Larson (1995), using a period/phase
approach.
Finally, in the infinite-horizon models with deterministic demand the product is absorbed by
each retailer at a given constant rate and the problem is to determine an infinite-horizon
shipping policy that minimizes the sum of inventory and vehicle-routing costs. An example of
such type of model can be found in Anily and Federgruen (1990). The routing patterns are
determined using a partitioning scheme of the retailers. The objective is to divide the sales-
points within a partition into regions so as to make demand of each region to match the
vehicle capacity. In the same line of thought, Gallego and Simchi-Levi analyzed a direct
shipping warehouse/ multi-sales-point distribution system with constant and deterministic
demand: they concluded that direct shipping becomes a bad policy when many customers
require significantly less than a truckload. This is quite intuitive.
The model proposed in Aghezzaf et al. (2005) and described more detailed in the next
paragraphs, is a more effective model for the problem in which the concept of ‘multi-tours’ is
introduced. This leads to drastic diminution of fleet fixed costs and size .
22
3.3 Model for long-term IRP In this paragraph we describe the model formulated by Aghezzaf et al. (2005). First we
explain the concept of multi-tours, then we introduce the mixed integer formulation and the
solution approach and finally we discuss the performance analysis.
The model creates a cyclical distribution plan of a single product distributed from a single
distribution center r to a set of retailers (sale-points) S. These sales-points are served by an
assigned vehicle and in such a way stock-outs are being avoided. Each sales-point i∈S
consumes the product at a known rate of di (in units/hour) and utilizes an EOQ-like policy. It
is assumed that these retailers can maintain a local inventory. For the distribution of the
product to the different clients, a fleet of homogeneous vehicles V, with capacityκ , is being
used. The objective is minimizing the expected distribution and inventory costs during the
planning horizon, avoiding stock-outs at any of the retailers.
In a later stage of the thesis, we will incorporate sales-points with stochastic demand in the
model; i.e. retailers for which the order-up-to strategy would be the optimal inventory
strategy. To be able to execute the model when using these types of retailers, we use the
average of their demand distributions. Because the sales-points with order-up-to policies do
not have stable demand rates, stock-outs can occur. The purpose of the following chapters is
to look how this affects inventory and distribution costs, if we leave the model unmodified.
This will be monitored and evaluated by means of simulation. The final step then is to
propose a new strategy, that can cope better with retailers with different inventory policies,
i.e. EOQ and Order-up-to.
3.3.1 Multi-tours The concept of vehicle multi-tours implies that a vehicle’s travel plan can contain more than
one tour; the vehicle leaves the distribution centre to replenish a set of sales-points in a first
tour, returns to the distribution centre to be reloaded and then leaves again to replenish a
different set of sales-points in a different tour.
In this model vehicles are considered to have a limited capacity К and to be travelling at an
average speed v. Each of them replenishes a set of sales-points C in a cyclical manner. If the
vehicle only makes one tour through the distribution centre and his set of sales-points, then
the most cost-effective way to supply these sales-points, in terms of transportation costs, is to
travel along the TSP-tour (Travelling Salesman Problem). The cycle time T(C), the time
23
between two consecutive iterations of the tour, is bounded from below by the travel time of
the TSP-tour (Tmin) and bounded upwards by the limited vehicle capacity (Tmax). To avoid
stock-outs at the retailers, the vehicle should deliver qi=di⋅t* if T(C) equals ∗t . However,
because of the limited capacity of each vehicle, the load ∑∈Ci
iq can be at most the capacityκ .
Hence, the maximal cycle time equals∑∈
=
Ciid
T κmax .
The condition for a tour to be feasible is that )()( maxmin CTCT ≤ . Another possibility would be
replenishing the set of sales-points C by making multiple tour through disjoint subsets C1,
C2,…, Cm. If so, )(...1
minmin imi
CTT ∑=
= and { })(min)( max....1max imi cTCT == .
Fig.7. Example with seven sales-points.
The following example (see Fig.7) shows how savings, in term of fleet utilization, can be
achieved when working with multi-tours instead of single tours. The logistic system consists
of seven retailers, with their demand rate shown in the figure, served by vehicles with a
capacity of 100 ton. The total demand rate equals 10 ton/hour. The TSP-tour through the
seven sales-points and the DC (Fig.8(a)) gives an infeasible solution: the minimal cycle time
is 11.5 hours, while the maximal cycle time is smaller, namely 10 hours (100/10). A feasible
solution can be found if we allow a vehicle to make multiple tours. The multi-tour shown in
Fig.8 (b) has two tours, where the left tour has Tmin= 8 hours and Tmax=16.67 hours while the
right tour has Tmin= 4 hours and Tmax=25 hours. Consequently the minimal cycle time of the
multi-tour is 4 + 8 = 12hrs and the maximal cycle time is min(16.67,25)=16.67hrs. This
means that this multi-tour is feasible and only one vehicle is needed.
24
.
Fig.8. An infeasible tour and a feasible multi-tour.
3.3.2 Mixed integer formulation of the problem and solution approach In order to define the objective function to be minimized, we consider four cost components
for each multi-tour. The first cost component is the fixed operation cost of the vehicle ψ (in
€/hr). A second cost component is the transportation cost. Let δ be the travel cost per km.
Then, the transportation cost can be expressed as δ ⋅ Tmin⋅ v per iteration of the multi-tour,
because the vehicle travels Tmin(C) hours per cycle at a velocity of v km/hr. The third cost
component is the delivery handling cost at the retailers, defined by ∑∈Ci
iϕ per cycle, with iϕ
the cost per delivery at sales-point i. The last component consists of the stock holding cost:
the quantity delivered at every sales-point i is given by qi=di⋅T(C), and is just enough to cover
demand until the next delivery. Thus, stock holding cost per cycle at sales-point i is given by
ηi ⋅ qi ⋅T(C)/2, with ηi the holding cost per ton per hour. For the total stock holding cost per
multi-tour we have to add the costs of the different retailers. In order to calculate cost rates
per hour we have to divide the cost rates per multi-tour by T(C).
The cost rate of a multi-tour is then
Because the multi-tour cost rate varies with its cycle time, there exists a theoretical optimal
cycle time for which cost rate is minimized. This is an extension of the EOQ-model, as
described in Chapter 2. Just as in this model we can obtain the optimal policy (cycle time) by
balancing the holding costs with the sum of delivery handling costs at the sales-points and
transportation costs. This optimal cycle time looks like this:
25
If this theoretical optimal cycle time turns out to be greater than the maximal cycle time or
smaller than the minimal cycle time, it is not actually feasible. In this case, the effective
optimal cycle time has to be chosen as close as possible to the theoretical one, respecting the
boundaries set by the minimal an maximal cycle time. Otherwise, if the theoretical optimal
value falls between these boundaries, it is chosen as the actual optimal cycle time.
We present the assumptions made when developing the model:
The supplier has an infinite stock
Time for loading and unloading vehicles relatively small and is not taken into account
(no cost attached)
Inventory capacity at the sales-point is large enough
Transportation costs are proportional to travel times
The length of a trip from sales point i ∈S+ }{rS ∪= to sales-point J∈S+ will be denoted by tij
(in kilometres). The model variables are shown in Fig.9 and the nonlinear mixed formulation
in Fig.10.
Fig.9. The model variables.
For a more detailed description of the constraints, see Appendix C. To solve the problem in
Fig.10, an approximation algorithm, based on a column generation process was proposed. The
multi-tour generater used in this method is an extension of the savings-based heuristic that is
used to solve the VRP.
3.3.3 Performance analysis They observed that their model leads to drastic savings in terms of fleet operating costs (up to
50%), since the model reduces the size of required fleet to serve all retailers. In delivery costs
rates, important average savings were realized as well. In transportation costs, however, only
26
small average savings could be noted. Surprisingly, the number of sales-points and the vehicle
capacity did not have an important impact on average savings. The geographical distribution
however, did: if the retailers were clustered, the savings increased.
Fig.10. The initial nonlinear mixed integer formulation of the IRP.
27
4 Simulation approach
4.1 Introduction As in the previous chapter, we consider a distribution problem in which a warehouse (with
infinite stock) distributes a single product to several retailers: the deliveries are performed by
a fleet of homogeneous vehicles with limited capacity. The model developed by Aghezzaf et
al. (2005) assumed known and deterministic demand rates for every sales-point, using EOQ-
like policies. This time however we will also encounter sales-points, for which the optimal
inventory lies within the class of the (s,S) policies.
One of the objectives of this thesis is to analyze the performance of the IRP model when
implementing these types of sales-points. We use two critical factors to test the effectiveness
of the model. The first one reflects the impact of the percentage of sales-points experiencing
stochastic demand on the different types of cost rates. The percentage of order-up-to retailers
examined varies from 0% to 50% : it is quite intuitive to see that if more then half of the
retailers implement order-up-to strategies, the model, designed for EOQ-policies, would not
be appropriate at all. The other factor reflects the influence of the number of sales-points on
the cost rate. We examined nine problems, with size varying from small (30) to large (120).
The simulations and their analysis are elaborated in Chapter 5.
The following is an outline of the remainder of this chapter. In the second paragraph, we
describe how to define the input data for the IRP model. Paragraph 3 discusses the output of
the model. Paragraph 4 gives a description of the different performance measurements to be
evaluated during simulation. Finally, in paragraph 5, we give more insight into the tools used
during the execution of the simulations.
4.2 Input of the IRP model When running the IRP model in order to obtain the optimal distribution plan, the data of the
problem considered is inserted in the model by means of a dat-file: Table 2 shows an extract
of such a file. The data of all the problems examined can be found in Appendix D.
28
Table 2. Extract of a dat file Capacity Speed FixedCost VarCost Vehicle
50 50 30 1
Depot X Y delTime delCost
DC 150 150 0.5 20
Name X Y demRate delTime delCost holdCost
1 131 127 0.375 0.25 10 0.1
2 53 105 0.325 0.25 10 0.1
3 209 234 1 0.25 10 0.1
4 214 107 1.175 0.25 10 0.1
5 227 136 1.125 0.25 10 0.1
6 125 213 0.9 0.25 10 0.1
7 136 63 0.075 0.25 10 0.1
8 183 7 0.65 0.25 10 0.1
9 113 139 1.125 0.25 10 0.1
In this table we define the following parameters:
Capacity: the limited capacity of the vehicles serving the sales-points (in tons)
Speed: the average value of the vehicle speed (in km/h)
FixedCost: the fixed operational cost of a vehicle (in €/hr)
Varcost: the travel cost per kilometre of a vehicle (in €/km)
DC: this represents the warehouse
X,Y: these are the coordinates of the facility; distances between facilities are
calculated with the Euclidean distance formula
delTime: for DC and retailers this is respectively the loading and unloading time of a
truck
delCost: the cost associated with loading or unloading a vehicle ((in €/hr)
holdCost: the cost of holding one ton of the product in inventory for one hr, expressed
in €/hr⋅ton
demRate: the demand rate at each retailer (in tons/hr)
29
As we see, the demand occurring at each retailer is quantified by an average demand rate. The
following subsections will describe how this rate is defined for the different types of retailers.
4.2.1 Retailers with deterministic demand (EOQ) The sales-points using an EOQ-like inventory policy have a demand that resembles a normal
distribution (µ ,σ) with a small variance. Because the variability is very low, we consider the
demand to be stable (in time). Consequently, the average value of is inserted into the model.
4.2.2 Retailers with stochastic demand (Order-Up-To) Sales-points implementing order-up-to policies have a more unstable demand. In this thesis
we will model the weekly demand as a stochastic process. This process is depicted below
(Fig.11). It starts with generating a random number R between 0 and 1. If this number is
below a threshold α, the demand is generated from a first normal distribution with small
variance. If R exceeds the threshold, the demand follows a second normal distribution with
small variance.
Fig.11. The stochastic process generating the weekly demand.
When we consider a retailer to be experiencing a demand as described above, we assume its
average demand rate per hour to be as listed in the dat-file. Based on this average demand
rate, we develop a stochastic process that generates the weekly demand.
This type of process could be a reflection of the impact of certain (weekly-dependent) factors
on the demand. For instance, the effect of the weather forecast on the bookings for a beach-
sided hotel, and consequently on the client-related demands of the following week. Starting
from the average demand rate per hour, we can compute the average demand rate per week by
multiplying it by forty: we consider a working week of five days (eight hours each). In order
Random number R ∈ [0,1]
R<α: N(µ1 ,σ1)
R> α: N(µ2 ,σ2)
30
to obtain µ1, we multiply the average week demand for instance by 0.7 and assign the integer
of the result to µ1. Let Z be the integer value of the double of the average weekly demand.
The average of the second distribution, is calculated by subtracting the µ1−value from Z.
Considering the variances of both normal distributions N1 and N2 to be one and the threshold
to be 0.5, it is easy to see that the average demand (per hour) generated by this stochastic
process is approximately the same as the demand rate listed in the data-file. This is shown by
the following example. Check the demand rate (per hour) of the first retailer in Table 2: 0.375
ton/hour. The average demand per week becomes 40⋅0.375 = 15 tons/week. The average µ1 of
the first normal distribution is 11 (15⋅0.7 = 10.5) and µ2 equals 25 ( 2⋅15-11=19). The
stochastic process above, with N1(11,1) and N2(19,1), yields a demand probability as in
Fig.12.
Distribution of the stochastic process
0
0,05
0,1
0,15
0,2
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
Demand
Probability
Fig.12. Demand probability generated by the stochastic process.
This figure was obtained by generating weekly demands using the Monte-Carlo method in
Excel. Notice that is very important to determine whether the optimal inventory policy for
such demand is indeed a (s,S)-policy, so that the algorithm covered in subsection 1.3.3.2. can
be used. Veinott (1966) showed that an order-up-to policy is optimal when minimizing long-
run average costs if
-G(⋅) is unimodal
Lim y−>∞ G(y) > min y G(y) + K
with K the fixed ordering cost. Recall that G(y) represents the one-period loss function, the
expected shortage penalty cost and holding cost for one period, when starting with an
inventory y:
31
)()0,max()()0,max()( DdFyDhDdFDyhyGDD∫∫ −+−= −+ ,
with +h holding cost and −h the shortage penalty cost, as we do not consider backlogs.
Denote that y is the inventory after ordering, which happens at the beginning of every period
(every week). We assume that there is no lead-time. This is acceptable: when this retailer
would be directly served by the warehouse, using an order-up-to policy, the travelling time
between warehouse and sales-point is negligible in comparison to the length of the period. In
the IRP model from the previous chapter there is no such thing as a fixed ordering cost.
However, we could define the fixed ordering cost as the cost (vehicle costs, loading costs and
delivery costs) accrued when going from the DC to that retailer and back. Now we can check
the example from above on the optimality of (s,S) strategies.
The holding cost can easily be found in Table 2: €0.1/hr⋅ton. We assume a shortage penalty
cost of 10 euro per unit of demand lost because of insufficient stock. The formula for
calculating G(⋅), starting from the probability function generated by the stochastic process, is
shown in Appendix B. The loss function for this sales-point is shown in Fig.13.
Loss function
020406080
100120140160
0 20 40 60 80 100
120
140
160
180
200
220
240
260
280
300
320
340
360
380
inventory position
Loss function
Fig.13. The loss function for a retailer with demand generated by a stochastic process.
The definition of a unimodal function states that there is only a single local maximum: we can
see on Fig.13 that –G(⋅) is indeed such a function. So hereby we fulfil the first condition
drafted by Veinott. Now we try to evaluate the second condition, that is Lim y−>∞ G(y) >
min y G(y) + K. The minimum of the loss function is obtained from the function above and
yields 0.6533€ for y=21. In order to get the fixed order cost, as defined above, we need to
calculate the Euclidean distance between the DC and the retailer. Using the coordinates of
both facilities (see Table 2), we get
32
833.29)127150()131150( 22 =−+−=Dist km
The vehicle drives at 50km/hr, so with a variable transportation cost of €1/km, the total
travelling cost becomes €59.7 (=2 ⋅ 29.833 km ⋅ €1/km). The loading cost at the DC equals
€10 (DeltimeDC ⋅ DelcostDC = 0.5⋅20) and the delivery (unloading) cost at the retailer equals
€2.5 (Deltimeretailer ⋅ Delcostretailer = 0.25⋅10). So, the fixed order cost is the sum of the three
costs calculated above: K equals €90.1 (59.7 + 10 + 2.5 = 72.2). The loss function generated
in excel shows us that for y=1995, G(y) equals 198€ . This is already much more then 72.85€
(=0.65 + 72.2). Because from y=27 (minimum) onwards, the slope of the loss function
remains positive (unimodal function), we can safely conclude that we have fulfilled the
second condition as well. So this type of demand, generated by our stochastic process, has an
order-up-to strategy as an optimal policy.
4.3 Output of the IRP model The IRP model returns the optimal routing by means of a txt-file. For each vehicle, the
different sub-tours are exhibited, as well as the different types of costs defined in Chapter 3.
However, one extra type of costs is considered: the loading cost at the warehouse. We can
define this cost as a handling cost. It is important to inform you that the model used to
calculate the optimal distribution plan is a slightly more extensive (and more advanced)
version of the one published by Aghezzaf et al.: besides considering this extra cost type, only
cycle-times (of the multi-tours) multiples of eight hours are calculated. Just as we did in the
previous paragraph, we assume working days of eight hours. This implies that every multi-
tour executed by the vehicle is completed after a round number of days. Table 3 shows the
data that is returned for every vehicle used in the optimal routing scheme.
Each of the first eight lines represents a sub-tour: the travel time shown at the right side
consists of the driving time of the vehicle plus the time occupied by handling loads (loading
and unloading the vehicle). Consequently, the total travel time is the sum of the travel time of
the different sub-tours. This is the output of the model for the data-file of which Table 2 was
an extract. The maximum cycle time denotes the upper bound of the cycle time, imposed by
the limited capacity of the vehicle: ∑∈
=
Ciid
T κmax ,
33
with κ the capacity of the vehicle, di the average demand rate of retailer i and C the subset of
retailers served by this vehicle. The EOQ-time equals the variable Tν defined in Fig.9 in the
previous chapter. As we mentioned before, the cycle is always a multiple of eight hours. The
idle time is the percentage of time in one cycle, in which the vehicle ‘waits’ at the DC,
without loading any products. The capacity utilization reflects the average occupation of the
vehicle capacity, for the different sub-tours. The transportation cost defines the cost rate
incurred by the variable transportation cost (without considering handling costs).
Table 3. Data returned from IRP model for every vehicle
The loading and drop cost rates exhibit the cost rate induced by respectively loading the truck
at the warehouse and unloading it at the sales-point. Finally, the cost rate per vehicle is the
sum of the cost rates described above and the fixed vehicle operation cost rate. Table 4 depicts
the total cost rates, considering all vehicles: these are the cost rates for the whole distribution
plan.
DC -> 21 -> 20 -> DC. (Time = 3.82643) DC -> 29 -> 9 -> DC. (Time = 3.10819) DC -> 2 -> 22 -> 30 -> DC. (Time = 1.82054) DC -> 8 -> 25 -> DC. (Time = 3.47344) DC -> 17 -> 24 -> DC. (Time = 4.12749) DC -> 14 -> DC. (Time = 1.82835) DC -> 1 -> 16 -> DC. (Time = 1.12555) DC -> 27 -> 5 -> DC. (Time = 0.54) Travel time: 23.85 Minimal cycle time: 0 Maximal cycle time: 32.7869 EOQ time: 45.1806 Cycle time: 32 Idle time: 25.4688% Capacity utilization: 87.2% Transportation cost: 24.7656 Fixed operating cost: 30 Loading cost: 5 Drop cost: 5 Hold cost: 17.44 Total cost rate per vehicle: 82.2056
34
Table 4. Total cost rates
The model returns as well, for every vehicle, a list with the order of the facilities that the
vehicle visits on his multi-tour, accompanied by the facilities’ coordinates. Furthermore,
every sub-tour is dedicated to a particular day of the multi-tour: these sub-tours are calculated
with the requirement that they should be completed in less than eight hours. This is another
constraint that was not implemented in the model by Aghezzaf et al. An example of those data
is shown in Table 4.
We can easily visualize the track covered by a vehicle by using the first part of the data ( in
Table 5 ) and inserting it into a scatterplot in Excel (Fig.14). Notice that the diamond-shaped
points represent the different retailers served by the vehicle, and the centre point being the
warehouse.
Track of a vehicle covering its multi-tour
020406080
100120140160180
0 50 100 150 200
X coordinate
Y c
oord
inat
Track of a vehicle
Fig.14. Track of a vehicle covering its multi-tour.
Total cost: 151.771 (2) Fixed Vehicle costs: 60 Transportation costs: 43.7377 Loading costs: 7.91667 Delivery costs: 7.91667 Holding costs: 32.2
35
Table 5 .Order in which the facilities are visited by a single vehicle and the assignment of the various sub-tours to different days
DC 86 86 21 148 123 20 160 114 DC 86 86 29 121 31 9 119 35 DC 86 86 2 80 81 22 63 78 30 62 82 DC 86 86 8 85 160 25 89 94 DC 86 86 17 17 99 24 22 58 DC 86 86 14 47 80 DC 86 86 1 96 74 16 90 82 DC 86 86 27 86 87 5 86 86 DC 86 86 Tour 1 assigned to day 2 Tour 2 assigned to day 2 Tour 3 assigned to day 3 Tour 4 assigned to day 3 Tour 5 assigned to day 1 Tour 6 assigned to day 1
36
4.4 Performance measurements In this paragraph, we describe the different performance measurements that need to be
evaluated during simulation.
4.4.1 Cost rates It is obvious that we need to monitor the different types of cost rates in order to evaluate the
performance of the IRP model: these cost rates are the ones described in the previous
paragraph and the shortage penalty cost. Notice that when changing the optimal order policy
of an amount of retailers from EOQ to order-up-to policies, which implies changing the
constant demand rate per hour to a stochastic process that generates the weekly demand, that
all handling costs (loading and deliveries), transportation costs and fixed vehicle operation
costs per multi-tour stay the same: all vehicles still execute their same multi-tour. For these
values we can rely on the output of the IRP model. Nevertheless, the holding cost and the
shortage penalty cost will change. Every sales-point with an EOQ-like policy has a shortage
penalty cost of zero because no stockouts can occur as a consequence of the constant and
deterministic demand; when implementing an order-up-to strategy, demand is stochastic, so
stockouts become possible. Thus, the only cost rates that need monitoring during simulation
are the shortage penalty cost and the holding cost.
4.4.2 Service levels The service level can be defined as a measure for the possiblity to satisfy the customers’
demand. Many client-orientated companies try to achieve a 100% service level. For a retailer
using an EOQ-like strategy, this will be obtained. For the sales-points with order-up-to
strategy however, where stockouts can occur, the service level is very likely to drop below
100%.
We can define different types of service levels, depending on the nature of the criterium on
which it is based:
The stockout probability
The percentage of fulfilled demand (fill rate)
37
4.4.2.1 Service level based on stockout probability in a cycle (P1)
This service level is the chance of not having a stockout during a cycle (between two
replenishments). It is the complement of the probability of a stockout occuring: P1= 1-
P(Demand during cycletime > Cycletime ⋅ Average demand rate per hour). Because of the
complexity of the stochastic process and the fact that this process is executed only once a
week, it is to difficult to calculate the expected value of P1 theoretically. Therefore, we will
examine this value by means of simulation.
4.4.2.2 Service level based on stockout probability in a cycle (P2)
In this case we consider the service level based on the fill rate. This service level is the
percentage of the total demand that could be fulfilled. Because we don’t consider backorders
this is the same as the total demand served immediately. It equals the number of tons supplied
at the customers divided by the total demand during a certain time periode. The same
observation for the expected value counts for P2.
4.4.3 Average time between stockout We have defined breach as the average time between stock-outs.
4.5 Simulation method In this paragraph we give an overview of the tools used for the simulation of the various
problems considered in the next chapter. Figure 15 shows the interface of the Excel file that
was constructed in order to be able to execute the simulations as fast and effective as possible.
The following subsections are dedicated to the description of the various parts of the Excel
file.
4.5.1 Parameters In this part we insert the non-retailer-dependent data, concerning cost rates and
delivery/loading times, obtained from the dat-file (see Table 1). Specific parameters for the
simulation are listed as well: the percentage of order-up-to retailers and the number of
simulation hours. (Table 6)
38
Fig.15. Simulation sheet.
4.5.2 Optimal distribution plan generated by the IRP model Based on the output of the IRP model (Table 3), we construct a tabel containing the data of
the multi-tour of every vehicle. This is done manually. See Table 7.
4.5.3 Retailer-dependent properties In this table we show the salespoint-related properties (Table 8). The second column shows us
the average demand rate per hour: In order to acquire this data from the dat-file we had to use
a converting function, due to the fact that the integer and decimal values of the demand rate in
the dat-file are separated by a comma. So the objective of this converting function is to
remove the comma, replacing it by a point, in order to make it possible for Excel to make
calculations with these values. The formulation of the function in VBA can be found in
Appendix E. In the third column we show the number of the vehicle that serves this retailer:
this is assigned by a function that, if the number of the retailer is given, runs through the
different sub-tours of every vehicle (Table 7) and if it encounters this number in a certain sub-
tour, it will assign the retailer to the corresponding vehicle. Again, this function can be found
in Appendix E. The fourth column, which states µ1, decides which type of demand we assume
Parameters Distribution plan according to IRP model
Results of the simu- lation for the whole logistic system
Properties of the retailers
39
that retailer to experience. If the value is zero, we assume that the optimal inventory policy
for that retailer is EOQ and that the demand per hour is constant and deterministic, equalling
the demand rate from column 2. However, is this value positive, then we presume the optimal
strategy for that retailer to be an (s,S)-policy, with a weekly demand generated by a stochastic
process as in 4.2.2. . The average and variance of the two normal distributions in the process
are calculated by the function in Table 9, resulting in an array consisting of respectively
µ1 , σ1, µ2 and σ2.
Table 6. Parameters for the simulation
Table 7. Data of the multi-tour of every vehicle
40
In this table we show the salespoint-related properties (Table 8). The second column shows us
the average demand rate per hour: In order to acquire this data from the dat-file we had to use
a converting function, due to the fact that the integer and decimal values of the demand rate in
the dat-file are separated by a comma. So the objective of this converting function is to
remove the comma, replacing it by a point, in order to make it possible for Excel to make
calculations with these values. The formulation of the function in VBA can be found in
Appendix E.
In the third column we show the number of the vehicle that serves this retailer: this is
assigned by a function that, if the number of the retailer is given, runs through the different
sub-tours of every vehicle (Table 7) and if it encounters this number in a certain sub-tour, it
will assign the retailer to the corresponding vehicle. Again, this function can be found in
Appendix E. The fourth column, which states µ1, decides which type of demand we assume
that retailer to experience. If the value is zero, we assume that the optimal inventory policy for
that retailer is EOQ and that the demand per hour is constant and deterministic, equalling the
demand rate from column 2. However, is this value positive, then we presume the optimal
strategy for that retailer to be an (s,S)-policy, with a weekly demand generated by a stochastic
process as in 4.2.2. . The average and variance of the two normal distributions in the process
are calculated by the function in Table 9, resulting in an array consisting of respectively
µ1 , σ1, µ2 and σ2.
Table 8. Retailer-dependent properties
41
Table 9. The VBA formulation to determine the parameters of the two normal distributions in the stochastic process
Consequently, we can assume a retailer to be experiencing stochastic demand, just by
calculating the array from Table 8 and inserting its values into the corresponding columns. If
we do not do this, the value in the column of µ1 stays zero, implying that we consider an
EOQ-strategy.
Then for every retailer utilizing an EOQ-policy, we calculate the holding cost rate (column
holdingeoq in Table 8). The holding cost rate (per hour) of retailer i is easily obtained by the
welknown formula:
Holding cost rate= ηi ⋅ Di ⋅T(C)/2
with ηi the holding cost (see Table 6), Di the average demand rate of the retailer and T(C)
being the cycle time (Table 7) of the multi-tour covered by the vehicle serving this sales-
point. In the column holdingoup of Table 8 we calculate the holding cost for the sales-points
that utilize order-up-to strategies. This is computed by the function depicted in Table 10.
Looking at this VBA expression, we can see that every week there is a weekly demand
generated by a stochastic process demandoup: the VBA expression is listed in Table 11. For
the following week, this demand is then equally spread over 40 hrs (we assumed a working
week of five days of eight hours). In the function exhibited in Table 11, we assume that the
parameters for the two distributions of the stochastic processes are already calculated. The
penalty shortage cost is the cost incurred when demand can not be satisfied because of
demrate = Demand_rate(num) # this is the average demand rate/hour demrateoupweek = 40 * demrate # the average demand per week demrateoupweekint = CInt(demrateoupweek) # making the value integer rate1 = demrateoupweekint * 70 / 100 # multiplying by 70 rate1int = CInt(rate1) # making the value integer, obtaining µ2 rate2int = 2 * demrateoupweekint - rate1 # calculating µ2 in order to make the average demand generated approxima- demarray(0) = rate1int tely equal to the average demand from demarray(1) = 1 the dat-file demarray(2) = rate2int demarray(3) = 1
42
insufficient stock. This can only occur for facilities using the order-up-to policy. The VBA
expression to calculate this cost rate is very similar to the one for calculating the holding cost
rate. In fact, just by adding two equations, we can use the expression in Table 10 for
calculating penalty shortage costs too. The variables concerning the penalty cost are written in
bold letters. For retailers with the EOQ-policy, the both types of service levels P1 and P2 are
equal to 100%. We can already expect that the sales-points with stochastic demand (order-up-
to) will not be performing that well. Again, by adding some equations to Table 10, we can
easily calculate these service levels: this time we use underlined letters for the variables
concerning P1 and P2. Finally we calculate the average number of time between stock-outs;
this function is listed in Appendix E.
4.5.4 Results for the whole logistic system Summarizing the results obtained from simulation we construct a table (Table 12) consisting
of the different cost rates and service levels for the whole logistic system. Recall that only the
penalty and holding costs are a result of the simulation: the other costs are obtained from the
output of the IRP model. P2total denotes the total fill rate for all retailers and P1oup shows
the average servicelevel P1 for the retailers with stochastic demand. Finally, breaches
represents the average time between stock-outs for retailers with stochastic demand.
43
Table 10. The VBA function calculating the cost rates and service levels for retailers with an
(s,S)policy
delivery = cycleT * demrate # delivery at retailer every cycle voorraad = delivery # defining the starting inventory level demandweek = demandoup(retailer) # generating weekly demand by stochastic process demand = demandweek / 40 # calculating demands per hour from weekly demand For i = 1 To numberhoursim rest = i Mod cycleT If rest = 0 Then # after each cycle, replenishment by the stock = stock + delivery vehicle numbreaches= numbreaches + breach breach=0 numbercycle=numbercycle +1 End if stock = stock – demand #adapting the stock (after demand) Totaldemand= Totaldemand + demand If stock >= 0 Then stockage = stockage + stock Else voorraad = 0 # there is no backlogging shortage=shortage - stock breach =1 End If rest = i Mod cycleT If rest = 0 Then # after each cycle, replenishment by the stock = stock + delivery vehicle numbreaches= numbreaches + breach breach=0 numbercycle=numbercycle End If rest2 = i Mod 40 # every week new weekly demand If rest2 = 0 Then by stochastic process demandweek = demandoup(retailer) demand = demandweek / 40 # that week, the weekly demand End If generated is equally spread over Next I the 40 hrs totalstockagecost = stockage * Hcost holdingrate = totalstockagecost / numberhoursim holdingoup = holdingrate penalty=shortage* penalty cost/ numberhoursim P1= numbreaches *cycleT / numbercycles P2= 1 - shortage / Totaldemand
44
Table 11. Executing the stochastic process
Table 11. Executing the stochastic process
Table 12. Results for the whole logistic system
Transportation 63,2938Vehicle operating 60Penalty 0Loading 14,5Delivery 12,5Holding 65TOTAL COST 215,2938P2total 1P1oup 1betweenshortages 5000
randomvariable = Rnd() randomvariable2 = Rnd() If randomvariable <= 0.5 Then standnorm = WorksheetFunction.NormSInv(randomvariable2) avg = mu1 dev = sigma1 dema = standnorm * Sqr(dev) + avg Else standnorm = WorksheetFunction.NormSInv(randomvariable2) avg = mu2 dev = sigma2 dema = standnorm * Sqr(dev) + avg End If If dema > 0 Then demandoup = dema Else demandoup = 0
45
5 Simulation results and analysis In order to examine the performance of the IRP model when including order-up-to retailers,
we consider multiple logistic problems, with size varying from 30 to 120 sales-points. Let n
denote the number of sales-points. We determine the performance of the model by evaluating
different measurement gauges (cost rates, service levels,...) for each problem. These are
obtained by means of simulation: while executing these simulations we also vary the
percentage of order-up-to retailers β from 0% to 50%. The first paragraph will display the
results from these simulations: we classify the various problems according to their size( small,
medium and large). The second paragraph will investigate the impact of the percentage of
order-up-to retailers and the size of the logistic problem on these gauges. The input data files
for the IRP model of the different logistic problems can be found in Appendix D. We used a
shortage cost of 20€/(ton of sales lost). All simulations were executed a numerous times
considering a time period of approximately a year.
5.1 Results 5.1.1 Small problems 5.1.1.1 n=30
First, we look at the fluctuations of the inventory level at a single retailer with stochastic
demand (order-up), when being replenished in accordance with the distribution plan generated
by the IRP model: this implies one replenishment every cycle time of the vehicle. Take for
example the first retailer in this problem, retailer 1, with an average demand rate of 1.25
ton/hour. If we assume that this sales-point experiences a stochastic demand and its optimal
policy would be order-up-to, we can calculate (as explained before) the parameters of the
distributions determining the stochastic process. This yields N1(35,1) and N2(65,1), and a
probability distribution for the weekly demand similar to Fig. 12. By recording the inventory
positions during simulation we can generate the dynamics of the inventory level as depicted in
Fig. 16. Every upward movement of the inventory level is due to replenishment by the
appropriate vehicle: the cycle time of its corresponding vehicle is 32. As mentioned in the
previous chapter, we assume the weekly demand to be generated by a stochastic process: this
demand is then equally spread over the whole week (40hrs). This is why we see the weekly
demand shifting from approximately 35 to approximately 65. This change of weekly demand
46
(and thereby demand per hour for that week) can be noticed from the change of the slope of
the inventory level as well. The simulation yields a P1 of 0.886, meaning that there is a 88.6%
chance that no shortage will occur between two replenishments. The average fill rate becomes
0.976, indicating that 97.6 % of the demand at this retailer can be fulfilled.
Fluctuations of the inventory level
01020304050607080
inhours
Period
in to
n Weekly demandInventory level
Fig.16. Fluctuations of the inventory level at a retailer with stochastic demand
This might look surprisingly high but as you see on Figure 16, the cycle time of its
replenishing vehicle is smaller than a week: even if the ‘bigger’ weekly demand is generated,
the retailer will always be replenished before the end of that week. Consequently, not a lot of
sales will be lost, but this has high holding costs as a consequence. However, if the cycle time
of the replenishments is equal to a week, consequent generations of the big weekly demand
could cause major stock-outs. If the cycle time of the replenishments is more than a week, the
chance of stock-outs drops again, because the retailer experiences a mix of weekly demands.
Table 13 shows the results of the total logistic system, acquired by simulation, when
increasing β up to 50 percent: the retailers for which the inventory policy is changed are
picked randomly.
All costs and service levels are expressed in respectively €/hr and percentage. Notice that only
the penalty and holding cost rates change when increasing the number of order-up-to retailers
(Fig.17); the other cost rates stay the same because we utilize the same multi-tours as
generated in the IRP-model (where only EOQ-policies are considered). Fig.17 shows us how
the cost rates change along with the OUP percentage; notice that the holding cost rate doubles
when β=50%, while the shortage cost stays small.
Replenishment Shift of weekly demand
47
Table 13. Simulation results for logistic system with 30 retailers 0% 10% 20% 30% 40% 50%
Transportation 47,7377 43,7377 43,7377 43,7377 43,7377 43,7377
Vehicle operating 60 60 60 60 60 60
Penalty 0 1,043739053 1,475365881 2,56130425 2,771936124 4,096686624
Loading 7,91667 7,91667 7,91667 7,91667 7,91667 7,91667
Delivery 7,91667 7,91667 7,91667 7,91667 7,91667 7,91667
Holding 32,2 41,64987823 47,13424482 55,45348104 58,87229032 69,45860935
TOTAL COST 108,282137 162,2646573 168,1806507 177,5858253 181,2152664 193,126336
P2total 1 0,996939182 0,995673414 0,992488844 0,991871155 0,987986256
P1oup 1 0,87688172 0,878524492 0,872023098 0,874148746 0,877287933
betweenshortages 5000 20,90853402 22,83466631 22,07749389 22,94600754 20,63509761
Changing cost rate in function of percentage OUP
0
50
100
150
200
250
0% 10% 20% 30% 40% 50%
percentage
in e
uro/
h Penalty cost rateHolding cost rateTotal cost
Fig.17. Changing cost rates depending of OUP percentage(n=30).
Table 13 shows us a few types of service-levels as well: P1oup denotes the average
probability not to stock-out between replenishments for the OUP-retailers. Furthermore,
betweenshortages reflects the average time period (in hours) between consequent shortages
( for OUP retailers). The value of betweenshortages for all sales-points using EOQ-like
strategies (0%) is 5000: in fact this is infinite because stockouts can not occur under these
assumptions but for the simplicity of the simulation model we used this big number.
The total fill rate, the percentage of total demand fulfilled, drops slightly but still amounts to
98.7% if fifty percent of the logistic system has a stochastic demand. This could be surprising,
but if we look for example at the retailer discussed above, we notice that its single fill rate
values 0.976 too. This is why we have such small penalty costs as well.
48
5.1.1.2 n=39
The result of the simulation for this logistic system is shown in Table 14: just as in the
problem discussed above we notice high fill rates. In paragraph 2 we examine the impact of
the size of the logic problem on these service levels.
Table 14. Result of the simulation for n=39 0% 10% 20% 30% 40% 50%
Transportation 105,038 105,038 105,038 105,038 105,038 105,038
Vehicle operating 90 90 90 90 90 90
Penalty 0 0,623976719 2,688866758 3,945719048 5,14271234 6,757305762
Loading 11 11 11 11 11 11
Delivery 9,75 9,75 9,75 9,75 9,75 9,75
Holding 49,65 59,88515085 68,77551367 82,73206224 93,98941822 109,051748
TOTAL COST 265,438 276,2971276 287,2523804 302,4657813 314,9201306 331,5970538
P2total 1 0,998743249 0,994584357 0,992052932 0,98964207 0,986390119
P1oup 1 0,980448381 0,969533378 0,960552261 0,968840213 0,965897577
breach 5000 19,35622741 31,89506925 24,98691417 29,08008272 25,67068317
Cost rates for n=39
050
100150
200250
300350
0% 10% 20% 30% 40% 50%
Beta
Penalty cost rateHolding cost rateTotal cost
Fig.18. Changing cost rates depending of OUP percentage(n=39).
Again, we see the total cost rate increasing in a quasi linear trend (Fig.18); one of the
objectives in paragraph 2 is to examine whether the magnitude of the increase of this cost
rate is dependent of the number of retailers in the logistic system.
Considering the results from the two previous problems, we can already conclude, as
expected, that the total cost rate increases with β . Because this trend has already become
49
clear, we will only show the data tables obtained from simulation for the remaining problems
in the following subsections.
5.1.1.3 n=50
Table 15. Simulation results for n=50 0% 10% 20% 30% 40% 50%
Transportation 63,2938 63,2938 63,2938 63,2938 63,2938 63,2938
Vehicle operating 60 60 60 60 60 60
Penalty 0 3,10009503 2,453089297 6,21531812 4,059796599 8,561043356
Loading 14,5 14,5 14,5 14,5 14,5 14,5
Delivery 12,5 12,5 12,5 12,5 12,5 12,5
Holding 65 78,03677897 105,0281366 126,1256908 132,155795 138,25862
TOTAL COST 215,2938 231,430674 257,7750259 282,634809 286,5093916 297,1134633
P2total 1 0,995230623 0,996226016 0,990437972 0,993754159 0,986829164
P1oup 1 0,980657278 0,978141746 0,979728618 0,977930078 0,968589186
breach 5000 27,60841338 26,91091259 27,97187681 26,85844382 40,75720419
5.1.2 Medium-sized problems We define medium-sized problems as logistic configurations with number of retailers ranging
from 60 to 90; just as for the small problems, we have examined three of them.
5.1.2.1 n=67
Table 16. Simulation results for n=67 0% 10% 20% 30% 40% 50%
Transportation 106,655 106,655 106,655 106,655 106,655 106,655
Vehicle operating 120 120 120 120 120 120
Penalty 0 2,621830163 3,865868001 6,724244976 8,019805895 11,13998269
Loading 20,5417 20,5417 20,5417 20,5417 20,5417 20,5417
Delivery 20,9167 20,9167 20,9167 20,9167 20,9167 20,9167
Holding 77,43 106,3478836 123,5823724 146,3630667 163,2178876 182,2327615
TOTAL COST 345,5434 377,0831138 395,5616404 421,2007117 439,3510935 461,4861442
P2total 1 0,997200395 0,995872004 0,992819813 0,991436406 0,988104663
P1oup 1 0,965337108 0,969847866 0,961069294 0,975620975 0,966064891
breach 5000 39,25542079 27,66967735 23,68136462 29,14453274 25,37668849
50
5.1.2.2 n= 81
Table 17. Simulation results for n=81 0% 10% 20% 30% 40% 50%
Transportation 98,2712 98,2712 98,2712 98,2712 98,2712 98,2712
Vehicle operating 120 120 120 120 120 120
Penalty 0 4,71613251 6,147005645 8,367981365 10,36073196 12,59810546
Loading 22 22 22 22 22 22
Delivery 25,75 25,75 25,75 25,75 25,75 25,75
Holding 78,11 106,1034102 131,2537176 155,2302048 177,2250257 210,0837824
TOTAL COST 344,1312 376,8407427 403,4219232 429,6193862 453,6069576 488,7030879
P2total 1 0,995300316 0,993874434 0,991661204 0,989675404 0,987445834
P1oup 1 0,973218543 0,960689991 0,963162125 0,971510203 0,964623864
breach 5000 29,63685677 35,55152717 20,50025743 33,00521284 38,49307244
5.1.2.3 n= 93
Table 18. Simulation results for n=93 0% 10% 20% 30% 40% 50%
Transportation 143,157 143,157 143,157 143,157 143,157 143,157
Vehicle operating 180 180 180 180 180 180
Penalty 0 2,738723916 6,156066826 9,907328774 11,80699966 18,28610876
Loading 25,0417 25,0417 25,0417 25,0417 25,0417 25,0417
Delivery 37,0208 37,0208 37,0208 37,0208 37,0208 37,0208
Holding 78,04 108,4639871 128,105328 159,9709807 177,7395713 216,864901
TOTAL COST 463,2595 496,422211 519,4808948 555,0978095 574,7660709 620,3705098
P2total 1 0,997695647 0,994820306 0,991664006 0,990065629 0,984614128
P1oup 1 0,943468666 0,966056314 0,962716375 0,967989835 0,970096267
breach 5000 70,38056986 33,13811371 33,82457161 38,98511426 23,11993685
5.1.3 Large problems For this class of problems we examine three problems with respectively 98, 110 and 120
sales-points.
51
5.1.3.1 n=98
Table 19. Simulation results for n=98 0% 10% 20% 30% 40% 50%
Transportation 134,274 134,274 134,274 134,274 134,274 134,274
Vehicle operating 150 150 150 150 150 150
Penalty 0 5,778597356 7,29958684 9,89195189 15,83595784 16,21571332
Loading 27,4167 27,4167 27,4167 27,4167 27,4167 27,4167
Delivery 29,2708 29,2708 29,2708 29,2708 29,2708 29,2708
Holding 107,95 139,308301 182,0110368 250,6824116 242,4774765 271,8129045
TOTAL COST 448,9115 486,0483983 530,2721237 601,5358635 599,2749343 628,9901178
P2total 1 0,995417449 0,994211271 0,99215547 0,987441746 0,987140592
P1oup 1 0,97078339 0,972940677 0,973757202 0,975529794 0,978316347
breach 5000 28,19484075 16,47364349 50,87583562 64,88376831 36,69428272
5.1.3.2 n=110
Table 20. Simulation results for n=110 0% 10% 20% 30% 40% 50%
Transportation 167,255 167,255 167,255 167,255 167,255 167,255
Vehicle operating 150 150 150 150 150 150
Penalty 0 2,849675071 6,811114467 8,251993647 17,36879251 20,9688484
Loading 31,25 31,25 31,25 31,25 31,25 31,25
Delivery 30,4375 30,4375 30,4375 30,4375 30,4375 30,4375
Holding 126,17 157,7096782 195,5329423 283,1594779 256,6228985 304,627
TOTAL COST 505,1125 539,5018532 581,2865568 670,3539715 652,934191 704,5383484
P2total 1 0,99793427 0,995062621 0,994018127 0,987409357 0,984799675
P1oup 1 0,807233627 0,889423265 0,887820137 0,846940371 0,913040078
breach 5000 27,21837854 33,84379464 30,59874765 28 32,97915363
52
5.1.3.3 n=120
Table 21. Simulation results for n=120 0% 10% 20% 30% 40% 50%
Transportation 300,784 300,784 300,784 300,784 300,784 300,784
Vehicle operating 270 270 270 270 270 270
Penalty 0 5,57736045 6,210133276 9,085515093 16,20105419 20,43098151
Loading 34,5 34,5 34,5 34,5 34,5 34,5
Delivery 31,8542 31,8542 31,8542 31,8542 31,8542 31,8542
Holding cost 151,15 180,2810508 240,9990681 285,8758742 313,9660057 305,6758075
TOTAL COST 788,2882 822,9966112 884,3474014 932,0995892 967,3052598 963,244989
P2total 1 0,996414426 0,996007629 0,994159103 0,989584665 0,986865329
P1oup 1 0,887225806 0,849625448 0,888804062 0,861842294 0,885999283
breach 5000 15,80461814 41,35198083 29,98764555 23,68266239 48,37278553
5.2 Analysis This is an outline of the remaining paragraph. First, we investigate the impact of the number
of sales-points on the different types of cost rates when changing β. Secondly, we look for its
effect on the various service levels.
5.2.1 Cost rates The loading/unloading and transportation cost rates are not considered because they don’t
change when varying the number of OUP retailers.
5.2.1.1 Shortage costs
Because stock-outs can not occur when all retailers experience a deterministic demand, the
shortage cost rate is zero when β =0. Table 22 shows the percentage of the total cost rate
caused by shortage costs, for the different problems and β-levels. Analysing the table, we see
that this percentage ranges between 2 and 3 percent for all logistic problems when β equals
50. We can’t detect a trend, that indicates the impact of the size of the problem on this
percentage: therefore we conclude that the number of sales-points has no impact on the
fraction of the total cost rate caused by shortages.
53
Table 22. Percentage of total cost rate incurred by shortages No. Of sales-
points Percentage of OUP retailers
0% 10% 20% 30% 40% 50%
30 0 0,643233 0,877251 1,442291 1,529637 2,121247
39 0 0,225835 0,936064 1,304517 1,633021 2,037806
50 0 1,339535 0,95164 2,199063 1,416986 2,881405
67 0 0,695292 0,977311 1,596447 1,825375 2,413937
81 0 1,251492 1,523716 1,947766 2,284077 2,577865
93 0 0,551692 1,185042 1,78479 2,054227 2,947611
98 0 1,188893 1,376574 1,644449 2,64252 2,578055
110 0 0,528205 1,171731 1,23099 2,660114 2,976254
120 0 0,677689 0,702228 0,974737 1,674865 2,121058
5.2.1.2 Holding cost
The holding cost for β=0 is not equal to zero, in contrary to the shortage cost; Table 23
exhibits the shortage cost relative to the one for β=0, showing the relative increase when
varying the number of sales-points and the β-level. For instance, the value for n =50 and β=20
is calculated by:
1,61581765
6105,028136= ( see Table 15)
Table 23 .Relative increase of holding cost No. Of sales-
points n Percentage of OUP retailers β
0% 10% 20% 30% 40% 50%
30 1 1,293474 1,463796 1,722158 1,828332 2,1571
39 1 1,206146 1,385207 1,666305 1,89304 2,19641
50 1 1,200566 1,615817 1,940395 2,033166 2,127056
67 1 1,373471 1,596053 1,890263 2,107941 2,353516
81 1 1,358384 1,68037 1,987328 2,268916 2,689589
93 1 1,389851 1,641534 2,049859 2,277544 2,778894
98 1 1,290489 1,686068 2,322209 2,246202 2,517952
110 1 1,249978 1,549758 2,244269 2,033945 2,414417
120 1 1,192729 1,594436 1,891339 2,077182 2,022334
54
The table above reveals that for every problem considered, if we move β up to 50%, the
holding cost rate will be more than doubled; this explains why this cost rate influences the
total cost rate so much. The table gives no indication of the relative increase of the holding
cost rate being dependent of the number of retailers. Recalling that the penalty and shortage
costs are the only cost rates changing and keeping in mind the conclusion of the previous
subsection, we can conclude as well that the percentage of the total cost rate incurred by
holding inventory is independent of the size of the problem.
5.2.1.3 Total cost rate
Table 24 shows the value of the total cost rate for every problem, varying the β-level from 0
to 50%, relative to the total cost rate implementing β equal to 0.
Table 24. Relative increase of total cost rate No. Of sales-
points Percentage of OUP retailers (in%)
0 10 20 30 40 50
30 1 1,498536 1,553171 1,640029 1,673547 1,783548
39 1 1,04091 1,082183 1,139497 1,186417 1,249245
50 1 1,074953 1,197317 1,312787 1,330783 1,380037
67 1 1,091276 1,144752 1,218952 1,271479 1,335537
81 1 1,09505 1,172291 1,248417 1,318122 1,420107
93 1 1,071586 1,12136 1,198244 1,2407 1,339143
98 1 1,082727 1,18124 1,339988 1,334951 1,401145
110 1 1,068083 1,150806 1,327138 1,292651 1,394815
120 1 1,04403 1,121858 1,182435 1,227096 1,221945
Notice that the total cost rate, when β equals 50%, has values varying from 1.22 to 1.78 times
the total cost, when only implementing EOQ retailers. Just as for the other cost rates, we can
conclude that the size of the logistic problem doesn’t influence the values exhibited in the
table above. In the previous chapter, we already remarked that the total cost rates for a certain
problem changes in function of the β-levels quasi linear. Therefore we calculate the average
slope of the total cost rate for all the problems examined.(Table25)
55
Table 25. Average slope of the total cost rate for every logistic problem Nr of sales-points Average slope (in euro/hr*hr)
30 1,135417
39 1,045531
50 1,067189
67 1,059714
81 1,072746
93 1,060275
98 1,070786
110 1,070361
120 1,041229
Notice that this slope is almost equal for the different logistics systems; again, the number of
salespoint does not have an impact.
5.2.2 Servicelevel P1 Table 26 gives an overview of the total fill rate: remarkably, this fill rate exceeds 98% most of
the time. For every problem , we see that the fill rate decreases only slightly when increasing
the β-level.
Table 26 . The total fill rate P2total No. Of sales-
points Percentage of OUP retailers
0% 10% 20% 30% 40% 50%
30 1 0,996939 0,995673 0,992489 0,991871 0,987986
39 1 0,998743 0,994584 0,992053 0,989642 0,98639
50 1 0,995231 0,996226 0,990438 0,993754 0,986829
67 1 0,9972 0,995872 0,99282 0,991436 0,988105
81 1 0,9953 0,993874 0,991661 0,989675 0,987446
93 1 0,997696 0,99482 0,991664 0,990066 0,984614
98 1 0,995417 0,994211 0,992155 0,987442 0,987141
110 1 0,997934 0,995063 0,994018 0,987409 0,9848
120 1 0,996414 0,996008 0,994159 0,989585 0,986865
56
5.3 Conclusion Analysis of the simulation results yielded that the number of retailers in the logistic system
does not influence the performance of the IRP model when working with retailers with
stochastic demand. However, the percentage of order-up-to retailers, does, as expected.
Another result from the analysis was the following: when α reaches 50%, the holding cost rate
is approximately doubled, independent of the number of retailers. The increase of the shortage
cost is almost insignificant compared to that of the holding cost. Consequently, the increase in
the total cost rate is mostly due to the holding cost. This is reflected in a high fill-rate: when
increasing α from 0 to 50%, this service level only decreases slighty, ending with a P2 above
0.98. We can conclude that the IRP model performs very well in terms of shortages and fill-
rates, but that the total costs increase significantly when increasing β.
57
6 Implementing a different replenishment strategy
6.1 Introduction The results from the previous chapter demonstrate that even when some of its retailers
experience stochastic demand, the IRP model still produces a distribution plan with a high fill
rate. However, the total cost rate (approximately) doubles when β becomes 50%. Therefore
we will examine the impact on the total cost if we start implementing a different strategy. In
this line of thought, we will serve the retailers with deterministic demand according to a
distribution plan generated by the IRP model; the retailers with stochastic demand are served
using a “direct shipping“ strategy. The latter means that for every retailer, a single vehicle is
assigned to replenish its inventory, as soon as an order is made. Remember that for the type of
stochastic demands defined earlier, the order-up-to strategy was proved to be the optimal in
the long run. This implies that we only order at the beginning of a period (a week) if the
inventory drops below the reorder point s. We will test this new strategy on the logistic
problem with n= 39 and β= 20%. We will assume that the first eight retailers on the dat-file
experience stochastic demand. For the other retailers, encountering deterministic demand, the
distribution plan is determined by the IRP model.
This is an outline of the remainder of this chapter. The second paragraph is dedicated to
computing the average costs involved with using this strategy. Later, in paragraph 3, we make
a suggestion in order to reduce the total cost associated with the strategy.
6.2 Costs associated with the new strategy Calculating the total cost rate, we make a division between the costs caused by retailers with
deterministic and stochastic demand; the first subsection discusses the cost due to EOQ-
retailers and the second is dedicated tot the costs corresponding with the OUP-retailers.
6.2.1 Deterministic demand The cost rates as a consequence of sales-points with deterministic demand are easily obtained
from the results of the IRP model:
58
Table 27. Cost rates for the retailers with deterministic demand (in euro/h)
Type of cost rate
in
Euro/hr
Vehicle costs 90
Transportation costs 875.531
Dispatching costs 8.875
Delivery costs 814.583
Holding costs 39.61
Total cost 234.184
6.2.2 Stochastic demand The total cost rate caused by the retailers with this type of demand consists of two parts: the
fixed operational cost of the used vehicles and the long run average costs of the different
sales-points. Recall (from section 1.1.3.) that this long run average cost is defined as follows:
)(),(),(sSM
SskSsc−
=
which equals the ratio of the expected cost between successive regeneration points and the
expected time between successive regeneration points. The different functions and variables
are defined in equations (1) to (5) in Chapter 1. In order to calculate this cost, we need to
know the optimal reorder point s and order-up-to point S. This implies executing the
algorithm exhibited in section 1.1.3.
To be able to do so, we need to evaluate the parameters of the two normal distributions used
in the stochastic process that generates the weekly demand. Table 28 shows the average
hourly demand and the parameters for the stochastic process of the OUP-sales-points. These
were calculated in the same way as in Chapter 4.
Table 28. Parameters of the stochastic process for the different retailers Sales-point Demand rate (ton/hr) mu1 sigma1 mu2 sigma2
1 0,5 14 1 26 1
2 0,5 14 1 26 1
3 0,6 17 1 31 1
4 0,225 6 1 12 1
5 0,6 17 1 31 1
6 0,1 3 1 5 1
7 0,7 20 1 36 1
8 0,95 27 1 49 1
59
Recall that this algorithm works with a discrete distribution pj=Pr{D=j} (for j=0,1,2,…)
representing the one-period demand; in our case we consider the weekly demand generated by
the stochastic process. Because the latter is difficult to describe theoretically, we simulated its
distribution by means of Monte-Carlo. This generated distribution was made discrete by
means of data-analysis: e.g. every value in the range [γ-0.5, γ+0.5] was assigned to the integer
value γ. When calculating the optimal (s,S)-values and their corresponding long run average
costs, we need to determine the fixed ordering cost K. This cost consists of three parts:
Travelling cost: this equals the distance covered by a vehicle going from the
warehouse to the retailer and back, times the variable vehicle cost
Loading cost: the cost for loading the truck at de DC
Delivery cost: the cost for unloading the goods at the retailer
For the first type of cost, we need to calculate the Euclidean distance between the DC and the
different retailers:
Distance 22 )()( retailerDCretailerDC YYXX −+−=
Then, the travelling cost for every retailer is calculated as follows:
Travelling cost= 2⋅Distance. Variable vehicle cost
The two following cost rates are independent of the retailer. We can calculate the loading cost
by multiplying the loading time by the loading cost: 0.5hr⋅20€/hr=10€. Finally, the delivery
cost is obtained by multiplying the delivery time by the delivery cost : 0.25hr⋅10€/hr=2.5€.
The fixed cost and its components are shown in Table 29. We are now able to calculate the
(s,S) level for each retailer and its corresponding long run average cost, using the algorithm in
Chapter 2. The results are shown in Table 30.
Table 29. Constructing the fixed order cost
Retailer Travelling cost (in euro) Loading cost(in euro)
Delivery cost (in
euro) K (in euro)
1 297,8657416 10 2,5 310,3657416
2 211,0260647 10 2,5 223,5260647
3 97,67292358 10 2,5 110,1729236
4 186,6976165 10 2,5 199,1976165
5 250,3197955 10 2,5 262,8197955
6 91,23595782 10 2,5 103,7359578
7 32,24903099 10 2,5 44,74903099
8 43,8634244 10 2,5 56,3634244
60
Table 30. The results generated by the (s,S)-algorithm
Retailer s S
Long run average
cost(€/week)
Average cost
rate(€/hr)
1 23 269 24,9173 0,6229325
2 23 230 21,09830781 0,527457695
3 28 182 15,96323388 0,399080847
4 10 145 13,71758947 0,342939737
5 28 273 24,98427728 0,624606932
6 3 68 6,456806525 0,161420163
7 34 135 10,76616542 0,269154136
8 47 179 13,99395001 0,34984875
Consequently, these retailers yield a total cost per hour of 3,297€/hr. Because we assumed
that every retailer is served by a different vehicle, we have a fixed vehicle cost of 240 €/hr
(=30€/(hr⋅vehicle)*8 vehicles), producing a total cost for the OUP-retailers of 243.297€/hr.
Adding up the cost rate for the retailers with constant demand (Table27), we become the total
cost rate for the whole logistic system: 477€/hr (= 234.184+ 243.297). This is much more then
the total cost rate when all retailers were implemented in the IRP algorithm (287€/hr). It is
clear that a huge amount of this cost rate is caused by the vehicles that replenish the retailers
with stochastic demand. A next step is trying to determine how to diminish the number of
fleet; this is discussed in the next paragraph.
6.3 Diminishing the used fleet In the previous paragraph we assumed that every retailer with stochastic demand had his own
vehicle to replenish. This yielded enormous fixed vehicle costs. The objective of this
paragraph is to investigate how we can let the number of vehicles drop: we can do this by
letting a vehicle serve multiple retailers. If we could serve all retailers just by one vehicle, the
new strategy could yield a lower cost rate than the one obtained with the IRP-model; 243.297
+30=273.297€/hr.
M(j) is defined as the expected total time until the next order is placed when starting with an
inventory position of respectively s+j units. Consequently, M(S-s) corresponds to the average
time between replenishments. We have computed this values for each retailer using the same
algorithm as above:
61
Table 31. Expected number of time between orders Retailer Expected number of weeks between replenishment
1 12,51438
2 10,64467
3 6,921391
4 14,62517
5 10,57312
6 16,06614
7 4,176773
8 4,074432
Notice that the minimum average number of weeks between replenishment is 4.074432 for
retailer 8; this is not startling, because after every replenishment, its inventory mounts up to
179 with an approximate week demand of 40. The optimal order-up-to level is so high
because of the high fixed ordering cost. The structure of these demands makes it difficult to
determine the probability that in a week the total demand could be replenished by one vehicle,
recalling the limited capacity of the vehicle. However, it is easy to see that the chance that
every retailer needs to be replenished in the same week is very small, just as the chance that
every ordering retailer needs his total order-up-to level.
However the OUP-retailers experience lower holding and shortage costs when utilizing such a
direct shipment strategy, these cost savings can hardly match the savings that the IRP-model
makes in terms of fleet operating costs, which becomes an acceptable solution when
implementing demands with stochastic demand ( of the form we defined earlier).
62
7 Conclusion The objective of this thesis was to find out how the IRP model, that usually works with sales-
points with constant and deterministic demand, would response if we would implement
retailers with a stochastic demand. For the type of stochastic demand considered , i.e. a
stochastic process that generates the weekly demand, good results were obtained in terms of
fill rate and shortage costs. However, this yielded a big increase of the holding cost,
increasing the total cost rate. Therefore, a new distribution strategy was proposed, using the
„optimal“ replenishment strategy for both inventory policies: a distribution plan generated by
the IRP-model for the EOQ-retailers and a direct shipping method for the OUP-retailers.
However, the latter doesn’t take into account the fixed vehicle operating cost; once you use a
vehicle, you keep paying this cost per hour. Therefore, this new strategy did not perform as
well as expected. The savings achieved in terms of holding and shortage cost are almost
neutralized by the big increase of fleet operating costs. Because of the drastic savings in terms
of fleet operating costs that are made with the IRP model, this model does not perform that
bad on logistic systems with EOQ-retailers and OUP-retailers, for which the demand is
generated as mentioned before.
63
Appendix A. Properties of c(⋅,⋅) and bounds for(s*,S*)
64
65
66
Appendix B. Calculating the optimal (s,S)-values Loss Function G Function Verliesfunctie(num) Dim N As Double Dim J As Double Dim Demand As Range Dim Probability As Range Set Demand = Range("Demand") Set Probability = Range("Probability") Total = 0 For i = 1 To 200 N = 0.1 * WorksheetFunction.Max(num - Demand(i), 0) * Probability(i) J = 20 * WorksheetFunction.Max(Demand(i) - num, 0) * Probability(i) Total = Total + N + J Next i Verliesfunctie = Total End Function Sub loss() Dim Loss_function As Range Set Loss_function = Range("Loss_function")
For i = 1 To 1999 Range("Loss_function").Cells(i, 1) = Verliesfunctie(i)
Next i End Sub Function m(j) Sub mvalues() Dim Q As Double Dim Total As Double Dim aantal As Integer Dim Tussenoplossing(400) As Double Dim Probability As Range Set Probability = Range("Probability") aantal = num step = (1 - Probability(1)) Tussenoplossing(0) = step Total = 0 For J = 1 To 389 For i = 1 To J
67
Q = Probability(i + 1) * Tussenoplossing(J - i) Total = Total + Q Next i Tussenoplossing(J) = (Total) / (step) Total = 0 Next J For i = 1 To 390
Range("m").Cells(i, 1) = Tussenoplossing(i - 1) Next i End Sub Function M(j) Sub valueM() Dim Q As Double Dim Total As Double Dim aantal As Integer Dim Tussenoplossing(400) As Double Dim Probability As Range Set Probability = Range("Probability") Dim m As Range Set m = Range("m") Tussenoplossing(0) = 0 For J = 1 To 389 Q = Tussenoplossing(J - 1) + Range("m")(J, 1).Value Tussenoplossing(J) = Q Next J For i = 1 To 390 Range("Mvalue").Cells(i, 1) = Tussenoplossing(i - 1) Next i End Sub Function K(s,⋅) Function kcost(down, up) Vastekost = Range("K").Value For i = 0 To orderlevel - orderpunt - 1
waarde = Range("m")(i + 1, 1).Value * Range("Loss_function")(up - i + 1, 1).Value totaal = totaal + waarde
Next i
68
kcost = totaal + Vastekost End Function Function c(s,S) Function cost(lower, up) cost = kcost(lower, up) / Range("Mvalue")(up - lower + 1).Value End Function Algorithm Sub orderlevels() orderpoint = Range("yster").Value orderlevel = Range("yster").Value Do orderpoint = orderpoint - 1 bestcost = cost(orderpoint, orderlevel) Loop Until bestcost <= Range("Loss_function")(orderpoint + 1, 1).Value S = orderlevel + 1 Do While Range("Loss_function")(S + 1, 1).Value <= bestcost If cost(orderpoint, S) < bestcost Then orderlevel = S newcost = cost(orderpoint, S) Do While newcost <= Range("Loss_function")(orderpoint + 2, 1).Value orderpoint = orderpoint + 1 newcost = cost(orderpoint, S) Loop bestcost = newcost End If S = S + 1 Loop Range("orderpoint") = orderpoint Range("orderlevel") = orderlevel End Sub
69
Appendix C. Discussion constraints IRP-model
70
Appendix D. Data-files for the different logistic problems N=30 Capacity Speed FixedCost VarCost Vehicle
50 50 30 1 Depot X Y delTime delCost DC 86 86 0.5 20 Name X Y demRate cap delTime delCost holdCost
1 96 74 1.25 50 0.25 10 0.1 2 80 81 0.1 50 0.25 10 0.1 3 49 99 0.6 50 0.25 10 0.1 4 7 101 0.9 50 0.25 10 0.1 5 86 86 0.225 50 0.25 10 0.1 6 137 71 0.125 50 0.25 10 0.1 7 152 87 0.325 50 0.25 10 0.1 8 85 160 1.2 50 0.25 10 0.1 9 119 35 0.2 50 0.25 10 0.1
10 83 57 0.3 50 0.25 10 0.1 11 83 41 0.15 50 0.25 10 0.1 12 141 48 0.45 50 0.25 10 0.1 13 56 56 0.075 50 0.25 10 0.1 14 47 80 1.2 50 0.25 10 0.1 15 81 122 0.925 50 0.25 10 0.1 16 90 82 0.225 50 0.25 10 0.1 17 17 99 0.725 50 0.25 10 0.1 18 124 53 0.075 50 0.25 10 0.1 19 80 147 0.9 50 0.25 10 0.1 20 160 114 0.6 50 0.25 10 0.1 21 148 123 0.675 50 0.25 10 0.1 22 63 78 1.125 50 0.25 10 0.1 23 120 74 0.15 50 0.25 10 0.1 24 22 58 0.775 50 0.25 10 0.1 25 89 94 0.325 50 0.25 10 0.1 26 61 127 0.8 50 0.25 10 0.1 27 86 87 0.8 50 0.25 10 0.1 28 128 76 0.375 50 0.25 10 0.1 29 121 31 1.225 50 0.25 10 0.1 30 62 82 0.25 50 0.25 10 0.1
N=39 Capacity Speed FixedCost VarCost Vehicle
50 50 30 1 Depot X Y delTime delCost DC 159 159 0.5 20
71
Name X Y demRate cap delTime delCost holdCost
9 164 193 1.125 50 0.25 10 0.1 10 151 173 0.6 50 0.25 10 0.1 11 176 161 0.475 50 0.25 10 0.1 12 153 185 0.05 50 0.25 10 0.1 13 130 215 0.5 50 0.25 10 0.1 14 9 202 1.05 50 0.25 10 0.1 15 198 128 1.225 50 0.25 10 0.1 16 51 51 0.45 50 0.25 10 0.1 17 146 241 0.75 50 0.25 10 0.1 18 133 250 1.2 50 0.25 10 0.1 19 139 202 1.225 50 0.25 10 0.1 20 239 25 0.6 50 0.25 10 0.1 21 185 244 0.475 50 0.25 10 0.1 22 192 97 1.25 50 0.25 10 0.1 23 158 89 1.05 50 0.25 10 0.1 24 88 116 0.725 50 0.25 10 0.1 25 196 20 0.35 50 0.25 10 0.1 26 129 159 0.175 50 0.25 10 0.1 27 120 232 0.425 50 0.25 10 0.1 28 255 116 0.85 50 0.25 10 0.1 29 217 99 1.175 50 0.25 10 0.1 30 177 109 0.125 50 0.25 10 0.1 31 179 45 0.3 50 0.25 10 0.1 32 152 149 0.65 50 0.25 10 0.1 33 144 222 0.975 50 0.25 10 0.1 34 83 68 0.6 50 0.25 10 0.1 35 26 145 0.275 50 0.25 10 0.1 36 210 33 0.45 50 0.25 10 0.1 37 133 78 0.35 50 0.25 10 0.1 38 254 223 0.7 50 0.25 10 0.1 39 192 142 0.5 50 0.25 10 0.1
N=50 Capacity Speed FixedCost VarCost Vehicle
50 50 30 1 Depot X Y delTime delCost DC 75 75 0.5 20 Name X Y demRate cap delTime delCost holdCost
1 42 26 1.125 50 0.25 10 0.1 2 37 44 0.875 50 0.25 10 0.1 3 62 38 0.95 50 0.25 10 0.1 4 56 90 0.375 50 0.25 10 0.1 5 84 66 0.55 50 0.25 10 0.1 6 76 57 0.275 50 0.25 10 0.1 7 47 74 0.55 50 0.25 10 0.1 8 79 51 0.65 50 0.25 10 0.1 9 127 76 0.6 50 0.25 10 0.1
72
10 69 7 0.775 50 0.25 10 0.1 11 110 80 0.05 50 0.25 10 0.1 12 102 42 1.1 50 0.25 10 0.1 13 85 64 0.775 50 0.25 10 0.1 14 92 124 0.875 50 0.25 10 0.1 15 70 149 0.35 50 0.25 10 0.1 16 75 98 0.075 50 0.25 10 0.1 17 77 71 0.975 50 0.25 10 0.1 18 34 105 0.8 50 0.25 10 0.1 19 69 10 0.875 50 0.25 10 0.1 20 99 33 0.325 50 0.25 10 0.1 21 75 75 0.375 50 0.25 10 0.1 22 77 57 1.075 50 0.25 10 0.1 23 112 92 0.6 50 0.25 10 0.1 24 99 12 0.45 50 0.25 10 0.1 25 81 122 0.025 50 0.25 10 0.1 26 140 85 0.325 50 0.25 10 0.1 27 78 16 0.85 50 0.25 10 0.1 28 114 103 1.125 50 0.25 10 0.1 29 111 99 0.625 50 0.25 10 0.1 30 75 75 1.125 50 0.25 10 0.1 31 57 54 1.1 50 0.25 10 0.1 32 32 103 1.2 50 0.25 10 0.1 33 75 66 1.15 50 0.25 10 0.1 34 136 76 1.025 50 0.25 10 0.1 35 86 47 0.475 50 0.25 10 0.1 36 109 29 0.125 50 0.25 10 0.1 37 69 74 0.35 50 0.25 10 0.1 38 85 65 1.15 50 0.25 10 0.1 39 79 83 1.025 50 0.25 10 0.1 40 38 78 0.3 50 0.25 10 0.1 41 34 105 1.225 50 0.25 10 0.1 42 119 40 0.525 50 0.25 10 0.1 43 76 74 0.025 50 0.25 10 0.1 44 39 81 0.325 50 0.25 10 0.1 45 77 71 0.35 50 0.25 10 0.1 46 45 65 0.2 50 0.25 10 0.1 47 72 40 0.475 50 0.25 10 0.1 48 112 117 1.225 50 0.25 10 0.1 49 36 72 0.3 50 0.25 10 0.1 50 49 84 0.45 50 0.25 10 0.1
N=67 Capacity Speed FixedCost VarCost Vehicle
50 50 30 1 Depot X Y delTime delCost DC 89 89 0.5 20 Name X Y demRate cap delTime delCost holdCost
1 99 134 0.725 50 0.25 10 0.1
73
2 107 95 1.175 50 0.25 10 0.1 3 156 42 1.125 50 0.25 10 0.1 4 95 86 0.475 50 0.25 10 0.1 5 54 154 0.925 50 0.25 10 0.1 6 42 77 1 50 0.25 10 0.1 7 12 123 0.775 50 0.25 10 0.1 8 73 64 1.15 50 0.25 10 0.1 9 73 94 1.225 50 0.25 10 0.1
10 81 106 0.325 50 0.25 10 0.1 11 106 51 0.35 50 0.25 10 0.1 12 60 100 0.575 50 0.25 10 0.1 13 150 45 0.475 50 0.25 10 0.1 14 111 89 0.05 50 0.25 10 0.1 15 112 53 0.4 50 0.25 10 0.1 16 56 111 1 50 0.25 10 0.1 17 123 32 0.1 50 0.25 10 0.1 18 68 84 0.275 50 0.25 10 0.1 19 18 48 0.6 50 0.25 10 0.1 20 62 73 0.175 50 0.25 10 0.1 21 60 91 0.825 50 0.25 10 0.1 22 129 17 0.575 50 0.25 10 0.1 23 113 106 1.225 50 0.25 10 0.1 24 8 79 0.65 50 0.25 10 0.1 25 42 96 1.1 50 0.25 10 0.1 26 92 89 0.3 50 0.25 10 0.1 27 97 64 0.675 50 0.25 10 0.1 28 98 60 0.625 50 0.25 10 0.1 29 82 86 1.025 50 0.25 10 0.1 30 82 77 1.2 50 0.25 10 0.1 31 107 100 0.45 50 0.25 10 0.1 32 36 117 0.85 50 0.25 10 0.1 33 107 96 0.375 50 0.25 10 0.1 34 66 160 0.15 50 0.25 10 0.1 35 75 97 0.525 50 0.25 10 0.1 36 145 57 1.175 50 0.25 10 0.1 37 100 43 0.675 50 0.25 10 0.1 38 152 81 0.95 50 0.25 10 0.1 39 62 76 0.075 50 0.25 10 0.1 40 59 12 0.6 50 0.25 10 0.1 41 49 134 0.325 50 0.25 10 0.1 42 79 94 0.7 50 0.25 10 0.1 43 60 97 0.65 50 0.25 10 0.1 44 63 119 0.675 50 0.25 10 0.1 45 65 110 0.775 50 0.25 10 0.1 46 33 38 0.575 50 0.25 10 0.1 47 77 95 0.6 50 0.25 10 0.1 48 87 107 0.2 50 0.25 10 0.1 49 68 111 0.85 50 0.25 10 0.1 50 89 89 0.75 50 0.25 10 0.1 51 85 85 0.1 50 0.25 10 0.1 52 150 73 1.225 50 0.25 10 0.1 53 141 85 0.025 50 0.25 10 0.1 54 92 75 0.7 50 0.25 10 0.1
74
55 46 128 0.65 50 0.25 10 0.1 56 79 48 0.7 50 0.25 10 0.1 57 137 14 0.5 50 0.25 10 0.1 58 35 80 0.725 50 0.25 10 0.1 59 70 6 0.975 50 0.25 10 0.1 60 109 68 0.775 50 0.25 10 0.1 61 113 33 1.15 50 0.25 10 0.1 62 62 145 1.125 50 0.25 10 0.1 63 82 88 1.025 50 0.25 10 0.1 64 93 96 0.725 50 0.25 10 0.1 65 112 151 1.225 50 0.25 10 0.1 66 107 34 1.075 50 0.25 10 0.1 67 31 31 1.1 50 0.25 10 0.1
N=81 Capacity Speed FixedCost VarCost Vehicle
50 50 30 1 Depot X Y delTime delCost DC 80 80 0.5 20 Name X Y demRate cap delTime delCost holdCost
1 16 50 0.6 50 0.25 10 0.1 2 128 105 0.025 50 0.25 10 0.1 3 76 77 1 50 0.25 10 0.1 4 54 116 1.15 50 0.25 10 0.1 5 126 139 0.8 50 0.25 10 0.1 6 40 131 1.25 50 0.25 10 0.1 7 76 80 0.9 50 0.25 10 0.1 8 21 103 0.3 50 0.25 10 0.1 9 58 28 0.975 50 0.25 10 0.1
10 114 105 1.2 50 0.25 10 0.1 11 104 70 0.35 50 0.25 10 0.1 12 75 81 0.75 50 0.25 10 0.1 13 92 64 0.05 50 0.25 10 0.1 14 130 53 0.275 50 0.25 10 0.1 15 8 95 0.3 50 0.25 10 0.1 16 85 43 1.05 50 0.25 10 0.1 17 89 32 0.625 50 0.25 10 0.1 18 117 13 1.05 50 0.25 10 0.1 19 49 113 0.475 50 0.25 10 0.1 20 5 88 0.025 50 0.25 10 0.1 21 55 20 0.05 50 0.25 10 0.1 22 102 148 0.275 50 0.25 10 0.1 23 115 95 0.525 50 0.25 10 0.1 24 128 98 0.45 50 0.25 10 0.1 25 75 54 0.275 50 0.25 10 0.1 26 73 38 1.075 50 0.25 10 0.1 27 73 82 0.675 50 0.25 10 0.1 28 94 92 0.625 50 0.25 10 0.1 29 131 93 0.4 50 0.25 10 0.1
75
30 114 98 0.825 50 0.25 10 0.1 31 93 119 0.6 50 0.25 10 0.1 32 77 90 0.15 50 0.25 10 0.1 33 53 45 0.625 50 0.25 10 0.1 34 98 17 0.025 50 0.25 10 0.1 35 85 95 0.225 50 0.25 10 0.1 36 60 58 0.1 50 0.25 10 0.1 37 86 52 0.85 50 0.25 10 0.1 38 47 70 0.9 50 0.25 10 0.1 39 76 118 1.2 50 0.25 10 0.1 40 58 113 0.55 50 0.25 10 0.1 41 100 71 1.075 50 0.25 10 0.1 42 141 86 0.65 50 0.25 10 0.1 43 79 81 1.225 50 0.25 10 0.1 44 67 80 0.925 50 0.25 10 0.1 45 69 134 0.1 50 0.25 10 0.1 46 73 81 0.375 50 0.25 10 0.1 47 114 64 0.525 50 0.25 10 0.1 48 70 21 1.25 50 0.25 10 0.1 49 79 77 1.1 50 0.25 10 0.1 50 120 60 0.25 50 0.25 10 0.1 51 131 101 0.375 50 0.25 10 0.1 52 77 53 0.05 50 0.25 10 0.1 53 82 83 0.75 50 0.25 10 0.1 54 115 34 0.8 50 0.25 10 0.1 55 59 70 0.05 50 0.25 10 0.1 56 16 78 0.875 50 0.25 10 0.1 57 71 76 0.05 50 0.25 10 0.1 58 114 66 1.25 50 0.25 10 0.1 59 2 90 0.575 50 0.25 10 0.1 60 81 118 1.2 50 0.25 10 0.1 61 80 78 0.275 50 0.25 10 0.1 62 8 74 0.25 50 0.25 10 0.1 63 94 58 0.775 50 0.25 10 0.1 64 13 117 1.025 50 0.25 10 0.1 65 62 103 0.15 50 0.25 10 0.1 66 76 78 1.25 50 0.25 10 0.1 67 60 55 0.125 50 0.25 10 0.1 68 78 83 0.925 50 0.25 10 0.1 69 72 25 0.675 50 0.25 10 0.1 70 65 88 0.225 50 0.25 10 0.1 71 81 78 0.8 50 0.25 10 0.1 72 113 92 0.7 50 0.25 10 0.1 73 73 66 0.35 50 0.25 10 0.1 74 139 72 0.075 50 0.25 10 0.1 75 80 80 1.125 50 0.25 10 0.1 76 131 141 0.8 50 0.25 10 0.1 77 109 105 0.675 50 0.25 10 0.1 78 80 80 0.425 50 0.25 10 0.1 79 32 84 0.675 50 0.25 10 0.1 80 67 97 1.05 50 0.25 10 0.1 81 126 131 0.825 50 0.25 10 0.1
76
N=93 Capacity Speed FixedCost VarCost Vehicle
50 50 30 1 Depot X Y delTime delCost DC 93 93 0.5 20 Name X Y demRate cap delTime delCost holdCost
1 93 92 0.525 50 0.25 10 0.1 2 89 57 0.025 50 0.25 10 0.1 3 129 121 0.575 50 0.25 10 0.1 4 118 84 0.3 50 0.25 10 0.1 5 112 176 0.2 50 0.25 10 0.1 6 77 106 1.25 50 0.25 10 0.1 7 92 97 0.725 50 0.25 10 0.1 8 120 102 0.65 50 0.25 10 0.1 9 56 20 1.125 50 0.25 10 0.1
10 156 55 0.05 50 0.25 10 0.1 11 95 56 0.225 50 0.25 10 0.1 12 35 155 0.825 50 0.25 10 0.1 13 125 80 1.2 50 0.25 10 0.1 14 62 162 1.15 50 0.25 10 0.1 15 107 147 0.125 50 0.25 10 0.1 16 42 114 0.075 50 0.25 10 0.1 17 53 131 0.9 50 0.25 10 0.1 18 114 165 0.65 50 0.25 10 0.1 19 60 178 0.65 50 0.25 10 0.1 20 128 73 0.025 50 0.25 10 0.1 21 135 37 1.225 50 0.25 10 0.1 22 99 88 0.625 50 0.25 10 0.1 23 94 93 0.95 50 0.25 10 0.1 24 126 114 1 50 0.25 10 0.1 25 80 128 0.15 50 0.25 10 0.1 26 50 130 0.75 50 0.25 10 0.1 27 96 99 1.025 50 0.25 10 0.1 28 80 178 0.95 50 0.25 10 0.1 29 101 52 0.9 50 0.25 10 0.1 30 38 80 0.475 50 0.25 10 0.1 31 120 167 0.525 50 0.25 10 0.1 32 35 29 0.375 50 0.25 10 0.1 33 135 72 0.175 50 0.25 10 0.1 34 80 173 1.2 50 0.25 10 0.1 35 155 127 0.65 50 0.25 10 0.1 36 45 85 1.025 50 0.25 10 0.1 37 112 110 0.6 50 0.25 10 0.1 38 108 71 0.775 50 0.25 10 0.1 39 123 158 0.15 50 0.25 10 0.1 40 119 61 0.75 50 0.25 10 0.1 41 137 100 0.85 50 0.25 10 0.1 42 99 94 1.05 50 0.25 10 0.1
77
43 88 165 1 50 0.25 10 0.1 44 76 103 0.875 50 0.25 10 0.1 45 177 119 0.45 50 0.25 10 0.1 46 48 61 0.125 50 0.25 10 0.1 47 89 70 0.8 50 0.25 10 0.1 48 93 77 0.7 50 0.25 10 0.1 49 167 75 0.925 50 0.25 10 0.1 50 89 123 0.15 50 0.25 10 0.1 51 57 81 0.1 50 0.25 10 0.1 52 94 93 0.375 50 0.25 10 0.1 53 118 12 0.325 50 0.25 10 0.1 54 98 25 0.3 50 0.25 10 0.1 55 125 69 0.775 50 0.25 10 0.1 56 25 108 0.225 50 0.25 10 0.1 57 156 154 0.625 50 0.25 10 0.1 58 129 112 0.75 50 0.25 10 0.1 59 75 118 0.275 50 0.25 10 0.1 60 35 136 1.25 50 0.25 10 0.1 61 174 48 0.75 50 0.25 10 0.1 62 93 91 1.1 50 0.25 10 0.1 63 138 133 0.15 50 0.25 10 0.1 64 77 112 0.75 50 0.25 10 0.1 65 67 18 0.275 50 0.25 10 0.1 66 110 82 0.325 50 0.25 10 0.1 67 120 108 1.1 50 0.25 10 0.1 68 61 112 0.925 50 0.25 10 0.1 69 102 23 1.225 50 0.25 10 0.1 70 105 18 0.45 50 0.25 10 0.1 71 83 106 0.575 50 0.25 10 0.1 72 111 131 0.525 50 0.25 10 0.1 73 99 115 0.5 50 0.25 10 0.1 74 84 98 0.175 50 0.25 10 0.1 75 88 61 0.75 50 0.25 10 0.1 76 89 94 0.625 50 0.25 10 0.1 77 81 176 0.825 50 0.25 10 0.1 78 51 101 0.175 50 0.25 10 0.1 79 93 93 0.425 50 0.25 10 0.1 80 37 123 1 50 0.25 10 0.1 81 103 132 0.775 50 0.25 10 0.1 82 153 80 0.175 50 0.25 10 0.1 83 60 166 0.8 50 0.25 10 0.1 84 135 72 0.6 50 0.25 10 0.1 85 95 95 0.25 50 0.25 10 0.1 86 148 73 1.125 50 0.25 10 0.1 87 83 95 0.775 50 0.25 10 0.1 88 13 130 0.75 50 0.25 10 0.1 89 114 41 0.775 50 0.25 10 0.1 90 115 44 0.325 50 0.25 10 0.1 91 175 80 1 50 0.25 10 0.1 92 24 124 0.825 50 0.25 10 0.1 93 69 120 1.175 50 0.25 10 0.1
78
N=98 Capacity Speed FixedCost VarCost Vehicle
50 50 30 1 Depot X Y delTime delCost DC 83 83 0.5 20 Name X Y demRate cap delTime delCost holdCost
1 15 35 0.95 50 0.25 10 0.1 2 132 70 1 50 0.25 10 0.1 3 45 69 0.6 50 0.25 10 0.1 4 79 89 1.075 50 0.25 10 0.1 5 126 138 1.075 50 0.25 10 0.1 6 47 61 0.1 50 0.25 10 0.1 7 82 73 0.9 50 0.25 10 0.1 8 122 65 0.775 50 0.25 10 0.1 9 87 66 0.825 50 0.25 10 0.1
10 110 86 0.85 50 0.25 10 0.1 11 116 154 1.2 50 0.25 10 0.1 12 74 53 1.2 50 0.25 10 0.1 13 56 10 0.925 50 0.25 10 0.1 14 79 54 0.5 50 0.25 10 0.1 15 126 122 0.875 50 0.25 10 0.1 16 147 75 0.425 50 0.25 10 0.1 17 139 72 0.5 50 0.25 10 0.1 18 86 56 1.25 50 0.25 10 0.1 19 82 80 0.775 50 0.25 10 0.1 20 84 80 0.25 50 0.25 10 0.1 21 79 79 1.25 50 0.25 10 0.1 22 73 81 1.025 50 0.25 10 0.1 23 120 77 0.3 50 0.25 10 0.1 24 31 63 0.25 50 0.25 10 0.1 25 85 63 0.5 50 0.25 10 0.1 26 45 141 0.1 50 0.25 10 0.1 27 31 59 1 50 0.25 10 0.1 28 95 95 0.95 50 0.25 10 0.1 29 132 121 0.525 50 0.25 10 0.1 30 62 111 0.375 50 0.25 10 0.1 31 84 82 1 50 0.25 10 0.1 32 107 150 0.825 50 0.25 10 0.1 33 77 69 0.275 50 0.25 10 0.1 34 92 91 0.075 50 0.25 10 0.1 35 117 106 0.4 50 0.25 10 0.1 36 84 77 0.8 50 0.25 10 0.1 37 80 101 1.225 50 0.25 10 0.1 38 132 46 0.15 50 0.25 10 0.1 39 150 34 0.75 50 0.25 10 0.1 40 69 138 0.8 50 0.25 10 0.1 41 115 141 1.05 50 0.25 10 0.1 42 46 149 0.2 50 0.25 10 0.1 43 133 50 1.075 50 0.25 10 0.1
79
44 61 68 0.825 50 0.25 10 0.1 45 112 65 0.1 50 0.25 10 0.1 46 75 86 0.2 50 0.25 10 0.1 47 51 82 0.425 50 0.25 10 0.1 48 81 65 0.2 50 0.25 10 0.1 49 46 40 1 50 0.25 10 0.1 50 82 34 1.05 50 0.25 10 0.1 51 101 56 0.65 50 0.25 10 0.1 52 67 68 0.1 50 0.25 10 0.1 53 83 80 0.425 50 0.25 10 0.1 54 120 76 0.1 50 0.25 10 0.1 55 163 67 1.175 50 0.25 10 0.1 56 97 82 0.475 50 0.25 10 0.1 57 115 119 0.05 50 0.25 10 0.1 58 88 110 1.225 50 0.25 10 0.1 59 87 89 1.1 50 0.25 10 0.1 60 64 8 0.875 50 0.25 10 0.1 61 119 60 0.975 50 0.25 10 0.1 62 73 67 1.225 50 0.25 10 0.1 63 126 89 0.825 50 0.25 10 0.1 64 129 22 0.075 50 0.25 10 0.1 65 64 52 0.525 50 0.25 10 0.1 66 130 21 1.225 50 0.25 10 0.1 67 88 69 0.9 50 0.25 10 0.1 68 93 88 0.5 50 0.25 10 0.1 69 74 141 0.325 50 0.25 10 0.1 70 117 108 0.25 50 0.25 10 0.1 71 107 10 0.475 50 0.25 10 0.1 72 112 125 0.325 50 0.25 10 0.1 73 101 97 0.625 50 0.25 10 0.1 74 43 156 1.25 50 0.25 10 0.1 75 42 22 1.175 50 0.25 10 0.1 76 98 106 1.15 50 0.25 10 0.1 77 93 53 0.575 50 0.25 10 0.1 78 103 91 0.575 50 0.25 10 0.1 79 98 109 0.45 50 0.25 10 0.1 80 79 83 0.45 50 0.25 10 0.1 81 52 122 0.875 50 0.25 10 0.1 82 52 32 0.45 50 0.25 10 0.1 83 24 86 0.25 50 0.25 10 0.1 84 25 74 0.575 50 0.25 10 0.1 85 83 83 0.325 50 0.25 10 0.1 86 108 5 0.025 50 0.25 10 0.1 87 76 89 0.55 50 0.25 10 0.1 88 58 120 0.475 50 0.25 10 0.1 89 29 104 0.325 50 0.25 10 0.1 90 135 141 0.3 50 0.25 10 0.1 91 90 72 0.1 50 0.25 10 0.1 92 153 83 0.05 50 0.25 10 0.1 93 116 130 0.325 50 0.25 10 0.1 94 83 83 1.175 50 0.25 10 0.1 95 41 117 0.2 50 0.25 10 0.1 96 121 72 0.825 50 0.25 10 0.1
80
97 46 73 1.1 50 0.25 10 0.1 98 68 105 0.325 50 0.25 10 0.1
N=110 Capacity Speed FixedCost VarCost Vehicle
50 50 30 1 Depot X Y delTime delCost DC 87 87 0.5 20 Name X Y demRate cap delTime delCost holdCost
1 93 55 0.775 50 0.25 10 0.1 2 52 91 1.05 50 0.25 10 0.1 3 97 85 0.5 50 0.25 10 0.1 4 68 99 0.05 50 0.25 10 0.1 5 119 111 0.35 50 0.25 10 0.1 6 170 72 0.425 50 0.25 10 0.1 7 106 35 0.775 50 0.25 10 0.1 8 130 37 0.75 50 0.25 10 0.1 9 82 64 1.175 50 0.25 10 0.1
10 127 32 0.525 50 0.25 10 0.1 11 83 118 0.375 50 0.25 10 0.1 12 139 109 0.625 50 0.25 10 0.1 13 156 52 0.6 50 0.25 10 0.1 14 70 142 0.7 50 0.25 10 0.1 15 138 17 0.075 50 0.25 10 0.1 16 24 56 0.8 50 0.25 10 0.1 17 129 160 1.075 50 0.25 10 0.1 18 112 129 1 50 0.25 10 0.1 19 22 102 0.2 50 0.25 10 0.1 20 24 38 0.3 50 0.25 10 0.1 21 88 84 1.05 50 0.25 10 0.1 22 122 73 1.15 50 0.25 10 0.1 23 115 11 0.85 50 0.25 10 0.1 24 36 140 0.575 50 0.25 10 0.1 25 104 155 0.95 50 0.25 10 0.1 26 98 107 0.625 50 0.25 10 0.1 27 115 73 0.675 50 0.25 10 0.1 28 71 65 0.725 50 0.25 10 0.1 29 120 154 0.65 50 0.25 10 0.1 30 48 73 1.25 50 0.25 10 0.1 31 48 36 0.25 50 0.25 10 0.1 32 113 126 0.85 50 0.25 10 0.1 33 140 76 1.15 50 0.25 10 0.1 34 79 88 0.525 50 0.25 10 0.1 35 66 149 0.75 50 0.25 10 0.1 36 79 94 0.975 50 0.25 10 0.1 37 105 95 1.25 50 0.25 10 0.1 38 108 149 0.3 50 0.25 10 0.1 39 110 74 0.75 50 0.25 10 0.1 40 134 65 0.275 50 0.25 10 0.1
81
41 77 153 1.25 50 0.25 10 0.1 42 156 118 0.4 50 0.25 10 0.1 43 85 74 0.125 50 0.25 10 0.1 44 74 96 0.5 50 0.25 10 0.1 45 107 62 0.575 50 0.25 10 0.1 46 53 90 0.175 50 0.25 10 0.1 47 45 155 0.175 50 0.25 10 0.1 48 101 76 0.325 50 0.25 10 0.1 49 109 87 0.775 50 0.25 10 0.1 50 168 74 0.05 50 0.25 10 0.1 51 101 91 1.05 50 0.25 10 0.1 52 111 147 1.25 50 0.25 10 0.1 53 39 135 0.325 50 0.25 10 0.1 54 55 94 1.05 50 0.25 10 0.1 55 82 79 0.525 50 0.25 10 0.1 56 120 92 0.075 50 0.25 10 0.1 57 123 76 0.025 50 0.25 10 0.1 58 153 51 0.875 50 0.25 10 0.1 59 103 106 0.725 50 0.25 10 0.1 60 95 8 0.525 50 0.25 10 0.1 61 15 125 0.275 50 0.25 10 0.1 62 79 25 0.525 50 0.25 10 0.1 63 128 133 0.425 50 0.25 10 0.1 64 110 80 0.125 50 0.25 10 0.1 65 90 107 1.025 50 0.25 10 0.1 66 9 97 0.875 50 0.25 10 0.1 67 89 85 0.525 50 0.25 10 0.1 68 36 140 0.625 50 0.25 10 0.1 69 70 107 0.05 50 0.25 10 0.1 70 159 127 0.4 50 0.25 10 0.1 71 130 71 0.225 50 0.25 10 0.1 72 112 155 0.275 50 0.25 10 0.1 73 49 128 0.3 50 0.25 10 0.1 74 75 81 1 50 0.25 10 0.1 75 77 130 0.45 50 0.25 10 0.1 76 97 40 0.9 50 0.25 10 0.1 77 68 87 0.175 50 0.25 10 0.1 78 90 89 0.35 50 0.25 10 0.1 79 135 119 0.15 50 0.25 10 0.1 80 48 137 1.15 50 0.25 10 0.1 81 70 50 0.975 50 0.25 10 0.1 82 43 78 0.5 50 0.25 10 0.1 83 89 74 0.975 50 0.25 10 0.1 84 68 93 1.15 50 0.25 10 0.1 85 98 96 0.575 50 0.25 10 0.1 86 108 88 0.4 50 0.25 10 0.1 87 37 80 0.85 50 0.25 10 0.1 88 101 107 0.325 50 0.25 10 0.1 89 86 143 1.225 50 0.25 10 0.1 90 79 55 0.225 50 0.25 10 0.1 91 36 120 0.925 50 0.25 10 0.1 92 134 136 1.1 50 0.25 10 0.1 93 94 53 0.95 50 0.25 10 0.1
82
94 85 82 1 50 0.25 10 0.1 95 92 107 0.875 50 0.25 10 0.1 96 76 22 0.1 50 0.25 10 0.1 97 57 130 0.4 50 0.25 10 0.1 98 163 71 1.05 50 0.25 10 0.1 99 42 84 0.6 50 0.25 10 0.1
100 111 89 0.75 50 0.25 10 0.1 101 95 31 0.425 50 0.25 10 0.1 102 56 128 0.925 50 0.25 10 0.1 103 118 103 1.225 50 0.25 10 0.1 104 147 83 0.1 50 0.25 10 0.1 105 80 165 0.775 50 0.25 10 0.1 106 46 40 0.825 50 0.25 10 0.1 107 49 122 0.45 50 0.25 10 0.1 108 120 40 0.725 50 0.25 10 0.1 109 116 115 0.15 50 0.25 10 0.1 110 142 119 0.125 50 0.25 10 0.1
N=120 Capacity Speed FixedCost VarCost Vehicle
50 50 30 1 Depot X Y delTime delCost DC 150 150 0.5 20 Name X Y demRate cap delTime delCost holdCost
1 131 127 0.375 50 0.25 10 0.1 2 53 105 0.325 50 0.25 10 0.1 3 209 234 1 50 0.25 10 0.1 4 214 107 1.175 50 0.25 10 0.1 5 227 136 1.125 50 0.25 10 0.1 6 125 213 0.9 50 0.25 10 0.1 7 136 63 0.075 50 0.25 10 0.1 8 183 7 0.65 50 0.25 10 0.1 9 113 139 1.125 50 0.25 10 0.1
10 118 206 1.075 50 0.25 10 0.1 11 152 25 0.225 50 0.25 10 0.1 12 161 148 0.85 50 0.25 10 0.1 13 294 119 0.675 50 0.25 10 0.1 14 145 169 0.275 50 0.25 10 0.1 15 117 93 0.05 50 0.25 10 0.1 16 150 150 0.725 50 0.25 10 0.1 17 206 256 0.075 50 0.25 10 0.1 18 114 231 0.75 50 0.25 10 0.1 19 124 105 0.025 50 0.25 10 0.1 20 34 150 0.15 50 0.25 10 0.1 21 151 167 0.925 50 0.25 10 0.1 22 80 23 0.9 50 0.25 10 0.1 23 155 148 0.8 50 0.25 10 0.1 24 23 137 0.65 50 0.25 10 0.1 25 157 176 0.875 50 0.25 10 0.1
83
26 137 175 0.5 50 0.25 10 0.1 27 127 163 0.1 50 0.25 10 0.1 28 247 218 0.375 50 0.25 10 0.1 29 119 48 1.175 50 0.25 10 0.1 30 162 63 0.675 50 0.25 10 0.1 31 180 140 1.025 50 0.25 10 0.1 32 272 185 0.925 50 0.25 10 0.1 33 67 132 0.975 50 0.25 10 0.1 34 86 111 0.325 50 0.25 10 0.1 35 148 155 1 50 0.25 10 0.1 36 234 114 1.125 50 0.25 10 0.1 37 105 150 0.675 50 0.25 10 0.1 38 209 276 1.15 50 0.25 10 0.1 39 204 81 0.2 50 0.25 10 0.1 40 233 190 0.25 50 0.25 10 0.1 41 134 281 0.175 50 0.25 10 0.1 42 142 138 0.475 50 0.25 10 0.1 43 193 102 0.75 50 0.25 10 0.1 44 30 66 0.75 50 0.25 10 0.1 45 120 149 0.775 50 0.25 10 0.1 46 136 130 0.575 50 0.25 10 0.1 47 85 106 1.05 50 0.25 10 0.1 48 148 145 0.725 50 0.25 10 0.1 49 40 89 0.475 50 0.25 10 0.1 50 268 123 0.85 50 0.25 10 0.1 51 80 218 0.55 50 0.25 10 0.1 52 293 155 0.45 50 0.25 10 0.1 53 218 192 1.075 50 0.25 10 0.1 54 116 268 0.875 50 0.25 10 0.1 55 142 182 0.075 50 0.25 10 0.1 56 124 111 0.625 50 0.25 10 0.1 57 198 18 0.425 50 0.25 10 0.1 58 260 186 0.475 50 0.25 10 0.1 59 75 63 0.95 50 0.25 10 0.1 60 269 109 0.2 50 0.25 10 0.1 61 169 165 0.325 50 0.25 10 0.1 62 78 88 0.225 50 0.25 10 0.1 63 208 75 0.9 50 0.25 10 0.1 64 199 23 0.75 50 0.25 10 0.1 65 85 130 1.025 50 0.25 10 0.1 66 125 202 0.35 50 0.25 10 0.1 67 82 89 0.2 50 0.25 10 0.1 68 133 181 0.25 50 0.25 10 0.1 69 96 48 1.075 50 0.25 10 0.1 70 239 109 0.075 50 0.25 10 0.1 71 88 192 0.325 50 0.25 10 0.1 72 98 90 0.075 50 0.25 10 0.1 73 117 92 0.5 50 0.25 10 0.1 74 134 197 1.2 50 0.25 10 0.1 75 252 216 0.8 50 0.25 10 0.1 76 148 145 0.575 50 0.25 10 0.1 77 53 223 1.2 50 0.25 10 0.1 78 181 143 0.65 50 0.25 10 0.1
84
79 174 106 1 50 0.25 10 0.1 80 160 184 0.25 50 0.25 10 0.1 81 36 140 0.95 50 0.25 10 0.1 82 229 110 0.25 50 0.25 10 0.1 83 250 215 0.65 50 0.25 10 0.1 84 204 124 1.05 50 0.25 10 0.1 85 91 107 0.15 50 0.25 10 0.1 86 17 109 0.85 50 0.25 10 0.1 87 157 85 0.625 50 0.25 10 0.1 88 151 104 0.25 50 0.25 10 0.1 89 150 150 0.95 50 0.25 10 0.1 90 125 93 0.55 50 0.25 10 0.1 91 250 193 0.45 50 0.25 10 0.1 92 40 114 1.025 50 0.25 10 0.1 93 238 62 1.25 50 0.25 10 0.1 94 73 214 0.025 50 0.25 10 0.1 95 173 18 0.975 50 0.25 10 0.1 96 128 196 0.775 50 0.25 10 0.1 97 62 155 0.175 50 0.25 10 0.1 98 195 138 1.05 50 0.25 10 0.1 99 150 241 0.95 50 0.25 10 0.1
100 190 275 1.2 50 0.25 10 0.1 101 121 240 0.175 50 0.25 10 0.1 102 236 186 0.725 50 0.25 10 0.1 103 167 68 0.85 50 0.25 10 0.1 104 126 134 0.725 50 0.25 10 0.1 105 254 150 0.325 50 0.25 10 0.1 106 167 150 0.5 50 0.25 10 0.1 107 132 166 0.375 50 0.25 10 0.1 108 204 57 0.925 50 0.25 10 0.1 109 85 176 0.175 50 0.25 10 0.1 110 144 116 0.6 50 0.25 10 0.1 111 138 145 0.325 50 0.25 10 0.1 112 148 147 1.15 50 0.25 10 0.1 113 158 110 0.65 50 0.25 10 0.1 114 269 84 0.35 50 0.25 10 0.1 115 97 18 1.025 50 0.25 10 0.1 116 83 94 0.8 50 0.25 10 0.1 117 90 233 0.6 50 0.25 10 0.1 118 182 135 0.95 50 0.25 10 0.1 119 284 164 1.125 50 0.25 10 0.1 120 133 116 0.975 50 0.25 10 0.1
85
Appendix E. VBA code for simulation
Reading the demands from the dat-file demrate = dem_rate_string(num, 1) demarray = Splits(demrate) demstring = Joins(demarray) deminteger = CDbl(demstring) ‘ demandconv = deminteger If demrate = 0 Then
demanconv = 0 End If If demandconv >= 1000 Then
demandconv = demandconv / 1000 End If End Function Public Function Splits(ByVal sIn As String, _ Optional sDelim As String = ".") _ As Variant Dim nC As Long Dim nPos As Long Dim nDelimLen As Long Dim sOut() As String If sDelim <> "" Then nDelimLen = Len(sDelim) nPos = InStr(1, sIn, sDelim, bCompare) Do While nPos ReDim Preserve sOut(nC) sOut(nC) = Left(sIn, nPos - 1) sIn = Mid(sIn, nPos + nDelimLen) nC = nC + 1 nPos = InStr(1, sIn, sDelim, bCompare) Loop End If ReDim Preserve sOut(nC) sOut(nC) = sIn Splits = sOut End Function
86
Public Function Joins(Source() As String, _ Optional sDelim As String = ",") As String Dim nC As Long Dim sOut As String For nC = LBound(Source) To UBound(Source) - 1 sOut = sOut & Source(nC) & sDelim Next Joins = sOut & Source(nC) End Function Determining the parameters of the normal distributions for the stochastic process Function demandparoup(num) demrate = Demand_rate(num, 1) demrateoupweek = 40 * demrate demrateoupweekint = CInt(demrateoupweek) rate1 = demrateoupweekint * 70 / 100 rate2 = 2 * demrateoupweek - rate1 rate1int = CInt(rate1) rate2int = CInt(rate2) demarray(0) = rate1int demarray(1) = 1 demarray(2) = rate2int demarray(3) = 1 demandparoup = demarray Holding cost rate for EOQ-retailers Function holdingeoq(num) demrate = Demand_rate(num, 1) vehiclenr = Vehicle_nr(num, 1) kolomcycleT = 1 + (vehiclenr - 1) * 2
87
cycleT = Tcycle(1, kolomcycleT) Hcost = Range("HC").Value holding = cycleT * Hcost * demrate / 2 holdingeoq = holding End Function Holding cost for the Order-Up-to retailers retailer = num demrate = Demand_rate(retailer, 1) vehiclenr = Vehicle_nr(retailer, 1) kolomcycleT = 1 + (vehiclenr - 1) * 2 cycleT = Tcycle(1, kolomcycleT) Hcost = Range("HC").Value numberhoursim = Range("nrhours").Value delivery = cycleT * demrate voorraad = delivery demandweek = demandoup(retailer) demand = demandweek / 40 For i = 1 To numberhoursim rest = i Mod cycleT If rest = 0 Then voorraad = voorraad + delivery End If voorraad = voorraad - demand If voorraad >= 0 Then stockage = stockage + voorraad Else voorraad = 0 End If rest2 = i Mod 40 If rest2 = 0 Then demandweek = demandoup(retailer) demand = demandweek / 40 End If Next i totalstockagecost = stockage * Hcost holdingrate = totalstockagecost / numberhoursim holdingoup = holdingrate End Function Function that generates weekly demand according to stochastic process
88
Function demandoup(num) randomvariable = Rnd() randomvariable2 = Rnd() If randomvariable <= 0.5 Then standnorm = WorksheetFunction.NormSInv(randomvariable2) avg = mu1(num, 1) dev = sigma1(num, 1) dema = standnorm * Sqr(dev) + avg Else standnorm = WorksheetFunction.NormSInv(randomvariable2) avg = mu2(num, 1) dev = sigma2(num, 1) dema = standnorm * Sqr(dev) + avg End If If dema > 0 Then demandoup = dema Else demandoup = 0 End If End Function Function to assign the appropriated vehicle to the retailer Function vehicleretailer(num As Integer) retailer = num numbervehicles = Range("nrvehicles").Value For i = 1 To numbervehicles Column = 2 * (i - 1) + 1 numbersubtours = nrsubtours(1, Column) For j = 1 To numbersubtours numberveh = i numbersubt = j arraymaking = arraymaken(numberveh, numbersubt) numbersalespoints = UBound(arraymaking) For k = 0 To numbersalespoints - 1 salespoint = arraymaking(k) salespointint = Val(salespoint) If salespointint = retailer Then voertuig = numberveh End If Next k
89
Next j Next i vehicleretailer = voertuig End Function Function arraymaken(num As Integer, nsubtour As Integer) kolom = (num - 1) * 2 + 1 rij = nsubtour subtourke = subtours(rij, kolom) tussenresultaat = Split(subtourke) arraymaken = tussenresultaat End Function Calculating the shortage cost rate Function penalty(num) retailer = num demrate = Demand_rate(retailer, 1) vehiclenr = Vehicle_nr(retailer, 1) kolomcycleT = 1 + (vehiclenr - 1) * 2 cycleT = Tcycle(1, kolomcycleT) Hcost = Range("HC").Value numberhoursim = Range("nrhours").Value delivery = cycleT * demrate voorraad = delivery demandweek = demandoup(retailer) demand = demandweek / 40 For i = 1 To numberhoursim rest = i Mod cycleT If rest = 0 Then voorraad = voorraad + delivery End If voorraad = voorraad - demand If voorraad >= 0 Then stockage = stockage + voorraad Else shortage = shortage - voorraad voorraad = 0 End If rest2 = i Mod 40 If rest2 = 0 Then
90
demandweek = demandoup(retailer) demand = demandweek / 40 End If Next i penaltycost = Range("PC").Value penaltycostrate = penaltycost * shortage / (numberhoursim) penalty = penaltycostrate End Function Calculating service level P1 Function service1(num) Dim breach As Integer retailer = num demrate = Demand_rate(retailer, 1) vehiclenr = Vehicle_nr(retailer, 1) kolomcycleT = 1 + (vehiclenr - 1) * 2 cycleT = Tcycle(1, kolomcycleT) Hcost = Range("HC").Value numberhoursim = Range("nrhours").Value delivery = cycleT * demrate voorraad = delivery demandweek = demandoup(retailer) demand = demandweek / 40 delivery = cycleT * demrate voorraad = delivery demandweek = demandoup(retailer) demand = demandweek / 40 For i = 1 To numberhoursim rest = i Mod cycleT If rest = 0 Then voorraad = voorraad + delivery numbreaches = numbreaches + breach breach = 0 End If voorraad = voorraad - demand If voorraad >= 0 Then stockage = stockage + voorraad Else breach = 1 voorraad = 0 End If rest2 = i Mod 40
91
If rest2 = 0 Then demandweek = demandoup(retailer) demand = demandweek / 40 End If Next i P = numbreaches / (numbercycles) service1 = 1 - P End Function Calculating service level 2 Function service2(num) retailer = num demrate = Demand_rate(retailer, 1) vehiclenr = Vehicle_nr(retailer, 1) kolomcycleT = 1 + (vehiclenr - 1) * 2 cycleT = Tcycle(1, kolomcycleT) Hcost = Range("HC").Value numberhoursim = Range("nrhours").Value delivery = cycleT * demrate voorraad = delivery demandweek = demandoup(retailer) demand = demandweek / 40 For i = 1 To numberhoursim rest = i Mod cycleT If rest = 0 Then voorraad = voorraad + delivery End If voorraad = voorraad - demand Totaldemand = Totaldemand + demand If voorraad >= 0 Then stockage = stockage + voorraad Else shortage = shortage - voorraad voorraad = 0 End If rest2 = i Mod 40 If rest2 = 0 Then demandweek = demandoup(retailer) demand = demandweek / 40 End If Next i tussen = shortage / Totaldemand
92
P = 1 - tussen service2 = P End Function Calculating breaches Function breaches(num) retailer = num demrate = Demand_rate(retailer, 1) vehiclenr = Vehicle_nr(retailer, 1) kolomcycleT = 1 + (vehiclenr - 1) * 2 cycleT = Tcycle(1, kolomcycleT) Hcost = Range("HC").Value numberhoussim = Range("nrhours").Value delivery = cycleT * demrate voorraad = delivery demandweek = demandoup(retailer) demand = demandweek / 40 interhours = 0 For i = 1 To numberhoursim interhours = interhours + 1 rest = i Mod cycleT If rest = 0 Then voorraad = voorraad + delivery End If voorraad = voorraad - demand Totaldemand = Totaldemand + demand If voorraad >= 0 Then stockage = stockage + voorraad Else breach = breach + 1 suminter = suminter + interhours interhours = 0 voorraad = 0 End If rest2 = i Mod 40 If rest2 = 0 Then demandweek = demandoup(retailer) demand = demandweek / 40 End If Next i breaches = suminter / breach End Function
93
Sources
[1] AGHEZZAF, E.H., Advanced methods in linear programming, Syllabus, Ghent University, Department of Engineering (2005).
[2] AGHEZZAF, E.H., RAA, B., VANLANDEGHEM, H. (2006), Modelling inventory routing problems in supply chains of high consumption products, European Journal of Operational Research, 169(3),1084-1063.
[3] ANILY, S., FEDERGRUEN, A. (1990), One warehouse multiple retailer systems with vehicle routing costs, Management Science, 36(1),92-114.
[4] BERTAZZI, L., PALETTA, G., SPERANZA, M. G. (2002), Deterministic Order-Up-To Level Policies in an Inventory Routing Problem, Transportation Science, 36(2), 119-132.
[5] BRAMEL, J.,CHEN, X., SEMCHI-LEVI, D., The logic of logistics, Second Edition, Springer, New York (2005).
[6] FEDERGRUEN, A., ZHENG, Y. (1990), Finding Optimal (s,S) Policies is about as Simple as Evaluating a Single Policy, Operations Research, 39(4),654-665.
[7] FEDERGRUEN, A., ZIPKIN, P. (1984), An Efficient Algorithm for Computing Optimal (s,S) Policies , Operations Research, 32(6),1268-1285.
[8] FEDERGRUEN, A., ZIPKIN, P. (1984), A combined vehicle routing and inventory allocation problem, Operations research Operations Research, 32(5),1019-1037.
[9] FENG, Y., XIAO, B., A new algorithm for computing optimal (s,S) policies in a stochastic single item/location inventory system, IIE Transactions, 32(11), 1081-1090.
[10] GALLEGO, G., SIMCHI-LEVI, D. (1990), On the effectiveness of direct shipping strategy for the one-warehouse multi-retailer R-systems, Management Science, 36(2),240-243.
[11] GHEYSENS, F., Mathematical management techniques, Syllabus, University Ghent,
Department of Engineering (2004).
[12] LARSON, R. (1988), Transporting sludge to the 106-mile site: An inventory/routing model for fleet sizing and logistics system design, Transportation Science, 22(3),186-198.
[13] SCHROEDER, R.G., Operations management, Fourth Edition, McGraw-Hill Book Co, Singapore (1993).
[14] VANLANDEGHEM, H., Advanced methods in production and logistics, Syllabus, Ghent University, Department of Engineering (2005).
94
[15] VANLANDEGHEM, H., Introduction to inventory management, Syllabus, Ghent University, Department of Engineering,(2005).
[16] VEINOTT, A. (1966), On the optimality of (s,S) Inventory Policies: New Condition and a New Proof, Management Science, 14(5), SIAM Journal of Applied Mathematics 1067-1083.
[17] WEBB, I.R., LARSON, R.C. (1995). Period and phase of customer replenishment: A new approach to the strategic inventory/routing problem, European Journal of Operational Research, 85, 132-148.